@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,432 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-CkzbjWQW.mjs";
|
|
2
|
+
import "./schemas-CxQtxIga.mjs";
|
|
3
|
+
import { a as TOKEN_LIMITS, c as detectRiskFromMessages, i as resolveLoopPolicy, l as getTokenLimitForRisk, n as defaultTelemetry, o as applyDefaultGuardrails, r as mergeActiveTools, s as detectPromptInjection, t as createTelemetrySettings } from "./telemetry-2eKMojIb.mjs";
|
|
4
|
+
import { C as isVersionCompatible, D as updateVersionedConfig, E as satisfiesRange, O as validateConfigIntegrity, S as getCurrentVersion, T as parseVersion, _ as createVersionRegistry, a as logToolCall, b as getCurrentPolicyVersion, c as AuditActionSchema, d as validateAuditEntry, f as validateQueryFilter, g as compareVersions, h as SCHEMA_VERSION, i as logRedaction, l as AuditEntrySchema, m as POLICY_VERSION, n as getAuditLogger, o as setAuditLogger, p as PLATFORM_VERSION, r as logGeneration, s as ABACDecisionSchema, t as createAuditLogger, u as AuditQueryFilterSchema, v as createVersionedConfig, w as migrateVersionedConfig, x as getCurrentSchemaVersion, y as defaultRegistry } from "./audit-logger-CHIP8bRO.mjs";
|
|
5
|
+
import { C as unregisterPolicy, S as registerPolicy, _ as getPolicies, a as analyzePHI, b as hasRole, c as isSafeHarborCompliant, d as getConfidenceScore, f as isFalsePositive, g as evaluatePolicy, h as deny, i as sanitizeForLogging, l as HIGH_CONFIDENCE_PATTERNS, m as createABACContext, n as redactPHI, o as containsPHI, p as allow, r as redactSpecificTypes, s as detectPHI, t as previewRedactions, u as SAFE_HARBOR_PATTERNS, v as hasAllRoles, x as isResourceSensitive, y as hasAnyRole } from "./redaction-utils-DcQwsiNh.mjs";
|
|
6
|
+
import { n as getApprovalQueue, r as setApprovalQueue, t as createApprovalQueue } from "./compliance-approval-queue-DQGLojAm.mjs";
|
|
7
|
+
import { a as getTenantContext, c as withTenantContext, i as createTenantContext, l as TenantQuotaExceededError, n as createQuotaMiddleware, o as getTenantContextOrNull, r as clearTenantContext, s as setTenantContext, t as InMemoryQuotaTracker } from "./quota-manager-D_N7FuQ2.mjs";
|
|
8
|
+
import { logInfo } from "@od-oneapp/shared/logs";
|
|
9
|
+
|
|
10
|
+
//#region src/governance/entitlements/index.ts
|
|
11
|
+
/**
|
|
12
|
+
* @fileoverview User Entitlements & Access Control.
|
|
13
|
+
* @module @od-oneapp/ai-platform/governance/entitlements
|
|
14
|
+
*
|
|
15
|
+
* Type-safe model access control and feature enablement by user tier.
|
|
16
|
+
*
|
|
17
|
+
* Features:
|
|
18
|
+
* - Tier-based access control (free, pro, enterprise)
|
|
19
|
+
* - Per-model access restrictions
|
|
20
|
+
* - Token quotas per day/hour/minute
|
|
21
|
+
* - Request rate limiting
|
|
22
|
+
* - Feature flag enablement by tier
|
|
23
|
+
* - Organization-scoped entitlements
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Default entitlements by tier
|
|
27
|
+
*/
|
|
28
|
+
const DEFAULT_ENTITLEMENTS = {
|
|
29
|
+
free: {
|
|
30
|
+
tier: "free",
|
|
31
|
+
models: ["gpt-4-mini", "claude-3-haiku"],
|
|
32
|
+
maxTokensPerDay: 1e4,
|
|
33
|
+
maxTokensPerHour: 1e3,
|
|
34
|
+
maxRequestsPerMinute: 10,
|
|
35
|
+
maxConcurrentRequests: 1,
|
|
36
|
+
features: [
|
|
37
|
+
"basic-chat",
|
|
38
|
+
"conversation-history",
|
|
39
|
+
"file-upload"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
pro: {
|
|
43
|
+
tier: "pro",
|
|
44
|
+
models: [
|
|
45
|
+
"gpt-4-mini",
|
|
46
|
+
"gpt-4-turbo",
|
|
47
|
+
"claude-3-haiku",
|
|
48
|
+
"claude-3-sonnet"
|
|
49
|
+
],
|
|
50
|
+
maxTokensPerDay: 5e5,
|
|
51
|
+
maxTokensPerHour: 1e5,
|
|
52
|
+
maxRequestsPerMinute: 60,
|
|
53
|
+
maxConcurrentRequests: 5,
|
|
54
|
+
features: [
|
|
55
|
+
"basic-chat",
|
|
56
|
+
"conversation-history",
|
|
57
|
+
"code-execution",
|
|
58
|
+
"image-analysis",
|
|
59
|
+
"file-upload"
|
|
60
|
+
],
|
|
61
|
+
rateLimitBucket: {
|
|
62
|
+
capacity: 1e5,
|
|
63
|
+
refillRate: 100
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
enterprise: {
|
|
67
|
+
tier: "enterprise",
|
|
68
|
+
models: [
|
|
69
|
+
"gpt-4-mini",
|
|
70
|
+
"gpt-4-turbo",
|
|
71
|
+
"o1",
|
|
72
|
+
"claude-3-haiku",
|
|
73
|
+
"claude-3-sonnet",
|
|
74
|
+
"claude-3-opus"
|
|
75
|
+
],
|
|
76
|
+
maxTokensPerDay: 1e8,
|
|
77
|
+
maxTokensPerHour: 1e7,
|
|
78
|
+
maxRequestsPerMinute: 1e3,
|
|
79
|
+
maxConcurrentRequests: 100,
|
|
80
|
+
features: [
|
|
81
|
+
"basic-chat",
|
|
82
|
+
"conversation-history",
|
|
83
|
+
"code-execution",
|
|
84
|
+
"image-analysis",
|
|
85
|
+
"file-upload",
|
|
86
|
+
"api-access",
|
|
87
|
+
"custom-models",
|
|
88
|
+
"priority-support",
|
|
89
|
+
"audit-logs",
|
|
90
|
+
"sso"
|
|
91
|
+
],
|
|
92
|
+
rateLimitBucket: {
|
|
93
|
+
capacity: 5e7,
|
|
94
|
+
refillRate: 1e4
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Create an entitlement checker instance
|
|
100
|
+
*
|
|
101
|
+
* @param config - Entitlement configuration
|
|
102
|
+
* @param storage - Optional quota storage backend (defaults to in-memory)
|
|
103
|
+
* @returns EntitlementChecker instance
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const checker = createEntitlementChecker({
|
|
108
|
+
* tiers: DEFAULT_ENTITLEMENTS,
|
|
109
|
+
* enableLogging: true
|
|
110
|
+
* });
|
|
111
|
+
*
|
|
112
|
+
* const user = { id: 'user-123', tier: 'pro' };
|
|
113
|
+
* const result = checker.canAccessModel(user, 'gpt-4-turbo');
|
|
114
|
+
* console.log(result.allowed); // true
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
function createEntitlementChecker(config, storage) {
|
|
118
|
+
const logger = config.enableLogging ? logInfo : () => {};
|
|
119
|
+
const quotaStorage = storage || createInMemoryQuotaStorage();
|
|
120
|
+
return {
|
|
121
|
+
canAccessModel(user, modelId) {
|
|
122
|
+
if (!this.getUserEntitlements(user).models.includes(modelId)) {
|
|
123
|
+
let suggestedTier;
|
|
124
|
+
const tierOrder = [
|
|
125
|
+
"free",
|
|
126
|
+
"pro",
|
|
127
|
+
"enterprise"
|
|
128
|
+
];
|
|
129
|
+
const currentIndex = tierOrder.indexOf(user.tier);
|
|
130
|
+
for (let i = currentIndex + 1; i < tierOrder.length; i++) {
|
|
131
|
+
const tier = tierOrder[i];
|
|
132
|
+
if (!tier) continue;
|
|
133
|
+
if (config.tiers[tier]?.models.includes(modelId)) {
|
|
134
|
+
suggestedTier = tier;
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
logger(`[Entitlements] Model access denied: user ${user.id} (${user.tier}) tried to access ${modelId}`);
|
|
139
|
+
return {
|
|
140
|
+
allowed: false,
|
|
141
|
+
reason: `Model '${modelId}' not available in ${user.tier} tier`,
|
|
142
|
+
suggestedTier
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
logger(`[Entitlements] Model access granted: user ${user.id} can access ${modelId}`);
|
|
146
|
+
return { allowed: true };
|
|
147
|
+
},
|
|
148
|
+
canAccessFeature(user, feature) {
|
|
149
|
+
if (!this.getUserEntitlements(user).features.includes(feature)) {
|
|
150
|
+
let suggestedTier;
|
|
151
|
+
const tierOrder = [
|
|
152
|
+
"free",
|
|
153
|
+
"pro",
|
|
154
|
+
"enterprise"
|
|
155
|
+
];
|
|
156
|
+
const currentIndex = tierOrder.indexOf(user.tier);
|
|
157
|
+
for (let i = currentIndex + 1; i < tierOrder.length; i++) {
|
|
158
|
+
const tier = tierOrder[i];
|
|
159
|
+
if (!tier) continue;
|
|
160
|
+
if (config.tiers[tier]?.features.includes(feature)) {
|
|
161
|
+
suggestedTier = tier;
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
logger(`[Entitlements] Feature access denied: user ${user.id} (${user.tier}) tried to access ${feature}`);
|
|
166
|
+
return {
|
|
167
|
+
allowed: false,
|
|
168
|
+
reason: `Feature '${feature}' not available in ${user.tier} tier`,
|
|
169
|
+
suggestedTier
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
logger(`[Entitlements] Feature access granted: user ${user.id} can access ${feature}`);
|
|
173
|
+
return { allowed: true };
|
|
174
|
+
},
|
|
175
|
+
async getRemainingTokens(userId) {
|
|
176
|
+
const user = {
|
|
177
|
+
id: userId,
|
|
178
|
+
tier: "pro"
|
|
179
|
+
};
|
|
180
|
+
const entitlements = this.getUserEntitlements(user);
|
|
181
|
+
const consumed = await quotaStorage.getTokenUsage(userId, "day");
|
|
182
|
+
const remaining = Math.max(0, entitlements.maxTokensPerDay - consumed);
|
|
183
|
+
logger(`[Entitlements] Remaining tokens for user ${userId}: ${remaining}`);
|
|
184
|
+
return remaining;
|
|
185
|
+
},
|
|
186
|
+
async getRemainingRequests(userId) {
|
|
187
|
+
const user = {
|
|
188
|
+
id: userId,
|
|
189
|
+
tier: "pro"
|
|
190
|
+
};
|
|
191
|
+
const entitlements = this.getUserEntitlements(user);
|
|
192
|
+
const consumed = await quotaStorage.getRequestCount(userId, "minute");
|
|
193
|
+
const remaining = Math.max(0, entitlements.maxRequestsPerMinute - consumed);
|
|
194
|
+
logger(`[Entitlements] Remaining requests for user ${userId}: ${remaining}`);
|
|
195
|
+
return remaining;
|
|
196
|
+
},
|
|
197
|
+
async consumeTokens(userId, tokens) {
|
|
198
|
+
const remaining = await this.getRemainingTokens(userId);
|
|
199
|
+
if (tokens > remaining) {
|
|
200
|
+
logger(`[Entitlements] Token quota exceeded for user ${userId}: needs ${tokens}, has ${remaining}`);
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
await quotaStorage.addTokenUsage(userId, tokens);
|
|
204
|
+
logger(`[Entitlements] Consumed ${tokens} tokens for user ${userId}`);
|
|
205
|
+
return true;
|
|
206
|
+
},
|
|
207
|
+
async consumeRequest(userId) {
|
|
208
|
+
if (await this.getRemainingRequests(userId) <= 0) {
|
|
209
|
+
logger(`[Entitlements] Request quota exceeded for user ${userId}`);
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
await quotaStorage.addRequest(userId);
|
|
213
|
+
logger(`[Entitlements] Consumed 1 request for user ${userId}`);
|
|
214
|
+
return true;
|
|
215
|
+
},
|
|
216
|
+
getUserEntitlements(user) {
|
|
217
|
+
const tier = config.getTierForUser?.(user) || user.tier;
|
|
218
|
+
return config.tiers[tier];
|
|
219
|
+
},
|
|
220
|
+
async resetQuotas(userId) {
|
|
221
|
+
await quotaStorage.reset(userId);
|
|
222
|
+
logger(`[Entitlements] Reset quotas for user ${userId}`);
|
|
223
|
+
},
|
|
224
|
+
async getQuotaStats(userId) {
|
|
225
|
+
const user = {
|
|
226
|
+
id: userId,
|
|
227
|
+
tier: "pro"
|
|
228
|
+
};
|
|
229
|
+
const entitlements = this.getUserEntitlements(user);
|
|
230
|
+
const tokensConsumedToday = await quotaStorage.getTokenUsage(userId, "day");
|
|
231
|
+
const tokensConsumedThisHour = await quotaStorage.getTokenUsage(userId, "hour");
|
|
232
|
+
const requestsThisMinute = await quotaStorage.getRequestCount(userId, "minute");
|
|
233
|
+
return {
|
|
234
|
+
tokensConsumedToday,
|
|
235
|
+
tokensConsumedThisHour,
|
|
236
|
+
requestsThisMinute,
|
|
237
|
+
requestsToday: await quotaStorage.getRequestCount(userId, "day"),
|
|
238
|
+
tokenUsagePercent: tokensConsumedToday / entitlements.maxTokensPerDay * 100,
|
|
239
|
+
tokenUsagePercentHour: tokensConsumedThisHour / entitlements.maxTokensPerHour * 100,
|
|
240
|
+
requestUsagePercent: requestsThisMinute / entitlements.maxRequestsPerMinute * 100,
|
|
241
|
+
resetsAt: getNextResetTime("day")
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Check if a user has access to a specific model
|
|
248
|
+
* Convenience function that creates a temporary checker
|
|
249
|
+
*
|
|
250
|
+
* @param user - User to check
|
|
251
|
+
* @param modelId - Model ID to check access for
|
|
252
|
+
* @returns Whether access is allowed
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```typescript
|
|
256
|
+
* const user = { id: 'user-123', tier: 'free' };
|
|
257
|
+
* const canUse = checkModelAccess(user, 'gpt-4-turbo');
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
260
|
+
function checkModelAccess(user, modelId) {
|
|
261
|
+
return createEntitlementChecker({ tiers: DEFAULT_ENTITLEMENTS }).canAccessModel(user, modelId).allowed;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Check if a user has access to a specific feature
|
|
265
|
+
* Convenience function that creates a temporary checker
|
|
266
|
+
*
|
|
267
|
+
* @param user - User to check
|
|
268
|
+
* @param feature - Feature to check access for
|
|
269
|
+
* @returns Whether access is allowed
|
|
270
|
+
*
|
|
271
|
+
* @example
|
|
272
|
+
* ```typescript
|
|
273
|
+
* const user = { id: 'user-123', tier: 'pro' };
|
|
274
|
+
* const canUse = checkFeatureAccess(user, 'code-execution');
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
277
|
+
function checkFeatureAccess(user, feature) {
|
|
278
|
+
return createEntitlementChecker({ tiers: DEFAULT_ENTITLEMENTS }).canAccessFeature(user, feature).allowed;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Create in-memory quota storage backend
|
|
282
|
+
* Suitable for development and testing, not recommended for production
|
|
283
|
+
*
|
|
284
|
+
* @returns QuotaStorage instance
|
|
285
|
+
*/
|
|
286
|
+
function createInMemoryQuotaStorage() {
|
|
287
|
+
const tokenUsage = /* @__PURE__ */ new Map();
|
|
288
|
+
const requestCount = /* @__PURE__ */ new Map();
|
|
289
|
+
return {
|
|
290
|
+
async getTokenUsage(userId, period) {
|
|
291
|
+
const usage = tokenUsage.get(userId);
|
|
292
|
+
if (!usage) return 0;
|
|
293
|
+
const hoursSinceReset = ((/* @__PURE__ */ new Date()).getTime() - usage.lastReset.getTime()) / (1e3 * 60 * 60);
|
|
294
|
+
if (period === "day" && hoursSinceReset >= 24) return 0;
|
|
295
|
+
if (period === "hour" && hoursSinceReset >= 1) return 0;
|
|
296
|
+
return period === "day" ? usage.day : usage.hour;
|
|
297
|
+
},
|
|
298
|
+
async getRequestCount(userId, period) {
|
|
299
|
+
const count = requestCount.get(userId);
|
|
300
|
+
if (!count) return 0;
|
|
301
|
+
const minutesSinceReset = ((/* @__PURE__ */ new Date()).getTime() - count.lastReset.getTime()) / (1e3 * 60);
|
|
302
|
+
if (period === "day" && minutesSinceReset >= 1440) return 0;
|
|
303
|
+
if (period === "hour" && minutesSinceReset >= 60) return 0;
|
|
304
|
+
if (period === "minute" && minutesSinceReset >= 1) return 0;
|
|
305
|
+
return count[period];
|
|
306
|
+
},
|
|
307
|
+
async addTokenUsage(userId, tokens) {
|
|
308
|
+
const current = tokenUsage.get(userId) || {
|
|
309
|
+
day: 0,
|
|
310
|
+
hour: 0,
|
|
311
|
+
lastReset: /* @__PURE__ */ new Date()
|
|
312
|
+
};
|
|
313
|
+
current.day += tokens;
|
|
314
|
+
current.hour += tokens;
|
|
315
|
+
tokenUsage.set(userId, current);
|
|
316
|
+
},
|
|
317
|
+
async addRequest(userId) {
|
|
318
|
+
const current = requestCount.get(userId) || {
|
|
319
|
+
minute: 0,
|
|
320
|
+
hour: 0,
|
|
321
|
+
day: 0,
|
|
322
|
+
lastReset: /* @__PURE__ */ new Date()
|
|
323
|
+
};
|
|
324
|
+
current.minute += 1;
|
|
325
|
+
current.hour += 1;
|
|
326
|
+
current.day += 1;
|
|
327
|
+
requestCount.set(userId, current);
|
|
328
|
+
},
|
|
329
|
+
async reset(userId) {
|
|
330
|
+
tokenUsage.delete(userId);
|
|
331
|
+
requestCount.delete(userId);
|
|
332
|
+
},
|
|
333
|
+
async clearExpired() {}
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Get the next reset time for a quota period
|
|
338
|
+
*/
|
|
339
|
+
function getNextResetTime(period) {
|
|
340
|
+
const now = /* @__PURE__ */ new Date();
|
|
341
|
+
if (period === "minute") return new Date(now.getTime() + 60 * 1e3);
|
|
342
|
+
if (period === "hour") return new Date(now.getTime() + 3600 * 1e3);
|
|
343
|
+
const tomorrow = new Date(now);
|
|
344
|
+
tomorrow.setDate(tomorrow.getDate() + 1);
|
|
345
|
+
tomorrow.setHours(0, 0, 0, 0);
|
|
346
|
+
return tomorrow;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
//#endregion
|
|
350
|
+
//#region src/governance/index.ts
|
|
351
|
+
var governance_exports = /* @__PURE__ */ __exportAll({
|
|
352
|
+
ABACDecisionSchema: () => ABACDecisionSchema,
|
|
353
|
+
AuditActionSchema: () => AuditActionSchema,
|
|
354
|
+
AuditEntrySchema: () => AuditEntrySchema,
|
|
355
|
+
AuditQueryFilterSchema: () => AuditQueryFilterSchema,
|
|
356
|
+
DEFAULT_ENTITLEMENTS: () => DEFAULT_ENTITLEMENTS,
|
|
357
|
+
HIGH_CONFIDENCE_PATTERNS: () => HIGH_CONFIDENCE_PATTERNS,
|
|
358
|
+
InMemoryQuotaTracker: () => InMemoryQuotaTracker,
|
|
359
|
+
PLATFORM_VERSION: () => PLATFORM_VERSION,
|
|
360
|
+
POLICY_VERSION: () => POLICY_VERSION,
|
|
361
|
+
SAFE_HARBOR_PATTERNS: () => SAFE_HARBOR_PATTERNS,
|
|
362
|
+
SCHEMA_VERSION: () => SCHEMA_VERSION,
|
|
363
|
+
TOKEN_LIMITS: () => TOKEN_LIMITS,
|
|
364
|
+
TenantQuotaExceededError: () => TenantQuotaExceededError,
|
|
365
|
+
allow: () => allow,
|
|
366
|
+
analyzePHI: () => analyzePHI,
|
|
367
|
+
applyDefaultGuardrails: () => applyDefaultGuardrails,
|
|
368
|
+
checkFeatureAccess: () => checkFeatureAccess,
|
|
369
|
+
checkModelAccess: () => checkModelAccess,
|
|
370
|
+
clearTenantContext: () => clearTenantContext,
|
|
371
|
+
compareVersions: () => compareVersions,
|
|
372
|
+
containsPHI: () => containsPHI,
|
|
373
|
+
createABACContext: () => createABACContext,
|
|
374
|
+
createApprovalQueue: () => createApprovalQueue,
|
|
375
|
+
createAuditLogger: () => createAuditLogger,
|
|
376
|
+
createEntitlementChecker: () => createEntitlementChecker,
|
|
377
|
+
createQuotaMiddleware: () => createQuotaMiddleware,
|
|
378
|
+
createTelemetrySettings: () => createTelemetrySettings,
|
|
379
|
+
createTenantContext: () => createTenantContext,
|
|
380
|
+
createVersionRegistry: () => createVersionRegistry,
|
|
381
|
+
createVersionedConfig: () => createVersionedConfig,
|
|
382
|
+
defaultRegistry: () => defaultRegistry,
|
|
383
|
+
defaultTelemetry: () => defaultTelemetry,
|
|
384
|
+
deny: () => deny,
|
|
385
|
+
detectPHI: () => detectPHI,
|
|
386
|
+
detectPromptInjection: () => detectPromptInjection,
|
|
387
|
+
detectRiskFromMessages: () => detectRiskFromMessages,
|
|
388
|
+
evaluatePolicy: () => evaluatePolicy,
|
|
389
|
+
getApprovalQueue: () => getApprovalQueue,
|
|
390
|
+
getAuditLogger: () => getAuditLogger,
|
|
391
|
+
getConfidenceScore: () => getConfidenceScore,
|
|
392
|
+
getCurrentPolicyVersion: () => getCurrentPolicyVersion,
|
|
393
|
+
getCurrentSchemaVersion: () => getCurrentSchemaVersion,
|
|
394
|
+
getCurrentVersion: () => getCurrentVersion,
|
|
395
|
+
getPolicies: () => getPolicies,
|
|
396
|
+
getTenantContext: () => getTenantContext,
|
|
397
|
+
getTenantContextOrNull: () => getTenantContextOrNull,
|
|
398
|
+
getTokenLimitForRisk: () => getTokenLimitForRisk,
|
|
399
|
+
hasAllRoles: () => hasAllRoles,
|
|
400
|
+
hasAnyRole: () => hasAnyRole,
|
|
401
|
+
hasRole: () => hasRole,
|
|
402
|
+
isFalsePositive: () => isFalsePositive,
|
|
403
|
+
isResourceSensitive: () => isResourceSensitive,
|
|
404
|
+
isSafeHarborCompliant: () => isSafeHarborCompliant,
|
|
405
|
+
isVersionCompatible: () => isVersionCompatible,
|
|
406
|
+
logGeneration: () => logGeneration,
|
|
407
|
+
logRedaction: () => logRedaction,
|
|
408
|
+
logToolCall: () => logToolCall,
|
|
409
|
+
mergeActiveTools: () => mergeActiveTools,
|
|
410
|
+
migrateVersionedConfig: () => migrateVersionedConfig,
|
|
411
|
+
parseVersion: () => parseVersion,
|
|
412
|
+
previewRedactions: () => previewRedactions,
|
|
413
|
+
redactPHI: () => redactPHI,
|
|
414
|
+
redactSpecificTypes: () => redactSpecificTypes,
|
|
415
|
+
registerPolicy: () => registerPolicy,
|
|
416
|
+
resolveLoopPolicy: () => resolveLoopPolicy,
|
|
417
|
+
sanitizeForLogging: () => sanitizeForLogging,
|
|
418
|
+
satisfiesRange: () => satisfiesRange,
|
|
419
|
+
setApprovalQueue: () => setApprovalQueue,
|
|
420
|
+
setAuditLogger: () => setAuditLogger,
|
|
421
|
+
setTenantContext: () => setTenantContext,
|
|
422
|
+
unregisterPolicy: () => unregisterPolicy,
|
|
423
|
+
updateVersionedConfig: () => updateVersionedConfig,
|
|
424
|
+
validateAuditEntry: () => validateAuditEntry,
|
|
425
|
+
validateConfigIntegrity: () => validateConfigIntegrity,
|
|
426
|
+
validateQueryFilter: () => validateQueryFilter,
|
|
427
|
+
withTenantContext: () => withTenantContext
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
//#endregion
|
|
431
|
+
export { ABACDecisionSchema, AuditActionSchema, AuditEntrySchema, AuditQueryFilterSchema, DEFAULT_ENTITLEMENTS, HIGH_CONFIDENCE_PATTERNS, InMemoryQuotaTracker, PLATFORM_VERSION, POLICY_VERSION, SAFE_HARBOR_PATTERNS, SCHEMA_VERSION, TOKEN_LIMITS, TenantQuotaExceededError, allow, analyzePHI, applyDefaultGuardrails, checkFeatureAccess, checkModelAccess, clearTenantContext, compareVersions, containsPHI, createABACContext, createApprovalQueue, createAuditLogger, createEntitlementChecker, createQuotaMiddleware, createTelemetrySettings, createTenantContext, createVersionRegistry, createVersionedConfig, defaultRegistry, defaultTelemetry, deny, detectPHI, detectPromptInjection, detectRiskFromMessages, evaluatePolicy, getApprovalQueue, getAuditLogger, getConfidenceScore, getCurrentPolicyVersion, getCurrentSchemaVersion, getCurrentVersion, getPolicies, getTenantContext, getTenantContextOrNull, getTokenLimitForRisk, hasAllRoles, hasAnyRole, hasRole, isFalsePositive, isResourceSensitive, isSafeHarborCompliant, isVersionCompatible, logGeneration, logRedaction, logToolCall, mergeActiveTools, migrateVersionedConfig, parseVersion, previewRedactions, redactPHI, redactSpecificTypes, registerPolicy, resolveLoopPolicy, sanitizeForLogging, satisfiesRange, setApprovalQueue, setAuditLogger, setTenantContext, governance_exports as t, unregisterPolicy, updateVersionedConfig, validateAuditEntry, validateConfigIntegrity, validateQueryFilter, withTenantContext };
|
|
432
|
+
//# sourceMappingURL=governance.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.mjs","names":[],"sources":["../src/governance/entitlements/index.ts","../src/governance/index.ts"],"sourcesContent":["/**\n * @fileoverview User Entitlements & Access Control.\n * @module @od-oneapp/ai-platform/governance/entitlements\n *\n * Type-safe model access control and feature enablement by user tier.\n *\n * Features:\n * - Tier-based access control (free, pro, enterprise)\n * - Per-model access restrictions\n * - Token quotas per day/hour/minute\n * - Request rate limiting\n * - Feature flag enablement by tier\n * - Organization-scoped entitlements\n */\n\nimport { logInfo } from '@repo/shared/logs';\n\n/**\n * User tier levels with increasing capabilities\n */\nexport type UserTier = 'free' | 'pro' | 'enterprise';\n\n/**\n * User representation for entitlement checks\n */\nexport interface User {\n /** Unique user identifier */\n id: string;\n\n /** User's tier level */\n tier: UserTier;\n\n /** Organization ID (for org-scoped quotas) */\n organizationId?: string;\n\n /** Additional user metadata */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Entitlements for a specific user tier\n */\nexport interface UserEntitlements {\n /** User tier */\n tier: UserTier;\n\n /** List of allowed model IDs for this tier */\n models: string[];\n\n /** Maximum tokens allowed per day */\n maxTokensPerDay: number;\n\n /** Maximum tokens allowed per hour */\n maxTokensPerHour: number;\n\n /** Maximum requests allowed per minute */\n maxRequestsPerMinute: number;\n\n /** Maximum concurrent requests */\n maxConcurrentRequests: number;\n\n /** List of enabled features for this tier */\n features: string[];\n\n /** Custom rate limit bucket (for advanced configurations) */\n rateLimitBucket?: {\n capacity: number;\n refillRate: number; // tokens per second\n };\n}\n\n/**\n * Configuration for entitlement checker\n */\nexport interface EntitlementConfig {\n /** Entitlements by tier */\n tiers: Record<UserTier, UserEntitlements>;\n\n /** Enable audit logging */\n enableLogging?: boolean;\n\n /** Custom tier mapping function */\n getTierForUser?: (user: User) => UserTier;\n}\n\n/**\n * Result of an entitlement check\n */\nexport interface EntitlementCheckResult {\n /** Whether the access is allowed */\n allowed: boolean;\n\n /** Reason if denied */\n reason?: string;\n\n /** Recommended tier upgrade if access denied */\n suggestedTier?: UserTier;\n}\n\n/**\n * Entitlement checker interface\n */\nexport interface EntitlementChecker {\n /** Check if user has access to a specific model */\n canAccessModel(user: User, modelId: string): EntitlementCheckResult;\n\n /** Check if user has access to a feature */\n canAccessFeature(user: User, feature: string): EntitlementCheckResult;\n\n /** Get remaining token quota for a user */\n getRemainingTokens(userId: string): Promise<number>;\n\n /** Get remaining requests quota for a user */\n getRemainingRequests(userId: string): Promise<number>;\n\n /** Consume tokens for a request */\n consumeTokens(userId: string, tokens: number): Promise<boolean>;\n\n /** Consume a request quota */\n consumeRequest(userId: string): Promise<boolean>;\n\n /** Get user's current entitlements */\n getUserEntitlements(user: User): UserEntitlements;\n\n /** Reset quotas for a user */\n resetQuotas(userId: string): Promise<void>;\n\n /** Get quota usage stats */\n getQuotaStats(userId: string): Promise<QuotaStats>;\n}\n\n/**\n * Statistics about quota usage\n */\nexport interface QuotaStats {\n /** Tokens consumed today */\n tokensConsumedToday: number;\n\n /** Tokens consumed this hour */\n tokensConsumedThisHour: number;\n\n /** Requests made this minute */\n requestsThisMinute: number;\n\n /** Total requests made today */\n requestsToday: number;\n\n /** Percentage of daily token quota used */\n tokenUsagePercent: number;\n\n /** Percentage of hourly token quota used */\n tokenUsagePercentHour: number;\n\n /** Percentage of per-minute request quota used */\n requestUsagePercent: number;\n\n /** When quotas reset */\n resetsAt: Date;\n}\n\n/**\n * Storage backend for quota tracking\n */\nexport interface QuotaStorage {\n /** Get current token usage for a user in a specific period */\n getTokenUsage(userId: string, period: 'day' | 'hour'): Promise<number>;\n\n /** Get current request count for a user in a specific period */\n getRequestCount(userId: string, period: 'minute' | 'hour' | 'day'): Promise<number>;\n\n /** Add tokens to usage */\n addTokenUsage(userId: string, tokens: number): Promise<void>;\n\n /** Add request to count */\n addRequest(userId: string): Promise<void>;\n\n /** Reset usage for a user */\n reset(userId: string): Promise<void>;\n\n /** Clear expired records */\n clearExpired(): Promise<void>;\n}\n\n/**\n * Default entitlements by tier\n */\nexport const DEFAULT_ENTITLEMENTS: Record<UserTier, UserEntitlements> = {\n free: {\n tier: 'free',\n models: ['gpt-4-mini', 'claude-3-haiku'],\n maxTokensPerDay: 10000,\n maxTokensPerHour: 1000,\n maxRequestsPerMinute: 10,\n maxConcurrentRequests: 1,\n features: ['basic-chat', 'conversation-history', 'file-upload'],\n },\n pro: {\n tier: 'pro',\n models: ['gpt-4-mini', 'gpt-4-turbo', 'claude-3-haiku', 'claude-3-sonnet'],\n maxTokensPerDay: 500000,\n maxTokensPerHour: 100000,\n maxRequestsPerMinute: 60,\n maxConcurrentRequests: 5,\n features: [\n 'basic-chat',\n 'conversation-history',\n 'code-execution',\n 'image-analysis',\n 'file-upload',\n ],\n rateLimitBucket: {\n capacity: 100000,\n refillRate: 100,\n },\n },\n enterprise: {\n tier: 'enterprise',\n models: [\n 'gpt-4-mini',\n 'gpt-4-turbo',\n 'o1',\n 'claude-3-haiku',\n 'claude-3-sonnet',\n 'claude-3-opus',\n ],\n maxTokensPerDay: 100000000,\n maxTokensPerHour: 10000000,\n maxRequestsPerMinute: 1000,\n maxConcurrentRequests: 100,\n features: [\n 'basic-chat',\n 'conversation-history',\n 'code-execution',\n 'image-analysis',\n 'file-upload',\n 'api-access',\n 'custom-models',\n 'priority-support',\n 'audit-logs',\n 'sso',\n ],\n rateLimitBucket: {\n capacity: 50000000,\n refillRate: 10000,\n },\n },\n};\n\n/**\n * Create an entitlement checker instance\n *\n * @param config - Entitlement configuration\n * @param storage - Optional quota storage backend (defaults to in-memory)\n * @returns EntitlementChecker instance\n *\n * @example\n * ```typescript\n * const checker = createEntitlementChecker({\n * tiers: DEFAULT_ENTITLEMENTS,\n * enableLogging: true\n * });\n *\n * const user = { id: 'user-123', tier: 'pro' };\n * const result = checker.canAccessModel(user, 'gpt-4-turbo');\n * console.log(result.allowed); // true\n * ```\n */\nexport function createEntitlementChecker(\n config: EntitlementConfig,\n storage?: QuotaStorage,\n): EntitlementChecker {\n const logger = config.enableLogging ? logInfo : () => {};\n const quotaStorage = storage || createInMemoryQuotaStorage();\n\n return {\n canAccessModel(user: User, modelId: string): EntitlementCheckResult {\n const entitlements = this.getUserEntitlements(user);\n const allowed = entitlements.models.includes(modelId);\n\n if (!allowed) {\n // Find a tier that has this model\n let suggestedTier: UserTier | undefined;\n const tierOrder: UserTier[] = ['free', 'pro', 'enterprise'];\n const currentIndex = tierOrder.indexOf(user.tier);\n\n for (let i = currentIndex + 1; i < tierOrder.length; i++) {\n const tier = tierOrder[i];\n if (!tier) continue;\n const tierConfig = config.tiers[tier];\n if (tierConfig?.models.includes(modelId)) {\n suggestedTier = tier;\n break;\n }\n }\n\n logger(\n `[Entitlements] Model access denied: user ${user.id} (${user.tier}) tried to access ${modelId}`,\n );\n\n return {\n allowed: false,\n reason: `Model '${modelId}' not available in ${user.tier} tier`,\n suggestedTier,\n };\n }\n\n logger(`[Entitlements] Model access granted: user ${user.id} can access ${modelId}`);\n return { allowed: true };\n },\n\n canAccessFeature(user: User, feature: string): EntitlementCheckResult {\n const entitlements = this.getUserEntitlements(user);\n const allowed = entitlements.features.includes(feature);\n\n if (!allowed) {\n let suggestedTier: UserTier | undefined;\n const tierOrder: UserTier[] = ['free', 'pro', 'enterprise'];\n const currentIndex = tierOrder.indexOf(user.tier);\n\n for (let i = currentIndex + 1; i < tierOrder.length; i++) {\n const tier = tierOrder[i];\n if (!tier) continue;\n const tierConfig = config.tiers[tier];\n if (tierConfig?.features.includes(feature)) {\n suggestedTier = tier;\n break;\n }\n }\n\n logger(\n `[Entitlements] Feature access denied: user ${user.id} (${user.tier}) tried to access ${feature}`,\n );\n\n return {\n allowed: false,\n reason: `Feature '${feature}' not available in ${user.tier} tier`,\n suggestedTier,\n };\n }\n\n logger(`[Entitlements] Feature access granted: user ${user.id} can access ${feature}`);\n return { allowed: true };\n },\n\n async getRemainingTokens(userId: string): Promise<number> {\n const user = { id: userId, tier: 'pro' as const }; // Default to pro for quota lookup\n const entitlements = this.getUserEntitlements(user);\n\n const consumed = await quotaStorage.getTokenUsage(userId, 'day');\n const remaining = Math.max(0, entitlements.maxTokensPerDay - consumed);\n\n logger(`[Entitlements] Remaining tokens for user ${userId}: ${remaining}`);\n return remaining;\n },\n\n async getRemainingRequests(userId: string): Promise<number> {\n const user = { id: userId, tier: 'pro' as const };\n const entitlements = this.getUserEntitlements(user);\n\n const consumed = await quotaStorage.getRequestCount(userId, 'minute');\n const remaining = Math.max(0, entitlements.maxRequestsPerMinute - consumed);\n\n logger(`[Entitlements] Remaining requests for user ${userId}: ${remaining}`);\n return remaining;\n },\n\n async consumeTokens(userId: string, tokens: number): Promise<boolean> {\n const remaining = await this.getRemainingTokens(userId);\n\n if (tokens > remaining) {\n logger(\n `[Entitlements] Token quota exceeded for user ${userId}: needs ${tokens}, has ${remaining}`,\n );\n return false;\n }\n\n await quotaStorage.addTokenUsage(userId, tokens);\n logger(`[Entitlements] Consumed ${tokens} tokens for user ${userId}`);\n return true;\n },\n\n async consumeRequest(userId: string): Promise<boolean> {\n const remaining = await this.getRemainingRequests(userId);\n\n if (remaining <= 0) {\n logger(`[Entitlements] Request quota exceeded for user ${userId}`);\n return false;\n }\n\n await quotaStorage.addRequest(userId);\n logger(`[Entitlements] Consumed 1 request for user ${userId}`);\n return true;\n },\n\n getUserEntitlements(user: User): UserEntitlements {\n const tier = config.getTierForUser?.(user) || user.tier;\n return config.tiers[tier];\n },\n\n async resetQuotas(userId: string): Promise<void> {\n await quotaStorage.reset(userId);\n logger(`[Entitlements] Reset quotas for user ${userId}`);\n },\n\n async getQuotaStats(userId: string): Promise<QuotaStats> {\n // For demo purposes, we assume pro tier\n const user = { id: userId, tier: 'pro' as const };\n const entitlements = this.getUserEntitlements(user);\n\n const tokensConsumedToday = await quotaStorage.getTokenUsage(userId, 'day');\n const tokensConsumedThisHour = await quotaStorage.getTokenUsage(userId, 'hour');\n const requestsThisMinute = await quotaStorage.getRequestCount(userId, 'minute');\n const requestsToday = await quotaStorage.getRequestCount(userId, 'day');\n\n return {\n tokensConsumedToday,\n tokensConsumedThisHour,\n requestsThisMinute,\n requestsToday,\n tokenUsagePercent: (tokensConsumedToday / entitlements.maxTokensPerDay) * 100,\n tokenUsagePercentHour: (tokensConsumedThisHour / entitlements.maxTokensPerHour) * 100,\n requestUsagePercent: (requestsThisMinute / entitlements.maxRequestsPerMinute) * 100,\n resetsAt: getNextResetTime('day'),\n };\n },\n };\n}\n\n/**\n * Check if a user has access to a specific model\n * Convenience function that creates a temporary checker\n *\n * @param user - User to check\n * @param modelId - Model ID to check access for\n * @returns Whether access is allowed\n *\n * @example\n * ```typescript\n * const user = { id: 'user-123', tier: 'free' };\n * const canUse = checkModelAccess(user, 'gpt-4-turbo');\n * ```\n */\nexport function checkModelAccess(user: User, modelId: string): boolean {\n const checker = createEntitlementChecker({\n tiers: DEFAULT_ENTITLEMENTS,\n });\n\n const result = checker.canAccessModel(user, modelId);\n return result.allowed;\n}\n\n/**\n * Check if a user has access to a specific feature\n * Convenience function that creates a temporary checker\n *\n * @param user - User to check\n * @param feature - Feature to check access for\n * @returns Whether access is allowed\n *\n * @example\n * ```typescript\n * const user = { id: 'user-123', tier: 'pro' };\n * const canUse = checkFeatureAccess(user, 'code-execution');\n * ```\n */\nexport function checkFeatureAccess(user: User, feature: string): boolean {\n const checker = createEntitlementChecker({\n tiers: DEFAULT_ENTITLEMENTS,\n });\n\n const result = checker.canAccessFeature(user, feature);\n return result.allowed;\n}\n\n/**\n * Create in-memory quota storage backend\n * Suitable for development and testing, not recommended for production\n *\n * @returns QuotaStorage instance\n */\nfunction createInMemoryQuotaStorage(): QuotaStorage {\n const tokenUsage = new Map<string, { day: number; hour: number; lastReset: Date }>();\n const requestCount = new Map<\n string,\n { minute: number; hour: number; day: number; lastReset: Date }\n >();\n\n return {\n async getTokenUsage(userId: string, period: 'day' | 'hour'): Promise<number> {\n const usage = tokenUsage.get(userId);\n if (!usage) return 0;\n\n // Check if we need to reset\n const now = new Date();\n const hoursSinceReset = (now.getTime() - usage.lastReset.getTime()) / (1000 * 60 * 60);\n\n if (period === 'day' && hoursSinceReset >= 24) {\n return 0;\n }\n if (period === 'hour' && hoursSinceReset >= 1) {\n return 0;\n }\n\n return period === 'day' ? usage.day : usage.hour;\n },\n\n async getRequestCount(userId: string, period: 'minute' | 'hour' | 'day'): Promise<number> {\n const count = requestCount.get(userId);\n if (!count) return 0;\n\n const now = new Date();\n const minutesSinceReset = (now.getTime() - count.lastReset.getTime()) / (1000 * 60);\n\n if (period === 'day' && minutesSinceReset >= 1440) {\n return 0;\n }\n if (period === 'hour' && minutesSinceReset >= 60) {\n return 0;\n }\n if (period === 'minute' && minutesSinceReset >= 1) {\n return 0;\n }\n\n return count[period];\n },\n\n async addTokenUsage(userId: string, tokens: number): Promise<void> {\n const current = tokenUsage.get(userId) || {\n day: 0,\n hour: 0,\n lastReset: new Date(),\n };\n\n current.day += tokens;\n current.hour += tokens;\n tokenUsage.set(userId, current);\n },\n\n async addRequest(userId: string): Promise<void> {\n const current = requestCount.get(userId) || {\n minute: 0,\n hour: 0,\n day: 0,\n lastReset: new Date(),\n };\n\n current.minute += 1;\n current.hour += 1;\n current.day += 1;\n requestCount.set(userId, current);\n },\n\n async reset(userId: string): Promise<void> {\n tokenUsage.delete(userId);\n requestCount.delete(userId);\n },\n\n async clearExpired(): Promise<void> {\n // In-memory storage doesn't need cleanup\n },\n };\n}\n\n/**\n * Get the next reset time for a quota period\n */\nfunction getNextResetTime(period: 'day' | 'hour' | 'minute'): Date {\n const now = new Date();\n\n if (period === 'minute') {\n return new Date(now.getTime() + 60 * 1000);\n }\n\n if (period === 'hour') {\n return new Date(now.getTime() + 60 * 60 * 1000);\n }\n\n // Day - reset at midnight\n const tomorrow = new Date(now);\n tomorrow.setDate(tomorrow.getDate() + 1);\n tomorrow.setHours(0, 0, 0, 0);\n return tomorrow;\n}\n\n// Re-export types\n","/**\n * Governance Module\n *\n * Enterprise compliance, audit, and policy management:\n * - Compliance (ABAC, approval workflows, validators)\n * - Audit logging\n * - Policy engine\n * - Multi-tenant isolation and quotas\n *\n * @module governance\n */\n\n// Compliance (ABAC, approval workflows)\nexport * from \"./compliance\";\n\n// Audit logging\nexport * from \"./audit\";\n\n// Policy engine\nexport * from \"./policies\";\n\n// Multi-tenant isolation and quotas\nexport * from \"./tenancy\";\n\n// Entitlements, quotas, and rate limiting\nexport * from \"./entitlements\";\n\n// Version control\nexport * from \"./versioning\";\n\n// Note: Approval workflows are exported through ./compliance/index\n// Use: getApprovalQueue, createApprovalQueue, setApprovalQueue\n"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//#region src/grounding/attribution/index.d.ts
|
|
2
|
+
interface AttributionSource {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly content: string;
|
|
5
|
+
readonly metadata?: {
|
|
6
|
+
title?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
author?: string;
|
|
9
|
+
date?: Date;
|
|
10
|
+
reliability?: number;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
interface Claim {
|
|
14
|
+
readonly id: string;
|
|
15
|
+
readonly text: string;
|
|
16
|
+
readonly startOffset: number;
|
|
17
|
+
readonly endOffset: number;
|
|
18
|
+
readonly type: 'factual' | 'opinion' | 'inference' | 'unknown';
|
|
19
|
+
}
|
|
20
|
+
interface AttributionEntry {
|
|
21
|
+
readonly sourceId: string;
|
|
22
|
+
readonly contributionScore: number;
|
|
23
|
+
readonly claimIds: string[];
|
|
24
|
+
readonly matchedSegments: Array<{
|
|
25
|
+
sourceSpan: {
|
|
26
|
+
start: number;
|
|
27
|
+
end: number;
|
|
28
|
+
};
|
|
29
|
+
claimSpan: {
|
|
30
|
+
start: number;
|
|
31
|
+
end: number;
|
|
32
|
+
};
|
|
33
|
+
similarity: number;
|
|
34
|
+
}>;
|
|
35
|
+
}
|
|
36
|
+
interface AttributionReport {
|
|
37
|
+
readonly totalSources: number;
|
|
38
|
+
readonly totalClaims: number;
|
|
39
|
+
readonly attributions: AttributionEntry[];
|
|
40
|
+
readonly unattributedClaims: string[];
|
|
41
|
+
readonly attributionCoverage: number;
|
|
42
|
+
readonly generatedAt: Date;
|
|
43
|
+
readonly metadata?: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
interface AttributionTrackerConfig {
|
|
46
|
+
readonly minSimilarityThreshold?: number;
|
|
47
|
+
readonly maxClaimsPerSource?: number;
|
|
48
|
+
readonly extractClaims?: boolean;
|
|
49
|
+
readonly computeContribution?: boolean;
|
|
50
|
+
}
|
|
51
|
+
interface AttributionTracker {
|
|
52
|
+
addSource(source: AttributionSource): void;
|
|
53
|
+
removeSource(sourceId: string): void;
|
|
54
|
+
getSources(): AttributionSource[];
|
|
55
|
+
extractClaims(text: string): Claim[];
|
|
56
|
+
generateReport(text: string, sourceIds?: string[]): Promise<AttributionReport>;
|
|
57
|
+
getConfig(): AttributionTrackerConfig;
|
|
58
|
+
}
|
|
59
|
+
declare function createAttributionTracker(config?: AttributionTrackerConfig): AttributionTracker;
|
|
60
|
+
declare function generateAttributionReport(text: string, sources: AttributionSource[]): AttributionReport;
|
|
61
|
+
//#endregion
|
|
62
|
+
export { AttributionEntry, AttributionReport, AttributionSource, AttributionTracker, AttributionTrackerConfig, Claim, createAttributionTracker, generateAttributionReport };
|
|
63
|
+
//# sourceMappingURL=grounding-attribution.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grounding-attribution.d.mts","names":[],"sources":["../src/grounding/attribution/index.ts"],"mappings":";UA8BiB,iBAAA;EAAA,SACN,EAAA;EAAA,SACA,OAAA;EAAA,SACA,QAAA;IACP,KAAA;IACA,GAAA;IACA,MAAA;IACA,IAAA,GAAO,IAAA;IACP,WAAA;EAAA;AAAA;AAAA,UAKa,KAAA;EAAA,SACN,EAAA;EAAA,SACA,IAAA;EAAA,SACA,WAAA;EAAA,SACA,SAAA;EAAA,SACA,IAAA;AAAA;AAAA,UAIM,gBAAA;EAAA,SACN,QAAA;EAAA,SACA,iBAAA;EAAA,SACA,QAAA;EAAA,SACA,eAAA,EAAiB,KAAA;IACxB,UAAA;MAAc,KAAA;MAAe,GAAA;IAAA;IAC7B,SAAA;MAAa,KAAA;MAAe,GAAA;IAAA;IAC5B,UAAA;EAAA;AAAA;AAAA,UAKa,iBAAA;EAAA,SACN,YAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA,EAAc,gBAAA;EAAA,SACd,kBAAA;EAAA,SACA,mBAAA;EAAA,SACA,WAAA,EAAa,IAAA;EAAA,SACb,QAAA,GAAW,MAAA;AAAA;AAAA,UAIL,wBAAA;EAAA,SACN,sBAAA;EAAA,SACA,kBAAA;EAAA,SACA,aAAA;EAAA,SACA,mBAAA;AAAA;AAAA,UAIM,kBAAA;EACf,SAAA,CAAU,MAAA,EAAQ,iBAAA;EAClB,YAAA,CAAa,QAAA;EACb,UAAA,IAAc,iBAAA;EACd,aAAA,CAAc,IAAA,WAAe,KAAA;EAC7B,cAAA,CAAe,IAAA,UAAc,SAAA,cAAuB,OAAA,CAAQ,iBAAA;EAC5D,SAAA,IAAa,wBAAA;AAAA;AAAA,iBA6BC,wBAAA,CACd,MAAA,GAAQ,wBAAA,GACP,kBAAA;AAAA,iBA0Ja,yBAAA,CACd,IAAA,UACA,OAAA,EAAS,iBAAA,KACR,iBAAA"}
|