@linxiraos/pi-ai 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5066 -0
- package/README.md +1195 -0
- package/dist/types/api-registry.d.ts +30 -0
- package/dist/types/auth/sqlite-credential-store.d.ts +117 -0
- package/dist/types/auth-broker/client.d.ts +93 -0
- package/dist/types/auth-broker/discover.d.ts +39 -0
- package/dist/types/auth-broker/index.d.ts +7 -0
- package/dist/types/auth-broker/refresher.d.ts +25 -0
- package/dist/types/auth-broker/remote-store.d.ts +136 -0
- package/dist/types/auth-broker/server.d.ts +48 -0
- package/dist/types/auth-broker/snapshot-cache.d.ts +17 -0
- package/dist/types/auth-broker/types.d.ts +152 -0
- package/dist/types/auth-broker/wire-schema-resource.d.ts +53 -0
- package/dist/types/auth-broker/wire-schemas.d.ts +5 -0
- package/dist/types/auth-gateway/http.d.ts +56 -0
- package/dist/types/auth-gateway/index.d.ts +3 -0
- package/dist/types/auth-gateway/server.d.ts +36 -0
- package/dist/types/auth-gateway/types.d.ts +127 -0
- package/dist/types/auth-retry.d.ts +150 -0
- package/dist/types/auth-storage.d.ts +1258 -0
- package/dist/types/dialect/anthropic.d.ts +15 -0
- package/dist/types/dialect/catalog.d.ts +3 -0
- package/dist/types/dialect/coercion.d.ts +23 -0
- package/dist/types/dialect/deepseek.d.ts +14 -0
- package/dist/types/dialect/demotion.d.ts +30 -0
- package/dist/types/dialect/examples.d.ts +18 -0
- package/dist/types/dialect/factory.d.ts +3 -0
- package/dist/types/dialect/fenced-thinking.d.ts +53 -0
- package/dist/types/dialect/gemini.d.ts +17 -0
- package/dist/types/dialect/gemma.d.ts +15 -0
- package/dist/types/dialect/glm.d.ts +9 -0
- package/dist/types/dialect/harmony.d.ts +8 -0
- package/dist/types/dialect/hermes.d.ts +9 -0
- package/dist/types/dialect/history.d.ts +3 -0
- package/dist/types/dialect/index.d.ts +11 -0
- package/dist/types/dialect/inventory.d.ts +9 -0
- package/dist/types/dialect/kimi.d.ts +14 -0
- package/dist/types/dialect/minimax.d.ts +3 -0
- package/dist/types/dialect/owned-stream.d.ts +4 -0
- package/dist/types/dialect/qwen3.d.ts +9 -0
- package/dist/types/dialect/rendering.d.ts +54 -0
- package/dist/types/dialect/thinking.d.ts +6 -0
- package/dist/types/dialect/types.d.ts +68 -0
- package/dist/types/dialect/xml.d.ts +9 -0
- package/dist/types/error/abort.d.ts +14 -0
- package/dist/types/error/auth-classify.d.ts +20 -0
- package/dist/types/error/auth.d.ts +27 -0
- package/dist/types/error/aws.d.ts +27 -0
- package/dist/types/error/classes.d.ts +106 -0
- package/dist/types/error/finalize.d.ts +39 -0
- package/dist/types/error/flags.d.ts +94 -0
- package/dist/types/error/format.d.ts +20 -0
- package/dist/types/error/gateway.d.ts +20 -0
- package/dist/types/error/index.d.ts +14 -0
- package/dist/types/error/oauth.d.ts +43 -0
- package/dist/types/error/provider.d.ts +42 -0
- package/dist/types/error/rate-limit.d.ts +80 -0
- package/dist/types/error/retryable.d.ts +27 -0
- package/dist/types/error/validation.d.ts +32 -0
- package/dist/types/index.d.ts +51 -0
- package/dist/types/provider-details.d.ts +24 -0
- package/dist/types/providers/amazon-bedrock.d.ts +39 -0
- package/dist/types/providers/anthropic-client.d.ts +106 -0
- package/dist/types/providers/anthropic-messages-server-schema.d.ts +937 -0
- package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
- package/dist/types/providers/anthropic-wire.d.ts +345 -0
- package/dist/types/providers/anthropic.d.ts +261 -0
- package/dist/types/providers/aws-credentials.d.ts +48 -0
- package/dist/types/providers/aws-eventstream.d.ts +39 -0
- package/dist/types/providers/aws-sigv4.d.ts +55 -0
- package/dist/types/providers/azure-openai-responses.d.ts +16 -0
- package/dist/types/providers/bedrock-mantle.d.ts +13 -0
- package/dist/types/providers/claude-code-fingerprint.d.ts +19 -0
- package/dist/types/providers/cowork-fetch.d.ts +3 -0
- package/dist/types/providers/cursor/exec-modern.d.ts +98 -0
- package/dist/types/providers/cursor-pi-args.d.ts +105 -0
- package/dist/types/providers/cursor.d.ts +221 -0
- package/dist/types/providers/devin.d.ts +12 -0
- package/dist/types/providers/error-message.d.ts +25 -0
- package/dist/types/providers/github-copilot-headers.d.ts +40 -0
- package/dist/types/providers/gitlab-duo-workflow.d.ts +254 -0
- package/dist/types/providers/gitlab-duo.d.ts +27 -0
- package/dist/types/providers/google-auth.d.ts +24 -0
- package/dist/types/providers/google-gemini-cli.d.ts +120 -0
- package/dist/types/providers/google-shared.d.ts +203 -0
- package/dist/types/providers/google-types.d.ts +155 -0
- package/dist/types/providers/google-vertex.d.ts +7 -0
- package/dist/types/providers/google.d.ts +4 -0
- package/dist/types/providers/grammar.d.ts +1 -0
- package/dist/types/providers/kimi.d.ts +27 -0
- package/dist/types/providers/mock.d.ts +179 -0
- package/dist/types/providers/ollama.d.ts +8 -0
- package/dist/types/providers/openai-anthropic-shim.d.ts +35 -0
- package/dist/types/providers/openai-chat-server-schema.d.ts +1311 -0
- package/dist/types/providers/openai-chat-server.d.ts +16 -0
- package/dist/types/providers/openai-chat-wire.d.ts +669 -0
- package/dist/types/providers/openai-codex/request-transformer.d.ts +109 -0
- package/dist/types/providers/openai-codex/response-handler.d.ts +26 -0
- package/dist/types/providers/openai-codex-responses.d.ts +238 -0
- package/dist/types/providers/openai-completions.d.ts +48 -0
- package/dist/types/providers/openai-reasoning-fallback.d.ts +25 -0
- package/dist/types/providers/openai-responses-server-schema.d.ts +1314 -0
- package/dist/types/providers/openai-responses-server.d.ts +17 -0
- package/dist/types/providers/openai-responses-wire.d.ts +6099 -0
- package/dist/types/providers/openai-responses.d.ts +131 -0
- package/dist/types/providers/openai-shared.d.ts +624 -0
- package/dist/types/providers/pi-native-client.d.ts +13 -0
- package/dist/types/providers/pi-native-server.d.ts +69 -0
- package/dist/types/providers/register-builtins.d.ts +37 -0
- package/dist/types/providers/synthetic.d.ts +26 -0
- package/dist/types/providers/transform-messages.d.ts +32 -0
- package/dist/types/providers/vision-guard.d.ts +20 -0
- package/dist/types/registry/aiand.d.ts +7 -0
- package/dist/types/registry/aimlapi.d.ts +4 -0
- package/dist/types/registry/alibaba-coding-plan.d.ts +8 -0
- package/dist/types/registry/alibaba-token-plan.d.ts +18 -0
- package/dist/types/registry/amazon-bedrock.d.ts +5 -0
- package/dist/types/registry/anthropic.d.ts +10 -0
- package/dist/types/registry/api-key-login.d.ts +42 -0
- package/dist/types/registry/api-key-validation.d.ts +43 -0
- package/dist/types/registry/aws.d.ts +13 -0
- package/dist/types/registry/azure.d.ts +4 -0
- package/dist/types/registry/baseten.d.ts +7 -0
- package/dist/types/registry/bedrock-mantle.d.ts +22 -0
- package/dist/types/registry/cerebras.d.ts +7 -0
- package/dist/types/registry/cloudflare-ai-gateway.d.ts +13 -0
- package/dist/types/registry/coreweave.d.ts +7 -0
- package/dist/types/registry/cursor.d.ts +7 -0
- package/dist/types/registry/deepseek.d.ts +8 -0
- package/dist/types/registry/derived.d.ts +5 -0
- package/dist/types/registry/devin.d.ts +8 -0
- package/dist/types/registry/exa.d.ts +8 -0
- package/dist/types/registry/firepass.d.ts +16 -0
- package/dist/types/registry/fireworks.d.ts +7 -0
- package/dist/types/registry/github-copilot.d.ts +7 -0
- package/dist/types/registry/gitlab-duo-workflow.d.ts +10 -0
- package/dist/types/registry/gitlab-duo.d.ts +9 -0
- package/dist/types/registry/gmi-cloud.d.ts +7 -0
- package/dist/types/registry/google-antigravity.d.ts +9 -0
- package/dist/types/registry/google-gemini-cli.d.ts +9 -0
- package/dist/types/registry/google-vertex.d.ts +5 -0
- package/dist/types/registry/google.d.ts +4 -0
- package/dist/types/registry/groq.d.ts +4 -0
- package/dist/types/registry/huggingface.d.ts +7 -0
- package/dist/types/registry/index.d.ts +4 -0
- package/dist/types/registry/kagi.d.ts +14 -0
- package/dist/types/registry/kilo.d.ts +7 -0
- package/dist/types/registry/kimi-code.d.ts +7 -0
- package/dist/types/registry/litellm.d.ts +13 -0
- package/dist/types/registry/llama-cpp.d.ts +8 -0
- package/dist/types/registry/lm-studio.d.ts +8 -0
- package/dist/types/registry/meta.d.ts +7 -0
- package/dist/types/registry/minimax-code-cn.d.ts +6 -0
- package/dist/types/registry/minimax-code.d.ts +6 -0
- package/dist/types/registry/minimax.d.ts +4 -0
- package/dist/types/registry/mistral.d.ts +4 -0
- package/dist/types/registry/moonshot.d.ts +7 -0
- package/dist/types/registry/nanogpt.d.ts +7 -0
- package/dist/types/registry/novita.d.ts +6 -0
- package/dist/types/registry/nvidia.d.ts +7 -0
- package/dist/types/registry/oauth/anthropic-constants.d.ts +12 -0
- package/dist/types/registry/oauth/anthropic.d.ts +24 -0
- package/dist/types/registry/oauth/callback-server.d.ts +74 -0
- package/dist/types/registry/oauth/cursor.d.ts +16 -0
- package/dist/types/registry/oauth/device-code.d.ts +25 -0
- package/dist/types/registry/oauth/devin.d.ts +5 -0
- package/dist/types/registry/oauth/github-copilot.d.ts +30 -0
- package/dist/types/registry/oauth/gitlab-duo-workflow.d.ts +6 -0
- package/dist/types/registry/oauth/gitlab-duo.d.ts +3 -0
- package/dist/types/registry/oauth/google-antigravity.d.ts +11 -0
- package/dist/types/registry/oauth/google-gemini-cli.d.ts +22 -0
- package/dist/types/registry/oauth/google-oauth-shared.d.ts +56 -0
- package/dist/types/registry/oauth/index.d.ts +45 -0
- package/dist/types/registry/oauth/kimi.d.ts +21 -0
- package/dist/types/registry/oauth/minimax-code.d.ts +27 -0
- package/dist/types/registry/oauth/openai-codex.d.ts +33 -0
- package/dist/types/registry/oauth/opencode.d.ts +18 -0
- package/dist/types/registry/oauth/perplexity.d.ts +9 -0
- package/dist/types/registry/oauth/pkce.d.ts +8 -0
- package/dist/types/registry/oauth/types.d.ts +87 -0
- package/dist/types/registry/oauth/wafer.d.ts +1 -0
- package/dist/types/registry/oauth/xai-oauth.d.ts +46 -0
- package/dist/types/registry/oauth/xiaomi.d.ts +25 -0
- package/dist/types/registry/oauth/zai.d.ts +25 -0
- package/dist/types/registry/ollama-cloud.d.ts +7 -0
- package/dist/types/registry/ollama.d.ts +12 -0
- package/dist/types/registry/openai-codex-device.d.ts +8 -0
- package/dist/types/registry/openai-codex.d.ts +9 -0
- package/dist/types/registry/openai.d.ts +4 -0
- package/dist/types/registry/opencode-go.d.ts +6 -0
- package/dist/types/registry/opencode-zen.d.ts +6 -0
- package/dist/types/registry/openrouter.d.ts +13 -0
- package/dist/types/registry/parallel.d.ts +14 -0
- package/dist/types/registry/perplexity.d.ts +7 -0
- package/dist/types/registry/qianfan.d.ts +7 -0
- package/dist/types/registry/qwen-portal.d.ts +7 -0
- package/dist/types/registry/registry.d.ts +367 -0
- package/dist/types/registry/sakana.d.ts +7 -0
- package/dist/types/registry/siliconflow-cn.d.ts +7 -0
- package/dist/types/registry/siliconflow.d.ts +7 -0
- package/dist/types/registry/synthetic.d.ts +6 -0
- package/dist/types/registry/tavily.d.ts +14 -0
- package/dist/types/registry/together.d.ts +6 -0
- package/dist/types/registry/types.d.ts +75 -0
- package/dist/types/registry/umans.d.ts +7 -0
- package/dist/types/registry/venice.d.ts +13 -0
- package/dist/types/registry/vercel-ai-gateway.d.ts +7 -0
- package/dist/types/registry/vllm.d.ts +7 -0
- package/dist/types/registry/wafer-serverless.d.ts +6 -0
- package/dist/types/registry/xai-oauth.d.ts +7 -0
- package/dist/types/registry/xai.d.ts +7 -0
- package/dist/types/registry/xiaomi-token-plan-ams.d.ts +6 -0
- package/dist/types/registry/xiaomi-token-plan-cn.d.ts +6 -0
- package/dist/types/registry/xiaomi-token-plan-sgp.d.ts +6 -0
- package/dist/types/registry/xiaomi.d.ts +6 -0
- package/dist/types/registry/zai.d.ts +15 -0
- package/dist/types/registry/zenmux.d.ts +7 -0
- package/dist/types/registry/zhipu-coding-plan.d.ts +7 -0
- package/dist/types/stream.d.ts +46 -0
- package/dist/types/types.d.ts +1064 -0
- package/dist/types/usage/alibaba-token-plan.d.ts +3 -0
- package/dist/types/usage/claude.d.ts +4 -0
- package/dist/types/usage/cursor.d.ts +4 -0
- package/dist/types/usage/gemini.d.ts +2 -0
- package/dist/types/usage/github-copilot.d.ts +7 -0
- package/dist/types/usage/google-antigravity.d.ts +15 -0
- package/dist/types/usage/kimi.d.ts +2 -0
- package/dist/types/usage/minimax-code.d.ts +3 -0
- package/dist/types/usage/ollama.d.ts +5 -0
- package/dist/types/usage/openai-codex-base-url.d.ts +18 -0
- package/dist/types/usage/openai-codex-reset.d.ts +88 -0
- package/dist/types/usage/openai-codex.d.ts +10 -0
- package/dist/types/usage/opencode-go.d.ts +2 -0
- package/dist/types/usage/shared.d.ts +1 -0
- package/dist/types/usage/synthetic.d.ts +2 -0
- package/dist/types/usage/umans.d.ts +2 -0
- package/dist/types/usage/xai-oauth.d.ts +12 -0
- package/dist/types/usage/zai.d.ts +3 -0
- package/dist/types/usage.d.ts +527 -0
- package/dist/types/utils/abort.d.ts +25 -0
- package/dist/types/utils/anthropic-auth.d.ts +35 -0
- package/dist/types/utils/aws-profile.d.ts +17 -0
- package/dist/types/utils/block-symbols.d.ts +62 -0
- package/dist/types/utils/deterministic-id.d.ts +16 -0
- package/dist/types/utils/empty-completion-retry.d.ts +21 -0
- package/dist/types/utils/event-stream.d.ts +39 -0
- package/dist/types/utils/foundry.d.ts +1 -0
- package/dist/types/utils/google-validation.d.ts +2 -0
- package/dist/types/utils/harmony-leak.d.ts +135 -0
- package/dist/types/utils/http-inspector.d.ts +49 -0
- package/dist/types/utils/idle-iterator.d.ts +149 -0
- package/dist/types/utils/leaked-thinking-stream.d.ts +33 -0
- package/dist/types/utils/openai-http.d.ts +48 -0
- package/dist/types/utils/openrouter-headers.d.ts +1 -0
- package/dist/types/utils/parse-bind.d.ts +23 -0
- package/dist/types/utils/provider-response.d.ts +3 -0
- package/dist/types/utils/proxy.d.ts +39 -0
- package/dist/types/utils/request-debug.d.ts +29 -0
- package/dist/types/utils/retry-after.d.ts +4 -0
- package/dist/types/utils/retry.d.ts +14 -0
- package/dist/types/utils/schema/adapt.d.ts +24 -0
- package/dist/types/utils/schema/compatibility.d.ts +30 -0
- package/dist/types/utils/schema/dereference.d.ts +11 -0
- package/dist/types/utils/schema/draft.d.ts +10 -0
- package/dist/types/utils/schema/equality.d.ts +4 -0
- package/dist/types/utils/schema/fields.d.ts +54 -0
- package/dist/types/utils/schema/index.d.ts +14 -0
- package/dist/types/utils/schema/json-schema-validator.d.ts +20 -0
- package/dist/types/utils/schema/meta-validator.d.ts +2 -0
- package/dist/types/utils/schema/normalize.d.ts +153 -0
- package/dist/types/utils/schema/spill.d.ts +8 -0
- package/dist/types/utils/schema/stamps.d.ts +17 -0
- package/dist/types/utils/schema/strict-tool-validation.d.ts +16 -0
- package/dist/types/utils/schema/types.d.ts +4 -0
- package/dist/types/utils/schema/typescript.d.ts +24 -0
- package/dist/types/utils/schema/wire.d.ts +52 -0
- package/dist/types/utils/sdk-stream-timeout.d.ts +33 -0
- package/dist/types/utils/sse-debug.d.ts +5 -0
- package/dist/types/utils/stream-markup-healing.d.ts +87 -0
- package/dist/types/utils/thinking-loop.d.ts +102 -0
- package/dist/types/utils/tool-call-loop-guard.d.ts +26 -0
- package/dist/types/utils/tool-choice.d.ts +52 -0
- package/dist/types/utils/validation.d.ts +28 -0
- package/dist/types/utils.d.ts +57 -0
- package/package.json +138 -0
- package/src/api-registry.ts +109 -0
- package/src/auth/sqlite-credential-store.ts +2066 -0
- package/src/auth-broker/client.ts +471 -0
- package/src/auth-broker/discover.ts +310 -0
- package/src/auth-broker/index.ts +7 -0
- package/src/auth-broker/refresher.ts +117 -0
- package/src/auth-broker/remote-store.ts +1332 -0
- package/src/auth-broker/server.ts +898 -0
- package/src/auth-broker/snapshot-cache.ts +200 -0
- package/src/auth-broker/types.ts +193 -0
- package/src/auth-broker/wire-schema-resource.ts +487 -0
- package/src/auth-broker/wire-schemas.ts +43 -0
- package/src/auth-gateway/http.ts +227 -0
- package/src/auth-gateway/index.ts +3 -0
- package/src/auth-gateway/server.ts +836 -0
- package/src/auth-gateway/types.ts +153 -0
- package/src/auth-retry.ts +401 -0
- package/src/auth-storage.ts +6540 -0
- package/src/dialect/anthropic.md +31 -0
- package/src/dialect/anthropic.ts +608 -0
- package/src/dialect/catalog.ts +29 -0
- package/src/dialect/coercion.ts +136 -0
- package/src/dialect/deepseek.md +24 -0
- package/src/dialect/deepseek.ts +609 -0
- package/src/dialect/demotion.ts +40 -0
- package/src/dialect/examples.ts +71 -0
- package/src/dialect/factory.ts +34 -0
- package/src/dialect/fenced-thinking.ts +184 -0
- package/src/dialect/gemini.md +44 -0
- package/src/dialect/gemini.ts +583 -0
- package/src/dialect/gemma.md +33 -0
- package/src/dialect/gemma.ts +387 -0
- package/src/dialect/glm.md +32 -0
- package/src/dialect/glm.ts +579 -0
- package/src/dialect/harmony.md +31 -0
- package/src/dialect/harmony.ts +345 -0
- package/src/dialect/hermes.md +25 -0
- package/src/dialect/hermes.ts +206 -0
- package/src/dialect/history.ts +81 -0
- package/src/dialect/index.ts +15 -0
- package/src/dialect/inventory.ts +30 -0
- package/src/dialect/kimi.md +24 -0
- package/src/dialect/kimi.ts +340 -0
- package/src/dialect/minimax.md +31 -0
- package/src/dialect/minimax.ts +95 -0
- package/src/dialect/owned-stream.ts +481 -0
- package/src/dialect/prompt-template.md +12 -0
- package/src/dialect/qwen3.md +28 -0
- package/src/dialect/qwen3.ts +240 -0
- package/src/dialect/rendering.ts +304 -0
- package/src/dialect/thinking.ts +292 -0
- package/src/dialect/types.ts +56 -0
- package/src/dialect/xml.md +22 -0
- package/src/dialect/xml.ts +90 -0
- package/src/error/abort.ts +18 -0
- package/src/error/auth-classify.ts +47 -0
- package/src/error/auth.ts +48 -0
- package/src/error/aws.ts +35 -0
- package/src/error/classes.ts +281 -0
- package/src/error/finalize.ts +69 -0
- package/src/error/flags.ts +602 -0
- package/src/error/format.ts +45 -0
- package/src/error/gateway.ts +96 -0
- package/src/error/index.ts +14 -0
- package/src/error/oauth.ts +58 -0
- package/src/error/provider.ts +63 -0
- package/src/error/rate-limit.ts +303 -0
- package/src/error/retryable.ts +70 -0
- package/src/error/validation.ts +44 -0
- package/src/index.ts +51 -0
- package/src/provider-details.ts +90 -0
- package/src/providers/amazon-bedrock.ts +1064 -0
- package/src/providers/anthropic-client.ts +317 -0
- package/src/providers/anthropic-messages-server-schema.ts +252 -0
- package/src/providers/anthropic-messages-server.ts +818 -0
- package/src/providers/anthropic-wire.ts +359 -0
- package/src/providers/anthropic.ts +4539 -0
- package/src/providers/aws-credentials.ts +772 -0
- package/src/providers/aws-eventstream.ts +181 -0
- package/src/providers/aws-sigv4.ts +218 -0
- package/src/providers/azure-openai-responses.ts +438 -0
- package/src/providers/bedrock-mantle.ts +110 -0
- package/src/providers/claude-code-fingerprint.ts +20 -0
- package/src/providers/cowork-fetch.ts +201 -0
- package/src/providers/cursor/exec-modern.ts +496 -0
- package/src/providers/cursor/proto/agent.proto +4533 -0
- package/src/providers/cursor/proto/buf.gen.yaml +6 -0
- package/src/providers/cursor/proto/buf.yaml +17 -0
- package/src/providers/cursor-pi-args.ts +165 -0
- package/src/providers/cursor.ts +4689 -0
- package/src/providers/devin/proto/buf/validate/validate.proto +468 -0
- package/src/providers/devin/proto/buf.gen.yaml +33 -0
- package/src/providers/devin/proto/buf.yaml +17 -0
- package/src/providers/devin/proto/cel/expr/checked.proto +103 -0
- package/src/providers/devin/proto/cel/expr/eval.proto +38 -0
- package/src/providers/devin/proto/cel/expr/explain.proto +15 -0
- package/src/providers/devin/proto/cel/expr/syntax.proto +113 -0
- package/src/providers/devin/proto/cel/expr/value.proto +41 -0
- package/src/providers/devin/proto/connectext/grpc/status/v1/status.proto +11 -0
- package/src/providers/devin/proto/errorspb/errors.proto +56 -0
- package/src/providers/devin/proto/errorspb/hintdetail.proto +7 -0
- package/src/providers/devin/proto/errorspb/markers.proto +10 -0
- package/src/providers/devin/proto/errorspb/tags.proto +12 -0
- package/src/providers/devin/proto/errorspb/testing.proto +6 -0
- package/src/providers/devin/proto/exa/analytics_pb/analytics.proto +188 -0
- package/src/providers/devin/proto/exa/api_server_pb/api_server.proto +2461 -0
- package/src/providers/devin/proto/exa/auth_pb/auth.proto +19 -0
- package/src/providers/devin/proto/exa/auto_cascade_common_pb/auto_cascade_common.proto +79 -0
- package/src/providers/devin/proto/exa/browser_preview_pb/browser_preview.proto +32 -0
- package/src/providers/devin/proto/exa/bug_checker_pb/bug_checker.proto +22 -0
- package/src/providers/devin/proto/exa/cascade_plugins_pb/cascade_plugins.proto +262 -0
- package/src/providers/devin/proto/exa/chat_client_server_pb/chat_client_server.proto +57 -0
- package/src/providers/devin/proto/exa/chat_pb/chat.proto +449 -0
- package/src/providers/devin/proto/exa/code_edit/code_edit_pb/code_edit.proto +186 -0
- package/src/providers/devin/proto/exa/codeium_common_pb/codeium_common.proto +4157 -0
- package/src/providers/devin/proto/exa/context_module_pb/context_module.proto +175 -0
- package/src/providers/devin/proto/exa/cortex_pb/cortex.proto +3268 -0
- package/src/providers/devin/proto/exa/dev_pb/dev.proto +26 -0
- package/src/providers/devin/proto/exa/diff_action_pb/diff_action.proto +75 -0
- package/src/providers/devin/proto/exa/eval/pr_eval/datasets_pb/datasets.proto +103 -0
- package/src/providers/devin/proto/exa/eval_pb/eval.proto +1315 -0
- package/src/providers/devin/proto/exa/extension_server_pb/extension_server.proto +556 -0
- package/src/providers/devin/proto/exa/file_system_provider_pb/file_system_provider.proto +75 -0
- package/src/providers/devin/proto/exa/index_pb/index.proto +461 -0
- package/src/providers/devin/proto/exa/knowledge_base_pb/knowledge_base.proto +144 -0
- package/src/providers/devin/proto/exa/language_server_pb/language_server.proto +2385 -0
- package/src/providers/devin/proto/exa/model_management_pb/model_management.proto +186 -0
- package/src/providers/devin/proto/exa/opensearch_clients_pb/opensearch_clients.proto +503 -0
- package/src/providers/devin/proto/exa/product_analytics_pb/product_analytics.proto +37 -0
- package/src/providers/devin/proto/exa/prompt_pb/prompt.proto +92 -0
- package/src/providers/devin/proto/exa/reactive_component_pb/reactive_component.proto +96 -0
- package/src/providers/devin/proto/exa/seat_management_pb/seat_management.proto +2680 -0
- package/src/providers/devin/proto/exa/tokenizer_pb/tokenizer.proto +37 -0
- package/src/providers/devin/proto/exa/trainer_pb/config.proto +647 -0
- package/src/providers/devin/proto/exa/tree_sitter/language_data_pb/language_data.proto +14 -0
- package/src/providers/devin/proto/exa/trust_pb/trust.proto +157 -0
- package/src/providers/devin/proto/exa/user_analytics_pb/user_analytics.proto +519 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/base/api_base.proto +28 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/datastore/datastore_v3.proto +484 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/log/log_service.proto +136 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/remote_api/remote_api.proto +42 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +61 -0
- package/src/providers/devin/proto/grpc/binlog/v1/binarylog.proto +84 -0
- package/src/providers/devin/proto/io/prometheus/client/metrics.proto +98 -0
- package/src/providers/devin.ts +679 -0
- package/src/providers/error-message.ts +23 -0
- package/src/providers/github-copilot-headers.ts +141 -0
- package/src/providers/gitlab-duo-workflow-chatml-note.md +1 -0
- package/src/providers/gitlab-duo-workflow.ts +3135 -0
- package/src/providers/gitlab-duo.ts +399 -0
- package/src/providers/google-auth.ts +330 -0
- package/src/providers/google-gemini-cli.ts +1370 -0
- package/src/providers/google-shared.ts +1122 -0
- package/src/providers/google-types.ts +180 -0
- package/src/providers/google-vertex.ts +135 -0
- package/src/providers/google.ts +47 -0
- package/src/providers/grammar.ts +70 -0
- package/src/providers/kimi.ts +51 -0
- package/src/providers/mock.ts +514 -0
- package/src/providers/ollama.ts +776 -0
- package/src/providers/openai-anthropic-shim.ts +166 -0
- package/src/providers/openai-chat-server-schema.ts +243 -0
- package/src/providers/openai-chat-server.ts +752 -0
- package/src/providers/openai-chat-wire.ts +859 -0
- package/src/providers/openai-codex/request-transformer.ts +491 -0
- package/src/providers/openai-codex/response-handler.ts +102 -0
- package/src/providers/openai-codex-responses.ts +4716 -0
- package/src/providers/openai-completions.ts +2389 -0
- package/src/providers/openai-reasoning-fallback.ts +269 -0
- package/src/providers/openai-responses-server-schema.ts +397 -0
- package/src/providers/openai-responses-server.ts +1466 -0
- package/src/providers/openai-responses-wire.ts +6416 -0
- package/src/providers/openai-responses.ts +1393 -0
- package/src/providers/openai-shared.ts +3500 -0
- package/src/providers/pi-native-client.ts +275 -0
- package/src/providers/pi-native-server.ts +245 -0
- package/src/providers/register-builtins.ts +503 -0
- package/src/providers/synthetic.ts +50 -0
- package/src/providers/transform-messages.ts +1083 -0
- package/src/providers/vision-guard.ts +54 -0
- package/src/registry/aiand.ts +22 -0
- package/src/registry/aimlapi.ts +6 -0
- package/src/registry/alibaba-coding-plan.ts +104 -0
- package/src/registry/alibaba-token-plan.ts +125 -0
- package/src/registry/amazon-bedrock.ts +22 -0
- package/src/registry/anthropic.ts +26 -0
- package/src/registry/api-key-login.ts +115 -0
- package/src/registry/api-key-validation.ts +145 -0
- package/src/registry/aws.ts +57 -0
- package/src/registry/azure.ts +6 -0
- package/src/registry/baseten.ts +22 -0
- package/src/registry/bedrock-mantle.ts +34 -0
- package/src/registry/cerebras.ts +23 -0
- package/src/registry/cloudflare-ai-gateway.ts +45 -0
- package/src/registry/coreweave.ts +40 -0
- package/src/registry/cursor.ts +20 -0
- package/src/registry/deepseek.ts +46 -0
- package/src/registry/derived.ts +9 -0
- package/src/registry/devin.ts +15 -0
- package/src/registry/exa.ts +19 -0
- package/src/registry/firepass.ts +32 -0
- package/src/registry/fireworks.ts +28 -0
- package/src/registry/github-copilot.ts +22 -0
- package/src/registry/gitlab-duo-workflow.ts +20 -0
- package/src/registry/gitlab-duo.ts +19 -0
- package/src/registry/gmi-cloud.ts +22 -0
- package/src/registry/google-antigravity.ts +22 -0
- package/src/registry/google-gemini-cli.ts +22 -0
- package/src/registry/google-vertex.ts +38 -0
- package/src/registry/google.ts +6 -0
- package/src/registry/groq.ts +6 -0
- package/src/registry/huggingface.ts +29 -0
- package/src/registry/index.ts +4 -0
- package/src/registry/kagi.ts +46 -0
- package/src/registry/kilo.ts +114 -0
- package/src/registry/kimi-code.ts +17 -0
- package/src/registry/litellm.ts +45 -0
- package/src/registry/llama-cpp.ts +35 -0
- package/src/registry/lm-studio.ts +31 -0
- package/src/registry/meta.ts +22 -0
- package/src/registry/minimax-code-cn.ts +12 -0
- package/src/registry/minimax-code.ts +12 -0
- package/src/registry/minimax.ts +6 -0
- package/src/registry/mistral.ts +6 -0
- package/src/registry/moonshot.ts +28 -0
- package/src/registry/nanogpt.ts +22 -0
- package/src/registry/novita.ts +25 -0
- package/src/registry/nvidia.ts +61 -0
- package/src/registry/oauth/anthropic-constants.ts +12 -0
- package/src/registry/oauth/anthropic.ts +346 -0
- package/src/registry/oauth/callback-server.ts +438 -0
- package/src/registry/oauth/cursor.ts +187 -0
- package/src/registry/oauth/device-code.ts +92 -0
- package/src/registry/oauth/devin.ts +124 -0
- package/src/registry/oauth/github-copilot.ts +369 -0
- package/src/registry/oauth/gitlab-duo-workflow.ts +146 -0
- package/src/registry/oauth/gitlab-duo.ts +222 -0
- package/src/registry/oauth/google-antigravity.ts +225 -0
- package/src/registry/oauth/google-gemini-cli.ts +297 -0
- package/src/registry/oauth/google-oauth-shared.ts +211 -0
- package/src/registry/oauth/index.ts +187 -0
- package/src/registry/oauth/kimi.ts +297 -0
- package/src/registry/oauth/minimax-code.ts +53 -0
- package/src/registry/oauth/oauth.html +317 -0
- package/src/registry/oauth/openai-codex.ts +384 -0
- package/src/registry/oauth/opencode.ts +50 -0
- package/src/registry/oauth/perplexity.ts +228 -0
- package/src/registry/oauth/pkce.ts +18 -0
- package/src/registry/oauth/types.ts +96 -0
- package/src/registry/oauth/wafer.ts +24 -0
- package/src/registry/oauth/xai-oauth.ts +559 -0
- package/src/registry/oauth/xiaomi.ts +211 -0
- package/src/registry/oauth/zai.ts +285 -0
- package/src/registry/ollama-cloud.ts +36 -0
- package/src/registry/ollama.ts +43 -0
- package/src/registry/openai-codex-device.ts +18 -0
- package/src/registry/openai-codex.ts +19 -0
- package/src/registry/openai.ts +6 -0
- package/src/registry/opencode-go.ts +12 -0
- package/src/registry/opencode-zen.ts +12 -0
- package/src/registry/openrouter.ts +28 -0
- package/src/registry/parallel.ts +45 -0
- package/src/registry/perplexity.ts +13 -0
- package/src/registry/qianfan.ts +27 -0
- package/src/registry/qwen-portal.ts +50 -0
- package/src/registry/registry.ts +182 -0
- package/src/registry/sakana.ts +22 -0
- package/src/registry/siliconflow-cn.ts +22 -0
- package/src/registry/siliconflow.ts +22 -0
- package/src/registry/synthetic.ts +21 -0
- package/src/registry/tavily.ts +45 -0
- package/src/registry/together.ts +22 -0
- package/src/registry/types.ts +86 -0
- package/src/registry/umans.ts +23 -0
- package/src/registry/venice.ts +33 -0
- package/src/registry/vercel-ai-gateway.ts +38 -0
- package/src/registry/vllm.ts +34 -0
- package/src/registry/wafer-serverless.ts +12 -0
- package/src/registry/xai-oauth.ts +17 -0
- package/src/registry/xai.ts +22 -0
- package/src/registry/xiaomi-token-plan-ams.ts +12 -0
- package/src/registry/xiaomi-token-plan-cn.ts +12 -0
- package/src/registry/xiaomi-token-plan-sgp.ts +12 -0
- package/src/registry/xiaomi.ts +12 -0
- package/src/registry/zai.ts +41 -0
- package/src/registry/zenmux.ts +22 -0
- package/src/registry/zhipu-coding-plan.ts +27 -0
- package/src/stream.ts +1944 -0
- package/src/types.ts +1243 -0
- package/src/usage/alibaba-token-plan.ts +230 -0
- package/src/usage/claude.ts +830 -0
- package/src/usage/cursor.ts +335 -0
- package/src/usage/gemini.ts +258 -0
- package/src/usage/github-copilot.ts +424 -0
- package/src/usage/google-antigravity.ts +497 -0
- package/src/usage/kimi.ts +277 -0
- package/src/usage/minimax-code.ts +291 -0
- package/src/usage/ollama.ts +41 -0
- package/src/usage/openai-codex-base-url.ts +35 -0
- package/src/usage/openai-codex-reset.ts +205 -0
- package/src/usage/openai-codex.ts +627 -0
- package/src/usage/opencode-go.ts +89 -0
- package/src/usage/shared.ts +10 -0
- package/src/usage/synthetic.ts +180 -0
- package/src/usage/umans.ts +192 -0
- package/src/usage/xai-oauth.ts +414 -0
- package/src/usage/zai.ts +370 -0
- package/src/usage.ts +411 -0
- package/src/utils/abort.ts +67 -0
- package/src/utils/anthropic-auth.ts +93 -0
- package/src/utils/aws-profile.ts +88 -0
- package/src/utils/block-symbols.ts +78 -0
- package/src/utils/deterministic-id.ts +20 -0
- package/src/utils/empty-completion-retry.ts +161 -0
- package/src/utils/event-stream.ts +202 -0
- package/src/utils/foundry.ts +8 -0
- package/src/utils/google-validation.ts +25 -0
- package/src/utils/harmony-leak.ts +500 -0
- package/src/utils/http-inspector.ts +196 -0
- package/src/utils/idle-iterator.ts +531 -0
- package/src/utils/leaked-thinking-stream.ts +483 -0
- package/src/utils/openai-http.ts +119 -0
- package/src/utils/openrouter-headers.ts +12 -0
- package/src/utils/parse-bind.ts +56 -0
- package/src/utils/provider-response.ts +30 -0
- package/src/utils/proxy.ts +314 -0
- package/src/utils/request-debug.ts +351 -0
- package/src/utils/retry-after.ts +121 -0
- package/src/utils/retry.ts +77 -0
- package/src/utils/schema/CONSTRAINTS.md +168 -0
- package/src/utils/schema/adapt.ts +36 -0
- package/src/utils/schema/compatibility.ts +435 -0
- package/src/utils/schema/dereference.ts +98 -0
- package/src/utils/schema/draft.ts +341 -0
- package/src/utils/schema/equality.ts +97 -0
- package/src/utils/schema/fields.ts +210 -0
- package/src/utils/schema/index.ts +14 -0
- package/src/utils/schema/json-schema-validator.ts +595 -0
- package/src/utils/schema/meta-validator.ts +167 -0
- package/src/utils/schema/normalize.ts +2314 -0
- package/src/utils/schema/spill.ts +43 -0
- package/src/utils/schema/stamps.ts +109 -0
- package/src/utils/schema/strict-tool-validation.ts +117 -0
- package/src/utils/schema/types.ts +10 -0
- package/src/utils/schema/typescript.ts +212 -0
- package/src/utils/schema/wire.ts +662 -0
- package/src/utils/sdk-stream-timeout.ts +43 -0
- package/src/utils/sse-debug.ts +18 -0
- package/src/utils/stream-markup-healing.ts +247 -0
- package/src/utils/thinking-loop.ts +552 -0
- package/src/utils/tool-call-loop-guard.ts +107 -0
- package/src/utils/tool-choice.ts +101 -0
- package/src/utils/validation.ts +1932 -0
- package/src/utils.ts +492 -0
|
@@ -0,0 +1,527 @@
|
|
|
1
|
+
import type { FetchImpl, Provider } from "./types.js";
|
|
2
|
+
export type UsageUnit = "percent" | "tokens" | "requests" | "usd" | "minutes" | "bytes" | "unknown";
|
|
3
|
+
export type UsageStatus = "ok" | "warning" | "exhausted" | "unknown";
|
|
4
|
+
/** Time window for a limit (e.g. 5h, 7d, monthly). */
|
|
5
|
+
export interface UsageWindow {
|
|
6
|
+
/** Stable identifier (e.g. "5h", "7d", "monthly"). */
|
|
7
|
+
id: string;
|
|
8
|
+
/** Human label (e.g. "5 Hour", "7 Day"). */
|
|
9
|
+
label: string;
|
|
10
|
+
/** Window duration in milliseconds, when known. */
|
|
11
|
+
durationMs?: number;
|
|
12
|
+
/** Absolute reset timestamp in milliseconds since epoch. */
|
|
13
|
+
resetsAt?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Verb rendered before the {@link resetsAt} countdown (e.g. "tick", "regen").
|
|
16
|
+
* Defaults to "resets" — override for rolling windows where the timestamp is
|
|
17
|
+
* an incremental regeneration step rather than a full window reset.
|
|
18
|
+
*/
|
|
19
|
+
resetLabel?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Quantitative usage data. */
|
|
22
|
+
export interface UsageAmount {
|
|
23
|
+
/** Amount used in the given unit. */
|
|
24
|
+
used?: number;
|
|
25
|
+
/** Maximum limit in the given unit. */
|
|
26
|
+
limit?: number;
|
|
27
|
+
/** Remaining amount in the given unit. */
|
|
28
|
+
remaining?: number;
|
|
29
|
+
/** Fraction used (0..1). */
|
|
30
|
+
usedFraction?: number;
|
|
31
|
+
/** Fraction remaining (0..1). */
|
|
32
|
+
remainingFraction?: number;
|
|
33
|
+
/** Unit for the amounts (percent, tokens, etc.). */
|
|
34
|
+
unit: UsageUnit;
|
|
35
|
+
}
|
|
36
|
+
/** Scope metadata describing what the limit applies to. */
|
|
37
|
+
export interface UsageScope {
|
|
38
|
+
provider: Provider;
|
|
39
|
+
accountId?: string;
|
|
40
|
+
projectId?: string;
|
|
41
|
+
orgId?: string;
|
|
42
|
+
modelId?: string;
|
|
43
|
+
tier?: string;
|
|
44
|
+
windowId?: string;
|
|
45
|
+
shared?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/** Normalized limit entry for a single window or quota bucket. */
|
|
48
|
+
export interface UsageLimit {
|
|
49
|
+
/** Stable identifier for this limit entry. */
|
|
50
|
+
id: string;
|
|
51
|
+
/** Human label for display. */
|
|
52
|
+
label: string;
|
|
53
|
+
scope: UsageScope;
|
|
54
|
+
window?: UsageWindow;
|
|
55
|
+
amount: UsageAmount;
|
|
56
|
+
status?: UsageStatus;
|
|
57
|
+
notes?: string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Per-credit detail for a saved/banked rate-limit reset.
|
|
61
|
+
*
|
|
62
|
+
* Populated when the provider's listing endpoint returns individual credit
|
|
63
|
+
* metadata (e.g. OpenAI Codex `wham/rate-limit-reset-credits`). Callers that
|
|
64
|
+
* only need the count can ignore this; display layers use `expiresAt` to show
|
|
65
|
+
* when banked resets expire ([#3339](https://github.com/can1357/oh-my-pi/issues/3339)).
|
|
66
|
+
*/
|
|
67
|
+
export interface UsageResetCreditDetail {
|
|
68
|
+
/** ISO timestamp when the credit was granted. */
|
|
69
|
+
grantedAt?: string;
|
|
70
|
+
/** ISO timestamp when the credit expires and can no longer be redeemed. */
|
|
71
|
+
expiresAt?: string;
|
|
72
|
+
/** Backend status, e.g. `available`, `redeemed`. */
|
|
73
|
+
status?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Saved/banked rate-limit resets an account can redeem on demand.
|
|
77
|
+
*
|
|
78
|
+
* Surfaced by providers that let users defer a usage-window reset and spend it
|
|
79
|
+
* later (OpenAI Codex "saved rate limit resets"). The redeem itself is a
|
|
80
|
+
* separate, provider-specific action; this is the read-only count for display.
|
|
81
|
+
*/
|
|
82
|
+
export interface UsageResetCredits {
|
|
83
|
+
/** Number of resets available to redeem right now. */
|
|
84
|
+
availableCount: number;
|
|
85
|
+
/** Individual credit details (expiry dates, etc.) when the provider exposes them. */
|
|
86
|
+
credits?: UsageResetCreditDetail[];
|
|
87
|
+
}
|
|
88
|
+
/** Aggregated usage report for a provider. */
|
|
89
|
+
export interface UsageReport {
|
|
90
|
+
provider: Provider;
|
|
91
|
+
fetchedAt: number;
|
|
92
|
+
limits: UsageLimit[];
|
|
93
|
+
/** Saved rate-limit resets the account can redeem, when the provider reports them. */
|
|
94
|
+
resetCredits?: UsageResetCredits;
|
|
95
|
+
/**
|
|
96
|
+
* Provider-wide disclaimers shown once above per-account sections.
|
|
97
|
+
* Use this for caveats that apply to every limit (e.g. "OMP-observed
|
|
98
|
+
* spend only"). Per-limit notes that differ per window (e.g. "Overage
|
|
99
|
+
* requests: N") stay on {@link UsageLimit.notes}.
|
|
100
|
+
*/
|
|
101
|
+
notes?: string[];
|
|
102
|
+
metadata?: Record<string, unknown>;
|
|
103
|
+
raw?: unknown;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Resolve a limit's used fraction (0..1; >1 means overage) from whichever
|
|
107
|
+
* amount fields the provider populated. Precedence mirrors the usage UIs:
|
|
108
|
+
* explicit fraction > used/limit > percent-unit used > inverted remaining.
|
|
109
|
+
*/
|
|
110
|
+
export declare function resolveUsedFraction(limit: UsageLimit): number | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* One recorded usage-limit snapshot: a single limit window of one account at
|
|
113
|
+
* a point in time. The usage cache itself is latest-snapshot-only; history
|
|
114
|
+
* rows are appended by the auth storage layer whenever a fresh report is
|
|
115
|
+
* fetched, so limit utilization stays inspectable over time.
|
|
116
|
+
*/
|
|
117
|
+
export interface UsageHistoryEntry {
|
|
118
|
+
/** Epoch ms the report was fetched. */
|
|
119
|
+
recordedAt: number;
|
|
120
|
+
provider: Provider;
|
|
121
|
+
/** Stable credential identity key (account/email/project derived). */
|
|
122
|
+
accountKey: string;
|
|
123
|
+
email?: string;
|
|
124
|
+
accountId?: string;
|
|
125
|
+
/** {@link UsageLimit.id} of the recorded window. */
|
|
126
|
+
limitId: string;
|
|
127
|
+
/** Human label of the limit. */
|
|
128
|
+
label: string;
|
|
129
|
+
windowLabel?: string;
|
|
130
|
+
/** Used fraction (0..1) when resolvable. */
|
|
131
|
+
usedFraction?: number;
|
|
132
|
+
status?: UsageStatus;
|
|
133
|
+
/** Epoch ms the window resets, when known. */
|
|
134
|
+
resetsAt?: number;
|
|
135
|
+
}
|
|
136
|
+
/** Filter for reading recorded usage history. */
|
|
137
|
+
export interface UsageHistoryQuery {
|
|
138
|
+
provider?: string;
|
|
139
|
+
/** Inclusive lower bound on {@link UsageHistoryEntry.recordedAt} (epoch ms). */
|
|
140
|
+
sinceMs?: number;
|
|
141
|
+
}
|
|
142
|
+
/** One observed provider request cost, attributed to the credential that made it. */
|
|
143
|
+
export interface UsageCostHistoryEntry {
|
|
144
|
+
/** Epoch ms the request completed. */
|
|
145
|
+
recordedAt: number;
|
|
146
|
+
provider: Provider;
|
|
147
|
+
/** Stable credential identity key (account/email/project/secret derived). */
|
|
148
|
+
accountKey: string;
|
|
149
|
+
/** Estimated request cost in USD. */
|
|
150
|
+
costUsd: number;
|
|
151
|
+
}
|
|
152
|
+
/** Filter for reading observed request costs. */
|
|
153
|
+
export interface UsageCostHistoryQuery {
|
|
154
|
+
provider?: string;
|
|
155
|
+
accountKey?: string;
|
|
156
|
+
/** Inclusive lower bound on {@link UsageCostHistoryEntry.recordedAt} (epoch ms). */
|
|
157
|
+
sinceMs?: number;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Aggregated request usage a client observed for one (provider, model) pair.
|
|
161
|
+
* Clients fold every completed request into per-pair buckets and flush them to
|
|
162
|
+
* the auth broker on a short cadence, so the broker can attribute token burn
|
|
163
|
+
* to the install that produced it.
|
|
164
|
+
*/
|
|
165
|
+
export interface ObservedUsageEntry {
|
|
166
|
+
/** Epoch ms of the newest request folded into this bucket. */
|
|
167
|
+
at: number;
|
|
168
|
+
provider: Provider;
|
|
169
|
+
model: string;
|
|
170
|
+
/** Completed requests folded into this bucket. */
|
|
171
|
+
requests: number;
|
|
172
|
+
inputTokens: number;
|
|
173
|
+
outputTokens: number;
|
|
174
|
+
cacheReadTokens: number;
|
|
175
|
+
cacheWriteTokens: number;
|
|
176
|
+
/** Estimated USD cost of the folded requests (0 when unknown). */
|
|
177
|
+
costUsd: number;
|
|
178
|
+
}
|
|
179
|
+
/** One client's observed-usage report, keyed by its stable install id. */
|
|
180
|
+
export interface ClientUsageReport {
|
|
181
|
+
/** Stable per-machine install id — the client primary key. */
|
|
182
|
+
installId: string;
|
|
183
|
+
/** Human-readable machine name for display surfaces. */
|
|
184
|
+
hostname?: string;
|
|
185
|
+
entries: ObservedUsageEntry[];
|
|
186
|
+
}
|
|
187
|
+
/** Per-provider aggregate of one client's recorded usage. */
|
|
188
|
+
export interface ClientProviderUsage {
|
|
189
|
+
provider: string;
|
|
190
|
+
requests: number;
|
|
191
|
+
inputTokens: number;
|
|
192
|
+
outputTokens: number;
|
|
193
|
+
cacheReadTokens: number;
|
|
194
|
+
cacheWriteTokens: number;
|
|
195
|
+
costUsd: number;
|
|
196
|
+
}
|
|
197
|
+
/** One known client with its usage aggregates over the queried window. */
|
|
198
|
+
export interface ClientUsageClientSummary {
|
|
199
|
+
installId: string;
|
|
200
|
+
hostname?: string;
|
|
201
|
+
firstSeen: number;
|
|
202
|
+
lastSeen: number;
|
|
203
|
+
providers: ClientProviderUsage[];
|
|
204
|
+
}
|
|
205
|
+
/** Aggregated per-client usage recorded by the broker host. */
|
|
206
|
+
export interface ClientUsageSummary {
|
|
207
|
+
clients: ClientUsageClientSummary[];
|
|
208
|
+
}
|
|
209
|
+
export declare const usageUnitSchema: import("@linxiraos/pi-omptype").FluentType<"bytes" | "minutes" | "percent" | "requests" | "tokens" | "unknown" | "usd", "bytes" | "minutes" | "percent" | "requests" | "tokens" | "unknown" | "usd">;
|
|
210
|
+
export declare const usageStatusSchema: import("@linxiraos/pi-omptype").FluentType<"exhausted" | "ok" | "unknown" | "warning", "exhausted" | "ok" | "unknown" | "warning">;
|
|
211
|
+
export declare const usageWindowSchema: import("@linxiraos/pi-omptype").FluentType<{
|
|
212
|
+
durationMs?: number | undefined;
|
|
213
|
+
id: string;
|
|
214
|
+
label: string;
|
|
215
|
+
resetLabel?: string | undefined;
|
|
216
|
+
resetsAt?: number | undefined;
|
|
217
|
+
}, {
|
|
218
|
+
durationMs?: number | undefined;
|
|
219
|
+
id: string;
|
|
220
|
+
label: string;
|
|
221
|
+
resetLabel?: string | undefined;
|
|
222
|
+
resetsAt?: number | undefined;
|
|
223
|
+
}>;
|
|
224
|
+
export declare const usageAmountSchema: import("@linxiraos/pi-omptype").FluentType<{
|
|
225
|
+
limit?: number | undefined;
|
|
226
|
+
remaining?: number | undefined;
|
|
227
|
+
remainingFraction?: number | undefined;
|
|
228
|
+
unit: "bytes" | "minutes" | "percent" | "requests" | "tokens" | "unknown" | "usd";
|
|
229
|
+
used?: number | undefined;
|
|
230
|
+
usedFraction?: number | undefined;
|
|
231
|
+
}, {
|
|
232
|
+
limit?: number | undefined;
|
|
233
|
+
remaining?: number | undefined;
|
|
234
|
+
remainingFraction?: number | undefined;
|
|
235
|
+
unit: "bytes" | "minutes" | "percent" | "requests" | "tokens" | "unknown" | "usd";
|
|
236
|
+
used?: number | undefined;
|
|
237
|
+
usedFraction?: number | undefined;
|
|
238
|
+
}>;
|
|
239
|
+
export declare const usageScopeSchema: import("@linxiraos/pi-omptype").FluentType<{
|
|
240
|
+
accountId?: string | undefined;
|
|
241
|
+
modelId?: string | undefined;
|
|
242
|
+
orgId?: string | undefined;
|
|
243
|
+
projectId?: string | undefined;
|
|
244
|
+
provider: string;
|
|
245
|
+
shared?: boolean | undefined;
|
|
246
|
+
tier?: string | undefined;
|
|
247
|
+
windowId?: string | undefined;
|
|
248
|
+
}, {
|
|
249
|
+
accountId?: string | undefined;
|
|
250
|
+
modelId?: string | undefined;
|
|
251
|
+
orgId?: string | undefined;
|
|
252
|
+
projectId?: string | undefined;
|
|
253
|
+
provider: string;
|
|
254
|
+
shared?: boolean | undefined;
|
|
255
|
+
tier?: string | undefined;
|
|
256
|
+
windowId?: string | undefined;
|
|
257
|
+
}>;
|
|
258
|
+
export declare const usageLimitSchema: import("@linxiraos/pi-omptype").FluentType<{
|
|
259
|
+
amount: {
|
|
260
|
+
limit?: number | undefined;
|
|
261
|
+
remaining?: number | undefined;
|
|
262
|
+
remainingFraction?: number | undefined;
|
|
263
|
+
unit: "bytes" | "minutes" | "percent" | "requests" | "tokens" | "unknown" | "usd";
|
|
264
|
+
used?: number | undefined;
|
|
265
|
+
usedFraction?: number | undefined;
|
|
266
|
+
};
|
|
267
|
+
id: string;
|
|
268
|
+
label: string;
|
|
269
|
+
notes?: string[] | undefined;
|
|
270
|
+
scope: {
|
|
271
|
+
accountId?: string | undefined;
|
|
272
|
+
modelId?: string | undefined;
|
|
273
|
+
orgId?: string | undefined;
|
|
274
|
+
projectId?: string | undefined;
|
|
275
|
+
provider: string;
|
|
276
|
+
shared?: boolean | undefined;
|
|
277
|
+
tier?: string | undefined;
|
|
278
|
+
windowId?: string | undefined;
|
|
279
|
+
};
|
|
280
|
+
status?: "exhausted" | "ok" | "unknown" | "warning" | undefined;
|
|
281
|
+
window?: {
|
|
282
|
+
durationMs?: number | undefined;
|
|
283
|
+
id: string;
|
|
284
|
+
label: string;
|
|
285
|
+
resetLabel?: string | undefined;
|
|
286
|
+
resetsAt?: number | undefined;
|
|
287
|
+
} | undefined;
|
|
288
|
+
}, {
|
|
289
|
+
amount: {
|
|
290
|
+
limit?: number | undefined;
|
|
291
|
+
remaining?: number | undefined;
|
|
292
|
+
remainingFraction?: number | undefined;
|
|
293
|
+
unit: "bytes" | "minutes" | "percent" | "requests" | "tokens" | "unknown" | "usd";
|
|
294
|
+
used?: number | undefined;
|
|
295
|
+
usedFraction?: number | undefined;
|
|
296
|
+
};
|
|
297
|
+
id: string;
|
|
298
|
+
label: string;
|
|
299
|
+
notes?: string[] | undefined;
|
|
300
|
+
scope: {
|
|
301
|
+
accountId?: string | undefined;
|
|
302
|
+
modelId?: string | undefined;
|
|
303
|
+
orgId?: string | undefined;
|
|
304
|
+
projectId?: string | undefined;
|
|
305
|
+
provider: string;
|
|
306
|
+
shared?: boolean | undefined;
|
|
307
|
+
tier?: string | undefined;
|
|
308
|
+
windowId?: string | undefined;
|
|
309
|
+
};
|
|
310
|
+
status?: "exhausted" | "ok" | "unknown" | "warning" | undefined;
|
|
311
|
+
window?: {
|
|
312
|
+
durationMs?: number | undefined;
|
|
313
|
+
id: string;
|
|
314
|
+
label: string;
|
|
315
|
+
resetLabel?: string | undefined;
|
|
316
|
+
resetsAt?: number | undefined;
|
|
317
|
+
} | undefined;
|
|
318
|
+
}>;
|
|
319
|
+
export declare const usageResetCreditDetailSchema: import("@linxiraos/pi-omptype").FluentType<{
|
|
320
|
+
expiresAt?: string | undefined;
|
|
321
|
+
grantedAt?: string | undefined;
|
|
322
|
+
status?: string | undefined;
|
|
323
|
+
}, {
|
|
324
|
+
expiresAt?: string | undefined;
|
|
325
|
+
grantedAt?: string | undefined;
|
|
326
|
+
status?: string | undefined;
|
|
327
|
+
}>;
|
|
328
|
+
export declare const usageResetCreditsSchema: import("@linxiraos/pi-omptype").FluentType<{
|
|
329
|
+
availableCount: number;
|
|
330
|
+
credits?: {
|
|
331
|
+
expiresAt?: string | undefined;
|
|
332
|
+
grantedAt?: string | undefined;
|
|
333
|
+
status?: string | undefined;
|
|
334
|
+
}[] | undefined;
|
|
335
|
+
}, {
|
|
336
|
+
availableCount: number;
|
|
337
|
+
credits?: {
|
|
338
|
+
expiresAt?: string | undefined;
|
|
339
|
+
grantedAt?: string | undefined;
|
|
340
|
+
status?: string | undefined;
|
|
341
|
+
}[] | undefined;
|
|
342
|
+
}>;
|
|
343
|
+
export declare const usageReportSchema: import("@linxiraos/pi-omptype").FluentType<{
|
|
344
|
+
fetchedAt: number;
|
|
345
|
+
limits: {
|
|
346
|
+
amount: {
|
|
347
|
+
limit?: number | undefined;
|
|
348
|
+
remaining?: number | undefined;
|
|
349
|
+
remainingFraction?: number | undefined;
|
|
350
|
+
unit: "bytes" | "minutes" | "percent" | "requests" | "tokens" | "unknown" | "usd";
|
|
351
|
+
used?: number | undefined;
|
|
352
|
+
usedFraction?: number | undefined;
|
|
353
|
+
};
|
|
354
|
+
id: string;
|
|
355
|
+
label: string;
|
|
356
|
+
notes?: string[] | undefined;
|
|
357
|
+
scope: {
|
|
358
|
+
accountId?: string | undefined;
|
|
359
|
+
modelId?: string | undefined;
|
|
360
|
+
orgId?: string | undefined;
|
|
361
|
+
projectId?: string | undefined;
|
|
362
|
+
provider: string;
|
|
363
|
+
shared?: boolean | undefined;
|
|
364
|
+
tier?: string | undefined;
|
|
365
|
+
windowId?: string | undefined;
|
|
366
|
+
};
|
|
367
|
+
status?: "exhausted" | "ok" | "unknown" | "warning" | undefined;
|
|
368
|
+
window?: {
|
|
369
|
+
durationMs?: number | undefined;
|
|
370
|
+
id: string;
|
|
371
|
+
label: string;
|
|
372
|
+
resetLabel?: string | undefined;
|
|
373
|
+
resetsAt?: number | undefined;
|
|
374
|
+
} | undefined;
|
|
375
|
+
}[];
|
|
376
|
+
metadata?: Record<string, unknown> | undefined;
|
|
377
|
+
notes?: string[] | undefined;
|
|
378
|
+
provider: string;
|
|
379
|
+
raw?: unknown;
|
|
380
|
+
resetCredits?: {
|
|
381
|
+
availableCount: number;
|
|
382
|
+
credits?: {
|
|
383
|
+
expiresAt?: string | undefined;
|
|
384
|
+
grantedAt?: string | undefined;
|
|
385
|
+
status?: string | undefined;
|
|
386
|
+
}[] | undefined;
|
|
387
|
+
} | undefined;
|
|
388
|
+
}, {
|
|
389
|
+
fetchedAt: number;
|
|
390
|
+
limits: {
|
|
391
|
+
amount: {
|
|
392
|
+
limit?: number | undefined;
|
|
393
|
+
remaining?: number | undefined;
|
|
394
|
+
remainingFraction?: number | undefined;
|
|
395
|
+
unit: "bytes" | "minutes" | "percent" | "requests" | "tokens" | "unknown" | "usd";
|
|
396
|
+
used?: number | undefined;
|
|
397
|
+
usedFraction?: number | undefined;
|
|
398
|
+
};
|
|
399
|
+
id: string;
|
|
400
|
+
label: string;
|
|
401
|
+
notes?: string[] | undefined;
|
|
402
|
+
scope: {
|
|
403
|
+
accountId?: string | undefined;
|
|
404
|
+
modelId?: string | undefined;
|
|
405
|
+
orgId?: string | undefined;
|
|
406
|
+
projectId?: string | undefined;
|
|
407
|
+
provider: string;
|
|
408
|
+
shared?: boolean | undefined;
|
|
409
|
+
tier?: string | undefined;
|
|
410
|
+
windowId?: string | undefined;
|
|
411
|
+
};
|
|
412
|
+
status?: "exhausted" | "ok" | "unknown" | "warning" | undefined;
|
|
413
|
+
window?: {
|
|
414
|
+
durationMs?: number | undefined;
|
|
415
|
+
id: string;
|
|
416
|
+
label: string;
|
|
417
|
+
resetLabel?: string | undefined;
|
|
418
|
+
resetsAt?: number | undefined;
|
|
419
|
+
} | undefined;
|
|
420
|
+
}[];
|
|
421
|
+
metadata?: Record<string, unknown> | undefined;
|
|
422
|
+
notes?: string[] | undefined;
|
|
423
|
+
provider: string;
|
|
424
|
+
raw?: unknown;
|
|
425
|
+
resetCredits?: {
|
|
426
|
+
availableCount: number;
|
|
427
|
+
credits?: {
|
|
428
|
+
expiresAt?: string | undefined;
|
|
429
|
+
grantedAt?: string | undefined;
|
|
430
|
+
status?: string | undefined;
|
|
431
|
+
}[] | undefined;
|
|
432
|
+
} | undefined;
|
|
433
|
+
}>;
|
|
434
|
+
/** Optional logger for usage fetchers. */
|
|
435
|
+
export interface UsageLogger {
|
|
436
|
+
debug(message: string, meta?: Record<string, unknown>): void;
|
|
437
|
+
warn(message: string, meta?: Record<string, unknown>): void;
|
|
438
|
+
}
|
|
439
|
+
/** Credential bundle for usage endpoints. */
|
|
440
|
+
export interface UsageCredential {
|
|
441
|
+
type: "api_key" | "oauth";
|
|
442
|
+
apiKey?: string;
|
|
443
|
+
accessToken?: string;
|
|
444
|
+
refreshToken?: string;
|
|
445
|
+
expiresAt?: number;
|
|
446
|
+
accountId?: string;
|
|
447
|
+
projectId?: string;
|
|
448
|
+
email?: string;
|
|
449
|
+
/** Organization/workspace the credential is scoped to (see OAuthCredentials.orgId). */
|
|
450
|
+
orgId?: string;
|
|
451
|
+
/** Human-readable organization name for display. */
|
|
452
|
+
orgName?: string;
|
|
453
|
+
enterpriseUrl?: string;
|
|
454
|
+
metadata?: Record<string, unknown>;
|
|
455
|
+
apiEndpoint?: string;
|
|
456
|
+
}
|
|
457
|
+
/** Parameters provided to a usage fetcher. */
|
|
458
|
+
export interface UsageFetchParams {
|
|
459
|
+
provider: Provider;
|
|
460
|
+
credential: UsageCredential;
|
|
461
|
+
/** Stable credential identity key derived by the auth storage layer. */
|
|
462
|
+
accountKey?: string;
|
|
463
|
+
baseUrl?: string;
|
|
464
|
+
signal?: AbortSignal;
|
|
465
|
+
}
|
|
466
|
+
/** Shared runtime utilities for fetchers. */
|
|
467
|
+
export interface UsageFetchContext {
|
|
468
|
+
fetch: FetchImpl;
|
|
469
|
+
logger?: UsageLogger;
|
|
470
|
+
retryWait?: (delayMs: number, signal?: AbortSignal) => Promise<void>;
|
|
471
|
+
/** Observed request-cost history for providers without upstream usage APIs. */
|
|
472
|
+
listUsageCosts?: (query?: UsageCostHistoryQuery) => UsageCostHistoryEntry[];
|
|
473
|
+
}
|
|
474
|
+
/** Provider implementation for fetching usage information. */
|
|
475
|
+
export interface UsageProvider {
|
|
476
|
+
id: Provider;
|
|
477
|
+
fetchUsage(params: UsageFetchParams, ctx: UsageFetchContext): Promise<UsageReport | null>;
|
|
478
|
+
/** Parse provider rate-limit response headers (lowercased keys) into a usage report, if supported. */
|
|
479
|
+
parseRateLimitHeaders?(headers: Record<string, string>, now?: number): UsageReport | null;
|
|
480
|
+
supports?(params: UsageFetchParams): boolean;
|
|
481
|
+
/** True when fetchUsage contacts upstream and can authenticate the credential for health checks. */
|
|
482
|
+
validatesCredentials?: boolean;
|
|
483
|
+
/** Whether a failed refresh may serve the previous successful report. Defaults to true. */
|
|
484
|
+
retainLastGoodOnFailure?: boolean;
|
|
485
|
+
}
|
|
486
|
+
/** Request context used when ranking usage for a specific model. */
|
|
487
|
+
export interface CredentialRankingContext {
|
|
488
|
+
/** Provider model id, when the caller is selecting a credential for one model. */
|
|
489
|
+
modelId?: string;
|
|
490
|
+
}
|
|
491
|
+
/** Strategy for usage-based credential ranking. Providers implement this to opt into smart credential selection. */
|
|
492
|
+
export interface CredentialRankingStrategy {
|
|
493
|
+
/** Extract the primary (short) and secondary (long) window limits from a usage report. */
|
|
494
|
+
findWindowLimits(report: UsageReport, context?: CredentialRankingContext): {
|
|
495
|
+
primary?: UsageLimit;
|
|
496
|
+
secondary?: UsageLimit;
|
|
497
|
+
};
|
|
498
|
+
/**
|
|
499
|
+
* Restrict limits to the ones relevant for the requested model before
|
|
500
|
+
* credential-wide exhaustion checks and ranking. Providers with shared
|
|
501
|
+
* account-wide quotas can omit this and use all limits.
|
|
502
|
+
*/
|
|
503
|
+
scopeLimits?(report: UsageReport, context?: CredentialRankingContext): UsageLimit[];
|
|
504
|
+
/**
|
|
505
|
+
* Return a provider-local backoff scope for the requested model. Providers
|
|
506
|
+
* with backend-specific quotas use this so one exhausted model family does
|
|
507
|
+
* not block unrelated families on the same OAuth credential.
|
|
508
|
+
*/
|
|
509
|
+
blockScope?(context?: CredentialRankingContext): string | undefined;
|
|
510
|
+
/**
|
|
511
|
+
* Scopes that apply to a request, most specific first. With a context, the
|
|
512
|
+
* request's own scope plus any legacy catch-all scope whose blocks still
|
|
513
|
+
* apply to everything. Without one — reconciliation runs with no request —
|
|
514
|
+
* every scope whose blocks must be healed.
|
|
515
|
+
*
|
|
516
|
+
* A provider that scopes backoff by model family must implement this, or a
|
|
517
|
+
* block written under one scope is invisible to requests and to healing.
|
|
518
|
+
*/
|
|
519
|
+
blockScopes?(context?: CredentialRankingContext): string[];
|
|
520
|
+
/** Fallback window durations (ms) when limits don't specify durationMs. */
|
|
521
|
+
windowDefaults: {
|
|
522
|
+
primaryMs: number;
|
|
523
|
+
secondaryMs: number;
|
|
524
|
+
};
|
|
525
|
+
/** Optional: priority boost for specific credential states (e.g., fresh 5h ticker start). */
|
|
526
|
+
hasPriorityBoost?(primary: UsageLimit | undefined): boolean;
|
|
527
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface AbortSourceTracker {
|
|
2
|
+
requestAbortController: AbortController;
|
|
3
|
+
requestSignal: AbortSignal;
|
|
4
|
+
abortLocally(reason: Error): Error;
|
|
5
|
+
getLocalAbortReason(): Error | undefined;
|
|
6
|
+
wasCallerAbort(): boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Tracks whether a merged request signal was aborted by the caller or by provider-local logic.
|
|
10
|
+
*
|
|
11
|
+
* Caller aborts always take priority. When both the caller and a local watchdog fire near
|
|
12
|
+
* each other, the merged `requestSignal.reason` reflects whichever AbortController called
|
|
13
|
+
* `.abort()` first — but ordering is racy and not meaningful for upstream consumers. What
|
|
14
|
+
* matters is intent: if the caller's signal aborted, the request was cancelled by the
|
|
15
|
+
* caller, and any local watchdog reason is incidental and **MUST NOT** be surfaced as a
|
|
16
|
+
* retryable transient error (which would cause auto-retry to re-enter streaming and leave
|
|
17
|
+
* the UI showing a spinner the user already tried to cancel).
|
|
18
|
+
*/
|
|
19
|
+
export declare function createAbortSourceTracker(callerSignal?: AbortSignal): AbortSourceTracker;
|
|
20
|
+
/**
|
|
21
|
+
* Race a shared promise against a caller's AbortSignal without coupling the
|
|
22
|
+
* underlying work to that signal. The shared promise keeps running (and caches
|
|
23
|
+
* its result) even when an individual caller bails out.
|
|
24
|
+
*/
|
|
25
|
+
export declare function raceWithSignal<T>(promise: Promise<T>, signal: AbortSignal | undefined): Promise<T>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Auth configuration for Anthropic */
|
|
2
|
+
export interface AnthropicAuthConfig {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
baseUrl: string;
|
|
5
|
+
isOAuth: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function resolveAnthropicBaseUrlFromEnv(): string | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Checks if a token is an OAuth token by looking for sk-ant-oat prefix.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isOAuthToken(apiKey: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Build an {@link AnthropicAuthConfig} from an already-resolved API key.
|
|
14
|
+
*
|
|
15
|
+
* `apiKey` is whatever the caller chose for `Authorization`/`x-api-key` —
|
|
16
|
+
* usually `authStorage.getApiKey("anthropic")`. `baseUrl` overrides the
|
|
17
|
+
* env-derived base; pass `undefined` to fall back to FOUNDRY/ANTHROPIC env
|
|
18
|
+
* resolution and finally `DEFAULT_BASE_URL`.
|
|
19
|
+
*
|
|
20
|
+
* `isOAuth` is derived from the token prefix so the helper stays pure: callers
|
|
21
|
+
* never have to thread the OAuth flag through their own resolution logic.
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildAnthropicAuthConfig(apiKey: string, baseUrl?: string): AnthropicAuthConfig;
|
|
24
|
+
/**
|
|
25
|
+
* Builds HTTP headers for Anthropic API requests (search variant).
|
|
26
|
+
*
|
|
27
|
+
* Forwards `ANTHROPIC_CUSTOM_HEADERS` when the resolver deems them applicable
|
|
28
|
+
* (Foundry mode, or a non-Anthropic base URL — typically an enterprise
|
|
29
|
+
* gateway), matching the streaming path so web search behaves identically.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildAnthropicSearchHeaders(auth: AnthropicAuthConfig): Record<string, string>;
|
|
32
|
+
/**
|
|
33
|
+
* Builds the full API URL for Anthropic messages endpoint.
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildAnthropicUrl(auth: AnthropicAuthConfig): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** INI sections with `profile ` / `sso-session ` prefixes normalized. */
|
|
2
|
+
export type AwsIniFile = Record<string, Record<string, string>>;
|
|
3
|
+
export declare function parseAwsIni(text: string): AwsIniFile;
|
|
4
|
+
/** Resolve the selected shared-credentials profile. */
|
|
5
|
+
export declare function resolveAwsProfile(profile?: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Whether the shared config file participates in profile/region resolution.
|
|
8
|
+
* Explicit profile selection enables it; the implicit default profile follows
|
|
9
|
+
* the AWS SDK's `AWS_SDK_LOAD_CONFIG` opt-in.
|
|
10
|
+
*/
|
|
11
|
+
export declare function shouldLoadAwsSharedConfig(profile?: string): boolean;
|
|
12
|
+
export declare function resolveAwsProfileRegion(profile?: string): string | undefined;
|
|
13
|
+
/** Region selected by the environment or active shared-config profile. */
|
|
14
|
+
export declare function resolveAwsAmbientRegion(profile?: string): string | undefined;
|
|
15
|
+
/** Resolve the region precedence shared by AWS transports and credential exchanges. */
|
|
16
|
+
export declare function resolveAwsRegion(explicitRegion?: string, profile?: string): string;
|
|
17
|
+
export declare function hasConfiguredAwsProfile(profile?: string): boolean;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/** Stores streamed tool-call argument JSON for live renderers and parser recovery. */
|
|
2
|
+
export declare const kStreamingPartialJson: unique symbol;
|
|
3
|
+
/** Carries streamed tool-call argument JSON without exposing a string-keyed property. */
|
|
4
|
+
export type StreamingPartialJsonCarrier = object & {
|
|
5
|
+
[kStreamingPartialJson]?: string;
|
|
6
|
+
};
|
|
7
|
+
/** Reads streamed tool-call argument JSON from a block or event snapshot. */
|
|
8
|
+
export declare function getStreamingPartialJson(block: StreamingPartialJsonCarrier | null | undefined): string | undefined;
|
|
9
|
+
/** Writes streamed tool-call argument JSON to a block or clears it with `undefined`. */
|
|
10
|
+
export declare function setStreamingPartialJson(block: StreamingPartialJsonCarrier, value: string | undefined): void;
|
|
11
|
+
/** Clears streamed tool-call argument JSON without deleting or changing object shape. */
|
|
12
|
+
export declare function clearStreamingPartialJson(block: StreamingPartialJsonCarrier): void;
|
|
13
|
+
/** Stores a provider-local stream block index without exposing a string-keyed property. */
|
|
14
|
+
export declare const kStreamingBlockIndex: unique symbol;
|
|
15
|
+
/** Stores the last parsed argument prefix length for throttled streaming JSON parsing. */
|
|
16
|
+
export declare const kStreamingLastParseLen: unique symbol;
|
|
17
|
+
/**
|
|
18
|
+
* The Cursor interaction envelope's `call_id` for a streamed tool-call block.
|
|
19
|
+
*
|
|
20
|
+
* Tracked separately from the block's own `id` because they are NOT the same
|
|
21
|
+
* key: MCP and Pi blocks are filed under the id inside the call's `args`, which
|
|
22
|
+
* is what the exec channel pairs its result under, while every streamed
|
|
23
|
+
* `ToolCall*Update` correlates on the envelope's `call_id`. Matching
|
|
24
|
+
* completions against the block id would mis-route every call whose args carry
|
|
25
|
+
* their own id.
|
|
26
|
+
*/
|
|
27
|
+
export declare const kStreamingEnvelopeId: unique symbol;
|
|
28
|
+
/** Marks streamed tool-call arguments that already received an authoritative done payload. */
|
|
29
|
+
export declare const kStreamingArgumentsDone: unique symbol;
|
|
30
|
+
/** Classifies Cursor's in-flight tool-call kind without leaking provider-private state. */
|
|
31
|
+
export declare const kStreamingBlockKind: unique symbol;
|
|
32
|
+
/**
|
|
33
|
+
* Marks a `toolCall` content block that Cursor's exec channel already
|
|
34
|
+
* executed server-side (via the coding-agent bridge) and whose result is
|
|
35
|
+
* buffered separately for emission via the assistant-loop stream.
|
|
36
|
+
*
|
|
37
|
+
* `agent-loop.ts` MUST skip execution of blocks carrying this marker —
|
|
38
|
+
* treating them as a fresh runnable tool call would run the same
|
|
39
|
+
* side-effecting tool (bash, write, delete, …) a second time. Symbol-keyed
|
|
40
|
+
* so it never persists across the JSONL round-trip, where rebuild instead
|
|
41
|
+
* pairs the block with its already-persisted `toolResult` message by id.
|
|
42
|
+
*/
|
|
43
|
+
export declare const kCursorExecResolved: unique symbol;
|
|
44
|
+
/** Carries the resolved marker without exposing a string-keyed property. */
|
|
45
|
+
export type CursorExecResolvedCarrier = object & {
|
|
46
|
+
[kCursorExecResolved]?: true;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Marks a text block synthesized by cross-model thinking demotion in
|
|
50
|
+
* `transformMessages`. Converters that flatten adjacent text blocks into one
|
|
51
|
+
* string (openai-completions) insert a paragraph separator after marked
|
|
52
|
+
* blocks; unmarked adjacent blocks keep their original byte sequence.
|
|
53
|
+
* Symbol-keyed so the marker never persists across the JSONL round-trip and
|
|
54
|
+
* never reaches the wire.
|
|
55
|
+
*/
|
|
56
|
+
export declare const kDemotedThinking: unique symbol;
|
|
57
|
+
/** Carries the demoted-thinking marker without exposing a string-keyed property. */
|
|
58
|
+
export type DemotedThinkingCarrier = object & {
|
|
59
|
+
[kDemotedThinking]?: boolean;
|
|
60
|
+
};
|
|
61
|
+
/** True for text blocks synthesized by cross-model thinking demotion. */
|
|
62
|
+
export declare function isDemotedThinking(block: DemotedThinkingCarrier | null | undefined): boolean;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A UUID-shaped string: five hex groups in the canonical 8-4-4-4-12 layout.
|
|
3
|
+
*
|
|
4
|
+
* NOT a spec-compliant RFC 4122 UUID — the version/variant nibbles are left as
|
|
5
|
+
* raw hash output — but the shape passes everywhere a UUID string is expected.
|
|
6
|
+
*/
|
|
7
|
+
export type DeterministicUuid = `${string}-${string}-${string}-${string}-${string}`;
|
|
8
|
+
/**
|
|
9
|
+
* Format the leading 128 bits of `seed`'s SHA-256 digest as a v4-shape UUID
|
|
10
|
+
* (8-4-4-4-12 hex groups).
|
|
11
|
+
*
|
|
12
|
+
* Deterministic: identical seeds always map to the same id, so callers get
|
|
13
|
+
* stable ids across requests / conversation turns (reusing message-blob ids,
|
|
14
|
+
* keying prompt caches) without persisting a seed→id mapping.
|
|
15
|
+
*/
|
|
16
|
+
export declare function deterministicUuid(seed: string): DeterministicUuid;
|