Current section
Files
Jump to
Current section
Files
lib/asm/options/claude.ex
defmodule ASM.Options.Claude do
@moduledoc """
Claude provider-specific option schema.
"""
@spec schema() :: keyword()
def schema do
[
model: [type: :string],
system_prompt: [type: {:or, [:string, :map, nil]}, default: nil],
append_system_prompt: [type: {:or, [:string, nil]}, default: nil],
provider_backend: [type: {:or, [{:in, [:anthropic, :ollama]}, :string, nil]}, default: nil],
external_model_overrides: [
type: {:custom, ASM.Options, :validate_passthrough_map, [:external_model_overrides]},
default: %{}
],
anthropic_base_url: [type: {:or, [:string, nil]}, default: nil],
anthropic_auth_token: [type: {:or, [:string, nil]}, default: nil],
include_thinking: [type: :boolean, default: false],
# A completion is not a coding agent: an empty tool set, no settings
# sources, strict MCP config, and plan mode. It REPLACES any
# caller-supplied permission mode rather than merging with it.
completion_only: [type: :boolean, default: false],
# Allow a Claude model newer than the shared registry to pass through to
# the CLI `--model` (default false = require a registered model).
allow_unknown_model: [type: :boolean, default: false],
max_turns: [type: {:or, [:pos_integer, nil]}, default: nil]
]
end
end