@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,376 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Generative UI type definitions.
|
|
3
|
+
* @module @od-oneapp/ai-platform/generative-ui
|
|
4
|
+
*
|
|
5
|
+
* Type-safe definitions for AI-generated user interfaces:
|
|
6
|
+
* - UI tree structure for dynamic component assembly
|
|
7
|
+
* - Catalog entry types for component registration
|
|
8
|
+
* - Enterprise extensions for governance and audit
|
|
9
|
+
* - Stream part types for real-time UI generation
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import type {
|
|
14
|
+
* UIElement,
|
|
15
|
+
* UITree,
|
|
16
|
+
* CatalogComponent,
|
|
17
|
+
* GenerativeUIConfig,
|
|
18
|
+
* } from '@od-oneapp/ai-platform/generative-ui';
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import type { UserTier } from "../governance/entitlements";
|
|
23
|
+
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Core UI Tree Types
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* A single element in the generative UI tree.
|
|
30
|
+
* Maps 1:1 to a registered catalog component.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* const element: UIElement = {
|
|
35
|
+
* type: 'MetricCard',
|
|
36
|
+
* props: { label: 'Revenue', value: '$1.2M', trend: 'up' },
|
|
37
|
+
* children: [],
|
|
38
|
+
* };
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export interface UIElement {
|
|
42
|
+
/** Component type name from the catalog (e.g., 'Card', 'Chart', 'MetricCard'). */
|
|
43
|
+
readonly type: string;
|
|
44
|
+
|
|
45
|
+
/** Props to pass to the component. Validated against catalog schema. */
|
|
46
|
+
readonly props: Record<string, unknown>;
|
|
47
|
+
|
|
48
|
+
/** Nested child elements (recursive tree). */
|
|
49
|
+
readonly children?: readonly UIElement[];
|
|
50
|
+
|
|
51
|
+
/** Unique element ID for reconciliation during streaming updates. */
|
|
52
|
+
readonly id?: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Root of a generative UI tree.
|
|
57
|
+
* Contains metadata and the element tree for rendering.
|
|
58
|
+
*/
|
|
59
|
+
export interface UITree {
|
|
60
|
+
/** Schema version for forward compatibility. */
|
|
61
|
+
readonly version: '1.0';
|
|
62
|
+
|
|
63
|
+
/** Root element of the UI tree. */
|
|
64
|
+
readonly root: UIElement;
|
|
65
|
+
|
|
66
|
+
/** Metadata about the generation. */
|
|
67
|
+
readonly metadata?: UITreeMetadata;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Metadata attached to a generated UI tree.
|
|
72
|
+
* Used for audit, caching, and observability.
|
|
73
|
+
*/
|
|
74
|
+
export interface UITreeMetadata {
|
|
75
|
+
/** Model that generated this tree. */
|
|
76
|
+
readonly modelId?: string;
|
|
77
|
+
|
|
78
|
+
/** Prompt that triggered generation. */
|
|
79
|
+
readonly promptHash?: string;
|
|
80
|
+
|
|
81
|
+
/** Generation timestamp (ISO 8601). */
|
|
82
|
+
readonly generatedAt?: string;
|
|
83
|
+
|
|
84
|
+
/** Total token cost of generation. */
|
|
85
|
+
readonly tokenCost?: number;
|
|
86
|
+
|
|
87
|
+
/** Components used in this tree (for analytics). */
|
|
88
|
+
readonly componentsUsed?: readonly string[];
|
|
89
|
+
|
|
90
|
+
/** User tier at time of generation (for entitlement audit). */
|
|
91
|
+
readonly userTier?: UserTier;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// ---------------------------------------------------------------------------
|
|
95
|
+
// Catalog Component Types
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Schema definition for a catalog component's props.
|
|
100
|
+
* Uses a simplified JSON Schema subset for prompt generation.
|
|
101
|
+
*/
|
|
102
|
+
export interface PropSchema {
|
|
103
|
+
/** Property name. */
|
|
104
|
+
readonly name: string;
|
|
105
|
+
|
|
106
|
+
/** JSON Schema type (string, number, boolean, array, object). */
|
|
107
|
+
readonly type: 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
108
|
+
|
|
109
|
+
/** Human-readable description for the LLM. */
|
|
110
|
+
readonly description: string;
|
|
111
|
+
|
|
112
|
+
/** Whether the prop is required. */
|
|
113
|
+
readonly required?: boolean;
|
|
114
|
+
|
|
115
|
+
/** Allowed literal values (enum constraint). */
|
|
116
|
+
readonly enum?: readonly (string | number | boolean)[];
|
|
117
|
+
|
|
118
|
+
/** Default value if not specified. */
|
|
119
|
+
readonly default?: unknown;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* A component registered in the generative UI catalog.
|
|
124
|
+
* The LLM uses catalog entries to understand which components are available.
|
|
125
|
+
*/
|
|
126
|
+
export interface CatalogComponent {
|
|
127
|
+
/** Unique component name (PascalCase, e.g., 'MetricCard'). */
|
|
128
|
+
readonly name: string;
|
|
129
|
+
|
|
130
|
+
/** Short description for the LLM system prompt. */
|
|
131
|
+
readonly description: string;
|
|
132
|
+
|
|
133
|
+
/** Prop schema for validation and prompt generation. */
|
|
134
|
+
readonly props: readonly PropSchema[];
|
|
135
|
+
|
|
136
|
+
/** Whether this component accepts children. */
|
|
137
|
+
readonly acceptsChildren?: boolean;
|
|
138
|
+
|
|
139
|
+
/** Category for grouping in prompts (e.g., 'layout', 'data', 'chart', 'action'). */
|
|
140
|
+
readonly category: ComponentCategory;
|
|
141
|
+
|
|
142
|
+
/** Minimum user tier required to use this component. */
|
|
143
|
+
readonly minTier?: UserTier;
|
|
144
|
+
|
|
145
|
+
/** Tags for searchability. */
|
|
146
|
+
readonly tags?: readonly string[];
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** Component categories for catalog organization. */
|
|
150
|
+
export type ComponentCategory =
|
|
151
|
+
| 'layout'
|
|
152
|
+
| 'data'
|
|
153
|
+
| 'chart'
|
|
154
|
+
| 'metric'
|
|
155
|
+
| 'action'
|
|
156
|
+
| 'feedback'
|
|
157
|
+
| 'navigation'
|
|
158
|
+
| 'media';
|
|
159
|
+
|
|
160
|
+
// ---------------------------------------------------------------------------
|
|
161
|
+
// Enterprise Catalog Types
|
|
162
|
+
// ---------------------------------------------------------------------------
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Configuration for creating an enterprise generative UI catalog.
|
|
166
|
+
*/
|
|
167
|
+
export interface EnterpriseCatalogConfig {
|
|
168
|
+
/** Base catalog components to include. */
|
|
169
|
+
readonly components: readonly CatalogComponent[];
|
|
170
|
+
|
|
171
|
+
/** Enable entitlement-based component filtering. */
|
|
172
|
+
readonly enableEntitlementFiltering?: boolean;
|
|
173
|
+
|
|
174
|
+
/** Enable audit logging for every catalog access. */
|
|
175
|
+
readonly enableAuditLogging?: boolean;
|
|
176
|
+
|
|
177
|
+
/** Custom component validator (runs before prompt generation). */
|
|
178
|
+
readonly validateComponent?: (component: CatalogComponent) => boolean;
|
|
179
|
+
|
|
180
|
+
/** Maximum components to include in a single prompt (to limit token cost). */
|
|
181
|
+
readonly maxComponentsInPrompt?: number;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* An enterprise catalog with governance extensions.
|
|
186
|
+
*/
|
|
187
|
+
export interface EnterpriseCatalog {
|
|
188
|
+
/** All registered components. */
|
|
189
|
+
readonly components: readonly CatalogComponent[];
|
|
190
|
+
|
|
191
|
+
/** Get components filtered by user entitlements. */
|
|
192
|
+
getComponentsForTier(tier: UserTier): readonly CatalogComponent[];
|
|
193
|
+
|
|
194
|
+
/** Get a single component by name. */
|
|
195
|
+
getComponent(name: string): CatalogComponent | undefined;
|
|
196
|
+
|
|
197
|
+
/** Generate the system prompt section describing available components. */
|
|
198
|
+
generatePromptSection(tier: UserTier): string;
|
|
199
|
+
|
|
200
|
+
/** Validate a UI tree against the catalog. */
|
|
201
|
+
validateTree(tree: UITree, tier: UserTier): UITreeValidationResult;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Result of validating a UI tree against the catalog.
|
|
206
|
+
*/
|
|
207
|
+
export interface UITreeValidationResult {
|
|
208
|
+
/** Whether the tree is valid. */
|
|
209
|
+
readonly valid: boolean;
|
|
210
|
+
|
|
211
|
+
/** Validation errors (empty if valid). */
|
|
212
|
+
readonly errors: readonly UITreeValidationError[];
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* A single validation error in a UI tree.
|
|
217
|
+
*/
|
|
218
|
+
export interface UITreeValidationError {
|
|
219
|
+
/** Path to the invalid element (e.g., 'root.children[0].children[2]'). */
|
|
220
|
+
readonly path: string;
|
|
221
|
+
|
|
222
|
+
/** Error message. */
|
|
223
|
+
readonly message: string;
|
|
224
|
+
|
|
225
|
+
/** Error severity. */
|
|
226
|
+
readonly severity: 'error' | 'warning';
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
// Stream Types
|
|
231
|
+
// ---------------------------------------------------------------------------
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Configuration for creating a generative UI stream.
|
|
235
|
+
*/
|
|
236
|
+
export interface GenerativeUIStreamConfig {
|
|
237
|
+
/** Model ID to use for generation. */
|
|
238
|
+
readonly modelId?: string;
|
|
239
|
+
|
|
240
|
+
/** User tier for entitlement filtering. */
|
|
241
|
+
readonly userTier: UserTier;
|
|
242
|
+
|
|
243
|
+
/** User ID for audit logging. */
|
|
244
|
+
readonly userId: string;
|
|
245
|
+
|
|
246
|
+
/** Enterprise catalog to use. */
|
|
247
|
+
readonly catalog: EnterpriseCatalog;
|
|
248
|
+
|
|
249
|
+
/** Budget guard configuration. */
|
|
250
|
+
readonly budgetGuard?: {
|
|
251
|
+
readonly maxTokens?: number;
|
|
252
|
+
readonly maxCost?: number;
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/** Stream smoothing configuration. */
|
|
256
|
+
readonly smoothing?: {
|
|
257
|
+
readonly delayInMs?: number;
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
/** Additional system prompt context. */
|
|
261
|
+
readonly systemPromptSuffix?: string;
|
|
262
|
+
|
|
263
|
+
/** Abort signal for cancellation. */
|
|
264
|
+
readonly abortSignal?: AbortSignal;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Result of a generative UI stream.
|
|
269
|
+
*/
|
|
270
|
+
export interface GenerativeUIStreamResult {
|
|
271
|
+
/** Async iterator of partial UI trees. */
|
|
272
|
+
readonly partialTreeStream: AsyncIterable<Partial<UITree>>;
|
|
273
|
+
|
|
274
|
+
/** Promise that resolves to the final complete tree. */
|
|
275
|
+
readonly finalTree: Promise<UITree>;
|
|
276
|
+
|
|
277
|
+
/** Token usage after completion. */
|
|
278
|
+
readonly usage: Promise<{
|
|
279
|
+
readonly promptTokens: number;
|
|
280
|
+
readonly completionTokens: number;
|
|
281
|
+
readonly totalTokens: number;
|
|
282
|
+
}>;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Data stream part for UI tree deltas.
|
|
287
|
+
* Sent via `dataStream.write()` during streaming.
|
|
288
|
+
*/
|
|
289
|
+
export interface UITreeDeltaStreamPart {
|
|
290
|
+
readonly type: 'data-uiTreeDelta';
|
|
291
|
+
readonly data: string; // JSON-serialized Partial<UITree>
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// ---------------------------------------------------------------------------
|
|
295
|
+
// Client Hook Types
|
|
296
|
+
// ---------------------------------------------------------------------------
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Configuration for the useGenerativeUI client hook.
|
|
300
|
+
*/
|
|
301
|
+
export interface UseGenerativeUIConfig {
|
|
302
|
+
/** API endpoint for generative UI requests. */
|
|
303
|
+
readonly api?: string;
|
|
304
|
+
|
|
305
|
+
/** Callback when a new tree is received. */
|
|
306
|
+
readonly onTree?: (tree: UITree) => void;
|
|
307
|
+
|
|
308
|
+
/** Callback on error. */
|
|
309
|
+
readonly onError?: (error: Error) => void;
|
|
310
|
+
|
|
311
|
+
/** Callback when generation finishes. */
|
|
312
|
+
readonly onFinish?: (tree: UITree) => void;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Return type of the useGenerativeUI client hook.
|
|
317
|
+
*/
|
|
318
|
+
export interface UseGenerativeUIReturn {
|
|
319
|
+
/** Current (possibly partial) UI tree. */
|
|
320
|
+
readonly tree: UITree | null;
|
|
321
|
+
|
|
322
|
+
/** Whether a UI tree is being generated. */
|
|
323
|
+
readonly isGenerating: boolean;
|
|
324
|
+
|
|
325
|
+
/** Trigger generation with a prompt. */
|
|
326
|
+
generate(prompt: string): void;
|
|
327
|
+
|
|
328
|
+
/** Abort the current generation. */
|
|
329
|
+
abort(): void;
|
|
330
|
+
|
|
331
|
+
/** Last error, if any. */
|
|
332
|
+
readonly error: Error | null;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
// ---------------------------------------------------------------------------
|
|
336
|
+
// Audit Types
|
|
337
|
+
// ---------------------------------------------------------------------------
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Audit entry for a generative UI operation.
|
|
341
|
+
*/
|
|
342
|
+
export interface GenerativeUIAuditEntry {
|
|
343
|
+
/** User who triggered the generation. */
|
|
344
|
+
readonly userId: string;
|
|
345
|
+
|
|
346
|
+
/** User's tier at time of generation. */
|
|
347
|
+
readonly userTier: UserTier;
|
|
348
|
+
|
|
349
|
+
/** Prompt that triggered generation (hashed for privacy). */
|
|
350
|
+
readonly promptHash: string;
|
|
351
|
+
|
|
352
|
+
/** Components used in the generated tree. */
|
|
353
|
+
readonly componentsUsed: readonly string[];
|
|
354
|
+
|
|
355
|
+
/** Number of elements in the tree. */
|
|
356
|
+
readonly elementCount: number;
|
|
357
|
+
|
|
358
|
+
/** Token usage. */
|
|
359
|
+
readonly tokenUsage: {
|
|
360
|
+
readonly promptTokens: number;
|
|
361
|
+
readonly completionTokens: number;
|
|
362
|
+
readonly totalTokens: number;
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
/** Cost in USD. */
|
|
366
|
+
readonly costUsd: number;
|
|
367
|
+
|
|
368
|
+
/** Whether any components were filtered by entitlements. */
|
|
369
|
+
readonly componentsFiltered: readonly string[];
|
|
370
|
+
|
|
371
|
+
/** Validation result of the generated tree. */
|
|
372
|
+
readonly validationPassed: boolean;
|
|
373
|
+
|
|
374
|
+
/** Generation timestamp (ISO 8601). */
|
|
375
|
+
readonly timestamp: string;
|
|
376
|
+
}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Audit Logger Implementation
|
|
3
|
+
* Audit Logger Implementation
|
|
4
|
+
* Creates immutable, cryptographically signed audit trail
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { logInfo, logWarn } from '@repo/shared/logs';
|
|
8
|
+
|
|
9
|
+
import { generateSignature, hashInput } from '../../server/cache/crypto';
|
|
10
|
+
import { POLICY_VERSION } from '../versioning';
|
|
11
|
+
|
|
12
|
+
import { validateAuditEntry } from './audit-schema';
|
|
13
|
+
|
|
14
|
+
import type { AuditEntry, AuditLogger, AuditQueryFilter } from '../types';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* In-memory audit logger (for development)
|
|
18
|
+
* In production, replace with persistent storage (PostgreSQL, Redis, S3)
|
|
19
|
+
*/
|
|
20
|
+
class InMemoryAuditLogger implements AuditLogger {
|
|
21
|
+
private entries: AuditEntry[] = [];
|
|
22
|
+
private readonly maxEntries: number;
|
|
23
|
+
|
|
24
|
+
constructor(maxEntries: number = 10000) {
|
|
25
|
+
this.maxEntries = maxEntries;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async log(entry: Omit<AuditEntry, 'timestamp' | 'signature'>): Promise<void> {
|
|
29
|
+
const timestamp = new Date().toISOString();
|
|
30
|
+
|
|
31
|
+
// Create entry with timestamp
|
|
32
|
+
const entryWithTimestamp = {
|
|
33
|
+
...entry,
|
|
34
|
+
timestamp,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// Generate signature
|
|
38
|
+
const signature = await generateSignature(entryWithTimestamp);
|
|
39
|
+
|
|
40
|
+
// Complete entry
|
|
41
|
+
const completeEntry: AuditEntry = {
|
|
42
|
+
...entryWithTimestamp,
|
|
43
|
+
signature,
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// Validate
|
|
47
|
+
validateAuditEntry(completeEntry);
|
|
48
|
+
|
|
49
|
+
// Store (append-only)
|
|
50
|
+
this.entries.push(completeEntry);
|
|
51
|
+
|
|
52
|
+
// Enforce retention limit (in production, use proper archival)
|
|
53
|
+
if (this.entries.length > this.maxEntries) {
|
|
54
|
+
this.entries.shift(); // Remove oldest
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Log to console in development
|
|
58
|
+
if (process.env.NODE_ENV === 'development') {
|
|
59
|
+
logInfo('[AUDIT]', {
|
|
60
|
+
action: completeEntry.action,
|
|
61
|
+
actor: completeEntry.actor,
|
|
62
|
+
timestamp: completeEntry.timestamp,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async query(filter: AuditQueryFilter): Promise<AuditEntry[]> {
|
|
68
|
+
// Clone entries to prevent external mutation
|
|
69
|
+
let results = this.entries.map(entry => structuredClone(entry));
|
|
70
|
+
|
|
71
|
+
// Filter by actor
|
|
72
|
+
if (filter.actor) {
|
|
73
|
+
results = results.filter(e => e.actor === filter.actor);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Filter by action
|
|
77
|
+
if (filter.action) {
|
|
78
|
+
results = results.filter(e => e.action === filter.action);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Filter by date range
|
|
82
|
+
const { startDate, endDate } = filter;
|
|
83
|
+
if (startDate) {
|
|
84
|
+
results = results.filter(e => new Date(e.timestamp) >= startDate);
|
|
85
|
+
}
|
|
86
|
+
if (endDate) {
|
|
87
|
+
results = results.filter(e => new Date(e.timestamp) <= endDate);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Apply limit
|
|
91
|
+
const limit = filter.limit ?? 100;
|
|
92
|
+
return results.slice(0, limit);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Get all entries (for development/testing)
|
|
97
|
+
*/
|
|
98
|
+
async getAll(): Promise<AuditEntry[]> {
|
|
99
|
+
// Return deep clones to prevent external mutation
|
|
100
|
+
return this.entries.map(entry => structuredClone(entry));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Clear all entries (for testing only)
|
|
105
|
+
*/
|
|
106
|
+
async clear(): Promise<void> {
|
|
107
|
+
this.entries = [];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Console-only audit logger (for demos)
|
|
113
|
+
*/
|
|
114
|
+
class ConsoleAuditLogger implements AuditLogger {
|
|
115
|
+
async log(entry: Omit<AuditEntry, 'timestamp' | 'signature'>): Promise<void> {
|
|
116
|
+
const timestamp = new Date().toISOString();
|
|
117
|
+
const signature = await generateSignature({ ...entry, timestamp });
|
|
118
|
+
|
|
119
|
+
const completeEntry = {
|
|
120
|
+
...entry,
|
|
121
|
+
timestamp,
|
|
122
|
+
signature,
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
logInfo('[AUDIT LOG]', { entry: completeEntry });
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
async query(filter: AuditQueryFilter): Promise<AuditEntry[]> {
|
|
129
|
+
void filter;
|
|
130
|
+
logWarn('[AUDIT] ConsoleAuditLogger does not support querying');
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Create an audit logger instance
|
|
137
|
+
*/
|
|
138
|
+
export function createAuditLogger(type: 'memory' | 'console' = 'memory'): AuditLogger {
|
|
139
|
+
switch (type) {
|
|
140
|
+
case 'console':
|
|
141
|
+
return new ConsoleAuditLogger();
|
|
142
|
+
case 'memory':
|
|
143
|
+
default:
|
|
144
|
+
return new InMemoryAuditLogger();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Global audit logger instance
|
|
150
|
+
*/
|
|
151
|
+
let globalLogger: AuditLogger | null = null;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Get or create global audit logger
|
|
155
|
+
*/
|
|
156
|
+
export function getAuditLogger(): AuditLogger {
|
|
157
|
+
if (!globalLogger) {
|
|
158
|
+
globalLogger = createAuditLogger('memory');
|
|
159
|
+
}
|
|
160
|
+
return globalLogger;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Set global audit logger
|
|
165
|
+
*/
|
|
166
|
+
export function setAuditLogger(logger: AuditLogger): void {
|
|
167
|
+
globalLogger = logger;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Helper to log a generation event
|
|
172
|
+
*/
|
|
173
|
+
export async function logGeneration(
|
|
174
|
+
actor: string,
|
|
175
|
+
input: string,
|
|
176
|
+
output: unknown,
|
|
177
|
+
metadata?: Record<string, unknown>,
|
|
178
|
+
): Promise<void> {
|
|
179
|
+
const logger = getAuditLogger();
|
|
180
|
+
const input_hash = await hashInput(input);
|
|
181
|
+
|
|
182
|
+
await logger.log({
|
|
183
|
+
actor,
|
|
184
|
+
action: 'generation',
|
|
185
|
+
input_hash,
|
|
186
|
+
output_snapshot: output,
|
|
187
|
+
policy_version: POLICY_VERSION,
|
|
188
|
+
metadata,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Helper to log a tool call event
|
|
194
|
+
*/
|
|
195
|
+
export async function logToolCall(
|
|
196
|
+
actor: string,
|
|
197
|
+
toolName: string,
|
|
198
|
+
args: unknown,
|
|
199
|
+
result: unknown,
|
|
200
|
+
metadata?: Record<string, unknown>,
|
|
201
|
+
): Promise<void> {
|
|
202
|
+
const logger = getAuditLogger();
|
|
203
|
+
const input_hash = await hashInput(JSON.stringify(args));
|
|
204
|
+
|
|
205
|
+
await logger.log({
|
|
206
|
+
actor,
|
|
207
|
+
action: 'tool_call',
|
|
208
|
+
input_hash,
|
|
209
|
+
output_snapshot: {
|
|
210
|
+
tool: toolName,
|
|
211
|
+
args,
|
|
212
|
+
result,
|
|
213
|
+
},
|
|
214
|
+
policy_version: POLICY_VERSION,
|
|
215
|
+
metadata,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Helper to log a redaction event
|
|
221
|
+
*/
|
|
222
|
+
export async function logRedaction(
|
|
223
|
+
actor: string,
|
|
224
|
+
detections: unknown,
|
|
225
|
+
metadata?: Record<string, unknown>,
|
|
226
|
+
): Promise<void> {
|
|
227
|
+
const logger = getAuditLogger();
|
|
228
|
+
|
|
229
|
+
await logger.log({
|
|
230
|
+
actor,
|
|
231
|
+
action: 'redaction',
|
|
232
|
+
input_hash: 'n/a', // Don't hash PHI
|
|
233
|
+
output_snapshot: {
|
|
234
|
+
detections,
|
|
235
|
+
},
|
|
236
|
+
policy_version: POLICY_VERSION,
|
|
237
|
+
metadata,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Audit entry schemas and validation
|
|
3
|
+
* Audit entry schemas and validation
|
|
4
|
+
* Ensures structured, machine-readable audit logs for FDA/SOC2
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Audit action types
|
|
11
|
+
*/
|
|
12
|
+
export const AuditActionSchema = z.enum([
|
|
13
|
+
'generation',
|
|
14
|
+
'generative_ui',
|
|
15
|
+
'tool_call',
|
|
16
|
+
'redaction',
|
|
17
|
+
'policy_check',
|
|
18
|
+
'abac_decision',
|
|
19
|
+
'approval_request',
|
|
20
|
+
'approval_granted',
|
|
21
|
+
'approval_denied',
|
|
22
|
+
]);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* ABAC decision schema
|
|
26
|
+
*/
|
|
27
|
+
export const ABACDecisionSchema = z.object({
|
|
28
|
+
allowed: z.boolean(),
|
|
29
|
+
reason: z.string().optional(),
|
|
30
|
+
conditions: z.array(z.string()).optional(),
|
|
31
|
+
policyId: z.string(),
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Core audit entry schema
|
|
36
|
+
*/
|
|
37
|
+
export const AuditEntrySchema = z.object({
|
|
38
|
+
id: z.string().optional(), // Generated by logger
|
|
39
|
+
timestamp: z.string(), // ISO 8601
|
|
40
|
+
actor: z.string(), // User/Agent ID
|
|
41
|
+
action: AuditActionSchema,
|
|
42
|
+
input_hash: z.string(), // SHA-256 hash
|
|
43
|
+
output_snapshot: z.unknown(), // Flexible structured output
|
|
44
|
+
policy_version: z.string(),
|
|
45
|
+
abac_decision: ABACDecisionSchema.optional(),
|
|
46
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
47
|
+
signature: z.string(), // HMAC signature
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Audit query filter schema
|
|
52
|
+
*/
|
|
53
|
+
export const AuditQueryFilterSchema = z.object({
|
|
54
|
+
actor: z.string().optional(),
|
|
55
|
+
action: AuditActionSchema.optional(),
|
|
56
|
+
startDate: z.date().optional(),
|
|
57
|
+
endDate: z.date().optional(),
|
|
58
|
+
limit: z.number().positive().max(1000).default(100),
|
|
59
|
+
offset: z.number().nonnegative().default(0),
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Type exports
|
|
64
|
+
*/
|
|
65
|
+
export type AuditAction = z.infer<typeof AuditActionSchema>;
|
|
66
|
+
export type ABACDecision = z.infer<typeof ABACDecisionSchema>;
|
|
67
|
+
export type AuditEntry = z.infer<typeof AuditEntrySchema>;
|
|
68
|
+
export type AuditQueryFilter = z.infer<typeof AuditQueryFilterSchema>;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Validate audit entry
|
|
72
|
+
*/
|
|
73
|
+
export function validateAuditEntry(entry: unknown): AuditEntry {
|
|
74
|
+
return AuditEntrySchema.parse(entry);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Validate query filter
|
|
79
|
+
*/
|
|
80
|
+
export function validateQueryFilter(filter: unknown): AuditQueryFilter {
|
|
81
|
+
return AuditQueryFilterSchema.parse(filter);
|
|
82
|
+
}
|