Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
f7d4c6c
docs(experimental): add native protocol roadmap
Mirrowel May 30, 2026
58415f5
feat(protocols): add native protocol core
Mirrowel May 30, 2026
004d471
feat(protocols): add OpenAI chat adapter
Mirrowel May 30, 2026
1a6b564
feat(protocols): add Anthropic messages adapter
Mirrowel May 30, 2026
7df4ae9
feat(protocols): add Gemini adapter
Mirrowel May 30, 2026
aaefc64
feat(protocols): add Responses adapter
Mirrowel May 30, 2026
8a25309
fix(protocols): harden Phase 1 review findings
Mirrowel May 30, 2026
cb66027
fix(protocols): preserve native block and output fidelity
Mirrowel May 30, 2026
46696d5
docs(experimental): plan transform trace logging
Mirrowel May 30, 2026
1b84321
feat(logging): add transform trace writer
Mirrowel May 30, 2026
78fac93
feat(logging): trace transaction transform passes
Mirrowel May 30, 2026
f201626
fix(logging): harden transform trace correlation
Mirrowel May 30, 2026
ef3cc19
docs(experimental): plan adapters and field cache
Mirrowel May 30, 2026
80f4506
feat(adapters): add payload adapter registry
Mirrowel May 30, 2026
eef4383
feat(field-cache): add rules and path helpers
Mirrowel May 30, 2026
ce9d660
feat(field-cache): add scoped cache engine
Mirrowel May 30, 2026
790e52e
test(field-cache): cover adapter and cache trace passes
Mirrowel May 30, 2026
bcb4a58
feat(providers): declare protocol adapter hooks
Mirrowel May 30, 2026
27aa7c1
fix(field-cache): close Phase 3 review gaps
Mirrowel May 30, 2026
4caf56a
docs(experimental): plan responses api
Mirrowel May 30, 2026
c881602
feat(responses): add response storage
Mirrowel May 30, 2026
f3541ab
feat(responses): add chat bridge
Mirrowel May 30, 2026
f1839cd
feat(responses): add response service
Mirrowel May 30, 2026
e7f0e7d
feat(responses): add non-stream routes
Mirrowel May 30, 2026
1b02727
feat(responses): stream HTTP SSE events
Mirrowel May 30, 2026
05108ff
fix(responses): close Phase 4 review gaps
Mirrowel May 30, 2026
456a6bb
docs(experimental): plan provider protocol overhaul
Mirrowel May 30, 2026
d3028ad
feat(native-provider): add opt-in executor foundation
Mirrowel May 30, 2026
6eef5fa
feat(native-provider): add streaming foundation
Mirrowel May 30, 2026
34483ef
feat(providers): add Claude Code native skeleton
Mirrowel May 30, 2026
d0abac0
feat(providers): add Codex native skeleton
Mirrowel May 30, 2026
eec7544
feat(providers): add Copilot native skeleton
Mirrowel May 30, 2026
ae7dbab
feat(providers): restore Antigravity native skeleton
Mirrowel May 30, 2026
4c2b34b
feat(providers): declare Gemini CLI native protocol metadata
Mirrowel May 30, 2026
42168ce
fix(native-provider): align provider adapters and trace passes
Mirrowel May 30, 2026
b38054c
docs(experimental): plan routing fallback groups
Mirrowel May 30, 2026
ce9d085
feat(routing): add fallback group primitives
Mirrowel May 30, 2026
036eecf
feat(routing): add target context cloning
Mirrowel May 30, 2026
589603c
feat(routing): add fallback attempt runner
Mirrowel May 30, 2026
9293035
feat(routing): integrate non-streaming fallback attempts
Mirrowel May 30, 2026
744cf59
feat(routing): select native custom and fallback execution
Mirrowel May 30, 2026
9fdaf31
feat(routing): add streaming fallback policy
Mirrowel May 30, 2026
94d800f
fix(routing): wire resolver and align fallback errors
Mirrowel May 30, 2026
2fbfca9
docs(experimental): plan retry cooldown failover cleanup
Mirrowel May 31, 2026
6498eef
feat(retry): add retry policy helpers
Mirrowel May 31, 2026
3998038
fix(cooldown): preserve longer provider cooldowns
Mirrowel May 31, 2026
0ac6c50
feat(retry): activate provider cooldowns
Mirrowel May 31, 2026
207b7a2
feat(routing): honor fallback group policies
Mirrowel May 31, 2026
f197d2e
feat(routing): summarize fallback target failures
Mirrowel May 31, 2026
f954668
fix(retry): activate cooldowns for stream failures
Mirrowel May 31, 2026
4f5d650
docs(experimental): plan streaming library upgrade
Mirrowel May 31, 2026
9bd1ef7
feat(streaming): add stream event primitives
Mirrowel May 31, 2026
e756795
feat(streaming): centralize stream retry policy
Mirrowel May 31, 2026
b6760d3
feat(streaming): add stream error decisions
Mirrowel May 31, 2026
1eb3868
feat(streaming): trace stream lifecycle metrics
Mirrowel May 31, 2026
1374388
feat(streaming): add native streaming opt-in seam
Mirrowel May 31, 2026
1c67bb8
feat(streaming): trace responses stream metrics
Mirrowel May 31, 2026
052a62c
docs(experimental): plan usage quota cost
Mirrowel May 31, 2026
ec38cc0
feat(usage): add normalized usage records
Mirrowel May 31, 2026
e2fd825
feat(usage): add advisory cost calculator
Mirrowel May 31, 2026
4d194e4
feat(usage): account for executor responses
Mirrowel May 31, 2026
cf964f2
feat(usage): account for stream usage
Mirrowel May 31, 2026
665b14a
feat(usage): add quota snapshots
Mirrowel May 31, 2026
07c7a21
feat(usage): trace responses and native usage
Mirrowel May 31, 2026
f047bf1
fix(usage): close Phase 9 review gaps
Mirrowel May 31, 2026
751ef72
chore(usage): remove unused accounting wrapper
Mirrowel May 31, 2026
a9f5729
docs(experimental): plan config polish
Mirrowel May 31, 2026
3059fcf
feat(config): add experimental config loader
Mirrowel May 31, 2026
3996cab
feat(config): support json routing config
Mirrowel May 31, 2026
c2d5dbb
feat(config): add configured model pricing
Mirrowel May 31, 2026
422f8fb
feat(config): add stream runtime settings
Mirrowel May 31, 2026
f417c08
docs(config): document experimental knobs
Mirrowel May 31, 2026
b65f948
test(config): cover runtime pricing config
Mirrowel May 31, 2026
6e641ae
docs(experimental): plan protocol breadth correction
Mirrowel May 31, 2026
fd2f6a2
feat(protocols): add operation model
Mirrowel May 31, 2026
93487be
feat(protocols): add non-chat protocol adapters
Mirrowel May 31, 2026
41b6284
fix(protocols): stamp operation metadata consistently
Mirrowel May 31, 2026
90e26ce
fix(protocols): close audio and ollama review gaps
Mirrowel May 31, 2026
495904e
fix(protocols): harden count tokens and ollama semantics
Mirrowel May 31, 2026
77f7666
fix(protocols): close final operation hardening notes
Mirrowel May 31, 2026
6099709
docs(experimental): plan transform trace coverage correction
Mirrowel May 31, 2026
bd4a904
feat(logging): trace provider transform boundaries
Mirrowel May 31, 2026
25e631d
feat(logging): trace executor response boundaries
Mirrowel May 31, 2026
4642916
feat(logging): trace native adapter cache boundaries
Mirrowel May 31, 2026
6b261b7
feat(logging): align responses trace boundaries
Mirrowel May 31, 2026
c0e745c
fix(logging): close transform trace review gaps
Mirrowel May 31, 2026
55d6737
fix(logging): harden trace redaction and done events
Mirrowel May 31, 2026
0880df1
fix(logging): close phase 2b acceptance gaps
Mirrowel May 31, 2026
1cc1aba
fix(logging): avoid responses trace work when disabled
Mirrowel May 31, 2026
0810c18
docs(experimental): plan field cache runtime correction
Mirrowel May 31, 2026
ba79340
fix(field-cache): persist native cache per executor
Mirrowel May 31, 2026
8d60abd
feat(field-cache): implement runtime cache modes
Mirrowel May 31, 2026
b810c5c
feat(field-cache): merge configured native rules
Mirrowel May 31, 2026
626f2d0
fix(field-cache): close runtime integration gaps
Mirrowel May 31, 2026
3ff29ac
fix(field-cache): harden native trace and config semantics
Mirrowel May 31, 2026
7ea21ec
fix(field-cache): preserve config errors and provider-state redaction
Mirrowel May 31, 2026
f00b48a
fix(field-cache): redact executor native response traces
Mirrowel May 31, 2026
6740ed3
fix(field-cache): redact native stream traces
Mirrowel May 31, 2026
7c969aa
fix(field-cache): redact stream-event envelope paths
Mirrowel May 31, 2026
3055003
docs(experimental): plan responses correction
Mirrowel May 31, 2026
41cfede
feat(responses): add internal session continuation hints
Mirrowel May 31, 2026
ab70413
feat(responses): add storage policy controls
Mirrowel May 31, 2026
9995558
feat(responses): emit transport neutral stream events
Mirrowel May 31, 2026
d647c60
fix(responses): harden continuation hints and stream failures
Mirrowel May 31, 2026
ad417b7
fix(responses): bind continuations to response anchors
Mirrowel May 31, 2026
12cbc01
fix(responses): align continuation anchor namespace
Mirrowel May 31, 2026
86d3503
docs(experimental): plan provider native correction
Mirrowel May 31, 2026
d366b84
feat(providers): resolve native operations per provider
Mirrowel May 31, 2026
60fd7c1
test(providers): cover priority native execution paths
Mirrowel May 31, 2026
95b9135
test(providers): preserve gemini cli custom path
Mirrowel May 31, 2026
2166844
fix(providers): harden native request safety
Mirrowel May 31, 2026
4247fa5
fix(providers): close native streaming and antigravity gaps
Mirrowel May 31, 2026
f0b9920
fix(providers): make antigravity envelope idempotence explicit
Mirrowel May 31, 2026
124141c
docs(experimental): plan routing fallback correction
Mirrowel May 31, 2026
a5d3464
fix(routing): enforce hard-stop fallback policy
Mirrowel May 31, 2026
681f2dc
fix(routing): harden structured fallback decisions
Mirrowel May 31, 2026
e15c185
fix(streaming): classify control frames before fallback
Mirrowel May 31, 2026
a957f08
fix(routing): close fallback review gaps
Mirrowel May 31, 2026
bbe704d
fix(routing): preserve stream hard-stop semantics
Mirrowel May 31, 2026
79c9633
fix(routing): complete structured error classification
Mirrowel May 31, 2026
49e07f8
fix(routing): preserve context-window dict classification
Mirrowel May 31, 2026
e29b15d
docs(experimental): plan retry cooldown correction
Mirrowel May 31, 2026
4181413
feat(cooldown): add provider model scoped cooldowns
Mirrowel May 31, 2026
9535bae
feat(retry): add scoped cooldown decisions
Mirrowel May 31, 2026
309f5a1
feat(retry): wire scoped cooldowns into executor
Mirrowel May 31, 2026
0b8551c
feat(streaming): expose scoped cooldown decisions
Mirrowel May 31, 2026
45ebfa9
fix(retry): guard stream retries after visible output
Mirrowel May 31, 2026
b1e0ade
fix(retry): latch streaming policy decisions
Mirrowel May 31, 2026
6b791ca
docs(experimental): plan streaming hardening correction
Mirrowel May 31, 2026
508d13b
feat(streaming): add heartbeat runtime settings
Mirrowel May 31, 2026
664e322
feat(streaming): harden stream lifecycle handling
Mirrowel May 31, 2026
ec7b1aa
feat(native): support httpx stream transport
Mirrowel May 31, 2026
1946c75
fix(streaming): preserve retry safety around heartbeats
Mirrowel May 31, 2026
24e988f
fix(streaming): harden native stream sentinels
Mirrowel May 31, 2026
9e082a5
fix(streaming): initialize stream timeout state
Mirrowel May 31, 2026
f13a3b8
docs(experimental): plan usage cost correction
Mirrowel May 31, 2026
5d8da9c
feat(usage): preserve provider reported costs
Mirrowel May 31, 2026
aa9ba90
feat(usage): prefer reported provider costs
Mirrowel May 31, 2026
bf13508
feat(streaming): account for SSE cost events
Mirrowel May 31, 2026
ac2e920
feat(usage): trace reported costs across surfaces
Mirrowel May 31, 2026
d127a08
fix(usage): preserve streaming and native costs
Mirrowel May 31, 2026
41eebe8
docs(experimental): plan config wiring correction
Mirrowel May 31, 2026
6859ec5
feat(config): add retry and responses settings
Mirrowel May 31, 2026
bbeba37
feat(config): wire runtime settings surfaces
Mirrowel May 31, 2026
2f47569
fix(config): harden experimental settings parsing
Mirrowel May 31, 2026
36c11ce
fix(config): reject more secret-like keys
Mirrowel May 31, 2026
8b1f1bc
docs(experimental): record third-pass audit findings
Mirrowel May 31, 2026
c947273
docs(experimental): plan protocol guardrail fixes
Mirrowel May 31, 2026
5d2113f
fix(protocols): format public usage shapes
Mirrowel May 31, 2026
bfcfa33
fix(protocols): close Phase 1c review gaps
Mirrowel May 31, 2026
9d69ce1
docs(experimental): plan transform trace completion
Mirrowel May 31, 2026
8d2c2fd
fix(trace): complete transform trace coverage
Mirrowel May 31, 2026
3ea6113
fix(trace): address Phase 2c review gaps
Mirrowel May 31, 2026
005685e
fix(trace): trace responses stream store failures
Mirrowel May 31, 2026
d3e2bfd
fix(trace): normalize dict responses before final trace
Mirrowel May 31, 2026
5a4d42b
docs(experimental): plan field-cache runtime completion
Mirrowel May 31, 2026
e29cd9e
fix(field-cache): complete native runtime coverage
Mirrowel May 31, 2026
58ea43a
fix(field-cache): close Phase 3c review gaps
Mirrowel May 31, 2026
855486c
docs(experimental): plan responses correction
Mirrowel May 31, 2026
fdabe10
fix(responses): wire storage and lineage
Mirrowel May 31, 2026
8d0c88f
fix(responses): preserve tool-call lineage
Mirrowel May 31, 2026
4d727a3
fix(responses): replay tool-result lineage
Mirrowel May 31, 2026
6ee91b9
docs(experimental): plan provider-native correction
Mirrowel May 31, 2026
342a62e
fix(providers): return client protocol from native calls
Mirrowel May 31, 2026
f53cb86
fix(providers): harden native selection and streaming
Mirrowel May 31, 2026
ff51efe
fix(providers): close native streaming and cache gaps
Mirrowel May 31, 2026
29d66ff
fix(providers): preserve plain antigravity preview alias
Mirrowel May 31, 2026
c225c26
docs(experimental): plan routing fallback correction
Mirrowel May 31, 2026
1fe74bf
fix(routing): harden fallback selection
Mirrowel May 31, 2026
bb2c497
fix(routing): honor native stream opt outs
Mirrowel May 31, 2026
c40c6f2
docs(experimental): plan retry cooldown correction
Mirrowel May 31, 2026
f7a6aea
fix(retry): enforce cooldown backoff semantics
Mirrowel May 31, 2026
81984ed
docs(experimental): plan streaming hardening correction
Mirrowel May 31, 2026
f8600a6
fix(streaming): harden responses runtime streams
Mirrowel May 31, 2026
177e4f4
fix(streaming): preserve response timeout deadlines
Mirrowel May 31, 2026
f458603
fix(streaming): consume completed heartbeat tasks
Mirrowel May 31, 2026
a5f2731
fix(streaming): keep responses ttfb end-to-end
Mirrowel May 31, 2026
46e4015
docs(experimental): plan usage cost correction
Mirrowel May 31, 2026
d8ad65c
fix(usage): preserve provider cost metadata
Mirrowel May 31, 2026
ee7b9b5
fix(usage): handle reference stream cost shapes
Mirrowel May 31, 2026
41e60e0
fix(usage): preserve all stream cost metadata
Mirrowel May 31, 2026
96ef2f6
fix(usage): normalize estimated cost fields
Mirrowel May 31, 2026
bb7bafc
fix(usage): avoid breakdown cost double counting
Mirrowel May 31, 2026
80b9683
docs(config): plan phase 10c completion
Mirrowel May 31, 2026
cac4d46
fix(config): wire safe provider config
Mirrowel May 31, 2026
ddb5049
fix(config): validate provider overrides eagerly
Mirrowel May 31, 2026
5c17330
Merge branch 'dev' into experimental
Mirrowel Jun 16, 2026
8ec3771
fix(logger): 🐛 ensure transaction payloads are JSON-safe
Mirrowel Jun 17, 2026
27f0ebe
feat(quota): ✨ add fallback cooldown for quota exhaustion without res…
Mirrowel Jun 17, 2026
392fd7f
docs(session): plan tracking hardening
Mirrowel Jul 14, 2026
0f16ad6
refactor(providers): 🔨 retire gemini_cli OAuth provider and helpers
Mirrowel Jul 14, 2026
16d7732
fix(session): 🐛 harden compaction detection, streaming identity, and …
Mirrowel Jul 15, 2026
f1315ce
fix(session): 🐛 harden compaction context, identity precedence, and l…
Mirrowel Jul 15, 2026
5126a26
feat(session): ✨ globalize logical sessions across providers with str…
Mirrowel Jul 15, 2026
2d1b8f3
fix(responses): 🐛 replace forgeable domain hashes with unforgeable re…
Mirrowel Jul 15, 2026
455de69
docs(protocols): 📚 define interoperability correction contract
Mirrowel Jul 16, 2026
1f5325f
feat(protocols): ✨ add canonical cross-protocol conversion
Mirrowel Jul 16, 2026
4412be1
feat(protocols): ✨ wire independent protocol runtime
Mirrowel Jul 16, 2026
78b1512
feat(protocols): ✨ expose configurable protocol surfaces
Mirrowel Jul 16, 2026
9530632
feat(protocols): ✨ add canonical cross-protocol streaming
Mirrowel Jul 16, 2026
fcae83f
fix(protocols): 🐛 harden provider state isolation
Mirrowel Jul 16, 2026
5499ad1
fix(protocols): 🐛 finalize selected error boundaries
Mirrowel Jul 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 111 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -186,15 +186,23 @@
#
# TTL and max entries for the sequential strategy's in-memory session->credential
# sticky cache. These do not enable disk persistence.
#SESSION_STICKY_ENTRY_TTL_SECONDS=3600
#SESSION_STICKY_ENTRY_TTL_SECONDS_GEMINI_CLI=3600
# Default idle cache-affinity lifetime is 300 seconds. Override per provider
# when its upstream prompt-cache invalidation period differs. Set to 0 to disable
# sticky credential bindings for that provider.
#SESSION_STICKY_ENTRY_TTL_SECONDS=300
#SESSION_STICKY_ENTRY_TTL_SECONDS_GEMINI_CLI=300
#SESSION_STICKY_MAX_ENTRIES=10000
#SESSION_STICKY_MAX_ENTRIES_GEMINI_CLI=10000
#
# Optional: promote explicit request fields to trusted strong session evidence.
# Leave unset unless your clients send stable conversation IDs.
#TRUSTED_SESSION_ID_FIELDS="conversation_id,thread_id"

