@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,109 @@
|
|
|
1
|
+
import type { Model } from "../../types.js";
|
|
2
|
+
/** Reasoning replay scope for the Codex Responses API (`reasoning.context`). */
|
|
3
|
+
export type CodexReasoningContext = "auto" | "current_turn" | "all_turns";
|
|
4
|
+
/** User-facing effort levels accepted by Codex request options. */
|
|
5
|
+
type CodexCallerEffort = "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
6
|
+
export interface ReasoningConfig {
|
|
7
|
+
effort: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
8
|
+
summary?: "auto" | "concise" | "detailed";
|
|
9
|
+
context?: CodexReasoningContext;
|
|
10
|
+
/** Pro reasoning serving mode (gpt-5.6+ catalog pro aliases). */
|
|
11
|
+
mode?: "pro";
|
|
12
|
+
}
|
|
13
|
+
export interface CodexRequestOptions {
|
|
14
|
+
/** User-facing effort; maps 1:1 onto the wire tier of the same name. */
|
|
15
|
+
reasoningEffort?: CodexCallerEffort | "none";
|
|
16
|
+
reasoningSummary?: ReasoningConfig["summary"] | null;
|
|
17
|
+
/** Explicit `reasoning.context` override. Omitted by default; Responses Lite forces `all_turns` as required by that transport. */
|
|
18
|
+
reasoningContext?: CodexReasoningContext;
|
|
19
|
+
textVerbosity?: "low" | "medium" | "high";
|
|
20
|
+
include?: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Responses Lite transport override; defaults to the model's
|
|
23
|
+
* `useResponsesLite`. Lite moves instructions/tools into input items,
|
|
24
|
+
* strips image detail, and disables parallel tool calling (codex-rs
|
|
25
|
+
* `use_responses_lite`).
|
|
26
|
+
*/
|
|
27
|
+
responsesLite?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface InputItem {
|
|
30
|
+
id?: string | null;
|
|
31
|
+
type?: string | null;
|
|
32
|
+
role?: string;
|
|
33
|
+
content?: unknown;
|
|
34
|
+
call_id?: string | null;
|
|
35
|
+
name?: string;
|
|
36
|
+
output?: unknown;
|
|
37
|
+
arguments?: unknown;
|
|
38
|
+
action?: unknown;
|
|
39
|
+
actions?: unknown;
|
|
40
|
+
pending_safety_checks?: unknown;
|
|
41
|
+
acknowledged_safety_checks?: unknown;
|
|
42
|
+
/** `additional_tools` developer item payload (Responses Lite). */
|
|
43
|
+
tools?: unknown;
|
|
44
|
+
}
|
|
45
|
+
export interface RequestBody {
|
|
46
|
+
model: string;
|
|
47
|
+
store?: boolean;
|
|
48
|
+
stream?: boolean;
|
|
49
|
+
instructions?: string;
|
|
50
|
+
input?: InputItem[];
|
|
51
|
+
tools?: unknown;
|
|
52
|
+
tool_choice?: unknown;
|
|
53
|
+
/** Concurrent reasoning-summary delivery (codex-rs `StreamOptions`). */
|
|
54
|
+
stream_options?: {
|
|
55
|
+
reasoning_summary_delivery: "sequential_cutoff";
|
|
56
|
+
};
|
|
57
|
+
reasoning?: Partial<ReasoningConfig>;
|
|
58
|
+
text?: {
|
|
59
|
+
verbosity?: "low" | "medium" | "high";
|
|
60
|
+
};
|
|
61
|
+
include?: string[];
|
|
62
|
+
prompt_cache_key?: string;
|
|
63
|
+
prompt_cache_retention?: "in_memory" | "24h";
|
|
64
|
+
client_metadata?: Record<string, string>;
|
|
65
|
+
max_output_tokens?: number;
|
|
66
|
+
max_completion_tokens?: number;
|
|
67
|
+
service_tier?: "auto" | "default" | "flex" | "scale" | "priority" | null;
|
|
68
|
+
[key: string]: unknown;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Resolve whether a Codex request uses the Responses Lite transport: an
|
|
72
|
+
* explicit option wins, then the `PI_CODEX_RESPONSES_LITE` env override
|
|
73
|
+
* (`1`/`true` forces Lite, `0`/`false` forces the full Responses body),
|
|
74
|
+
* otherwise the model's catalog flag (codex-rs `model_info.use_responses_lite`)
|
|
75
|
+
* decides.
|
|
76
|
+
*/
|
|
77
|
+
export declare function resolveCodexResponsesLite(model: Model<"openai-codex-responses">, requested: boolean | undefined): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Structural view of a Responses-style body mutated by the Lite rewrite.
|
|
80
|
+
* Loose (`unknown`) property types let the turn transformer (`RequestBody`)
|
|
81
|
+
* and the agent's remote-compaction payloads reuse one shaper.
|
|
82
|
+
*/
|
|
83
|
+
export interface CodexLiteShapedBody {
|
|
84
|
+
instructions?: unknown;
|
|
85
|
+
tools?: unknown;
|
|
86
|
+
tool_choice?: unknown;
|
|
87
|
+
input?: unknown;
|
|
88
|
+
parallel_tool_calls?: unknown;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Applies the Responses Lite body contract in place (codex-rs
|
|
92
|
+
* `build_responses_request` with `use_responses_lite`): strips pinned image
|
|
93
|
+
* detail, forces parallel tool calling off, moves tools into a leading
|
|
94
|
+
* `additional_tools` developer item and the base instructions into a
|
|
95
|
+
* developer message, then omits top-level `instructions`/`tools`. Because the
|
|
96
|
+
* rewrite removes top-level `tools`, a forced hosted-tool choice (e.g.
|
|
97
|
+
* `{ type: "web_search" }`) would leave the backend unable to validate the
|
|
98
|
+
* choice against a tools collection and it rejects the request with HTTP 400
|
|
99
|
+
* (#5771). Native computer and named-function choices preserve exact forcing
|
|
100
|
+
* by isolating the selected declaration and using `"required"`; other hosted
|
|
101
|
+
* choices fall back to `"auto"`. Explicit string constraints such as `"none"`
|
|
102
|
+
* and `"required"` remain valid. Shared by normal turns and both remote-compaction
|
|
103
|
+
* paths — codex-rs routes `/responses/compact` through the same builder.
|
|
104
|
+
*/
|
|
105
|
+
export declare function applyCodexResponsesLiteShape(body: CodexLiteShapedBody): void;
|
|
106
|
+
export declare function transformRequestBody(body: RequestBody, model: Model<"openai-codex-responses">, options?: CodexRequestOptions, prompt?: {
|
|
107
|
+
developerMessages: string[];
|
|
108
|
+
}): Promise<RequestBody>;
|
|
109
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ProviderHttpError } from "../../error/index.js";
|
|
2
|
+
export type CodexRateLimit = {
|
|
3
|
+
used_percent?: number;
|
|
4
|
+
window_minutes?: number;
|
|
5
|
+
resets_at?: number;
|
|
6
|
+
};
|
|
7
|
+
export type CodexRateLimits = {
|
|
8
|
+
primary?: CodexRateLimit;
|
|
9
|
+
secondary?: CodexRateLimit;
|
|
10
|
+
};
|
|
11
|
+
export type CodexErrorInfo = {
|
|
12
|
+
message: string;
|
|
13
|
+
status: number;
|
|
14
|
+
/** Machine-readable error code (`error.code` or `error.type` from the response body), when present. */
|
|
15
|
+
code?: string;
|
|
16
|
+
friendlyMessage?: string;
|
|
17
|
+
rateLimits?: CodexRateLimits;
|
|
18
|
+
raw?: string;
|
|
19
|
+
};
|
|
20
|
+
/** Non-2xx response from the Codex backend, with the parsed body retained. */
|
|
21
|
+
export declare class CodexApiError extends ProviderHttpError {
|
|
22
|
+
readonly info: CodexErrorInfo;
|
|
23
|
+
constructor(info: CodexErrorInfo, headers?: Headers);
|
|
24
|
+
static fromResponse(response: Response): Promise<CodexApiError>;
|
|
25
|
+
}
|
|
26
|
+
export declare function parseCodexError(response: Response): Promise<CodexErrorInfo>;
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import type { CodexCompactionContext, CodexCompactionRequestContext, Context, Model, ProviderSessionState, ServiceTier, StreamFunction, StreamOptions, Tool, ToolChoice } from "../types.js";
|
|
2
|
+
import { type CodexLiteShapedBody, type CodexReasoningContext, type RequestBody } from "./openai-codex/request-transformer.js";
|
|
3
|
+
import type { ResponseInput } from "./openai-responses-wire.js";
|
|
4
|
+
export interface OpenAICodexResponsesOptions extends StreamOptions {
|
|
5
|
+
reasoning?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
6
|
+
reasoningSummary?: "auto" | "concise" | "detailed" | null;
|
|
7
|
+
/** Explicit `reasoning.context` replay scope. Omitted by default so Codex applies its native request policy. */
|
|
8
|
+
reasoningContext?: CodexReasoningContext;
|
|
9
|
+
textVerbosity?: "low" | "medium" | "high";
|
|
10
|
+
codexMode?: boolean;
|
|
11
|
+
toolChoice?: ToolChoice;
|
|
12
|
+
preferWebsockets?: boolean;
|
|
13
|
+
serviceTier?: ServiceTier;
|
|
14
|
+
/**
|
|
15
|
+
* Responses Lite transport override; defaults to the model's catalog
|
|
16
|
+
* `useResponsesLite` flag (codex-rs `use_responses_lite`). Sends
|
|
17
|
+
* `x-openai-internal-codex-responses-lite: true` on HTTP requests and on the
|
|
18
|
+
* WebSocket upgrade (the marker is connection-scoped there, so lite and
|
|
19
|
+
* non-lite turns never share a pooled socket), moves instructions/tools
|
|
20
|
+
* into input items, strips image detail, and disables parallel tool
|
|
21
|
+
* calling — mirroring codex-rs.
|
|
22
|
+
*/
|
|
23
|
+
responsesLite?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Additional fields embedded in the canonical
|
|
26
|
+
* `client_metadata["x-codex-turn-metadata"]` JSON blob. Reserved identity
|
|
27
|
+
* keys are ignored; extras are never emitted as top-level metadata fields.
|
|
28
|
+
*/
|
|
29
|
+
clientMetadata?: Record<string, string>;
|
|
30
|
+
/**
|
|
31
|
+
* Turn id of the initiating (parent) Codex turn for nested requests such as
|
|
32
|
+
* subagent spawns (codex-rs `parent_turn_id`, #35835). Emitted both as the
|
|
33
|
+
* flat `client_metadata.parent_turn_id` key and inside the
|
|
34
|
+
* `x-codex-turn-metadata` JSON blob; blank values are ignored. The key is
|
|
35
|
+
* reserved: `clientMetadata` extras cannot supply it.
|
|
36
|
+
*/
|
|
37
|
+
parentTurnId?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Invoked when the server streams a `response.metadata` event carrying
|
|
40
|
+
* ChatGPT moderation metadata (`metadata.openai_chatgpt_moderation_metadata`)
|
|
41
|
+
* for first-party presentation parity. Diagnostic observer: failures are
|
|
42
|
+
* swallowed and must not alter the stream.
|
|
43
|
+
*/
|
|
44
|
+
onModerationMetadata?: (metadata: unknown) => void;
|
|
45
|
+
}
|
|
46
|
+
/** Raw V2 compaction body accepted by the Codex transport selector. */
|
|
47
|
+
export interface OpenAICodexCompactionBody extends CodexLiteShapedBody {
|
|
48
|
+
model: string;
|
|
49
|
+
[key: string]: unknown;
|
|
50
|
+
}
|
|
51
|
+
/** Transport controls for a provider-native Codex V2 compaction stream. */
|
|
52
|
+
export interface OpenAICodexCompactionStreamOptions extends OpenAICodexResponsesOptions {
|
|
53
|
+
apiKey: string;
|
|
54
|
+
}
|
|
55
|
+
/** Inputs for synthesizing Codex request identity outside the normal stream path. */
|
|
56
|
+
export interface OpenAICodexCompatibilityMetadataOptions {
|
|
57
|
+
sessionId?: string;
|
|
58
|
+
providerSessionState?: Map<string, ProviderSessionState>;
|
|
59
|
+
requestKind: OpenAICodexRequestKind;
|
|
60
|
+
compaction?: CodexCompactionRequestContext;
|
|
61
|
+
startNewTurn?: boolean;
|
|
62
|
+
turnStartedAtUnixMs?: number;
|
|
63
|
+
clientMetadata?: Readonly<Record<string, string>>;
|
|
64
|
+
/** Parent Codex turn id for nested requests; see {@link OpenAICodexResponsesOptions.parentTurnId}. */
|
|
65
|
+
parentTurnId?: string;
|
|
66
|
+
/** Add the direct installation header required by `/responses/compact`. */
|
|
67
|
+
includeInstallationHeader?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/** Canonical Codex body metadata and compatibility headers for one request. */
|
|
70
|
+
export interface OpenAICodexCompatibilityMetadata {
|
|
71
|
+
clientMetadata: Record<string, string>;
|
|
72
|
+
headers: Record<string, string>;
|
|
73
|
+
}
|
|
74
|
+
/** Live Codex session state to preserve after a successful history rewrite. */
|
|
75
|
+
export interface OpenAICodexCompactionResetOptions {
|
|
76
|
+
providerSessionState?: Map<string, ProviderSessionState>;
|
|
77
|
+
sessionId?: string;
|
|
78
|
+
compaction: CodexCompactionContext;
|
|
79
|
+
}
|
|
80
|
+
/** Add the selected wire implementation to one logical compaction context. */
|
|
81
|
+
export declare function createOpenAICodexCompactionRequestContext(options: {
|
|
82
|
+
context: CodexCompactionContext | undefined;
|
|
83
|
+
implementation: "responses" | "responses_compaction_v2" | "responses_compact";
|
|
84
|
+
}): CodexCompactionRequestContext | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Host integration boundary for just-in-time `x-oai-attestation` header
|
|
87
|
+
* values (codex-rs `AttestationProvider`). Resolves to the full header value
|
|
88
|
+
* — an `{"v":1,"s":0,"t":"v1.…"}` envelope — or `undefined` when no
|
|
89
|
+
* attestation should be sent.
|
|
90
|
+
*/
|
|
91
|
+
export type CodexAttestationProvider = () => Promise<string | undefined>;
|
|
92
|
+
/**
|
|
93
|
+
* Install the process-wide attestation hook consulted for upstream Codex
|
|
94
|
+
* requests (codex-rs stores its provider on `ModelClient` construction). The
|
|
95
|
+
* hook is only consulted for ChatGPT-OAuth credentials and runs just-in-time
|
|
96
|
+
* per request; WebSocket handshakes resolve once per connection because the
|
|
97
|
+
* header is connection-scoped there.
|
|
98
|
+
*/
|
|
99
|
+
export declare function setCodexAttestationProvider(provider: CodexAttestationProvider | undefined): void;
|
|
100
|
+
/**
|
|
101
|
+
* Resolve the `x-oai-attestation` header value for one upstream request.
|
|
102
|
+
* Gated on ChatGPT-OAuth credentials (a Codex JWT carries `chatgpt_account_id`;
|
|
103
|
+
* codex-rs gates on `auth.is_chatgpt_auth()`). A throwing hook degrades to no
|
|
104
|
+
* header rather than failing the request.
|
|
105
|
+
*/
|
|
106
|
+
export declare function getCodexAttestationHeader(accountId: string | undefined): Promise<string | undefined>;
|
|
107
|
+
type CodexTransport = "sse" | "websocket";
|
|
108
|
+
/** Shape of the Codex request sent on the latest provider turn. */
|
|
109
|
+
export interface OpenAICodexTurnRequestDiagnostics {
|
|
110
|
+
transport: "sse" | "websocket";
|
|
111
|
+
previousResponseIdPresent: boolean;
|
|
112
|
+
inputItemCount: number;
|
|
113
|
+
inputItemTypes: string[];
|
|
114
|
+
firstInputItemType?: string;
|
|
115
|
+
inputJsonBytes: number;
|
|
116
|
+
promptCacheKey?: string;
|
|
117
|
+
toolsHash?: string;
|
|
118
|
+
optionsHash: string;
|
|
119
|
+
canAppendBeforeRequest: boolean;
|
|
120
|
+
}
|
|
121
|
+
/** Raw provider usage plus the normalized buckets OMP displays for the latest Codex turn. */
|
|
122
|
+
export interface OpenAICodexTurnUsageDiagnostics {
|
|
123
|
+
rawInputTokens: number;
|
|
124
|
+
rawCachedTokens: number;
|
|
125
|
+
rawUncachedTokens: number;
|
|
126
|
+
rawOutputTokens: number;
|
|
127
|
+
rawTotalTokens?: number;
|
|
128
|
+
rawOrchestrationInputTokens?: number;
|
|
129
|
+
rawOrchestrationCachedTokens?: number;
|
|
130
|
+
rawOrchestrationOutputTokens?: number;
|
|
131
|
+
displayedInputTokens: number;
|
|
132
|
+
displayedOutputTokens: number;
|
|
133
|
+
displayedCacheReadTokens: number;
|
|
134
|
+
displayedCacheWriteTokens: number;
|
|
135
|
+
displayedTotalTokens: number;
|
|
136
|
+
displayedOrchestrationInputTokens: number;
|
|
137
|
+
displayedOrchestrationCacheReadTokens: number;
|
|
138
|
+
displayedOrchestrationOutputTokens: number;
|
|
139
|
+
}
|
|
140
|
+
/** Latest Codex turn request/usage diagnostics exposed to debug UIs and tests. */
|
|
141
|
+
export interface OpenAICodexTurnDiagnostics {
|
|
142
|
+
request: OpenAICodexTurnRequestDiagnostics;
|
|
143
|
+
usage?: OpenAICodexTurnUsageDiagnostics;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Per-session request-shape counters and latest turn diagnostics. Despite the
|
|
147
|
+
* name, these cover both transports.
|
|
148
|
+
*/
|
|
149
|
+
export interface OpenAICodexWebSocketDebugStats {
|
|
150
|
+
fullContextRequests: number;
|
|
151
|
+
deltaRequests: number;
|
|
152
|
+
lastInputItems: number;
|
|
153
|
+
lastDeltaInputItems?: number;
|
|
154
|
+
lastPreviousResponseId?: string;
|
|
155
|
+
lastTurn?: OpenAICodexTurnDiagnostics;
|
|
156
|
+
}
|
|
157
|
+
/** Request classification encoded in Codex turn metadata. */
|
|
158
|
+
export type OpenAICodexRequestKind = "turn" | "prewarm" | "compaction";
|
|
159
|
+
/**
|
|
160
|
+
* Synthesize Codex request identity for raw provider routes such as remote
|
|
161
|
+
* compaction while reusing the live session's thread, window, and turn.
|
|
162
|
+
*/
|
|
163
|
+
export declare function createOpenAICodexCompatibilityMetadata(options: OpenAICodexCompatibilityMetadataOptions): OpenAICodexCompatibilityMetadata;
|
|
164
|
+
/**
|
|
165
|
+
* Invalidate Codex history-dependent transport state after compaction while
|
|
166
|
+
* retaining the session identity and live connection.
|
|
167
|
+
*/
|
|
168
|
+
export declare function resetOpenAICodexHistoryAfterCompaction(options: OpenAICodexCompactionResetOptions): void;
|
|
169
|
+
/** @internal Exported for tests. */
|
|
170
|
+
export declare function normalizeCodexToolChoice(choice: ToolChoice | undefined, tools?: Tool[], model?: Model<"openai-codex-responses">): string | Record<string, unknown> | undefined;
|
|
171
|
+
/** @internal Exported for tests. */
|
|
172
|
+
export declare function buildTransformedCodexRequestBody(model: Model<"openai-codex-responses">, context: Context, options: OpenAICodexResponsesOptions | undefined, promptCacheKey?: string | undefined): Promise<RequestBody>;
|
|
173
|
+
/**
|
|
174
|
+
* Open a provider-native V2 compaction stream through Codex's WebSocket-first
|
|
175
|
+
* transport, replaying WebSocket transport failures over SSE.
|
|
176
|
+
*/
|
|
177
|
+
export declare function openCodexCompactionEventStream(model: Model<"openai-codex-responses">, body: OpenAICodexCompactionBody, options: OpenAICodexCompactionStreamOptions): Promise<AsyncGenerator<Record<string, unknown>>>;
|
|
178
|
+
export declare const streamOpenAICodexResponses: StreamFunction<"openai-codex-responses">;
|
|
179
|
+
export declare function prewarmOpenAICodexResponses(model: Model<"openai-codex-responses">, options?: Pick<OpenAICodexResponsesOptions, "apiKey" | "headers" | "sessionId" | "signal" | "preferWebsockets" | "providerSessionState" | "responsesLite">): Promise<void>;
|
|
180
|
+
export interface OpenAICodexTransportDetails {
|
|
181
|
+
websocketPreferred: boolean;
|
|
182
|
+
lastTransport?: CodexTransport;
|
|
183
|
+
websocketDisabled: boolean;
|
|
184
|
+
websocketConnected: boolean;
|
|
185
|
+
fallbackCount: number;
|
|
186
|
+
canAppend: boolean;
|
|
187
|
+
prewarmed: boolean;
|
|
188
|
+
hasSessionState: boolean;
|
|
189
|
+
hasTurnState: boolean;
|
|
190
|
+
lastFallbackAt?: number;
|
|
191
|
+
}
|
|
192
|
+
export declare function getOpenAICodexWebSocketDebugStats(model: Model<"openai-codex-responses">, options?: {
|
|
193
|
+
sessionId?: string;
|
|
194
|
+
baseUrl?: string;
|
|
195
|
+
providerSessionState?: Map<string, ProviderSessionState>;
|
|
196
|
+
}): OpenAICodexWebSocketDebugStats | undefined;
|
|
197
|
+
export declare function getOpenAICodexTransportDetails(model: Model<"openai-codex-responses">, options?: {
|
|
198
|
+
sessionId?: string;
|
|
199
|
+
baseUrl?: string;
|
|
200
|
+
preferWebsockets?: boolean;
|
|
201
|
+
providerSessionState?: Map<string, ProviderSessionState>;
|
|
202
|
+
}): OpenAICodexTransportDetails;
|
|
203
|
+
/** Resolve a Codex Responses endpoint exactly as the chat and compaction transports do. */
|
|
204
|
+
export declare function resolveCodexResponsesUrl(baseUrl: string | undefined): string;
|
|
205
|
+
declare function convertMessages(model: Model<"openai-codex-responses">, context: Context): ResponseInput;
|
|
206
|
+
/** @internal Exported for tests. */
|
|
207
|
+
export { convertMessages as convertCodexResponsesMessages };
|
|
208
|
+
type CodexToolPayload = {
|
|
209
|
+
type: "computer";
|
|
210
|
+
name?: never;
|
|
211
|
+
} | {
|
|
212
|
+
type: "function";
|
|
213
|
+
name: string;
|
|
214
|
+
description: string;
|
|
215
|
+
parameters: Record<string, unknown>;
|
|
216
|
+
strict?: boolean;
|
|
217
|
+
} | {
|
|
218
|
+
type: "custom";
|
|
219
|
+
name: string;
|
|
220
|
+
description: string;
|
|
221
|
+
format: {
|
|
222
|
+
type: "grammar";
|
|
223
|
+
syntax: "lark" | "regex";
|
|
224
|
+
definition: string;
|
|
225
|
+
};
|
|
226
|
+
};
|
|
227
|
+
/** @internal Exported for tests. */
|
|
228
|
+
export declare function convertOpenAICodexResponsesTools(tools: Tool[], model: Model<"openai-codex-responses">): CodexToolPayload[];
|
|
229
|
+
export declare class CodexWebSocketTransportError extends Error {
|
|
230
|
+
constructor(detail: string);
|
|
231
|
+
}
|
|
232
|
+
declare class CodexProviderStreamError extends Error {
|
|
233
|
+
readonly retryable: boolean;
|
|
234
|
+
readonly code?: string;
|
|
235
|
+
constructor(message: string, retryable: boolean, code?: string);
|
|
236
|
+
}
|
|
237
|
+
export declare function isRetryableCodexFailureEvent(rawEvent: Record<string, unknown>): boolean;
|
|
238
|
+
export declare function createCodexProviderStreamError(rawEvent: Record<string, unknown>): CodexProviderStreamError;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ResolvedOpenAICompat } from "@linxiraos/pi-catalog/types";
|
|
2
|
+
import type { AssistantMessage, Context, Model, ServiceTier, StreamFunction, StreamOptions, ToolChoice } from "../types.js";
|
|
3
|
+
import type { ChatCompletionMessageParam } from "./openai-chat-wire.js";
|
|
4
|
+
import { type OpenAIPromptCacheOptions } from "./openai-shared.js";
|
|
5
|
+
export { applyOpenRouterRoutingVariant } from "./openai-shared.js";
|
|
6
|
+
/**
|
|
7
|
+
* Identify "real progress" stream chunks vs. keepalives, role-only preambles,
|
|
8
|
+
* and empty `{choices:[]}` no-ops emitted by some OpenAI-compatible endpoints.
|
|
9
|
+
* Without this filter, every keepalive resets `iterateWithIdleTimeout`'s
|
|
10
|
+
* deadline, so a provider that streams nothing but pings keeps the watchdog
|
|
11
|
+
* asleep indefinitely — observed against z.ai/GLM via OpenRouter where a
|
|
12
|
+
* subagent stalled for hours with no error surfaced.
|
|
13
|
+
*
|
|
14
|
+
* A chunk counts as progress when it carries terminal usage, a finish reason,
|
|
15
|
+
* or a model-produced delta (content / tool calls / reasoning / refusal).
|
|
16
|
+
* Role-only `delta: { role: "assistant" }` preambles do NOT count; we want the
|
|
17
|
+
* (longer) first-event timeout to keep governing until real output appears.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isOpenAICompletionsProgressChunk(chunk: unknown): boolean;
|
|
20
|
+
export interface OpenAICompletionsOptions extends StreamOptions {
|
|
21
|
+
toolChoice?: ToolChoice;
|
|
22
|
+
reasoning?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
23
|
+
/** Force-disable reasoning where supported, or request the lowest effort on generic effort endpoints. */
|
|
24
|
+
disableReasoning?: boolean;
|
|
25
|
+
serviceTier?: ServiceTier;
|
|
26
|
+
/** @internal True when maxTokens came from the caller, not the model default. */
|
|
27
|
+
maxTokensExplicit?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Routing-variant suffix appended to OpenRouter model IDs when none is
|
|
30
|
+
* already present (`anthropic/claude-haiku-latest` → `…:nitro`). Common
|
|
31
|
+
* values: `"nitro"`, `"floor"`, `"online"`, `"exacto"`. Ignored when the
|
|
32
|
+
* resolved `model.id` already contains a colon-suffix after the last
|
|
33
|
+
* provider segment (explicit `:nitro` in the selector or a catalog entry
|
|
34
|
+
* with the variant baked in).
|
|
35
|
+
*/
|
|
36
|
+
openrouterVariant?: string;
|
|
37
|
+
/** Opt-in GPT-5.6+ prompt-cache policy. Unsupported explicit mode fails locally. */
|
|
38
|
+
promptCache?: OpenAIPromptCacheOptions;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Public entry: wrap the single-attempt streamer with bounded empty-completion
|
|
42
|
+
* retries — flaky gateways occasionally 200 with `delta: {}` + `finish_reason:
|
|
43
|
+
* "stop"` and no usage, which would otherwise stall the agent loop. Shared with
|
|
44
|
+
* the Anthropic provider via `withEmptyCompletionRetry`.
|
|
45
|
+
*/
|
|
46
|
+
export declare const streamOpenAICompletions: StreamFunction<"openai-completions">;
|
|
47
|
+
export declare function parseChunkUsage(rawUsage: object, model: Model<"openai-completions">, premiumRequests: number | undefined): AssistantMessage["usage"];
|
|
48
|
+
export declare function convertMessages(model: Model<"openai-completions">, context: Context, compat: ResolvedOpenAICompat): ChatCompletionMessageParam[];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CapturedHttpErrorResponse } from "../utils/http-inspector.js";
|
|
2
|
+
/** @internal */
|
|
3
|
+
export type OpenAIReasoningEffortFallback = string | null;
|
|
4
|
+
/** @internal */
|
|
5
|
+
export interface OpenAIReasoningEffortFallbackState {
|
|
6
|
+
reasoningEffortFallbacks: Map<string, OpenAIReasoningEffortFallback>;
|
|
7
|
+
}
|
|
8
|
+
/** @internal */
|
|
9
|
+
export declare function createOpenAIReasoningEffortFallbackState(): OpenAIReasoningEffortFallbackState;
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare function clearOpenAIReasoningEffortFallbackState(state: OpenAIReasoningEffortFallbackState): void;
|
|
12
|
+
/** @internal */
|
|
13
|
+
export declare function getOpenAIReasoningEffortFallback(state: OpenAIReasoningEffortFallbackState | undefined, key: string): OpenAIReasoningEffortFallback | undefined;
|
|
14
|
+
/** @internal */
|
|
15
|
+
export declare function rememberOpenAIReasoningEffortFallback(state: OpenAIReasoningEffortFallbackState | undefined, key: string, fallback: OpenAIReasoningEffortFallback): void;
|
|
16
|
+
/** @internal */
|
|
17
|
+
export declare function createOpenAIReasoningEffortFallbackKey(endpoint: "chat-completions" | "responses" | "azure-responses", baseUrl: string | undefined, wireModelId: string | undefined): string;
|
|
18
|
+
/** @internal */
|
|
19
|
+
export declare function readOpenAIReasoningEffort(params: unknown): string | undefined;
|
|
20
|
+
/** @internal */
|
|
21
|
+
export declare function applyOpenAIReasoningEffortFallback(params: unknown, fallback: OpenAIReasoningEffortFallback): boolean;
|
|
22
|
+
/** @internal */
|
|
23
|
+
export declare function resolveOpenAIReasoningEffortFallback(error: unknown, captured: CapturedHttpErrorResponse | undefined, params: unknown, options?: {
|
|
24
|
+
explicitDisable?: boolean;
|
|
25
|
+
}): OpenAIReasoningEffortFallback | undefined;
|