@code-yeongyu/senpi-ai 2026.9.29 → 2026.10.1-2
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/README.md +189 -19
- package/dist/api/anthropic-messages.js +168 -32
- package/dist/api/azure-openai-responses.js +23 -10
- package/dist/api/bedrock-converse-stream.js +16 -6
- package/dist/api/cloudflare-workers-ai-system-one.d.ts +4 -0
- package/dist/api/cloudflare-workers-ai-system-one.js +43 -0
- package/dist/api/cloudflare-workers-ai-system-one.lazy.d.ts +3 -0
- package/dist/api/cloudflare-workers-ai-system-one.lazy.js +4 -0
- package/dist/api/cloudflare.d.ts +2 -0
- package/dist/api/cloudflare.js +2 -0
- package/dist/api/context-room.d.ts +2 -2
- package/dist/api/cursor-agent.js +19 -10
- package/dist/api/devin-agent/request.d.ts +9 -9
- package/dist/api/devin-agent/request.js +14 -10
- package/dist/api/google-generative-ai.js +20 -80
- package/dist/api/google-shared.d.ts +13 -4
- package/dist/api/google-shared.js +54 -4
- package/dist/api/google-vertex.js +19 -62
- package/dist/api/lazy.js +2 -1
- package/dist/api/llama-cpp-classify.d.ts +33 -0
- package/dist/api/llama-cpp-classify.js +365 -0
- package/dist/api/llama-cpp-classify.lazy.d.ts +3 -0
- package/dist/api/llama-cpp-classify.lazy.js +4 -0
- package/dist/api/mistral-conversations.d.ts +1 -1
- package/dist/api/mistral-conversations.js +36 -29
- package/dist/api/openai-codex-responses.d.ts +1 -1
- package/dist/api/openai-codex-responses.js +72 -37
- package/dist/api/openai-completions.d.ts +3 -2
- package/dist/api/openai-completions.js +89 -58
- package/dist/api/openai-images-params.d.ts +2 -2
- package/dist/api/openai-images.d.ts +1 -1
- package/dist/api/openai-responses-shared.d.ts +31 -8
- package/dist/api/openai-responses-shared.js +119 -28
- package/dist/api/openai-responses.d.ts +1 -1
- package/dist/api/openai-responses.js +40 -32
- package/dist/api/openrouter-images.d.ts +2 -1
- package/dist/api/openrouter-images.js +1 -0
- package/dist/api/pi-messages.d.ts +3 -3
- package/dist/api/pi-messages.js +3 -2
- package/dist/api/simple-options.d.ts +2 -2
- package/dist/api/simple-options.js +1 -0
- package/dist/api/system-one-shared.d.ts +23 -0
- package/dist/api/system-one-shared.js +183 -0
- package/dist/api/transform-messages.js +5 -2
- package/dist/api/typesafe-system-one.d.ts +4 -0
- package/dist/api/typesafe-system-one.js +19 -0
- package/dist/api/typesafe-system-one.lazy.d.ts +3 -0
- package/dist/api/typesafe-system-one.lazy.js +4 -0
- package/dist/api-registry.d.ts +3 -3
- package/dist/auth/helpers.js +1 -1
- package/dist/auth/oauth/anthropic-callback-listener.js +1 -1
- package/dist/auth/oauth/callback-server.d.ts +55 -0
- package/dist/auth/oauth/callback-server.js +146 -0
- package/dist/auth/oauth/chatgpt-subscription.d.ts +1 -1
- package/dist/auth/oauth/chatgpt-subscription.js +20 -124
- package/dist/auth/oauth/devin-callback.js +1 -1
- package/dist/auth/oauth/load.d.ts +4 -0
- package/dist/auth/oauth/load.js +10 -0
- package/dist/auth/oauth/meta.d.ts +17 -0
- package/dist/auth/oauth/meta.js +190 -0
- package/dist/auth/oauth/openai-chatgpt.d.ts +9 -0
- package/dist/auth/oauth/openai-chatgpt.js +266 -0
- package/dist/auth/oauth/openrouter.d.ts +1 -1
- package/dist/auth/oauth/openrouter.js +19 -138
- package/dist/auth/oauth/radius.d.ts +1 -1
- package/dist/auth/oauth/radius.js +21 -89
- package/dist/auth/resolve.d.ts +3 -8
- package/dist/auth/resolve.js +3 -18
- package/dist/auth/types.d.ts +10 -1
- package/dist/bun-oauth.js +4 -0
- package/dist/cli.js +3 -1
- package/dist/compat.js +17 -14
- package/dist/env-api-keys.js +2 -0
- package/dist/image-models.d.ts +19 -8
- package/dist/image-models.js +14 -13
- package/dist/images-api-registry.d.ts +8 -8
- package/dist/images.d.ts +7 -2
- package/dist/images.js +5 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/model-catalog.d.ts +27 -9
- package/dist/model-catalog.js +24 -2
- package/dist/model.d.ts +13 -13
- package/dist/models-store.d.ts +3 -2
- package/dist/models.d.ts +106 -36
- package/dist/models.generated.d.ts +142 -42
- package/dist/models.generated.js +142 -42
- package/dist/models.js +180 -38
- package/dist/providers/alibaba-token-plan.models.d.ts +4 -2
- package/dist/providers/alibaba-token-plan.models.js +4 -2
- package/dist/providers/all.d.ts +72 -19
- package/dist/providers/all.js +28 -22
- package/dist/providers/amazon-bedrock.models.d.ts +4 -2
- package/dist/providers/amazon-bedrock.models.js +4 -2
- package/dist/providers/ant-ling.models.d.ts +4 -2
- package/dist/providers/ant-ling.models.js +4 -2
- package/dist/providers/anthropic.models.d.ts +4 -2
- package/dist/providers/anthropic.models.js +4 -2
- package/dist/providers/azure-openai-responses.models.d.ts +4 -2
- package/dist/providers/azure-openai-responses.models.js +4 -2
- package/dist/providers/bai.models.d.ts +4 -2
- package/dist/providers/bai.models.js +4 -2
- package/dist/providers/baseten.models.d.ts +4 -2
- package/dist/providers/baseten.models.js +4 -2
- package/dist/providers/cerebras.models.d.ts +4 -2
- package/dist/providers/cerebras.models.js +4 -2
- package/dist/providers/chatgpt-subscription.models.d.ts +4 -2
- package/dist/providers/chatgpt-subscription.models.js +4 -2
- package/dist/providers/cloudflare-ai-gateway.models.d.ts +4 -2
- package/dist/providers/cloudflare-ai-gateway.models.js +4 -2
- package/dist/providers/cloudflare-stream.d.ts +6 -2
- package/dist/providers/cloudflare-stream.js +6 -0
- package/dist/providers/cloudflare-workers-ai.js +10 -3
- package/dist/providers/cloudflare-workers-ai.models.d.ts +4 -2
- package/dist/providers/cloudflare-workers-ai.models.js +4 -2
- package/dist/providers/data/.manifest.json +1 -1
- package/dist/providers/data/alibaba-token-plan.json +1 -1
- package/dist/providers/data/amazon-bedrock.json +1 -1
- package/dist/providers/data/ant-ling.json +1 -1
- package/dist/providers/data/anthropic.json +1 -1
- package/dist/providers/data/azure-openai-responses.json +1 -1
- package/dist/providers/data/bai.json +1 -1
- package/dist/providers/data/baseten.json +1 -1
- package/dist/providers/data/cerebras.json +1 -1
- package/dist/providers/data/chatgpt-subscription.json +1 -1
- package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/dist/providers/data/cloudflare-workers-ai.json +1 -1
- package/dist/providers/data/deepseek.json +1 -1
- package/dist/providers/data/fireworks.json +1 -1
- package/dist/providers/data/github-copilot.json +1 -1
- package/dist/providers/data/google-vertex.json +1 -1
- package/dist/providers/data/google.json +1 -1
- package/dist/providers/data/groq.json +1 -1
- package/dist/providers/data/huggingface.json +1 -1
- package/dist/providers/data/meta.json +1 -0
- package/dist/providers/data/minimax-cn.json +1 -1
- package/dist/providers/data/minimax.json +1 -1
- package/dist/providers/data/mistral.json +1 -1
- package/dist/providers/data/moonshotai-cn.json +1 -1
- package/dist/providers/data/moonshotai.json +1 -1
- package/dist/providers/data/nvidia.json +1 -1
- package/dist/providers/data/openai.json +1 -1
- package/dist/providers/data/opencode-go.json +1 -1
- package/dist/providers/data/opencode.json +1 -1
- package/dist/providers/data/opengateway.json +1 -1
- package/dist/providers/data/openrouter.json +1 -1
- package/dist/providers/data/qwen-token-plan-cn.json +1 -1
- package/dist/providers/data/qwen-token-plan-individual.json +1 -1
- package/dist/providers/data/qwen-token-plan.json +1 -1
- package/dist/providers/data/radius.json +1 -0
- package/dist/providers/data/together.json +1 -1
- package/dist/providers/data/typesafe.json +1 -0
- package/dist/providers/data/venice.json +1 -1
- package/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/dist/providers/data/xai.json +1 -1
- package/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
- package/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
- package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
- package/dist/providers/data/xiaomi.json +1 -1
- package/dist/providers/data/zai-coding-cn.json +1 -1
- package/dist/providers/data/zai.json +1 -1
- package/dist/providers/deepseek.models.d.ts +4 -2
- package/dist/providers/deepseek.models.js +4 -2
- package/dist/providers/faux.d.ts +7 -2
- package/dist/providers/faux.js +31 -22
- package/dist/providers/fireworks.models.d.ts +4 -2
- package/dist/providers/fireworks.models.js +4 -2
- package/dist/providers/github-copilot.models.d.ts +4 -2
- package/dist/providers/github-copilot.models.js +4 -2
- package/dist/providers/google-vertex.models.d.ts +4 -2
- package/dist/providers/google-vertex.models.js +4 -2
- package/dist/providers/google.models.d.ts +4 -2
- package/dist/providers/google.models.js +4 -2
- package/dist/providers/groq.models.d.ts +4 -2
- package/dist/providers/groq.models.js +4 -2
- package/dist/providers/huggingface.models.d.ts +4 -2
- package/dist/providers/huggingface.models.js +4 -2
- package/dist/providers/images/register-builtins.d.ts +2 -2
- package/dist/providers/kimi-coding.models.d.ts +54 -7
- package/dist/providers/kimi-coding.models.js +34 -7
- package/dist/providers/meta.d.ts +3 -0
- package/dist/providers/meta.js +24 -0
- package/dist/providers/meta.models.d.ts +6 -0
- package/dist/providers/meta.models.js +8 -0
- package/dist/providers/minimax-cn.models.d.ts +4 -2
- package/dist/providers/minimax-cn.models.js +4 -2
- package/dist/providers/minimax.models.d.ts +4 -2
- package/dist/providers/minimax.models.js +4 -2
- package/dist/providers/mistral.models.d.ts +4 -2
- package/dist/providers/mistral.models.js +4 -2
- package/dist/providers/moonshotai-cn.models.d.ts +4 -2
- package/dist/providers/moonshotai-cn.models.js +4 -2
- package/dist/providers/moonshotai.models.d.ts +4 -2
- package/dist/providers/moonshotai.models.js +4 -2
- package/dist/providers/nvidia.models.d.ts +4 -2
- package/dist/providers/nvidia.models.js +4 -2
- package/dist/providers/openai.js +4 -2
- package/dist/providers/openai.models.d.ts +4 -2
- package/dist/providers/openai.models.js +4 -2
- package/dist/providers/opencode-go.models.d.ts +4 -2
- package/dist/providers/opencode-go.models.js +4 -2
- package/dist/providers/opencode.d.ts +3 -1
- package/dist/providers/opencode.js +5 -2
- package/dist/providers/opencode.models.d.ts +4 -2
- package/dist/providers/opencode.models.js +4 -2
- package/dist/providers/opengateway.models.d.ts +4 -2
- package/dist/providers/opengateway.models.js +4 -2
- package/dist/providers/openrouter.js +11 -2
- package/dist/providers/openrouter.models.d.ts +4 -2
- package/dist/providers/openrouter.models.js +4 -2
- package/dist/providers/qwen-token-plan-cn.models.d.ts +4 -2
- package/dist/providers/qwen-token-plan-cn.models.js +4 -2
- package/dist/providers/qwen-token-plan-individual.models.d.ts +4 -2
- package/dist/providers/qwen-token-plan-individual.models.js +4 -2
- package/dist/providers/qwen-token-plan.models.d.ts +4 -2
- package/dist/providers/qwen-token-plan.models.js +4 -2
- package/dist/providers/radius.js +19 -5
- package/dist/providers/radius.models.d.ts +6 -0
- package/dist/providers/radius.models.js +8 -0
- package/dist/providers/together.models.d.ts +4 -2
- package/dist/providers/together.models.js +4 -2
- package/dist/providers/typesafe.d.ts +3 -0
- package/dist/providers/typesafe.js +18 -0
- package/dist/providers/typesafe.models.d.ts +6 -0
- package/dist/providers/typesafe.models.js +8 -0
- package/dist/providers/venice.models.d.ts +4 -2
- package/dist/providers/venice.models.js +4 -2
- package/dist/providers/vercel-ai-gateway.js +5 -2
- package/dist/providers/vercel-ai-gateway.models.d.ts +4 -2
- package/dist/providers/vercel-ai-gateway.models.js +4 -2
- package/dist/providers/xai.models.d.ts +4 -2
- package/dist/providers/xai.models.js +4 -2
- package/dist/providers/xiaomi-token-plan-ams.models.d.ts +4 -2
- package/dist/providers/xiaomi-token-plan-ams.models.js +4 -2
- package/dist/providers/xiaomi-token-plan-cn.models.d.ts +4 -2
- package/dist/providers/xiaomi-token-plan-cn.models.js +4 -2
- package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +4 -2
- package/dist/providers/xiaomi-token-plan-sgp.models.js +4 -2
- package/dist/providers/xiaomi.models.d.ts +4 -2
- package/dist/providers/xiaomi.models.js +4 -2
- package/dist/providers/zai-coding-cn.models.d.ts +4 -2
- package/dist/providers/zai-coding-cn.models.js +4 -2
- package/dist/providers/zai.models.d.ts +4 -2
- package/dist/providers/zai.models.js +4 -2
- package/dist/tool-call-middleware/context-transformer.d.ts +8 -5
- package/dist/tool-call-middleware/context-transformer.js +44 -15
- package/dist/types.d.ts +262 -28
- package/dist/utils/diagnostics.d.ts +3 -2
- package/dist/utils/estimate.d.ts +2 -2
- package/dist/utils/estimate.js +22 -30
- package/dist/utils/headers.d.ts +1 -1
- package/dist/utils/headers.js +10 -8
- package/dist/utils/model-operations.d.ts +11 -0
- package/dist/utils/model-operations.js +47 -0
- package/dist/utils/models-error.d.ts +8 -0
- package/dist/utils/models-error.js +18 -0
- package/dist/utils/overflow.d.ts +1 -0
- package/dist/utils/overflow.js +11 -5
- package/dist/utils/prompt-cache-ttl.js +43 -5
- package/dist/utils/provider-failure-description.d.ts +7 -0
- package/dist/utils/provider-failure-description.js +21 -0
- package/dist/utils/retry.js +18 -0
- package/dist/utils/text.d.ts +9 -1
- package/dist/utils/text.js +26 -0
- package/dist/utils/tool-schema-compat.d.ts +2 -0
- package/dist/utils/tool-schema-compat.js +28 -9
- package/dist/utils/transcript.d.ts +85 -0
- package/dist/utils/transcript.js +205 -0
- package/package.json +4 -4
- package/dist/api/anthropic-messages.d.ts.map +0 -1
- package/dist/api/anthropic-messages.js.map +0 -1
- package/dist/api/anthropic-messages.lazy.d.ts.map +0 -1
- package/dist/api/anthropic-messages.lazy.js.map +0 -1
- package/dist/api/anthropic-tool-pairs.d.ts.map +0 -1
- package/dist/api/anthropic-tool-pairs.js.map +0 -1
- package/dist/api/anthropic-tool-references.d.ts.map +0 -1
- package/dist/api/anthropic-tool-references.js.map +0 -1
- package/dist/api/azure-openai-responses.d.ts.map +0 -1
- package/dist/api/azure-openai-responses.js.map +0 -1
- package/dist/api/azure-openai-responses.lazy.d.ts.map +0 -1
- package/dist/api/azure-openai-responses.lazy.js.map +0 -1
- package/dist/api/bedrock-converse-stream.d.ts.map +0 -1
- package/dist/api/bedrock-converse-stream.js.map +0 -1
- package/dist/api/bedrock-converse-stream.lazy.d.ts.map +0 -1
- package/dist/api/bedrock-converse-stream.lazy.js.map +0 -1
- package/dist/api/cloudflare-ai-binding.d.ts.map +0 -1
- package/dist/api/cloudflare-ai-binding.js.map +0 -1
- package/dist/api/cloudflare.d.ts.map +0 -1
- package/dist/api/cloudflare.js.map +0 -1
- package/dist/api/constrained-sampling.d.ts.map +0 -1
- package/dist/api/constrained-sampling.js.map +0 -1
- package/dist/api/context-room.d.ts.map +0 -1
- package/dist/api/context-room.js.map +0 -1
- package/dist/api/cursor-agent/deterministic-id.d.ts.map +0 -1
- package/dist/api/cursor-agent/deterministic-id.js.map +0 -1
- package/dist/api/cursor-agent/exec-lifecycle.d.ts.map +0 -1
- package/dist/api/cursor-agent/exec-lifecycle.js.map +0 -1
- package/dist/api/cursor-agent/exec-modern.d.ts.map +0 -1
- package/dist/api/cursor-agent/exec-modern.js.map +0 -1
- package/dist/api/cursor-agent/gen/agent_pb.d.ts.map +0 -1
- package/dist/api/cursor-agent/gen/agent_pb.js.map +0 -1
- package/dist/api/cursor-agent/measure.d.ts.map +0 -1
- package/dist/api/cursor-agent/measure.js.map +0 -1
- package/dist/api/cursor-agent/pi-args.d.ts.map +0 -1
- package/dist/api/cursor-agent/pi-args.js.map +0 -1
- package/dist/api/cursor-agent/reasoning-params.d.ts.map +0 -1
- package/dist/api/cursor-agent/reasoning-params.js.map +0 -1
- package/dist/api/cursor-agent/stream-retry.d.ts.map +0 -1
- package/dist/api/cursor-agent/stream-retry.js.map +0 -1
- package/dist/api/cursor-agent/types.d.ts.map +0 -1
- package/dist/api/cursor-agent/types.js.map +0 -1
- package/dist/api/cursor-agent.d.ts.map +0 -1
- package/dist/api/cursor-agent.js.map +0 -1
- package/dist/api/cursor-agent.lazy.d.ts.map +0 -1
- package/dist/api/cursor-agent.lazy.js.map +0 -1
- package/dist/api/cursor-conversation-rotation.d.ts.map +0 -1
- package/dist/api/cursor-conversation-rotation.js.map +0 -1
- package/dist/api/cursor-task-args.d.ts.map +0 -1
- package/dist/api/cursor-task-args.js.map +0 -1
- package/dist/api/devin-agent/discovery.d.ts.map +0 -1
- package/dist/api/devin-agent/discovery.js.map +0 -1
- package/dist/api/devin-agent/frames.d.ts.map +0 -1
- package/dist/api/devin-agent/frames.js.map +0 -1
- package/dist/api/devin-agent/gen/cascade_pb.d.ts.map +0 -1
- package/dist/api/devin-agent/gen/cascade_pb.js.map +0 -1
- package/dist/api/devin-agent/metadata.d.ts.map +0 -1
- package/dist/api/devin-agent/metadata.js.map +0 -1
- package/dist/api/devin-agent/paths.d.ts.map +0 -1
- package/dist/api/devin-agent/paths.js.map +0 -1
- package/dist/api/devin-agent/request.d.ts.map +0 -1
- package/dist/api/devin-agent/request.js.map +0 -1
- package/dist/api/devin-agent/stream-state.d.ts.map +0 -1
- package/dist/api/devin-agent/stream-state.js.map +0 -1
- package/dist/api/devin-agent/trailer.d.ts.map +0 -1
- package/dist/api/devin-agent/trailer.js.map +0 -1
- package/dist/api/devin-agent/types.d.ts.map +0 -1
- package/dist/api/devin-agent/types.js.map +0 -1
- package/dist/api/devin-agent/unary.d.ts.map +0 -1
- package/dist/api/devin-agent/unary.js.map +0 -1
- package/dist/api/devin-agent/wire.d.ts.map +0 -1
- package/dist/api/devin-agent/wire.js.map +0 -1
- package/dist/api/devin-agent.d.ts.map +0 -1
- package/dist/api/devin-agent.js.map +0 -1
- package/dist/api/devin-agent.lazy.d.ts.map +0 -1
- package/dist/api/devin-agent.lazy.js.map +0 -1
- package/dist/api/github-copilot-endpoint.d.ts.map +0 -1
- package/dist/api/github-copilot-endpoint.js.map +0 -1
- package/dist/api/github-copilot-errors.d.ts.map +0 -1
- package/dist/api/github-copilot-errors.js.map +0 -1
- package/dist/api/github-copilot-headers.d.ts.map +0 -1
- package/dist/api/github-copilot-headers.js.map +0 -1
- package/dist/api/google-generative-ai.d.ts.map +0 -1
- package/dist/api/google-generative-ai.js.map +0 -1
- package/dist/api/google-generative-ai.lazy.d.ts.map +0 -1
- package/dist/api/google-generative-ai.lazy.js.map +0 -1
- package/dist/api/google-shared.d.ts.map +0 -1
- package/dist/api/google-shared.js.map +0 -1
- package/dist/api/google-vertex.d.ts.map +0 -1
- package/dist/api/google-vertex.js.map +0 -1
- package/dist/api/google-vertex.lazy.d.ts.map +0 -1
- package/dist/api/google-vertex.lazy.js.map +0 -1
- package/dist/api/lazy.d.ts.map +0 -1
- package/dist/api/lazy.js.map +0 -1
- package/dist/api/mistral-conversations.d.ts.map +0 -1
- package/dist/api/mistral-conversations.js.map +0 -1
- package/dist/api/mistral-conversations.lazy.d.ts.map +0 -1
- package/dist/api/mistral-conversations.lazy.js.map +0 -1
- package/dist/api/openai-client-auth.d.ts.map +0 -1
- package/dist/api/openai-client-auth.js.map +0 -1
- package/dist/api/openai-codex-responses/fallback-state.d.ts.map +0 -1
- package/dist/api/openai-codex-responses/fallback-state.js.map +0 -1
- package/dist/api/openai-codex-responses/reasoning.d.ts.map +0 -1
- package/dist/api/openai-codex-responses/reasoning.js.map +0 -1
- package/dist/api/openai-codex-responses.d.ts.map +0 -1
- package/dist/api/openai-codex-responses.js.map +0 -1
- package/dist/api/openai-codex-responses.lazy.d.ts.map +0 -1
- package/dist/api/openai-codex-responses.lazy.js.map +0 -1
- package/dist/api/openai-completions.d.ts.map +0 -1
- package/dist/api/openai-completions.js.map +0 -1
- package/dist/api/openai-completions.lazy.d.ts.map +0 -1
- package/dist/api/openai-completions.lazy.js.map +0 -1
- package/dist/api/openai-images-edit.d.ts.map +0 -1
- package/dist/api/openai-images-edit.js.map +0 -1
- package/dist/api/openai-images-params.d.ts.map +0 -1
- package/dist/api/openai-images-params.js.map +0 -1
- package/dist/api/openai-images-result.d.ts.map +0 -1
- package/dist/api/openai-images-result.js.map +0 -1
- package/dist/api/openai-images.d.ts.map +0 -1
- package/dist/api/openai-images.js.map +0 -1
- package/dist/api/openai-images.lazy.d.ts.map +0 -1
- package/dist/api/openai-images.lazy.js.map +0 -1
- package/dist/api/openai-prompt-cache.d.ts.map +0 -1
- package/dist/api/openai-prompt-cache.js.map +0 -1
- package/dist/api/openai-responses-prompt-cache.d.ts.map +0 -1
- package/dist/api/openai-responses-prompt-cache.js.map +0 -1
- package/dist/api/openai-responses-shared.d.ts.map +0 -1
- package/dist/api/openai-responses-shared.js.map +0 -1
- package/dist/api/openai-responses.d.ts.map +0 -1
- package/dist/api/openai-responses.js.map +0 -1
- package/dist/api/openai-responses.lazy.d.ts.map +0 -1
- package/dist/api/openai-responses.lazy.js.map +0 -1
- package/dist/api/openrouter-images.d.ts.map +0 -1
- package/dist/api/openrouter-images.js.map +0 -1
- package/dist/api/openrouter-images.lazy.d.ts.map +0 -1
- package/dist/api/openrouter-images.lazy.js.map +0 -1
- package/dist/api/pi-messages.d.ts.map +0 -1
- package/dist/api/pi-messages.js.map +0 -1
- package/dist/api/pi-messages.lazy.d.ts.map +0 -1
- package/dist/api/pi-messages.lazy.js.map +0 -1
- package/dist/api/prompt-cache-warmers.d.ts.map +0 -1
- package/dist/api/prompt-cache-warmers.js.map +0 -1
- package/dist/api/responses-completion-grace.d.ts.map +0 -1
- package/dist/api/responses-completion-grace.js.map +0 -1
- package/dist/api/simple-options.d.ts.map +0 -1
- package/dist/api/simple-options.js.map +0 -1
- package/dist/api/transform-messages.d.ts.map +0 -1
- package/dist/api/transform-messages.js.map +0 -1
- package/dist/api/warm-prompt-cache.d.ts.map +0 -1
- package/dist/api/warm-prompt-cache.js.map +0 -1
- package/dist/api/websocket-liveness.d.ts.map +0 -1
- package/dist/api/websocket-liveness.js.map +0 -1
- package/dist/api/websocket-transport-failure.d.ts.map +0 -1
- package/dist/api/websocket-transport-failure.js.map +0 -1
- package/dist/api-registry.d.ts.map +0 -1
- package/dist/api-registry.js.map +0 -1
- package/dist/auth/context.d.ts.map +0 -1
- package/dist/auth/context.js.map +0 -1
- package/dist/auth/credential-store.d.ts.map +0 -1
- package/dist/auth/credential-store.js.map +0 -1
- package/dist/auth/headers.d.ts.map +0 -1
- package/dist/auth/headers.js.map +0 -1
- package/dist/auth/helpers.d.ts.map +0 -1
- package/dist/auth/helpers.js.map +0 -1
- package/dist/auth/oauth/anthropic-callback-listener.d.ts.map +0 -1
- package/dist/auth/oauth/anthropic-callback-listener.js.map +0 -1
- package/dist/auth/oauth/anthropic.d.ts.map +0 -1
- package/dist/auth/oauth/anthropic.js.map +0 -1
- package/dist/auth/oauth/authorization-input.d.ts.map +0 -1
- package/dist/auth/oauth/authorization-input.js.map +0 -1
- package/dist/auth/oauth/chatgpt-subscription.d.ts.map +0 -1
- package/dist/auth/oauth/chatgpt-subscription.js.map +0 -1
- package/dist/auth/oauth/cursor.d.ts.map +0 -1
- package/dist/auth/oauth/cursor.js.map +0 -1
- package/dist/auth/oauth/device-code.d.ts.map +0 -1
- package/dist/auth/oauth/device-code.js.map +0 -1
- package/dist/auth/oauth/devin-callback.d.ts.map +0 -1
- package/dist/auth/oauth/devin-callback.js.map +0 -1
- package/dist/auth/oauth/devin-token.d.ts.map +0 -1
- package/dist/auth/oauth/devin-token.js.map +0 -1
- package/dist/auth/oauth/devin.d.ts.map +0 -1
- package/dist/auth/oauth/devin.js.map +0 -1
- package/dist/auth/oauth/error-details.d.ts.map +0 -1
- package/dist/auth/oauth/error-details.js.map +0 -1
- package/dist/auth/oauth/github-copilot-model-catalog.d.ts.map +0 -1
- package/dist/auth/oauth/github-copilot-model-catalog.js.map +0 -1
- package/dist/auth/oauth/github-copilot.d.ts.map +0 -1
- package/dist/auth/oauth/github-copilot.js.map +0 -1
- package/dist/auth/oauth/kimi-coding.d.ts.map +0 -1
- package/dist/auth/oauth/kimi-coding.js.map +0 -1
- package/dist/auth/oauth/kimi-identity.d.ts.map +0 -1
- package/dist/auth/oauth/kimi-identity.js.map +0 -1
- package/dist/auth/oauth/kimi-region.d.ts.map +0 -1
- package/dist/auth/oauth/kimi-region.js.map +0 -1
- package/dist/auth/oauth/load.d.ts.map +0 -1
- package/dist/auth/oauth/load.js.map +0 -1
- package/dist/auth/oauth/oauth-page.d.ts.map +0 -1
- package/dist/auth/oauth/oauth-page.js.map +0 -1
- package/dist/auth/oauth/openrouter.d.ts.map +0 -1
- package/dist/auth/oauth/openrouter.js.map +0 -1
- package/dist/auth/oauth/pkce.d.ts.map +0 -1
- package/dist/auth/oauth/pkce.js.map +0 -1
- package/dist/auth/oauth/radius.d.ts.map +0 -1
- package/dist/auth/oauth/radius.js.map +0 -1
- package/dist/auth/oauth/xai.d.ts.map +0 -1
- package/dist/auth/oauth/xai.js.map +0 -1
- package/dist/auth/oauth-refresh.d.ts.map +0 -1
- package/dist/auth/oauth-refresh.js.map +0 -1
- package/dist/auth/pool/classify.d.ts.map +0 -1
- package/dist/auth/pool/classify.js.map +0 -1
- package/dist/auth/pool/failover.d.ts.map +0 -1
- package/dist/auth/pool/failover.js.map +0 -1
- package/dist/auth/pool/select.d.ts.map +0 -1
- package/dist/auth/pool/select.js.map +0 -1
- package/dist/auth/pool/slots.d.ts.map +0 -1
- package/dist/auth/pool/slots.js.map +0 -1
- package/dist/auth/refresh-credential.d.ts.map +0 -1
- package/dist/auth/refresh-credential.js.map +0 -1
- package/dist/auth/resolve.d.ts.map +0 -1
- package/dist/auth/resolve.js.map +0 -1
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js.map +0 -1
- package/dist/bedrock-provider.d.ts.map +0 -1
- package/dist/bedrock-provider.js.map +0 -1
- package/dist/bun-oauth.d.ts.map +0 -1
- package/dist/bun-oauth.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/compat/extension-oauth-types.d.ts.map +0 -1
- package/dist/compat/extension-oauth-types.js.map +0 -1
- package/dist/compat.d.ts.map +0 -1
- package/dist/compat.js.map +0 -1
- package/dist/context-provenance.d.ts.map +0 -1
- package/dist/context-provenance.js.map +0 -1
- package/dist/cursor/catalog-grouping.d.ts.map +0 -1
- package/dist/cursor/catalog-grouping.js.map +0 -1
- package/dist/cursor/composer-prompt.d.ts.map +0 -1
- package/dist/cursor/composer-prompt.js.map +0 -1
- package/dist/cursor/context-limit-store.d.ts.map +0 -1
- package/dist/cursor/context-limit-store.js.map +0 -1
- package/dist/cursor/model-capabilities.d.ts.map +0 -1
- package/dist/cursor/model-capabilities.js.map +0 -1
- package/dist/cursor/selection-descriptor.d.ts.map +0 -1
- package/dist/cursor/selection-descriptor.js.map +0 -1
- package/dist/cursor/store-migration.d.ts.map +0 -1
- package/dist/cursor/store-migration.js.map +0 -1
- package/dist/cursor-agent-provider.d.ts.map +0 -1
- package/dist/cursor-agent-provider.js.map +0 -1
- package/dist/devin-provider.d.ts.map +0 -1
- package/dist/devin-provider.js.map +0 -1
- package/dist/endpoint-reasoning-efforts.d.ts.map +0 -1
- package/dist/endpoint-reasoning-efforts.js.map +0 -1
- package/dist/env-api-keys.d.ts.map +0 -1
- package/dist/env-api-keys.js.map +0 -1
- package/dist/image-models.d.ts.map +0 -1
- package/dist/image-models.generated.d.ts +0 -925
- package/dist/image-models.generated.d.ts.map +0 -1
- package/dist/image-models.generated.js +0 -927
- package/dist/image-models.generated.js.map +0 -1
- package/dist/image-models.js.map +0 -1
- package/dist/images-api-registry.d.ts.map +0 -1
- package/dist/images-api-registry.js.map +0 -1
- package/dist/images-models.d.ts +0 -95
- package/dist/images-models.d.ts.map +0 -1
- package/dist/images-models.js +0 -141
- package/dist/images-models.js.map +0 -1
- package/dist/images.d.ts.map +0 -1
- package/dist/images.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/legacy-api-aliases.d.ts.map +0 -1
- package/dist/legacy-api-aliases.js.map +0 -1
- package/dist/legacy-provider-ids.d.ts.map +0 -1
- package/dist/legacy-provider-ids.js.map +0 -1
- package/dist/model-catalog.d.ts.map +0 -1
- package/dist/model-catalog.js.map +0 -1
- package/dist/model.d.ts.map +0 -1
- package/dist/model.js.map +0 -1
- package/dist/models-store.d.ts.map +0 -1
- package/dist/models-store.js.map +0 -1
- package/dist/models.d.ts.map +0 -1
- package/dist/models.generated.d.ts.map +0 -1
- package/dist/models.generated.js.map +0 -1
- package/dist/models.js.map +0 -1
- package/dist/node/provider-scope.d.ts.map +0 -1
- package/dist/node/provider-scope.js.map +0 -1
- package/dist/oauth.d.ts.map +0 -1
- package/dist/oauth.js.map +0 -1
- package/dist/openai-responses-compat.d.ts.map +0 -1
- package/dist/openai-responses-compat.js.map +0 -1
- package/dist/provider-diagnostic.d.ts.map +0 -1
- package/dist/provider-diagnostic.js.map +0 -1
- package/dist/providers/alibaba-token-plan.d.ts.map +0 -1
- package/dist/providers/alibaba-token-plan.js.map +0 -1
- package/dist/providers/alibaba-token-plan.models.d.ts.map +0 -1
- package/dist/providers/alibaba-token-plan.models.js.map +0 -1
- package/dist/providers/all.d.ts.map +0 -1
- package/dist/providers/all.js.map +0 -1
- package/dist/providers/amazon-bedrock.d.ts.map +0 -1
- package/dist/providers/amazon-bedrock.js.map +0 -1
- package/dist/providers/amazon-bedrock.models.d.ts.map +0 -1
- package/dist/providers/amazon-bedrock.models.js.map +0 -1
- package/dist/providers/ant-ling.d.ts.map +0 -1
- package/dist/providers/ant-ling.js.map +0 -1
- package/dist/providers/ant-ling.models.d.ts.map +0 -1
- package/dist/providers/ant-ling.models.js.map +0 -1
- package/dist/providers/anthropic.d.ts.map +0 -1
- package/dist/providers/anthropic.js.map +0 -1
- package/dist/providers/anthropic.models.d.ts.map +0 -1
- package/dist/providers/anthropic.models.js.map +0 -1
- package/dist/providers/azure-openai-responses.d.ts.map +0 -1
- package/dist/providers/azure-openai-responses.js.map +0 -1
- package/dist/providers/azure-openai-responses.models.d.ts.map +0 -1
- package/dist/providers/azure-openai-responses.models.js.map +0 -1
- package/dist/providers/bai-stream.d.ts.map +0 -1
- package/dist/providers/bai-stream.js.map +0 -1
- package/dist/providers/bai.d.ts.map +0 -1
- package/dist/providers/bai.js.map +0 -1
- package/dist/providers/bai.models.d.ts.map +0 -1
- package/dist/providers/bai.models.js.map +0 -1
- package/dist/providers/baseten.d.ts.map +0 -1
- package/dist/providers/baseten.js.map +0 -1
- package/dist/providers/baseten.models.d.ts.map +0 -1
- package/dist/providers/baseten.models.js.map +0 -1
- package/dist/providers/cerebras.d.ts.map +0 -1
- package/dist/providers/cerebras.js.map +0 -1
- package/dist/providers/cerebras.models.d.ts.map +0 -1
- package/dist/providers/cerebras.models.js.map +0 -1
- package/dist/providers/chatgpt-subscription.d.ts.map +0 -1
- package/dist/providers/chatgpt-subscription.js.map +0 -1
- package/dist/providers/chatgpt-subscription.models.d.ts.map +0 -1
- package/dist/providers/chatgpt-subscription.models.js.map +0 -1
- package/dist/providers/cloudflare-ai-gateway.d.ts.map +0 -1
- package/dist/providers/cloudflare-ai-gateway.js.map +0 -1
- package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +0 -1
- package/dist/providers/cloudflare-ai-gateway.models.js.map +0 -1
- package/dist/providers/cloudflare-auth.d.ts.map +0 -1
- package/dist/providers/cloudflare-auth.js.map +0 -1
- package/dist/providers/cloudflare-stream.d.ts.map +0 -1
- package/dist/providers/cloudflare-stream.js.map +0 -1
- package/dist/providers/cloudflare-workers-ai.d.ts.map +0 -1
- package/dist/providers/cloudflare-workers-ai.js.map +0 -1
- package/dist/providers/cloudflare-workers-ai.models.d.ts.map +0 -1
- package/dist/providers/cloudflare-workers-ai.models.js.map +0 -1
- package/dist/providers/cursor.d.ts.map +0 -1
- package/dist/providers/cursor.js.map +0 -1
- package/dist/providers/deepseek.d.ts.map +0 -1
- package/dist/providers/deepseek.js.map +0 -1
- package/dist/providers/deepseek.models.d.ts.map +0 -1
- package/dist/providers/deepseek.models.js.map +0 -1
- package/dist/providers/devin.d.ts.map +0 -1
- package/dist/providers/devin.js.map +0 -1
- package/dist/providers/devin.models.d.ts.map +0 -1
- package/dist/providers/devin.models.js.map +0 -1
- package/dist/providers/faux.d.ts.map +0 -1
- package/dist/providers/faux.js.map +0 -1
- package/dist/providers/fireworks.d.ts.map +0 -1
- package/dist/providers/fireworks.js.map +0 -1
- package/dist/providers/fireworks.models.d.ts.map +0 -1
- package/dist/providers/fireworks.models.js.map +0 -1
- package/dist/providers/github-copilot-limits.d.ts.map +0 -1
- package/dist/providers/github-copilot-limits.js.map +0 -1
- package/dist/providers/github-copilot.d.ts.map +0 -1
- package/dist/providers/github-copilot.js.map +0 -1
- package/dist/providers/github-copilot.models.d.ts.map +0 -1
- package/dist/providers/github-copilot.models.js.map +0 -1
- package/dist/providers/google-shared.d.ts.map +0 -1
- package/dist/providers/google-shared.js.map +0 -1
- package/dist/providers/google-vertex.d.ts.map +0 -1
- package/dist/providers/google-vertex.js.map +0 -1
- package/dist/providers/google-vertex.models.d.ts.map +0 -1
- package/dist/providers/google-vertex.models.js.map +0 -1
- package/dist/providers/google.d.ts.map +0 -1
- package/dist/providers/google.js.map +0 -1
- package/dist/providers/google.models.d.ts.map +0 -1
- package/dist/providers/google.models.js.map +0 -1
- package/dist/providers/groq.d.ts.map +0 -1
- package/dist/providers/groq.js.map +0 -1
- package/dist/providers/groq.models.d.ts.map +0 -1
- package/dist/providers/groq.models.js.map +0 -1
- package/dist/providers/huggingface.d.ts.map +0 -1
- package/dist/providers/huggingface.js.map +0 -1
- package/dist/providers/huggingface.models.d.ts.map +0 -1
- package/dist/providers/huggingface.models.js.map +0 -1
- package/dist/providers/images/register-builtins.d.ts.map +0 -1
- package/dist/providers/images/register-builtins.js.map +0 -1
- package/dist/providers/kimi-coding-auth.d.ts.map +0 -1
- package/dist/providers/kimi-coding-auth.js.map +0 -1
- package/dist/providers/kimi-coding.d.ts.map +0 -1
- package/dist/providers/kimi-coding.js.map +0 -1
- package/dist/providers/kimi-coding.models.d.ts.map +0 -1
- package/dist/providers/kimi-coding.models.js.map +0 -1
- package/dist/providers/minimax-cn.d.ts.map +0 -1
- package/dist/providers/minimax-cn.js.map +0 -1
- package/dist/providers/minimax-cn.models.d.ts.map +0 -1
- package/dist/providers/minimax-cn.models.js.map +0 -1
- package/dist/providers/minimax.d.ts.map +0 -1
- package/dist/providers/minimax.js.map +0 -1
- package/dist/providers/minimax.models.d.ts.map +0 -1
- package/dist/providers/minimax.models.js.map +0 -1
- package/dist/providers/mistral.d.ts.map +0 -1
- package/dist/providers/mistral.js.map +0 -1
- package/dist/providers/mistral.models.d.ts.map +0 -1
- package/dist/providers/mistral.models.js.map +0 -1
- package/dist/providers/moonshotai-cn.d.ts.map +0 -1
- package/dist/providers/moonshotai-cn.js.map +0 -1
- package/dist/providers/moonshotai-cn.models.d.ts.map +0 -1
- package/dist/providers/moonshotai-cn.models.js.map +0 -1
- package/dist/providers/moonshotai.d.ts.map +0 -1
- package/dist/providers/moonshotai.js.map +0 -1
- package/dist/providers/moonshotai.models.d.ts.map +0 -1
- package/dist/providers/moonshotai.models.js.map +0 -1
- package/dist/providers/nvidia.d.ts.map +0 -1
- package/dist/providers/nvidia.js.map +0 -1
- package/dist/providers/nvidia.models.d.ts.map +0 -1
- package/dist/providers/nvidia.models.js.map +0 -1
- package/dist/providers/ollama.d.ts.map +0 -1
- package/dist/providers/ollama.js.map +0 -1
- package/dist/providers/openai-completions.d.ts.map +0 -1
- package/dist/providers/openai-completions.js.map +0 -1
- package/dist/providers/openai-images.d.ts +0 -3
- package/dist/providers/openai-images.d.ts.map +0 -1
- package/dist/providers/openai-images.js +0 -16
- package/dist/providers/openai-images.js.map +0 -1
- package/dist/providers/openai-responses-shared.d.ts.map +0 -1
- package/dist/providers/openai-responses-shared.js.map +0 -1
- package/dist/providers/openai-responses.d.ts.map +0 -1
- package/dist/providers/openai-responses.js.map +0 -1
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/providers/openai.js.map +0 -1
- package/dist/providers/openai.models.d.ts.map +0 -1
- package/dist/providers/openai.models.js.map +0 -1
- package/dist/providers/opencode-go.d.ts.map +0 -1
- package/dist/providers/opencode-go.js.map +0 -1
- package/dist/providers/opencode-go.models.d.ts.map +0 -1
- package/dist/providers/opencode-go.models.js.map +0 -1
- package/dist/providers/opencode-headers.d.ts.map +0 -1
- package/dist/providers/opencode-headers.js.map +0 -1
- package/dist/providers/opencode.d.ts.map +0 -1
- package/dist/providers/opencode.js.map +0 -1
- package/dist/providers/opencode.models.d.ts.map +0 -1
- package/dist/providers/opencode.models.js.map +0 -1
- package/dist/providers/opengateway.d.ts.map +0 -1
- package/dist/providers/opengateway.js.map +0 -1
- package/dist/providers/opengateway.models.d.ts.map +0 -1
- package/dist/providers/opengateway.models.js.map +0 -1
- package/dist/providers/openrouter-images.d.ts +0 -3
- package/dist/providers/openrouter-images.d.ts.map +0 -1
- package/dist/providers/openrouter-images.js +0 -22
- package/dist/providers/openrouter-images.js.map +0 -1
- package/dist/providers/openrouter.d.ts.map +0 -1
- package/dist/providers/openrouter.js.map +0 -1
- package/dist/providers/openrouter.models.d.ts.map +0 -1
- package/dist/providers/openrouter.models.js.map +0 -1
- package/dist/providers/qwen-token-plan-cn.d.ts.map +0 -1
- package/dist/providers/qwen-token-plan-cn.js.map +0 -1
- package/dist/providers/qwen-token-plan-cn.models.d.ts.map +0 -1
- package/dist/providers/qwen-token-plan-cn.models.js.map +0 -1
- package/dist/providers/qwen-token-plan-individual.d.ts.map +0 -1
- package/dist/providers/qwen-token-plan-individual.js.map +0 -1
- package/dist/providers/qwen-token-plan-individual.models.d.ts.map +0 -1
- package/dist/providers/qwen-token-plan-individual.models.js.map +0 -1
- package/dist/providers/qwen-token-plan.d.ts.map +0 -1
- package/dist/providers/qwen-token-plan.js.map +0 -1
- package/dist/providers/qwen-token-plan.models.d.ts.map +0 -1
- package/dist/providers/qwen-token-plan.models.js.map +0 -1
- package/dist/providers/radius-config.d.ts.map +0 -1
- package/dist/providers/radius-config.js.map +0 -1
- package/dist/providers/radius.d.ts.map +0 -1
- package/dist/providers/radius.js.map +0 -1
- package/dist/providers/register-builtins.d.ts.map +0 -1
- package/dist/providers/register-builtins.js.map +0 -1
- package/dist/providers/together.d.ts.map +0 -1
- package/dist/providers/together.js.map +0 -1
- package/dist/providers/together.models.d.ts.map +0 -1
- package/dist/providers/together.models.js.map +0 -1
- package/dist/providers/venice.d.ts.map +0 -1
- package/dist/providers/venice.js.map +0 -1
- package/dist/providers/venice.models.d.ts.map +0 -1
- package/dist/providers/venice.models.js.map +0 -1
- package/dist/providers/vercel-ai-gateway.d.ts.map +0 -1
- package/dist/providers/vercel-ai-gateway.js.map +0 -1
- package/dist/providers/vercel-ai-gateway.models.d.ts.map +0 -1
- package/dist/providers/vercel-ai-gateway.models.js.map +0 -1
- package/dist/providers/xai.d.ts.map +0 -1
- package/dist/providers/xai.js.map +0 -1
- package/dist/providers/xai.models.d.ts.map +0 -1
- package/dist/providers/xai.models.js.map +0 -1
- package/dist/providers/xiaomi-token-plan-ams.d.ts.map +0 -1
- package/dist/providers/xiaomi-token-plan-ams.js.map +0 -1
- package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +0 -1
- package/dist/providers/xiaomi-token-plan-ams.models.js.map +0 -1
- package/dist/providers/xiaomi-token-plan-cn.d.ts.map +0 -1
- package/dist/providers/xiaomi-token-plan-cn.js.map +0 -1
- package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +0 -1
- package/dist/providers/xiaomi-token-plan-cn.models.js.map +0 -1
- package/dist/providers/xiaomi-token-plan-sgp.d.ts.map +0 -1
- package/dist/providers/xiaomi-token-plan-sgp.js.map +0 -1
- package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +0 -1
- package/dist/providers/xiaomi-token-plan-sgp.models.js.map +0 -1
- package/dist/providers/xiaomi.d.ts.map +0 -1
- package/dist/providers/xiaomi.js.map +0 -1
- package/dist/providers/xiaomi.models.d.ts.map +0 -1
- package/dist/providers/xiaomi.models.js.map +0 -1
- package/dist/providers/zai-coding-cn.d.ts.map +0 -1
- package/dist/providers/zai-coding-cn.js.map +0 -1
- package/dist/providers/zai-coding-cn.models.d.ts.map +0 -1
- package/dist/providers/zai-coding-cn.models.js.map +0 -1
- package/dist/providers/zai.d.ts.map +0 -1
- package/dist/providers/zai.js.map +0 -1
- package/dist/providers/zai.models.d.ts.map +0 -1
- package/dist/providers/zai.models.js.map +0 -1
- package/dist/session-resources.d.ts.map +0 -1
- package/dist/session-resources.js.map +0 -1
- package/dist/stream.d.ts.map +0 -1
- package/dist/stream.js.map +0 -1
- package/dist/tool-call-middleware/context-transformer.d.ts.map +0 -1
- package/dist/tool-call-middleware/context-transformer.js.map +0 -1
- package/dist/tool-call-middleware/index.d.ts.map +0 -1
- package/dist/tool-call-middleware/index.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/format.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/format.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/index.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/index.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-stream-helpers.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-stream-helpers.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-syntax.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-syntax.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/parse.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/parse.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-stream.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-stream.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/stream.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/stream.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.js.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.js.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/coerce-parameters.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/coerce-parameters.js.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/config.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/config.js.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/format.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/format.js.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/index.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/index.js.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/parse.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/parse.js.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/recovery-stream.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/recovery-stream.js.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/repair.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/repair.js.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/stream.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/antml/stream.js.map +0 -1
- package/dist/tool-call-middleware/protocols/gemma4.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/gemma4.js.map +0 -1
- package/dist/tool-call-middleware/protocols/hermes.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/hermes.js.map +0 -1
- package/dist/tool-call-middleware/protocols/json-mix.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/json-mix.js.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/format.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/format.js.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/index.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/index.js.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/markers.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/markers.js.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/parse.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/parse.js.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.js.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/stream.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/stream.js.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.js.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.js.map +0 -1
- package/dist/tool-call-middleware/protocols/morph-xml.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/morph-xml.js.map +0 -1
- package/dist/tool-call-middleware/protocols/xml-tool-tag-scanner.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/xml-tool-tag-scanner.js.map +0 -1
- package/dist/tool-call-middleware/protocols/yaml-xml.d.ts.map +0 -1
- package/dist/tool-call-middleware/protocols/yaml-xml.js.map +0 -1
- package/dist/tool-call-middleware/recovery-code-mask.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-code-mask.js.map +0 -1
- package/dist/tool-call-middleware/recovery-content-lifecycle.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-content-lifecycle.js.map +0 -1
- package/dist/tool-call-middleware/recovery-diagnostics.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-diagnostics.js.map +0 -1
- package/dist/tool-call-middleware/recovery-event-stream.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-event-stream.js.map +0 -1
- package/dist/tool-call-middleware/recovery-message-snapshot.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-message-snapshot.js.map +0 -1
- package/dist/tool-call-middleware/recovery-native-projection.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-native-projection.js.map +0 -1
- package/dist/tool-call-middleware/recovery-stream-failure.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-stream-failure.js.map +0 -1
- package/dist/tool-call-middleware/recovery-stream-terminal.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-stream-terminal.js.map +0 -1
- package/dist/tool-call-middleware/recovery-stream-wrapper.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-stream-wrapper.js.map +0 -1
- package/dist/tool-call-middleware/recovery-text-projection.d.ts.map +0 -1
- package/dist/tool-call-middleware/recovery-text-projection.js.map +0 -1
- package/dist/tool-call-middleware/stream-message-metadata.d.ts.map +0 -1
- package/dist/tool-call-middleware/stream-message-metadata.js.map +0 -1
- package/dist/tool-call-middleware/stream-thinking-projection.d.ts.map +0 -1
- package/dist/tool-call-middleware/stream-thinking-projection.js.map +0 -1
- package/dist/tool-call-middleware/stream-wrapper-shared.d.ts.map +0 -1
- package/dist/tool-call-middleware/stream-wrapper-shared.js.map +0 -1
- package/dist/tool-call-middleware/stream-wrapper.d.ts.map +0 -1
- package/dist/tool-call-middleware/stream-wrapper.js.map +0 -1
- package/dist/tool-call-middleware/types.d.ts.map +0 -1
- package/dist/tool-call-middleware/types.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/abort-signals.d.ts.map +0 -1
- package/dist/utils/abort-signals.js.map +0 -1
- package/dist/utils/abort.d.ts.map +0 -1
- package/dist/utils/abort.js.map +0 -1
- package/dist/utils/assistant-message-frame.d.ts.map +0 -1
- package/dist/utils/assistant-message-frame.js.map +0 -1
- package/dist/utils/block-symbols.d.ts.map +0 -1
- package/dist/utils/block-symbols.js.map +0 -1
- package/dist/utils/chatgpt-subscription-auth.d.ts.map +0 -1
- package/dist/utils/chatgpt-subscription-auth.js.map +0 -1
- package/dist/utils/claude-code-version-cache.d.ts.map +0 -1
- package/dist/utils/claude-code-version-cache.js.map +0 -1
- package/dist/utils/claude-code-version.d.ts.map +0 -1
- package/dist/utils/claude-code-version.js.map +0 -1
- package/dist/utils/cursor-context-limit.d.ts.map +0 -1
- package/dist/utils/cursor-context-limit.js.map +0 -1
- package/dist/utils/deferred-tools.d.ts.map +0 -1
- package/dist/utils/deferred-tools.js.map +0 -1
- package/dist/utils/diagnostics.d.ts.map +0 -1
- package/dist/utils/diagnostics.js.map +0 -1
- package/dist/utils/drop-failed-assistant-turns.d.ts.map +0 -1
- package/dist/utils/drop-failed-assistant-turns.js.map +0 -1
- package/dist/utils/empty-response-errors.d.ts.map +0 -1
- package/dist/utils/empty-response-errors.js.map +0 -1
- package/dist/utils/error-body.d.ts.map +0 -1
- package/dist/utils/error-body.js.map +0 -1
- package/dist/utils/estimate.d.ts.map +0 -1
- package/dist/utils/estimate.js.map +0 -1
- package/dist/utils/event-stream.d.ts.map +0 -1
- package/dist/utils/event-stream.js.map +0 -1
- package/dist/utils/github-copilot-tool-limit.d.ts.map +0 -1
- package/dist/utils/github-copilot-tool-limit.js.map +0 -1
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/headers.d.ts.map +0 -1
- package/dist/utils/headers.js.map +0 -1
- package/dist/utils/json-parse.d.ts.map +0 -1
- package/dist/utils/json-parse.js.map +0 -1
- package/dist/utils/node-http-proxy.d.ts.map +0 -1
- package/dist/utils/node-http-proxy.js.map +0 -1
- package/dist/utils/overflow.d.ts.map +0 -1
- package/dist/utils/overflow.js.map +0 -1
- package/dist/utils/pi-user-agent.d.ts.map +0 -1
- package/dist/utils/pi-user-agent.js.map +0 -1
- package/dist/utils/process-singleton.d.ts.map +0 -1
- package/dist/utils/process-singleton.js.map +0 -1
- package/dist/utils/prompt-cache-ttl.d.ts.map +0 -1
- package/dist/utils/prompt-cache-ttl.js.map +0 -1
- package/dist/utils/provider-diagnostic-carrier.d.ts.map +0 -1
- package/dist/utils/provider-diagnostic-carrier.js.map +0 -1
- package/dist/utils/provider-diagnostic-sources.d.ts.map +0 -1
- package/dist/utils/provider-diagnostic-sources.js.map +0 -1
- package/dist/utils/provider-diagnostic-vocabulary.d.ts.map +0 -1
- package/dist/utils/provider-diagnostic-vocabulary.js.map +0 -1
- package/dist/utils/provider-env.d.ts.map +0 -1
- package/dist/utils/provider-env.js.map +0 -1
- package/dist/utils/provider-failure-description.d.ts.map +0 -1
- package/dist/utils/provider-failure-description.js.map +0 -1
- package/dist/utils/provider-retry.d.ts.map +0 -1
- package/dist/utils/provider-retry.js.map +0 -1
- package/dist/utils/retry-hint.d.ts.map +0 -1
- package/dist/utils/retry-hint.js.map +0 -1
- package/dist/utils/retry-profile/backoff.d.ts.map +0 -1
- package/dist/utils/retry-profile/backoff.js.map +0 -1
- package/dist/utils/retry-profile/classifiers.d.ts.map +0 -1
- package/dist/utils/retry-profile/classifiers.js.map +0 -1
- package/dist/utils/retry-profile/failure.d.ts.map +0 -1
- package/dist/utils/retry-profile/failure.js.map +0 -1
- package/dist/utils/retry-profile/index.d.ts.map +0 -1
- package/dist/utils/retry-profile/index.js.map +0 -1
- package/dist/utils/retry-profile/planner.d.ts.map +0 -1
- package/dist/utils/retry-profile/planner.js.map +0 -1
- package/dist/utils/retry-profile/profiles.d.ts.map +0 -1
- package/dist/utils/retry-profile/profiles.js.map +0 -1
- package/dist/utils/retry-profile/types.d.ts.map +0 -1
- package/dist/utils/retry-profile/types.js.map +0 -1
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/sanitize-unicode.d.ts.map +0 -1
- package/dist/utils/sanitize-unicode.js.map +0 -1
- package/dist/utils/server-fallback-receipt.d.ts.map +0 -1
- package/dist/utils/server-fallback-receipt.js.map +0 -1
- package/dist/utils/sleep.d.ts.map +0 -1
- package/dist/utils/sleep.js.map +0 -1
- package/dist/utils/stop-details.d.ts.map +0 -1
- package/dist/utils/stop-details.js.map +0 -1
- package/dist/utils/text.d.ts.map +0 -1
- package/dist/utils/text.js.map +0 -1
- package/dist/utils/tool-call-id.d.ts.map +0 -1
- package/dist/utils/tool-call-id.js.map +0 -1
- package/dist/utils/tool-choice-fallback.d.ts.map +0 -1
- package/dist/utils/tool-choice-fallback.js.map +0 -1
- package/dist/utils/tool-name-match.d.ts.map +0 -1
- package/dist/utils/tool-name-match.js.map +0 -1
- package/dist/utils/tool-pair-repair.d.ts.map +0 -1
- package/dist/utils/tool-pair-repair.js.map +0 -1
- package/dist/utils/tool-schema-compat.d.ts.map +0 -1
- package/dist/utils/tool-schema-compat.js.map +0 -1
- package/dist/utils/typebox-helpers.d.ts.map +0 -1
- package/dist/utils/typebox-helpers.js.map +0 -1
- package/dist/utils/unavailable-tool-text.d.ts.map +0 -1
- package/dist/utils/unavailable-tool-text.js.map +0 -1
- package/dist/utils/uuid.d.ts.map +0 -1
- package/dist/utils/uuid.js.map +0 -1
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js.map +0 -1
- package/dist/utils/visible-text.d.ts.map +0 -1
- package/dist/utils/visible-text.js.map +0 -1
- package/dist/wire-identity.d.ts.map +0 -1
- package/dist/wire-identity.js.map +0 -1
- /package/dist/{auth/oauth → utils}/oauth-page.d.ts +0 -0
- /package/dist/{auth/oauth → utils}/oauth-page.js +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ModelsError } from "./models-error.js";
|
|
2
|
+
/** The type of a model. Models without `type` are chat models. */
|
|
3
|
+
export function getModelType(model) {
|
|
4
|
+
return model.type ?? "chat";
|
|
5
|
+
}
|
|
6
|
+
/** Runtime-checked model type narrowing, including legacy chat models without `type`. */
|
|
7
|
+
export function isModelType(model, type) {
|
|
8
|
+
return getModelType(model) === type;
|
|
9
|
+
}
|
|
10
|
+
export function assertChatModel(model) {
|
|
11
|
+
if (!isModelType(model, "chat")) {
|
|
12
|
+
throw new ModelsError("provider", `Model ${model.provider}/${model.id} is not a chat model`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function assertImageModel(model) {
|
|
16
|
+
if (!isModelType(model, "image")) {
|
|
17
|
+
throw new ModelsError("provider", `Model ${model.provider}/${model.id} is not an image model`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function assertClassifierModel(model) {
|
|
21
|
+
if (!isModelType(model, "classifier")) {
|
|
22
|
+
throw new ModelsError("provider", `Model ${model.provider}/${model.id} is not a classifier model`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function imageErrorResult(model, error, aborted = false) {
|
|
26
|
+
return {
|
|
27
|
+
api: model.api,
|
|
28
|
+
provider: model.provider,
|
|
29
|
+
model: model.id,
|
|
30
|
+
output: [],
|
|
31
|
+
stopReason: aborted ? "aborted" : "error",
|
|
32
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
33
|
+
timestamp: Date.now(),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function classifierErrorResult(model, error, aborted = false) {
|
|
37
|
+
return {
|
|
38
|
+
api: model.api,
|
|
39
|
+
provider: model.provider,
|
|
40
|
+
model: model.id,
|
|
41
|
+
answers: {},
|
|
42
|
+
stopReason: aborted ? "aborted" : "error",
|
|
43
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
44
|
+
timestamp: Date.now(),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=model-operations.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type ModelsErrorCode = "model_source" | "model_validation" | "provider" | "stream" | "auth" | "oauth";
|
|
2
|
+
export declare class ModelsError extends Error {
|
|
3
|
+
readonly code: ModelsErrorCode;
|
|
4
|
+
constructor(code: ModelsErrorCode, message: string, options?: {
|
|
5
|
+
cause?: unknown;
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=models-error.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { formatThrownValue } from "./diagnostics.js";
|
|
2
|
+
export class ModelsError extends Error {
|
|
3
|
+
constructor(code, message, options) {
|
|
4
|
+
super(withCauseDetail(message, options?.cause), options);
|
|
5
|
+
this.name = "ModelsError";
|
|
6
|
+
this.code = code;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/** Callers surface `error.message` only, so keep the underlying reason in it. */
|
|
10
|
+
function withCauseDetail(message, cause) {
|
|
11
|
+
if (cause === undefined || cause === null)
|
|
12
|
+
return message;
|
|
13
|
+
const detail = formatThrownValue(cause).trim();
|
|
14
|
+
if (!detail || message.includes(detail))
|
|
15
|
+
return message;
|
|
16
|
+
return `${message}: ${detail}`;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=models-error.js.map
|
package/dist/utils/overflow.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ import type { AssistantMessage } from "../types.ts";
|
|
|
28
28
|
* - Kimi For Coding: "exceeded model token limit: X (requested: Y)"
|
|
29
29
|
* - DS4: "Prompt has X tokens, but the configured context size is Y tokens"
|
|
30
30
|
* - DashScope/Qwen: "Range of input length should be [1, X]"
|
|
31
|
+
* - z.ai: "Prompt too long"
|
|
31
32
|
*
|
|
32
33
|
* **Unreliable detection:**
|
|
33
34
|
* - z.ai: Sometimes accepts overflow silently (detectable via usage.input > contextWindow),
|
package/dist/utils/overflow.js
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* - kiro-lb gateways: "Request payload is 1095225 bytes, over the 1085435 byte limit Kiro accepts." / "Request payload is N tokens, over the M token limit Kiro accepts." (HTTP 400 local payload guard)
|
|
30
30
|
* - Kiro upstream via kiro-lb: "Model context limit reached. Conversation size exceeds model capacity." (CONTENT_LENGTH_EXCEEDS_THRESHOLD token overflow)
|
|
31
31
|
* - Mistral: "Prompt contains X tokens ... too large for model with Y maximum context length"
|
|
32
|
-
* - z.ai:
|
|
32
|
+
* - z.ai: `{"code":"1261","message":"Prompt too long"}` or silent overflow via usage.input > contextWindow
|
|
33
33
|
* - Xiaomi MiMo: Truncates input to fill contextWindow exactly, then returns finish_reason "length"
|
|
34
34
|
* with output=0 (no room left to generate). Detected via stopReason "length" + zero output +
|
|
35
35
|
* input filling the context window.
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
const OVERFLOW_PATTERNS = [
|
|
42
42
|
/^Context window exhausted: /, // pi-ai pre-flight guard: no answer room left, provider never called
|
|
43
43
|
/^The conversation is too long to resend \(about \d+ tokens, limit \d+\)/, // anthropic-subscription cold-seed budget: re-send refused before dispatch
|
|
44
|
-
/prompt is too long/i, // Anthropic token overflow
|
|
44
|
+
/prompt (?:is )?too long/i, // Anthropic and z.ai token overflow
|
|
45
45
|
/request_too_large/i, // Anthropic request byte-size overflow (HTTP 413)
|
|
46
46
|
/input is too long for requested model/i, // Amazon Bedrock
|
|
47
47
|
/exceeds (?:(?:the|this) )?(?:model'?s )?context window/i, // OpenAI (Completions & Responses API)
|
|
@@ -65,11 +65,11 @@ const OVERFLOW_PATTERNS = [
|
|
|
65
65
|
/context[_ ]length[_ ]exceeded/i, // Generic fallback
|
|
66
66
|
/too many tokens/i, // Generic fallback
|
|
67
67
|
/token limit exceeded/i, // Generic fallback
|
|
68
|
-
/^4(?:00|13)\s*(?:status code)?\s*\(no body\)/i, // Cerebras: 400/413 with no body
|
|
69
68
|
/(?:request[ _])?(?:body|entity|payload)[_ ]too[_ ]large/i, // Gateway HTTP 413 byte-size rejections ("Request body too large", "Request Entity Too Large", "body_too_large", "Payload Too Large"). Substring-anchored by design (JSON bodies lack an adjacent status code); a non-context size rejection (e.g. an oversized image) can over-match, which costs one bounded shrink-retry, never a wedge.
|
|
70
69
|
/Request payload is \d+ (?:bytes, over the \d+ byte|tokens, over the \d+ token) limit Kiro accepts\./, // kiro-lb local byte/token payload guard (HTTP 400; Anthropic uses invalid_request_error, OpenAI uses detail).
|
|
71
70
|
/Model context limit reached\. Conversation size exceeds model capacity\./, // kiro-lb enhancement of Kiro CONTENT_LENGTH_EXCEEDS_THRESHOLD
|
|
72
71
|
];
|
|
72
|
+
const CEREBRAS_BODYLESS_OVERFLOW_PATTERN = /^4(?:00|13)\s*(?:status code)?\s*\(no body\)/i;
|
|
73
73
|
/**
|
|
74
74
|
* Patterns that indicate non-overflow errors (e.g. rate limiting, server errors).
|
|
75
75
|
* Error messages matching any of these are excluded from overflow detection
|
|
@@ -133,6 +133,7 @@ const RESOURCE_EXHAUSTED_PATTERN = /resource.?exhausted/i;
|
|
|
133
133
|
* - Kimi For Coding: "exceeded model token limit: X (requested: Y)"
|
|
134
134
|
* - DS4: "Prompt has X tokens, but the configured context size is Y tokens"
|
|
135
135
|
* - DashScope/Qwen: "Range of input length should be [1, X]"
|
|
136
|
+
* - z.ai: "Prompt too long"
|
|
136
137
|
*
|
|
137
138
|
* **Unreliable detection:**
|
|
138
139
|
* - z.ai: Sometimes accepts overflow silently (detectable via usage.input > contextWindow),
|
|
@@ -163,8 +164,13 @@ export function isContextOverflow(message, contextWindow) {
|
|
|
163
164
|
if (message.stopReason === "error" && message.errorMessage) {
|
|
164
165
|
// Skip messages matching known non-overflow patterns (e.g. throttling / rate-limit)
|
|
165
166
|
const isNonOverflow = NON_OVERFLOW_PATTERNS.some((p) => p.test(message.errorMessage));
|
|
166
|
-
if (!isNonOverflow
|
|
167
|
-
|
|
167
|
+
if (!isNonOverflow) {
|
|
168
|
+
if (OVERFLOW_PATTERNS.some((p) => p.test(message.errorMessage))) {
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
if (message.provider === "cerebras" && CEREBRAS_BODYLESS_OVERFLOW_PATTERN.test(message.errorMessage)) {
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
168
174
|
}
|
|
169
175
|
const usage = message.usage;
|
|
170
176
|
const hasTokenEvidence = (usage.totalTokens || usage.input + usage.output + usage.cacheRead + usage.cacheWrite) > 0;
|
|
@@ -70,6 +70,8 @@ export function getAnthropicCompat(model) {
|
|
|
70
70
|
unsignedThinkingReplay: model.compat?.unsignedThinkingReplay ?? (model.compat?.allowEmptySignature ? "empty-signature" : "text"),
|
|
71
71
|
allowedFallbackModels: model.compat?.allowedFallbackModels ?? [],
|
|
72
72
|
supportsStrictTools: model.compat?.supportsStrictTools ?? false,
|
|
73
|
+
supportsMidConvoSystemMessages: model.compat?.supportsMidConvoSystemMessages ?? false,
|
|
74
|
+
supportsMidConvoToolChanges: model.compat?.supportsMidConvoToolChanges ?? false,
|
|
73
75
|
supportsToolReferences: model.compat?.supportsToolReferences ?? defaultSupportsToolReferences(model),
|
|
74
76
|
// Default: first-party Anthropic only. Anthropic-compatible providers
|
|
75
77
|
// (kimi-coding, fireworks, copilot, gateways) may execute the server-side
|
|
@@ -98,10 +100,10 @@ function detectOpenAICompletionsCompat(model) {
|
|
|
98
100
|
const isCloudflareAiGateway = provider === "cloudflare-ai-gateway" || baseUrl.includes("gateway.ai.cloudflare.com");
|
|
99
101
|
const isNvidia = provider === "nvidia" || baseUrl.includes("integrate.api.nvidia.com");
|
|
100
102
|
const isAntLing = provider === "ant-ling" || baseUrl.includes("api.ant-ling.com");
|
|
103
|
+
const isCerebras = provider === "cerebras" || baseUrl.includes("cerebras.ai");
|
|
101
104
|
const isDeepSeek = provider === "deepseek" || baseUrl.toLowerCase().includes("deepseek.com");
|
|
102
105
|
const isNonStandard = isNvidia ||
|
|
103
|
-
|
|
104
|
-
baseUrl.includes("cerebras.ai") ||
|
|
106
|
+
isCerebras ||
|
|
105
107
|
provider === "xai" ||
|
|
106
108
|
baseUrl.includes("api.x.ai") ||
|
|
107
109
|
isTogether ||
|
|
@@ -154,11 +156,14 @@ function detectOpenAICompletionsCompat(model) {
|
|
|
154
156
|
vercelGatewayRouting: {},
|
|
155
157
|
chatTemplateKwargs: {},
|
|
156
158
|
zaiToolStream: false,
|
|
157
|
-
|
|
159
|
+
// OpenAI compatibility alone does not imply strict JSON-schema tool support.
|
|
160
|
+
supportsStrictMode: false,
|
|
158
161
|
toolSchemaFlavor: isMoonshot ? "moonshot-mfjs" : undefined,
|
|
159
162
|
supportsDisabledThinking: true,
|
|
160
163
|
toolCallFormat: undefined,
|
|
161
164
|
supportsOpenAIGrammarTools: false,
|
|
165
|
+
supportsMidConvoSystemMessages: false,
|
|
166
|
+
supportsMidConvoToolAdditions: false,
|
|
162
167
|
cacheControlFormat,
|
|
163
168
|
sendSessionAffinityHeaders: isOpenRouter,
|
|
164
169
|
deferredToolsMode: undefined,
|
|
@@ -205,6 +210,8 @@ export function getOpenAICompletionsCompat(model) {
|
|
|
205
210
|
toolSchemaFlavor: model.compat.toolSchemaFlavor ?? detected.toolSchemaFlavor,
|
|
206
211
|
toolCallFormat: model.compat.toolCallFormat ?? detected.toolCallFormat,
|
|
207
212
|
supportsOpenAIGrammarTools: model.compat.supportsOpenAIGrammarTools ?? detected.supportsOpenAIGrammarTools,
|
|
213
|
+
supportsMidConvoSystemMessages: model.compat.supportsMidConvoSystemMessages ?? detected.supportsMidConvoSystemMessages,
|
|
214
|
+
supportsMidConvoToolAdditions: model.compat.supportsMidConvoToolAdditions ?? detected.supportsMidConvoToolAdditions,
|
|
208
215
|
cacheControlFormat: model.compat.cacheControlFormat ?? detected.cacheControlFormat,
|
|
209
216
|
sendSessionAffinityHeaders: model.compat.sendSessionAffinityHeaders ?? detected.sendSessionAffinityHeaders,
|
|
210
217
|
deferredToolsMode: model.compat.deferredToolsMode ?? detected.deferredToolsMode,
|
|
@@ -323,6 +330,38 @@ function hasOpenAIExtendedPromptCache(model) {
|
|
|
323
330
|
}
|
|
324
331
|
return OPENAI_EXTENDED_CACHE_MODEL_ID.test(model.id);
|
|
325
332
|
}
|
|
333
|
+
/** Env that puts Claude Code on API-key, gateway or cloud billing, where it caches the main conversation for 5 minutes. */
|
|
334
|
+
const CLAUDE_CODE_API_BILLING_ENV = [
|
|
335
|
+
"ANTHROPIC_API_KEY",
|
|
336
|
+
"ANTHROPIC_AUTH_TOKEN",
|
|
337
|
+
"ANTHROPIC_BASE_URL",
|
|
338
|
+
"CLAUDE_CODE_USE_BEDROCK",
|
|
339
|
+
"CLAUDE_CODE_USE_VERTEX",
|
|
340
|
+
"CLAUDE_CODE_USE_FOUNDRY",
|
|
341
|
+
];
|
|
342
|
+
function isEnabledFlag(value) {
|
|
343
|
+
return value !== undefined && !/^(?:|0|false|no|off)$/i.test(value.trim());
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* The Claude SDK lane's cache TTL is chosen by Claude Code, not senpi: `CLAUDE_CODE_PROMPT_CACHE_TTL`
|
|
347
|
+
* (`5m` | `1h`) wins, then `FORCE_PROMPT_CACHING_5M` and `ENABLE_PROMPT_CACHING_1H`; otherwise a Claude
|
|
348
|
+
* subscription gets 1 hour and API-key, gateway or cloud billing gets 5 minutes. A subscription past its
|
|
349
|
+
* usage limits also drops to 5 minutes, which nothing here can observe.
|
|
350
|
+
*/
|
|
351
|
+
function claudeCodePromptCacheTtlSeconds(env) {
|
|
352
|
+
const explicit = getProviderEnvValue("CLAUDE_CODE_PROMPT_CACHE_TTL", env)?.trim().toLowerCase();
|
|
353
|
+
if (explicit === "5m")
|
|
354
|
+
return PROMPT_CACHE_TTL_SHORT_SECONDS;
|
|
355
|
+
if (explicit === "1h")
|
|
356
|
+
return PROMPT_CACHE_TTL_LONG_SECONDS;
|
|
357
|
+
if (isEnabledFlag(getProviderEnvValue("FORCE_PROMPT_CACHING_5M", env)))
|
|
358
|
+
return PROMPT_CACHE_TTL_SHORT_SECONDS;
|
|
359
|
+
if (isEnabledFlag(getProviderEnvValue("ENABLE_PROMPT_CACHING_1H", env)))
|
|
360
|
+
return PROMPT_CACHE_TTL_LONG_SECONDS;
|
|
361
|
+
return CLAUDE_CODE_API_BILLING_ENV.some((name) => getProviderEnvValue(name, env) !== undefined)
|
|
362
|
+
? PROMPT_CACHE_TTL_SHORT_SECONDS
|
|
363
|
+
: PROMPT_CACHE_TTL_LONG_SECONDS;
|
|
364
|
+
}
|
|
326
365
|
/**
|
|
327
366
|
* Classify the active model's prompt-cache lifetime from the provider's documented cache contract.
|
|
328
367
|
* `cacheRetention: "none"` (or `PI_CACHE_RETENTION` resolving to it) always wins.
|
|
@@ -330,8 +369,7 @@ function hasOpenAIExtendedPromptCache(model) {
|
|
|
330
369
|
export function resolvePromptCacheLifetime(model, env) {
|
|
331
370
|
switch (model.api) {
|
|
332
371
|
case "claude-sdk-oauth":
|
|
333
|
-
|
|
334
|
-
return ttl(PROMPT_CACHE_TTL_SHORT_SECONDS);
|
|
372
|
+
return ttl(claudeCodePromptCacheTtlSeconds(env));
|
|
335
373
|
case "anthropic-messages": {
|
|
336
374
|
const anthropicModel = model;
|
|
337
375
|
const retention = resolveAnthropicCacheRetention(anthropicModel.cacheRetention, env, "short");
|
|
@@ -16,4 +16,11 @@ export declare function stripTurnRetrySuppressionPrefix(message: string): string
|
|
|
16
16
|
* the caller can fall back to the (marker-stripped) raw text.
|
|
17
17
|
*/
|
|
18
18
|
export declare function describeProviderFailureForUser(errorMessage: string | undefined, options?: ProviderStallDescriptionOptions): string | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* The turn-ending message for a provider module that can no longer be imported because the
|
|
21
|
+
* installed package was replaced under the running process (#2358), or undefined for any other
|
|
22
|
+
* failure. It carries the no-turn-retry marker: every model in a fallback chain needs a module from
|
|
23
|
+
* the same install, so a retry or fallback would only repeat the failure.
|
|
24
|
+
*/
|
|
25
|
+
export declare function describeReplacedInstall(error: unknown): string | undefined;
|
|
19
26
|
//# sourceMappingURL=provider-failure-description.d.ts.map
|
|
@@ -60,4 +60,25 @@ export function describeProviderFailureForUser(errorMessage, options = {}) {
|
|
|
60
60
|
sentences.push(RECOVERY_SENTENCE[options.recovery]);
|
|
61
61
|
return sentences.join(" ");
|
|
62
62
|
}
|
|
63
|
+
// Node: "Cannot find module '/…/chunks/x-HASH.js' imported from …"; Bun: the same with a relative
|
|
64
|
+
// specifier, or "ENOENT reading \"/…/chunks/x-HASH.js\"" when the file vanished after resolution.
|
|
65
|
+
const MISSING_MODULE_PATTERNS = [/^Cannot find module ['"]([^'"]+)['"]/, /^ENOENT reading ['"]([^'"]+)['"]/];
|
|
66
|
+
const SHIPPED_MODULE = /^(?:\.{1,2}[\\/]|[\\/]|[A-Za-z]:[\\/]|file:).*\.m?js$/;
|
|
67
|
+
/**
|
|
68
|
+
* The turn-ending message for a provider module that can no longer be imported because the
|
|
69
|
+
* installed package was replaced under the running process (#2358), or undefined for any other
|
|
70
|
+
* failure. It carries the no-turn-retry marker: every model in a fallback chain needs a module from
|
|
71
|
+
* the same install, so a retry or fallback would only repeat the failure.
|
|
72
|
+
*/
|
|
73
|
+
export function describeReplacedInstall(error) {
|
|
74
|
+
if (!(error instanceof Error))
|
|
75
|
+
return undefined;
|
|
76
|
+
for (const pattern of MISSING_MODULE_PATTERNS) {
|
|
77
|
+
const missing = pattern.exec(error.message)?.[1];
|
|
78
|
+
if (missing !== undefined && SHIPPED_MODULE.test(missing)) {
|
|
79
|
+
return `${TURN_RETRY_SUPPRESSION_PREFIX}The installed package changed while this session was running, so ${missing.split(/[\\/]/).at(-1)} can no longer be loaded. Restart and resume this session to continue.`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
63
84
|
//# sourceMappingURL=provider-failure-description.js.map
|
package/dist/utils/retry.js
CHANGED
|
@@ -84,6 +84,9 @@ const NON_RETRYABLE_PROVIDER_ERROR_PATTERN = buildProviderErrorPattern([
|
|
|
84
84
|
"tools\\.[^ ]*function\\.parameters",
|
|
85
85
|
"tools\\.\\d+\\.function\\.parameters",
|
|
86
86
|
"invalid tool schema",
|
|
87
|
+
// Sign in with ChatGPT: the subscription's shared usage limit, which resets
|
|
88
|
+
// after hours rather than seconds.
|
|
89
|
+
"subscription_sharing_usage_limit_exceeded",
|
|
87
90
|
]);
|
|
88
91
|
const RETRYABLE_PROVIDER_ERROR_PATTERN = buildProviderErrorPattern([
|
|
89
92
|
// Local credential/auth sidecar lock exhaustion is infrastructure contention,
|
|
@@ -91,6 +94,7 @@ const RETRYABLE_PROVIDER_ERROR_PATTERN = buildProviderErrorPattern([
|
|
|
91
94
|
"Credential store is busy: lock",
|
|
92
95
|
// Generic provider load, HTTP status, and server-side transient failures.
|
|
93
96
|
"overloaded",
|
|
97
|
+
"currently experiencing high demand",
|
|
94
98
|
"rate.?limit",
|
|
95
99
|
"too many requests",
|
|
96
100
|
"429",
|
|
@@ -98,6 +102,7 @@ const RETRYABLE_PROVIDER_ERROR_PATTERN = buildProviderErrorPattern([
|
|
|
98
102
|
"502",
|
|
99
103
|
"503",
|
|
100
104
|
"504",
|
|
105
|
+
"520",
|
|
101
106
|
// Cloudflare 522 (Connection timed out): origin stopped responding; transient
|
|
102
107
|
// like the other 5xx gateway statuses, surfaced as "Error: error code: 522".
|
|
103
108
|
"522",
|
|
@@ -179,10 +184,23 @@ const RETRYABLE_PROVIDER_ERROR_PATTERN = buildProviderErrorPattern([
|
|
|
179
184
|
escapeRegExp(FORWARDED_EMPTY_TOOL_USE_ERROR),
|
|
180
185
|
// gRPC based providers (e.g. NVIDIA NIM)
|
|
181
186
|
"ResourceExhausted",
|
|
187
|
+
// Claude subscription per-request rejection that names no policy reason:
|
|
188
|
+
// `{"type":"error","error":{"type":"forbidden","message":"Request not allowed"}}`
|
|
189
|
+
// (senpi#2376). The same credential answered neighbouring requests with 200 and
|
|
190
|
+
// the burst ended by itself, so a bounded same-model retry recovers where an
|
|
191
|
+
// immediate fallback hop stranded the session. Anchored on the exact `forbidden`
|
|
192
|
+
// type plus the reason-less message, in either field order, so permission_error
|
|
193
|
+
// and forbidden rejections that carry a reason stay terminal.
|
|
194
|
+
'"type"\\s*:\\s*"forbidden"\\s*,\\s*"message"\\s*:\\s*"Request not allowed\\.?"',
|
|
195
|
+
'"message"\\s*:\\s*"Request not allowed\\.?"\\s*,\\s*"type"\\s*:\\s*"forbidden"',
|
|
182
196
|
// Claude Agent SDK session.json lock contention. A second stream/resume
|
|
183
197
|
// hits proper-lockfile while the previous subprocess still holds the file.
|
|
184
198
|
// Same-process retry recovers; hopping providers cannot release that lock.
|
|
185
199
|
"Lock file is already being held",
|
|
200
|
+
// Sign in with ChatGPT: usage or user data temporarily unavailable. Usage
|
|
201
|
+
// failures can arrive mid-stream without an HTTP 503 in the message.
|
|
202
|
+
"subscription_sharing_usage_unavailable",
|
|
203
|
+
"subscription_sharing_user_unavailable",
|
|
186
204
|
]);
|
|
187
205
|
export const DEFAULT_MAX_AGENT_RETRY_DELAY_MS = 60_000;
|
|
188
206
|
/**
|
package/dist/utils/text.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import type { ImageContent, ProviderNativeContent, TextContent, ThinkingContent, ToolCall } from "../types.ts";
|
|
1
|
+
import type { ImageContent, ProviderNativeContent, SystemMessage, TextContent, ThinkingContent, ToolCall } from "../types.ts";
|
|
2
2
|
type Content = TextContent | ImageContent | ThinkingContent | ToolCall | ProviderNativeContent;
|
|
3
3
|
/** Extract and join text from message content. */
|
|
4
4
|
export declare function contentText(content: string | readonly Content[], separator?: string): string;
|
|
5
|
+
/** Render a system message as a complete prompt: its content followed by its sections. */
|
|
6
|
+
export declare function getSystemMessageText(message: SystemMessage): string;
|
|
7
|
+
/**
|
|
8
|
+
* Render a later system message for APIs that accept system messages mid-conversation.
|
|
9
|
+
* Section changes are framed by name so the model can relate them to the leading prompt.
|
|
10
|
+
* This framing is request-time only and may change between versions.
|
|
11
|
+
*/
|
|
12
|
+
export declare function renderSystemMessageUpdate(message: SystemMessage): string;
|
|
5
13
|
export {};
|
|
6
14
|
//# sourceMappingURL=text.d.ts.map
|
package/dist/utils/text.js
CHANGED
|
@@ -7,4 +7,30 @@ export function contentText(content, separator = "\n") {
|
|
|
7
7
|
.map((block) => block.text)
|
|
8
8
|
.join(separator);
|
|
9
9
|
}
|
|
10
|
+
/** Render a system message as a complete prompt: its content followed by its sections. */
|
|
11
|
+
export function getSystemMessageText(message) {
|
|
12
|
+
const parts = [contentText(message.content)];
|
|
13
|
+
for (const text of Object.values(message.sections ?? {})) {
|
|
14
|
+
if (text !== null)
|
|
15
|
+
parts.push(text);
|
|
16
|
+
}
|
|
17
|
+
return parts.filter((part) => part.length > 0).join("\n\n");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Render a later system message for APIs that accept system messages mid-conversation.
|
|
21
|
+
* Section changes are framed by name so the model can relate them to the leading prompt.
|
|
22
|
+
* This framing is request-time only and may change between versions.
|
|
23
|
+
*/
|
|
24
|
+
export function renderSystemMessageUpdate(message) {
|
|
25
|
+
const parts = [];
|
|
26
|
+
const text = contentText(message.content);
|
|
27
|
+
if (text.length > 0)
|
|
28
|
+
parts.push(text);
|
|
29
|
+
for (const [name, value] of Object.entries(message.sections ?? {})) {
|
|
30
|
+
parts.push(value === null
|
|
31
|
+
? `Removed system prompt section "${name}".`
|
|
32
|
+
: `Updated system prompt section "${name}":\n\n${value}`);
|
|
33
|
+
}
|
|
34
|
+
return parts.join("\n\n");
|
|
35
|
+
}
|
|
10
36
|
//# sourceMappingURL=text.js.map
|
|
@@ -24,4 +24,6 @@ export declare function normalizeToolParametersForMoonshot(schema: Record<string
|
|
|
24
24
|
* Schemas that are already plain objects are returned untouched.
|
|
25
25
|
*/
|
|
26
26
|
export declare function resolveRootObjectSchema(schema: Record<string, unknown>): Record<string, unknown>;
|
|
27
|
+
/** Bedrock Converse rejects root combiners, including allOf, even with an object type (#1947). */
|
|
28
|
+
export declare function normalizeToolParametersForBedrock(schema: Record<string, unknown>): Record<string, unknown>;
|
|
27
29
|
//# sourceMappingURL=tool-schema-compat.d.ts.map
|
|
@@ -92,9 +92,10 @@ function collapseConstUnion(node) {
|
|
|
92
92
|
* so the root's own `properties` and `required` are merged with the branches'
|
|
93
93
|
* rather than replaced by them.
|
|
94
94
|
*/
|
|
95
|
-
function mergeRootObjectUnion(schema) {
|
|
96
|
-
const
|
|
97
|
-
|
|
95
|
+
function mergeRootObjectUnion(schema, combiner) {
|
|
96
|
+
const selected = combiner ?? (Array.isArray(schema.anyOf) ? "anyOf" : "oneOf");
|
|
97
|
+
const branches = schema[selected];
|
|
98
|
+
if (!Array.isArray(branches) || branches.length === 0)
|
|
98
99
|
return undefined;
|
|
99
100
|
if (schema.properties !== undefined && !isJsonObject(schema.properties))
|
|
100
101
|
return undefined;
|
|
@@ -121,12 +122,11 @@ function mergeRootObjectUnion(schema) {
|
|
|
121
122
|
properties[name] =
|
|
122
123
|
existing === undefined || JSON.stringify(existing) === JSON.stringify(propertySchema)
|
|
123
124
|
? propertySchema
|
|
124
|
-
: { anyOf: [existing, propertySchema] };
|
|
125
|
+
: { [selected === "allOf" ? "allOf" : "anyOf"]: [existing, propertySchema] };
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
|
-
//
|
|
128
|
-
//
|
|
129
|
-
// applies to all branches, so it is unioned back in.
|
|
128
|
+
// Unions require only branch-common names; intersections require every branch's
|
|
129
|
+
// names. Root-level required always applies.
|
|
130
130
|
const rootRequired = Array.isArray(schema.required)
|
|
131
131
|
? schema.required.filter((name) => typeof name === "string")
|
|
132
132
|
: [];
|
|
@@ -137,8 +137,15 @@ function mergeRootObjectUnion(schema) {
|
|
|
137
137
|
const commonBranchRequired = firstBranchRequired
|
|
138
138
|
? [...firstBranchRequired].filter((name) => branchRequiredSets.every((names) => names.has(name)))
|
|
139
139
|
: [];
|
|
140
|
-
const required = [
|
|
141
|
-
|
|
140
|
+
const required = [
|
|
141
|
+
...new Set([
|
|
142
|
+
...rootRequired,
|
|
143
|
+
...(selected === "allOf" ? branchRequiredSets.flatMap((names) => [...names]) : commonBranchRequired),
|
|
144
|
+
]),
|
|
145
|
+
];
|
|
146
|
+
const rest = { ...schema };
|
|
147
|
+
for (const key of combiner ? [combiner] : ["anyOf", "oneOf"])
|
|
148
|
+
delete rest[key];
|
|
142
149
|
return {
|
|
143
150
|
...rest,
|
|
144
151
|
type: "object",
|
|
@@ -230,6 +237,18 @@ export function normalizeToolParametersForMoonshot(schema) {
|
|
|
230
237
|
export function resolveRootObjectSchema(schema) {
|
|
231
238
|
return mergeRootObjectUnion(structuredClone(schema)) ?? schema;
|
|
232
239
|
}
|
|
240
|
+
/** Bedrock Converse rejects root combiners, including allOf, even with an object type (#1947). */
|
|
241
|
+
export function normalizeToolParametersForBedrock(schema) {
|
|
242
|
+
let normalized = structuredClone(schema);
|
|
243
|
+
for (const combiner of COMBINER_KEYS) {
|
|
244
|
+
const branches = normalized[combiner];
|
|
245
|
+
if (Array.isArray(branches)) {
|
|
246
|
+
normalized[combiner] = branches.map((branch) => isJsonObject(branch) ? normalizeToolParametersForBedrock(branch) : branch);
|
|
247
|
+
}
|
|
248
|
+
normalized = mergeRootObjectUnion(normalized, combiner) ?? normalized;
|
|
249
|
+
}
|
|
250
|
+
return { type: "object", ...normalized };
|
|
251
|
+
}
|
|
233
252
|
function stripMoonshotAnnotations(node) {
|
|
234
253
|
if (Array.isArray(node)) {
|
|
235
254
|
return node.map((child) => stripMoonshotAnnotations(child));
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { Context, Message, SystemMessage, Tool, ToolReference, TranscriptContext } from "../types.ts";
|
|
2
|
+
export type { TranscriptContext } from "../types.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Build the leading system message for a prompt and tool set. Returns undefined when
|
|
5
|
+
* both are empty, so an empty transcript stays empty.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createInitialSystemMessage(systemPrompt: string | undefined, tools: Tool[] | undefined): SystemMessage | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Fold `Context.systemPrompt` and `Context.tools` into a leading system message.
|
|
10
|
+
* This is the only entry point that produces a {@link TranscriptContext}; every
|
|
11
|
+
* provider-facing function expects the result. `Context.activeToolNames` is carried
|
|
12
|
+
* over unchanged (senpi#2095 allowed-tools): it has no system-message representation.
|
|
13
|
+
*/
|
|
14
|
+
export declare function normalizeContext(context: Context): TranscriptContext;
|
|
15
|
+
/**
|
|
16
|
+
* Any message list. The replay helpers only read entries whose role is `"system"`, so
|
|
17
|
+
* agent transcripts that carry custom message roles can be passed without filtering.
|
|
18
|
+
*/
|
|
19
|
+
export type TranscriptMessages = readonly {
|
|
20
|
+
role: string;
|
|
21
|
+
}[];
|
|
22
|
+
/** Return the leading system message, if the transcript starts with one. */
|
|
23
|
+
export declare function getInitialSystemMessage(messages: TranscriptMessages): SystemMessage | undefined;
|
|
24
|
+
/** Drop the leading system message for APIs that carry the prompt outside the message list. */
|
|
25
|
+
export declare function withoutInitialSystemMessage(messages: Message[]): Message[];
|
|
26
|
+
/** Resolve the tools available after applying every transcript delta in order. */
|
|
27
|
+
export declare function getCurrentTools(messages: TranscriptMessages): Tool[];
|
|
28
|
+
/**
|
|
29
|
+
* Replay every system message into one leading system message holding the current
|
|
30
|
+
* prompt and tools. Later `content` is appended to the base prompt, `sections` are
|
|
31
|
+
* patched by name, and tools are resolved with {@link getCurrentTools}.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getCurrentSystemMessage(messages: TranscriptMessages): SystemMessage | undefined;
|
|
34
|
+
/** Render the current system prompt text after replaying every system message. */
|
|
35
|
+
export declare function getCurrentSystemPrompt(messages: TranscriptMessages): string;
|
|
36
|
+
/**
|
|
37
|
+
* Rebuild the transcript for APIs without mid-conversation system messages: the replayed
|
|
38
|
+
* system message leads, and every later system message is dropped.
|
|
39
|
+
*/
|
|
40
|
+
export declare function collapseSystemMessages(context: TranscriptContext): TranscriptContext;
|
|
41
|
+
/** Keep later system messages in place when the model accepts them; otherwise collapse them. */
|
|
42
|
+
export declare function resolveTranscript(context: TranscriptContext, supportsMidConvoSystemMessages: boolean | undefined): TranscriptContext;
|
|
43
|
+
/** Strip executable and display-only fields from a tool before transcript comparison or persistence. */
|
|
44
|
+
export declare function toToolDeclaration(tool: Tool): Tool;
|
|
45
|
+
/**
|
|
46
|
+
* Whether two tools declare the same interface to the model.
|
|
47
|
+
*
|
|
48
|
+
* Both sides go through {@link toToolDeclaration} first: its JSON round-trip drops the
|
|
49
|
+
* typebox symbol keys and `undefined` fields that a structural comparison would see, and
|
|
50
|
+
* builds both objects with the same key order, so comparing the serialized declarations
|
|
51
|
+
* is exact. This avoids a deep-equal dependency in a browser-safe package.
|
|
52
|
+
*/
|
|
53
|
+
export declare function declarationsEqual(left: Tool, right: Tool): boolean;
|
|
54
|
+
export interface ToolStateChanges {
|
|
55
|
+
toolsAdded: Tool[];
|
|
56
|
+
toolsRemoved: ToolReference[];
|
|
57
|
+
}
|
|
58
|
+
/** Compare two complete tool states. A changed definition is a removal followed by an addition. */
|
|
59
|
+
export declare function getToolStateChanges(previous: readonly Tool[], current: readonly Tool[]): ToolStateChanges;
|
|
60
|
+
/** Every definition referenced by transcript tool state, in first-declaration order. */
|
|
61
|
+
export declare function getDeclaredTools(messages: TranscriptMessages): Tool[];
|
|
62
|
+
/**
|
|
63
|
+
* Whether a tool name was declared twice with different definitions. Transports that
|
|
64
|
+
* reference tools by name (Anthropic `tool_addition`/`tool_removal`) cannot express that.
|
|
65
|
+
*/
|
|
66
|
+
export declare function hasToolRedefinitions(messages: TranscriptMessages): boolean;
|
|
67
|
+
/** Whether tool history contains a removal or same-name redeclaration that an addition-only transport cannot replay. */
|
|
68
|
+
export declare function hasNonAdditiveToolChanges(messages: TranscriptMessages): boolean;
|
|
69
|
+
export interface TranscriptTools {
|
|
70
|
+
/** Tools sent in the top-level request field. */
|
|
71
|
+
requestTools: Tool[];
|
|
72
|
+
/**
|
|
73
|
+
* Whether later system messages carry their own `toolsAdded` as in-place additions.
|
|
74
|
+
* When false, `requestTools` already holds the complete current tool set.
|
|
75
|
+
*/
|
|
76
|
+
anchorsAdditions: boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Split tool declarations between the top-level request field and in-place additions.
|
|
80
|
+
* Transports that can anchor additions at a system message keep the initial tools at the
|
|
81
|
+
* top and load later ones where they appear; that only works when no tool was removed or
|
|
82
|
+
* redeclared, so everything else sends the current tool list.
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolveTranscriptTools(messages: TranscriptMessages, supportsToolAdditions: boolean): TranscriptTools;
|
|
85
|
+
//# sourceMappingURL=transcript.d.ts.map
|