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