# Persist inferred session lineage across proxy restarts. Disabled by default;
# state is stored as content-free schema-3 hashes in session_stickiness.json.
#SESSION_PERSISTENCE_ENABLED=true
#SESSION_PERSISTENCE_FLUSH_INTERVAL_SECONDS=5.0

# --- Priority-Based Concurrency Multipliers ---
# Credentials can be assigned to priority tiers (1=highest, 2, 3, etc.).
# Each tier can have a concurrency multiplier that increases the effective
Expand Down Expand Up @@ -265,6 +273,15 @@
# EXHAUSTION_COOLDOWN_THRESHOLD_GEMINI_CLI=300
# EXHAUSTION_COOLDOWN_THRESHOLD=300 # Global fallback for all providers

# No-reset quota exhaustion policy. Some quota APIs report an exhausted bucket
# without a reset timestamp when the account cannot access that model/group.
# Policies: warn_only | cooldown | disable_scope
# Providers default to warn_only unless they explicitly opt into a fallback.
# QUOTA_NO_RESET_EXHAUSTION_POLICY_PROVIDER=cooldown
# QUOTA_NO_RESET_COOLDOWN_SECONDS_PROVIDER=86400
# QUOTA_NO_RESET_EXHAUSTION_POLICY=warn_only
# QUOTA_NO_RESET_COOLDOWN_SECONDS=0

