Commit graph

660 commits

Author SHA1 Message Date
Adil Hafeez
21d4806304 add day time unit for ratelimits
PR #851 added ratelimit examples using unit: day but the Rust
TimeUnit enum only had second/minute/hour. Adds Day variant and
maps it to per-hour quota (tokens/24).
2026-03-30 13:38:48 -07:00
Adil Hafeez
d96a2b32f7 use uv run in validate script for local dev
Falls back to bare python when uv is not available (CI).
2026-03-30 13:32:50 -07:00
Adil Hafeez
9487c085d7 fix config reference: remove duplicate models, fix validation errors
PR #851 introduced duplicate openai/gpt-4o entries and set
use_agent_orchestrator: true with multiple endpoints. Fixed by using
groq/llama-3.3-70b-versatile for the routing_preferences example
and setting use_agent_orchestrator: false.
2026-03-30 13:27:06 -07:00
Adil Hafeez
87343e19d4 Merge remote-tracking branch 'origin/main' into adil/top-level-routing-preferences 2026-03-30 13:23:57 -07:00
Adil Hafeez
5b869648c4 remove random selection policy — consumers can shuffle client-side
Plano should only handle ranking that requires server-side data
(cost metrics, latency). Random shuffling is trivial for callers.
2026-03-30 12:33:06 -07:00
Musa
3a531ce22a
expand configuration reference with missing fields (#851) 2026-03-30 12:25:05 -07:00
Adil Hafeez
41e6b489f5 fix pre-commit: black format metrics_server.py, remove trailing newline in config.yaml 2026-03-27 17:45:38 -07:00
Adil Hafeez
3af94d3bce docs: note per-request warning for models with no metric data 2026-03-27 17:33:50 -07:00
Adil Hafeez
a7903d9271 add model_aliases to digitalocean_pricing, use model_id as key, warn on missing data at request time 2026-03-27 17:32:15 -07:00
Adil Hafeez
bd335cd8bd fix DO pricing URL, model_providers name validation, cost_metrics demo endpoint 2026-03-27 17:14:18 -07:00
Adil Hafeez
bd7afd911e add DigitalOcean pricing, startup validation, and demo update
- MetricsSource::DigitalOceanPricing variant: fetch public DO Gen-AI pricing, normalize as lowercase(creator)/model_id, cost = input + output per million
- cost_metrics endpoint format updated to { "model": { "input_per_million": X, "output_per_million": Y } }
- Startup errors: prefer:cheapest requires cost source, prefer:fastest requires prometheus
- Startup warning: models with no pricing/latency data ranked last
- One-per-type enforcement: digitalocean_pricing; error if cost_metrics + digitalocean_pricing both configured
- cost_snapshot() / latency_snapshot() on ModelMetricsService for startup checks
- Demo config updated to v0.4.0 top-level routing_preferences with cheapest + fastest policies
- docker-compose.yaml + prometheus.yaml + metrics_server.py for demo latency metrics
- Schema and docs updated
2026-03-27 16:54:37 -07:00
Adil Hafeez
76b1f37052 redesign model_metrics_sources, drop legacy per-provider routing, return ranked model list 2026-03-27 12:37:38 -07:00
Adil Hafeez
b12bf74e5c cargo fmt 2026-03-26 21:02:52 -07:00
Adil Hafeez
2ef938ac5f add top-level routing_preferences with selection_policy and model metrics fetch 2026-03-26 17:35:39 -07:00
Adil Hafeez
406fa92802
release 0.4.14 (#840) 2026-03-20 00:51:37 -07:00
Salman Paracha
69df124c47
the orchestrator had a bug where it was setting the wrong headers for archfc.katanemo.dev (#839)
Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-389.local>
2026-03-20 00:40:47 -07:00
Adil Hafeez
180a9cb748
separate config generation from process startup in supervisord (#838) 2026-03-19 22:37:56 -07:00
Adil Hafeez
cdad02c5ee
release 0.4.13 (#837) 2026-03-19 19:51:58 -07:00
Adil Hafeez
1ad3e0f64e
refactor brightstaff (#736) 2026-03-19 17:58:33 -07:00
Adil Hafeez
1f23c573bf
add output filter chain (#822) 2026-03-18 17:58:20 -07:00
Adil Hafeez
de2d8847f3
fix CVE-2026-0861: upgrade glibc via apt-get upgrade in Dockerfile (#832) 2026-03-16 13:27:37 -07:00
Adil Hafeez
5388c6777f
add k8s deployment manifests and docs for self-hosted Arch-Router (#831) 2026-03-16 12:05:30 -07:00
Adil Hafeez
f1b8c03e2f
release 0.4.12 (#830) 2026-03-15 13:03:32 -07:00
Salman Paracha
4bb5c6404f
adding new supported models to plano (#829)
Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-389.local>
2026-03-15 12:37:20 -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
Adil Hafeez
785bf7e021
add build-cli and build-brightstaff skills (#824) 2026-03-13 00:28:35 -07:00
Adil Hafeez
2f52774c0e
Add Claude Code skills and streamline CLAUDE.md (#823)
* add claude code skills and streamline CLAUDE.md

* remove claude code attribution from PR skill

* update pr skill
2026-03-13 00:18:41 -07:00
Adil Hafeez
5400b0a2fa
add instructions on hosting arch-router locally (#819) 2026-03-11 15:28:50 -07:00
Adil Hafeez
b4313d93a4
Run demos without Docker (#809) 2026-03-11 12:49:36 -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
5189f7907a
add k8s deploy guide (#816) 2026-03-10 12:27:31 -07:00
Adil Hafeez
97b7a390ef
support inline routing_policy in request body (#811) (#815) 2026-03-10 12:23:18 -07:00
Adil Hafeez
028a2cd196
add routing service (#814)
fixes https://github.com/katanemo/plano/issues/810
2026-03-09 16:32:16 -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
abb89382f7
fix gzip hard link error in WASM plugin upload (#800) 2026-03-05 08:49:04 -08:00
Adil Hafeez
f63d5de02c
Run plano natively by default (#744) 2026-03-05 07:35:25 -08:00
Adil Hafeez
198c912202
allow otel collector endpoint to be set from config (#794)
Co-authored-by: Adil Hafeez <adil.hafeez10@t-mobile.com>
2026-03-01 04:05:45 -08:00
Musa
15c6c62df0
fix: strip trailing 'Copy code' from clipboard when copying code blocks (#788)
Co-authored-by: Claude <noreply@anthropic.com>
2026-02-27 13:11:26 -08:00
Adil Hafeez
d9404afa4d
release 0.4.9 (#785) 2026-02-26 16:18:02 -08:00
Salman Chishti
5082f087c6
Upgrade GitHub Actions to latest versions (#782)
Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
2026-02-26 12:17:32 -08:00
Salman Chishti
e2380063f7
Upgrade GitHub Actions for Node 24 compatibility (#781)
Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
2026-02-26 10:45:03 -08:00
Musa
2bde21ff57
add Custom Trace Attributes to extend observability (#708)
* add custom trace attributes

* refactor: prefix custom trace attributes and update schema handlers tests configs

* refactor: rename custom_attribute_prefixes to span_attribute_header_prefixes in configuration and related handlers

* docs: add section on custom span attributes

* refactor: update tracing configuration to use span attributes and adjust related handlers

* docs: custom span attributes section to include static attributes and clarify configuration

* add custom trace attributes

* refactor: prefix custom trace attributes and update schema handlers tests configs

* refactor: rename custom_attribute_prefixes to span_attribute_header_prefixes in configuration and related handlers

* docs: add section on custom span attributes

* refactor: update tracing configuration to use span attributes and adjust related handlers

* docs: custom span attributes section to include static attributes and clarify configuration

* refactor: remove TraceCollector usage and enhance logging with structured attributes

* refactor: custom trace attribute extraction to improve clarity

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 16:27:20 -08:00
Adil Hafeez
70ad56a258
remove exposed example passwords from documentation (#779)
* remove exposed example passwords from documentation

Replace hardcoded example password (MyPass#123/MyPass%23123) and
project-specific Supabase references (postgres.myproject) with
generic placeholders in docs.

https://claude.ai/code/session_01H5wj3VH1Jh28kzepEwdDCx

* remove hardcoded FlightAware AeroAPI key from flights.py

https://claude.ai/code/session_01H5wj3VH1Jh28kzepEwdDCx

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-25 13:14:36 -08:00