@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,602 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Multi-model research pipeline
|
|
3
|
+
*
|
|
4
|
+
* Three-stage research pipeline for high-quality, verified research:
|
|
5
|
+
* 1. Perplexity: Context expansion (grounded notes + citations)
|
|
6
|
+
* 2. Sonnet 4.5: Structured reasoning (claims, assumptions, gaps)
|
|
7
|
+
* 3. GPT-5: Verification (fact-check, tighten citations)
|
|
8
|
+
*
|
|
9
|
+
* Benefits:
|
|
10
|
+
* - Cuts hallucinations via grounded notes
|
|
11
|
+
* - Readable traces (notes → reasoning → verification)
|
|
12
|
+
* - Tunable research depth (fast/balanced/deep)
|
|
13
|
+
* - Circuit breaker protection for fault tolerance
|
|
14
|
+
*
|
|
15
|
+
* @module @od-oneapp/ai-platform/research/pipeline
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { logError, logWarn } from '@repo/shared/logs';
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
|
|
21
|
+
import { anthropic, openai, generateText } from '../../shared';
|
|
22
|
+
|
|
23
|
+
import { CircuitBreaker, type CircuitMetrics, type CircuitState } from './circuit-breaker';
|
|
24
|
+
|
|
25
|
+
import type {
|
|
26
|
+
PerplexityResponse,
|
|
27
|
+
ReasoningOutput,
|
|
28
|
+
ResearchConfig,
|
|
29
|
+
ResearchPipelineResult,
|
|
30
|
+
ResearchTier,
|
|
31
|
+
VerificationOutput,
|
|
32
|
+
} from './types';
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Circuit breaker instances for each pipeline stage.
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
const pipelineCircuits = {
|
|
40
|
+
perplexity: new CircuitBreaker({
|
|
41
|
+
name: 'research-perplexity',
|
|
42
|
+
failureThreshold: 3,
|
|
43
|
+
resetTimeout: 60000, // 1 minute
|
|
44
|
+
halfOpenRequests: 1,
|
|
45
|
+
fallbackBehavior: 'error',
|
|
46
|
+
onStateChange: (from: CircuitState, to: CircuitState) => {
|
|
47
|
+
if (to === 'open') {
|
|
48
|
+
logError('[Pipeline] Perplexity circuit opened - requests will fail until reset');
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
}),
|
|
52
|
+
sonnet: new CircuitBreaker({
|
|
53
|
+
name: 'research-sonnet',
|
|
54
|
+
failureThreshold: 3,
|
|
55
|
+
resetTimeout: 45000, // 45 seconds
|
|
56
|
+
halfOpenRequests: 1,
|
|
57
|
+
fallbackBehavior: 'error',
|
|
58
|
+
}),
|
|
59
|
+
verification: new CircuitBreaker({
|
|
60
|
+
name: 'research-verification',
|
|
61
|
+
failureThreshold: 3,
|
|
62
|
+
resetTimeout: 45000, // 45 seconds
|
|
63
|
+
halfOpenRequests: 1,
|
|
64
|
+
fallbackBehavior: 'error',
|
|
65
|
+
}),
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Gets circuit breaker metrics for monitoring.
|
|
70
|
+
*
|
|
71
|
+
* @returns Array of circuit metrics for all pipeline stages.
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* const metrics = getPipelineCircuitMetrics();
|
|
75
|
+
* console.log(metrics.map(m => `${m.name}: ${m.state}`));
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export function getPipelineCircuitMetrics(): CircuitMetrics[] {
|
|
79
|
+
return [
|
|
80
|
+
pipelineCircuits.perplexity.getMetrics(),
|
|
81
|
+
pipelineCircuits.sonnet.getMetrics(),
|
|
82
|
+
pipelineCircuits.verification.getMetrics(),
|
|
83
|
+
];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Resets all pipeline circuit breakers.
|
|
88
|
+
* Use for testing or manual recovery.
|
|
89
|
+
*/
|
|
90
|
+
export function resetPipelineCircuits(): void {
|
|
91
|
+
pipelineCircuits.perplexity.reset();
|
|
92
|
+
pipelineCircuits.sonnet.reset();
|
|
93
|
+
pipelineCircuits.verification.reset();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Tier configurations for research depth.
|
|
98
|
+
* Defines token limits and modes for each tier.
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
const TIER_CONFIGS: Record<ResearchTier, { maxTokens: number; mode: string }> = {
|
|
102
|
+
fast: { maxTokens: 400, mode: 'concise-notes' },
|
|
103
|
+
balanced: { maxTokens: 800, mode: 'concise-notes' },
|
|
104
|
+
deep: { maxTokens: 1600, mode: 'deep-notes' },
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Gets verification model from environment variable.
|
|
109
|
+
* Supports: gpt-4-turbo, o1-preview, o1-pro, gpt-5
|
|
110
|
+
* @returns Model identifier (defaults to 'gpt-4-turbo').
|
|
111
|
+
* @internal
|
|
112
|
+
*/
|
|
113
|
+
function getVerificationModel(): string {
|
|
114
|
+
return process.env.NEXT_AI_VERIFICATION_MODEL ?? 'gpt-4-turbo';
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Step 1: Perplexity - Context expansion.
|
|
119
|
+
* Returns crisp notes + URLs only (no long prose).
|
|
120
|
+
* Bounded context keeps costs predictable.
|
|
121
|
+
* Protected by circuit breaker for fault tolerance.
|
|
122
|
+
*
|
|
123
|
+
* @param query - Research question or query.
|
|
124
|
+
* @param tier - Research depth tier (defaults to 'balanced').
|
|
125
|
+
* @returns Perplexity response with notes, citations, and usage stats.
|
|
126
|
+
* @throws {Error} If Perplexity API fails and GPT-4 Turbo fallback also fails.
|
|
127
|
+
* @throws {CircuitOpenError} If circuit breaker is open after repeated failures.
|
|
128
|
+
* @remarks Falls back to GPT-4 Turbo if Perplexity API is unavailable or times out (30s timeout).
|
|
129
|
+
* Extracts citations from both API response and inline [Source: URL] markers.
|
|
130
|
+
* Limits citations to maximum of 7 URLs.
|
|
131
|
+
* Circuit breaker opens after 3 failures and resets after 60 seconds.
|
|
132
|
+
* @example
|
|
133
|
+
* ```ts
|
|
134
|
+
* const result = await researchWithPerplexity('What is quantum computing?', 'balanced');
|
|
135
|
+
* console.log(result.notes, result.cites);
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export async function researchWithPerplexity(
|
|
139
|
+
query: string,
|
|
140
|
+
tier: ResearchTier = 'balanced',
|
|
141
|
+
): Promise<PerplexityResponse> {
|
|
142
|
+
// Wrap the entire function in circuit breaker protection
|
|
143
|
+
return pipelineCircuits.perplexity.execute(async () => {
|
|
144
|
+
return researchWithPerplexityInternal(query, tier);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Internal implementation of Perplexity research.
|
|
150
|
+
* @internal
|
|
151
|
+
*/
|
|
152
|
+
async function researchWithPerplexityInternal(
|
|
153
|
+
query: string,
|
|
154
|
+
tier: ResearchTier,
|
|
155
|
+
): Promise<PerplexityResponse> {
|
|
156
|
+
const config = TIER_CONFIGS[tier];
|
|
157
|
+
|
|
158
|
+
// Try real Perplexity API first
|
|
159
|
+
if (process.env.PPLX_API_KEY) {
|
|
160
|
+
const controller = new AbortController();
|
|
161
|
+
const timeoutId = setTimeout(() => controller.abort(), 30000); // 30s timeout
|
|
162
|
+
|
|
163
|
+
try {
|
|
164
|
+
const response = await fetch('https://api.perplexity.ai/chat/completions', {
|
|
165
|
+
method: 'POST',
|
|
166
|
+
signal: controller.signal,
|
|
167
|
+
headers: {
|
|
168
|
+
Authorization: `Bearer ${process.env.PPLX_API_KEY}`,
|
|
169
|
+
'Content-Type': 'application/json',
|
|
170
|
+
},
|
|
171
|
+
body: JSON.stringify({
|
|
172
|
+
model: 'llama-3.1-sonar-large-128k-online',
|
|
173
|
+
messages: [
|
|
174
|
+
{
|
|
175
|
+
role: 'system',
|
|
176
|
+
content: `You are a research assistant. Provide concise, citation-dense notes.
|
|
177
|
+
Format:
|
|
178
|
+
- Use bullet points
|
|
179
|
+
- Include specific facts and figures
|
|
180
|
+
- Cite sources as [Source: URL]
|
|
181
|
+
- Keep to ${config.maxTokens} tokens max
|
|
182
|
+
- ${config.mode === 'deep-notes' ? 'Provide comprehensive coverage' : 'Be concise'}`,
|
|
183
|
+
},
|
|
184
|
+
{ role: 'user', content: query },
|
|
185
|
+
],
|
|
186
|
+
max_tokens: config.maxTokens,
|
|
187
|
+
return_citations: true,
|
|
188
|
+
temperature: 0.3,
|
|
189
|
+
}),
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
clearTimeout(timeoutId);
|
|
193
|
+
|
|
194
|
+
if (!response.ok) {
|
|
195
|
+
const errorBody = await response.text().catch(() => 'Unable to read error body');
|
|
196
|
+
throw new Error(
|
|
197
|
+
`Perplexity API error: ${response.status} ${response.statusText} - ${errorBody}`,
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
const data = (await response.json()) as {
|
|
202
|
+
citations?: string[];
|
|
203
|
+
choices?: Array<{ message?: { content?: string } }>;
|
|
204
|
+
usage?: { prompt_tokens?: number; completion_tokens?: number };
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
// Extract citations from response
|
|
208
|
+
const cites: string[] = data.citations ?? [];
|
|
209
|
+
|
|
210
|
+
// Also extract inline citations from content
|
|
211
|
+
const content = data.choices?.[0]?.message?.content ?? '';
|
|
212
|
+
const citationRegex = /\[Source: (https?:\/\/[^\]]+)\]/g;
|
|
213
|
+
let match;
|
|
214
|
+
while ((match = citationRegex.exec(content)) !== null) {
|
|
215
|
+
const url = match[1];
|
|
216
|
+
if (url && !cites.includes(url)) {
|
|
217
|
+
cites.push(url);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return {
|
|
222
|
+
notes: content,
|
|
223
|
+
cites: cites.slice(0, 7), // Max 7 citations
|
|
224
|
+
usage: {
|
|
225
|
+
inputTokens: data.usage?.prompt_tokens ?? 0,
|
|
226
|
+
outputTokens: data.usage?.completion_tokens ?? 0,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
} catch (error) {
|
|
230
|
+
clearTimeout(timeoutId); // Cleanup timeout to prevent memory leak
|
|
231
|
+
// Handle specific error types
|
|
232
|
+
if (error instanceof Error) {
|
|
233
|
+
if (error.name === 'AbortError') {
|
|
234
|
+
logWarn('[Perplexity] Request timed out after 30s, falling back to GPT-4 Turbo');
|
|
235
|
+
} else {
|
|
236
|
+
logWarn('[Perplexity] API call failed, falling back to GPT-4 Turbo', {
|
|
237
|
+
error: error.message,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
} else {
|
|
241
|
+
logWarn('[Perplexity] Unknown error, falling back to GPT-4 Turbo', {
|
|
242
|
+
error: String(error),
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
// Fall through to simulation
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// Fallback: Simulate with GPT-4 Turbo
|
|
250
|
+
const result = await generateText({
|
|
251
|
+
model: openai('gpt-4-turbo'),
|
|
252
|
+
prompt: `You are a research assistant. Provide concise, citation-dense notes for: "${query}"
|
|
253
|
+
|
|
254
|
+
Format:
|
|
255
|
+
- Use bullet points
|
|
256
|
+
- Include specific facts and figures
|
|
257
|
+
- Cite sources as [Source: URL]
|
|
258
|
+
- Keep to ${config.maxTokens} tokens max
|
|
259
|
+
- ${config.mode === 'deep-notes' ? 'Provide comprehensive coverage' : 'Be concise'}
|
|
260
|
+
|
|
261
|
+
Return only the notes with citations.`,
|
|
262
|
+
maxRetries: 2,
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
// Extract citations from notes
|
|
266
|
+
const citationRegex = /\[Source: (https?:\/\/[^\]]+)\]/g;
|
|
267
|
+
const cites: string[] = [];
|
|
268
|
+
let match;
|
|
269
|
+
while ((match = citationRegex.exec(result.text)) !== null) {
|
|
270
|
+
const url = match[1];
|
|
271
|
+
if (url && !cites.includes(url)) {
|
|
272
|
+
cites.push(url);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
return {
|
|
277
|
+
notes: result.text,
|
|
278
|
+
cites: cites.slice(0, 7), // Max 7 citations
|
|
279
|
+
usage: {
|
|
280
|
+
inputTokens: result.usage.inputTokens ?? 0,
|
|
281
|
+
outputTokens: result.usage.outputTokens ?? 0,
|
|
282
|
+
},
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Schema for Sonnet reasoning output.
|
|
288
|
+
* @internal
|
|
289
|
+
*/
|
|
290
|
+
const reasoningSchema = z.object({
|
|
291
|
+
claims: z.array(
|
|
292
|
+
z.object({
|
|
293
|
+
statement: z.string(),
|
|
294
|
+
supportedBy: z.array(z.string()).describe('Citation URLs'),
|
|
295
|
+
confidence: z.enum(['high', 'medium', 'low']),
|
|
296
|
+
}),
|
|
297
|
+
),
|
|
298
|
+
assumptions: z.array(z.string()).describe('Underlying assumptions made'),
|
|
299
|
+
gaps: z
|
|
300
|
+
.array(
|
|
301
|
+
z.object({
|
|
302
|
+
description: z.string(),
|
|
303
|
+
sources: z.array(z.string()).describe('Conflicting sources if any'),
|
|
304
|
+
}),
|
|
305
|
+
)
|
|
306
|
+
.describe('Knowledge gaps or conflicts'),
|
|
307
|
+
answerDraft: z.string().describe('Draft answer based on notes'),
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Step 2: Sonnet 4.5 - Structured reasoning.
|
|
312
|
+
* Reasons over ONLY the provided notes.
|
|
313
|
+
* Outputs: claims[], assumptions[], gaps[], answerDraft.
|
|
314
|
+
* Protected by circuit breaker for fault tolerance.
|
|
315
|
+
*
|
|
316
|
+
* @param input - Reasoning input containing question, notes, and citations.
|
|
317
|
+
* @param input.question - Research question.
|
|
318
|
+
* @param input.notes - Research notes from Perplexity.
|
|
319
|
+
* @param input.cites - Citation URLs.
|
|
320
|
+
* @returns Reasoning output with claims, assumptions, gaps, and draft answer.
|
|
321
|
+
* @throws {Error} If JSON extraction or parsing fails, or if model call fails.
|
|
322
|
+
* @throws {CircuitOpenError} If circuit breaker is open after repeated failures.
|
|
323
|
+
* @remarks Uses Claude 3.5 Sonnet with temperature 0.3 for consistent reasoning.
|
|
324
|
+
* Strictly enforces using only provided notes (no external knowledge).
|
|
325
|
+
* Returns structured JSON matching the reasoning schema.
|
|
326
|
+
* Circuit breaker opens after 3 failures and resets after 45 seconds.
|
|
327
|
+
* @example
|
|
328
|
+
* ```ts
|
|
329
|
+
* const reasoning = await reasonWithSonnet({
|
|
330
|
+
* question: 'What is quantum computing?',
|
|
331
|
+
* notes: perplexityResult.notes,
|
|
332
|
+
* cites: perplexityResult.cites
|
|
333
|
+
* });
|
|
334
|
+
* ```
|
|
335
|
+
*/
|
|
336
|
+
export async function reasonWithSonnet(input: {
|
|
337
|
+
question: string;
|
|
338
|
+
notes: string;
|
|
339
|
+
cites: string[];
|
|
340
|
+
}): Promise<ReasoningOutput> {
|
|
341
|
+
return pipelineCircuits.sonnet.execute(async () => {
|
|
342
|
+
return reasonWithSonnetInternal(input);
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Internal implementation of Sonnet reasoning.
|
|
348
|
+
* @internal
|
|
349
|
+
*/
|
|
350
|
+
async function reasonWithSonnetInternal(input: {
|
|
351
|
+
question: string;
|
|
352
|
+
notes: string;
|
|
353
|
+
cites: string[];
|
|
354
|
+
}): Promise<ReasoningOutput> {
|
|
355
|
+
const systemPrompt = `You are a rigorous analyst.
|
|
356
|
+
|
|
357
|
+
CRITICAL RULES:
|
|
358
|
+
1. Use ONLY the provided notes and citations
|
|
359
|
+
2. Do not add external knowledge
|
|
360
|
+
3. Explicitly mark any assumptions
|
|
361
|
+
4. Flag gaps where citations conflict or are insufficient
|
|
362
|
+
5. Output structured JSON matching the schema
|
|
363
|
+
|
|
364
|
+
Your goal is to produce verifiable, citation-backed reasoning.`;
|
|
365
|
+
|
|
366
|
+
const scratchpad = `## QUESTION
|
|
367
|
+
${input.question}
|
|
368
|
+
|
|
369
|
+
## NOTES
|
|
370
|
+
${input.notes}
|
|
371
|
+
|
|
372
|
+
## CITATIONS
|
|
373
|
+
${input.cites.map((c, i) => `[${i + 1}] ${c}`).join('\n')}
|
|
374
|
+
|
|
375
|
+
## TASK
|
|
376
|
+
Analyze the notes and produce structured reasoning. Return JSON only.`;
|
|
377
|
+
|
|
378
|
+
const result = await generateText({
|
|
379
|
+
model: anthropic('claude-3-5-sonnet-20241022'),
|
|
380
|
+
system: systemPrompt,
|
|
381
|
+
prompt: scratchpad,
|
|
382
|
+
temperature: 0.3,
|
|
383
|
+
maxRetries: 2,
|
|
384
|
+
});
|
|
385
|
+
|
|
386
|
+
// Extract JSON from response
|
|
387
|
+
const jsonMatch = result.text.match(/\{[\s\S]*\}/);
|
|
388
|
+
if (!jsonMatch) {
|
|
389
|
+
throw new Error('Failed to extract JSON from Sonnet response');
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
let parsed;
|
|
393
|
+
try {
|
|
394
|
+
parsed = JSON.parse(jsonMatch[0]);
|
|
395
|
+
} catch (parseError) {
|
|
396
|
+
throw new Error(
|
|
397
|
+
`Failed to parse JSON from Sonnet: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`,
|
|
398
|
+
);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
const validated = reasoningSchema.parse(parsed);
|
|
402
|
+
|
|
403
|
+
return {
|
|
404
|
+
...validated,
|
|
405
|
+
usage: {
|
|
406
|
+
inputTokens: result.usage.inputTokens ?? 0,
|
|
407
|
+
outputTokens: result.usage.outputTokens ?? 0,
|
|
408
|
+
},
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Schema for GPT-5 verification output.
|
|
414
|
+
* @internal
|
|
415
|
+
*/
|
|
416
|
+
const verificationSchema = z.object({
|
|
417
|
+
finalAnswer: z.string().describe('Verified, tightened answer'),
|
|
418
|
+
flags: z
|
|
419
|
+
.array(
|
|
420
|
+
z.object({
|
|
421
|
+
claim: z.string(),
|
|
422
|
+
issue: z.enum(['unverifiable', 'weak-citation', 'conflicting-sources']),
|
|
423
|
+
details: z.string(),
|
|
424
|
+
}),
|
|
425
|
+
)
|
|
426
|
+
.describe('Issues found during verification'),
|
|
427
|
+
trace: z
|
|
428
|
+
.array(
|
|
429
|
+
z.object({
|
|
430
|
+
claim: z.string(),
|
|
431
|
+
citationCheck: z.enum(['verified', 'partial', 'failed']),
|
|
432
|
+
notes: z.string().optional(),
|
|
433
|
+
}),
|
|
434
|
+
)
|
|
435
|
+
.describe('Per-claim verification trace'),
|
|
436
|
+
confidence: z.enum(['high', 'medium', 'low']).describe('Overall confidence in answer'),
|
|
437
|
+
});
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* Step 3: GPT-5 - Verification.
|
|
441
|
+
* Fact-checks each claim against citations.
|
|
442
|
+
* Flags unverifiable items.
|
|
443
|
+
* Returns final answer with trace.
|
|
444
|
+
* Protected by circuit breaker for fault tolerance.
|
|
445
|
+
*
|
|
446
|
+
* @param draft - Reasoning output from Sonnet stage.
|
|
447
|
+
* @param cites - Citation URLs to verify against.
|
|
448
|
+
* @returns Verification output with final answer, flags, trace, and confidence.
|
|
449
|
+
* @throws {Error} If JSON extraction or parsing fails, or if model call fails.
|
|
450
|
+
* @throws {CircuitOpenError} If circuit breaker is open after repeated failures.
|
|
451
|
+
* @remarks Uses verification model from NEXT_AI_VERIFICATION_MODEL env var (defaults to 'gpt-4-turbo').
|
|
452
|
+
* Supports: gpt-4-turbo, o1-preview, o1-pro, gpt-5.
|
|
453
|
+
* Uses temperature 0.2 for strict verification.
|
|
454
|
+
* Returns verification trace for each claim with citation check results.
|
|
455
|
+
* Circuit breaker opens after 3 failures and resets after 45 seconds.
|
|
456
|
+
* @example
|
|
457
|
+
* ```ts
|
|
458
|
+
* const verification = await verifyWithGPT5(reasoning, cites);
|
|
459
|
+
* console.log(verification.finalAnswer, verification.confidence);
|
|
460
|
+
* ```
|
|
461
|
+
*/
|
|
462
|
+
export async function verifyWithGPT5(
|
|
463
|
+
draft: ReasoningOutput,
|
|
464
|
+
cites: string[],
|
|
465
|
+
): Promise<VerificationOutput> {
|
|
466
|
+
return pipelineCircuits.verification.execute(async () => {
|
|
467
|
+
return verifyWithGPT5Internal(draft, cites);
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* Internal implementation of GPT-5 verification.
|
|
473
|
+
* @internal
|
|
474
|
+
*/
|
|
475
|
+
async function verifyWithGPT5Internal(
|
|
476
|
+
draft: ReasoningOutput,
|
|
477
|
+
cites: string[],
|
|
478
|
+
): Promise<VerificationOutput> {
|
|
479
|
+
const verificationModel = getVerificationModel();
|
|
480
|
+
|
|
481
|
+
const systemPrompt = `You are ${verificationModel}, a verification model.
|
|
482
|
+
|
|
483
|
+
TASKS:
|
|
484
|
+
1. Check each claim against the provided citations
|
|
485
|
+
2. Flag claims that lack strong citation support
|
|
486
|
+
3. Identify conflicting sources
|
|
487
|
+
4. Produce a tightened final answer
|
|
488
|
+
5. Return structured JSON with verification trace
|
|
489
|
+
|
|
490
|
+
VERIFICATION RULES:
|
|
491
|
+
- "verified": Claim directly supported by citation
|
|
492
|
+
- "partial": Citation provides weak or indirect support
|
|
493
|
+
- "failed": No citation support found
|
|
494
|
+
|
|
495
|
+
Be strict but fair. Better to flag uncertainty than claim certainty.`;
|
|
496
|
+
|
|
497
|
+
const verificationInput = {
|
|
498
|
+
draft: {
|
|
499
|
+
claims: draft.claims,
|
|
500
|
+
assumptions: draft.assumptions,
|
|
501
|
+
gaps: draft.gaps,
|
|
502
|
+
answerDraft: draft.answerDraft,
|
|
503
|
+
},
|
|
504
|
+
citations: cites.map((c, i) => ({ id: i + 1, url: c })),
|
|
505
|
+
};
|
|
506
|
+
|
|
507
|
+
const result = await generateText({
|
|
508
|
+
model: openai(verificationModel),
|
|
509
|
+
system: systemPrompt,
|
|
510
|
+
prompt: `Verify this reasoning:\n\n${JSON.stringify(verificationInput, null, 2)}\n\nReturn JSON only.`,
|
|
511
|
+
temperature: 0.2,
|
|
512
|
+
maxRetries: 2,
|
|
513
|
+
});
|
|
514
|
+
|
|
515
|
+
// Extract JSON from response
|
|
516
|
+
const jsonMatch = result.text.match(/\{[\s\S]*\}/);
|
|
517
|
+
if (!jsonMatch) {
|
|
518
|
+
throw new Error('Failed to extract JSON from verification response');
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
let parsed;
|
|
522
|
+
try {
|
|
523
|
+
parsed = JSON.parse(jsonMatch[0]);
|
|
524
|
+
} catch (parseError) {
|
|
525
|
+
throw new Error(
|
|
526
|
+
`Failed to parse JSON from verification: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`,
|
|
527
|
+
);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
const validated = verificationSchema.parse(parsed);
|
|
531
|
+
|
|
532
|
+
return {
|
|
533
|
+
...validated,
|
|
534
|
+
usage: {
|
|
535
|
+
inputTokens: result.usage.inputTokens ?? 0,
|
|
536
|
+
outputTokens: result.usage.outputTokens ?? 0,
|
|
537
|
+
},
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* Orchestrator: Full research pipeline.
|
|
543
|
+
* Executes all three steps in sequence (Perplexity → Sonnet → GPT-5).
|
|
544
|
+
* Returns final answer with full trace.
|
|
545
|
+
*
|
|
546
|
+
* @param question - Research question to answer.
|
|
547
|
+
* @param config - Research configuration (defaults to { tier: 'balanced' }).
|
|
548
|
+
* @returns Complete research pipeline result with answer, confidence, flags, and trace.
|
|
549
|
+
* @throws {Error} If any pipeline stage fails (propagates errors from individual stages).
|
|
550
|
+
* @remarks Executes stages sequentially. Each stage's output feeds into the next.
|
|
551
|
+
* Full trace includes token usage and results from all three stages.
|
|
552
|
+
* Confidence level reflects overall verification quality.
|
|
553
|
+
* @example
|
|
554
|
+
* ```ts
|
|
555
|
+
* const result = await executeResearchPipeline(
|
|
556
|
+
* 'What are the latest developments in quantum computing?',
|
|
557
|
+
* { tier: 'deep' }
|
|
558
|
+
* );
|
|
559
|
+
* console.log(result.answer, result.confidence);
|
|
560
|
+
* ```
|
|
561
|
+
*/
|
|
562
|
+
export async function executeResearchPipeline(
|
|
563
|
+
question: string,
|
|
564
|
+
config: ResearchConfig = { tier: 'balanced' },
|
|
565
|
+
): Promise<ResearchPipelineResult> {
|
|
566
|
+
// Step 1: Context expansion
|
|
567
|
+
const {
|
|
568
|
+
notes,
|
|
569
|
+
cites,
|
|
570
|
+
usage: perplexityUsage,
|
|
571
|
+
} = await researchWithPerplexity(question, config.tier);
|
|
572
|
+
|
|
573
|
+
// Step 2: Structured reasoning
|
|
574
|
+
const reasoning = await reasonWithSonnet({ question, notes, cites });
|
|
575
|
+
|
|
576
|
+
// Step 3: Verification
|
|
577
|
+
const verification = await verifyWithGPT5(reasoning, cites);
|
|
578
|
+
|
|
579
|
+
return {
|
|
580
|
+
answer: verification.finalAnswer,
|
|
581
|
+
confidence: verification.confidence,
|
|
582
|
+
flags: verification.flags,
|
|
583
|
+
trace: {
|
|
584
|
+
contextExpansion: {
|
|
585
|
+
notes,
|
|
586
|
+
cites,
|
|
587
|
+
usage: perplexityUsage,
|
|
588
|
+
},
|
|
589
|
+
reasoning: {
|
|
590
|
+
claims: reasoning.claims,
|
|
591
|
+
assumptions: reasoning.assumptions,
|
|
592
|
+
gaps: reasoning.gaps,
|
|
593
|
+
usage: reasoning.usage,
|
|
594
|
+
},
|
|
595
|
+
verification: {
|
|
596
|
+
trace: verification.trace,
|
|
597
|
+
flags: verification.flags,
|
|
598
|
+
usage: verification.usage,
|
|
599
|
+
},
|
|
600
|
+
},
|
|
601
|
+
};
|
|
602
|
+
}
|