# ------------------------------------------------------------------------------
# | [ADVANCED] Custom Caps |
# ------------------------------------------------------------------------------
Expand Down Expand Up @@ -333,6 +350,98 @@
# Default: false
# STREAM_RETRY_ON_REASONING_ONLY=false

# --- Optional Structured Config File ---
# Optional JSON config for structured experimental settings such as fallback
# groups, model routes, advisory pricing, streaming observability, and field
# cache rules. Environment variables override JSON config. Do not put API keys,
# OAuth tokens, bearer tokens, or authorization headers in this file.
# Supported top-level sections include: routing, pricing, streaming, retry,
# responses, field_cache, and providers. The providers section is for non-secret
# provider tuning and config-defined custom providers; credentials must stay in
# env or provider credential files. A custom provider can declare api_base,
# protocol_name (openai_chat, responses, anthropic_messages, or gemini),
# endpoint_paths, auth_mode (bearer, x-api-key, x-goog-api-key, custom, or none),
# auth_header_name, models, default_output_protocol, adapter_names,
# adapter_config, native_streaming_supported, field_cache, and model_quota_groups.
# Endpoint paths stay on api_base and may use {model}, {operation}, or {provider};
# transport selectors such as ?alt=sse are allowed, but credential-like query
# keys, URL credentials, fragments, and cross-origin endpoint URLs are rejected.
# Custom provider definitions are discovered and snapshotted at process startup.
# Supply credentials separately as <PROVIDER>_API_KEY variables or through the
# existing provider credential facilities. Never put credentials or OAuth data
# in the JSON file.
# LLM_PROXY_CONFIG_FILE=./config/llm-proxy.json

