@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":"aggregation-BDop87kL.mjs","names":[],"sources":["../src/agents/multi/swarm/swarm-executor.ts","../src/agents/multi/swarm/coordination.ts","../src/agents/multi/swarm/communication.ts","../src/agents/multi/swarm/aggregation.ts"],"sourcesContent":["/**\n * Swarm Executor - Core agent swarm coordination\n * Based on VERCEL_AI_SDK_V6_PATTERNS.md section 4.4\n * Orchestrates multiple agents working in parallel with various coordination strategies\n */\n\nimport { logInfo } from '@repo/shared/logs';\nimport { z } from 'zod';\n\n/**\n * Agent definition schema\n * Describes an individual agent in the swarm\n */\nexport const AgentDefinitionSchema = z.object({\n id: z.string().describe('Unique identifier for the agent'),\n name: z.string().describe('Human-readable agent name'),\n role: z.string().describe('Role/responsibility of the agent'),\n description: z.string().describe('What this agent does'),\n dependencies: z.array(z.string()).default([]).describe('IDs of agents this one depends on'),\n config: z.record(z.string(), z.unknown()).optional().describe('Agent-specific configuration'),\n});\n\nexport type AgentDefinition = z.infer<typeof AgentDefinitionSchema>;\n\n/**\n * Agent result from execution\n */\nexport const AgentResultSchema = z.object({\n agentId: z.string(),\n agentName: z.string(),\n status: z.enum(['success', 'failed', 'timeout', 'skipped']),\n result: z.unknown().optional(),\n error: z.string().optional(),\n startTime: z.number(),\n endTime: z.number(),\n duration: z.number(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type AgentResult = z.infer<typeof AgentResultSchema>;\n\n/**\n * Coordinator strategy types\n */\nexport type CoordinatorStrategy = 'sequential' | 'parallel' | 'hybrid' | 'custom';\n\n/**\n * Swarm timing information\n */\nexport const SwarmTimingSchema = z.object({\n startTime: z.number(),\n endTime: z.number(),\n totalDuration: z.number(),\n parallelDuration: z.number(),\n sequentialDuration: z.number(),\n agentTimings: z.record(z.string(), z.number()),\n});\n\nexport type SwarmTiming = z.infer<typeof SwarmTimingSchema>;\n\n/**\n * Aggregation strategy type\n */\nexport type AggregationStrategy = 'merge' | 'vote' | 'consensus' | 'weighted' | 'custom';\n\n/**\n * Swarm configuration\n */\nexport const SwarmConfigSchema = z.object({\n agents: z.array(AgentDefinitionSchema),\n coordinator: z.enum(['sequential', 'parallel', 'hybrid', 'custom']),\n maxConcurrency: z.number().min(1).default(4),\n timeout: z.number().min(1000).default(30000),\n aggregation: z.enum(['merge', 'vote', 'consensus', 'weighted', 'custom']).default('merge'),\n enableLogging: z.boolean().default(false),\n retryPolicy: z\n .object({\n maxRetries: z.number().min(0).default(0),\n retryDelay: z.number().min(0).default(1000),\n retryableErrors: z.array(z.string()).optional(),\n })\n .optional(),\n});\n\nexport type SwarmConfig = z.infer<typeof SwarmConfigSchema>;\n\n/**\n * Swarm task definition\n */\nexport const SwarmTaskSchema = z.object({\n taskId: z.string(),\n description: z.string(),\n params: z.record(z.string(), z.unknown()).optional(),\n targetAgents: z.array(z.string()).optional().describe('Specific agents to run; empty = all'),\n context: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Shared context passed to all agents'),\n});\n\nexport type SwarmTask = z.infer<typeof SwarmTaskSchema>;\n\n/**\n * Swarm execution result\n */\nexport const SwarmResultSchema = z.object({\n taskId: z.string(),\n results: z.record(z.string(), AgentResultSchema),\n aggregated: z.unknown().optional(),\n timing: SwarmTimingSchema,\n status: z.enum(['completed', 'partial', 'failed']),\n error: z.string().optional(),\n});\n\nexport type SwarmResult = z.infer<typeof SwarmResultSchema>;\n\n/**\n * Swarm executor interface\n */\nexport interface Swarm {\n execute(task: SwarmTask): Promise<SwarmResult>;\n getAgent(agentId: string): AgentDefinition | undefined;\n getAgents(): AgentDefinition[];\n getConfig(): SwarmConfig;\n}\n\n/**\n * Factory function to create a swarm executor\n */\nexport function createSwarm(config: SwarmConfig): Swarm {\n return new SwarmExecutor(config);\n}\n\n/**\n * Main swarm executor implementation\n */\nclass SwarmExecutor implements Swarm {\n private config: SwarmConfig;\n private agentMap: Map<string, AgentDefinition>;\n\n constructor(config: SwarmConfig) {\n this.config = config;\n this.agentMap = new Map(config.agents.map(agent => [agent.id, agent]));\n }\n\n async execute(task: SwarmTask): Promise<SwarmResult> {\n const startTime = Date.now();\n const results = new Map<string, AgentResult>();\n\n if (this.config.enableLogging) {\n logInfo(`[Swarm] Starting execution of task: ${task.taskId}`);\n logInfo(`[Swarm] Coordination strategy: ${this.config.coordinator}`);\n }\n\n try {\n // Determine which agents to run\n const targetAgents = task.targetAgents ?? [];\n const agentsToRun =\n targetAgents.length > 0\n ? this.config.agents.filter(a => targetAgents.includes(a.id))\n : this.config.agents;\n\n if (this.config.enableLogging) {\n logInfo(`[Swarm] Running ${agentsToRun.length} agents`);\n }\n\n // Execute based on coordination strategy\n let parallelDuration = 0;\n let sequentialDuration = 0;\n\n switch (this.config.coordinator) {\n case 'sequential':\n sequentialDuration = await this.executeSequential(agentsToRun, task, results);\n break;\n case 'parallel':\n parallelDuration = await this.executeParallel(agentsToRun, task, results);\n break;\n case 'hybrid': {\n const { parallel, sequential } = await this.executeHybrid(agentsToRun, task, results);\n parallelDuration = parallel;\n sequentialDuration = sequential;\n break;\n }\n case 'custom':\n // Custom coordinators would be implemented via inheritance/composition\n await this.executeParallel(agentsToRun, task, results);\n break;\n }\n\n const endTime = Date.now();\n const totalDuration = endTime - startTime;\n\n // Aggregate results\n const aggregated = await this.aggregateResults(Array.from(results.values()));\n\n const timing: SwarmTiming = {\n startTime,\n endTime,\n totalDuration,\n parallelDuration,\n sequentialDuration,\n agentTimings: this.extractAgentTimings(results),\n };\n\n const status = Array.from(results.values()).every(r => r.status === 'success')\n ? 'completed'\n : Array.from(results.values()).some(r => r.status === 'success')\n ? 'partial'\n : 'failed';\n\n if (this.config.enableLogging) {\n logInfo(`[Swarm] Task ${task.taskId} completed with status: ${status}`);\n logInfo(`[Swarm] Total duration: ${totalDuration}ms`);\n }\n\n return {\n taskId: task.taskId,\n results: Object.fromEntries(results),\n aggregated,\n timing,\n status,\n };\n } catch (error) {\n const endTime = Date.now();\n const totalDuration = endTime - startTime;\n\n return {\n taskId: task.taskId,\n results: Object.fromEntries(results),\n timing: {\n startTime,\n endTime,\n totalDuration,\n parallelDuration: 0,\n sequentialDuration: totalDuration,\n agentTimings: this.extractAgentTimings(results),\n },\n status: 'failed',\n error: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n private async executeSequential(\n agents: AgentDefinition[],\n task: SwarmTask,\n results: Map<string, AgentResult>,\n ): Promise<number> {\n const startTime = Date.now();\n\n for (const agent of agents) {\n try {\n const result = await this.executeAgent(agent, task);\n results.set(agent.id, result);\n } catch (error) {\n results.set(agent.id, {\n agentId: agent.id,\n agentName: agent.name,\n status: 'failed',\n error: error instanceof Error ? error.message : 'Unknown error',\n startTime: Date.now(),\n endTime: Date.now(),\n duration: 0,\n });\n }\n }\n\n return Date.now() - startTime;\n }\n\n private async executeParallel(\n agents: AgentDefinition[],\n task: SwarmTask,\n results: Map<string, AgentResult>,\n ): Promise<number> {\n const startTime = Date.now();\n const chunks = this.chunkArray(agents, this.config.maxConcurrency);\n\n for (const chunk of chunks) {\n const promises = chunk.map(async agent => {\n try {\n const result = await this.executeAgent(agent, task);\n results.set(agent.id, result);\n } catch (error) {\n results.set(agent.id, {\n agentId: agent.id,\n agentName: agent.name,\n status: 'failed',\n error: error instanceof Error ? error.message : 'Unknown error',\n startTime: Date.now(),\n endTime: Date.now(),\n duration: 0,\n });\n }\n });\n\n await Promise.all(promises);\n }\n\n return Date.now() - startTime;\n }\n\n private async executeHybrid(\n agents: AgentDefinition[],\n task: SwarmTask,\n results: Map<string, AgentResult>,\n ): Promise<{ parallel: number; sequential: number }> {\n const parallelAgents = agents.filter(a => !a.dependencies || a.dependencies.length === 0);\n const parallelDuration = await this.executeParallel(parallelAgents, task, results);\n\n const dependentAgents = agents.filter(a => a.dependencies && a.dependencies.length > 0);\n const sequentialDuration = await this.executeSequential(dependentAgents, task, results);\n\n return {\n parallel: parallelDuration,\n sequential: sequentialDuration,\n };\n }\n\n private async executeAgent(agent: AgentDefinition, task: SwarmTask): Promise<AgentResult> {\n const startTime = Date.now();\n const timeoutMs = this.config.timeout;\n\n try {\n // Execute with proactive timeout enforcement\n const executionPromise = this.simulateAgentExecution(agent, task);\n const timeoutPromise = new Promise<never>((resolve, reject) => {\n void resolve;\n setTimeout(() => reject(new Error('AGENT_TIMEOUT')), timeoutMs);\n });\n\n await Promise.race([executionPromise, timeoutPromise]);\n\n const endTime = Date.now();\n const duration = endTime - startTime;\n\n return {\n agentId: agent.id,\n agentName: agent.name,\n status: 'success',\n result: {\n processedAt: new Date().toISOString(),\n role: agent.role,\n taskId: task.taskId,\n },\n startTime,\n endTime,\n duration,\n };\n } catch (error) {\n const endTime = Date.now();\n const duration = endTime - startTime;\n\n if (error instanceof Error && error.message === 'AGENT_TIMEOUT') {\n return {\n agentId: agent.id,\n agentName: agent.name,\n status: 'timeout',\n error: `Agent execution exceeded timeout of ${timeoutMs}ms`,\n startTime,\n endTime,\n duration,\n };\n }\n\n return {\n agentId: agent.id,\n agentName: agent.name,\n status: 'failed',\n error: error instanceof Error ? error.message : 'Unknown error',\n startTime,\n endTime,\n duration,\n };\n }\n }\n\n private async simulateAgentExecution(agent: AgentDefinition, task: SwarmTask): Promise<void> {\n void agent;\n void task;\n // Simulate execution with random delay\n const delay = Math.random() * 100 + 50;\n await new Promise(resolve => setTimeout(resolve, delay));\n }\n\n private async aggregateResults(results: AgentResult[]): Promise<unknown> {\n switch (this.config.aggregation) {\n case 'merge':\n return this.mergeResults(results);\n case 'vote':\n return this.voteOnResults(results);\n case 'consensus':\n return this.consensusResults(results);\n case 'weighted':\n return this.mergeResults(results);\n case 'custom':\n return this.mergeResults(results);\n default:\n return this.mergeResults(results);\n }\n }\n\n private mergeResults(results: AgentResult[]): unknown {\n return {\n totalAgents: results.length,\n successfulAgents: results.filter(r => r.status === 'success').length,\n failedAgents: results.filter(r => r.status === 'failed').length,\n agentResults: results.map(r => ({\n agentId: r.agentId,\n status: r.status,\n duration: r.duration,\n })),\n };\n }\n\n private voteOnResults(results: AgentResult[]): unknown {\n const successCount = results.filter(r => r.status === 'success').length;\n const failureCount = results.filter(r => r.status === 'failed').length;\n\n return {\n consensus: successCount > failureCount ? 'success' : 'failure',\n successVotes: successCount,\n failureVotes: failureCount,\n totalVotes: results.length,\n };\n }\n\n private consensusResults(results: AgentResult[]): unknown {\n const totalResults = results.length;\n const successfulResults = results.filter(r => r.status === 'success').length;\n const confidenceScore = totalResults > 0 ? successfulResults / totalResults : 0;\n\n return {\n consensus: confidenceScore >= 0.5,\n confidenceScore: Math.round(confidenceScore * 100) / 100,\n successfulResults,\n totalResults,\n details: results.map(r => ({\n agentId: r.agentId,\n status: r.status,\n })),\n };\n }\n\n private extractAgentTimings(results: Map<string, AgentResult>): Record<string, number> {\n const timings: Record<string, number> = {};\n results.forEach((result, agentId) => {\n timings[agentId] = result.duration;\n });\n return timings;\n }\n\n private chunkArray<T>(array: T[], size: number): T[][] {\n const chunks: T[][] = [];\n for (let i = 0; i < array.length; i += size) {\n chunks.push(array.slice(i, i + size));\n }\n return chunks;\n }\n\n getAgent(agentId: string): AgentDefinition | undefined {\n return this.agentMap.get(agentId);\n }\n\n getAgents(): AgentDefinition[] {\n return this.config.agents;\n }\n\n getConfig(): SwarmConfig {\n return this.config;\n }\n}\n\n/**\n * Execute a swarm with a given task\n */\nexport async function executeSwarm(swarm: Swarm, task: SwarmTask): Promise<SwarmResult> {\n return swarm.execute(task);\n}\n","/**\n * Coordination Strategies - Different execution patterns for agent swarms\n * Based on VERCEL_AI_SDK_V6_PATTERNS.md section 4.4\n * Provides sequential, parallel, hybrid, and dependency-aware coordination\n */\n\nimport { z } from 'zod';\n\nimport type { AgentDefinition, SwarmTask, AgentResult } from './swarm-executor';\n\n/**\n * Execution phase for hybrid coordination\n */\nexport interface ExecutionPhase {\n phaseId: string;\n agents: AgentDefinition[];\n dependsOn: string[];\n parallel: boolean;\n}\n\n/**\n * Dependency graph node\n */\nexport interface DependencyNode {\n agentId: string;\n agent: AgentDefinition;\n dependencies: string[];\n dependents: string[];\n level: number;\n}\n\n/**\n * Sequential execution strategy\n * Agents run one after another in order\n * Useful for: Tasks with strict ordering requirements or low parallelism\n */\nexport async function sequentialExecution(\n agents: AgentDefinition[],\n task: SwarmTask,\n executeAgent: (agent: AgentDefinition, task: SwarmTask) => Promise<AgentResult>,\n): Promise<AgentResult[]> {\n const results: AgentResult[] = [];\n\n for (const agent of agents) {\n try {\n const result = await executeAgent(agent, task);\n results.push(result);\n } catch (error) {\n results.push({\n agentId: agent.id,\n agentName: agent.name,\n status: 'failed',\n error: error instanceof Error ? error.message : 'Unknown error',\n startTime: Date.now(),\n endTime: Date.now(),\n duration: 0,\n });\n }\n }\n\n return results;\n}\n\n/**\n * Parallel execution strategy\n * Agents run concurrently up to maxConcurrency limit\n * Useful for: Independent tasks that can run simultaneously\n */\nexport async function parallelExecution(\n agents: AgentDefinition[],\n task: SwarmTask,\n executeAgent: (agent: AgentDefinition, task: SwarmTask) => Promise<AgentResult>,\n maxConcurrency: number = 4,\n): Promise<AgentResult[]> {\n const results: AgentResult[] = [];\n const chunks = chunkArray(agents, maxConcurrency);\n\n for (const chunk of chunks) {\n const promises = chunk.map(async agent => {\n try {\n return await executeAgent(agent, task);\n } catch (error) {\n const failureResult: AgentResult = {\n agentId: agent.id,\n agentName: agent.name,\n status: 'failed',\n error: error instanceof Error ? error.message : 'Unknown error',\n startTime: Date.now(),\n endTime: Date.now(),\n duration: 0,\n };\n return failureResult;\n }\n });\n\n const chunkResults = await Promise.all(promises);\n results.push(...chunkResults);\n }\n\n return results;\n}\n\n/**\n * Hybrid execution strategy\n * Combines sequential and parallel execution based on dependencies\n * Agents with no dependencies run in parallel\n * Agents with dependencies run sequentially after their dependencies\n * Useful for: Complex workflows with mixed dependency patterns\n */\nexport async function hybridExecution(\n agents: AgentDefinition[],\n task: SwarmTask,\n executeAgent: (agent: AgentDefinition, task: SwarmTask) => Promise<AgentResult>,\n maxConcurrency: number = 4,\n): Promise<AgentResult[]> {\n // Build dependency graph\n const graph = createDependencyGraph(agents);\n const phases = buildExecutionPhases(graph);\n\n const results: AgentResult[] = [];\n const completedAgents = new Set<string>();\n\n for (const phase of phases) {\n if (phase.parallel) {\n // Execute agents in parallel\n const phaseResults = await parallelExecution(\n phase.agents,\n task,\n executeAgent,\n maxConcurrency,\n );\n results.push(...phaseResults);\n for (const r of phaseResults) {\n completedAgents.add(r.agentId);\n }\n } else {\n // Execute agents sequentially\n const phaseResults = await sequentialExecution(phase.agents, task, executeAgent);\n results.push(...phaseResults);\n for (const r of phaseResults) {\n completedAgents.add(r.agentId);\n }\n }\n }\n\n return results;\n}\n\n/**\n * Create a dependency graph from agents\n * Analyzes agent dependencies and builds a directed acyclic graph\n */\nexport function createDependencyGraph(agents: AgentDefinition[]): DependencyNode[] {\n const agentMap = new Map(agents.map(a => [a.id, a]));\n const nodes: DependencyNode[] = [];\n\n // First pass: create all nodes and validate dependencies exist\n for (const agent of agents) {\n // Validate all dependencies exist\n for (const depId of agent.dependencies || []) {\n if (!agentMap.has(depId)) {\n throw new Error(`Agent \"${agent.id}\" depends on unknown agent \"${depId}\"`);\n }\n }\n nodes.push({\n agentId: agent.id,\n agent,\n dependencies: agent.dependencies || [],\n dependents: [],\n level: 0,\n });\n }\n\n // Second pass: build relationships\n for (const node of nodes) {\n for (const depId of node.dependencies) {\n const depNode = nodes.find(n => n.agentId === depId);\n if (depNode) {\n depNode.dependents.push(node.agentId);\n }\n }\n }\n\n // Third pass: calculate levels (topological sort)\n calculateLevels(nodes);\n\n return nodes;\n}\n\n/**\n * Build execution phases from dependency graph\n * Groups agents into phases that can be executed together\n */\nexport function buildExecutionPhases(graph: DependencyNode[]): ExecutionPhase[] {\n const phases: ExecutionPhase[] = [];\n const maxLevel = Math.max(...graph.map(n => n.level), 0);\n\n for (let level = 0; level <= maxLevel; level++) {\n const agentsAtLevel = graph.filter(n => n.level === level).map(n => n.agent);\n\n if (agentsAtLevel.length > 0) {\n phases.push({\n phaseId: `phase_${level}`,\n agents: agentsAtLevel,\n dependsOn: level > 0 ? [`phase_${level - 1}`] : [],\n parallel: agentsAtLevel.length > 1,\n });\n }\n }\n\n return phases;\n}\n\n/**\n * Validate dependency graph for cycles\n * Returns true if graph is acyclic, false if cycles detected\n */\nexport function validateDependencyGraph(graph: DependencyNode[]): boolean {\n const visited = new Set<string>();\n const recursionStack = new Set<string>();\n\n const hasCycle = (nodeId: string): boolean => {\n visited.add(nodeId);\n recursionStack.add(nodeId);\n\n const node = graph.find(n => n.agentId === nodeId);\n if (!node) return false;\n\n for (const depId of node.dependencies) {\n if (!visited.has(depId)) {\n if (hasCycle(depId)) return true;\n } else if (recursionStack.has(depId)) {\n return true;\n }\n }\n\n recursionStack.delete(nodeId);\n return false;\n };\n\n for (const node of graph) {\n if (!visited.has(node.agentId)) {\n if (hasCycle(node.agentId)) {\n return false;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Get agents that are ready to execute\n * Returns agents whose dependencies have all been satisfied\n */\nexport function getReadyAgents(\n graph: DependencyNode[],\n completedAgents: Set<string>,\n): DependencyNode[] {\n return graph.filter(node => {\n if (completedAgents.has(node.agentId)) {\n return false;\n }\n return node.dependencies.every(depId => completedAgents.has(depId));\n });\n}\n\n/**\n * Get all agents that depend on a specific agent\n */\nexport function getDependentAgents(nodeId: string, graph: DependencyNode[]): DependencyNode[] {\n const node = graph.find(n => n.agentId === nodeId);\n if (!node) return [];\n\n return graph.filter(n => node.dependents.includes(n.agentId));\n}\n\n/**\n * Get all agents that a specific agent depends on\n */\nexport function getDependencies(nodeId: string, graph: DependencyNode[]): DependencyNode[] {\n const node = graph.find(n => n.agentId === nodeId);\n if (!node) return [];\n\n return graph.filter(n => node.dependencies.includes(n.agentId));\n}\n\n/**\n * Calculate execution order based on dependencies\n */\nexport function calculateExecutionOrder(graph: DependencyNode[]): string[][] {\n const order: string[][] = [];\n const visited = new Set<string>();\n\n const visit = (nodeId: string): void => {\n if (visited.has(nodeId)) return;\n visited.add(nodeId);\n\n const node = graph.find(n => n.agentId === nodeId);\n if (!node) return;\n\n for (const depId of node.dependencies) {\n visit(depId);\n }\n\n const { level } = node;\n if (!order[level]) {\n order[level] = [];\n }\n order[level].push(nodeId);\n };\n\n for (const node of graph) {\n visit(node.agentId);\n }\n\n return order.filter(group => group.length > 0);\n}\n\n/**\n * Helper: Calculate levels in dependency graph (topological sort)\n */\nfunction calculateLevels(nodes: DependencyNode[]): void {\n const visited = new Set<string>();\n\n const calculateLevel = (nodeId: string): number => {\n const node = nodes.find(n => n.agentId === nodeId);\n if (!node) return 0;\n\n if (visited.has(nodeId)) {\n return node.level;\n }\n\n visited.add(nodeId);\n\n if (node.dependencies.length === 0) {\n node.level = 0;\n } else {\n const maxDepLevel = Math.max(\n ...node.dependencies.map(depId => {\n const depNode = nodes.find(n => n.agentId === depId);\n if (!depNode) return 0;\n return calculateLevel(depId);\n }),\n 0,\n );\n node.level = maxDepLevel + 1;\n }\n\n return node.level;\n };\n\n for (const node of nodes) {\n calculateLevel(node.agentId);\n }\n}\n\n/**\n * Helper: Split array into chunks\n */\nfunction chunkArray<T>(array: T[], size: number): T[][] {\n const chunks: T[][] = [];\n for (let i = 0; i < array.length; i += size) {\n chunks.push(array.slice(i, i + size));\n }\n return chunks;\n}\n\n/**\n * Coordination strategy schema for configuration\n */\nexport const CoordinationStrategySchema = z.object({\n type: z.enum(['sequential', 'parallel', 'hybrid', 'custom']),\n maxConcurrency: z.number().min(1).default(4),\n enableDependencyTracking: z.boolean().default(true),\n allowPartialFailure: z.boolean().default(true),\n timeoutPerAgent: z.number().min(1000).default(30000),\n});\n\nexport type CoordinationStrategy = z.infer<typeof CoordinationStrategySchema>;\n","/**\n * Communication Layer - Inter-agent messaging system\n * Based on VERCEL_AI_SDK_V6_PATTERNS.md section 4.4\n * Enables agents to communicate and coordinate during execution\n */\n\nimport { EventEmitter } from 'node:events';\n\nimport { logError } from '@repo/shared/logs';\nimport { z } from 'zod';\n\n/**\n * Message schema for inter-agent communication\n */\nexport const MessageSchema = z.object({\n messageId: z.string().describe('Unique message identifier'),\n senderId: z.string().describe('ID of agent sending the message'),\n senderName: z.string().describe('Name of agent sending the message'),\n recipientId: z.string().optional().describe('ID of specific recipient; undefined = broadcast'),\n topic: z.string().describe('Message topic for categorization'),\n type: z.enum(['request', 'response', 'notification', 'query', 'update']),\n payload: z.unknown().describe('Message content'),\n timestamp: z.number(),\n correlationId: z.string().optional().describe('Links related messages'),\n priority: z.enum(['low', 'normal', 'high', 'critical']).default('normal'),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type Message = z.infer<typeof MessageSchema>;\n\n/**\n * Message handler function\n */\nexport type MessageHandler = (message: Message) => void | Promise<void>;\n\n/**\n * Message subscription\n */\nexport interface MessageSubscription {\n subscriptionId: string;\n agentId: string;\n topic?: string;\n handler: MessageHandler;\n unsubscribe(): void;\n}\n\n/**\n * Message bus interface\n */\nexport interface MessageBus {\n broadcast(message: Omit<Message, 'messageId' | 'timestamp'>): void;\n sendToAgent(\n recipientId: string,\n message: Omit<Message, 'messageId' | 'timestamp' | 'recipientId'>,\n ): void;\n subscribe(agentId: string, handler: MessageHandler, topic?: string): MessageSubscription;\n query(agentId: string, query: unknown): Promise<unknown>;\n getMessageHistory(topic?: string): Message[];\n clearHistory(): void;\n}\n\n/**\n * Create a message bus for inter-agent communication\n */\nexport function createMessageBus(): MessageBus {\n return new MessageBusImpl();\n}\n\n/**\n * Message bus implementation\n */\nclass MessageBusImpl extends EventEmitter implements MessageBus {\n private messageHistory: Message[] = [];\n private subscriptions: Map<string, MessageSubscription[]> = new Map();\n private queryHandlers: Map<string, (query: unknown) => Promise<unknown>> = new Map();\n private messageCounter: number = 0;\n\n broadcast(message: Omit<Message, 'messageId' | 'timestamp'>): void {\n const fullMessage: Message = {\n ...message,\n messageId: this.generateMessageId(),\n timestamp: Date.now(),\n recipientId: undefined,\n };\n\n this.recordMessage(fullMessage);\n this.emit('broadcast', fullMessage);\n this.notifySubscribers(fullMessage);\n }\n\n sendToAgent(\n recipientId: string,\n message: Omit<Message, 'messageId' | 'timestamp' | 'recipientId'>,\n ): void {\n const fullMessage: Message = {\n ...message,\n messageId: this.generateMessageId(),\n timestamp: Date.now(),\n recipientId,\n };\n\n this.recordMessage(fullMessage);\n this.emit(`message:${recipientId}`, fullMessage);\n this.notifySubscribers(fullMessage);\n }\n\n subscribe(agentId: string, handler: MessageHandler, topic?: string): MessageSubscription {\n const subscriptionId = `sub_${Date.now()}_${Math.random().toString(36).substring(7)}`;\n const subscription: MessageSubscription = {\n subscriptionId,\n agentId,\n topic,\n handler,\n unsubscribe: () => {\n this.unsubscribe(subscriptionId);\n },\n };\n\n const key = topic ? `${agentId}:${topic}` : agentId;\n let subscriptions = this.subscriptions.get(key);\n if (!subscriptions) {\n subscriptions = [];\n this.subscriptions.set(key, subscriptions);\n }\n subscriptions.push(subscription);\n\n return subscription;\n }\n\n async query(agentId: string, query: unknown): Promise<unknown> {\n const handler = this.queryHandlers.get(agentId);\n if (!handler) {\n throw new Error(`No query handler registered for agent: ${agentId}`);\n }\n return handler(query);\n }\n\n getMessageHistory(topic?: string): Message[] {\n if (!topic) {\n return [...this.messageHistory];\n }\n return this.messageHistory.filter(m => m.topic === topic);\n }\n\n clearHistory(): void {\n this.messageHistory = [];\n }\n\n /**\n * Register a query handler for an agent\n */\n registerQueryHandler(agentId: string, handler: (query: unknown) => Promise<unknown>): void {\n this.queryHandlers.set(agentId, handler);\n }\n\n /**\n * Get all subscriptions for an agent\n */\n getSubscriptions(agentId: string): MessageSubscription[] {\n const subscriptions: MessageSubscription[] = [];\n this.subscriptions.forEach(subs => {\n subscriptions.push(...subs.filter(s => s.agentId === agentId));\n });\n return subscriptions;\n }\n\n /**\n * Private: Notify relevant subscribers\n */\n private notifySubscribers(message: Message): void {\n // For broadcasts (no recipientId), notify all subscribers\n // For direct messages, notify only the recipient\n const allSubscriptions = Array.from(this.subscriptions.values()).flat();\n const allSubscribers = allSubscriptions.filter(s => {\n // For direct messages, only notify the intended recipient\n if (message.recipientId && s.agentId !== message.recipientId && s.agentId !== '*') {\n return false;\n }\n // Filter by topic if subscriber specified one\n if (s.topic && s.topic !== message.topic) {\n return false;\n }\n return true;\n });\n\n // Deduplicate by subscriptionId\n const seen = new Set<string>();\n const uniqueSubscribers = allSubscribers.filter(s => {\n if (seen.has(s.subscriptionId)) return false;\n seen.add(s.subscriptionId);\n return true;\n });\n\n // Notify each subscriber\n for (const subscription of uniqueSubscribers) {\n void (async () => {\n try {\n await subscription.handler(message);\n } catch (error) {\n logError(`Error in message handler for ${subscription.agentId}`, {\n error: error instanceof Error ? error : new Error(String(error)),\n });\n }\n })();\n }\n }\n\n /**\n * Private: Record message in history\n */\n private recordMessage(message: Message): void {\n this.messageHistory.push(message);\n // Keep history limited to last 1000 messages\n if (this.messageHistory.length > 1000) {\n this.messageHistory = this.messageHistory.slice(-1000);\n }\n }\n\n /**\n * Private: Generate unique message ID\n */\n private generateMessageId(): string {\n return `msg_${++this.messageCounter}_${Date.now()}`;\n }\n\n /**\n * Private: Unsubscribe\n */\n private unsubscribe(subscriptionId: string): void {\n this.subscriptions.forEach(subs => {\n const index = subs.findIndex(s => s.subscriptionId === subscriptionId);\n if (index !== -1) {\n subs.splice(index, 1);\n }\n });\n }\n}\n\n/**\n * Broadcast a message to all agents\n */\nexport function broadcastMessage(\n bus: MessageBus,\n message: Omit<Message, 'messageId' | 'timestamp' | 'recipientId'>,\n): void {\n bus.broadcast(message);\n}\n\n/**\n * Route a message to a specific agent\n */\nexport function routeMessage(\n bus: MessageBus,\n recipientId: string,\n message: Omit<Message, 'messageId' | 'timestamp' | 'recipientId'>,\n): void {\n bus.sendToAgent(recipientId, message);\n}\n\n/**\n * Subscribe to messages\n */\nexport function subscribeToMessages(\n bus: MessageBus,\n agentId: string,\n handler: MessageHandler,\n topic?: string,\n): MessageSubscription {\n return bus.subscribe(agentId, handler, topic);\n}\n\n/**\n * Message builder helper\n */\nexport class MessageBuilder {\n private message: Partial<Message> = {};\n\n from(senderId: string, senderName: string): this {\n this.message.senderId = senderId;\n this.message.senderName = senderName;\n return this;\n }\n\n to(recipientId: string): this {\n this.message.recipientId = recipientId;\n return this;\n }\n\n topic(topic: string): this {\n this.message.topic = topic;\n return this;\n }\n\n type(type: Message['type']): this {\n this.message.type = type;\n return this;\n }\n\n payload(payload: unknown): this {\n this.message.payload = payload;\n return this;\n }\n\n priority(priority: Message['priority']): this {\n this.message.priority = priority;\n return this;\n }\n\n correlationId(correlationId: string): this {\n this.message.correlationId = correlationId;\n return this;\n }\n\n metadata(metadata: Record<string, unknown>): this {\n this.message.metadata = metadata;\n return this;\n }\n\n build(): Omit<Message, 'messageId' | 'timestamp'> {\n if (\n !this.message.senderId ||\n !this.message.senderName ||\n !this.message.topic ||\n !this.message.type ||\n this.message.payload === undefined\n ) {\n throw new Error(\n 'Missing required message fields: senderId, senderName, topic, type, payload',\n );\n }\n\n return {\n senderId: this.message.senderId,\n senderName: this.message.senderName,\n recipientId: this.message.recipientId,\n topic: this.message.topic,\n type: this.message.type,\n payload: this.message.payload,\n priority: this.message.priority || 'normal',\n correlationId: this.message.correlationId,\n metadata: this.message.metadata,\n };\n }\n}\n\n/**\n * Request-response pattern helper\n */\nexport async function sendRequest(\n bus: MessageBus,\n from: { id: string; name: string },\n to: string,\n topic: string,\n payload: unknown,\n): Promise<unknown> {\n const correlationId = `req_${Date.now()}_${Math.random().toString(36).substring(7)}`;\n\n // Create request message\n const message = new MessageBuilder()\n .from(from.id, from.name)\n .to(to)\n .topic(topic)\n .type('request')\n .payload(payload)\n .correlationId(correlationId)\n .build();\n\n // Wait for response (with timeout)\n return new Promise((resolve, reject) => {\n let subscription: MessageSubscription | null = null;\n\n const timeoutId = setTimeout(() => {\n subscription?.unsubscribe();\n reject(new Error(`Request timeout for correlation ID: ${correlationId}`));\n }, 5000);\n\n subscription = subscribeToMessages(bus, from.id, msg => {\n if (msg.correlationId === correlationId && msg.type === 'response') {\n clearTimeout(timeoutId);\n subscription?.unsubscribe();\n resolve(msg.payload);\n }\n });\n\n // Send request after subscription is active\n routeMessage(bus, to, message);\n });\n}\n","/**\n * Result Aggregation - Combining outputs from multiple agents\n * Based on VERCEL_AI_SDK_V6_PATTERNS.md section 4.4\n * Provides strategies for merging, voting, and consensus-based result aggregation\n */\n\nimport { z } from 'zod';\n\nimport type { AgentResult } from './swarm-executor';\n\n/**\n * Aggregation result\n */\nexport const AggregationResultSchema = z.object({\n strategy: z.enum(['merge', 'vote', 'consensus', 'weighted', 'custom']),\n finalResult: z.unknown(),\n confidence: z.number().min(0).max(1),\n details: z.record(z.string(), z.unknown()).optional(),\n timestamp: z.number(),\n});\n\nexport type AggregationResult = z.infer<typeof AggregationResultSchema>;\n\n/**\n * Aggregation strategy type\n */\nexport type AggregationStrategy = 'merge' | 'vote' | 'consensus' | 'weighted' | 'custom';\n\n/**\n * Aggregation options\n */\nexport interface AggregationOptions {\n strategy?: AggregationStrategy;\n weights?: Record<string, number>;\n threshold?: number;\n timeout?: number;\n}\n\n/**\n * Aggregate results from multiple agents\n * Combines outputs based on specified strategy\n */\nexport function aggregateResults(\n results: AgentResult[],\n options: AggregationOptions = {},\n): AggregationResult {\n const strategy = options.strategy || 'merge';\n const timestamp = Date.now();\n\n let finalResult: unknown;\n let confidence: number;\n let details: Record<string, unknown> | undefined;\n\n switch (strategy) {\n case 'merge': {\n const {\n result: mergedResult,\n confidence: mergedConfidence,\n details: mergedDetails,\n } = mergeResults(results);\n finalResult = mergedResult;\n confidence = mergedConfidence;\n details = mergedDetails;\n break;\n }\n\n case 'vote': {\n const {\n result: votedResult,\n confidence: votedConfidence,\n details: votedDetails,\n } = voteOnResults(results);\n finalResult = votedResult;\n confidence = votedConfidence;\n details = votedDetails;\n break;\n }\n\n case 'consensus': {\n const {\n result: consensusResultValue,\n confidence: consensusConfidence,\n details: consensusInfo,\n } = consensusResult(results);\n finalResult = consensusResultValue;\n confidence = consensusConfidence;\n details = consensusInfo;\n break;\n }\n\n case 'weighted': {\n const {\n result: weightedResult,\n confidence: weightedConfidence,\n details: weightedDetails,\n } = weightedAggregation(results, options.weights || {});\n finalResult = weightedResult;\n confidence = weightedConfidence;\n details = weightedDetails;\n break;\n }\n\n case 'custom': {\n // Custom aggregation would be implemented via composition\n const {\n result: fallbackResult,\n confidence: fallbackConfidence,\n details: fallbackDetails,\n } = mergeResults(results);\n finalResult = fallbackResult;\n confidence = fallbackConfidence;\n details = fallbackDetails;\n break;\n }\n\n default: {\n const {\n result: fallbackResult,\n confidence: fallbackConfidence,\n details: fallbackDetails,\n } = mergeResults(results);\n finalResult = fallbackResult;\n confidence = fallbackConfidence;\n details = fallbackDetails;\n }\n }\n\n return {\n strategy,\n finalResult,\n confidence,\n details,\n timestamp,\n };\n}\n\n/**\n * Merge results from all agents\n * Combines all successful results into a single output\n */\nexport function mergeResults(results: AgentResult[]): {\n result: unknown;\n confidence: number;\n details: Record<string, unknown>;\n} {\n const successfulResults = results.filter(r => r.status === 'success');\n const failedResults = results.filter(r => r.status === 'failed');\n\n const mergedData: Record<string, unknown> = {};\n const agentSummaries: Array<{\n agentId: string;\n agentName: string;\n status: string;\n duration: number;\n }> = [];\n\n for (const result of results) {\n const { agentId, agentName, status, duration, result: agentResult } = result;\n agentSummaries.push({\n agentId,\n agentName,\n status,\n duration,\n });\n\n if (status === 'success' && agentResult) {\n mergedData[agentId] = agentResult;\n }\n }\n\n const confidence =\n successfulResults.length / (successfulResults.length + failedResults.length) || 0;\n\n return {\n result: {\n merged: mergedData,\n summary: {\n total: results.length,\n successful: successfulResults.length,\n failed: failedResults.length,\n },\n },\n confidence: Math.round(confidence * 100) / 100,\n details: {\n agentSummaries,\n timestamp: Date.now(),\n },\n };\n}\n\n/**\n * Vote on results - majority voting\n * Returns the most common successful result\n */\nexport function voteOnResults(results: AgentResult[]): {\n result: unknown;\n confidence: number;\n details: Record<string, unknown>;\n} {\n const successfulResults = results.filter(r => r.status === 'success');\n\n if (successfulResults.length === 0) {\n return {\n result: null,\n confidence: 0,\n details: { error: 'No successful results to vote on' },\n };\n }\n\n // Count votes by result content\n const votes: Map<string, { count: number; agents: string[]; result: AgentResult }> = new Map();\n\n for (const result of successfulResults) {\n const key = JSON.stringify(result.result);\n if (!votes.has(key)) {\n votes.set(key, { count: 0, agents: [], result });\n }\n const vote = votes.get(key);\n if (!vote) {\n continue;\n }\n vote.count++;\n vote.agents.push(result.agentId);\n }\n\n // Find majority\n let majority: { count: number; agents: string[]; result: AgentResult } | null = null;\n for (const vote of votes.values()) {\n if (!majority || vote.count > majority.count) {\n majority = vote;\n }\n }\n\n if (!majority) {\n return {\n result: null,\n confidence: 0,\n details: { error: 'Could not determine majority vote' },\n };\n }\n\n const confidence = majority.count / successfulResults.length;\n\n return {\n result: majority.result.result,\n confidence: Math.round(confidence * 100) / 100,\n details: {\n majorityVotes: majority.count,\n totalVotes: successfulResults.length,\n votingAgents: majority.agents,\n timestamp: Date.now(),\n },\n };\n}\n\n/**\n * Consensus result - weighted consensus\n * Builds consensus from majority agreement with confidence scores\n */\nexport function consensusResult(results: AgentResult[]): {\n result: unknown;\n confidence: number;\n details: Record<string, unknown>;\n} {\n const successfulResults = results.filter(r => r.status === 'success');\n\n if (successfulResults.length === 0) {\n return {\n result: null,\n confidence: 0,\n details: { error: 'No successful results for consensus' },\n };\n }\n\n // Group by result content\n const groups: Map<string, { count: number; agents: string[] }> = new Map();\n\n for (const result of successfulResults) {\n const key = JSON.stringify(result.result);\n let group = groups.get(key);\n if (!group) {\n group = { count: 0, agents: [] };\n groups.set(key, group);\n }\n group.count++;\n group.agents.push(result.agentId);\n }\n\n // Find consensus (>50% agreement)\n let consensusGroup: { count: number; agents: string[]; result: unknown } | null = null;\n\n for (const [key, group] of groups) {\n const agreementRatio = group.count / successfulResults.length;\n if (agreementRatio > 0.5) {\n consensusGroup = {\n count: group.count,\n agents: group.agents,\n result: JSON.parse(key),\n };\n break;\n }\n }\n\n if (!consensusGroup) {\n // No consensus - return most common result\n let maxCount = 0;\n let maxKey: string | null = null;\n for (const [key, group] of groups) {\n if (group.count > maxCount) {\n maxCount = group.count;\n maxKey = key;\n }\n }\n if (maxKey) {\n const group = groups.get(maxKey);\n if (group) {\n consensusGroup = {\n count: maxCount,\n agents: group.agents,\n result: JSON.parse(maxKey),\n };\n }\n }\n }\n\n if (!consensusGroup) {\n return {\n result: null,\n confidence: 0,\n details: { error: 'Could not establish consensus' },\n };\n }\n\n const confidence = consensusGroup.count / successfulResults.length;\n\n return {\n result: consensusGroup.result,\n confidence: Math.round(confidence * 100) / 100,\n details: {\n consensusAgents: consensusGroup.agents,\n agreeingCount: consensusGroup.count,\n totalSuccessful: successfulResults.length,\n totalAgents: results.length,\n timestamp: Date.now(),\n },\n };\n}\n\n/**\n * Weighted aggregation\n * Combines results using specified weights for each agent\n */\nexport function weightedAggregation(\n results: AgentResult[],\n weights: Record<string, number> = {},\n): { result: unknown; confidence: number; details: Record<string, unknown> } {\n const successfulResults = results.filter(r => r.status === 'success');\n\n if (successfulResults.length === 0) {\n return {\n result: null,\n confidence: 0,\n details: { error: 'No successful results for weighted aggregation' },\n };\n }\n\n // Normalize weights\n const normalizedWeights: Record<string, number> = {};\n let totalWeight = 0;\n\n for (const result of successfulResults) {\n const weight = weights[result.agentId] || 1;\n normalizedWeights[result.agentId] = weight;\n totalWeight += weight;\n }\n\n // Calculate weighted results\n const weightedResults: Array<{ result: unknown; weight: number; agentId: string }> = [];\n let totalConfidence = 0;\n\n for (const result of successfulResults) {\n const weight = (normalizedWeights[result.agentId] ?? 0) / totalWeight;\n weightedResults.push({\n result: result.result,\n weight,\n agentId: result.agentId,\n });\n totalConfidence += weight;\n }\n\n // Aggregate weighted results\n const aggregatedData: Record<string, unknown> = {};\n for (const wr of weightedResults) {\n if (typeof wr.result === 'object' && wr.result !== null) {\n for (const [key, value] of Object.entries(wr.result as Record<string, unknown>)) {\n if (typeof value === 'number') {\n aggregatedData[key] = ((aggregatedData[key] as number) || 0) + value * wr.weight;\n }\n }\n }\n }\n\n return {\n result: aggregatedData,\n confidence: Math.round(totalConfidence * 100) / 100,\n details: {\n weightedResults: weightedResults.map(wr => ({\n agentId: wr.agentId,\n weight: wr.weight,\n })),\n timestamp: Date.now(),\n },\n };\n}\n\n/**\n * Custom aggregator interface\n */\nexport interface CustomAggregator {\n aggregate(results: AgentResult[]): Promise<AggregationResult>;\n}\n\n/**\n * Build a custom aggregator\n */\nexport function buildCustomAggregator(\n aggregateFn: (results: AgentResult[]) => unknown,\n): CustomAggregator {\n return {\n aggregate: async (results: AgentResult[]): Promise<AggregationResult> => {\n return {\n strategy: 'custom',\n finalResult: aggregateFn(results),\n confidence: results.length\n ? results.filter(r => r.status === 'success').length / results.length\n : 0,\n timestamp: Date.now(),\n };\n },\n };\n}\n\n/**\n * Compare aggregation strategies\n * Returns metrics for different strategies applied to same results\n */\nexport function compareStrategies(results: AgentResult[]): Record<string, AggregationResult> {\n const strategies: AggregationStrategy[] = ['merge', 'vote', 'consensus', 'weighted'];\n const comparisons: Record<string, AggregationResult> = {};\n\n for (const strategy of strategies) {\n try {\n comparisons[strategy] = aggregateResults(results, { strategy });\n } catch (error) {\n comparisons[strategy] = {\n strategy,\n finalResult: null,\n confidence: 0,\n details: { error: error instanceof Error ? error.message : 'Unknown error' },\n timestamp: Date.now(),\n };\n }\n }\n\n return comparisons;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { JsonToSseTransformStream, NoObjectGeneratedError, Output, SerialJobExecutor, ToolLoopAgent, UI_MESSAGE_STREAM_HEADERS, addToolInputExamplesMiddleware, asSchema, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createGateway, createIdGenerator, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, dynamicTool, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateSpeech, experimental_generateVideo, experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, gateway, generateId, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, jsonSchema, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parseJsonEventStream, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, tool, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapImageModel, wrapLanguageModel, wrapProvider, zodSchema } from "ai";
|
|
2
|
+
import { createMCPClient as createMCPClient$1 } from "@ai-sdk/mcp";
|
|
3
|
+
import { Experimental_StdioMCPTransport as Experimental_StdioMCPTransport$1 } from "@ai-sdk/mcp/mcp-stdio";
|
|
4
|
+
import { anthropic, createAnthropic } from "@ai-sdk/anthropic";
|
|
5
|
+
import { createOpenAI, openai } from "@ai-sdk/openai";
|
|
6
|
+
import { createGoogleGenerativeAI, google } from "@ai-sdk/google";
|
|
7
|
+
import { createXai, xai } from "@ai-sdk/xai";
|
|
8
|
+
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
|
|
9
|
+
|
|
10
|
+
//#region src/shared/ai-runtime.ts
|
|
11
|
+
/** Convert SDK LanguageModelUsage to OneApp TokenUsage. */
|
|
12
|
+
function convertFromSDKUsage(usage) {
|
|
13
|
+
const promptTokens = usage.inputTokens ?? 0;
|
|
14
|
+
const completionTokens = usage.outputTokens ?? 0;
|
|
15
|
+
return {
|
|
16
|
+
promptTokens,
|
|
17
|
+
completionTokens,
|
|
18
|
+
totalTokens: promptTokens + completionTokens
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** Create an empty TokenUsage object. */
|
|
22
|
+
function createEmptyUsage() {
|
|
23
|
+
return {
|
|
24
|
+
promptTokens: 0,
|
|
25
|
+
completionTokens: 0,
|
|
26
|
+
totalTokens: 0
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/** Add two TokenUsage objects together. */
|
|
30
|
+
function addUsage(a, b) {
|
|
31
|
+
if (!b) return a;
|
|
32
|
+
return {
|
|
33
|
+
promptTokens: a.promptTokens + b.promptTokens,
|
|
34
|
+
completionTokens: a.completionTokens + b.completionTokens,
|
|
35
|
+
totalTokens: a.totalTokens + b.totalTokens
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** Resolves a ModelRef to a model ID string. */
|
|
39
|
+
function resolveModelId(model) {
|
|
40
|
+
if (typeof model === "string") return model;
|
|
41
|
+
return model.modelId;
|
|
42
|
+
}
|
|
43
|
+
/** Runtime guard for ModelRef values. */
|
|
44
|
+
function isModelRef(value) {
|
|
45
|
+
if (typeof value === "string") return value.trim().length > 0;
|
|
46
|
+
if (typeof value !== "object" || value === null) return false;
|
|
47
|
+
const candidate = value;
|
|
48
|
+
return typeof candidate.modelId === "string" && candidate.modelId.trim().length > 0;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Generates a unique identifier.
|
|
52
|
+
* Uses crypto.randomUUID() when available (Node.js 14.17+, modern browsers),
|
|
53
|
+
* otherwise falls back to timestamp + random for local correlation IDs.
|
|
54
|
+
* Note: Fallback is not suitable for security-sensitive contexts or high-frequency distributed scenarios.
|
|
55
|
+
*/
|
|
56
|
+
function generateUniqueId(options = {}) {
|
|
57
|
+
const requireSecure = options.requireSecure ?? true;
|
|
58
|
+
if (typeof crypto !== "undefined") {
|
|
59
|
+
if (crypto.randomUUID) return crypto.randomUUID();
|
|
60
|
+
if (crypto.getRandomValues) {
|
|
61
|
+
const bytes = new Uint8Array(16);
|
|
62
|
+
crypto.getRandomValues(bytes);
|
|
63
|
+
const byte6 = bytes[6] ?? 0;
|
|
64
|
+
const byte8 = bytes[8] ?? 0;
|
|
65
|
+
bytes[6] = byte6 & 15 | 64;
|
|
66
|
+
bytes[8] = byte8 & 63 | 128;
|
|
67
|
+
const toHex = (value) => value.toString(16).padStart(2, "0");
|
|
68
|
+
const byte = (index) => bytes[index] ?? 0;
|
|
69
|
+
return [
|
|
70
|
+
`${toHex(byte(0))}${toHex(byte(1))}${toHex(byte(2))}${toHex(byte(3))}`,
|
|
71
|
+
`${toHex(byte(4))}${toHex(byte(5))}`,
|
|
72
|
+
`${toHex(byte(6))}${toHex(byte(7))}`,
|
|
73
|
+
`${toHex(byte(8))}${toHex(byte(9))}`,
|
|
74
|
+
`${toHex(byte(10))}${toHex(byte(11))}${toHex(byte(12))}${toHex(byte(13))}${toHex(byte(14))}${toHex(byte(15))}`
|
|
75
|
+
].join("-");
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (requireSecure) throw new Error("Secure random generator unavailable for generateId");
|
|
79
|
+
const timestamp = Date.now().toString(36);
|
|
80
|
+
return `${timestamp}-${timestamp.slice(-4)}`;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
//#endregion
|
|
84
|
+
export { generateObject as $, createOpenAI as A, smoothStream as At, dynamicTool as B, wrapEmbeddingModel as Bt, createAgentUIStream as C, pipeUIMessageStreamToResponse as Ct, createGoogleGenerativeAI as D, safeValidateUIMessages as Dt, createGateway as E, rerank as Et, createUIMessageStreamResponse as F, tool as Ft, experimental_generateSpeech as G, zodSchema as Gt, embedMany as H, wrapLanguageModel as Ht, createXai as I, toolModelMessageSchema as It, extractJsonMiddleware as J, experimental_generateVideo as K, customProvider as L, uiMessageChunkSchema as Lt, createProviderRegistry as M, streamObject as Mt, createTextStreamResponse as N, streamText as Nt, createIdGenerator as O, simulateReadableStream as Ot, createUIMessageStream as P, systemModelMessageSchema as Pt, generateImage as Q, defaultEmbeddingSettingsMiddleware as R, userModelMessageSchema as Rt, cosineSimilarity as S, pipeTextStreamToResponse as St, createAnthropic as T, readUIMessageStream as Tt, experimental_createProviderRegistry as U, wrapProvider as Ut, embed as V, wrapImageModel as Vt, experimental_customProvider as W, xai as Wt, gateway as X, extractReasoningMiddleware as Y, generateId as Z, assistantModelMessageSchema as _, modelMessageSchema as _t, isModelRef as a, google as at, convertFileListToFileUIParts as b, parsePartialJson as bt, JsonToSseTransformStream as c, isDeepEqualData as ct, SerialJobExecutor as d, isTextUIPart as dt, generateText as et, ToolLoopAgent as f, isToolOrDynamicToolUIPart as ft, asSchema as g, lastAssistantMessageIsCompleteWithToolCalls as gt, anthropic as h, lastAssistantMessageIsCompleteWithApprovalResponses as ht, generateUniqueId as i, getToolOrDynamicToolName as it, createOpenAICompatible as j, stepCountIs as jt, createMCPClient$1 as k, simulateStreamingMiddleware as kt, NoObjectGeneratedError as l, isFileUIPart as lt, addToolInputExamplesMiddleware as m, jsonSchema as mt, convertFromSDKUsage as n, getTextFromDataUrl as nt, resolveModelId as o, hasToolCall as ot, UI_MESSAGE_STREAM_HEADERS as p, isToolUIPart as pt, experimental_transcribe as q, createEmptyUsage as r, getToolName as rt, Experimental_StdioMCPTransport$1 as s, isDataUIPart as st, addUsage as t, getStaticToolName as tt, Output as u, isReasoningUIPart as ut, callCompletionApi as v, openai as vt, createAgentUIStreamResponse as w, pruneMessages as wt, convertToModelMessages as x, pipeAgentUIStreamToResponse as xt, consumeStream as y, parseJsonEventStream as yt, defaultSettingsMiddleware as z, validateUIMessages as zt };
|
|
85
|
+
//# sourceMappingURL=ai-runtime-CDzQztTt.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-runtime-CDzQztTt.mjs","names":[],"sources":["../src/shared/ai-runtime.ts"],"sourcesContent":["/**\n * @fileoverview Custom OneApp runtime functions.\n *\n * SDK runtime re-exports live in ./sdk-runtime.ts.\n * This file contains ONLY custom OneApp functions that operate on SDK types.\n *\n * To add a new helper: add the function here with JSDoc + explicit return type.\n */\n\nimport type { SDKLanguageModelUsage, SDKLanguageModel } from './sdk-types';\n\n// ---------------------------------------------------------------------------\n// CUSTOM TYPES — co-located with the functions that use them\n// ---------------------------------------------------------------------------\n\n/**\n * TokenUsage type for tracking token consumption.\n * Uses familiar promptTokens/completionTokens naming for backwards compatibility.\n *\n * Note: SDK uses inputTokens/outputTokens. Use convertFromSDKUsage() to convert.\n */\nexport interface TokenUsage {\n readonly promptTokens: number;\n readonly completionTokens: number;\n readonly totalTokens: number;\n}\n\n/** Reference to a language model — ID string or model instance. */\nexport type ModelRef = string | SDKLanguageModel;\n\n// ---------------------------------------------------------------------------\n// TOKEN USAGE HELPERS\n// ---------------------------------------------------------------------------\n\n/** Convert SDK LanguageModelUsage to OneApp TokenUsage. */\nexport function convertFromSDKUsage(usage: SDKLanguageModelUsage): TokenUsage {\n const promptTokens = usage.inputTokens ?? 0;\n const completionTokens = usage.outputTokens ?? 0;\n return {\n promptTokens,\n completionTokens,\n totalTokens: promptTokens + completionTokens,\n };\n}\n\n/** Create an empty TokenUsage object. */\nexport function createEmptyUsage(): TokenUsage {\n return {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n };\n}\n\n/** Add two TokenUsage objects together. */\nexport function addUsage(a: TokenUsage, b: TokenUsage | undefined): TokenUsage {\n if (!b) return a;\n return {\n promptTokens: a.promptTokens + b.promptTokens,\n completionTokens: a.completionTokens + b.completionTokens,\n totalTokens: a.totalTokens + b.totalTokens,\n };\n}\n\n// ---------------------------------------------------------------------------\n// MODEL REFERENCE HELPERS\n// ---------------------------------------------------------------------------\n\n/** Resolves a ModelRef to a model ID string. */\nexport function resolveModelId(model: ModelRef): string {\n if (typeof model === 'string') {\n return model;\n }\n return model.modelId;\n}\n\n/** Runtime guard for ModelRef values. */\nexport function isModelRef(value: unknown): value is ModelRef {\n if (typeof value === 'string') {\n return value.trim().length > 0;\n }\n\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n\n const candidate = value as { modelId?: unknown };\n return typeof candidate.modelId === 'string' && candidate.modelId.trim().length > 0;\n}\n\n// generateId is re-exported from the Vercel AI SDK via sdk-runtime.ts.\n// Use generateUniqueId() from this file when you need the full options API.\n\n// ---------------------------------------------------------------------------\n// ID GENERATION\n// ---------------------------------------------------------------------------\n\n/**\n * Generates a unique identifier.\n * Uses crypto.randomUUID() when available (Node.js 14.17+, modern browsers),\n * otherwise falls back to timestamp + random for local correlation IDs.\n * Note: Fallback is not suitable for security-sensitive contexts or high-frequency distributed scenarios.\n */\nexport function generateUniqueId(options: { requireSecure?: boolean } = {}): string {\n const requireSecure = options.requireSecure ?? true;\n\n if (typeof crypto !== 'undefined') {\n if (crypto.randomUUID) {\n return crypto.randomUUID();\n }\n\n if (crypto.getRandomValues) {\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n const byte6 = bytes[6] ?? 0;\n const byte8 = bytes[8] ?? 0;\n bytes[6] = (byte6 & 0x0f) | 0x40;\n bytes[8] = (byte8 & 0x3f) | 0x80;\n\n const toHex = (value: number): string => value.toString(16).padStart(2, '0');\n const byte = (index: number): number => bytes[index] ?? 0;\n return [\n `${toHex(byte(0))}${toHex(byte(1))}${toHex(byte(2))}${toHex(byte(3))}`,\n `${toHex(byte(4))}${toHex(byte(5))}`,\n `${toHex(byte(6))}${toHex(byte(7))}`,\n `${toHex(byte(8))}${toHex(byte(9))}`,\n `${toHex(byte(10))}${toHex(byte(11))}${toHex(byte(12))}${toHex(byte(13))}${toHex(byte(14))}${toHex(byte(15))}`,\n ].join('-');\n }\n }\n\n if (requireSecure) {\n throw new Error('Secure random generator unavailable for generateId');\n }\n\n const timestamp = Date.now().toString(36);\n const entropy = `${timestamp}-${timestamp.slice(-4)}`;\n return entropy;\n}\n"],"mappings":";;;;;;;;;;;AAmCA,SAAgB,oBAAoB,OAA0C;CAC5E,MAAM,eAAe,MAAM,eAAe;CAC1C,MAAM,mBAAmB,MAAM,gBAAgB;AAC/C,QAAO;EACL;EACA;EACA,aAAa,eAAe;EAC7B;;;AAIH,SAAgB,mBAA+B;AAC7C,QAAO;EACL,cAAc;EACd,kBAAkB;EAClB,aAAa;EACd;;;AAIH,SAAgB,SAAS,GAAe,GAAuC;AAC7E,KAAI,CAAC,EAAG,QAAO;AACf,QAAO;EACL,cAAc,EAAE,eAAe,EAAE;EACjC,kBAAkB,EAAE,mBAAmB,EAAE;EACzC,aAAa,EAAE,cAAc,EAAE;EAChC;;;AAQH,SAAgB,eAAe,OAAyB;AACtD,KAAI,OAAO,UAAU,SACnB,QAAO;AAET,QAAO,MAAM;;;AAIf,SAAgB,WAAW,OAAmC;AAC5D,KAAI,OAAO,UAAU,SACnB,QAAO,MAAM,MAAM,CAAC,SAAS;AAG/B,KAAI,OAAO,UAAU,YAAY,UAAU,KACzC,QAAO;CAGT,MAAM,YAAY;AAClB,QAAO,OAAO,UAAU,YAAY,YAAY,UAAU,QAAQ,MAAM,CAAC,SAAS;;;;;;;;AAgBpF,SAAgB,iBAAiB,UAAuC,EAAE,EAAU;CAClF,MAAM,gBAAgB,QAAQ,iBAAiB;AAE/C,KAAI,OAAO,WAAW,aAAa;AACjC,MAAI,OAAO,WACT,QAAO,OAAO,YAAY;AAG5B,MAAI,OAAO,iBAAiB;GAC1B,MAAM,QAAQ,IAAI,WAAW,GAAG;AAChC,UAAO,gBAAgB,MAAM;GAC7B,MAAM,QAAQ,MAAM,MAAM;GAC1B,MAAM,QAAQ,MAAM,MAAM;AAC1B,SAAM,KAAM,QAAQ,KAAQ;AAC5B,SAAM,KAAM,QAAQ,KAAQ;GAE5B,MAAM,SAAS,UAA0B,MAAM,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI;GAC5E,MAAM,QAAQ,UAA0B,MAAM,UAAU;AACxD,UAAO;IACL,GAAG,MAAM,KAAK,EAAE,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC;IACpE,GAAG,MAAM,KAAK,EAAE,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC;IAClC,GAAG,MAAM,KAAK,EAAE,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC;IAClC,GAAG,MAAM,KAAK,EAAE,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC;IAClC,GAAG,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK,GAAG,CAAC;IAC7G,CAAC,KAAK,IAAI;;;AAIf,KAAI,cACF,OAAM,IAAI,MAAM,qDAAqD;CAGvE,MAAM,YAAY,KAAK,KAAK,CAAC,SAAS,GAAG;AAEzC,QADgB,GAAG,UAAU,GAAG,UAAU,MAAM,GAAG"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { AbstractChat as SDKAbstractChat, Agent as SDKAgent, AgentCallParameters as SDKAgentCallParameters, AgentStreamParameters as SDKAgentStreamParameters, AssistantContent as SDKAssistantContent, AssistantModelMessage as SDKAssistantMessage, AssistantModelMessage as SDKAssistantModelMessage, AsyncIterableStream as SDKAsyncIterableStream, CallSettings as SDKCallSettings, CallWarning as SDKCallWarning, ChatAddToolApproveResponseFunction as SDKChatAddToolApproveResponseFunction, ChatInit as SDKChatInit, ChatOnDataCallback as SDKChatOnDataCallback, ChatOnErrorCallback as SDKChatOnErrorCallback, ChatOnFinishCallback as SDKChatOnFinishCallback, ChatOnToolCallCallback as SDKChatOnToolCallCallback, ChatRequestOptions as SDKChatRequestOptions, ChatState as SDKChatState, ChatStatus as SDKChatStatus, ChatTransport as SDKChatTransport, ChunkDetector as SDKChunkDetector, CompletionRequestOptions as SDKCompletionRequestOptions, ContentPart as SDKContentPart, CreateUIMessage as SDKCreateUIMessage, DataContent as SDKDataContent, DataUIPart as SDKDataUIPart, DeepPartial, DefaultChatTransport as SDKDefaultChatTransport, DirectChatTransport as SDKDirectChatTransport, DirectChatTransportOptions as SDKDirectChatTransportOptions, DynamicToolCall as SDKDynamicToolCall, DynamicToolError as SDKDynamicToolError, DynamicToolResult as SDKDynamicToolResult, EmbedManyResult as SDKEmbedManyResult, EmbedResult as SDKEmbedResult, Embedding as SDKEmbedding, EmbeddingModel as SDKEmbeddingModel, EmbeddingModelMiddleware as SDKEmbeddingModelMiddleware, EmbeddingModelUsage as SDKEmbeddingModelUsage, ErrorHandler as SDKErrorHandler, FilePart as SDKFilePart, FileUIPart as SDKFileUIPart, FlexibleSchema as SDKFlexibleSchema, GenerateImageResult as SDKGenerateImageResult, GenerateObjectResult as SDKGenerateObjectResult, GenerateTextOnFinishCallback as SDKGenerateTextOnFinishCallback, GenerateTextOnStepFinishCallback as SDKGenerateTextOnStepFinishCallback, GenerateTextResult as SDKGenerateTextResult, GenerateVideoPrompt as SDKGenerateVideoPrompt, GenerateVideoResult as SDKGenerateVideoResult, GeneratedAudioFile as SDKGeneratedAudioFile, GeneratedFile as SDKGeneratedFile, HttpChatTransport as SDKHttpChatTransport, HttpChatTransportInitOptions as SDKHttpChatTransportInitOptions, ImageModel as SDKImageModel, ImageModelMiddleware as SDKImageModelMiddleware, ImageModelProviderMetadata as SDKImageModelProviderMetadata, ImageModelResponseMetadata as SDKImageModelResponseMetadata, ImageModelUsage as SDKImageModelUsage, ImagePart as SDKImagePart, InferAgentUIMessage as SDKInferAgentUIMessage, InferSchema as SDKInferSchema, InferToolInput as SDKInferToolInput, InferToolOutput as SDKInferToolOutput, InferUIDataParts as SDKInferUIDataParts, InferUIMessageChunk as SDKInferUIMessageChunk, InferUITool as SDKInferUITool, InferUITools as SDKInferUITools, JSONSchema7, JSONValue, JsonToSseTransformStream, LanguageModel as SDKLanguageModel, LanguageModelMiddleware as SDKLanguageModelMiddleware, LanguageModelRequestMetadata as SDKLanguageModelRequestMetadata, LanguageModelResponseMetadata as SDKLanguageModelResponseMetadata, LanguageModelUsage as SDKLanguageModelUsage, LogWarningsFunction as SDKLogWarningsFunction, ModelMessage as SDKModelMessage, NoObjectGeneratedError, NoObjectGeneratedError as SDKNoObjectGeneratedError, ObjectStreamPart as SDKObjectStreamPart, Output, PrepareReconnectToStreamRequest as SDKPrepareReconnectToStreamRequest, PrepareSendMessagesRequest as SDKPrepareSendMessagesRequest, PrepareStepFunction as SDKPrepareStepFunction, PrepareStepResult as SDKPrepareStepResult, Provider as SDKProvider, ProviderMetadata as SDKProviderMetadata, ProviderRegistryProvider as SDKProviderRegistryProvider, ReasoningUIPart as SDKReasoningUIPart, RepairTextFunction as SDKRepairTextFunction, RerankResult as SDKRerankResult, RerankingModel as SDKRerankingModel, SafeValidateUIMessagesResult as SDKSafeValidateUIMessagesResult, Schema as SDKSchema, SerialJobExecutor, SourceDocumentUIPart as SDKSourceDocumentUIPart, SourceUrlUIPart as SDKSourceUrlUIPart, SpeechModel as SDKSpeechModel, SpeechModelResponseMetadata as SDKSpeechModelResponseMetadata, StaticToolCall as SDKStaticToolCall, StaticToolError as SDKStaticToolError, StaticToolOutputDenied as SDKStaticToolOutputDenied, StaticToolResult as SDKStaticToolResult, StepResult as SDKStepResult, StepStartUIPart as SDKStepStartUIPart, StopCondition as SDKStopCondition, StreamObjectOnFinishCallback as SDKStreamObjectOnFinishCallback, StreamObjectResult as SDKStreamObjectResult, StreamTextOnChunkCallback as SDKStreamTextOnChunkCallback, StreamTextOnErrorCallback as SDKStreamTextOnErrorCallback, StreamTextOnFinishCallback as SDKStreamTextOnFinishCallback, StreamTextOnStepFinishCallback as SDKStreamTextOnStepFinishCallback, StreamTextResult as SDKStreamTextResult, StreamTextTransform as SDKStreamTextTransform, SystemModelMessage as SDKSystemMessage, SystemModelMessage as SDKSystemModelMessage, TelemetrySettings as SDKTelemetrySettings, TextPart as SDKTextPart, TextStreamChatTransport as SDKTextStreamChatTransport, TextStreamPart as SDKTextStreamPart, TextUIPart as SDKTextUIPart, TimeoutConfiguration as SDKTimeoutConfiguration, Tool as SDKTool, ToolApprovalRequest as SDKToolApprovalRequest, ToolApprovalRequestOutput as SDKToolApprovalRequestOutput, ToolApprovalResponse as SDKToolApprovalResponse, ToolCallPart as SDKToolCallPart, ToolCallRepairFunction as SDKToolCallRepairFunction, ToolChoice as SDKToolChoice, ToolContent as SDKToolContent, ToolExecuteFunction as SDKToolExecuteFunction, ToolExecutionOptions as SDKToolExecutionOptions, ToolLoopAgent, ToolLoopAgent as SDKToolLoopAgent, ToolLoopAgentOnFinishCallback as SDKToolLoopAgentOnFinishCallback, ToolLoopAgentOnStepFinishCallback as SDKToolLoopAgentOnStepFinishCallback, ToolLoopAgentSettings as SDKToolLoopAgentSettings, ToolModelMessage as SDKToolMessage, ToolModelMessage as SDKToolModelMessage, ToolResultPart as SDKToolResultPart, ToolSet as SDKToolSet, ToolUIPart as SDKToolUIPart, TranscriptionModel as SDKTranscriptionModel, TranscriptionModelResponseMetadata as SDKTranscriptionModelResponseMetadata, TypedToolCall as SDKTypedToolCall, TypedToolError as SDKTypedToolError, TypedToolOutputDenied as SDKTypedToolOutputDenied, TypedToolResult as SDKTypedToolResult, UIDataPartSchemas as SDKUIDataPartSchemas, UIDataTypes as SDKUIDataTypes, UIMessage as SDKUIMessage, UIMessageChunk as SDKUIMessageChunk, UIMessagePart as SDKUIMessagePart, UIMessageStreamError as SDKUIMessageStreamError, UIMessageStreamOnFinishCallback as SDKUIMessageStreamOnFinishCallback, UIMessageStreamOptions as SDKUIMessageStreamOptions, UIMessageStreamWriter as SDKUIMessageStreamWriter, UITool as SDKUITool, UIToolInvocation as SDKUIToolInvocation, UITools as SDKUITools, UI_MESSAGE_STREAM_HEADERS, UseCompletionOptions as SDKUseCompletionOptions, UserContent as SDKUserContent, UserModelMessage as SDKUserMessage, UserModelMessage as SDKUserModelMessage, Warning as SDKWarning, addToolInputExamplesMiddleware, asSchema, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToModelMessages, cosineSimilarity, createAgentUIStream, createAgentUIStreamResponse, createGateway, createIdGenerator, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultEmbeddingSettingsMiddleware, defaultSettingsMiddleware, dynamicTool, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, experimental_generateSpeech, experimental_generateVideo, experimental_transcribe, extractJsonMiddleware, extractReasoningMiddleware, gateway, generateId, generateImage, generateObject, generateText, getStaticToolName, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, jsonSchema, lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parseJsonEventStream, parsePartialJson, pipeAgentUIStreamToResponse, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, rerank, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, tool, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapEmbeddingModel, wrapImageModel, wrapLanguageModel, wrapProvider, zodSchema } from "ai";
|
|
2
|
+
import { MCPClient as SDKMCPClient, OAuthClientProvider as SDKOAuthClientProvider, createMCPClient as createMCPClient$1 } from "@ai-sdk/mcp";
|
|
3
|
+
import { Experimental_StdioMCPTransport as Experimental_StdioMCPTransport$1 } from "@ai-sdk/mcp/mcp-stdio";
|
|
4
|
+
import { anthropic, createAnthropic } from "@ai-sdk/anthropic";
|
|
5
|
+
import { createOpenAI, openai } from "@ai-sdk/openai";
|
|
6
|
+
import { createGoogleGenerativeAI, google } from "@ai-sdk/google";
|
|
7
|
+
import { createXai, xai } from "@ai-sdk/xai";
|
|
8
|
+
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
|
|
9
|
+
import { EmbeddingModelV3 as SDKEmbeddingModelV3, EmbeddingModelV3CallOptions as SDKEmbeddingModelV3CallOptions, EmbeddingModelV3Embedding as SDKEmbeddingModelV3Embedding, EmbeddingModelV3Middleware as SDKEmbeddingModelV3Middleware, Experimental_VideoModelV3 as SDKExperimentalVideoModelV3, ImageModelV3 as SDKImageModelV3, ImageModelV3Middleware as SDKImageModelV3Middleware, LanguageModelV3 as SDKLanguageModelV3, LanguageModelV3CallOptions as SDKLanguageModelV3CallOptions, LanguageModelV3Content as SDKLanguageModelV3Content, LanguageModelV3GenerateResult as SDKLanguageModelV3GenerateResult, LanguageModelV3Message as SDKLanguageModelV3Message, LanguageModelV3Middleware as SDKLanguageModelV3Middleware, LanguageModelV3Prompt as SDKLanguageModelV3Prompt, LanguageModelV3Source as SDKLanguageModelV3Source, LanguageModelV3StreamPart as SDKLanguageModelV3StreamPart, LanguageModelV3ToolCall as SDKLanguageModelV3ToolCall, LanguageModelV3ToolResult as SDKLanguageModelV3ToolResult, LanguageModelV3ToolResultOutput as SDKLanguageModelV3ToolResultOutput, ProviderV3 as SDKProviderV3, RerankingModelV3 as SDKRerankingModelV3, SharedV3ProviderMetadata as SDKSharedV3ProviderMetadata, SharedV3Warning as SDKSharedV3Warning, SpeechModelV3 as SDKSpeechModelV3, TranscriptionModelV3 as SDKTranscriptionModelV3 } from "@ai-sdk/provider";
|
|
10
|
+
|
|
11
|
+
//#region src/shared/ai-types.d.ts
|
|
12
|
+
type SDKToolResultOutput = SDKToolResultPart['output'];
|
|
13
|
+
type SDKWrapGenerateArgs = Parameters<NonNullable<SDKLanguageModelV3Middleware['wrapGenerate']>>[0];
|
|
14
|
+
type SDKWrapStreamArgs = Parameters<NonNullable<SDKLanguageModelV3Middleware['wrapStream']>>[0];
|
|
15
|
+
type SDKTransformParamsArgs = Parameters<NonNullable<SDKLanguageModelV3Middleware['transformParams']>>[0];
|
|
16
|
+
type SDKMessagePart = SDKTextPart | SDKFilePart | SDKImagePart | SDKToolCallPart | SDKToolResultPart | SDKToolApprovalResponse;
|
|
17
|
+
type SDKToolInvocationState = 'partial-call' | 'call' | 'result';
|
|
18
|
+
type ToolShimmerState = 'pending' | 'loading' | 'success' | 'error';
|
|
19
|
+
type MessageRole = 'user' | 'assistant' | 'system' | 'tool';
|
|
20
|
+
type CoreMessageRole = 'user' | 'assistant' | 'system';
|
|
21
|
+
interface BaseMessage {
|
|
22
|
+
readonly role: MessageRole;
|
|
23
|
+
readonly content: string;
|
|
24
|
+
}
|
|
25
|
+
interface CoreMessage {
|
|
26
|
+
readonly role: CoreMessageRole;
|
|
27
|
+
readonly content: string;
|
|
28
|
+
}
|
|
29
|
+
type StepFinishReason = 'stop' | 'tool-calls' | 'length' | 'content-filter';
|
|
30
|
+
type AgentFinishReason = 'stop' | 'max-steps' | 'abort';
|
|
31
|
+
type RiskLevel = 'low' | 'medium' | 'high';
|
|
32
|
+
type ComplianceSignalType = 'guardrail.blocked' | 'guardrail.sanitized' | 'tool.awaiting-approval' | 'tool.executed' | 'tool.denied' | 'loop.started' | 'loop.completed' | 'loop.exhausted' | 'loop.error' | 'loop.timeout' | 'loop.budget_exceeded' | 'loop.approval_required';
|
|
33
|
+
interface ComplianceSignal {
|
|
34
|
+
type: ComplianceSignalType;
|
|
35
|
+
timestamp: number;
|
|
36
|
+
metadata?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/shared/ai-runtime.d.ts
|
|
40
|
+
interface TokenUsage {
|
|
41
|
+
readonly promptTokens: number;
|
|
42
|
+
readonly completionTokens: number;
|
|
43
|
+
readonly totalTokens: number;
|
|
44
|
+
}
|
|
45
|
+
type ModelRef = string | SDKLanguageModel;
|
|
46
|
+
declare function convertFromSDKUsage(usage: SDKLanguageModelUsage): TokenUsage;
|
|
47
|
+
declare function createEmptyUsage(): TokenUsage;
|
|
48
|
+
declare function addUsage(a: TokenUsage, b: TokenUsage | undefined): TokenUsage;
|
|
49
|
+
declare function resolveModelId(model: ModelRef): string;
|
|
50
|
+
declare function isModelRef(value: unknown): value is ModelRef;
|
|
51
|
+
declare function generateUniqueId(options?: {
|
|
52
|
+
requireSecure?: boolean;
|
|
53
|
+
}): string;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { createUIMessageStreamResponse as $, SDKToolChoice as $i, SDKEmbeddingModelV3Embedding as $n, SDKNoObjectGeneratedError as $r, tool as $t, ToolLoopAgent as A, SDKUITools as Aa, SDKStopCondition as Ai, SDKChatState as An, SDKInferUIMessageChunk as Ar, isToolOrDynamicToolUIPart as At, cosineSimilarity as B, SDKSystemModelMessage as Bi, SDKDirectChatTransport as Bn, SDKLanguageModelV3Content as Br, pipeTextStreamToResponse as Bt, StepFinishReason as C, SDKUIMessagePart as Ca, SDKSpeechModelV3 as Ci, SDKChatAddToolApproveResponseFunction as Cn, SDKImageModelV3Middleware as Cr, google as Ct, NoObjectGeneratedError as D, SDKUIMessageStreamWriter as Da, SDKStaticToolResult as Di, SDKChatOnFinishCallback as Dn, SDKInferToolInput as Dr, isFileUIPart as Dt, JsonToSseTransformStream as E, SDKUIMessageStreamOptions as Ea, SDKStaticToolOutputDenied as Ei, SDKChatOnErrorCallback as En, SDKInferSchema as Er, isDeepEqualData as Et, assistantModelMessageSchema as F, SDKWarning as Fa, SDKStreamTextOnFinishCallback as Fi, SDKContentPart as Fn, SDKLanguageModelRequestMetadata as Fr, modelMessageSchema as Ft, createGoogleGenerativeAI as G, SDKTextUIPart as Gi, SDKEmbedManyResult as Gn, SDKLanguageModelV3Source as Gr, safeValidateUIMessages as Gt, createAgentUIStreamResponse as H, SDKTextPart as Hi, SDKDynamicToolCall as Hn, SDKLanguageModelV3Message as Hr, pruneMessages as Ht, callCompletionApi as I, SDKStreamTextOnStepFinishCallback as Ii, SDKCreateUIMessage as In, SDKLanguageModelResponseMetadata as Ir, openai as It, createOpenAI as J, SDKToolApprovalRequest as Ji, SDKEmbeddingModel as Jn, SDKLanguageModelV3ToolResult as Jr, smoothStream as Jt, createIdGenerator as K, SDKTimeoutConfiguration as Ki, SDKEmbedResult as Kn, SDKLanguageModelV3StreamPart as Kr, simulateReadableStream as Kt, consumeStream as L, SDKStreamTextResult as Li, SDKDataContent as Ln, SDKLanguageModelUsage as Lr, parseJsonEventStream as Lt, addToolInputExamplesMiddleware as M, SDKUserContent as Ma, SDKStreamObjectResult as Mi, SDKChatTransport as Mn, SDKInferUITools as Mr, jsonSchema as Mt, anthropic as N, SDKUserMessage as Na, SDKStreamTextOnChunkCallback as Ni, SDKChunkDetector as Nn, SDKLanguageModel as Nr, lastAssistantMessageIsCompleteWithApprovalResponses as Nt, Output as O, SDKUITool as Oa, SDKStepResult as Oi, SDKChatOnToolCallCallback as On, SDKInferToolOutput as Or, isReasoningUIPart as Ot, asSchema as P, SDKUserModelMessage as Pa, SDKStreamTextOnErrorCallback as Pi, SDKCompletionRequestOptions as Pn, SDKLanguageModelMiddleware as Pr, lastAssistantMessageIsCompleteWithToolCalls as Pt, createUIMessageStream as Q, SDKToolCallRepairFunction as Qi, SDKEmbeddingModelV3CallOptions as Qn, SDKModelMessage as Qr, systemModelMessageSchema as Qt, convertFileListToFileUIParts as R, SDKStreamTextTransform as Ri, SDKDataUIPart as Rn, SDKLanguageModelV3 as Rr, parsePartialJson as Rt, SDKWrapStreamArgs as S, SDKUIMessageChunk as Sa, SDKSpeechModelResponseMetadata as Si, SDKCallWarning as Sn, SDKImageModelV3 as Sr, getToolOrDynamicToolName as St, Experimental_StdioMCPTransport$1 as T, SDKUIMessageStreamOnFinishCallback as Ta, SDKStaticToolError as Ti, SDKChatOnDataCallback as Tn, SDKInferAgentUIMessage as Tr, isDataUIPart as Tt, createAnthropic as U, SDKTextStreamChatTransport as Ui, SDKDynamicToolError as Un, SDKLanguageModelV3Middleware as Ur, readUIMessageStream as Ut, createAgentUIStream as V, SDKTelemetrySettings as Vi, SDKDirectChatTransportOptions as Vn, SDKLanguageModelV3GenerateResult as Vr, pipeUIMessageStreamToResponse as Vt, createGateway as W, SDKTextStreamPart as Wi, SDKDynamicToolResult as Wn, SDKLanguageModelV3Prompt as Wr, rerank as Wt, createProviderRegistry as X, SDKToolApprovalResponse as Xi, SDKEmbeddingModelUsage as Xn, SDKLogWarningsFunction as Xr, streamObject as Xt, createOpenAICompatible as Y, SDKToolApprovalRequestOutput as Yi, SDKEmbeddingModelMiddleware as Yn, SDKLanguageModelV3ToolResultOutput as Yr, stepCountIs as Yt, createTextStreamResponse as Z, SDKToolCallPart as Zi, SDKEmbeddingModelV3 as Zn, SDKMCPClient as Zr, streamText as Zt, SDKMessagePart as _, SDKTypedToolOutputDenied as _a, SDKSharedV3ProviderMetadata as _i, SDKAssistantContent as _n, SDKImageModel as _r, generateObject as _t, createEmptyUsage as a, SDKToolLoopAgentOnStepFinishCallback as aa, SDKPrepareStepResult as ai, wrapImageModel as an, SDKFlexibleSchema as ar, embed as at, SDKTransformParamsArgs as b, SDKUIDataTypes as ba, SDKSourceUrlUIPart as bi, SDKAsyncIterableStream as bn, SDKImageModelResponseMetadata as br, getTextFromDataUrl as bt, resolveModelId as c, SDKToolModelMessage as ca, SDKProviderRegistryProvider as ci, xai as cn, SDKGenerateTextOnFinishCallback as cr, experimental_customProvider as ct, ComplianceSignal as d, SDKToolUIPart as da, SDKRepairTextFunction as di, JSONSchema7 as dn, SDKGenerateVideoPrompt as dr, experimental_transcribe as dt, SDKToolContent as ea, SDKOAuthClientProvider as ei, toolModelMessageSchema as en, SDKEmbeddingModelV3Middleware as er, createXai as et, ComplianceSignalType as f, SDKTranscriptionModel as fa, SDKRerankResult as fi, JSONValue as fn, SDKGenerateVideoResult as fr, extractJsonMiddleware as ft, RiskLevel as g, SDKTypedToolError as ga, SDKSchema as gi, SDKAgentStreamParameters as gn, SDKHttpChatTransportInitOptions as gr, generateImage as gt, MessageRole as h, SDKTypedToolCall as ha, SDKSafeValidateUIMessagesResult as hi, SDKAgentCallParameters as hn, SDKHttpChatTransport as hr, generateId as ht, convertFromSDKUsage as i, SDKToolLoopAgentOnFinishCallback as ia, SDKPrepareStepFunction as ii, wrapEmbeddingModel as in, SDKFileUIPart as ir, dynamicTool as it, UI_MESSAGE_STREAM_HEADERS as j, SDKUseCompletionOptions as ja, SDKStreamObjectOnFinishCallback as ji, SDKChatStatus as jn, SDKInferUITool as jr, isToolUIPart as jt, SerialJobExecutor as k, SDKUIToolInvocation as ka, SDKStepStartUIPart as ki, SDKChatRequestOptions as kn, SDKInferUIDataParts as kr, isTextUIPart as kt, AgentFinishReason as l, SDKToolResultPart as la, SDKProviderV3 as li, zodSchema as ln, SDKGenerateTextOnStepFinishCallback as lr, experimental_generateSpeech as lt, CoreMessageRole as m, SDKTranscriptionModelV3 as ma, SDKRerankingModelV3 as mi, SDKAgent as mn, SDKGeneratedFile as mr, gateway as mt, TokenUsage as n, SDKToolExecutionOptions as na, SDKPrepareReconnectToStreamRequest as ni, userModelMessageSchema as nn, SDKExperimentalVideoModelV3 as nr, defaultEmbeddingSettingsMiddleware as nt, generateUniqueId as o, SDKToolLoopAgentSettings as oa, SDKProvider as oi, wrapLanguageModel as on, SDKGenerateImageResult as or, embedMany as ot, CoreMessage as p, SDKTranscriptionModelResponseMetadata as pa, SDKRerankingModel as pi, SDKAbstractChat as pn, SDKGeneratedAudioFile as pr, extractReasoningMiddleware as pt, createMCPClient$1 as q, SDKTool as qi, SDKEmbedding as qn, SDKLanguageModelV3ToolCall as qr, simulateStreamingMiddleware as qt, addUsage as r, SDKToolLoopAgent as ra, SDKPrepareSendMessagesRequest as ri, validateUIMessages as rn, SDKFilePart as rr, defaultSettingsMiddleware as rt, isModelRef as s, SDKToolMessage as sa, SDKProviderMetadata as si, wrapProvider as sn, SDKGenerateObjectResult as sr, experimental_createProviderRegistry as st, ModelRef as t, SDKToolExecuteFunction as ta, SDKObjectStreamPart as ti, uiMessageChunkSchema as tn, SDKErrorHandler as tr, customProvider as tt, BaseMessage as u, SDKToolSet as ua, SDKReasoningUIPart as ui, DeepPartial as un, SDKGenerateTextResult as ur, experimental_generateVideo as ut, SDKToolInvocationState as v, SDKTypedToolResult as va, SDKSharedV3Warning as vi, SDKAssistantMessage as vn, SDKImageModelMiddleware as vr, generateText as vt, ToolShimmerState as w, SDKUIMessageStreamError as wa, SDKStaticToolCall as wi, SDKChatInit as wn, SDKImagePart as wr, hasToolCall as wt, SDKWrapGenerateArgs as x, SDKUIMessage as xa, SDKSpeechModel as xi, SDKCallSettings as xn, SDKImageModelUsage as xr, getToolName as xt, SDKToolResultOutput as y, SDKUIDataPartSchemas as ya, SDKSourceDocumentUIPart as yi, SDKAssistantModelMessage as yn, SDKImageModelProviderMetadata as yr, getStaticToolName as yt, convertToModelMessages as z, SDKSystemMessage as zi, SDKDefaultChatTransport as zn, SDKLanguageModelV3CallOptions as zr, pipeAgentUIStreamToResponse as zt };
|
|
56
|
+
//# sourceMappingURL=ai-runtime-DIwOEc6g.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-runtime-DIwOEc6g.d.mts","names":[],"sources":["../src/shared/ai-types.ts","../src/shared/ai-runtime.ts"],"mappings":";;;;;;;;;;;KA4BY,mBAAA,GAAsB,iBAAA;AAAA,KAGtB,mBAAA,GAAsB,UAAA,CAChC,WAAA,CAAY,4BAAA;AAAA,KAIF,iBAAA,GAAoB,UAAA,CAC9B,WAAA,CAAY,4BAAA;AAAA,KAIF,sBAAA,GAAyB,UAAA,CACnC,WAAA,CAAY,4BAAA;AAAA,KAIF,cAAA,GACR,WAAA,GACA,WAAA,GACA,YAAA,GACA,eAAA,GACA,iBAAA,GACA,uBAAA;AAAA,KAOQ,sBAAA;AAAA,KAGA,gBAAA;AAAA,KAOA,WAAA;AAAA,KAGA,eAAA;AAAA,UAGK,WAAA;EAAA,SACN,IAAA,EAAM,WAAA;EAAA,SACN,OAAA;AAAA;AAAA,UAIM,WAAA;EAAA,SACN,IAAA,EAAM,eAAA;EAAA,SACN,OAAA;AAAA;AAAA,KAQC,gBAAA;AAAA,KAGA,iBAAA;AAAA,KAYA,SAAA;AAAA,KAKA,oBAAA;AAAA,UAiBK,gBAAA;EACf,IAAA,EAAM,oBAAA;EACN,SAAA;EACA,QAAA,GAAW,MAAA;AAAA;;;UC9GI,UAAA;EAAA,SACN,YAAA;EAAA,SACA,gBAAA;EAAA,SACA,WAAA;AAAA;AAAA,KAIC,QAAA,YAAoB,gBAAA;AAAA,iBAOhB,mBAAA,CAAoB,KAAA,EAAO,qBAAA,GAAwB,UAAA;AAAA,iBAWnD,gBAAA,CAAA,GAAoB,UAAA;AAAA,iBASpB,QAAA,CAAS,CAAA,EAAG,UAAA,EAAY,CAAA,EAAG,UAAA,eAAyB,UAAA;AAAA,iBAcpD,cAAA,CAAe,KAAA,EAAO,QAAA;AAAA,iBAQtB,UAAA,CAAW,KAAA,YAAiB,KAAA,IAAS,QAAA;AAAA,iBA0BrC,gBAAA,CAAiB,OAAA;EAAW,aAAA;AAAA"}
|