mirror of
https://github.com/katanemo/plano.git
synced 2026-04-26 01:06:25 +02:00
* Rename all arch references to plano across the codebase
Complete rebrand from "Arch"/"archgw" to "Plano" including:
- Config files: arch_config_schema.yaml, workflow, demo configs
- Environment variables: ARCH_CONFIG_* → PLANO_CONFIG_*
- Python CLI: variables, functions, file paths, docker mounts
- Rust crates: config paths, log messages, metadata keys
- Docker/build: Dockerfile, supervisord, .dockerignore, .gitignore
- Docker Compose: volume mounts and env vars across all demos/tests
- GitHub workflows: job/step names
- Shell scripts: log messages
- Demos: Python code, READMEs, VS Code configs, Grafana dashboard
- Docs: RST includes, code comments, config references
- Package metadata: package.json, pyproject.toml, uv.lock
External URLs (docs.archgw.com, github.com/katanemo/archgw) left as-is.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Update remaining arch references in docs
- Rename RST cross-reference labels: arch_access_logging, arch_overview_tracing, arch_overview_threading → plano_*
- Update label references in request_lifecycle.rst
- Rename arch_config_state_storage_example.yaml → plano_config_state_storage_example.yaml
- Update config YAML comments: "Arch creates/uses" → "Plano creates/uses"
- Update "the Arch gateway" → "the Plano gateway" in configuration_reference.rst
- Update arch_config_schema.yaml reference in provider_models.py
- Rename arch_agent_router → plano_agent_router in config example
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix remaining arch references found in second pass
- config/docker-compose.dev.yaml: ARCH_CONFIG_FILE → PLANO_CONFIG_FILE,
arch_config.yaml → plano_config.yaml, archgw_logs → plano_logs
- config/test_passthrough.yaml: container mount path
- tests/e2e/docker-compose.yaml: source file path (was still arch_config.yaml)
- cli/planoai/core.py: comment and log message
- crates/brightstaff/src/tracing/constants.rs: doc comment
- tests/{e2e,archgw}/common.py: get_arch_messages → get_plano_messages,
arch_state/arch_messages variables renamed
- tests/{e2e,archgw}/test_prompt_gateway.py: updated imports and usages
- demos/shared/test_runner/{common,test_demos}.py: same renames
- tests/e2e/test_model_alias_routing.py: docstring
- .dockerignore: archgw_modelserver → plano_modelserver
- demos/use_cases/claude_code_router/pretty_model_resolution.sh: container name
Note: x-arch-* HTTP header values and Rust constant names intentionally
preserved for backwards compatibility with existing deployments.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
452 lines
10 KiB
YAML
452 lines
10 KiB
YAML
$schema: 'http://json-schema.org/draft-07/schema#'
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: string
|
|
enum:
|
|
- v0.1
|
|
- v0.1.0
|
|
- 0.1-beta
|
|
- 0.2.0
|
|
- v0.3.0
|
|
|
|
agents:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
url:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- id
|
|
- url
|
|
filters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
url:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- mcp
|
|
- http
|
|
transport:
|
|
type: string
|
|
enum:
|
|
- streamable-http
|
|
tool:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- id
|
|
- url
|
|
listeners:
|
|
oneOf:
|
|
- type: array
|
|
additionalProperties: false
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
port:
|
|
type: integer
|
|
address:
|
|
type: string
|
|
timeout:
|
|
type: string
|
|
router:
|
|
type: string
|
|
enum:
|
|
- plano_orchestrator_v1
|
|
max_retries:
|
|
type: integer
|
|
type:
|
|
type: string
|
|
enum:
|
|
- model
|
|
- prompt
|
|
- agent
|
|
agents:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description:
|
|
type: string
|
|
default:
|
|
type: boolean
|
|
filter_chain:
|
|
type: array
|
|
items:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- id
|
|
- description
|
|
additionalProperties: false
|
|
required:
|
|
- type
|
|
- name
|
|
- type: object # deprecated legacy format, use list format instead
|
|
additionalProperties: false
|
|
properties:
|
|
ingress_traffic:
|
|
type: object
|
|
properties:
|
|
address:
|
|
type: string
|
|
port:
|
|
type: integer
|
|
message_format:
|
|
type: string
|
|
enum:
|
|
- openai
|
|
timeout:
|
|
type: string
|
|
additionalProperties: false
|
|
egress_traffic:
|
|
type: object
|
|
properties:
|
|
address:
|
|
type: string
|
|
port:
|
|
type: integer
|
|
message_format:
|
|
type: string
|
|
enum:
|
|
- openai
|
|
timeout:
|
|
type: string
|
|
additionalProperties: false
|
|
endpoints:
|
|
type: object
|
|
patternProperties:
|
|
'^[a-zA-Z][a-zA-Z0-9_]*$':
|
|
type: object
|
|
properties:
|
|
endpoint:
|
|
type: string
|
|
pattern: '^.*$'
|
|
connect_timeout:
|
|
type: string
|
|
protocol:
|
|
type: string
|
|
enum:
|
|
- http
|
|
- https
|
|
http_host:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- endpoint
|
|
|
|
model_providers:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
access_key:
|
|
type: string
|
|
model:
|
|
type: string
|
|
default:
|
|
type: boolean
|
|
base_url:
|
|
type: string
|
|
passthrough_auth:
|
|
type: boolean
|
|
description: "When true, forwards the client's Authorization header to upstream instead of using the configured access_key. Useful for routing to services like LiteLLM that validate their own virtual keys."
|
|
http_host:
|
|
type: string
|
|
provider_interface:
|
|
type: string
|
|
enum:
|
|
- arch
|
|
- claude
|
|
- deepseek
|
|
- groq
|
|
- mistral
|
|
- openai
|
|
- gemini
|
|
routing_preferences:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- name
|
|
- description
|
|
additionalProperties: false
|
|
required:
|
|
- model
|
|
|
|
llm_providers: # deprecated for legacy support, use model_providers instead
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
access_key:
|
|
type: string
|
|
model:
|
|
type: string
|
|
default:
|
|
type: boolean
|
|
base_url:
|
|
type: string
|
|
passthrough_auth:
|
|
type: boolean
|
|
description: "When true, forwards the client's Authorization header to upstream instead of using the configured access_key. Useful for routing to services like LiteLLM that validate their own virtual keys."
|
|
http_host:
|
|
type: string
|
|
provider_interface:
|
|
type: string
|
|
enum:
|
|
- arch
|
|
- claude
|
|
- deepseek
|
|
- groq
|
|
- mistral
|
|
- openai
|
|
- gemini
|
|
routing_preferences:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- name
|
|
- description
|
|
additionalProperties: false
|
|
required:
|
|
- model
|
|
|
|
model_aliases:
|
|
type: object
|
|
patternProperties:
|
|
'^.*$':
|
|
type: object
|
|
properties:
|
|
target:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- target
|
|
|
|
overrides:
|
|
type: object
|
|
properties:
|
|
prompt_target_intent_matching_threshold:
|
|
type: number
|
|
optimize_context_window:
|
|
type: boolean
|
|
use_agent_orchestrator:
|
|
type: boolean
|
|
system_prompt:
|
|
type: string
|
|
prompt_targets:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
default:
|
|
type: boolean
|
|
description:
|
|
type: string
|
|
auto_llm_dispatch_on_response:
|
|
type: boolean
|
|
parameters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
type: boolean
|
|
default:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
- type: boolean
|
|
description:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
type: array
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
- type: boolean
|
|
in_path:
|
|
type: boolean
|
|
format:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- name
|
|
- description
|
|
- type
|
|
endpoint:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
path:
|
|
type: string
|
|
http_method:
|
|
type: string
|
|
enum:
|
|
- GET
|
|
- POST
|
|
http_headers:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- name
|
|
- path
|
|
system_prompt:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- name
|
|
- description
|
|
ratelimits:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
model:
|
|
type: string
|
|
selector:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- key
|
|
- value
|
|
limit:
|
|
type: object
|
|
properties:
|
|
tokens:
|
|
type: integer
|
|
unit:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- tokens
|
|
- unit
|
|
additionalProperties: false
|
|
required:
|
|
- model
|
|
- selector
|
|
- limit
|
|
tracing:
|
|
type: object
|
|
properties:
|
|
random_sampling:
|
|
type: integer
|
|
trace_arch_internal:
|
|
type: boolean
|
|
opentracing_grpc_endpoint:
|
|
type: string
|
|
additionalProperties: false
|
|
mode:
|
|
type: string
|
|
enum:
|
|
- llm
|
|
- prompt
|
|
routing:
|
|
type: object
|
|
properties:
|
|
llm_provider:
|
|
type: string
|
|
model:
|
|
type: string
|
|
additionalProperties: false
|
|
state_storage:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- memory
|
|
- postgres
|
|
connection_string:
|
|
type: string
|
|
description: Required when type is postgres. Supports environment variable substitution using $VAR or ${VAR} syntax.
|
|
additionalProperties: false
|
|
required:
|
|
- type
|
|
# Note: connection_string is conditionally required based on type
|
|
# If type is 'postgres', connection_string must be provided
|
|
# If type is 'memory', connection_string is not needed
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
type:
|
|
const: postgres
|
|
then:
|
|
required:
|
|
- connection_string
|
|
prompt_guards:
|
|
type: object
|
|
properties:
|
|
input_guards:
|
|
type: object
|
|
properties:
|
|
jailbreak:
|
|
type: object
|
|
properties:
|
|
on_exception:
|
|
type: object
|
|
properties:
|
|
message:
|
|
type: string
|
|
additionalProperties: false
|
|
required:
|
|
- message
|
|
additionalProperties: false
|
|
required:
|
|
- on_exception
|
|
additionalProperties: false
|
|
required:
|
|
- jailbreak
|
|
additionalProperties: false
|
|
required:
|
|
- version
|
|
- listeners
|