Musa
b81eb7266c
feat(providers): add Vercel AI Gateway and OpenRouter support ( #902 )
...
CI / pre-commit (push) Waiting to run
CI / plano-tools-tests (push) Waiting to run
CI / native-smoke-test (push) Waiting to run
CI / docker-build (push) Waiting to run
CI / validate-config (push) Waiting to run
CI / security-scan (push) Blocked by required conditions
CI / test-prompt-gateway (push) Blocked by required conditions
CI / test-model-alias-routing (push) Blocked by required conditions
CI / test-responses-api-with-state (push) Blocked by required conditions
CI / e2e-plano-tests (3.10) (push) Blocked by required conditions
CI / e2e-plano-tests (3.11) (push) Blocked by required conditions
CI / e2e-plano-tests (3.12) (push) Blocked by required conditions
CI / e2e-plano-tests (3.13) (push) Blocked by required conditions
CI / e2e-plano-tests (3.14) (push) Blocked by required conditions
CI / e2e-demo-preference (push) Blocked by required conditions
CI / e2e-demo-currency (push) Blocked by required conditions
Publish docker image (latest) / build-arm64 (push) Waiting to run
Publish docker image (latest) / build-amd64 (push) Waiting to run
Publish docker image (latest) / create-manifest (push) Blocked by required conditions
Build and Deploy Documentation / build (push) Waiting to run
* add Vercel and OpenRouter as OpenAI-compatible LLM providers
* fix(fmt): fix cargo fmt line length issues in provider id tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* style(hermesllm): fix rustfmt formatting in provider id tests
* Add Vercel and OpenRouter to zero-config planoai up defaults
Wires `vercel/*` and `openrouter/*` into the synthesized default config so
`planoai up` with no user config exposes both providers out of the box
(env-keyed via AI_GATEWAY_API_KEY / OPENROUTER_API_KEY, pass-through
otherwise). Registers both in SUPPORTED_PROVIDERS_WITHOUT_BASE_URL so
wildcard model entries validate without an explicit provider_interface.
---------
Co-authored-by: Musa Malik <musam@uw.edu>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 15:54:39 -07:00
Musa
78dc4edad9
Add first-class ChatGPT subscription provider support ( #881 )
...
* Add first-class ChatGPT subscription provider support
* Address PR feedback: move uuid import to top, reuse parsed config in up()
* Add ChatGPT token watchdog for seamless long-lived sessions
* Address PR feedback: error on stream=false for ChatGPT, fix auth file permissions
* Replace ChatGPT watchdog/restart with passthrough_auth
---------
Co-authored-by: Musa Malik <musam@uw.edu>
2026-04-23 15:34:44 -07:00
Adil Hafeez
9812540602
Improve obs model name matching, latency metrics, and error reporting ( #900 )
CI / pre-commit (push) Has been cancelled
CI / plano-tools-tests (push) Has been cancelled
CI / native-smoke-test (push) Has been cancelled
CI / docker-build (push) Has been cancelled
CI / validate-config (push) Has been cancelled
Publish docker image (latest) / build-arm64 (push) Has been cancelled
Publish docker image (latest) / build-amd64 (push) Has been cancelled
Build and Deploy Documentation / build (push) Has been cancelled
CI / security-scan (push) Has been cancelled
CI / test-prompt-gateway (push) Has been cancelled
CI / test-model-alias-routing (push) Has been cancelled
CI / test-responses-api-with-state (push) Has been cancelled
CI / e2e-plano-tests (3.10) (push) Has been cancelled
CI / e2e-plano-tests (3.11) (push) Has been cancelled
CI / e2e-plano-tests (3.12) (push) Has been cancelled
CI / e2e-plano-tests (3.13) (push) Has been cancelled
CI / e2e-plano-tests (3.14) (push) Has been cancelled
CI / e2e-demo-preference (push) Has been cancelled
CI / e2e-demo-currency (push) Has been cancelled
Publish docker image (latest) / create-manifest (push) Has been cancelled
2026-04-18 21:21:15 -07:00
Adil Hafeez
c3c213b2fd
Fix request closures during long-running streaming ( #899 )
2026-04-18 21:20:34 -07:00
Adil Hafeez
254d2b03bc
release: bump version to 0.4.20 ( #897 )
CI / pre-commit (push) Waiting to run
CI / plano-tools-tests (push) Waiting to run
CI / native-smoke-test (push) Waiting to run
CI / docker-build (push) Waiting to run
CI / validate-config (push) Waiting to run
CI / security-scan (push) Blocked by required conditions
CI / test-prompt-gateway (push) Blocked by required conditions
CI / test-model-alias-routing (push) Blocked by required conditions
CI / test-responses-api-with-state (push) Blocked by required conditions
CI / e2e-plano-tests (3.10) (push) Blocked by required conditions
CI / e2e-plano-tests (3.11) (push) Blocked by required conditions
CI / e2e-plano-tests (3.12) (push) Blocked by required conditions
CI / e2e-plano-tests (3.13) (push) Blocked by required conditions
CI / e2e-plano-tests (3.14) (push) Blocked by required conditions
CI / e2e-demo-preference (push) Blocked by required conditions
CI / e2e-demo-currency (push) Blocked by required conditions
Publish docker image (latest) / build-arm64 (push) Waiting to run
Publish docker image (latest) / build-amd64 (push) Waiting to run
Publish docker image (latest) / create-manifest (push) Blocked by required conditions
Build and Deploy Documentation / build (push) Waiting to run
2026-04-17 21:16:12 -07:00
Adil Hafeez
0f67b2c806
planoai obs: live LLM observability TUI ( #891 )
2026-04-17 14:03:47 -07:00
Adil Hafeez
1f701258cb
Zero-config planoai up: pass-through proxy with auto-detected providers ( #890 )
2026-04-17 13:11:12 -07:00
Adil Hafeez
711e4dd07d
Add DigitalOcean as a first-class LLM provider ( #889 )
2026-04-17 12:25:34 -07:00
Adil Hafeez
d39d7ddd1c
release 0.4.19 ( #887 )
CI / pre-commit (push) Waiting to run
CI / plano-tools-tests (push) Waiting to run
CI / native-smoke-test (push) Waiting to run
CI / docker-build (push) Waiting to run
CI / validate-config (push) Waiting to run
CI / security-scan (push) Blocked by required conditions
CI / test-prompt-gateway (push) Blocked by required conditions
CI / test-model-alias-routing (push) Blocked by required conditions
CI / test-responses-api-with-state (push) Blocked by required conditions
CI / e2e-plano-tests (3.10) (push) Blocked by required conditions
CI / e2e-plano-tests (3.11) (push) Blocked by required conditions
CI / e2e-plano-tests (3.12) (push) Blocked by required conditions
CI / e2e-plano-tests (3.13) (push) Blocked by required conditions
CI / e2e-plano-tests (3.14) (push) Blocked by required conditions
CI / e2e-demo-preference (push) Blocked by required conditions
CI / e2e-demo-currency (push) Blocked by required conditions
Publish docker image (latest) / build-arm64 (push) Waiting to run
Publish docker image (latest) / build-amd64 (push) Waiting to run
Publish docker image (latest) / create-manifest (push) Blocked by required conditions
Build and Deploy Documentation / build (push) Waiting to run
2026-04-15 16:49:50 -07:00
Adil Hafeez
90b926c2ce
use plano-orchestrator for LLM routing, remove arch-router ( #886 )
2026-04-15 16:41:42 -07:00
Musa
128059e7c1
release 0.4.18 ( #878 )
CI / security-scan (push) Blocked by required conditions
CI / test-prompt-gateway (push) Blocked by required conditions
CI / test-model-alias-routing (push) Blocked by required conditions
CI / test-responses-api-with-state (push) Blocked by required conditions
CI / e2e-plano-tests (3.10) (push) Blocked by required conditions
CI / e2e-plano-tests (3.11) (push) Blocked by required conditions
CI / e2e-plano-tests (3.12) (push) Blocked by required conditions
CI / e2e-plano-tests (3.13) (push) Blocked by required conditions
CI / e2e-plano-tests (3.14) (push) Blocked by required conditions
CI / e2e-demo-preference (push) Blocked by required conditions
CI / e2e-demo-currency (push) Blocked by required conditions
CI / pre-commit (push) Has been cancelled
CI / plano-tools-tests (push) Has been cancelled
CI / native-smoke-test (push) Has been cancelled
CI / docker-build (push) Has been cancelled
CI / validate-config (push) Has been cancelled
Publish docker image (latest) / build-arm64 (push) Has been cancelled
Publish docker image (latest) / build-amd64 (push) Has been cancelled
Publish docker image (latest) / create-manifest (push) Has been cancelled
Build and Deploy Documentation / build (push) Has been cancelled
2026-04-09 13:12:45 -07:00
Musa
978b1ea722
Add first-class Xiaomi provider support ( #863 )
...
CI / pre-commit (push) Has been cancelled
CI / plano-tools-tests (push) Has been cancelled
CI / native-smoke-test (push) Has been cancelled
CI / docker-build (push) Has been cancelled
CI / validate-config (push) Has been cancelled
CI / security-scan (push) Has been cancelled
CI / test-prompt-gateway (push) Has been cancelled
CI / test-model-alias-routing (push) Has been cancelled
CI / test-responses-api-with-state (push) Has been cancelled
CI / e2e-plano-tests (3.10) (push) Has been cancelled
CI / e2e-plano-tests (3.11) (push) Has been cancelled
CI / e2e-plano-tests (3.12) (push) Has been cancelled
CI / e2e-plano-tests (3.13) (push) Has been cancelled
CI / e2e-plano-tests (3.14) (push) Has been cancelled
CI / e2e-demo-preference (push) Has been cancelled
CI / e2e-demo-currency (push) Has been cancelled
Publish docker image (latest) / build-arm64 (push) Has been cancelled
Publish docker image (latest) / build-amd64 (push) Has been cancelled
Publish docker image (latest) / create-manifest (push) Has been cancelled
Build and Deploy Documentation / build (push) Has been cancelled
* feat(provider): add xiaomi as first-class provider
* feat(demos): add xiaomi mimo integration demo
* refactor(demos): remove Xiaomi MiMo integration demo and update documentation
* updating model list and adding the xiamoi models
---------
Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-389.local>
2026-04-04 09:58:36 -07:00
Adil Hafeez
9406af3a09
release 0.4.17 ( #869 )
CI / pre-commit (push) Waiting to run
CI / plano-tools-tests (push) Waiting to run
CI / native-smoke-test (push) Waiting to run
CI / docker-build (push) Waiting to run
CI / validate-config (push) Waiting to run
CI / security-scan (push) Blocked by required conditions
CI / test-prompt-gateway (push) Blocked by required conditions
CI / test-model-alias-routing (push) Blocked by required conditions
CI / test-responses-api-with-state (push) Blocked by required conditions
CI / e2e-plano-tests (3.10) (push) Blocked by required conditions
CI / e2e-plano-tests (3.11) (push) Blocked by required conditions
CI / e2e-plano-tests (3.12) (push) Blocked by required conditions
CI / e2e-plano-tests (3.13) (push) Blocked by required conditions
CI / e2e-plano-tests (3.14) (push) Blocked by required conditions
CI / e2e-demo-preference (push) Blocked by required conditions
CI / e2e-demo-currency (push) Blocked by required conditions
Publish docker image (latest) / build-arm64 (push) Waiting to run
Publish docker image (latest) / build-amd64 (push) Waiting to run
Publish docker image (latest) / create-manifest (push) Blocked by required conditions
Build and Deploy Documentation / build (push) Waiting to run
2026-04-03 10:05:33 -07:00
Adil Hafeez
5d79e7a7d4
fix: resolve all open Dependabot security alerts ( #866 )
2026-04-02 18:00:28 -07:00
Musa
0857cfafbf
release 0.4.16 ( #859 )
2026-03-31 17:45:28 -07:00
Musa
36fa42b364
Improve planoai up/down CLI progress output ( #858 )
2026-03-31 14:26:32 -07:00
Musa
82f34f82f2
Update black hook for Python 3.14 ( #857 )
...
* Update pre-commit black to latest release
* Reformat Python files for new black version
2026-03-31 13:18:45 -07:00
Adil Hafeez
f019f05738
release 0.4.15 ( #853 )
2026-03-30 17:33:40 -07:00
Adil Hafeez
406fa92802
release 0.4.14 ( #840 )
2026-03-20 00:51:37 -07:00
Adil Hafeez
cdad02c5ee
release 0.4.13 ( #837 )
2026-03-19 19:51:58 -07:00
Adil Hafeez
1f23c573bf
add output filter chain ( #822 )
2026-03-18 17:58:20 -07:00
Adil Hafeez
f1b8c03e2f
release 0.4.12 ( #830 )
2026-03-15 13:03:32 -07:00
Adil Hafeez
5d85829bc2
Improve config validation error messages ( #825 )
...
* improve config validation error messages and update getting started demo
* fix black formatting
2026-03-15 09:36:58 -07:00
Adil Hafeez
bc059aed4d
Unified overrides for custom router and orchestrator models ( #820 )
...
* support configurable orchestrator model via orchestration config section
* add self-hosting docs and demo for Plano-Orchestrator
* list all Plano-Orchestrator model variants in docs
* use overrides for custom routing and orchestration model
* update docs
* update orchestrator model name
* rename arch provider to plano, use llm_routing_model and agent_orchestration_model
* regenerate rendered config reference
2026-03-15 09:36:11 -07:00
Musa
6610097659
Support for Codex via Plano ( #808 )
...
* Add Codex CLI support; xAI response improvements
* Add native Plano running check and update CLI agent error handling
* adding PR suggestions for transformations and code quality
* message extraction logic in ResponsesAPIRequest
* xAI support for Responses API by routing to native endpoint + refactor code
2026-03-10 20:54:14 -07:00
Adil Hafeez
b9f01c8471
support native mode in planoai logs command ( #807 )
2026-03-05 18:34:06 -08:00
Adil Hafeez
065328e11c
release 0.4.11 ( #806 )
2026-03-05 13:58:19 -08:00
Adil Hafeez
780a0af132
Use editable install to fix sdist build failure ( #805 )
2026-03-05 13:50:50 -08:00
Adil Hafeez
a1508f4de1
fix pypi publish: use wheel-only build, remove build hook ( #804 )
2026-03-05 12:54:40 -08:00
Adil Hafeez
8f7a8a8a17
fix sdist build: use build hook to bundle config files ( #803 )
...
* fix sdist build: use build hook to bundle config files
* copy hatch_build.py in Dockerfile
2026-03-05 12:40:50 -08:00
Adil Hafeez
c13ce19293
release 0.4.10 ( #802 )
2026-03-05 12:17:45 -08:00
Adil Hafeez
36cbe3f589
show download progress bar instead of curl output ( #801 )
2026-03-05 12:09:25 -08:00
Adil Hafeez
f63d5de02c
Run plano natively by default ( #744 )
2026-03-05 07:35:25 -08:00
Adil Hafeez
d9404afa4d
release 0.4.9 ( #785 )
2026-02-26 16:18:02 -08:00
Musa
ed64230833
add support for background trace collection and tracing output ( #749 )
...
* feat: add trace listener process management and foreground mode
* docs: add CLI reference documentation and update index
* fix: test coverage failing
* refactor: simplify trace listener initialization and remove debug mode handling
* docs: add CLI command screenshots to reference documentation
* fix: update trace listener PID file path
* refactor: integrate trace listener management into runtime module and streamline PID handling
* adjusting trace command for feedback on PR
2026-02-24 19:17:33 -08:00
Adil Hafeez
7b5f1549a5
release 0.4.8 ( #767 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 01:52:55 -08:00
Adil Hafeez
98b979ce54
Upstream TLS validation and configurable connect timeout ( #766 )
2026-02-18 01:19:20 -08:00
Musa
d70f79b41c
sync CLI templates with demo configs via manifest + CI flow ( #764 )
...
* feat: add template synchronization utility and CI integration
* refactor: make simple write to CI, no check
* ci: conditionally sync CLI templates on push to main branch
* docs: fix small capitalization
2026-02-17 12:59:09 -08:00
Adil Hafeez
bfbf838b19
release 0.4.7 ( #752 )
2026-02-17 05:45:44 -08:00
Adil Hafeez
473996d35d
Overhaul demos directory: cleanup, restructure, and standardize configs ( #760 )
2026-02-17 03:09:28 -08:00
Musa
ef285f1213
Add error handling for OTLP/gRPC listener binding in trace command ( #748 )
2026-02-14 15:28:45 -08:00
Adil Hafeez
1df43872a6
Fix code scanning and dependabot security alerts ( #756 )
...
* Fix code scanning and dependabot security alerts
Code scanning fixes (14 alerts):
- Fix XSS in OG image route by validating request origin against allowlist
- Fix incomplete URL sanitization in blog layout using exact hostname matching
- Bind port-check socket to 127.0.0.1 instead of 0.0.0.0
- Add explicit permissions to 7 GitHub Actions workflows
Dependabot fixes:
- Update @isaacs/brace-expansion 5.0.0 -> 5.0.1 (CVE-2026-25547)
- Update bytes 1.10.1 -> 1.11.1 (CVE-2026-25541)
- Update time 0.3.41 -> 0.3.47 (CVE-2026-25727)
- Update cryptography 45.0.7 -> 46.0.5 (CVE-2026-26007)
- Update python-multipart 0.0.20 -> 0.0.22 (CVE-2026-24486)
- Update urllib3 2.6.2 -> 2.6.3 in test lockfiles (CVE-2026-21441)
- Update Werkzeug 3.1.4 -> 3.1.5 (CVE-2026-21860)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Address PR review feedback
- Replace plano.katanemo.com with planoai.dev in allowed hosts
- Add planoai.dev to OG route and blog layout allowlists
- Revert socket bind to 0.0.0.0 (intentional for port-in-use check)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 12:27:07 -08:00
Adil Hafeez
38646fdac2
Add Trivy Docker security scan to CI ( #755 )
...
* Add Trivy Docker image security scan workflow
Scans the Docker image for CRITICAL and HIGH vulnerabilities using Trivy.
Blocks PRs on failures; runs non-blocking on main for visibility. Results
are uploaded to the GitHub Security tab via SARIF.
* Add explicit permissions to Docker security scan workflow
Set minimal permissions: contents read for checkout, security-events
write for SARIF upload to the GitHub Security tab.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix 27 HIGH vulnerabilities found by Trivy Docker scan
- Install supervisor via pip instead of apt to eliminate 22 Debian
python3.13 package vulnerabilities
- Pin urllib3>=2.6.3 to fix CVE-2025-66418, CVE-2025-66471, CVE-2026-21441
- Add ignore-unfixed to Trivy scan to suppress unfixable glibc CVE-2026-0861
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 19:53:49 -08:00
Adil Hafeez
ba651aaf71
Rename all arch references to plano ( #745 )
...
* 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>
2026-02-13 15:16:56 -08:00
Adil Hafeez
b9b91ddc74
release 0.4.6 ( #740 )
2026-02-10 21:00:29 -08:00
Adil Hafeez
f066163c72
fix cli ( #739 )
2026-02-10 20:50:25 -08:00
Adil Hafeez
25693c36ee
release 0.4.5 ( #737 )
2026-02-10 13:37:04 -08:00
Musa
e3bf2b7f71
Introduce brand new CLI experience with tracing and quickstart ( #724 )
...
Release hardens tracing and routing: clearer CLI, modular internals, updated demos/docs/tests, and improved multi-agent reliability.
Co-authored-by: Adil Hafeez <adil.hafeez@gmail.com>
2026-02-10 13:17:43 -08:00
Adil Hafeez
46de89590b
use standard tracing and logging in brightstaff ( #721 )
2026-02-09 13:33:27 -08:00
Adil Hafeez
e056ddbcd3
add log_level env var ( #728 )
2026-02-09 09:25:43 -08:00