Commit graph

659 commits

Author SHA1 Message Date
Syed A. Hashmi
54bc8e5e52
[ISSUE 706]: Standardize returned errors from Plano (#772)
* [ISSUE 706]: Standardize returned errors from Plano

* Standardized errors in chat completion
2026-02-24 14:34:33 -08:00
Salman Paracha
69d650a4e5
updating architecture diagram (#774)
Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-342.local>
2026-02-21 16:00:02 -08:00
Adil Hafeez
21b043e6d0
add workflow preferences to CLAUDE.md (#770) 2026-02-18 20:24:34 -08:00
Adil Hafeez
baeee56f6b
Make model field optional in request types, resolve from default provider (#768) 2026-02-18 04:43:59 -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
Teja Sunku
4fe66c2918
docs: Fix incorrect routing preferences in OpenClaw demo config (#765) 2026-02-18 01:15:46 -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
c69fbd8a4d
Add OpenClaw + Plano intelligent routing demo (#761)
* Add OpenClaw + Plano intelligent routing demo

Demonstrates preference-based routing for personal AI assistants:
Kimi K2.5 handles conversation and agentic tasks, Claude handles
code generation, testing, and complex reasoning — with zero
application code changes and ~48% cost savings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Remove redundant provider_interface from Kimi K2.5 config

The openai/ prefix in the model name already sets the provider
interface. Setting provider_interface explicitly conflicts with it
and fails config validation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Simplify config to v0.3.0 format, remove explicit Arch-Router entry

Arch-Router is implicit when routing_preferences are defined.
Aligns with the preference_based_routing demo pattern.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Clean up Ollama/Arch-Router references, make Jaeger optional

Router is handled internally by Plano — no need for Ollama or
explicit Arch-Router setup. Jaeger is kept as an optional step
in the README for developers who want tracing visibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Remove run_demo.sh, use planoai CLI directly

The planoai CLI already handles startup. README now uses
planoai up/down directly instead of a wrapper script.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Remove docker-compose.yaml, use inline docker run for Jaeger

No need for a compose file when Jaeger is the only optional
service. A single docker run command in the README is simpler.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Clarify testing: OpenClaw channels vs direct Plano requests

Primary testing is through messaging channels (Telegram, Slack,
etc.) with log monitoring. The test_routing.sh script is now
documented as an optional direct verification tool.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add OpenClaw onboarding instructions to README

Includes install, onboarding wizard, channel setup, doctor
check, and how to point the gateway at Plano.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use OpenClaw onboarding wizard for Plano provider setup

Replace manual JSON config with instructions to use the
openclaw onboard wizard to set up a custom OpenAI-compatible
provider pointing at Plano.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fixed readme and removed unnecessary testing.sh file

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-342.local>
2026-02-17 06:34:54 -08:00
Adil Hafeez
bfbf838b19
release 0.4.7 (#752) 2026-02-17 05:45:44 -08:00
Adil Hafeez
50088d9eff
Add demos README with overview of all demo categories (#762) 2026-02-17 03:22:12 -08:00
Adil Hafeez
5d2279a796
Revert "Add OpenClaw + Plano intelligent routing demo"
This reverts commit 5090000fd2.
2026-02-17 03:15:42 -08:00
Adil Hafeez
5090000fd2
Add OpenClaw + Plano intelligent routing demo
Demonstrates preference-based routing for personal AI assistants:
Kimi K2.5 handles conversation and agentic tasks, Claude handles
code generation, testing, and complex reasoning — with zero
application code changes and ~48% cost savings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 03:13:55 -08:00
Adil Hafeez
473996d35d
Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
Adil Hafeez
c3591bcbf3
Upgrade CI, Docker, and demos to Python 3.14 (#759)
Update all GitHub Actions workflows and Dockerfiles to use Python 3.14
as the default version. Remove the upper bound on requires-python in
model_choice_with_test_harness to allow 3.14+. The CLI's
requires-python stays at >=3.10 for broad compatibility.
2026-02-15 10:22:33 -08:00
Adil Hafeez
9c4b2fc570
Remove security scan badge and keep CI, Docker, and Docs badges
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 00:41:06 -08:00
Adil Hafeez
b5de62c307
trigger CI to test security scan badge 2026-02-15 00:32:13 -08:00
Adil Hafeez
2fcae0453a
Update GitHub badges after CI consolidation (#758)
* Update GitHub badges after CI workflow consolidation

Fix broken README badges pointing to deleted workflow files (pre-commit.yml,
rust_tests.yml, e2e_tests.yml) and replace with consolidated CI badge. Add
Docker image publish badge and dynamic Trivy security scan badge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use existing ADIL_GITHUB_TOKEN secret for security badge

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 00:26:44 -08:00
Adil Hafeez
8a39446d95
Consolidate GitHub Actions CI from 15 to 5 workflow files (#757) 2026-02-14 18:49:08 -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
94f804991e
Add .env.local to gitignore and gitleaks pre-commit hook (#754)
Prevent future secret leaks by ignoring .env.local files and adding
gitleaks secret scanning to the pre-commit pipeline.
2026-02-13 15:51:08 -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
Salman Paracha
0557f7ff98
updated the models list to include models like Opus 4.6 (#753)
Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-342.local>
2026-02-13 15:08:11 -08:00
Adil Hafeez
cbcad54f74
Upgrade Python base images to 3.13.11 to fix CVE-2025-13836 (#751) 2026-02-13 14:44:16 -08:00
Adil Hafeez
3c8e899de3
Add CLAUDE.md for Claude Code onboarding (#743)
Provides build/test commands, architecture overview, and key conventions
so future Claude Code sessions can be productive immediately.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:34:39 -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
97bcd8cabb
update workspace to exclude build artifact path 2026-02-10 13:37:31 -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
5394ef5770
disable bedrock tests (#732) 2026-02-10 00:34:00 -08:00
Adil Hafeez
46de89590b
use standard tracing and logging in brightstaff (#721) 2026-02-09 13:33:27 -08:00
Adil Hafeez
4d9ed74b68
improve e2e tests (#731)
* fix build break

docs build was breaking because requirements file was getting ignored from .dockerignore

* improve e2e tests time

* fix: bump GH Actions to latest versions (checkout@v4, setup-python@v5, build-push-action@v6)

* more improvements

* fix perm

* more improvements

* parallel runs
2026-02-09 13:20:06 -08:00
Adil Hafeez
99077d83fb
fix build break (#730)
docs build was breaking because requirements file was getting ignored from .dockerignore
2026-02-09 10:08:20 -08:00
Adil Hafeez
631bd0db1a
speed up docker builds with rust dependency caching and introduce parallel stages (#727) 2026-02-09 09:25:57 -08:00
Adil Hafeez
e056ddbcd3
add log_level env var (#728) 2026-02-09 09:25:43 -08:00
Musa
4a6cea3545
remove and replace logo with clubcentric (#723) 2026-02-04 12:40:17 -08:00
Salman Paracha
7cba42f887
fixing the README for multi-agent orchestration (#722)
* fixing the README for multi-agent orchestration

* fixed issues where the multi-intent queries weren't being properly handled by GPT-40

* more fixes for the README.md and tracing visuals

* removed remnant Arch README.md

---------

Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-342.local>
2026-02-02 14:35:49 -08:00
Adil Hafeez
e41aa0a617
upgrade rust to 1.93.0 and fix pre-commit (#720) 2026-02-02 11:03:12 -08:00
Santhosh Gandhe
28a4242c6e
Removing duplicate lines and $ sign before the bash commands to make quick copy/paste possible of these commands possible. (#719)
Co-authored-by: Santhosh Gandhe <santhosh.gandhe@gmail.com>
2026-02-01 09:55:56 -08:00
Musa
8749593773
adding logo cloud component to katanemo-www (#718) 2026-01-31 21:25:59 -08:00
Salman Paracha
a278e67d9a
Site clean (#716)
* init next.js app

* add metadata for keyword selection

* minor heading changes

* updated title and keywords

* updating link to reach planoai.dev

---------

Co-authored-by: Musa <malikmusa1323@gmail.com>
Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-342.local>
2026-01-30 18:14:39 -08:00
Adil Hafeez
d8b4c800e6
release 0.4.4 (#713) 2026-01-28 20:45:10 -08:00
Adil Hafeez
062825f26e
add envoy retries (#712)
* add envoy retries

* add missing file

* fix tests

---------

Co-authored-by: Adil Hafeez <adil.hafeez10@t-mobile.com>
2026-01-28 20:31:01 -08:00
Salman Paracha
2a36dd7376
fixing the build scripts for documentation (#711)
Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-342.local>
2026-01-28 18:55:35 -08:00
Musa
56b3246f30
introduce SEO optimization and improve blog content rendering (#709)
* introduce SEO optimizations for marketing reach

* quality of life updates to Next

* format with biome

* improve wording on home badge

* adding additional keyword based on trends

* add code block and markdown support for blogs

* Update metadata for SEO
2026-01-28 17:52:39 -08:00
Salman Paracha
2941392ed1
Adding support for wildcard models in the model_providers config (#696)
* cleaning up plano cli commands

* adding support for wildcard model providers

* fixing compile errors

* fixing bugs related to default model provider, provider hint and duplicates in the model provider list

* fixed cargo fmt issues

* updating tests to always include the model id

* using default for the prompt_gateway path

* fixed the model name, as gpt-5-mini-2025-08-07 wasn't in the config

* making sure that all aliases and models match the config

* fixed the config generator to allow for base_url providers LLMs to include wildcard models

* re-ran the models list utility and added a shell script to run it

* updating docs to mention wildcard model providers

* updated provider_models.json to yaml, added that file to our docs for reference

* updating the build docs to use the new root-based build

---------

Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-342.local>
2026-01-28 17:47:33 -08:00
Adil Hafeez
8428b06e22
add ability to set agent timeout (#710)
Co-authored-by: Adil Hafeez <adil.hafeez10@t-mobile.com>
2026-01-28 17:18:20 -08:00