# Non-streaming generation routes accept X-Proxy-Output-Protocol to select an
# independent response format. Explicit library arguments take priority, then
# this header, then a provider default, then the input protocol. Cross-protocol
# streaming is rejected until canonical stream conversion is enabled.

# --- Fallback Groups and Model Routes ---
# Ordered fallback groups try targets in order when the previous target fails
# with a retryable provider/category error. Execution suffixes:
# @auto Let the provider choose custom/native/LiteLLM behavior
# @native Require native protocol execution
# @custom Require provider custom execution
# @litellm_fallback Explicitly use LiteLLM fallback
# FALLBACK_GROUPS=code_chain
# FALLBACK_GROUP_CODE_CHAIN=codex/gpt-5.1-codex@native,openai/gpt-5.1@litellm_fallback
# MODEL_ROUTE_CODE=group:code_chain

# --- Provider Cooldown Activation ---
# Provider-level cooldown is conservative and only intended for large/global
# retry-after events, not every per-credential quota error. Model-capacity
# errors can start a model-scoped cooldown without blocking unrelated models.
# PROVIDER_COOLDOWN_MIN_SECONDS=10
# PROVIDER_COOLDOWN_DEFAULT_SECONDS=30
# PROVIDER_COOLDOWN_ON_QUOTA=false
# Repeated transient provider/model failures can increase bounded backoff.
# PROVIDER_BACKOFF_WINDOW_SECONDS=60
# PROVIDER_BACKOFF_THRESHOLD=3
# PROVIDER_BACKOFF_BASE_SECONDS=0 # 0/unset means use provider cooldown default
# PROVIDER_BACKOFF_MAX_SECONDS=300
# FAILURE_HISTORY_MAX_ENTRIES=200

