@od-oneapp/ai-platform 0.1.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/README.md +235 -0
- package/dist/agents-base.d.mts +12 -0
- package/dist/agents-base.d.mts.map +1 -0
- package/dist/agents-base.mjs +20 -0
- package/dist/agents-base.mjs.map +1 -0
- package/dist/agents-control-flow.d.mts +115 -0
- package/dist/agents-control-flow.d.mts.map +1 -0
- package/dist/agents-control-flow.mjs +514 -0
- package/dist/agents-control-flow.mjs.map +1 -0
- package/dist/agents-coordinator.d.mts +11 -0
- package/dist/agents-coordinator.d.mts.map +1 -0
- package/dist/agents-coordinator.mjs +12 -0
- package/dist/agents-coordinator.mjs.map +1 -0
- package/dist/agents-experimental.d.mts +153 -0
- package/dist/agents-experimental.d.mts.map +1 -0
- package/dist/agents-experimental.mjs +580 -0
- package/dist/agents-experimental.mjs.map +1 -0
- package/dist/agents-fallback.d.mts +10 -0
- package/dist/agents-fallback.d.mts.map +1 -0
- package/dist/agents-fallback.mjs +15 -0
- package/dist/agents-fallback.mjs.map +1 -0
- package/dist/agents-multi-swarm.d.mts +9 -0
- package/dist/agents-multi-swarm.d.mts.map +1 -0
- package/dist/agents-multi-swarm.mjs +44 -0
- package/dist/agents-multi-swarm.mjs.map +1 -0
- package/dist/agents-multi.d.mts +10 -0
- package/dist/agents-multi.d.mts.map +1 -0
- package/dist/agents-multi.mjs +44 -0
- package/dist/agents-multi.mjs.map +1 -0
- package/dist/agents-observability.d.mts +161 -0
- package/dist/agents-observability.d.mts.map +1 -0
- package/dist/agents-observability.mjs +550 -0
- package/dist/agents-observability.mjs.map +1 -0
- package/dist/agents-patterns.d.mts +9 -0
- package/dist/agents-patterns.d.mts.map +1 -0
- package/dist/agents-patterns.mjs +18 -0
- package/dist/agents-patterns.mjs.map +1 -0
- package/dist/agents-persistence.d.mts +234 -0
- package/dist/agents-persistence.d.mts.map +1 -0
- package/dist/agents-persistence.mjs +447 -0
- package/dist/agents-persistence.mjs.map +1 -0
- package/dist/agents-triage.d.mts +11 -0
- package/dist/agents-triage.d.mts.map +1 -0
- package/dist/agents-triage.mjs +13 -0
- package/dist/agents-triage.mjs.map +1 -0
- package/dist/agents-workflows.d.mts +9 -0
- package/dist/agents-workflows.d.mts.map +1 -0
- package/dist/agents-workflows.mjs +9 -0
- package/dist/agents-workflows.mjs.map +1 -0
- package/dist/agents.d.mts +30 -0
- package/dist/agents.d.mts.map +1 -0
- package/dist/agents.mjs +50 -0
- package/dist/agents.mjs.map +1 -0
- package/dist/aggregation-8KJF1uzp.d.mts +276 -0
- package/dist/aggregation-8KJF1uzp.d.mts.map +1 -0
- package/dist/aggregation-BDop87kL.mjs +1180 -0
- package/dist/aggregation-BDop87kL.mjs.map +1 -0
- package/dist/ai-runtime-CDzQztTt.mjs +85 -0
- package/dist/ai-runtime-CDzQztTt.mjs.map +1 -0
- package/dist/ai-runtime-DIwOEc6g.d.mts +56 -0
- package/dist/ai-runtime-DIwOEc6g.d.mts.map +1 -0
- package/dist/ai-sdk-error-integration-D0GDqrM0.d.mts +553 -0
- package/dist/ai-sdk-error-integration-D0GDqrM0.d.mts.map +1 -0
- package/dist/approval-queue-BcDDQ4oQ.mjs +104 -0
- package/dist/approval-queue-BcDDQ4oQ.mjs.map +1 -0
- package/dist/approval-queue-CiKiFT9z.d.mts +21 -0
- package/dist/approval-queue-CiKiFT9z.d.mts.map +1 -0
- package/dist/audio-BzvN7r10.d.mts +79 -0
- package/dist/audio-BzvN7r10.d.mts.map +1 -0
- package/dist/audio-vBG_62ME.mjs +226 -0
- package/dist/audio-vBG_62ME.mjs.map +1 -0
- package/dist/audit-logger-Bb2JIcIk.d.mts +12 -0
- package/dist/audit-logger-Bb2JIcIk.d.mts.map +1 -0
- package/dist/audit-logger-CHIP8bRO.mjs +596 -0
- package/dist/audit-logger-CHIP8bRO.mjs.map +1 -0
- package/dist/auto-resume-BpUNbPtp.d.mts +160 -0
- package/dist/auto-resume-BpUNbPtp.d.mts.map +1 -0
- package/dist/auto-resume-BuFRNvAX.mjs +638 -0
- package/dist/auto-resume-BuFRNvAX.mjs.map +1 -0
- package/dist/budget-guard-C83KCH9V.d.mts +52 -0
- package/dist/budget-guard-C83KCH9V.d.mts.map +1 -0
- package/dist/budget-guard-d_b5rq4u.mjs +158 -0
- package/dist/budget-guard-d_b5rq4u.mjs.map +1 -0
- package/dist/budget-guard-gyhJS00s.mjs +234 -0
- package/dist/budget-guard-gyhJS00s.mjs.map +1 -0
- package/dist/buffer-BC8mvXHE.d.mts +98 -0
- package/dist/buffer-BC8mvXHE.d.mts.map +1 -0
- package/dist/buffer-CefJGbRy.mjs +289 -0
- package/dist/buffer-CefJGbRy.mjs.map +1 -0
- package/dist/caching-adapters.d.mts +5 -0
- package/dist/caching-adapters.mjs +3 -0
- package/dist/caching-strategies.d.mts +52 -0
- package/dist/caching-strategies.d.mts.map +1 -0
- package/dist/caching-strategies.mjs +703 -0
- package/dist/caching-strategies.mjs.map +1 -0
- package/dist/caching.d.mts +14 -0
- package/dist/caching.d.mts.map +1 -0
- package/dist/caching.mjs +15 -0
- package/dist/caching.mjs.map +1 -0
- package/dist/catalog.d.mts +19 -0
- package/dist/catalog.d.mts.map +1 -0
- package/dist/catalog.mjs +1114 -0
- package/dist/catalog.mjs.map +1 -0
- package/dist/chunk-CkzbjWQW.mjs +20 -0
- package/dist/circuit-breaker-DoKWPORd.mjs +262 -0
- package/dist/circuit-breaker-DoKWPORd.mjs.map +1 -0
- package/dist/circuit-breaker-Mey3E7tW.d.mts +64 -0
- package/dist/circuit-breaker-Mey3E7tW.d.mts.map +1 -0
- package/dist/citation-generator-C-9RpbHq.mjs +103 -0
- package/dist/citation-generator-C-9RpbHq.mjs.map +1 -0
- package/dist/citation-generator-CDSymDs_.d.mts +18 -0
- package/dist/citation-generator-CDSymDs_.d.mts.map +1 -0
- package/dist/client-CpacYDIE.mjs +882 -0
- package/dist/client-CpacYDIE.mjs.map +1 -0
- package/dist/client.d.mts +103 -0
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +470 -0
- package/dist/client.mjs.map +1 -0
- package/dist/compliance-approval-queue-DQGLojAm.mjs +172 -0
- package/dist/compliance-approval-queue-DQGLojAm.mjs.map +1 -0
- package/dist/compliance-approval-queue-IrMxFfSJ.d.mts +99 -0
- package/dist/compliance-approval-queue-IrMxFfSJ.d.mts.map +1 -0
- package/dist/compliance-wrapper-CrOMHhHN.mjs +528 -0
- package/dist/compliance-wrapper-CrOMHhHN.mjs.map +1 -0
- package/dist/conditions-DmQ6Y1Wt.mjs +179 -0
- package/dist/conditions-DmQ6Y1Wt.mjs.map +1 -0
- package/dist/conditions-zDrKfrc3.d.mts +42 -0
- package/dist/conditions-zDrKfrc3.d.mts.map +1 -0
- package/dist/console-BGMxxPZN.mjs +181 -0
- package/dist/console-BGMxxPZN.mjs.map +1 -0
- package/dist/console-DqEqZd4A.d.mts +76 -0
- package/dist/console-DqEqZd4A.d.mts.map +1 -0
- package/dist/controller-BOy3-xbC.mjs +501 -0
- package/dist/controller-BOy3-xbC.mjs.map +1 -0
- package/dist/controller-Y0NGosbJ.d.mts +104 -0
- package/dist/controller-Y0NGosbJ.d.mts.map +1 -0
- package/dist/coordinator-agent-BglqZLwo.d.mts +54 -0
- package/dist/coordinator-agent-BglqZLwo.d.mts.map +1 -0
- package/dist/coordinator-agent-WFWBRL-G.mjs +236 -0
- package/dist/coordinator-agent-WFWBRL-G.mjs.map +1 -0
- package/dist/crypto-8ABhc3TD.mjs +40 -0
- package/dist/crypto-8ABhc3TD.mjs.map +1 -0
- package/dist/environment-CSoJb0SW.mjs +255 -0
- package/dist/environment-CSoJb0SW.mjs.map +1 -0
- package/dist/error-handling-DNVkm6RY.mjs +1334 -0
- package/dist/error-handling-DNVkm6RY.mjs.map +1 -0
- package/dist/errors-CQ8tF4dP.mjs +985 -0
- package/dist/errors-CQ8tF4dP.mjs.map +1 -0
- package/dist/errors-CfYdVeum.d.mts +212 -0
- package/dist/errors-CfYdVeum.d.mts.map +1 -0
- package/dist/errors-Dtn-UeRi.mjs +61 -0
- package/dist/errors-Dtn-UeRi.mjs.map +1 -0
- package/dist/evaluator-Cs84qkr8.mjs +91 -0
- package/dist/evaluator-Cs84qkr8.mjs.map +1 -0
- package/dist/evaluator-optimizer-De67_mJC.mjs +1086 -0
- package/dist/evaluator-optimizer-De67_mJC.mjs.map +1 -0
- package/dist/evaluator-optimizer-pattern-B5939s2Z.mjs +367 -0
- package/dist/evaluator-optimizer-pattern-B5939s2Z.mjs.map +1 -0
- package/dist/evaluator-optimizer-pattern-D1AJrzBD.d.mts +72 -0
- package/dist/evaluator-optimizer-pattern-D1AJrzBD.d.mts.map +1 -0
- package/dist/factory-DP6VSl8C.mjs +307 -0
- package/dist/factory-DP6VSl8C.mjs.map +1 -0
- package/dist/generative-ui-catalog.d.mts +8 -0
- package/dist/generative-ui-catalog.d.mts.map +1 -0
- package/dist/generative-ui-catalog.mjs +679 -0
- package/dist/generative-ui-catalog.mjs.map +1 -0
- package/dist/generative-ui-registry.d.mts +195 -0
- package/dist/generative-ui-registry.d.mts.map +1 -0
- package/dist/generative-ui-registry.mjs +250 -0
- package/dist/generative-ui-registry.mjs.map +1 -0
- package/dist/generative-ui-stream.d.mts +23 -0
- package/dist/generative-ui-stream.d.mts.map +1 -0
- package/dist/generative-ui-stream.mjs +219 -0
- package/dist/generative-ui-stream.mjs.map +1 -0
- package/dist/generative-ui-types.d.mts +123 -0
- package/dist/generative-ui-types.d.mts.map +1 -0
- package/dist/generative-ui-types.mjs +1 -0
- package/dist/generative-ui.d.mts +13 -0
- package/dist/generative-ui.d.mts.map +1 -0
- package/dist/generative-ui.mjs +21 -0
- package/dist/generative-ui.mjs.map +1 -0
- package/dist/governance-audit.d.mts +3 -0
- package/dist/governance-audit.mjs +3 -0
- package/dist/governance-compliance.d.mts +5 -0
- package/dist/governance-compliance.mjs +4 -0
- package/dist/governance-policies.d.mts +4 -0
- package/dist/governance-policies.mjs +4 -0
- package/dist/governance-tenancy.d.mts +3 -0
- package/dist/governance-tenancy.mjs +3 -0
- package/dist/governance.d.mts +88 -0
- package/dist/governance.d.mts.map +1 -0
- package/dist/governance.mjs +432 -0
- package/dist/governance.mjs.map +1 -0
- package/dist/grounding-attribution.d.mts +63 -0
- package/dist/grounding-attribution.d.mts.map +1 -0
- package/dist/grounding-attribution.mjs +259 -0
- package/dist/grounding-attribution.mjs.map +1 -0
- package/dist/grounding-citation.d.mts +2 -0
- package/dist/grounding-citation.mjs +3 -0
- package/dist/grounding-context.d.mts +9 -0
- package/dist/grounding-context.d.mts.map +1 -0
- package/dist/grounding-context.mjs +19 -0
- package/dist/grounding-context.mjs.map +1 -0
- package/dist/grounding-embed.d.mts +102 -0
- package/dist/grounding-embed.d.mts.map +1 -0
- package/dist/grounding-embed.mjs +417 -0
- package/dist/grounding-embed.mjs.map +1 -0
- package/dist/grounding-hallucination.d.mts +44 -0
- package/dist/grounding-hallucination.d.mts.map +1 -0
- package/dist/grounding-hallucination.mjs +115 -0
- package/dist/grounding-hallucination.mjs.map +1 -0
- package/dist/grounding-proof-map.d.mts +9 -0
- package/dist/grounding-proof-map.d.mts.map +1 -0
- package/dist/grounding-proof-map.mjs +26 -0
- package/dist/grounding-proof-map.mjs.map +1 -0
- package/dist/grounding-rag.d.mts +10 -0
- package/dist/grounding-rag.d.mts.map +1 -0
- package/dist/grounding-rag.mjs +27 -0
- package/dist/grounding-rag.mjs.map +1 -0
- package/dist/grounding-verification.d.mts +48 -0
- package/dist/grounding-verification.d.mts.map +1 -0
- package/dist/grounding-verification.mjs +224 -0
- package/dist/grounding-verification.mjs.map +1 -0
- package/dist/grounding.d.mts +24 -0
- package/dist/grounding.d.mts.map +1 -0
- package/dist/grounding.mjs +77 -0
- package/dist/grounding.mjs.map +1 -0
- package/dist/hitl-active-learning.d.mts +41 -0
- package/dist/hitl-active-learning.d.mts.map +1 -0
- package/dist/hitl-active-learning.mjs +178 -0
- package/dist/hitl-active-learning.mjs.map +1 -0
- package/dist/hitl-annotation.d.mts +74 -0
- package/dist/hitl-annotation.d.mts.map +1 -0
- package/dist/hitl-annotation.mjs +170 -0
- package/dist/hitl-annotation.mjs.map +1 -0
- package/dist/hitl-approval.d.mts +2 -0
- package/dist/hitl-approval.mjs +3 -0
- package/dist/hitl-feedback.d.mts +59 -0
- package/dist/hitl-feedback.d.mts.map +1 -0
- package/dist/hitl-feedback.mjs +137 -0
- package/dist/hitl-feedback.mjs.map +1 -0
- package/dist/hitl-review.d.mts +2 -0
- package/dist/hitl-review.mjs +3 -0
- package/dist/hitl.d.mts +14 -0
- package/dist/hitl.d.mts.map +1 -0
- package/dist/hitl.mjs +22 -0
- package/dist/hitl.mjs.map +1 -0
- package/dist/index-B17HT-VL.d.mts +285 -0
- package/dist/index-B17HT-VL.d.mts.map +1 -0
- package/dist/index-BDwgsK9B.d.mts +101 -0
- package/dist/index-BDwgsK9B.d.mts.map +1 -0
- package/dist/index-BGgMn_Ev.d.mts +2615 -0
- package/dist/index-BGgMn_Ev.d.mts.map +1 -0
- package/dist/index-DOqe5r9G.d.mts +318 -0
- package/dist/index-DOqe5r9G.d.mts.map +1 -0
- package/dist/index-DotINT7o.d.mts +1004 -0
- package/dist/index-DotINT7o.d.mts.map +1 -0
- package/dist/index-URlW7aD1.d.mts +67 -0
- package/dist/index-URlW7aD1.d.mts.map +1 -0
- package/dist/index.d.mts +64 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +46 -0
- package/dist/index.mjs.map +1 -0
- package/dist/integrations-blob-storage.d.mts +25 -0
- package/dist/integrations-blob-storage.d.mts.map +1 -0
- package/dist/integrations-blob-storage.mjs +3 -0
- package/dist/integrations-notifications.d.mts +2 -0
- package/dist/integrations-notifications.mjs +3 -0
- package/dist/integrations-rate-limit.d.mts +27 -0
- package/dist/integrations-rate-limit.d.mts.map +1 -0
- package/dist/integrations-rate-limit.mjs +30 -0
- package/dist/integrations-rate-limit.mjs.map +1 -0
- package/dist/integrations-redis.d.mts +3 -0
- package/dist/integrations-redis.mjs +3 -0
- package/dist/integrations-stream.d.mts +14 -0
- package/dist/integrations-stream.d.mts.map +1 -0
- package/dist/integrations-stream.mjs +3 -0
- package/dist/integrations.d.mts +7 -0
- package/dist/integrations.mjs +7 -0
- package/dist/log-adapter-BLegSZtz.d.mts +16 -0
- package/dist/log-adapter-BLegSZtz.d.mts.map +1 -0
- package/dist/log-adapter-PPe_2Pwv.mjs +28 -0
- package/dist/log-adapter-PPe_2Pwv.mjs.map +1 -0
- package/dist/loop-BOYEtr2g.mjs +520 -0
- package/dist/loop-BOYEtr2g.mjs.map +1 -0
- package/dist/loop-C-tBBOqi.d.mts +219 -0
- package/dist/loop-C-tBBOqi.d.mts.map +1 -0
- package/dist/middleware-5wQ9bANW.mjs +306 -0
- package/dist/middleware-5wQ9bANW.mjs.map +1 -0
- package/dist/middleware-C1apSrj0.mjs +613 -0
- package/dist/middleware-C1apSrj0.mjs.map +1 -0
- package/dist/middleware-C7k0uItW.d.mts +9 -0
- package/dist/middleware-C7k0uItW.d.mts.map +1 -0
- package/dist/middleware-CZQCTHfl.mjs +366 -0
- package/dist/middleware-CZQCTHfl.mjs.map +1 -0
- package/dist/models.d.mts +11 -0
- package/dist/models.d.mts.map +1 -0
- package/dist/models.mjs +32 -0
- package/dist/models.mjs.map +1 -0
- package/dist/observability-analytics.d.mts +107 -0
- package/dist/observability-analytics.d.mts.map +1 -0
- package/dist/observability-analytics.mjs +409 -0
- package/dist/observability-analytics.mjs.map +1 -0
- package/dist/observability-cost.d.mts +10 -0
- package/dist/observability-cost.d.mts.map +1 -0
- package/dist/observability-cost.mjs +15 -0
- package/dist/observability-cost.mjs.map +1 -0
- package/dist/observability-telemetry.d.mts +111 -0
- package/dist/observability-telemetry.d.mts.map +1 -0
- package/dist/observability-telemetry.mjs +343 -0
- package/dist/observability-telemetry.mjs.map +1 -0
- package/dist/observability-tracing.d.mts +10 -0
- package/dist/observability-tracing.d.mts.map +1 -0
- package/dist/observability-tracing.mjs +17 -0
- package/dist/observability-tracing.mjs.map +1 -0
- package/dist/observability.d.mts +15 -0
- package/dist/observability.d.mts.map +1 -0
- package/dist/observability.mjs +17 -0
- package/dist/observability.mjs.map +1 -0
- package/dist/optimizer-DhXXpci6.mjs +97 -0
- package/dist/optimizer-DhXXpci6.mjs.map +1 -0
- package/dist/output-multimodal.d.mts +9 -0
- package/dist/output-multimodal.d.mts.map +1 -0
- package/dist/output-multimodal.mjs +18 -0
- package/dist/output-multimodal.mjs.map +1 -0
- package/dist/output.d.mts +11 -0
- package/dist/output.d.mts.map +1 -0
- package/dist/output.mjs +40 -0
- package/dist/output.mjs.map +1 -0
- package/dist/pii-filter-3AxmYSiu.d.mts +23 -0
- package/dist/pii-filter-3AxmYSiu.d.mts.map +1 -0
- package/dist/pipelines.d.mts +448 -0
- package/dist/pipelines.d.mts.map +1 -0
- package/dist/pipelines.mjs +1534 -0
- package/dist/pipelines.mjs.map +1 -0
- package/dist/prompt-injection-DQXchzsV.d.mts +8 -0
- package/dist/prompt-injection-DQXchzsV.d.mts.map +1 -0
- package/dist/prompt-injection-RpoLPwSa.mjs +52 -0
- package/dist/prompt-injection-RpoLPwSa.mjs.map +1 -0
- package/dist/prompts.d.mts +192 -0
- package/dist/prompts.d.mts.map +1 -0
- package/dist/prompts.mjs +732 -0
- package/dist/prompts.mjs.map +1 -0
- package/dist/protocol-DfBiEsnl.d.mts +112 -0
- package/dist/protocol-DfBiEsnl.d.mts.map +1 -0
- package/dist/quota-manager-0iPMkQWN.d.mts +62 -0
- package/dist/quota-manager-0iPMkQWN.d.mts.map +1 -0
- package/dist/quota-manager-D_N7FuQ2.mjs +180 -0
- package/dist/quota-manager-D_N7FuQ2.mjs.map +1 -0
- package/dist/redaction-utils-DcQwsiNh.mjs +438 -0
- package/dist/redaction-utils-DcQwsiNh.mjs.map +1 -0
- package/dist/redis-CpsSrF8K.mjs +102 -0
- package/dist/redis-CpsSrF8K.mjs.map +1 -0
- package/dist/redis-CwguYFGh.d.mts +33 -0
- package/dist/redis-CwguYFGh.d.mts.map +1 -0
- package/dist/registry-CsD3iTIx.mjs +190 -0
- package/dist/registry-CsD3iTIx.mjs.map +1 -0
- package/dist/registry-DVPWzkXR.d.mts +36 -0
- package/dist/registry-DVPWzkXR.d.mts.map +1 -0
- package/dist/reranking-BpWYhYzl.d.mts +72 -0
- package/dist/reranking-BpWYhYzl.d.mts.map +1 -0
- package/dist/reranking-Ck8aKZW7.mjs +331 -0
- package/dist/reranking-Ck8aKZW7.mjs.map +1 -0
- package/dist/resumable-adapter-CO1HtsgJ.mjs +21 -0
- package/dist/resumable-adapter-CO1HtsgJ.mjs.map +1 -0
- package/dist/review-trigger-DmAsiQlM.d.mts +24 -0
- package/dist/review-trigger-DmAsiQlM.d.mts.map +1 -0
- package/dist/review-trigger-DwXfpww9.mjs +112 -0
- package/dist/review-trigger-DwXfpww9.mjs.map +1 -0
- package/dist/safe-context-BynhkTKR.d.mts +54 -0
- package/dist/safe-context-BynhkTKR.d.mts.map +1 -0
- package/dist/safe-context-C5A3Wv3b.mjs +143 -0
- package/dist/safe-context-C5A3Wv3b.mjs.map +1 -0
- package/dist/schema-Bu2noOZ4.mjs +27 -0
- package/dist/schema-Bu2noOZ4.mjs.map +1 -0
- package/dist/schema-CwFvuCnA.mjs +97 -0
- package/dist/schema-CwFvuCnA.mjs.map +1 -0
- package/dist/schema-Wz-1-ro9.d.mts +37 -0
- package/dist/schema-Wz-1-ro9.d.mts.map +1 -0
- package/dist/schemas-CxQtxIga.mjs +62 -0
- package/dist/schemas-CxQtxIga.mjs.map +1 -0
- package/dist/schemas-DBOhxgW7.d.mts +32 -0
- package/dist/schemas-DBOhxgW7.d.mts.map +1 -0
- package/dist/schemas-Dp_OCqBt.d.mts +63 -0
- package/dist/schemas-Dp_OCqBt.d.mts.map +1 -0
- package/dist/schemas-SwCsnT0z.mjs +83 -0
- package/dist/schemas-SwCsnT0z.mjs.map +1 -0
- package/dist/sdk-errors.d.mts +2 -0
- package/dist/sdk-errors.mjs +3 -0
- package/dist/sdk-experimental.d.mts +59 -0
- package/dist/sdk-experimental.d.mts.map +1 -0
- package/dist/sdk-experimental.mjs +193 -0
- package/dist/sdk-experimental.mjs.map +1 -0
- package/dist/sdk-stop-conditions.d.mts +3 -0
- package/dist/sdk-stop-conditions.mjs +3 -0
- package/dist/sdk.d.mts +15 -0
- package/dist/sdk.d.mts.map +1 -0
- package/dist/sdk.mjs +50 -0
- package/dist/sdk.mjs.map +1 -0
- package/dist/security-guardrails.d.mts +3 -0
- package/dist/security-guardrails.mjs +3 -0
- package/dist/security-injection.d.mts +2 -0
- package/dist/security-injection.mjs +3 -0
- package/dist/security.d.mts +12 -0
- package/dist/security.d.mts.map +1 -0
- package/dist/security.mjs +18 -0
- package/dist/security.mjs.map +1 -0
- package/dist/server.d.mts +420 -0
- package/dist/server.d.mts.map +1 -0
- package/dist/server.mjs +2225 -0
- package/dist/server.mjs.map +1 -0
- package/dist/shared.d.mts +2 -0
- package/dist/shared.mjs +3 -0
- package/dist/streaming-control.d.mts +2 -0
- package/dist/streaming-control.mjs +4 -0
- package/dist/streaming-core.d.mts +4 -0
- package/dist/streaming-core.mjs +3 -0
- package/dist/streaming-infra-resilience.d.mts +120 -0
- package/dist/streaming-infra-resilience.d.mts.map +1 -0
- package/dist/streaming-infra-resilience.mjs +358 -0
- package/dist/streaming-infra-resilience.mjs.map +1 -0
- package/dist/streaming-infra-transport.d.mts +57 -0
- package/dist/streaming-infra-transport.d.mts.map +1 -0
- package/dist/streaming-infra-transport.mjs +488 -0
- package/dist/streaming-infra-transport.mjs.map +1 -0
- package/dist/streaming-infra.d.mts +5 -0
- package/dist/streaming-infra.mjs +5 -0
- package/dist/streaming.d.mts +17 -0
- package/dist/streaming.d.mts.map +1 -0
- package/dist/streaming.mjs +71 -0
- package/dist/streaming.mjs.map +1 -0
- package/dist/telemetry-2eKMojIb.mjs +1046 -0
- package/dist/telemetry-2eKMojIb.mjs.map +1 -0
- package/dist/telemetry-C2t03dwD.d.mts +59 -0
- package/dist/telemetry-C2t03dwD.d.mts.map +1 -0
- package/dist/tool-Btbththq.d.mts +253 -0
- package/dist/tool-Btbththq.d.mts.map +1 -0
- package/dist/tool-JSf8JXZ8.mjs +1150 -0
- package/dist/tool-JSf8JXZ8.mjs.map +1 -0
- package/dist/tool-safety-CZO8a4D4.d.mts +60 -0
- package/dist/tool-safety-CZO8a4D4.d.mts.map +1 -0
- package/dist/tool-safety-DXtYDXod.mjs +319 -0
- package/dist/tool-safety-DXtYDXod.mjs.map +1 -0
- package/dist/tools-BuS2Uv0q.mjs +1708 -0
- package/dist/tools-BuS2Uv0q.mjs.map +1 -0
- package/dist/tools-approval.d.mts +99 -0
- package/dist/tools-approval.d.mts.map +1 -0
- package/dist/tools-approval.mjs +395 -0
- package/dist/tools-approval.mjs.map +1 -0
- package/dist/tools-compliance.d.mts +67 -0
- package/dist/tools-compliance.d.mts.map +1 -0
- package/dist/tools-compliance.mjs +330 -0
- package/dist/tools-compliance.mjs.map +1 -0
- package/dist/tools-computer.d.mts +25 -0
- package/dist/tools-computer.d.mts.map +1 -0
- package/dist/tools-computer.mjs +64 -0
- package/dist/tools-computer.mjs.map +1 -0
- package/dist/tools-core.d.mts +3 -0
- package/dist/tools-core.mjs +3 -0
- package/dist/tools-mcp.d.mts +3 -0
- package/dist/tools-mcp.mjs +5 -0
- package/dist/tools-superpowers.d.mts +2 -0
- package/dist/tools-superpowers.mjs +3 -0
- package/dist/tools.d.mts +401 -0
- package/dist/tools.d.mts.map +1 -0
- package/dist/tools.mjs +1921 -0
- package/dist/tools.mjs.map +1 -0
- package/dist/transport-selector-D-Ib05X1.mjs +1936 -0
- package/dist/transport-selector-D-Ib05X1.mjs.map +1 -0
- package/dist/triage-agent-BEsXg5sw.d.mts +63 -0
- package/dist/triage-agent-BEsXg5sw.d.mts.map +1 -0
- package/dist/triage-agent-CBsfX-HW.mjs +167 -0
- package/dist/triage-agent-CBsfX-HW.mjs.map +1 -0
- package/dist/types-BPnq3GQo.d.mts +23 -0
- package/dist/types-BPnq3GQo.d.mts.map +1 -0
- package/dist/types-BjWgimpY.d.mts +16 -0
- package/dist/types-BjWgimpY.d.mts.map +1 -0
- package/dist/types-BxD-5btB.d.mts +41 -0
- package/dist/types-BxD-5btB.d.mts.map +1 -0
- package/dist/types-By-r93bE.d.mts +36 -0
- package/dist/types-By-r93bE.d.mts.map +1 -0
- package/dist/types-CLBWFRZN.d.mts +69 -0
- package/dist/types-CLBWFRZN.d.mts.map +1 -0
- package/dist/types-CQ0HFd0u.d.mts +62 -0
- package/dist/types-CQ0HFd0u.d.mts.map +1 -0
- package/dist/types-D3zJb59_.d.mts +47 -0
- package/dist/types-D3zJb59_.d.mts.map +1 -0
- package/dist/types-DJnugQX0.d.mts +80 -0
- package/dist/types-DJnugQX0.d.mts.map +1 -0
- package/dist/types-DbUfMCnT.d.mts +70 -0
- package/dist/types-DbUfMCnT.d.mts.map +1 -0
- package/dist/upstash-adapter-D96Caq2O.mjs +22 -0
- package/dist/upstash-adapter-D96Caq2O.mjs.map +1 -0
- package/dist/upstash-adapter-DD4433dx.d.mts +8 -0
- package/dist/upstash-adapter-DD4433dx.d.mts.map +1 -0
- package/dist/utils-BlYhcD6M.mjs +319 -0
- package/dist/utils-BlYhcD6M.mjs.map +1 -0
- package/dist/utils-DpJGOb3y.d.mts +120 -0
- package/dist/utils-DpJGOb3y.d.mts.map +1 -0
- package/dist/vercel-blob-adapter-CkOXLT2D.mjs +25 -0
- package/dist/vercel-blob-adapter-CkOXLT2D.mjs.map +1 -0
- package/dist/xai-CbV_dCnP.mjs +1600 -0
- package/dist/xai-CbV_dCnP.mjs.map +1 -0
- package/package.json +479 -0
- package/src/agents/base/factory.ts +382 -0
- package/src/agents/base/index.ts +8 -0
- package/src/agents/base/schemas.ts +117 -0
- package/src/agents/base/types.ts +192 -0
- package/src/agents/control-flow/index.ts +683 -0
- package/src/agents/coordinator/coordinator-agent.ts +381 -0
- package/src/agents/coordinator/index.ts +6 -0
- package/src/agents/default-agent.ts +211 -0
- package/src/agents/evaluator-optimizer/README.md +612 -0
- package/src/agents/evaluator-optimizer/evaluator-optimizer.example.ts +437 -0
- package/src/agents/evaluator-optimizer/evaluator.ts +282 -0
- package/src/agents/evaluator-optimizer/index.test.ts +416 -0
- package/src/agents/evaluator-optimizer/index.ts +519 -0
- package/src/agents/evaluator-optimizer/optimizer.ts +322 -0
- package/src/agents/evaluator-optimizer/schema.ts +302 -0
- package/src/agents/evaluator-optimizer/utils.ts +42 -0
- package/src/agents/experimental/index.ts +1095 -0
- package/src/agents/experimental/types.ts +212 -0
- package/src/agents/fallback/index.ts +18 -0
- package/src/agents/fallback/recovery/circuit-breaker.ts +166 -0
- package/src/agents/fallback/strategies/model-fallback.ts +192 -0
- package/src/agents/fallback/types.ts +87 -0
- package/src/agents/governance-agent.ts +446 -0
- package/src/agents/index.ts +79 -0
- package/src/agents/multi/coordination/index.ts +6 -0
- package/src/agents/multi/coordination/message-bus.ts +144 -0
- package/src/agents/multi/index.ts +6 -0
- package/src/agents/multi/state/index.ts +162 -0
- package/src/agents/multi/supervisor/index.ts +7 -0
- package/src/agents/multi/supervisor/supervisor.ts +254 -0
- package/src/agents/multi/swarm/aggregation.ts +466 -0
- package/src/agents/multi/swarm/communication.ts +388 -0
- package/src/agents/multi/swarm/coordination.ts +380 -0
- package/src/agents/multi/swarm/index.ts +73 -0
- package/src/agents/multi/swarm/swarm-executor.ts +479 -0
- package/src/agents/multi/types.ts +181 -0
- package/src/agents/observability/index.ts +914 -0
- package/src/agents/orchestrator.ts +218 -0
- package/src/agents/patterns/README.md +512 -0
- package/src/agents/patterns/evaluator-optimizer-pattern.example.ts +455 -0
- package/src/agents/patterns/evaluator-optimizer-pattern.ts +653 -0
- package/src/agents/patterns/index.ts +26 -0
- package/src/agents/persistence/index.ts +726 -0
- package/src/agents/tools/index.ts +291 -0
- package/src/agents/tools/mcp.ts +188 -0
- package/src/agents/triage/index.ts +6 -0
- package/src/agents/triage/triage-agent.ts +280 -0
- package/src/agents/workflows/index.ts +6 -0
- package/src/agents/workflows/interfaces.ts +36 -0
- package/src/agents/workflows/schema.ts +20 -0
- package/src/caching/adapters/index.ts +7 -0
- package/src/caching/adapters/memory.ts +77 -0
- package/src/caching/adapters/redis.ts +60 -0
- package/src/caching/index.ts +17 -0
- package/src/caching/middleware.ts +452 -0
- package/src/caching/strategies/index.ts +1008 -0
- package/src/caching/types.ts +47 -0
- package/src/catalog.ts +921 -0
- package/src/client/chat-usage.ts +53 -0
- package/src/client/hooks.ts +343 -0
- package/src/client/index.ts +36 -0
- package/src/client/message-utils.ts +29 -0
- package/src/client/use-generative-ui.ts +174 -0
- package/src/client/utils.ts +66 -0
- package/src/generative-ui/catalog.ts +653 -0
- package/src/generative-ui/index.ts +82 -0
- package/src/generative-ui/registry.ts +273 -0
- package/src/generative-ui/stream.ts +324 -0
- package/src/generative-ui/types.ts +376 -0
- package/src/governance/audit/audit-logger.ts +239 -0
- package/src/governance/audit/audit-schema.ts +82 -0
- package/src/governance/audit/index.ts +6 -0
- package/src/governance/compliance/abac/policy-engine.ts +175 -0
- package/src/governance/compliance/abac/types.ts +40 -0
- package/src/governance/compliance/approval/compliance-approval-queue.ts +217 -0
- package/src/governance/compliance/index.ts +16 -0
- package/src/governance/compliance/schemas.ts +68 -0
- package/src/governance/compliance/types.ts +143 -0
- package/src/governance/compliance/validators/phi-detector.ts +145 -0
- package/src/governance/compliance/validators/redaction-utils.ts +176 -0
- package/src/governance/compliance/validators/safe-harbor.ts +135 -0
- package/src/governance/entitlements/index.ts +585 -0
- package/src/governance/entitlements/middleware.ts +651 -0
- package/src/governance/entitlements/rate-limiter.ts +711 -0
- package/src/governance/index.ts +32 -0
- package/src/governance/policies/guardrails.ts +1121 -0
- package/src/governance/policies/index.ts +42 -0
- package/src/governance/policies/loop-controls.ts +136 -0
- package/src/governance/policies/telemetry.ts +63 -0
- package/src/governance/tenancy/index.ts +30 -0
- package/src/governance/tenancy/isolation/context.ts +92 -0
- package/src/governance/tenancy/isolation/index.ts +13 -0
- package/src/governance/tenancy/quotas/index.ts +11 -0
- package/src/governance/tenancy/quotas/quota-manager.ts +180 -0
- package/src/governance/tenancy/types.ts +66 -0
- package/src/governance/types.ts +16 -0
- package/src/governance/versioning/index.ts +573 -0
- package/src/grounding/attribution/index.ts +424 -0
- package/src/grounding/citation/citation-generator.ts +174 -0
- package/src/grounding/citation/index.ts +12 -0
- package/src/grounding/context/index.ts +32 -0
- package/src/grounding/context/safe-context.ts +116 -0
- package/src/grounding/context/types.ts +62 -0
- package/src/grounding/context-engineering/error-handling.ts +359 -0
- package/src/grounding/context-engineering/index.ts +23 -0
- package/src/grounding/context-engineering/memory.ts +559 -0
- package/src/grounding/context-engineering/tool-masking.ts +338 -0
- package/src/grounding/embed/index.ts +704 -0
- package/src/grounding/embed/reranking.ts +604 -0
- package/src/grounding/hallucination/index.ts +223 -0
- package/src/grounding/index.ts +82 -0
- package/src/grounding/proof-map/applyPatch.ts +172 -0
- package/src/grounding/proof-map/index.ts +41 -0
- package/src/grounding/proof-map/loop.ts +275 -0
- package/src/grounding/proof-map/schema.ts +217 -0
- package/src/grounding/rag/__tests__/pipeline.test.ts +274 -0
- package/src/grounding/rag/__tests__/tool.test.ts +202 -0
- package/src/grounding/rag/__tests__/trace.test.ts +229 -0
- package/src/grounding/rag/circuit-breaker.ts +152 -0
- package/src/grounding/rag/index.ts +64 -0
- package/src/grounding/rag/pipeline.ts +602 -0
- package/src/grounding/rag/tool.ts +281 -0
- package/src/grounding/rag/trace.ts +503 -0
- package/src/grounding/rag/types.ts +284 -0
- package/src/grounding/retrieval/in-memory-store.ts +107 -0
- package/src/grounding/sources/index.ts +943 -0
- package/src/grounding/tests/applyPatch.test.ts +194 -0
- package/src/grounding/tests/loop.test.ts +141 -0
- package/src/grounding/tests/schema.test.ts +160 -0
- package/src/grounding/types.ts +100 -0
- package/src/grounding/verification/index.ts +419 -0
- package/src/hitl/active-learning/index.ts +332 -0
- package/src/hitl/annotation/index.ts +362 -0
- package/src/hitl/approval/approval-queue.ts +132 -0
- package/src/hitl/approval/index.ts +5 -0
- package/src/hitl/feedback/index.ts +284 -0
- package/src/hitl/index.ts +69 -0
- package/src/hitl/review/index.ts +6 -0
- package/src/hitl/review/review-trigger.ts +162 -0
- package/src/hitl/types.ts +126 -0
- package/src/index.ts +125 -0
- package/src/integrations/blob-storage/index.ts +7 -0
- package/src/integrations/blob-storage/types.ts +28 -0
- package/src/integrations/blob-storage/vercel-blob-adapter.ts +35 -0
- package/src/integrations/index.ts +15 -0
- package/src/integrations/notifications/index.ts +7 -0
- package/src/integrations/notifications/log-adapter.ts +30 -0
- package/src/integrations/notifications/types.ts +27 -0
- package/src/integrations/rate-limit/index.ts +7 -0
- package/src/integrations/rate-limit/types.ts +26 -0
- package/src/integrations/rate-limit/upstash-adapter.ts +45 -0
- package/src/integrations/redis/index.ts +7 -0
- package/src/integrations/redis/types.ts +67 -0
- package/src/integrations/redis/upstash-adapter.ts +18 -0
- package/src/integrations/stream/index.ts +7 -0
- package/src/integrations/stream/resumable-adapter.ts +20 -0
- package/src/integrations/stream/types.ts +21 -0
- package/src/internal/__tests__/hallucination.test.ts +162 -0
- package/src/internal/__tests__/models.test.ts +104 -0
- package/src/internal/__tests__/sdk-errors.test.ts +201 -0
- package/src/internal/__tests__/stop-conditions.test.ts +210 -0
- package/src/internal/shared/ai-types.ts +942 -0
- package/src/internal/testing/evaluators.ts +575 -0
- package/src/internal/testing/index.ts +960 -0
- package/src/internal/ui/data-parts.ts +511 -0
- package/src/internal/ui/type-guards.ts +344 -0
- package/src/internal/ui-factories/__tests__/ui-factories.test.ts +548 -0
- package/src/internal/ui-factories/artifact-factory.ts +667 -0
- package/src/internal/ui-factories/index.ts +82 -0
- package/src/internal/ui-factories/shimmer-manager.ts +220 -0
- package/src/internal/ui-factories/status-helpers.ts +149 -0
- package/src/internal/ui-factories/tool-renderer.ts +167 -0
- package/src/internal/ui-factories/types.ts +235 -0
- package/src/models/capabilities.ts +88 -0
- package/src/models/index.ts +16 -0
- package/src/models/provider-factory.ts +229 -0
- package/src/models/providers/anthropic.ts +539 -0
- package/src/models/providers/google.ts +354 -0
- package/src/models/providers/index.ts +21 -0
- package/src/models/providers/openai.ts +346 -0
- package/src/models/providers/perplexity.ts +276 -0
- package/src/models/providers/shared.ts +90 -0
- package/src/models/providers/xai.ts +269 -0
- package/src/models/registry.ts +208 -0
- package/src/models/routing/index.ts +45 -0
- package/src/models/routing/intent-router.ts +143 -0
- package/src/models/routing/model-router.ts +300 -0
- package/src/models/routing/types.ts +106 -0
- package/src/models/types.ts +23 -0
- package/src/observability/analytics/index.ts +593 -0
- package/src/observability/cost/index.ts +16 -0
- package/src/observability/cost/tracking/budget-guard.ts +110 -0
- package/src/observability/cost/tracking/usage-tracker.ts +120 -0
- package/src/observability/cost/types.ts +85 -0
- package/src/observability/index.ts +17 -0
- package/src/observability/telemetry/index.ts +508 -0
- package/src/observability/tracing/index.ts +30 -0
- package/src/observability/tracing/otel/ai-instrumentation.ts +193 -0
- package/src/observability/tracing/otel/exporters/console.ts +58 -0
- package/src/observability/tracing/otel/exporters/index.ts +6 -0
- package/src/observability/tracing/provenance.ts +769 -0
- package/src/observability/tracing/types.ts +92 -0
- package/src/output/__tests__/output.test.ts +737 -0
- package/src/output/element-stream.ts +678 -0
- package/src/output/errors.ts +108 -0
- package/src/output/factories.ts +392 -0
- package/src/output/index.ts +98 -0
- package/src/output/multimodal/EXPORTS.md +306 -0
- package/src/output/multimodal/IMPLEMENTATION_SUMMARY.md +421 -0
- package/src/output/multimodal/README.md +349 -0
- package/src/output/multimodal/SETUP_GUIDE.md +472 -0
- package/src/output/multimodal/audio.ts +650 -0
- package/src/output/multimodal/image.ts +22 -0
- package/src/output/multimodal/index.ts +32 -0
- package/src/output/multimodal/providers.example.ts +375 -0
- package/src/output/validator.ts +495 -0
- package/src/pipelines/adapters/trace-storage-blob.ts +458 -0
- package/src/pipelines/adapters/trace-storage-memory.ts +319 -0
- package/src/pipelines/defaults.ts +109 -0
- package/src/pipelines/index.ts +24 -0
- package/src/pipelines/message-transforms.ts +107 -0
- package/src/pipelines/multi-step-wrapper.ts +433 -0
- package/src/pipelines/pipeline-presets.ts +339 -0
- package/src/pipelines/step-executor.ts +257 -0
- package/src/pipelines/storage-factory.ts +85 -0
- package/src/pipelines/trace-storage-interface.ts +216 -0
- package/src/pipelines/types.ts +255 -0
- package/src/pipelines/validation.ts +323 -0
- package/src/prompts/index.ts +271 -0
- package/src/prompts/model-variants.ts +410 -0
- package/src/prompts/templates.ts +327 -0
- package/src/sdk/errors/base.ts +296 -0
- package/src/sdk/errors/index.ts +31 -0
- package/src/sdk/errors/utils.ts +148 -0
- package/src/sdk/experimental/index.ts +286 -0
- package/src/sdk/index.ts +25 -0
- package/src/sdk/middleware/ai-middleware.ts +95 -0
- package/src/sdk/middleware/cache.ts +154 -0
- package/src/sdk/middleware/circuit-breaker.ts +388 -0
- package/src/sdk/middleware/compose.ts +81 -0
- package/src/sdk/middleware/deduplication.ts +307 -0
- package/src/sdk/middleware/index.ts +660 -0
- package/src/sdk/middleware/model-middleware.ts +200 -0
- package/src/sdk/stop-conditions/conditions.ts +209 -0
- package/src/sdk/stop-conditions/index.ts +35 -0
- package/src/sdk/stop-conditions/types.ts +59 -0
- package/src/security/guardrails/index.ts +6 -0
- package/src/security/guardrails/middleware.ts +465 -0
- package/src/security/guardrails/pii-filter.ts +396 -0
- package/src/security/index.ts +33 -0
- package/src/security/injection/index.ts +5 -0
- package/src/security/injection/prompt-injection.ts +64 -0
- package/src/security/types.ts +85 -0
- package/src/server/cache/crypto.ts +47 -0
- package/src/server/cache/performance.ts +79 -0
- package/src/server/error-handler.ts +93 -0
- package/src/server/errors.ts +73 -0
- package/src/server/helpers.ts +944 -0
- package/src/server/http.ts +156 -0
- package/src/server/index.ts +12 -0
- package/src/server/messages/__tests__/messages.test.ts +720 -0
- package/src/server/messages/converter.ts +245 -0
- package/src/server/messages/data-parts.ts +338 -0
- package/src/server/messages/extraction.ts +328 -0
- package/src/server/messages/index.ts +126 -0
- package/src/server/messages/types.ts +355 -0
- package/src/server/messages/window.ts +450 -0
- package/src/server/rate-limit/env.ts +8 -0
- package/src/server/rate-limit/rate-limit.ts +165 -0
- package/src/server/routes/HEALTH_CHECK.md +502 -0
- package/src/server/routes/IMPLEMENTATION_SUMMARY.md +432 -0
- package/src/server/routes/QUICK_START.md +327 -0
- package/src/server/routes/README.md +357 -0
- package/src/server/routes/__tests__/routes.test.ts +628 -0
- package/src/server/routes/agent-route.ts +224 -0
- package/src/server/routes/agent-routes.ts +191 -0
- package/src/server/routes/embed-config.ts +181 -0
- package/src/server/routes/health-check.example.ts +507 -0
- package/src/server/routes/health-check.test.ts +533 -0
- package/src/server/routes/health-check.ts +639 -0
- package/src/server/routes/health-check.types.ts +217 -0
- package/src/server/routes/index.ts +32 -0
- package/src/server/routes/types.ts +274 -0
- package/src/shared/__tests__/schemas.test.ts +317 -0
- package/src/shared/ai-runtime.ts +139 -0
- package/src/shared/ai-types.ts +133 -0
- package/src/shared/index.ts +30 -0
- package/src/shared/sdk-runtime.ts +198 -0
- package/src/shared/sdk-types.ts +301 -0
- package/src/streaming/control/__tests__/streaming-control.test.ts +708 -0
- package/src/streaming/control/budget-guard.ts +264 -0
- package/src/streaming/control/controller.ts +255 -0
- package/src/streaming/control/index.ts +105 -0
- package/src/streaming/control/smoothing.ts +201 -0
- package/src/streaming/control/step-limit.ts +215 -0
- package/src/streaming/control/types.ts +234 -0
- package/src/streaming/core/auto-resume.ts +276 -0
- package/src/streaming/core/index.ts +85 -0
- package/src/streaming/core/multi-step.ts +471 -0
- package/src/streaming/core/protocol.ts +194 -0
- package/src/streaming/core/types.ts +182 -0
- package/src/streaming/index.ts +97 -0
- package/src/streaming/infra/backpressure/buffer.ts +210 -0
- package/src/streaming/infra/backpressure/index.ts +6 -0
- package/src/streaming/infra/index.ts +75 -0
- package/src/streaming/infra/multiplexing/index.ts +311 -0
- package/src/streaming/infra/resilience/index.ts +684 -0
- package/src/streaming/infra/transform/index.ts +15 -0
- package/src/streaming/infra/transform/stream-transforms.ts +166 -0
- package/src/streaming/infra/transport/index.ts +774 -0
- package/src/streaming/infra/types.ts +118 -0
- package/src/streaming/infra-extra/types.ts +118 -0
- package/src/tools/advanced/caching.ts +299 -0
- package/src/tools/advanced/generator.ts +267 -0
- package/src/tools/advanced/hitl.ts +251 -0
- package/src/tools/advanced/index.ts +9 -0
- package/src/tools/advanced/llm-tool.ts +208 -0
- package/src/tools/approval/FILES.md +449 -0
- package/src/tools/approval/IMPLEMENTATION_SUMMARY.md +567 -0
- package/src/tools/approval/QUICK_START.md +362 -0
- package/src/tools/approval/README.md +514 -0
- package/src/tools/approval/advanced-approval-queue.ts +7 -0
- package/src/tools/approval/approval.example.ts +571 -0
- package/src/tools/approval/in-memory-queue.ts +405 -0
- package/src/tools/approval/index.ts +737 -0
- package/src/tools/approval/middleware.ts +590 -0
- package/src/tools/approval/queue-factory.ts +162 -0
- package/src/tools/approval/redis-queue.ts +327 -0
- package/src/tools/approval/testing.ts +493 -0
- package/src/tools/approval/types.ts +221 -0
- package/src/tools/approval/with-approval.ts +366 -0
- package/src/tools/artifacts/artifact-tools.ts +273 -0
- package/src/tools/artifacts/index.ts +6 -0
- package/src/tools/compliance/compliance-wrapper.ts +789 -0
- package/src/tools/compliance/create-compliant-stream.ts +226 -0
- package/src/tools/compliance/index.ts +8 -0
- package/src/tools/compliance/phi-redaction.ts +406 -0
- package/src/tools/compliance/tool-wrapper.ts +306 -0
- package/src/tools/computer/index.ts +99 -0
- package/src/tools/computer/types.ts +41 -0
- package/src/tools/core/abort.ts +202 -0
- package/src/tools/core/factory.ts +197 -0
- package/src/tools/core/index.ts +8 -0
- package/src/tools/core/tool-safety.ts +112 -0
- package/src/tools/generic/index.ts +9 -0
- package/src/tools/generic/json-schema-tool.ts +301 -0
- package/src/tools/generic/tiptap-context.ts +619 -0
- package/src/tools/generic/web-search-tool.ts +82 -0
- package/src/tools/generic/web-search.ts +142 -0
- package/src/tools/index.ts +36 -0
- package/src/tools/mcp/ai-sdk-error-integration.ts +401 -0
- package/src/tools/mcp/client.ts +988 -0
- package/src/tools/mcp/connection-manager.ts +380 -0
- package/src/tools/mcp/connection-pool.ts +408 -0
- package/src/tools/mcp/edge-runtime.ts +318 -0
- package/src/tools/mcp/environment.ts +310 -0
- package/src/tools/mcp/index.ts +20 -0
- package/src/tools/mcp/next-pattern.ts +401 -0
- package/src/tools/mcp/stream-lifecycle-integration.ts +617 -0
- package/src/tools/mcp/tool-cache.ts +359 -0
- package/src/tools/mcp/transport-selector.ts +492 -0
- package/src/tools/mcp/transports.ts +99 -0
- package/src/tools/simple-factory.ts +55 -0
- package/src/tools/superpowers/index.ts +122 -0
- package/src/tools/superpowers/prompts/index.ts +533 -0
- package/src/tools/superpowers/schemas/index.ts +701 -0
- package/src/tools/superpowers/tools/index.ts +721 -0
- package/src/tools/validation-wrapper.ts +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xai-CbV_dCnP.mjs","names":["anthropicProvider","getModelCapabilities","supportsWebSearch","isReasoningModel","extractProviderMetadata","extractSources","googleProvider"],"sources":["../src/models/provider-factory.ts","../src/models/providers/shared.ts","../src/models/providers/anthropic.ts","../src/models/providers/openai.ts","../src/models/providers/perplexity.ts","../src/models/capabilities.ts","../src/models/providers/google.ts","../src/models/providers/xai.ts"],"sourcesContent":["import {\n anthropic,\n createAnthropic,\n createGoogleGenerativeAI,\n google,\n createOpenAI,\n openai,\n createXai,\n createOpenAICompatible,\n type SDKLanguageModel,\n} from '../shared';\n\nimport { type Model, getModelId, getModelMetadata, MODEL_METADATA } from './registry';\n\nimport type { Gateway, ModelTier } from './types';\n\n/**\n * Options for creating a language model instance.\n */\nexport interface CreateLanguageModelOptions {\n /**\n * Bypass gateway and use native provider directly\n * @default false (uses gateway from AI_GATEWAY env var)\n */\n useNative?: boolean;\n}\n\n/**\n * Creates an AI SDK LanguageModel instance for a semantic model name.\n *\n * By default, routes through the configured gateway (AI_GATEWAY env var).\n * Use `useNative: true` to bypass gateway and connect directly to the provider.\n *\n * @param model - Semantic model name from the {@link Model} enum\n * @param options - Optional configuration for gateway routing\n * @returns AI SDK LanguageModel instance ready for use with generateText/streamText\n *\n * @example\n * ```ts\n * // Uses gateway (default)\n * const model = createLanguageModel(Model.SONNET);\n * const { text } = await generateText({ model, prompt: \"Hello\" });\n * ```\n *\n * @example\n * ```ts\n * // Bypass gateway for direct provider connection\n * const model = createLanguageModel(Model.SONNET, { useNative: true });\n * ```\n */\nexport function createLanguageModel(\n model: Model,\n options?: CreateLanguageModelOptions,\n): SDKLanguageModel {\n const modelId = getModelId(model);\n const metadata = getModelMetadata(model);\n const useNative = options?.useNative ?? false;\n\n // Determine gateway from environment\n const configuredGateway = process.env.AI_GATEWAY as Gateway | undefined;\n\n // Use gateway by default unless useNative is true\n if (!useNative && configuredGateway) {\n if (configuredGateway === 'cloudflare') {\n return getCloudflareProvider(model);\n }\n if (configuredGateway === 'vercel') {\n return getVercelGatewayProvider(model);\n }\n }\n\n // Native/direct provider routing\n switch (metadata.provider) {\n case 'anthropic':\n return anthropic(modelId);\n case 'openai':\n return openai(modelId);\n case 'google':\n return google(modelId);\n case 'xai':\n return createXai()(modelId);\n case 'perplexity': {\n const apiKey = process.env.PERPLEXITY_API_KEY;\n if (!apiKey) {\n throw new Error('PERPLEXITY_API_KEY is required for Perplexity provider');\n }\n return createOpenAICompatible({\n name: 'perplexity',\n baseURL: 'https://api.perplexity.ai',\n apiKey,\n })(modelId);\n }\n default:\n throw new Error(`Unsupported provider: ${metadata.provider}`);\n }\n}\n\n/**\n * Get model through Cloudflare AI Gateway\n */\nfunction getCloudflareProvider(model: Model): SDKLanguageModel {\n const modelId = getModelId(model);\n const metadata = getModelMetadata(model);\n const accountId = process.env.CLOUDFLARE_ACCOUNT_ID;\n const gatewayName = process.env.CLOUDFLARE_AI_GATEWAY_NAME || 'ai-gateway';\n\n if (!accountId) {\n throw new Error('CLOUDFLARE_ACCOUNT_ID required for Cloudflare gateway');\n }\n\n const baseURL = `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayName}/${metadata.provider}`;\n\n // Use provider-specific SDK with Cloudflare gateway URL\n switch (metadata.provider) {\n case 'anthropic':\n return createAnthropic({ baseURL })(modelId);\n case 'openai':\n return createOpenAI({ baseURL })(modelId);\n case 'google':\n return createGoogleGenerativeAI({ baseURL })(modelId);\n case 'perplexity':\n case 'xai':\n throw new Error(`Cloudflare gateway not supported for ${metadata.provider}`);\n default:\n throw new Error(`Cloudflare gateway not supported for ${metadata.provider}`);\n }\n}\n\n/**\n * Get model through Vercel AI Gateway\n */\nfunction getVercelGatewayProvider(model: Model): SDKLanguageModel {\n const modelId = getModelId(model);\n const metadata = getModelMetadata(model);\n const apiKey = process.env.AI_GATEWAY_API_KEY;\n const baseURL = process.env.AI_GATEWAY_BASE_URL || 'https://gateway.ai.vercel.com';\n\n if (!apiKey) {\n throw new Error('AI_GATEWAY_API_KEY required for Vercel gateway');\n }\n\n // Route through Vercel gateway\n switch (metadata.provider) {\n case 'anthropic':\n return createAnthropic({ baseURL, apiKey, headers: { 'x-api-key': apiKey } })(modelId);\n case 'openai':\n return createOpenAI({ baseURL, apiKey, headers: { 'x-api-key': apiKey } })(modelId);\n case 'google':\n case 'perplexity':\n case 'xai':\n throw new Error(`Vercel gateway not supported for ${metadata.provider}`);\n default:\n throw new Error(`Vercel gateway not supported for ${metadata.provider}`);\n }\n}\n\n/**\n * Returns all models classified under a given performance tier.\n *\n * @param tier - The tier to filter by (e.g., 'fast', 'balanced', 'powerful')\n * @returns Array of Model enum values matching the tier\n */\nexport function getModelsByTier(tier: ModelTier): Model[] {\n return Object.entries(MODEL_METADATA)\n .filter(([, metadata]) => metadata.tier === tier)\n .map(([model]) => model as Model);\n}\n\n/**\n * Get the tier classification for a model\n *\n * @param model - Semantic model name\n * @returns Model tier classification\n */\nexport function getModelTier(model: Model): ModelTier {\n const metadata = getModelMetadata(model);\n return metadata.tier;\n}\n\n/**\n * Estimate cost for a generation based on token usage\n *\n * @param model - Semantic model name\n * @param inputTokens - Number of input tokens\n * @param outputTokens - Number of output tokens\n * @returns Estimated cost in USD\n */\nexport function estimateCost(model: Model, inputTokens: number, outputTokens: number): number {\n const metadata = getModelMetadata(model);\n const inputCost = (inputTokens / 1000) * metadata.costPer1kInput;\n const outputCost = (outputTokens / 1000) * metadata.costPer1kOutput;\n return inputCost + outputCost;\n}\n\n/**\n * Finds the cheapest model that satisfies the given capability requirements.\n *\n * @param options - Required capabilities and constraints\n * @returns The least expensive Model matching all requirements\n * @throws Error if no models satisfy the requirements\n */\nexport function getCheapestModel(options: {\n supportsTools?: boolean;\n supportsStreaming?: boolean;\n minContextWindow?: number;\n}): Model {\n const candidates = Object.entries(MODEL_METADATA)\n .filter(([, metadata]) => {\n if (options.supportsTools && !metadata.supportsTools) return false;\n if (options.supportsStreaming && !metadata.supportsStreaming) return false;\n if (\n options.minContextWindow !== undefined &&\n metadata.contextWindow < options.minContextWindow\n )\n return false;\n return true;\n })\n .sort((a, b) => a[1].costPer1kInput - b[1].costPer1kInput);\n\n if (candidates.length === 0) {\n throw new Error('No models match the specified requirements');\n }\n\n const [model] = candidates[0] ?? [];\n if (!model) {\n throw new Error('No models match the specified requirements');\n }\n return model as Model;\n}\n","/**\n * @fileoverview Shared provider utilities\n *\n * Common constants and helpers used across all AI providers.\n * Single source of truth for temperature, token, and topP presets.\n *\n * @module @od-oneapp/ai-platform/models/providers/shared\n */\n\n/**\n * Common temperature presets used across providers.\n */\nexport const TEMPS = {\n PRECISE: 0,\n VERY_LOW: 0.1,\n FACTUAL: 0.2,\n LOW_CREATIVE: 0.3,\n MODERATE: 0.5,\n BALANCED: 0.7,\n HIGH_CREATIVE: 0.8,\n CREATIVE: 0.9,\n} as const;\n\n/**\n * Common token limit presets.\n */\nexport const TOKENS = {\n TINY: 256,\n SHORT: 1024,\n MEDIUM: 2048,\n LONG: 4096,\n EXTENDED: 8192,\n MAX: 16384,\n} as const;\n\n/**\n * Common topP values for nucleus sampling.\n */\nexport const TOP_P = {\n DETERMINISTIC: 1.0,\n FOCUSED: 0.95,\n BALANCED: 0.98,\n} as const;\n\n/**\n * Common mode configurations shared across providers.\n */\nexport const commonModes = {\n /** Precise mode - deterministic outputs */\n precise: () => ({\n temperature: TEMPS.PRECISE,\n topP: TOP_P.DETERMINISTIC,\n }),\n\n /** Code mode - optimized for programming */\n code: () => ({\n temperature: TEMPS.FACTUAL,\n topP: TOP_P.FOCUSED,\n }),\n\n /** Creative mode - higher variability */\n creative: () => ({\n temperature: TEMPS.CREATIVE,\n topP: TOP_P.BALANCED,\n }),\n\n /** Research mode - balanced accuracy */\n research: () => ({\n temperature: TEMPS.FACTUAL,\n maxOutputTokens: TOKENS.LONG,\n }),\n\n /** Quick mode - fast responses */\n quick: () => ({\n temperature: TEMPS.MODERATE,\n maxOutputTokens: TOKENS.SHORT,\n }),\n};\n\n/** Type for temperature preset keys */\nexport type TemperaturePreset = keyof typeof TEMPS;\n\n/** Type for token preset keys */\nexport type TokenPreset = keyof typeof TOKENS;\n\n/** Type for topP preset keys */\nexport type TopPPreset = keyof typeof TOP_P;\n\n/** Type for common mode keys */\nexport type CommonMode = keyof typeof commonModes;\n","/**\n * @fileoverview Anthropic provider configuration\n *\n * Provider-specific model IDs, option helpers, capability detection,\n * and metadata extraction for Anthropic Claude models.\n *\n * All AI SDK imports come from the shared module.\n *\n * @module @od-oneapp/ai-platform/models/providers/anthropic\n */\n\nimport { anthropic as anthropicProvider } from '../../shared';\n\nimport { TEMPS, TOKENS, TOP_P } from './shared';\n\nimport type { SDKSharedV3ProviderMetadata } from '../../shared';\n\n// ---------------------------------------------------------------------------\n// Internal types\n// ---------------------------------------------------------------------------\n\ninterface ComputerToolConfig {\n displayWidth: number;\n displayHeight: number;\n screenshotFormat?: 'png' | 'jpeg';\n}\n\ninterface GenerationResult {\n reasoningText?: string;\n content?: Array<{ type: string; text?: string; error?: unknown }>;\n providerOptions?: SDKSharedV3ProviderMetadata;\n}\n\n// ---------------------------------------------------------------------------\n// Re-export provider\n// ---------------------------------------------------------------------------\n\nexport { anthropicProvider as anthropic };\n\n// ---------------------------------------------------------------------------\n// Model IDs\n// ---------------------------------------------------------------------------\n\n/** Single source of truth for Anthropic model IDs. */\nexport const ANTHROPIC_MODEL_IDS = {\n OPUS_4: 'claude-opus-4-20250514',\n SONNET_4: 'claude-sonnet-4-20250514',\n SONNET_37: 'claude-3-7-sonnet-20250219',\n SONNET_35: 'claude-3-5-sonnet-20241022',\n SONNET_35_OLD: 'claude-3-5-sonnet-20240620',\n HAIKU_35: 'claude-3-5-haiku-20241022',\n OPUS_3: 'claude-3-opus-20240229',\n SONNET_3: 'claude-3-sonnet-20240229',\n HAIKU_3: 'claude-3-haiku-20240307',\n} as const;\n\n/** Model groups for categorization. */\nexport const ANTHROPIC_MODEL_GROUPS = {\n REASONING_MODELS: [\n ANTHROPIC_MODEL_IDS.OPUS_4,\n ANTHROPIC_MODEL_IDS.SONNET_4,\n ANTHROPIC_MODEL_IDS.SONNET_37,\n ] as const,\n MULTIMODAL_MODELS: [\n ANTHROPIC_MODEL_IDS.OPUS_4,\n ANTHROPIC_MODEL_IDS.SONNET_4,\n ANTHROPIC_MODEL_IDS.SONNET_37,\n ANTHROPIC_MODEL_IDS.SONNET_35,\n ANTHROPIC_MODEL_IDS.SONNET_35_OLD,\n ANTHROPIC_MODEL_IDS.HAIKU_35,\n ANTHROPIC_MODEL_IDS.OPUS_3,\n ANTHROPIC_MODEL_IDS.SONNET_3,\n ANTHROPIC_MODEL_IDS.HAIKU_3,\n ] as const,\n PDF_CAPABLE_MODELS: [ANTHROPIC_MODEL_IDS.SONNET_35] as const,\n COMPUTER_USE_MODELS: [\n ANTHROPIC_MODEL_IDS.OPUS_4,\n ANTHROPIC_MODEL_IDS.SONNET_4,\n ANTHROPIC_MODEL_IDS.SONNET_37,\n ANTHROPIC_MODEL_IDS.SONNET_35,\n ] as const,\n WEB_SEARCH_MODELS: [\n ANTHROPIC_MODEL_IDS.OPUS_4,\n ANTHROPIC_MODEL_IDS.SONNET_4,\n ANTHROPIC_MODEL_IDS.SONNET_37,\n ANTHROPIC_MODEL_IDS.SONNET_35,\n ANTHROPIC_MODEL_IDS.SONNET_35_OLD,\n ANTHROPIC_MODEL_IDS.HAIKU_35,\n ] as const,\n CODE_EXECUTION_MODELS: [\n ANTHROPIC_MODEL_IDS.OPUS_4,\n ANTHROPIC_MODEL_IDS.SONNET_4,\n ANTHROPIC_MODEL_IDS.SONNET_37,\n ANTHROPIC_MODEL_IDS.SONNET_35,\n ANTHROPIC_MODEL_IDS.SONNET_35_OLD,\n ANTHROPIC_MODEL_IDS.HAIKU_35,\n ] as const,\n} as const;\n\n// ---------------------------------------------------------------------------\n// Model capabilities\n// ---------------------------------------------------------------------------\n\n/** Per-model capability mapping. */\nexport const ANTHROPIC_MODEL_CAPABILITIES = {\n [ANTHROPIC_MODEL_IDS.OPUS_4]: {\n imageInput: true,\n objectGeneration: true,\n toolUsage: true,\n computerUse: true,\n webSearch: true,\n codeExecution: true,\n pdfSupport: false,\n reasoningText: true,\n maxContextTokens: 200000,\n cacheMinTokens: 1024,\n specialFeatures: ['reasoning', 'computer-use', 'web-search', 'code-execution'],\n },\n [ANTHROPIC_MODEL_IDS.SONNET_4]: {\n imageInput: true,\n objectGeneration: true,\n toolUsage: true,\n computerUse: true,\n webSearch: true,\n codeExecution: true,\n pdfSupport: false,\n reasoningText: true,\n maxContextTokens: 200000,\n cacheMinTokens: 1024,\n specialFeatures: ['reasoning', 'computer-use', 'web-search', 'code-execution'],\n },\n [ANTHROPIC_MODEL_IDS.SONNET_37]: {\n imageInput: true,\n objectGeneration: true,\n toolUsage: true,\n computerUse: true,\n webSearch: true,\n codeExecution: true,\n pdfSupport: false,\n reasoningText: true,\n maxContextTokens: 200000,\n cacheMinTokens: 1024,\n specialFeatures: ['reasoning', 'computer-use', 'web-search', 'code-execution'],\n },\n [ANTHROPIC_MODEL_IDS.SONNET_35]: {\n imageInput: true,\n objectGeneration: true,\n toolUsage: true,\n computerUse: true,\n webSearch: true,\n codeExecution: true,\n pdfSupport: true,\n reasoningText: false,\n maxContextTokens: 200000,\n cacheMinTokens: 1024,\n specialFeatures: ['pdf-support', 'computer-use', 'web-search', 'code-execution'],\n },\n [ANTHROPIC_MODEL_IDS.SONNET_35_OLD]: {\n imageInput: true,\n objectGeneration: true,\n toolUsage: true,\n computerUse: false,\n webSearch: true,\n codeExecution: true,\n pdfSupport: false,\n reasoningText: false,\n maxContextTokens: 200000,\n cacheMinTokens: 1024,\n specialFeatures: ['web-search', 'code-execution'],\n },\n [ANTHROPIC_MODEL_IDS.HAIKU_35]: {\n imageInput: true,\n objectGeneration: true,\n toolUsage: true,\n computerUse: false,\n webSearch: true,\n codeExecution: true,\n pdfSupport: false,\n reasoningText: false,\n maxContextTokens: 200000,\n cacheMinTokens: 2048,\n specialFeatures: ['fast', 'web-search', 'code-execution'],\n },\n [ANTHROPIC_MODEL_IDS.OPUS_3]: {\n imageInput: true,\n objectGeneration: true,\n toolUsage: true,\n computerUse: false,\n webSearch: false,\n codeExecution: false,\n pdfSupport: false,\n reasoningText: false,\n maxContextTokens: 200000,\n cacheMinTokens: 1024,\n specialFeatures: ['legacy'],\n },\n [ANTHROPIC_MODEL_IDS.SONNET_3]: {\n imageInput: true,\n objectGeneration: true,\n toolUsage: true,\n computerUse: false,\n webSearch: false,\n codeExecution: false,\n pdfSupport: false,\n reasoningText: false,\n maxContextTokens: 200000,\n cacheMinTokens: 1024,\n specialFeatures: ['legacy'],\n },\n [ANTHROPIC_MODEL_IDS.HAIKU_3]: {\n imageInput: true,\n objectGeneration: true,\n toolUsage: true,\n computerUse: false,\n webSearch: false,\n codeExecution: false,\n pdfSupport: false,\n reasoningText: false,\n maxContextTokens: 200000,\n cacheMinTokens: 2048,\n specialFeatures: ['legacy', 'fast'],\n },\n} as const;\n\n// ---------------------------------------------------------------------------\n// Presets\n// ---------------------------------------------------------------------------\n\n/** Configuration presets for common use cases. */\nexport const ANTHROPIC_PRESETS = {\n REASONING: {\n temperature: TEMPS.PRECISE,\n maxOutputTokens: TOKENS.LONG,\n topP: TOP_P.FOCUSED,\n anthropic: { sendReasoning: true },\n },\n CREATIVE: {\n temperature: TEMPS.CREATIVE,\n maxOutputTokens: TOKENS.MEDIUM,\n topP: TOP_P.BALANCED,\n },\n CODING: {\n temperature: TEMPS.BALANCED,\n maxOutputTokens: TOKENS.EXTENDED,\n topP: TOP_P.DETERMINISTIC,\n },\n ANALYSIS: {\n temperature: TEMPS.VERY_LOW,\n maxOutputTokens: TOKENS.LONG,\n topP: TOP_P.FOCUSED,\n },\n VISION: {\n temperature: TEMPS.BALANCED,\n maxOutputTokens: TOKENS.MEDIUM,\n topP: TOP_P.BALANCED,\n },\n QUICK: {\n temperature: TEMPS.VERY_LOW,\n maxOutputTokens: TOKENS.SHORT,\n topP: TOP_P.DETERMINISTIC,\n },\n} as const;\n\n/** Anthropic tool name constants. */\nexport const ANTHROPIC_TOOL_NAMES = {\n WEB_SEARCH: 'web_search',\n CODE_EXECUTION: 'code_execution',\n COMPUTER: 'computer',\n BASH: 'bash',\n TEXT_EDITOR: 'str_replace_editor',\n TEXT_EDITOR_V2: 'str_replace_based_edit_tool',\n} as const;\n\n// ---------------------------------------------------------------------------\n// Tool helpers\n// ---------------------------------------------------------------------------\n\n/** Anthropic-specific tool helpers wrapping SDK native tools. */\nexport const anthropicTools = {\n webSearch: (options?: {\n maxUses?: number;\n allowedDomains?: string[];\n blockedDomains?: string[];\n userLocation?: {\n type: 'approximate';\n country?: string;\n region?: string;\n city?: string;\n timezone?: string;\n };\n }) => anthropicProvider.tools.webSearch_20250305(options ?? { maxUses: 5 }),\n\n codeExecution: () => anthropicProvider.tools.codeExecution_20250522(),\n\n computer: (config: ComputerToolConfig) =>\n anthropicProvider.tools.computer_20241022({\n displayWidthPx: config.displayWidth ?? 1920,\n displayHeightPx: config.displayHeight ?? 1080,\n }),\n\n bash: () => anthropicProvider.tools.bash_20241022({}),\n textEditor: () => anthropicProvider.tools.textEditor_20241022({}),\n textEditorV2: () => anthropicProvider.tools.textEditor_20250429({}),\n};\n\n// ---------------------------------------------------------------------------\n// Option helpers (provider-agnostic spread objects)\n// ---------------------------------------------------------------------------\n\n/** Enable reasoning/thinking mode for Claude 4 and 3.7 models. */\nexport function withReasoning(budgetTokens: number = 12000) {\n return {\n providerOptions: {\n anthropic: {\n thinking: { type: 'enabled' as const, budgetTokens },\n },\n },\n };\n}\n\n/** Configure cache control for prompt caching. */\nexport function withCacheControl(ttl?: '5m' | '1h') {\n return {\n providerOptions: {\n anthropic: {\n cacheControl: {\n type: 'ephemeral' as const,\n ...(ttl && { ttl }),\n },\n },\n },\n };\n}\n\n/** Control whether reasoning content is sent in requests. */\nexport function withSendReasoning(send: boolean = true) {\n return {\n providerOptions: {\n anthropic: { sendReasoning: send },\n },\n };\n}\n\n/** Extended cache with 1-hour TTL (requires beta header). */\nexport function withExtendedCache() {\n return {\n headers: { 'anthropic-beta': 'extended-cache-ttl-2025-04-11' },\n providerOptions: {\n anthropic: {\n cacheControl: { type: 'ephemeral' as const, ttl: '1h' },\n },\n },\n };\n}\n\n// ---------------------------------------------------------------------------\n// Capability detection\n// ---------------------------------------------------------------------------\n\nfunction getModelCapabilities(modelId: string): AnthropicModelCapabilities | undefined {\n return ANTHROPIC_MODEL_CAPABILITIES[modelId as keyof typeof ANTHROPIC_MODEL_CAPABILITIES];\n}\n\n/** Check if model supports reasoning/thinking. */\nexport function supportsReasoning(modelId: string): boolean {\n return getModelCapabilities(modelId)?.reasoningText ?? false;\n}\n\n/** Check if model supports PDF input. */\nexport function supportsPDF(modelId: string): boolean {\n return getModelCapabilities(modelId)?.pdfSupport ?? false;\n}\n\n/** Check if model supports computer use. */\nexport function supportsComputerUse(modelId: string): boolean {\n return getModelCapabilities(modelId)?.computerUse ?? false;\n}\n\n/** Check if model supports web search. */\nexport function supportsWebSearch(modelId: string): boolean {\n return getModelCapabilities(modelId)?.webSearch ?? false;\n}\n\n/** Check if model supports code execution. */\nexport function supportsCodeExecution(modelId: string): boolean {\n return getModelCapabilities(modelId)?.codeExecution ?? false;\n}\n\n/** Get minimum cacheable tokens for a model. */\nexport function getCacheMinTokens(modelId: string): number {\n return getModelCapabilities(modelId)?.cacheMinTokens ?? 1024;\n}\n\n/** Get maximum context tokens for a model. */\nexport function getMaxContextTokens(modelId: string): number {\n return getModelCapabilities(modelId)?.maxContextTokens ?? 200000;\n}\n\n/** Check if model is a reasoning model. */\nexport function isReasoningModel(modelId: string): boolean {\n return ANTHROPIC_MODEL_GROUPS.REASONING_MODELS.includes(\n modelId as (typeof ANTHROPIC_MODEL_GROUPS.REASONING_MODELS)[number],\n );\n}\n\n/** Check if model is multimodal (supports images). */\nexport function isMultimodalModel(modelId: string): boolean {\n return ANTHROPIC_MODEL_GROUPS.MULTIMODAL_MODELS.includes(\n modelId as (typeof ANTHROPIC_MODEL_GROUPS.MULTIMODAL_MODELS)[number],\n );\n}\n\n// ---------------------------------------------------------------------------\n// Metadata extraction\n// ---------------------------------------------------------------------------\n\n/** Extract reasoning details from a generation result. */\nexport function extractReasoningDetails(result: GenerationResult): ReasoningDetails | null {\n const anthropicMeta = result.providerOptions?.anthropic;\n if (!anthropicMeta || typeof anthropicMeta !== 'object' || Array.isArray(anthropicMeta))\n return null;\n\n const reasoningDetails = anthropicMeta.reasoningText;\n if (!reasoningDetails || typeof reasoningDetails !== 'object' || Array.isArray(reasoningDetails))\n return null;\n\n const { reasoningContent } = reasoningDetails;\n return {\n reasoningText: typeof reasoningContent === 'string' ? reasoningContent : '',\n reasoningDetails,\n };\n}\n\n/** Extract cache metadata from a generation result. */\nexport function extractCacheMetadata(result: GenerationResult): CacheMetadata | null {\n const anthropicMeta = result.providerOptions?.anthropic;\n if (!anthropicMeta || typeof anthropicMeta !== 'object' || Array.isArray(anthropicMeta))\n return null;\n\n const { cacheCreationInputTokens, cacheReadInputTokens } = anthropicMeta;\n return {\n cacheCreationInputTokens:\n typeof cacheCreationInputTokens === 'number' ? cacheCreationInputTokens : 0,\n cacheReadInputTokens: typeof cacheReadInputTokens === 'number' ? cacheReadInputTokens : 0,\n };\n}\n\n/** Extract complete Anthropic provider metadata. */\nexport function extractProviderMetadata(result: GenerationResult): AnthropicMetadata | null {\n const anthropicMeta = result.providerOptions?.anthropic;\n if (!anthropicMeta || typeof anthropicMeta !== 'object' || Array.isArray(anthropicMeta))\n return null;\n\n const meta = anthropicMeta;\n const reasoningDetails = meta.reasoningText;\n const { cacheCreationInputTokens, cacheReadInputTokens } = meta;\n\n return {\n cacheCreationInputTokens:\n typeof cacheCreationInputTokens === 'number' ? cacheCreationInputTokens : 0,\n cacheReadInputTokens: typeof cacheReadInputTokens === 'number' ? cacheReadInputTokens : 0,\n reasoningText: result.reasoningText,\n reasoningDetails:\n reasoningDetails && typeof reasoningDetails === 'object' && !Array.isArray(reasoningDetails)\n ? reasoningDetails\n : undefined,\n };\n}\n\n/** Extract tool errors from generation results. */\nexport function extractToolErrors(result: GenerationResult): ToolError[] {\n const errors: ToolError[] = [];\n if (result.content && Array.isArray(result.content)) {\n result.content.forEach(\n (part: { type: string; toolName?: string; toolCallId?: string; error?: unknown }) => {\n if (part.type === 'tool-error') {\n errors.push({\n toolName: part.toolName ?? 'unknown',\n toolCallId: part.toolCallId ?? '',\n error: part.error,\n });\n }\n },\n );\n }\n return errors;\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Anthropic model capabilities. */\nexport interface AnthropicModelCapabilities {\n readonly imageInput: boolean;\n readonly objectGeneration: boolean;\n readonly toolUsage: boolean;\n readonly computerUse: boolean;\n readonly webSearch: boolean;\n readonly codeExecution: boolean;\n readonly pdfSupport: boolean;\n readonly reasoningText: boolean;\n readonly maxContextTokens: number;\n readonly cacheMinTokens: number;\n readonly specialFeatures: readonly string[];\n}\n\n/** Reasoning details from a generation result. */\nexport interface ReasoningDetails {\n reasoningText: string;\n reasoningDetails?: {\n reasoningContent?: string;\n reasoningTokenCount?: number;\n };\n}\n\n/** Cache metadata from a generation result. */\nexport interface CacheMetadata {\n cacheCreationInputTokens: number;\n cacheReadInputTokens: number;\n}\n\n/** Complete Anthropic metadata. */\nexport interface AnthropicMetadata {\n cacheCreationInputTokens: number;\n cacheReadInputTokens: number;\n reasoningText?: string;\n reasoningDetails?: {\n reasoningContent?: string;\n reasoningTokenCount?: number;\n };\n}\n\n/** Tool error from generation results. */\nexport interface ToolError {\n toolName: string;\n toolCallId: string;\n error: unknown;\n}\n","/**\n * @fileoverview OpenAI provider configuration\n *\n * Provider-specific model IDs, option helpers, capability detection,\n * and metadata extraction for OpenAI models.\n *\n * All AI SDK imports come from the shared module.\n *\n * @module @od-oneapp/ai-platform/models/providers/openai\n */\n\nimport { openai as openaiProvider, createOpenAI } from '../../shared';\n\nimport { commonModes } from './shared';\n\nimport type { SDKSharedV3ProviderMetadata } from '../../shared';\n\n// ---------------------------------------------------------------------------\n// Internal types\n// ---------------------------------------------------------------------------\n\ninterface GenerationResult {\n providerOptions?: SDKSharedV3ProviderMetadata;\n}\n\n// ---------------------------------------------------------------------------\n// Re-export provider\n// ---------------------------------------------------------------------------\n\nexport { openaiProvider as openai, createOpenAI };\n\n// ---------------------------------------------------------------------------\n// Model IDs\n// ---------------------------------------------------------------------------\n\n/** Single source of truth for OpenAI model IDs. */\nexport const OPENAI_MODEL_IDS = {\n // GPT-5\n GPT_5: 'gpt-5',\n GPT_5_MINI: 'gpt-5-mini',\n GPT_5_NANO: 'gpt-5-nano',\n GPT_5_CHAT_LATEST: 'gpt-5-chat-latest',\n // GPT-4.1\n GPT_41: 'gpt-4.1',\n GPT_41_MINI: 'gpt-4.1-mini',\n GPT_41_NANO: 'gpt-4.1-nano',\n // GPT-4\n GPT_4O: 'gpt-4o',\n GPT_4O_LATEST: 'chatgpt-4o-latest',\n GPT_4O_MINI: 'gpt-4o-mini',\n GPT_4O_AUDIO: 'gpt-4o-audio-preview',\n GPT_4O_REALTIME: 'gpt-4o-realtime-preview',\n GPT_4_TURBO: 'gpt-4-turbo',\n GPT_4: 'gpt-4',\n GPT_4_32K: 'gpt-4-32k',\n // GPT-3.5\n GPT_35_TURBO: 'gpt-3.5-turbo',\n GPT_35_TURBO_INSTRUCT: 'gpt-3.5-turbo-instruct',\n // O1 reasoning\n O1: 'o1',\n O1_MINI: 'o1-mini',\n O1_PREVIEW: 'o1-preview',\n // O3\n O3: 'o3',\n O3_MINI: 'o3-mini',\n // O4\n O4_MINI: 'o4-mini',\n // Specialized\n CODEX_MINI_LATEST: 'codex-mini-latest',\n COMPUTER_USE_PREVIEW: 'computer-use-preview',\n // Audio\n WHISPER_1: 'whisper-1',\n GPT_4O_MINI_TRANSCRIBE: 'gpt-4o-mini-transcribe',\n GPT_4O_TRANSCRIBE: 'gpt-4o-transcribe',\n TTS_1: 'tts-1',\n TTS_1_HD: 'tts-1-hd',\n GPT_4O_MINI_TTS: 'gpt-4o-mini-tts',\n // Image\n GPT_IMAGE_1: 'gpt-image-1',\n DALL_E_3: 'dall-e-3',\n DALL_E_2: 'dall-e-2',\n // Embedding\n EMBEDDING_3_SMALL: 'text-embedding-3-small',\n EMBEDDING_3_LARGE: 'text-embedding-3-large',\n EMBEDDING_ADA_002: 'text-embedding-ada-002',\n // Moderation\n MODERATION_LATEST: 'text-moderation-latest',\n MODERATION_STABLE: 'text-moderation-stable',\n} as const;\n\n/** Model groups for categorization. */\nconst OPENAI_MODEL_GROUPS = {\n REASONING_MODELS: [\n OPENAI_MODEL_IDS.O1,\n OPENAI_MODEL_IDS.O1_MINI,\n OPENAI_MODEL_IDS.O1_PREVIEW,\n OPENAI_MODEL_IDS.O3,\n OPENAI_MODEL_IDS.O3_MINI,\n OPENAI_MODEL_IDS.O4_MINI,\n OPENAI_MODEL_IDS.CODEX_MINI_LATEST,\n OPENAI_MODEL_IDS.COMPUTER_USE_PREVIEW,\n ] as const,\n GPT5_FAMILY: [\n OPENAI_MODEL_IDS.GPT_5,\n OPENAI_MODEL_IDS.GPT_5_MINI,\n OPENAI_MODEL_IDS.GPT_5_NANO,\n OPENAI_MODEL_IDS.GPT_5_CHAT_LATEST,\n ] as const,\n CHAT_MODELS: [\n OPENAI_MODEL_IDS.GPT_5,\n OPENAI_MODEL_IDS.GPT_5_MINI,\n OPENAI_MODEL_IDS.GPT_5_NANO,\n OPENAI_MODEL_IDS.GPT_5_CHAT_LATEST,\n OPENAI_MODEL_IDS.GPT_4O,\n OPENAI_MODEL_IDS.GPT_4O_MINI,\n OPENAI_MODEL_IDS.GPT_4_TURBO,\n OPENAI_MODEL_IDS.GPT_41,\n OPENAI_MODEL_IDS.GPT_41_MINI,\n OPENAI_MODEL_IDS.GPT_4,\n OPENAI_MODEL_IDS.GPT_4_32K,\n OPENAI_MODEL_IDS.GPT_35_TURBO,\n ] as const,\n VISION_MODELS: [\n OPENAI_MODEL_IDS.GPT_4O,\n OPENAI_MODEL_IDS.GPT_4O_MINI,\n OPENAI_MODEL_IDS.GPT_4_TURBO,\n OPENAI_MODEL_IDS.GPT_41,\n OPENAI_MODEL_IDS.GPT_41_MINI,\n OPENAI_MODEL_IDS.GPT_5,\n OPENAI_MODEL_IDS.GPT_5_MINI,\n ] as const,\n LEGACY_MODELS: [\n OPENAI_MODEL_IDS.GPT_4,\n OPENAI_MODEL_IDS.GPT_4_32K,\n OPENAI_MODEL_IDS.GPT_35_TURBO,\n OPENAI_MODEL_IDS.GPT_35_TURBO_INSTRUCT,\n ] as const,\n} as const;\n\nexport { OPENAI_MODEL_GROUPS };\n\n// ---------------------------------------------------------------------------\n// Option helpers (provider-agnostic spread objects)\n// ---------------------------------------------------------------------------\n\n/** Structured output mode with optional strict JSON schema. */\nexport function withStructuredOutput(\n responseFormat: 'json_object' | 'json_schema' = 'json_object',\n strictJsonSchema: boolean = false,\n) {\n return {\n openai: { responseFormat: { type: responseFormat }, strictJsonSchema },\n };\n}\n\n/** Reasoning mode for O1/O3/O4 series models. */\nexport function withReasoningMode(\n maxCompletionTokens: number = 25000,\n reasoningEffort: 'minimal' | 'low' | 'medium' | 'high' = 'medium',\n) {\n return {\n providerOptions: {\n openai: { maxCompletionTokens, reasoningEffort },\n },\n };\n}\n\n/** Predicted output for latency optimization. */\nexport function withPredictedOutput(prediction: string) {\n return {\n openai: {\n prediction: { type: 'content', content: prediction },\n },\n };\n}\n\n/** Prompt caching control. */\nexport function withPromptCache(cacheEnabled: boolean = true, promptCacheKey?: string) {\n const options: Record<string, unknown> = { store: cacheEnabled };\n if (promptCacheKey) {\n options.promptCacheKey = promptCacheKey;\n }\n return { openai: options };\n}\n\n/** Service tier for latency/cost tradeoffs. */\nexport function withServiceTier(tier: 'auto' | 'flex' | 'priority' | 'default' = 'auto') {\n return { openai: { serviceTier: tier } };\n}\n\n/** Strict mode for structured output validation. */\nexport function withStrictMode(enabled: boolean = true) {\n return { openai: { strict: enabled } };\n}\n\n// ---------------------------------------------------------------------------\n// Presets\n// ---------------------------------------------------------------------------\n\n/** Configuration presets for OpenAI-specific use cases. */\nexport const OPENAI_PRESETS = {\n FAST: {\n ...commonModes.quick(),\n openai: { serviceTier: 'flex' },\n },\n ACCURATE: {\n ...commonModes.precise(),\n openai: { serviceTier: 'priority' },\n },\n CREATIVE: {\n ...commonModes.creative(),\n frequencyPenalty: 0.5,\n presencePenalty: 0.5,\n },\n REASONING: {\n ...commonModes.research(),\n maxOutputTokens: 30000,\n openai: { reasoningEffort: 'high', reasoningSummary: 'auto' },\n },\n CODING: {\n ...commonModes.code(),\n maxOutputTokens: 8192,\n openai: {\n responseFormat: { type: 'json_object' },\n logprobs: true,\n topLogprobs: 3,\n },\n },\n} as const;\n\n// ---------------------------------------------------------------------------\n// Capability detection\n// ---------------------------------------------------------------------------\n\n/** Check if model supports reasoning mode. */\nexport function supportsReasoningMode(modelId: string): boolean {\n return OPENAI_MODEL_GROUPS.REASONING_MODELS.includes(\n modelId as (typeof OPENAI_MODEL_GROUPS.REASONING_MODELS)[number],\n );\n}\n\n/** Check if model supports service tier selection. */\nexport function supportsServiceTier(modelId: string): boolean {\n const isReasoning = OPENAI_MODEL_GROUPS.REASONING_MODELS.includes(\n modelId as (typeof OPENAI_MODEL_GROUPS.REASONING_MODELS)[number],\n );\n const supported =\n OPENAI_MODEL_GROUPS.CHAT_MODELS.includes(\n modelId as (typeof OPENAI_MODEL_GROUPS.CHAT_MODELS)[number],\n ) ||\n OPENAI_MODEL_GROUPS.VISION_MODELS.includes(\n modelId as (typeof OPENAI_MODEL_GROUPS.VISION_MODELS)[number],\n );\n return !isReasoning && supported;\n}\n\n/** Check if model supports structured outputs. */\nexport function supportsStructuredOutputs(modelId: string): boolean {\n return (\n OPENAI_MODEL_GROUPS.CHAT_MODELS.includes(\n modelId as (typeof OPENAI_MODEL_GROUPS.CHAT_MODELS)[number],\n ) ||\n OPENAI_MODEL_GROUPS.VISION_MODELS.includes(\n modelId as (typeof OPENAI_MODEL_GROUPS.VISION_MODELS)[number],\n )\n );\n}\n\n/** Check if model supports prompt caching. */\nexport function supportsPromptCaching(modelId: string): boolean {\n return !OPENAI_MODEL_GROUPS.LEGACY_MODELS.includes(\n modelId as (typeof OPENAI_MODEL_GROUPS.LEGACY_MODELS)[number],\n );\n}\n\n// ---------------------------------------------------------------------------\n// Metadata extraction\n// ---------------------------------------------------------------------------\n\n/** Extract reasoning tokens from OpenAI reasoning models. */\nexport function extractReasoningTokens(result: GenerationResult): number | undefined {\n const tokens = result.providerOptions?.openai?.reasoningTokens;\n return typeof tokens === 'number' ? tokens : undefined;\n}\n\n/** Extract cached prompt tokens from OpenAI responses. */\nexport function extractCachedPromptTokens(result: GenerationResult): number | undefined {\n const tokens = result.providerOptions?.openai?.cachedPromptTokens;\n return typeof tokens === 'number' ? tokens : undefined;\n}\n\n/** Extract prediction tokens from OpenAI predicted outputs. */\nexport function extractPredictionTokens(\n result: GenerationResult,\n): { accepted?: number; rejected?: number } | undefined {\n const metadata = result.providerOptions?.openai;\n if (!metadata) return undefined;\n const accepted = metadata.acceptedPredictionTokens;\n const rejected = metadata.rejectedPredictionTokens;\n return {\n accepted: typeof accepted === 'number' ? accepted : undefined,\n rejected: typeof rejected === 'number' ? rejected : undefined,\n };\n}\n\n/** Extract complete OpenAI provider metadata. */\nexport function extractOpenAIMetadata(result: GenerationResult): OpenAIMetadata | null {\n const openaiMeta = result.providerOptions?.openai;\n if (!openaiMeta || typeof openaiMeta !== 'object' || Array.isArray(openaiMeta)) return null;\n\n const meta = openaiMeta;\n return {\n responseId: typeof meta.responseId === 'string' ? meta.responseId : undefined,\n reasoningTokens: typeof meta.reasoningTokens === 'number' ? meta.reasoningTokens : undefined,\n cachedPromptTokens:\n typeof meta.cachedPromptTokens === 'number' ? meta.cachedPromptTokens : undefined,\n acceptedPredictionTokens:\n typeof meta.acceptedPredictionTokens === 'number' ? meta.acceptedPredictionTokens : undefined,\n rejectedPredictionTokens:\n typeof meta.rejectedPredictionTokens === 'number' ? meta.rejectedPredictionTokens : undefined,\n logprobs: meta.logprobs as OpenAIMetadata['logprobs'],\n };\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** OpenAI-specific metadata from generation results. */\nexport interface OpenAIMetadata {\n responseId?: string;\n reasoningTokens?: number;\n cachedPromptTokens?: number;\n acceptedPredictionTokens?: number;\n rejectedPredictionTokens?: number;\n logprobs?: Array<{\n token: string;\n logprob: number;\n bytes?: number[];\n top_logprobs?: Array<{\n token: string;\n logprob: number;\n bytes?: number[];\n }>;\n }>;\n}\n","/**\n * @fileoverview Perplexity provider configuration\n *\n * Provider-specific model IDs, option helpers, capability detection,\n * and metadata extraction for Perplexity models.\n *\n * Note: @ai-sdk/perplexity is not a direct dependency. Perplexity is accessed\n * via createOpenAICompatible from the shared module. This file provides\n * provider-specific configurations, model IDs, and metadata extraction.\n *\n * @module @od-oneapp/ai-platform/models/providers/perplexity\n */\n\nimport { commonModes } from './shared';\n\nimport type { SDKSharedV3ProviderMetadata } from '../../shared';\n\n// ---------------------------------------------------------------------------\n// Internal types\n// ---------------------------------------------------------------------------\n\ninterface GenerationResult {\n providerOptions?: SDKSharedV3ProviderMetadata;\n sources?: PerplexitySource[];\n}\n\n// ---------------------------------------------------------------------------\n// Model IDs\n// ---------------------------------------------------------------------------\n\n/** Single source of truth for Perplexity model IDs. */\nexport const PERPLEXITY_MODEL_IDS = {\n SONAR_PRO: 'sonar-pro',\n SONAR: 'sonar',\n SONAR_REASONING_PRO: 'sonar-reasoning-pro',\n SONAR_REASONING: 'sonar-reasoning',\n SONAR_DEEP_RESEARCH: 'sonar-deep-research',\n} as const;\n\n/** Model groups for categorization. */\nexport const PERPLEXITY_MODEL_GROUPS = {\n RESEARCH_MODELS: [\n PERPLEXITY_MODEL_IDS.SONAR_DEEP_RESEARCH,\n PERPLEXITY_MODEL_IDS.SONAR_PRO,\n PERPLEXITY_MODEL_IDS.SONAR,\n ] as const,\n REASONING_MODELS: [\n PERPLEXITY_MODEL_IDS.SONAR_REASONING_PRO,\n PERPLEXITY_MODEL_IDS.SONAR_REASONING,\n ] as const,\n MULTIMODAL_MODELS: [\n PERPLEXITY_MODEL_IDS.SONAR_REASONING_PRO,\n PERPLEXITY_MODEL_IDS.SONAR_REASONING,\n PERPLEXITY_MODEL_IDS.SONAR_PRO,\n PERPLEXITY_MODEL_IDS.SONAR,\n ] as const,\n} as const;\n\n// ---------------------------------------------------------------------------\n// Model capabilities (Perplexity-unique features only)\n// ---------------------------------------------------------------------------\n\nconst PERPLEXITY_MODEL_CAPABILITIES: Record<string, PerplexityModelCapabilities> = {\n [PERPLEXITY_MODEL_IDS.SONAR_DEEP_RESEARCH]: {\n webSearch: true,\n citations: true,\n tierRequirement: 'basic',\n imageResponses: false,\n },\n [PERPLEXITY_MODEL_IDS.SONAR_REASONING_PRO]: {\n webSearch: true,\n citations: true,\n tierRequirement: 'basic',\n imageResponses: true,\n },\n [PERPLEXITY_MODEL_IDS.SONAR_REASONING]: {\n webSearch: true,\n citations: true,\n tierRequirement: 'basic',\n imageResponses: true,\n },\n [PERPLEXITY_MODEL_IDS.SONAR_PRO]: {\n webSearch: true,\n citations: true,\n tierRequirement: 'basic',\n imageResponses: true,\n },\n [PERPLEXITY_MODEL_IDS.SONAR]: {\n webSearch: true,\n citations: true,\n tierRequirement: 'basic',\n imageResponses: true,\n },\n};\n\n// ---------------------------------------------------------------------------\n// Option helpers\n// ---------------------------------------------------------------------------\n\n/** Enable image responses (Tier-2+ only). */\nexport function withImages() {\n return {\n providerOptions: {\n perplexity: { return_images: true },\n },\n };\n}\n\n/** Research mode combining shared research settings with Perplexity image capability. */\nexport function withResearchMode(returnImages: boolean = false) {\n return {\n ...commonModes.research(),\n providerOptions: {\n perplexity: { return_images: returnImages },\n },\n };\n}\n\n// ---------------------------------------------------------------------------\n// Capability detection\n// ---------------------------------------------------------------------------\n\nfunction getModelCapabilities(modelId: string): PerplexityModelCapabilities | undefined {\n return PERPLEXITY_MODEL_CAPABILITIES[modelId];\n}\n\n/** Check if model supports image responses (Tier-2+ feature). */\nexport function supportsImageResponses(modelId: string): boolean {\n return getModelCapabilities(modelId)?.imageResponses ?? false;\n}\n\n/** Check if model supports web search. */\nexport function supportsWebSearch(modelId: string): boolean {\n return getModelCapabilities(modelId)?.webSearch ?? false;\n}\n\n/** Check if model supports citations. */\nexport function supportsCitations(modelId: string): boolean {\n return getModelCapabilities(modelId)?.citations ?? false;\n}\n\n/** Check if model has reasoning capabilities. */\nexport function isReasoningModel(modelId: string): boolean {\n return PERPLEXITY_MODEL_GROUPS.REASONING_MODELS.includes(\n modelId as (typeof PERPLEXITY_MODEL_GROUPS.REASONING_MODELS)[number],\n );\n}\n\n/** Check if model is optimized for research. */\nexport function isResearchModel(modelId: string): boolean {\n return PERPLEXITY_MODEL_GROUPS.RESEARCH_MODELS.includes(\n modelId as (typeof PERPLEXITY_MODEL_GROUPS.RESEARCH_MODELS)[number],\n );\n}\n\n// ---------------------------------------------------------------------------\n// Metadata extraction\n// ---------------------------------------------------------------------------\n\n/** Extract sources from Perplexity responses. */\nexport function extractSources(result: GenerationResult): PerplexitySource[] {\n if (Array.isArray(result.sources)) return result.sources;\n\n const perplexityMetadata = result.providerOptions?.perplexity;\n if (!perplexityMetadata || typeof perplexityMetadata !== 'object') return [];\n\n const { sources } = perplexityMetadata;\n if (!Array.isArray(sources)) return [];\n return sources as unknown as PerplexitySource[];\n}\n\n/** Extract image responses from Perplexity. */\nexport function extractImages(result: GenerationResult): PerplexityImage[] {\n const perplexityMetadata = result.providerOptions?.perplexity;\n if (!perplexityMetadata || typeof perplexityMetadata !== 'object') return [];\n\n const { images } = perplexityMetadata;\n if (!Array.isArray(images)) return [];\n return images as unknown as PerplexityImage[];\n}\n\n/** Extract usage metadata from Perplexity. */\nexport function extractUsageMetadata(result: GenerationResult): PerplexityUsageMetadata | null {\n const perplexityMetadata = result.providerOptions?.perplexity;\n if (\n !perplexityMetadata ||\n typeof perplexityMetadata !== 'object' ||\n Array.isArray(perplexityMetadata)\n )\n return null;\n\n const meta = perplexityMetadata;\n const { usage } = meta;\n if (!usage || typeof usage !== 'object' || Array.isArray(usage)) return null;\n\n const usageData = usage;\n return {\n citationTokens: typeof usageData.citationTokens === 'number' ? usageData.citationTokens : 0,\n numSearchQueries:\n typeof usageData.numSearchQueries === 'number' ? usageData.numSearchQueries : 0,\n };\n}\n\n/** Extract complete Perplexity provider metadata. */\nexport function extractProviderMetadata(result: GenerationResult): PerplexityMetadata | null {\n const perplexityMetadata = result.providerOptions?.perplexity;\n if (!perplexityMetadata || typeof perplexityMetadata !== 'object') return null;\n\n const meta = perplexityMetadata;\n const { usage, images } = meta;\n const sourcesFromMetadata = meta.sources;\n const sourcesFromResult = Array.isArray(result.sources) ? result.sources : undefined;\n\n return {\n usage:\n usage && typeof usage === 'object' && !Array.isArray(usage)\n ? ({\n citationTokens:\n typeof (usage as Record<string, unknown>).citationTokens === 'number'\n ? ((usage as Record<string, number>).citationTokens as number)\n : 0,\n numSearchQueries:\n typeof (usage as Record<string, unknown>).numSearchQueries === 'number'\n ? ((usage as Record<string, number>).numSearchQueries as number)\n : 0,\n } satisfies PerplexityUsageMetadata)\n : undefined,\n images: Array.isArray(images) ? (images as unknown as PerplexityImage[]) : [],\n sources:\n sourcesFromResult && sourcesFromResult.length > 0\n ? sourcesFromResult\n : Array.isArray(sourcesFromMetadata)\n ? (sourcesFromMetadata as unknown as PerplexitySource[])\n : [],\n };\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Source from Perplexity citations. */\nexport interface PerplexitySource {\n url: string;\n title?: string;\n snippet?: string;\n}\n\n/** Image from Perplexity responses. */\nexport interface PerplexityImage {\n imageUrl: string;\n originUrl: string;\n height?: number;\n width?: number;\n}\n\n/** Perplexity usage metadata. */\nexport interface PerplexityUsageMetadata {\n citationTokens: number;\n numSearchQueries: number;\n}\n\n/** Complete Perplexity metadata. */\nexport interface PerplexityMetadata {\n usage?: PerplexityUsageMetadata;\n images?: PerplexityImage[];\n sources?: PerplexitySource[];\n}\n\n/** Perplexity-unique model capabilities. */\ninterface PerplexityModelCapabilities {\n webSearch: boolean;\n citations: boolean;\n imageResponses: boolean;\n tierRequirement: 'basic' | 'tier-2' | 'tier-3';\n}\n","/**\n * @fileoverview Cross-provider model capability detection\n *\n * Provides unified capability checks that work across all providers\n * by combining the high-level MODEL_METADATA registry with\n * provider-specific capability data.\n *\n * @module @od-oneapp/ai-platform/models/capabilities\n */\n\nimport { ANTHROPIC_MODEL_GROUPS } from './providers/anthropic';\nimport { OPENAI_MODEL_GROUPS } from './providers/openai';\nimport { PERPLEXITY_MODEL_GROUPS } from './providers/perplexity';\nimport { MODEL_METADATA, Model } from './registry';\n\n// Collect all known reasoning model IDs from provider configs\nconst REASONING_MODEL_IDS = new Set<string>([\n // Anthropic reasoning models\n ...ANTHROPIC_MODEL_GROUPS.REASONING_MODELS,\n // OpenAI reasoning models\n ...OPENAI_MODEL_GROUPS.REASONING_MODELS,\n // Perplexity reasoning models\n ...PERPLEXITY_MODEL_GROUPS.REASONING_MODELS,\n]);\n\n// Also include any models with tier === 'reasoning' from the registry\nfor (const model of Object.values(Model)) {\n const meta = MODEL_METADATA[model as Model];\n if (meta?.tier === 'reasoning') {\n REASONING_MODEL_IDS.add(meta.id);\n }\n}\n\n/**\n * Check if a model supports reasoning/thinking capabilities.\n *\n * Checks both the registry (tier === 'reasoning') and provider-specific\n * reasoning model lists (Anthropic extended thinking, OpenAI o-series, etc.).\n *\n * @param modelId - Provider-specific model ID string (e.g. 'claude-opus-4-20250514', 'o1')\n * @returns true if the model has reasoning/thinking capabilities\n *\n * @example\n * ```ts\n * import { modelSupportsReasoning } from '@od-oneapp/ai-platform/models';\n *\n * if (modelSupportsReasoning('claude-opus-4-20250514')) {\n * // Enable extended thinking budget\n * }\n * ```\n */\nexport function modelSupportsReasoning(modelId: string): boolean {\n return REASONING_MODEL_IDS.has(modelId);\n}\n\n/**\n * Check if a model supports tool usage.\n *\n * @param modelId - Provider-specific model ID string\n * @returns true if the model supports tools\n */\nexport function modelSupportsTools(modelId: string): boolean {\n for (const model of Object.values(Model)) {\n const meta = MODEL_METADATA[model as Model];\n if (meta?.id === modelId) {\n return meta.supportsTools;\n }\n }\n // Unknown model - assume tools supported for modern models\n return true;\n}\n\n/**\n * Check if a model supports streaming.\n *\n * @param modelId - Provider-specific model ID string\n * @returns true if the model supports streaming\n */\nexport function modelSupportsStreaming(modelId: string): boolean {\n for (const model of Object.values(Model)) {\n const meta = MODEL_METADATA[model as Model];\n if (meta?.id === modelId) {\n return meta.supportsStreaming;\n }\n }\n // Unknown model - assume streaming supported for modern models\n return true;\n}\n","/**\n * @fileoverview Google Generative AI provider configuration\n *\n * Provider-specific model IDs, option helpers, capability detection,\n * and metadata extraction for Google Gemini models.\n *\n * All AI SDK imports come from the shared module.\n *\n * @module @od-oneapp/ai-platform/models/providers/google\n */\n\nimport { google as googleProvider, createGoogleGenerativeAI } from '../../shared';\n\nimport { commonModes } from './shared';\n\n// ---------------------------------------------------------------------------\n// Re-export provider\n// ---------------------------------------------------------------------------\n\nexport { googleProvider as google, createGoogleGenerativeAI };\n\n// ---------------------------------------------------------------------------\n// Native Google tools\n// ---------------------------------------------------------------------------\n\n/** Native Google tools re-exported from AI SDK. */\nexport const googleTools: {\n readonly googleSearch: (typeof googleProvider.tools)['googleSearch'];\n readonly urlContext: (typeof googleProvider.tools)['urlContext'];\n readonly codeExecution: (typeof googleProvider.tools)['codeExecution'];\n} = {\n googleSearch: googleProvider.tools.googleSearch,\n urlContext: googleProvider.tools.urlContext,\n codeExecution: googleProvider.tools.codeExecution,\n};\n\n// ---------------------------------------------------------------------------\n// Model IDs\n// ---------------------------------------------------------------------------\n\n/** Single source of truth for Google model IDs. */\nexport const GOOGLE_MODEL_IDS = {\n GEMINI_3_FLASH: 'gemini-3-flash',\n GEMINI_20_FLASH: 'gemini-2.0-flash',\n GEMINI_15_PRO: 'gemini-1.5-pro',\n GEMINI_15_PRO_LATEST: 'gemini-1.5-pro-latest',\n GEMINI_15_FLASH: 'gemini-1.5-flash',\n GEMINI_15_FLASH_LATEST: 'gemini-1.5-flash-latest',\n GEMINI_15_FLASH_8B: 'gemini-1.5-flash-8b',\n GEMINI_15_FLASH_8B_LATEST: 'gemini-1.5-flash-8b-latest',\n GEMMA_3_27B_IT: 'gemma-3-27b-it',\n GEMMA_3_9B_IT: 'gemma-3-9b-it',\n GEMMA_2_2B_IT: 'gemma-2-2b-it',\n GEMMA_2_9B_IT: 'gemma-2-9b-it',\n GEMMA_2_27B_IT: 'gemma-2-27b-it',\n GEMINI_EMBEDDING_001: 'gemini-embedding-001',\n TEXT_EMBEDDING_004: 'text-embedding-004',\n IMAGEN_3_GENERATE_002: 'imagen-3.0-generate-002',\n // Aliases\n GEMMA_2_2B: 'gemma-2-2b-it',\n GEMMA_2_9B: 'gemma-2-9b-it',\n GEMMA_2_27B: 'gemma-2-27b-it',\n} as const;\n\n/** Model groups for categorization. */\nexport const GOOGLE_MODEL_GROUPS = {\n THINKING_MODELS: [GOOGLE_MODEL_IDS.GEMINI_3_FLASH] as const,\n GEMINI_MODELS: [\n GOOGLE_MODEL_IDS.GEMINI_3_FLASH,\n GOOGLE_MODEL_IDS.GEMINI_15_PRO,\n GOOGLE_MODEL_IDS.GEMINI_15_PRO_LATEST,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH_LATEST,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B_LATEST,\n ] as const,\n MULTIMODAL_MODELS: [\n GOOGLE_MODEL_IDS.GEMINI_3_FLASH,\n GOOGLE_MODEL_IDS.GEMINI_15_PRO,\n GOOGLE_MODEL_IDS.GEMINI_15_PRO_LATEST,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH_LATEST,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B_LATEST,\n ] as const,\n SEARCH_CAPABLE_MODELS: [\n GOOGLE_MODEL_IDS.GEMINI_3_FLASH,\n GOOGLE_MODEL_IDS.GEMINI_15_PRO,\n GOOGLE_MODEL_IDS.GEMINI_15_PRO_LATEST,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH_LATEST,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B,\n GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B_LATEST,\n ] as const,\n URL_CONTEXT_MODELS: [GOOGLE_MODEL_IDS.GEMINI_3_FLASH] as const,\n GEMMA_MODELS: [\n GOOGLE_MODEL_IDS.GEMMA_3_27B_IT,\n GOOGLE_MODEL_IDS.GEMMA_3_9B_IT,\n GOOGLE_MODEL_IDS.GEMMA_2_2B_IT,\n GOOGLE_MODEL_IDS.GEMMA_2_9B_IT,\n GOOGLE_MODEL_IDS.GEMMA_2_27B_IT,\n ] as const,\n IMAGE_GENERATION_MODELS: [GOOGLE_MODEL_IDS.IMAGEN_3_GENERATE_002] as const,\n} as const;\n\n// ---------------------------------------------------------------------------\n// Option helpers\n// ---------------------------------------------------------------------------\n\n/** Configure thinking capabilities for Gemini 3.0+ models. */\nexport function withThinking(budgetTokens: number = 8192, includeThoughts: boolean = false) {\n return {\n providerOptions: {\n google: {\n thinkingConfig: { thinkingBudget: budgetTokens, includeThoughts },\n },\n },\n };\n}\n\n/**\n * Safety setting type used across Google helpers.\n */\ntype GoogleSafetySetting = {\n readonly category:\n | 'HARM_CATEGORY_HATE_SPEECH'\n | 'HARM_CATEGORY_DANGEROUS_CONTENT'\n | 'HARM_CATEGORY_HARASSMENT'\n | 'HARM_CATEGORY_SEXUALLY_EXPLICIT';\n readonly threshold:\n | 'HARM_BLOCK_THRESHOLD_UNSPECIFIED'\n | 'BLOCK_LOW_AND_ABOVE'\n | 'BLOCK_MEDIUM_AND_ABOVE'\n | 'BLOCK_ONLY_HIGH'\n | 'BLOCK_NONE';\n};\n\n/** Google Safety Setting Presets. */\nexport const GOOGLE_SAFETY_PRESETS = {\n STRICT: [\n { category: 'HARM_CATEGORY_HATE_SPEECH', threshold: 'BLOCK_LOW_AND_ABOVE' },\n { category: 'HARM_CATEGORY_DANGEROUS_CONTENT', threshold: 'BLOCK_LOW_AND_ABOVE' },\n { category: 'HARM_CATEGORY_HARASSMENT', threshold: 'BLOCK_LOW_AND_ABOVE' },\n { category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT', threshold: 'BLOCK_LOW_AND_ABOVE' },\n ] as const,\n BALANCED: [\n { category: 'HARM_CATEGORY_HATE_SPEECH', threshold: 'BLOCK_MEDIUM_AND_ABOVE' },\n { category: 'HARM_CATEGORY_DANGEROUS_CONTENT', threshold: 'BLOCK_MEDIUM_AND_ABOVE' },\n { category: 'HARM_CATEGORY_HARASSMENT', threshold: 'BLOCK_MEDIUM_AND_ABOVE' },\n { category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT', threshold: 'BLOCK_MEDIUM_AND_ABOVE' },\n ] as const,\n PERMISSIVE: [\n { category: 'HARM_CATEGORY_HATE_SPEECH', threshold: 'BLOCK_ONLY_HIGH' },\n { category: 'HARM_CATEGORY_DANGEROUS_CONTENT', threshold: 'BLOCK_ONLY_HIGH' },\n { category: 'HARM_CATEGORY_HARASSMENT', threshold: 'BLOCK_ONLY_HIGH' },\n { category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT', threshold: 'BLOCK_ONLY_HIGH' },\n ] as const,\n NONE: [\n { category: 'HARM_CATEGORY_HATE_SPEECH', threshold: 'BLOCK_NONE' },\n { category: 'HARM_CATEGORY_DANGEROUS_CONTENT', threshold: 'BLOCK_NONE' },\n { category: 'HARM_CATEGORY_HARASSMENT', threshold: 'BLOCK_NONE' },\n { category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT', threshold: 'BLOCK_NONE' },\n ] as const,\n} as const;\n\n/** Configure safety settings for content filtering. */\nexport function withSafetySettings(\n preset: keyof typeof GOOGLE_SAFETY_PRESETS | ReadonlyArray<GoogleSafetySetting>,\n overrides?: Record<string, string>,\n) {\n let settings: Array<{\n category: GoogleSafetySetting['category'];\n threshold: GoogleSafetySetting['threshold'];\n }>;\n\n if (Array.isArray(preset)) {\n settings = [...preset];\n } else {\n settings = [...GOOGLE_SAFETY_PRESETS[preset as keyof typeof GOOGLE_SAFETY_PRESETS]];\n if (overrides) {\n settings = settings.map(setting => {\n const key = setting.category.replace('HARM_CATEGORY_', '');\n if (overrides[key]) {\n return { ...setting, threshold: overrides[key] as typeof setting.threshold };\n }\n return setting;\n });\n }\n }\n\n const settingsObject = settings.reduce(\n (acc, setting) => {\n const key = setting.category.replace('HARM_CATEGORY_', '');\n acc[key] = setting.threshold;\n return acc;\n },\n {} as Record<string, string>,\n );\n\n return {\n providerOptions: {\n google: { safetySettings: settingsObject },\n },\n };\n}\n\n/** Configure response modalities for multimodal outputs. */\nexport function withResponseModalities(modalities: Array<'TEXT' | 'AUDIO' | 'IMAGE'>) {\n return {\n providerOptions: {\n google: { responseModalities: modalities },\n },\n };\n}\n\n/** Configure structured outputs with schema validation. */\nexport function withStructuredOutputs(\n schema?: Record<string, unknown> | boolean,\n mode: 'AUTO' | 'STRICT' = 'AUTO',\n) {\n if (typeof schema === 'boolean') {\n return {\n providerOptions: {\n google: { structuredOutputs: { enabled: schema, mode } },\n },\n };\n }\n return {\n providerOptions: {\n google: { structuredOutputs: { schema, mode } },\n },\n };\n}\n\n/** Configure embedding-specific options. */\nexport function withEmbeddingConfig(options: {\n taskType?:\n | 'SEMANTIC_SIMILARITY'\n | 'CLASSIFICATION'\n | 'CLUSTERING'\n | 'RETRIEVAL_DOCUMENT'\n | 'RETRIEVAL_QUERY'\n | 'QUESTION_ANSWERING'\n | 'FACT_VERIFICATION'\n | 'CODE_RETRIEVAL_QUERY';\n outputDimensionality?: number;\n}) {\n return {\n providerOptions: {\n google: {\n ...(options.taskType && { taskType: options.taskType }),\n ...(options.outputDimensionality && {\n outputDimensionality: options.outputDimensionality,\n }),\n },\n },\n };\n}\n\n/** Configure YouTube URL processing. */\nexport function withYouTubeContext(\n videoUrl: string,\n includedFeatures?: Array<'TRANSCRIPT' | 'COMMENTS' | 'METADATA'>,\n) {\n return {\n providerOptions: {\n google: {\n youtubeContext: {\n videoUrl,\n includedFeatures: includedFeatures ?? ['TRANSCRIPT'],\n },\n },\n },\n };\n}\n\n/** Configure Google image generation options. */\nexport function withGoogleImageGeneration(\n quality: 'LOW' | 'MEDIUM' | 'HIGH' = 'MEDIUM',\n count: number = 1,\n size: number = 1024,\n) {\n return {\n providerOptions: {\n google: { imageGeneration: { quality, count, size } },\n },\n };\n}\n\n// ---------------------------------------------------------------------------\n// Presets\n// ---------------------------------------------------------------------------\n\n/** Configuration presets for Google-specific use cases. */\nexport const GOOGLE_PRESETS = {\n quick: {\n ...commonModes.quick(),\n ...withSafetySettings('BALANCED'),\n temperature: 0.7,\n topP: 0.9,\n },\n thinking: {\n ...commonModes.research(),\n ...withThinking(12000, true),\n ...withSafetySettings('BALANCED'),\n temperature: 0.3,\n topP: 0.8,\n },\n creative: {\n ...commonModes.creative(),\n ...withSafetySettings('PERMISSIVE'),\n temperature: 0.9,\n topP: 0.95,\n },\n precise: {\n ...commonModes.precise(),\n ...withSafetySettings('STRICT'),\n ...withStructuredOutputs(true),\n temperature: 0.1,\n topP: 0.7,\n },\n} as const;\n\n// ---------------------------------------------------------------------------\n// Capability detection\n// ---------------------------------------------------------------------------\n\n/** Check if model supports thinking capabilities. */\nexport function supportsThinking(modelId: string): boolean {\n return GOOGLE_MODEL_GROUPS.THINKING_MODELS.includes(\n modelId as (typeof GOOGLE_MODEL_GROUPS.THINKING_MODELS)[number],\n );\n}\n\n/** Check if model supports Google Search grounding. */\nexport function supportsGoogleSearch(modelId: string): boolean {\n return GOOGLE_MODEL_GROUPS.SEARCH_CAPABLE_MODELS.includes(\n modelId as (typeof GOOGLE_MODEL_GROUPS.SEARCH_CAPABLE_MODELS)[number],\n );\n}\n\n/** Check if model supports URL context analysis. */\nexport function supportsUrlContext(modelId: string): boolean {\n return GOOGLE_MODEL_GROUPS.URL_CONTEXT_MODELS.includes(\n modelId as (typeof GOOGLE_MODEL_GROUPS.URL_CONTEXT_MODELS)[number],\n );\n}\n\n/** Check if model is a Gemma open-source model. */\nexport function isGemmaModel(modelId: string): boolean {\n return GOOGLE_MODEL_GROUPS.GEMMA_MODELS.includes(\n modelId as (typeof GOOGLE_MODEL_GROUPS.GEMMA_MODELS)[number],\n );\n}\n","/**\n * @fileoverview xAI Grok provider configuration\n *\n * Provider-specific model IDs, option helpers, capability detection,\n * and metadata extraction for xAI Grok models.\n *\n * All AI SDK imports come from the shared module.\n *\n * @module @od-oneapp/ai-platform/models/providers/xai\n */\n\nimport { createXai, xai } from '../../shared';\n\nimport type { SDKSharedV3ProviderMetadata } from '../../shared';\n\n// ---------------------------------------------------------------------------\n// Internal types\n// ---------------------------------------------------------------------------\n\ninterface GenerationResult {\n sources?: Array<{\n url: string;\n title: string;\n snippet: string;\n publishedDate?: string;\n author?: string;\n }>;\n providerOptions?: SDKSharedV3ProviderMetadata;\n}\n\ninterface XAISourceItem {\n url: string;\n title: string;\n snippet: string;\n publishedDate?: string;\n author?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Re-export provider\n// ---------------------------------------------------------------------------\n\nexport { createXai, xai as grok };\n\n/** Image generation support via xAI. */\nexport const grokImage = xai.image;\n\n// ---------------------------------------------------------------------------\n// Model IDs\n// ---------------------------------------------------------------------------\n\n/** Single source of truth for xAI Grok model IDs. */\nexport const GROK_MODEL_IDS = {\n GROK_4: 'grok-4',\n GROK_3: 'grok-3',\n GROK_3_LATEST: 'grok-3-latest',\n GROK_3_FAST: 'grok-3-fast',\n GROK_3_FAST_LATEST: 'grok-3-fast-latest',\n GROK_3_MINI: 'grok-3-mini',\n GROK_3_MINI_LATEST: 'grok-3-mini-latest',\n GROK_3_MINI_FAST: 'grok-3-mini-fast',\n GROK_3_MINI_FAST_LATEST: 'grok-3-mini-fast-latest',\n GROK_2: 'grok-2',\n GROK_2_LATEST: 'grok-2-latest',\n GROK_2_1212: 'grok-2-1212',\n GROK_2_VISION: 'grok-2-vision',\n GROK_2_VISION_LATEST: 'grok-2-vision-latest',\n GROK_2_VISION_1212: 'grok-2-vision-1212',\n GROK_CODE_FAST_1: 'grok-code-fast-1',\n GROK_BETA: 'grok-beta',\n GROK_VISION_BETA: 'grok-vision-beta',\n GROK_2_IMAGE: 'grok-2-image',\n} as const;\n\n/** Model groups for categorization. */\nexport const GROK_MODEL_GROUPS = {\n REASONING_EFFORT_MODELS: [\n GROK_MODEL_IDS.GROK_3_MINI,\n GROK_MODEL_IDS.GROK_3_MINI_LATEST,\n GROK_MODEL_IDS.GROK_3_MINI_FAST,\n GROK_MODEL_IDS.GROK_3_MINI_FAST_LATEST,\n GROK_MODEL_IDS.GROK_CODE_FAST_1,\n ] as const,\n VISION_MODELS: [\n GROK_MODEL_IDS.GROK_2_VISION,\n GROK_MODEL_IDS.GROK_2_VISION_LATEST,\n GROK_MODEL_IDS.GROK_2_VISION_1212,\n GROK_MODEL_IDS.GROK_VISION_BETA,\n ] as const,\n} as const;\n\n// ---------------------------------------------------------------------------\n// Model capabilities (xAI-unique features only)\n// ---------------------------------------------------------------------------\n\nconst GROK_MODEL_CAPABILITIES: Record<string, GrokModelCapabilities> = {\n [GROK_MODEL_IDS.GROK_4]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_3]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_3_LATEST]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_3_FAST]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_3_FAST_LATEST]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_2]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_2_LATEST]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_2_1212]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_2_VISION]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_2_VISION_LATEST]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_2_VISION_1212]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_BETA]: { liveSearch: true, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_3_MINI]: { liveSearch: true, reasoningEffort: true },\n [GROK_MODEL_IDS.GROK_3_MINI_LATEST]: { liveSearch: true, reasoningEffort: true },\n [GROK_MODEL_IDS.GROK_3_MINI_FAST]: { liveSearch: true, reasoningEffort: true },\n [GROK_MODEL_IDS.GROK_3_MINI_FAST_LATEST]: { liveSearch: true, reasoningEffort: true },\n [GROK_MODEL_IDS.GROK_CODE_FAST_1]: { liveSearch: true, reasoningEffort: true },\n [GROK_MODEL_IDS.GROK_VISION_BETA]: { liveSearch: false, reasoningEffort: false },\n [GROK_MODEL_IDS.GROK_2_IMAGE]: { liveSearch: false, reasoningEffort: false },\n};\n\n// ---------------------------------------------------------------------------\n// Option helpers\n// ---------------------------------------------------------------------------\n\n/** Configure xAI Live Search parameters. */\nexport function withSearchParameters(\n options: {\n mode?: 'auto' | 'on' | 'off';\n returnCitations?: boolean;\n fromDate?: string;\n toDate?: string;\n maxSearchResults?: number;\n sources?: Array<WebSearchSource | XSearchSource | NewsSearchSource | RSSSearchSource>;\n } = {},\n) {\n return {\n xai: {\n searchParameters: {\n mode: options.mode ?? 'auto',\n returnCitations: options.returnCitations ?? true,\n fromDate: options.fromDate,\n toDate: options.toDate,\n maxSearchResults: options.maxSearchResults ?? 20,\n sources: options.sources ?? ['web', 'x'],\n },\n },\n };\n}\n\n/** Convenience helper for multi-source search. */\nexport function withSearchSources(\n ...sources: Array<WebSearchSource | XSearchSource | NewsSearchSource | RSSSearchSource>\n) {\n return withSearchParameters({ mode: 'on', returnCitations: true, sources });\n}\n\n/** Configure reasoning effort for mini models. */\nexport function withReasoningEffort(effort: 'low' | 'high') {\n return { xai: { reasoningEffort: effort } };\n}\n\n// ---------------------------------------------------------------------------\n// Capability detection\n// ---------------------------------------------------------------------------\n\n/** Check if model supports Live Search. */\nexport function supportsLiveSearch(modelId: string): boolean {\n return GROK_MODEL_CAPABILITIES[modelId]?.liveSearch ?? false;\n}\n\n/** Check if model supports reasoning effort control. */\nexport function supportsReasoningEffort(modelId: string): boolean {\n return GROK_MODEL_CAPABILITIES[modelId]?.reasoningEffort ?? false;\n}\n\n/** Check if model supports vision input. */\nexport function supportsVision(modelId: string): boolean {\n return GROK_MODEL_GROUPS.VISION_MODELS.includes(\n modelId as (typeof GROK_MODEL_GROUPS.VISION_MODELS)[number],\n );\n}\n\n/** Check if model supports image generation. */\nexport function supportsImageGeneration(modelId: string): boolean {\n return modelId === GROK_MODEL_IDS.GROK_2_IMAGE;\n}\n\n// ---------------------------------------------------------------------------\n// Metadata extraction\n// ---------------------------------------------------------------------------\n\n/** Extract search sources from xAI responses. */\nexport function extractSources(result: GenerationResult): XAISource[] {\n if (!result?.sources) return [];\n return result.sources.map((source: XAISourceItem) => ({\n url: source.url ?? '',\n title: source.title,\n snippet: source.snippet,\n sourceType: 'url' as const,\n }));\n}\n\n/** Extract search metadata from xAI responses. */\nexport function extractSearchMetadata(result: GenerationResult): XAISearchMetadata | null {\n const xaiMeta = result?.providerOptions?.xai;\n if (!xaiMeta || typeof xaiMeta !== 'object' || Array.isArray(xaiMeta)) return null;\n\n const meta = xaiMeta;\n const { search } = meta;\n if (!search || typeof search !== 'object' || Array.isArray(search)) return null;\n\n const searchData = search;\n return {\n queriesUsed: typeof searchData.queriesUsed === 'number' ? searchData.queriesUsed : 0,\n sourcesFound: typeof searchData.sourcesFound === 'number' ? searchData.sourcesFound : 0,\n searchTime: typeof searchData.searchTime === 'number' ? searchData.searchTime : 0,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Web search source configuration. */\nexport interface WebSearchSource {\n type: 'web';\n country?: string;\n allowedWebsites?: string[];\n excludedWebsites?: string[];\n safeSearch?: boolean;\n}\n\n/** X (Twitter) search source configuration. */\nexport interface XSearchSource {\n type: 'x';\n xHandles: string[];\n}\n\n/** News search source configuration. */\ninterface NewsSearchSource {\n type: 'news';\n country?: string;\n excludedWebsites?: string[];\n safeSearch?: boolean;\n}\n\n/** RSS search source configuration. */\ninterface RSSSearchSource {\n type: 'rss';\n links: string[];\n}\n\n/** Source from xAI search results. */\nexport interface XAISource {\n url: string;\n title?: string;\n snippet?: string;\n sourceType: 'url';\n}\n\n/** Search metadata from xAI responses. */\nexport interface XAISearchMetadata {\n queriesUsed: number;\n sourcesFound: number;\n searchTime: number;\n}\n\n/** xAI-unique model capabilities. */\nexport interface GrokModelCapabilities {\n liveSearch: boolean;\n reasoningEffort: boolean;\n}\n"],"mappings":"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"}
|