@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,678 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element Stream Module
|
|
3
|
+
*
|
|
4
|
+
* SDK v6 pattern for streaming array elements in real-time.
|
|
5
|
+
* Uses streamObject with output: 'array' and elementStream for
|
|
6
|
+
* progressive rendering of list items.
|
|
7
|
+
*
|
|
8
|
+
* @module output/element-stream
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { streamObject } from '../shared';
|
|
12
|
+
|
|
13
|
+
import type { SDKLanguageModelV3 } from '../shared';
|
|
14
|
+
import type { z, ZodTypeAny } from 'zod';
|
|
15
|
+
|
|
16
|
+
// -----------------------------------------------------------------------------
|
|
17
|
+
// Types
|
|
18
|
+
// -----------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
/** Element stream event */
|
|
21
|
+
export interface ElementStreamEvent<T> {
|
|
22
|
+
/** Event type */
|
|
23
|
+
type: 'element' | 'complete' | 'error';
|
|
24
|
+
/** Element index */
|
|
25
|
+
index?: number;
|
|
26
|
+
/** Element data (partial or complete) */
|
|
27
|
+
element?: T;
|
|
28
|
+
/** Whether element is complete */
|
|
29
|
+
isComplete?: boolean;
|
|
30
|
+
/** Error if type is 'error' */
|
|
31
|
+
error?: Error;
|
|
32
|
+
/** Total elements so far */
|
|
33
|
+
totalElements?: number;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Element stream options */
|
|
37
|
+
export interface ElementStreamOptions<TElement extends ZodTypeAny> {
|
|
38
|
+
/** Language model */
|
|
39
|
+
model: SDKLanguageModelV3;
|
|
40
|
+
/** Schema for each array element */
|
|
41
|
+
elementSchema: TElement;
|
|
42
|
+
/** System prompt */
|
|
43
|
+
system?: string;
|
|
44
|
+
/** User prompt */
|
|
45
|
+
prompt: string;
|
|
46
|
+
/** Abort signal */
|
|
47
|
+
abortSignal?: AbortSignal;
|
|
48
|
+
/** Max tokens */
|
|
49
|
+
maxTokens?: number;
|
|
50
|
+
/** Temperature */
|
|
51
|
+
temperature?: number;
|
|
52
|
+
/** Callback for each partial element */
|
|
53
|
+
onPartialElement?: (element: Partial<z.infer<TElement>>, index: number) => void;
|
|
54
|
+
/** Callback for each complete element */
|
|
55
|
+
onElement?: (element: z.infer<TElement>, index: number) => void;
|
|
56
|
+
/** Callback on error */
|
|
57
|
+
onError?: (error: Error) => void;
|
|
58
|
+
/** Callback on completion */
|
|
59
|
+
onComplete?: (elements: z.infer<TElement>[]) => void;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Element stream result */
|
|
63
|
+
export interface ElementStreamResult<T> {
|
|
64
|
+
/** AsyncIterable of element events */
|
|
65
|
+
stream: AsyncIterable<ElementStreamEvent<T>>;
|
|
66
|
+
/** Promise that resolves to all elements */
|
|
67
|
+
elements: Promise<T[]>;
|
|
68
|
+
/** Usage information promise */
|
|
69
|
+
usage: Promise<{
|
|
70
|
+
promptTokens: number;
|
|
71
|
+
completionTokens: number;
|
|
72
|
+
totalTokens: number;
|
|
73
|
+
}>;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// -----------------------------------------------------------------------------
|
|
77
|
+
// Core Element Stream
|
|
78
|
+
// -----------------------------------------------------------------------------
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Stream array elements in real-time using SDK v6 elementStream pattern.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* const taskSchema = z.object({
|
|
86
|
+
* title: z.string(),
|
|
87
|
+
* priority: z.enum(['low', 'medium', 'high']),
|
|
88
|
+
* estimate: z.string(),
|
|
89
|
+
* });
|
|
90
|
+
*
|
|
91
|
+
* const { stream, elements } = streamElements({
|
|
92
|
+
* model: anthropic('claude-sonnet'),
|
|
93
|
+
* elementSchema: taskSchema,
|
|
94
|
+
* prompt: 'Break down building a web app into tasks',
|
|
95
|
+
* onElement: (task, index) => {
|
|
96
|
+
* console.log(`Task ${index + 1}: ${task.title}`);
|
|
97
|
+
* },
|
|
98
|
+
* });
|
|
99
|
+
*
|
|
100
|
+
* // Or iterate over the stream
|
|
101
|
+
* for await (const event of stream) {
|
|
102
|
+
* if (event.type === 'element' && event.isComplete) {
|
|
103
|
+
* renderTask(event.element);
|
|
104
|
+
* }
|
|
105
|
+
* }
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export function streamElements<TElement extends ZodTypeAny>(
|
|
109
|
+
options: ElementStreamOptions<TElement>,
|
|
110
|
+
): ElementStreamResult<z.infer<TElement>> {
|
|
111
|
+
const {
|
|
112
|
+
model,
|
|
113
|
+
elementSchema,
|
|
114
|
+
system,
|
|
115
|
+
prompt,
|
|
116
|
+
abortSignal,
|
|
117
|
+
maxTokens,
|
|
118
|
+
temperature,
|
|
119
|
+
onPartialElement,
|
|
120
|
+
onElement,
|
|
121
|
+
onError,
|
|
122
|
+
onComplete,
|
|
123
|
+
} = options;
|
|
124
|
+
void maxTokens;
|
|
125
|
+
void onPartialElement;
|
|
126
|
+
|
|
127
|
+
type Element = z.infer<TElement>;
|
|
128
|
+
|
|
129
|
+
let resolveElements: (elements: Element[]) => void;
|
|
130
|
+
let rejectElements: (error: Error) => void;
|
|
131
|
+
let resolveUsage: (usage: {
|
|
132
|
+
promptTokens: number;
|
|
133
|
+
completionTokens: number;
|
|
134
|
+
totalTokens: number;
|
|
135
|
+
}) => void;
|
|
136
|
+
let rejectUsage: (error: Error) => void;
|
|
137
|
+
|
|
138
|
+
const elementsPromise = new Promise<Element[]>((resolve, reject) => {
|
|
139
|
+
resolveElements = resolve;
|
|
140
|
+
rejectElements = reject;
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
const usagePromise = new Promise<{
|
|
144
|
+
promptTokens: number;
|
|
145
|
+
completionTokens: number;
|
|
146
|
+
totalTokens: number;
|
|
147
|
+
}>((resolve, reject) => {
|
|
148
|
+
resolveUsage = resolve;
|
|
149
|
+
rejectUsage = reject;
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
async function* createStream(): AsyncIterable<ElementStreamEvent<Element>> {
|
|
153
|
+
const allElements: Element[] = [];
|
|
154
|
+
|
|
155
|
+
try {
|
|
156
|
+
// Use 'array' output mode for element streaming
|
|
157
|
+
const result = streamObject({
|
|
158
|
+
model,
|
|
159
|
+
output: 'array' as const,
|
|
160
|
+
schema: elementSchema,
|
|
161
|
+
system,
|
|
162
|
+
prompt,
|
|
163
|
+
abortSignal,
|
|
164
|
+
temperature,
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
let currentIndex = 0;
|
|
168
|
+
|
|
169
|
+
// Use elementStream from the result - it streams complete elements
|
|
170
|
+
for await (const element of result.elementStream) {
|
|
171
|
+
// Each element from elementStream is complete
|
|
172
|
+
allElements.push(element as Element);
|
|
173
|
+
|
|
174
|
+
// Notify callbacks
|
|
175
|
+
onElement?.(element as Element, currentIndex);
|
|
176
|
+
|
|
177
|
+
yield {
|
|
178
|
+
type: 'element',
|
|
179
|
+
index: currentIndex,
|
|
180
|
+
element: element as Element,
|
|
181
|
+
isComplete: true,
|
|
182
|
+
totalElements: allElements.length,
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
currentIndex++;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Get final usage
|
|
189
|
+
const finalUsage = await result.usage;
|
|
190
|
+
const usageObj = finalUsage as unknown as {
|
|
191
|
+
promptTokens?: number;
|
|
192
|
+
completionTokens?: number;
|
|
193
|
+
totalTokens?: number;
|
|
194
|
+
};
|
|
195
|
+
resolveUsage({
|
|
196
|
+
promptTokens: usageObj.promptTokens ?? 0,
|
|
197
|
+
completionTokens: usageObj.completionTokens ?? 0,
|
|
198
|
+
totalTokens: usageObj.totalTokens ?? 0,
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
// Complete
|
|
202
|
+
onComplete?.(allElements);
|
|
203
|
+
resolveElements(allElements);
|
|
204
|
+
|
|
205
|
+
yield {
|
|
206
|
+
type: 'complete',
|
|
207
|
+
totalElements: allElements.length,
|
|
208
|
+
};
|
|
209
|
+
} catch (error) {
|
|
210
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
211
|
+
onError?.(err);
|
|
212
|
+
rejectElements(err);
|
|
213
|
+
rejectUsage(err);
|
|
214
|
+
|
|
215
|
+
yield {
|
|
216
|
+
type: 'error',
|
|
217
|
+
error: err,
|
|
218
|
+
totalElements: allElements.length,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
return {
|
|
224
|
+
stream: createStream(),
|
|
225
|
+
elements: elementsPromise,
|
|
226
|
+
usage: usagePromise,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// -----------------------------------------------------------------------------
|
|
231
|
+
// Partial Element Stream (with progress updates)
|
|
232
|
+
// -----------------------------------------------------------------------------
|
|
233
|
+
|
|
234
|
+
/** Partial element stream options */
|
|
235
|
+
export interface PartialElementStreamOptions<
|
|
236
|
+
TElement extends ZodTypeAny,
|
|
237
|
+
> extends ElementStreamOptions<TElement> {
|
|
238
|
+
/** Minimum update interval in ms (to avoid too many updates) */
|
|
239
|
+
updateInterval?: number;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Stream array elements with partial progress updates.
|
|
244
|
+
* Useful for showing "typing" indicators for each element.
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```typescript
|
|
248
|
+
* const { stream } = streamElementsWithProgress({
|
|
249
|
+
* model,
|
|
250
|
+
* elementSchema: taskSchema,
|
|
251
|
+
* prompt: 'Generate 5 tasks',
|
|
252
|
+
* updateInterval: 100,
|
|
253
|
+
* });
|
|
254
|
+
*
|
|
255
|
+
* for await (const event of stream) {
|
|
256
|
+
* if (event.type === 'partial') {
|
|
257
|
+
* // Show partial element with loading indicator
|
|
258
|
+
* updateUI(event.element, { loading: true });
|
|
259
|
+
* } else if (event.type === 'element') {
|
|
260
|
+
* // Show complete element
|
|
261
|
+
* updateUI(event.element, { loading: false });
|
|
262
|
+
* }
|
|
263
|
+
* }
|
|
264
|
+
* ```
|
|
265
|
+
*/
|
|
266
|
+
export function streamElementsWithProgress<TElement extends ZodTypeAny>(
|
|
267
|
+
options: PartialElementStreamOptions<TElement>,
|
|
268
|
+
): ElementStreamResult<z.infer<TElement>> & {
|
|
269
|
+
partialStream: AsyncIterable<ElementStreamEvent<Partial<z.infer<TElement>>>>;
|
|
270
|
+
} {
|
|
271
|
+
const { updateInterval = 50, onPartialElement, ...rest } = options;
|
|
272
|
+
void updateInterval;
|
|
273
|
+
void onPartialElement;
|
|
274
|
+
|
|
275
|
+
type Element = z.infer<TElement>;
|
|
276
|
+
|
|
277
|
+
// For partial updates, we need to use partialObjectStream
|
|
278
|
+
// But SDK v6's array mode doesn't directly expose partials per element
|
|
279
|
+
// So we wrap the basic stream and emit estimated partials
|
|
280
|
+
|
|
281
|
+
const baseResult = streamElements(rest);
|
|
282
|
+
|
|
283
|
+
async function* createPartialStream(): AsyncIterable<ElementStreamEvent<Partial<Element>>> {
|
|
284
|
+
for await (const event of baseResult.stream) {
|
|
285
|
+
// Re-emit as partial stream events
|
|
286
|
+
if (event.type === 'element') {
|
|
287
|
+
yield {
|
|
288
|
+
type: 'element',
|
|
289
|
+
index: event.index,
|
|
290
|
+
element: event.element as Partial<Element>,
|
|
291
|
+
isComplete: true,
|
|
292
|
+
totalElements: event.totalElements,
|
|
293
|
+
};
|
|
294
|
+
} else {
|
|
295
|
+
yield event as ElementStreamEvent<Partial<Element>>;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
return {
|
|
301
|
+
...baseResult,
|
|
302
|
+
partialStream: createPartialStream(),
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// -----------------------------------------------------------------------------
|
|
307
|
+
// Batched Element Stream
|
|
308
|
+
// -----------------------------------------------------------------------------
|
|
309
|
+
|
|
310
|
+
/** Batched element stream options */
|
|
311
|
+
export interface BatchedElementStreamOptions<
|
|
312
|
+
TElement extends ZodTypeAny,
|
|
313
|
+
> extends ElementStreamOptions<TElement> {
|
|
314
|
+
/** Batch size */
|
|
315
|
+
batchSize: number;
|
|
316
|
+
/** Batch timeout in ms */
|
|
317
|
+
batchTimeout?: number;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Stream elements in batches for better performance.
|
|
322
|
+
*
|
|
323
|
+
* @example
|
|
324
|
+
* ```typescript
|
|
325
|
+
* const { batches } = streamElementsInBatches({
|
|
326
|
+
* model,
|
|
327
|
+
* elementSchema: taskSchema,
|
|
328
|
+
* prompt: 'Generate 20 tasks',
|
|
329
|
+
* batchSize: 5,
|
|
330
|
+
* batchTimeout: 1000,
|
|
331
|
+
* });
|
|
332
|
+
*
|
|
333
|
+
* for await (const batch of batches) {
|
|
334
|
+
* // Process 5 elements at once
|
|
335
|
+
* renderTaskBatch(batch);
|
|
336
|
+
* }
|
|
337
|
+
* ```
|
|
338
|
+
*/
|
|
339
|
+
export function streamElementsInBatches<TElement extends ZodTypeAny>(
|
|
340
|
+
options: BatchedElementStreamOptions<TElement>,
|
|
341
|
+
): ElementStreamResult<z.infer<TElement>> & {
|
|
342
|
+
batches: AsyncIterable<z.infer<TElement>[]>;
|
|
343
|
+
} {
|
|
344
|
+
const { batchSize, batchTimeout = 1000, ...rest } = options;
|
|
345
|
+
|
|
346
|
+
type Element = z.infer<TElement>;
|
|
347
|
+
|
|
348
|
+
const baseResult = streamElements(rest);
|
|
349
|
+
|
|
350
|
+
async function* createBatchStream(): AsyncIterable<Element[]> {
|
|
351
|
+
let batch: Element[] = [];
|
|
352
|
+
let timeoutId: ReturnType<typeof setTimeout> | null = null;
|
|
353
|
+
// Note: In an async generator, we can't directly yield from a timeout callback.
|
|
354
|
+
// The timeout is used purely for clearing purposes here.
|
|
355
|
+
// A more sophisticated implementation would use a queue and resolver pattern.
|
|
356
|
+
|
|
357
|
+
const flushBatch = (): Element[] | null => {
|
|
358
|
+
if (batch.length === 0) return null;
|
|
359
|
+
const result = [...batch];
|
|
360
|
+
batch = [];
|
|
361
|
+
if (timeoutId) {
|
|
362
|
+
clearTimeout(timeoutId);
|
|
363
|
+
timeoutId = null;
|
|
364
|
+
}
|
|
365
|
+
return result;
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
for await (const event of baseResult.stream) {
|
|
369
|
+
if (event.type === 'element' && event.element) {
|
|
370
|
+
batch.push(event.element as Element);
|
|
371
|
+
|
|
372
|
+
if (batch.length >= batchSize) {
|
|
373
|
+
const flushed = flushBatch();
|
|
374
|
+
if (flushed) yield flushed;
|
|
375
|
+
} else if (!timeoutId) {
|
|
376
|
+
// Set timeout - the batch will be flushed when the loop continues
|
|
377
|
+
// or when the stream completes, whichever comes first
|
|
378
|
+
timeoutId = setTimeout(() => {
|
|
379
|
+
// Clear the timeout reference so we can set a new one
|
|
380
|
+
timeoutId = null;
|
|
381
|
+
}, batchTimeout);
|
|
382
|
+
}
|
|
383
|
+
} else if (event.type === 'complete') {
|
|
384
|
+
// Flush remaining
|
|
385
|
+
const flushed = flushBatch();
|
|
386
|
+
if (flushed) yield flushed;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// Final flush
|
|
391
|
+
const final = flushBatch();
|
|
392
|
+
if (final) yield final;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
return {
|
|
396
|
+
...baseResult,
|
|
397
|
+
batches: createBatchStream(),
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
// -----------------------------------------------------------------------------
|
|
402
|
+
// Factory Functions
|
|
403
|
+
// -----------------------------------------------------------------------------
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Create an element streamer for a specific schema.
|
|
407
|
+
* Useful for reusing the same schema across multiple prompts.
|
|
408
|
+
*
|
|
409
|
+
* @example
|
|
410
|
+
* ```typescript
|
|
411
|
+
* const streamTasks = createElementStreamer({
|
|
412
|
+
* model: anthropic('claude-sonnet'),
|
|
413
|
+
* elementSchema: taskSchema,
|
|
414
|
+
* });
|
|
415
|
+
*
|
|
416
|
+
* // Use multiple times
|
|
417
|
+
* const webAppTasks = await streamTasks('Break down building a web app');
|
|
418
|
+
* const apiTasks = await streamTasks('Break down building an API');
|
|
419
|
+
* ```
|
|
420
|
+
*/
|
|
421
|
+
export function createElementStreamer<TElement extends ZodTypeAny>(config: {
|
|
422
|
+
model: SDKLanguageModelV3;
|
|
423
|
+
elementSchema: TElement;
|
|
424
|
+
system?: string;
|
|
425
|
+
maxTokens?: number;
|
|
426
|
+
temperature?: number;
|
|
427
|
+
}) {
|
|
428
|
+
return async function stream(
|
|
429
|
+
prompt: string,
|
|
430
|
+
options?: Partial<ElementStreamOptions<TElement>>,
|
|
431
|
+
): Promise<z.infer<TElement>[]> {
|
|
432
|
+
return collectElements({
|
|
433
|
+
...config,
|
|
434
|
+
prompt,
|
|
435
|
+
...options,
|
|
436
|
+
});
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Create a collected element stream that returns all elements at once.
|
|
442
|
+
* Simpler API when you don't need real-time updates.
|
|
443
|
+
*
|
|
444
|
+
* @example
|
|
445
|
+
* ```typescript
|
|
446
|
+
* const tasks = await collectElements({
|
|
447
|
+
* model,
|
|
448
|
+
* elementSchema: taskSchema,
|
|
449
|
+
* prompt: 'Generate 5 tasks',
|
|
450
|
+
* });
|
|
451
|
+
*
|
|
452
|
+
* console.log(`Got ${tasks.length} tasks`);
|
|
453
|
+
* ```
|
|
454
|
+
*/
|
|
455
|
+
export async function collectElements<TElement extends ZodTypeAny>(
|
|
456
|
+
options: ElementStreamOptions<TElement>,
|
|
457
|
+
): Promise<z.infer<TElement>[]> {
|
|
458
|
+
const { stream, elements } = streamElements(options);
|
|
459
|
+
// Drain stream to resolve elements promise
|
|
460
|
+
for await (const _ of stream) {
|
|
461
|
+
// Consume stream to ensure elements promise resolves
|
|
462
|
+
}
|
|
463
|
+
return elements;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
// -----------------------------------------------------------------------------
|
|
467
|
+
// withElementStream Composable Wrapper
|
|
468
|
+
// -----------------------------------------------------------------------------
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Configuration for withElementStream wrapper.
|
|
472
|
+
*/
|
|
473
|
+
export interface WithElementStreamConfig<T> {
|
|
474
|
+
/** Called for each streamed element */
|
|
475
|
+
readonly onElement?: (element: T, index: number) => void;
|
|
476
|
+
/** Buffer size before yielding (batch elements) */
|
|
477
|
+
readonly bufferSize?: number;
|
|
478
|
+
/** Transform each element before yielding */
|
|
479
|
+
readonly transform?: (element: T) => T;
|
|
480
|
+
/** Called when all elements are complete */
|
|
481
|
+
readonly onComplete?: (elements: T[], totalCount: number) => void;
|
|
482
|
+
/** Called on error */
|
|
483
|
+
readonly onError?: (error: Error) => void;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* Stream result with experimental_output from streamText.
|
|
488
|
+
* This interface represents the shape of results from streamText
|
|
489
|
+
* when using experimental_output with Output.array().
|
|
490
|
+
*/
|
|
491
|
+
export interface ExperimentalOutputStreamResult<T> {
|
|
492
|
+
/** Element stream from experimental_output */
|
|
493
|
+
experimental_output?: {
|
|
494
|
+
/** Async iterable of elements */
|
|
495
|
+
elementStream?: AsyncIterable<T>;
|
|
496
|
+
/** Promise resolving to all elements */
|
|
497
|
+
object?: Promise<T[]>;
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* Composable wrapper for streaming array elements from experimental_output.
|
|
503
|
+
*
|
|
504
|
+
* This wraps a streamText result that uses experimental_output with Output.array(),
|
|
505
|
+
* providing callbacks, transformations, and buffering capabilities.
|
|
506
|
+
*
|
|
507
|
+
* @param streamResult - Result from streamText with experimental_output
|
|
508
|
+
* @param config - Configuration for element streaming
|
|
509
|
+
* @returns Async generator yielding elements (potentially transformed/buffered)
|
|
510
|
+
*
|
|
511
|
+
* @example
|
|
512
|
+
* ```typescript
|
|
513
|
+
* import { streamText, Output } from 'ai';
|
|
514
|
+
* import { withElementStream } from '@od-oneapp/ai-platform/output';
|
|
515
|
+
* import { z } from 'zod';
|
|
516
|
+
*
|
|
517
|
+
* const TodoSchema = z.object({
|
|
518
|
+
* task: z.string(),
|
|
519
|
+
* priority: z.enum(['low', 'medium', 'high']),
|
|
520
|
+
* });
|
|
521
|
+
*
|
|
522
|
+
* const result = streamText({
|
|
523
|
+
* model,
|
|
524
|
+
* prompt: 'List 10 todos',
|
|
525
|
+
* experimental_output: Output.array({ element: TodoSchema }),
|
|
526
|
+
* });
|
|
527
|
+
*
|
|
528
|
+
* // Basic iteration with callback
|
|
529
|
+
* const todos: z.infer<typeof TodoSchema>[] = [];
|
|
530
|
+
* for await (const todo of withElementStream(result, {
|
|
531
|
+
* onElement: (t, i) => console.log(`Got todo ${i}: ${t.task}`),
|
|
532
|
+
* })) {
|
|
533
|
+
* todos.push(todo);
|
|
534
|
+
* }
|
|
535
|
+
*
|
|
536
|
+
* // With transformation
|
|
537
|
+
* for await (const todo of withElementStream(result, {
|
|
538
|
+
* transform: (t) => ({ ...t, task: t.task.toUpperCase() }),
|
|
539
|
+
* })) {
|
|
540
|
+
* console.log(todo.task); // UPPERCASE
|
|
541
|
+
* }
|
|
542
|
+
*
|
|
543
|
+
* // With buffering (yields in batches)
|
|
544
|
+
* for await (const todoBatch of withElementStream(result, {
|
|
545
|
+
* bufferSize: 5,
|
|
546
|
+
* onElement: (t, i) => console.log(`Buffered todo ${i}`),
|
|
547
|
+
* })) {
|
|
548
|
+
* // todoBatch is an array of 5 todos (or fewer at the end)
|
|
549
|
+
* processBatch(todoBatch);
|
|
550
|
+
* }
|
|
551
|
+
* ```
|
|
552
|
+
*/
|
|
553
|
+
export async function* withElementStream<T>(
|
|
554
|
+
streamResult: ExperimentalOutputStreamResult<T>,
|
|
555
|
+
config?: WithElementStreamConfig<T>,
|
|
556
|
+
): AsyncGenerator<T | T[], void, unknown> {
|
|
557
|
+
const { onElement, bufferSize, transform, onComplete, onError } = config ?? {};
|
|
558
|
+
|
|
559
|
+
const elementStream = streamResult.experimental_output?.elementStream;
|
|
560
|
+
|
|
561
|
+
if (!elementStream) {
|
|
562
|
+
// If no element stream, try to get from object promise
|
|
563
|
+
const objectPromise = streamResult.experimental_output?.object;
|
|
564
|
+
if (objectPromise) {
|
|
565
|
+
try {
|
|
566
|
+
const elements = await objectPromise;
|
|
567
|
+
let index = 0;
|
|
568
|
+
|
|
569
|
+
if (bufferSize && bufferSize > 1) {
|
|
570
|
+
// Buffered mode
|
|
571
|
+
let buffer: T[] = [];
|
|
572
|
+
for (const element of elements) {
|
|
573
|
+
const transformed = transform ? transform(element) : element;
|
|
574
|
+
onElement?.(transformed, index);
|
|
575
|
+
buffer.push(transformed);
|
|
576
|
+
index++;
|
|
577
|
+
|
|
578
|
+
if (buffer.length >= bufferSize) {
|
|
579
|
+
yield buffer;
|
|
580
|
+
buffer = [];
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
// Yield remaining buffer
|
|
585
|
+
if (buffer.length > 0) {
|
|
586
|
+
yield buffer;
|
|
587
|
+
}
|
|
588
|
+
} else {
|
|
589
|
+
// Non-buffered mode
|
|
590
|
+
for (const element of elements) {
|
|
591
|
+
const transformed = transform ? transform(element) : element;
|
|
592
|
+
onElement?.(transformed, index);
|
|
593
|
+
yield transformed;
|
|
594
|
+
index++;
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
const finalElements = transform ? elements.map(transform) : elements;
|
|
599
|
+
onComplete?.(finalElements, finalElements.length);
|
|
600
|
+
} catch (error) {
|
|
601
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
602
|
+
onError?.(err);
|
|
603
|
+
throw err;
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
try {
|
|
610
|
+
const allElements: T[] = [];
|
|
611
|
+
let index = 0;
|
|
612
|
+
let buffer: T[] = [];
|
|
613
|
+
|
|
614
|
+
for await (const element of elementStream) {
|
|
615
|
+
const transformed = transform ? transform(element) : element;
|
|
616
|
+
allElements.push(transformed);
|
|
617
|
+
|
|
618
|
+
// Call onElement callback
|
|
619
|
+
onElement?.(transformed, index);
|
|
620
|
+
index++;
|
|
621
|
+
|
|
622
|
+
if (bufferSize && bufferSize > 1) {
|
|
623
|
+
// Buffered mode
|
|
624
|
+
buffer.push(transformed);
|
|
625
|
+
|
|
626
|
+
if (buffer.length >= bufferSize) {
|
|
627
|
+
yield buffer;
|
|
628
|
+
buffer = [];
|
|
629
|
+
}
|
|
630
|
+
} else {
|
|
631
|
+
// Non-buffered mode
|
|
632
|
+
yield transformed;
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
// Yield remaining buffer in buffered mode
|
|
637
|
+
if (bufferSize && bufferSize > 1 && buffer.length > 0) {
|
|
638
|
+
yield buffer;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
// Call onComplete with all elements
|
|
642
|
+
onComplete?.(allElements, allElements.length);
|
|
643
|
+
} catch (error) {
|
|
644
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
645
|
+
onError?.(err);
|
|
646
|
+
throw err;
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
/**
|
|
651
|
+
* Collect all elements from withElementStream into an array.
|
|
652
|
+
* Convenience function for when you want all elements at once.
|
|
653
|
+
*
|
|
654
|
+
* @param streamResult - Result from streamText with experimental_output
|
|
655
|
+
* @param config - Configuration for element streaming
|
|
656
|
+
* @returns Promise resolving to array of all elements
|
|
657
|
+
*
|
|
658
|
+
* @example
|
|
659
|
+
* ```typescript
|
|
660
|
+
* const todos = await collectFromElementStream(result, {
|
|
661
|
+
* onElement: (t, i) => console.log(`Processing ${i}`),
|
|
662
|
+
* transform: (t) => ({ ...t, processed: true }),
|
|
663
|
+
* });
|
|
664
|
+
* ```
|
|
665
|
+
*/
|
|
666
|
+
export async function collectFromElementStream<T>(
|
|
667
|
+
streamResult: ExperimentalOutputStreamResult<T>,
|
|
668
|
+
config?: Omit<WithElementStreamConfig<T>, 'bufferSize'>,
|
|
669
|
+
): Promise<T[]> {
|
|
670
|
+
const elements: T[] = [];
|
|
671
|
+
|
|
672
|
+
for await (const element of withElementStream(streamResult, config)) {
|
|
673
|
+
// Without bufferSize, elements are yielded one at a time
|
|
674
|
+
elements.push(element as T);
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
return elements;
|
|
678
|
+
}
|