# --- Responses API Store Policy ---
# Responses are stored in-memory by default. Use provider_cache for durable JSON
# storage via the existing provider-cache layer. TTL/max limits are disabled
# when unset or <= 0. Failed stream responses are stored by default; in-progress
# streaming state is disabled unless explicitly enabled.
# RESPONSES_STORE_BACKEND=memory
# RESPONSES_STORE_CACHE_NAME=responses
# RESPONSES_STORE_CACHE_PREFIX=responses
# RESPONSES_STORE_CACHE_DIR=
# RESPONSES_STORE_CACHE_MEMORY_TTL_SECONDS=3600
# RESPONSES_STORE_CACHE_DISK_TTL_SECONDS=172800
# RESPONSES_STORE_TTL_SECONDS=0
# RESPONSES_STORE_MAX_ITEMS=0
# RESPONSES_STORE_FAILED=true
# RESPONSES_STORE_IN_PROGRESS=false

# --- Streaming Observability ---
# Stream lifecycle metrics are traced by default. TTFB/stall timeout values are
# active when set to >0; keep at 0 to disable. Heartbeats are SSE comments and
# do not count as visible output.
# STREAM_TRACE_METRICS=true
# STREAM_TTFB_TIMEOUT_SECONDS=0
# STREAM_STALL_TIMEOUT_SECONDS=0
# STREAM_HEARTBEAT_INTERVAL_SECONDS=0
# STREAM_HEARTBEAT_SECONDS=0 # Legacy alias
# STREAM_CANCEL_UPSTREAM_ON_DISCONNECT=true

# --- Advisory Model Pricing ---
# Per-token advisory prices used only when providers do not report actual cost.
# Precedence: skip-cost provider setting > provider-reported cost/SSE cost event
# > provider explicit pricing > env pricing > JSON pricing > LiteLLM metadata.
# Streaming providers can report actual cost with `: cost {...}` comments or
# `event: cost` frames.
# Env names sanitize provider/model by replacing non-alphanumerics with `_`.
# MODEL_PRICE_OPENAI_GPT_5_1_INPUT=0.000001
# MODEL_PRICE_OPENAI_GPT_5_1_OUTPUT=0.00001
# MODEL_PRICE_OPENAI_GPT_5_1_CACHE_READ=0.0000001
# MODEL_PRICE_OPENAI_GPT_5_1_CACHE_WRITE=0.000001
# MODEL_PRICE_OPENAI_GPT_5_1_REASONING=0.00001

# ------------------------------------------------------------------------------
# | [ADVANCED] HTTP Timeout Configuration |
# ------------------------------------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ cache/antigravity/thought_signatures.json
!tests/
tests/*
!tests/test_classifier_scoped_routing.py
!tests/test_nvidia_provider.py
!tests/test_session_tracking.py
!tests/test_selection_engine.py
docs/ignored/
Loading
Loading