@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.
Files changed (872) hide show
  1. package/README.md +235 -0
  2. package/dist/agents-base.d.mts +12 -0
  3. package/dist/agents-base.d.mts.map +1 -0
  4. package/dist/agents-base.mjs +20 -0
  5. package/dist/agents-base.mjs.map +1 -0
  6. package/dist/agents-control-flow.d.mts +115 -0
  7. package/dist/agents-control-flow.d.mts.map +1 -0
  8. package/dist/agents-control-flow.mjs +514 -0
  9. package/dist/agents-control-flow.mjs.map +1 -0
  10. package/dist/agents-coordinator.d.mts +11 -0
  11. package/dist/agents-coordinator.d.mts.map +1 -0
  12. package/dist/agents-coordinator.mjs +12 -0
  13. package/dist/agents-coordinator.mjs.map +1 -0
  14. package/dist/agents-experimental.d.mts +153 -0
  15. package/dist/agents-experimental.d.mts.map +1 -0
  16. package/dist/agents-experimental.mjs +580 -0
  17. package/dist/agents-experimental.mjs.map +1 -0
  18. package/dist/agents-fallback.d.mts +10 -0
  19. package/dist/agents-fallback.d.mts.map +1 -0
  20. package/dist/agents-fallback.mjs +15 -0
  21. package/dist/agents-fallback.mjs.map +1 -0
  22. package/dist/agents-multi-swarm.d.mts +9 -0
  23. package/dist/agents-multi-swarm.d.mts.map +1 -0
  24. package/dist/agents-multi-swarm.mjs +44 -0
  25. package/dist/agents-multi-swarm.mjs.map +1 -0
  26. package/dist/agents-multi.d.mts +10 -0
  27. package/dist/agents-multi.d.mts.map +1 -0
  28. package/dist/agents-multi.mjs +44 -0
  29. package/dist/agents-multi.mjs.map +1 -0
  30. package/dist/agents-observability.d.mts +161 -0
  31. package/dist/agents-observability.d.mts.map +1 -0
  32. package/dist/agents-observability.mjs +550 -0
  33. package/dist/agents-observability.mjs.map +1 -0
  34. package/dist/agents-patterns.d.mts +9 -0
  35. package/dist/agents-patterns.d.mts.map +1 -0
  36. package/dist/agents-patterns.mjs +18 -0
  37. package/dist/agents-patterns.mjs.map +1 -0
  38. package/dist/agents-persistence.d.mts +234 -0
  39. package/dist/agents-persistence.d.mts.map +1 -0
  40. package/dist/agents-persistence.mjs +447 -0
  41. package/dist/agents-persistence.mjs.map +1 -0
  42. package/dist/agents-triage.d.mts +11 -0
  43. package/dist/agents-triage.d.mts.map +1 -0
  44. package/dist/agents-triage.mjs +13 -0
  45. package/dist/agents-triage.mjs.map +1 -0
  46. package/dist/agents-workflows.d.mts +9 -0
  47. package/dist/agents-workflows.d.mts.map +1 -0
  48. package/dist/agents-workflows.mjs +9 -0
  49. package/dist/agents-workflows.mjs.map +1 -0
  50. package/dist/agents.d.mts +30 -0
  51. package/dist/agents.d.mts.map +1 -0
  52. package/dist/agents.mjs +50 -0
  53. package/dist/agents.mjs.map +1 -0
  54. package/dist/aggregation-8KJF1uzp.d.mts +276 -0
  55. package/dist/aggregation-8KJF1uzp.d.mts.map +1 -0
  56. package/dist/aggregation-BDop87kL.mjs +1180 -0
  57. package/dist/aggregation-BDop87kL.mjs.map +1 -0
  58. package/dist/ai-runtime-CDzQztTt.mjs +85 -0
  59. package/dist/ai-runtime-CDzQztTt.mjs.map +1 -0
  60. package/dist/ai-runtime-DIwOEc6g.d.mts +56 -0
  61. package/dist/ai-runtime-DIwOEc6g.d.mts.map +1 -0
  62. package/dist/ai-sdk-error-integration-D0GDqrM0.d.mts +553 -0
  63. package/dist/ai-sdk-error-integration-D0GDqrM0.d.mts.map +1 -0
  64. package/dist/approval-queue-BcDDQ4oQ.mjs +104 -0
  65. package/dist/approval-queue-BcDDQ4oQ.mjs.map +1 -0
  66. package/dist/approval-queue-CiKiFT9z.d.mts +21 -0
  67. package/dist/approval-queue-CiKiFT9z.d.mts.map +1 -0
  68. package/dist/audio-BzvN7r10.d.mts +79 -0
  69. package/dist/audio-BzvN7r10.d.mts.map +1 -0
  70. package/dist/audio-vBG_62ME.mjs +226 -0
  71. package/dist/audio-vBG_62ME.mjs.map +1 -0
  72. package/dist/audit-logger-Bb2JIcIk.d.mts +12 -0
  73. package/dist/audit-logger-Bb2JIcIk.d.mts.map +1 -0
  74. package/dist/audit-logger-CHIP8bRO.mjs +596 -0
  75. package/dist/audit-logger-CHIP8bRO.mjs.map +1 -0
  76. package/dist/auto-resume-BpUNbPtp.d.mts +160 -0
  77. package/dist/auto-resume-BpUNbPtp.d.mts.map +1 -0
  78. package/dist/auto-resume-BuFRNvAX.mjs +638 -0
  79. package/dist/auto-resume-BuFRNvAX.mjs.map +1 -0
  80. package/dist/budget-guard-C83KCH9V.d.mts +52 -0
  81. package/dist/budget-guard-C83KCH9V.d.mts.map +1 -0
  82. package/dist/budget-guard-d_b5rq4u.mjs +158 -0
  83. package/dist/budget-guard-d_b5rq4u.mjs.map +1 -0
  84. package/dist/budget-guard-gyhJS00s.mjs +234 -0
  85. package/dist/budget-guard-gyhJS00s.mjs.map +1 -0
  86. package/dist/buffer-BC8mvXHE.d.mts +98 -0
  87. package/dist/buffer-BC8mvXHE.d.mts.map +1 -0
  88. package/dist/buffer-CefJGbRy.mjs +289 -0
  89. package/dist/buffer-CefJGbRy.mjs.map +1 -0
  90. package/dist/caching-adapters.d.mts +5 -0
  91. package/dist/caching-adapters.mjs +3 -0
  92. package/dist/caching-strategies.d.mts +52 -0
  93. package/dist/caching-strategies.d.mts.map +1 -0
  94. package/dist/caching-strategies.mjs +703 -0
  95. package/dist/caching-strategies.mjs.map +1 -0
  96. package/dist/caching.d.mts +14 -0
  97. package/dist/caching.d.mts.map +1 -0
  98. package/dist/caching.mjs +15 -0
  99. package/dist/caching.mjs.map +1 -0
  100. package/dist/catalog.d.mts +19 -0
  101. package/dist/catalog.d.mts.map +1 -0
  102. package/dist/catalog.mjs +1114 -0
  103. package/dist/catalog.mjs.map +1 -0
  104. package/dist/chunk-CkzbjWQW.mjs +20 -0
  105. package/dist/circuit-breaker-DoKWPORd.mjs +262 -0
  106. package/dist/circuit-breaker-DoKWPORd.mjs.map +1 -0
  107. package/dist/circuit-breaker-Mey3E7tW.d.mts +64 -0
  108. package/dist/circuit-breaker-Mey3E7tW.d.mts.map +1 -0
  109. package/dist/citation-generator-C-9RpbHq.mjs +103 -0
  110. package/dist/citation-generator-C-9RpbHq.mjs.map +1 -0
  111. package/dist/citation-generator-CDSymDs_.d.mts +18 -0
  112. package/dist/citation-generator-CDSymDs_.d.mts.map +1 -0
  113. package/dist/client-CpacYDIE.mjs +882 -0
  114. package/dist/client-CpacYDIE.mjs.map +1 -0
  115. package/dist/client.d.mts +103 -0
  116. package/dist/client.d.mts.map +1 -0
  117. package/dist/client.mjs +470 -0
  118. package/dist/client.mjs.map +1 -0
  119. package/dist/compliance-approval-queue-DQGLojAm.mjs +172 -0
  120. package/dist/compliance-approval-queue-DQGLojAm.mjs.map +1 -0
  121. package/dist/compliance-approval-queue-IrMxFfSJ.d.mts +99 -0
  122. package/dist/compliance-approval-queue-IrMxFfSJ.d.mts.map +1 -0
  123. package/dist/compliance-wrapper-CrOMHhHN.mjs +528 -0
  124. package/dist/compliance-wrapper-CrOMHhHN.mjs.map +1 -0
  125. package/dist/conditions-DmQ6Y1Wt.mjs +179 -0
  126. package/dist/conditions-DmQ6Y1Wt.mjs.map +1 -0
  127. package/dist/conditions-zDrKfrc3.d.mts +42 -0
  128. package/dist/conditions-zDrKfrc3.d.mts.map +1 -0
  129. package/dist/console-BGMxxPZN.mjs +181 -0
  130. package/dist/console-BGMxxPZN.mjs.map +1 -0
  131. package/dist/console-DqEqZd4A.d.mts +76 -0
  132. package/dist/console-DqEqZd4A.d.mts.map +1 -0
  133. package/dist/controller-BOy3-xbC.mjs +501 -0
  134. package/dist/controller-BOy3-xbC.mjs.map +1 -0
  135. package/dist/controller-Y0NGosbJ.d.mts +104 -0
  136. package/dist/controller-Y0NGosbJ.d.mts.map +1 -0
  137. package/dist/coordinator-agent-BglqZLwo.d.mts +54 -0
  138. package/dist/coordinator-agent-BglqZLwo.d.mts.map +1 -0
  139. package/dist/coordinator-agent-WFWBRL-G.mjs +236 -0
  140. package/dist/coordinator-agent-WFWBRL-G.mjs.map +1 -0
  141. package/dist/crypto-8ABhc3TD.mjs +40 -0
  142. package/dist/crypto-8ABhc3TD.mjs.map +1 -0
  143. package/dist/environment-CSoJb0SW.mjs +255 -0
  144. package/dist/environment-CSoJb0SW.mjs.map +1 -0
  145. package/dist/error-handling-DNVkm6RY.mjs +1334 -0
  146. package/dist/error-handling-DNVkm6RY.mjs.map +1 -0
  147. package/dist/errors-CQ8tF4dP.mjs +985 -0
  148. package/dist/errors-CQ8tF4dP.mjs.map +1 -0
  149. package/dist/errors-CfYdVeum.d.mts +212 -0
  150. package/dist/errors-CfYdVeum.d.mts.map +1 -0
  151. package/dist/errors-Dtn-UeRi.mjs +61 -0
  152. package/dist/errors-Dtn-UeRi.mjs.map +1 -0
  153. package/dist/evaluator-Cs84qkr8.mjs +91 -0
  154. package/dist/evaluator-Cs84qkr8.mjs.map +1 -0
  155. package/dist/evaluator-optimizer-De67_mJC.mjs +1086 -0
  156. package/dist/evaluator-optimizer-De67_mJC.mjs.map +1 -0
  157. package/dist/evaluator-optimizer-pattern-B5939s2Z.mjs +367 -0
  158. package/dist/evaluator-optimizer-pattern-B5939s2Z.mjs.map +1 -0
  159. package/dist/evaluator-optimizer-pattern-D1AJrzBD.d.mts +72 -0
  160. package/dist/evaluator-optimizer-pattern-D1AJrzBD.d.mts.map +1 -0
  161. package/dist/factory-DP6VSl8C.mjs +307 -0
  162. package/dist/factory-DP6VSl8C.mjs.map +1 -0
  163. package/dist/generative-ui-catalog.d.mts +8 -0
  164. package/dist/generative-ui-catalog.d.mts.map +1 -0
  165. package/dist/generative-ui-catalog.mjs +679 -0
  166. package/dist/generative-ui-catalog.mjs.map +1 -0
  167. package/dist/generative-ui-registry.d.mts +195 -0
  168. package/dist/generative-ui-registry.d.mts.map +1 -0
  169. package/dist/generative-ui-registry.mjs +250 -0
  170. package/dist/generative-ui-registry.mjs.map +1 -0
  171. package/dist/generative-ui-stream.d.mts +23 -0
  172. package/dist/generative-ui-stream.d.mts.map +1 -0
  173. package/dist/generative-ui-stream.mjs +219 -0
  174. package/dist/generative-ui-stream.mjs.map +1 -0
  175. package/dist/generative-ui-types.d.mts +123 -0
  176. package/dist/generative-ui-types.d.mts.map +1 -0
  177. package/dist/generative-ui-types.mjs +1 -0
  178. package/dist/generative-ui.d.mts +13 -0
  179. package/dist/generative-ui.d.mts.map +1 -0
  180. package/dist/generative-ui.mjs +21 -0
  181. package/dist/generative-ui.mjs.map +1 -0
  182. package/dist/governance-audit.d.mts +3 -0
  183. package/dist/governance-audit.mjs +3 -0
  184. package/dist/governance-compliance.d.mts +5 -0
  185. package/dist/governance-compliance.mjs +4 -0
  186. package/dist/governance-policies.d.mts +4 -0
  187. package/dist/governance-policies.mjs +4 -0
  188. package/dist/governance-tenancy.d.mts +3 -0
  189. package/dist/governance-tenancy.mjs +3 -0
  190. package/dist/governance.d.mts +88 -0
  191. package/dist/governance.d.mts.map +1 -0
  192. package/dist/governance.mjs +432 -0
  193. package/dist/governance.mjs.map +1 -0
  194. package/dist/grounding-attribution.d.mts +63 -0
  195. package/dist/grounding-attribution.d.mts.map +1 -0
  196. package/dist/grounding-attribution.mjs +259 -0
  197. package/dist/grounding-attribution.mjs.map +1 -0
  198. package/dist/grounding-citation.d.mts +2 -0
  199. package/dist/grounding-citation.mjs +3 -0
  200. package/dist/grounding-context.d.mts +9 -0
  201. package/dist/grounding-context.d.mts.map +1 -0
  202. package/dist/grounding-context.mjs +19 -0
  203. package/dist/grounding-context.mjs.map +1 -0
  204. package/dist/grounding-embed.d.mts +102 -0
  205. package/dist/grounding-embed.d.mts.map +1 -0
  206. package/dist/grounding-embed.mjs +417 -0
  207. package/dist/grounding-embed.mjs.map +1 -0
  208. package/dist/grounding-hallucination.d.mts +44 -0
  209. package/dist/grounding-hallucination.d.mts.map +1 -0
  210. package/dist/grounding-hallucination.mjs +115 -0
  211. package/dist/grounding-hallucination.mjs.map +1 -0
  212. package/dist/grounding-proof-map.d.mts +9 -0
  213. package/dist/grounding-proof-map.d.mts.map +1 -0
  214. package/dist/grounding-proof-map.mjs +26 -0
  215. package/dist/grounding-proof-map.mjs.map +1 -0
  216. package/dist/grounding-rag.d.mts +10 -0
  217. package/dist/grounding-rag.d.mts.map +1 -0
  218. package/dist/grounding-rag.mjs +27 -0
  219. package/dist/grounding-rag.mjs.map +1 -0
  220. package/dist/grounding-verification.d.mts +48 -0
  221. package/dist/grounding-verification.d.mts.map +1 -0
  222. package/dist/grounding-verification.mjs +224 -0
  223. package/dist/grounding-verification.mjs.map +1 -0
  224. package/dist/grounding.d.mts +24 -0
  225. package/dist/grounding.d.mts.map +1 -0
  226. package/dist/grounding.mjs +77 -0
  227. package/dist/grounding.mjs.map +1 -0
  228. package/dist/hitl-active-learning.d.mts +41 -0
  229. package/dist/hitl-active-learning.d.mts.map +1 -0
  230. package/dist/hitl-active-learning.mjs +178 -0
  231. package/dist/hitl-active-learning.mjs.map +1 -0
  232. package/dist/hitl-annotation.d.mts +74 -0
  233. package/dist/hitl-annotation.d.mts.map +1 -0
  234. package/dist/hitl-annotation.mjs +170 -0
  235. package/dist/hitl-annotation.mjs.map +1 -0
  236. package/dist/hitl-approval.d.mts +2 -0
  237. package/dist/hitl-approval.mjs +3 -0
  238. package/dist/hitl-feedback.d.mts +59 -0
  239. package/dist/hitl-feedback.d.mts.map +1 -0
  240. package/dist/hitl-feedback.mjs +137 -0
  241. package/dist/hitl-feedback.mjs.map +1 -0
  242. package/dist/hitl-review.d.mts +2 -0
  243. package/dist/hitl-review.mjs +3 -0
  244. package/dist/hitl.d.mts +14 -0
  245. package/dist/hitl.d.mts.map +1 -0
  246. package/dist/hitl.mjs +22 -0
  247. package/dist/hitl.mjs.map +1 -0
  248. package/dist/index-B17HT-VL.d.mts +285 -0
  249. package/dist/index-B17HT-VL.d.mts.map +1 -0
  250. package/dist/index-BDwgsK9B.d.mts +101 -0
  251. package/dist/index-BDwgsK9B.d.mts.map +1 -0
  252. package/dist/index-BGgMn_Ev.d.mts +2615 -0
  253. package/dist/index-BGgMn_Ev.d.mts.map +1 -0
  254. package/dist/index-DOqe5r9G.d.mts +318 -0
  255. package/dist/index-DOqe5r9G.d.mts.map +1 -0
  256. package/dist/index-DotINT7o.d.mts +1004 -0
  257. package/dist/index-DotINT7o.d.mts.map +1 -0
  258. package/dist/index-URlW7aD1.d.mts +67 -0
  259. package/dist/index-URlW7aD1.d.mts.map +1 -0
  260. package/dist/index.d.mts +64 -0
  261. package/dist/index.d.mts.map +1 -0
  262. package/dist/index.mjs +46 -0
  263. package/dist/index.mjs.map +1 -0
  264. package/dist/integrations-blob-storage.d.mts +25 -0
  265. package/dist/integrations-blob-storage.d.mts.map +1 -0
  266. package/dist/integrations-blob-storage.mjs +3 -0
  267. package/dist/integrations-notifications.d.mts +2 -0
  268. package/dist/integrations-notifications.mjs +3 -0
  269. package/dist/integrations-rate-limit.d.mts +27 -0
  270. package/dist/integrations-rate-limit.d.mts.map +1 -0
  271. package/dist/integrations-rate-limit.mjs +30 -0
  272. package/dist/integrations-rate-limit.mjs.map +1 -0
  273. package/dist/integrations-redis.d.mts +3 -0
  274. package/dist/integrations-redis.mjs +3 -0
  275. package/dist/integrations-stream.d.mts +14 -0
  276. package/dist/integrations-stream.d.mts.map +1 -0
  277. package/dist/integrations-stream.mjs +3 -0
  278. package/dist/integrations.d.mts +7 -0
  279. package/dist/integrations.mjs +7 -0
  280. package/dist/log-adapter-BLegSZtz.d.mts +16 -0
  281. package/dist/log-adapter-BLegSZtz.d.mts.map +1 -0
  282. package/dist/log-adapter-PPe_2Pwv.mjs +28 -0
  283. package/dist/log-adapter-PPe_2Pwv.mjs.map +1 -0
  284. package/dist/loop-BOYEtr2g.mjs +520 -0
  285. package/dist/loop-BOYEtr2g.mjs.map +1 -0
  286. package/dist/loop-C-tBBOqi.d.mts +219 -0
  287. package/dist/loop-C-tBBOqi.d.mts.map +1 -0
  288. package/dist/middleware-5wQ9bANW.mjs +306 -0
  289. package/dist/middleware-5wQ9bANW.mjs.map +1 -0
  290. package/dist/middleware-C1apSrj0.mjs +613 -0
  291. package/dist/middleware-C1apSrj0.mjs.map +1 -0
  292. package/dist/middleware-C7k0uItW.d.mts +9 -0
  293. package/dist/middleware-C7k0uItW.d.mts.map +1 -0
  294. package/dist/middleware-CZQCTHfl.mjs +366 -0
  295. package/dist/middleware-CZQCTHfl.mjs.map +1 -0
  296. package/dist/models.d.mts +11 -0
  297. package/dist/models.d.mts.map +1 -0
  298. package/dist/models.mjs +32 -0
  299. package/dist/models.mjs.map +1 -0
  300. package/dist/observability-analytics.d.mts +107 -0
  301. package/dist/observability-analytics.d.mts.map +1 -0
  302. package/dist/observability-analytics.mjs +409 -0
  303. package/dist/observability-analytics.mjs.map +1 -0
  304. package/dist/observability-cost.d.mts +10 -0
  305. package/dist/observability-cost.d.mts.map +1 -0
  306. package/dist/observability-cost.mjs +15 -0
  307. package/dist/observability-cost.mjs.map +1 -0
  308. package/dist/observability-telemetry.d.mts +111 -0
  309. package/dist/observability-telemetry.d.mts.map +1 -0
  310. package/dist/observability-telemetry.mjs +343 -0
  311. package/dist/observability-telemetry.mjs.map +1 -0
  312. package/dist/observability-tracing.d.mts +10 -0
  313. package/dist/observability-tracing.d.mts.map +1 -0
  314. package/dist/observability-tracing.mjs +17 -0
  315. package/dist/observability-tracing.mjs.map +1 -0
  316. package/dist/observability.d.mts +15 -0
  317. package/dist/observability.d.mts.map +1 -0
  318. package/dist/observability.mjs +17 -0
  319. package/dist/observability.mjs.map +1 -0
  320. package/dist/optimizer-DhXXpci6.mjs +97 -0
  321. package/dist/optimizer-DhXXpci6.mjs.map +1 -0
  322. package/dist/output-multimodal.d.mts +9 -0
  323. package/dist/output-multimodal.d.mts.map +1 -0
  324. package/dist/output-multimodal.mjs +18 -0
  325. package/dist/output-multimodal.mjs.map +1 -0
  326. package/dist/output.d.mts +11 -0
  327. package/dist/output.d.mts.map +1 -0
  328. package/dist/output.mjs +40 -0
  329. package/dist/output.mjs.map +1 -0
  330. package/dist/pii-filter-3AxmYSiu.d.mts +23 -0
  331. package/dist/pii-filter-3AxmYSiu.d.mts.map +1 -0
  332. package/dist/pipelines.d.mts +448 -0
  333. package/dist/pipelines.d.mts.map +1 -0
  334. package/dist/pipelines.mjs +1534 -0
  335. package/dist/pipelines.mjs.map +1 -0
  336. package/dist/prompt-injection-DQXchzsV.d.mts +8 -0
  337. package/dist/prompt-injection-DQXchzsV.d.mts.map +1 -0
  338. package/dist/prompt-injection-RpoLPwSa.mjs +52 -0
  339. package/dist/prompt-injection-RpoLPwSa.mjs.map +1 -0
  340. package/dist/prompts.d.mts +192 -0
  341. package/dist/prompts.d.mts.map +1 -0
  342. package/dist/prompts.mjs +732 -0
  343. package/dist/prompts.mjs.map +1 -0
  344. package/dist/protocol-DfBiEsnl.d.mts +112 -0
  345. package/dist/protocol-DfBiEsnl.d.mts.map +1 -0
  346. package/dist/quota-manager-0iPMkQWN.d.mts +62 -0
  347. package/dist/quota-manager-0iPMkQWN.d.mts.map +1 -0
  348. package/dist/quota-manager-D_N7FuQ2.mjs +180 -0
  349. package/dist/quota-manager-D_N7FuQ2.mjs.map +1 -0
  350. package/dist/redaction-utils-DcQwsiNh.mjs +438 -0
  351. package/dist/redaction-utils-DcQwsiNh.mjs.map +1 -0
  352. package/dist/redis-CpsSrF8K.mjs +102 -0
  353. package/dist/redis-CpsSrF8K.mjs.map +1 -0
  354. package/dist/redis-CwguYFGh.d.mts +33 -0
  355. package/dist/redis-CwguYFGh.d.mts.map +1 -0
  356. package/dist/registry-CsD3iTIx.mjs +190 -0
  357. package/dist/registry-CsD3iTIx.mjs.map +1 -0
  358. package/dist/registry-DVPWzkXR.d.mts +36 -0
  359. package/dist/registry-DVPWzkXR.d.mts.map +1 -0
  360. package/dist/reranking-BpWYhYzl.d.mts +72 -0
  361. package/dist/reranking-BpWYhYzl.d.mts.map +1 -0
  362. package/dist/reranking-Ck8aKZW7.mjs +331 -0
  363. package/dist/reranking-Ck8aKZW7.mjs.map +1 -0
  364. package/dist/resumable-adapter-CO1HtsgJ.mjs +21 -0
  365. package/dist/resumable-adapter-CO1HtsgJ.mjs.map +1 -0
  366. package/dist/review-trigger-DmAsiQlM.d.mts +24 -0
  367. package/dist/review-trigger-DmAsiQlM.d.mts.map +1 -0
  368. package/dist/review-trigger-DwXfpww9.mjs +112 -0
  369. package/dist/review-trigger-DwXfpww9.mjs.map +1 -0
  370. package/dist/safe-context-BynhkTKR.d.mts +54 -0
  371. package/dist/safe-context-BynhkTKR.d.mts.map +1 -0
  372. package/dist/safe-context-C5A3Wv3b.mjs +143 -0
  373. package/dist/safe-context-C5A3Wv3b.mjs.map +1 -0
  374. package/dist/schema-Bu2noOZ4.mjs +27 -0
  375. package/dist/schema-Bu2noOZ4.mjs.map +1 -0
  376. package/dist/schema-CwFvuCnA.mjs +97 -0
  377. package/dist/schema-CwFvuCnA.mjs.map +1 -0
  378. package/dist/schema-Wz-1-ro9.d.mts +37 -0
  379. package/dist/schema-Wz-1-ro9.d.mts.map +1 -0
  380. package/dist/schemas-CxQtxIga.mjs +62 -0
  381. package/dist/schemas-CxQtxIga.mjs.map +1 -0
  382. package/dist/schemas-DBOhxgW7.d.mts +32 -0
  383. package/dist/schemas-DBOhxgW7.d.mts.map +1 -0
  384. package/dist/schemas-Dp_OCqBt.d.mts +63 -0
  385. package/dist/schemas-Dp_OCqBt.d.mts.map +1 -0
  386. package/dist/schemas-SwCsnT0z.mjs +83 -0
  387. package/dist/schemas-SwCsnT0z.mjs.map +1 -0
  388. package/dist/sdk-errors.d.mts +2 -0
  389. package/dist/sdk-errors.mjs +3 -0
  390. package/dist/sdk-experimental.d.mts +59 -0
  391. package/dist/sdk-experimental.d.mts.map +1 -0
  392. package/dist/sdk-experimental.mjs +193 -0
  393. package/dist/sdk-experimental.mjs.map +1 -0
  394. package/dist/sdk-stop-conditions.d.mts +3 -0
  395. package/dist/sdk-stop-conditions.mjs +3 -0
  396. package/dist/sdk.d.mts +15 -0
  397. package/dist/sdk.d.mts.map +1 -0
  398. package/dist/sdk.mjs +50 -0
  399. package/dist/sdk.mjs.map +1 -0
  400. package/dist/security-guardrails.d.mts +3 -0
  401. package/dist/security-guardrails.mjs +3 -0
  402. package/dist/security-injection.d.mts +2 -0
  403. package/dist/security-injection.mjs +3 -0
  404. package/dist/security.d.mts +12 -0
  405. package/dist/security.d.mts.map +1 -0
  406. package/dist/security.mjs +18 -0
  407. package/dist/security.mjs.map +1 -0
  408. package/dist/server.d.mts +420 -0
  409. package/dist/server.d.mts.map +1 -0
  410. package/dist/server.mjs +2225 -0
  411. package/dist/server.mjs.map +1 -0
  412. package/dist/shared.d.mts +2 -0
  413. package/dist/shared.mjs +3 -0
  414. package/dist/streaming-control.d.mts +2 -0
  415. package/dist/streaming-control.mjs +4 -0
  416. package/dist/streaming-core.d.mts +4 -0
  417. package/dist/streaming-core.mjs +3 -0
  418. package/dist/streaming-infra-resilience.d.mts +120 -0
  419. package/dist/streaming-infra-resilience.d.mts.map +1 -0
  420. package/dist/streaming-infra-resilience.mjs +358 -0
  421. package/dist/streaming-infra-resilience.mjs.map +1 -0
  422. package/dist/streaming-infra-transport.d.mts +57 -0
  423. package/dist/streaming-infra-transport.d.mts.map +1 -0
  424. package/dist/streaming-infra-transport.mjs +488 -0
  425. package/dist/streaming-infra-transport.mjs.map +1 -0
  426. package/dist/streaming-infra.d.mts +5 -0
  427. package/dist/streaming-infra.mjs +5 -0
  428. package/dist/streaming.d.mts +17 -0
  429. package/dist/streaming.d.mts.map +1 -0
  430. package/dist/streaming.mjs +71 -0
  431. package/dist/streaming.mjs.map +1 -0
  432. package/dist/telemetry-2eKMojIb.mjs +1046 -0
  433. package/dist/telemetry-2eKMojIb.mjs.map +1 -0
  434. package/dist/telemetry-C2t03dwD.d.mts +59 -0
  435. package/dist/telemetry-C2t03dwD.d.mts.map +1 -0
  436. package/dist/tool-Btbththq.d.mts +253 -0
  437. package/dist/tool-Btbththq.d.mts.map +1 -0
  438. package/dist/tool-JSf8JXZ8.mjs +1150 -0
  439. package/dist/tool-JSf8JXZ8.mjs.map +1 -0
  440. package/dist/tool-safety-CZO8a4D4.d.mts +60 -0
  441. package/dist/tool-safety-CZO8a4D4.d.mts.map +1 -0
  442. package/dist/tool-safety-DXtYDXod.mjs +319 -0
  443. package/dist/tool-safety-DXtYDXod.mjs.map +1 -0
  444. package/dist/tools-BuS2Uv0q.mjs +1708 -0
  445. package/dist/tools-BuS2Uv0q.mjs.map +1 -0
  446. package/dist/tools-approval.d.mts +99 -0
  447. package/dist/tools-approval.d.mts.map +1 -0
  448. package/dist/tools-approval.mjs +395 -0
  449. package/dist/tools-approval.mjs.map +1 -0
  450. package/dist/tools-compliance.d.mts +67 -0
  451. package/dist/tools-compliance.d.mts.map +1 -0
  452. package/dist/tools-compliance.mjs +330 -0
  453. package/dist/tools-compliance.mjs.map +1 -0
  454. package/dist/tools-computer.d.mts +25 -0
  455. package/dist/tools-computer.d.mts.map +1 -0
  456. package/dist/tools-computer.mjs +64 -0
  457. package/dist/tools-computer.mjs.map +1 -0
  458. package/dist/tools-core.d.mts +3 -0
  459. package/dist/tools-core.mjs +3 -0
  460. package/dist/tools-mcp.d.mts +3 -0
  461. package/dist/tools-mcp.mjs +5 -0
  462. package/dist/tools-superpowers.d.mts +2 -0
  463. package/dist/tools-superpowers.mjs +3 -0
  464. package/dist/tools.d.mts +401 -0
  465. package/dist/tools.d.mts.map +1 -0
  466. package/dist/tools.mjs +1921 -0
  467. package/dist/tools.mjs.map +1 -0
  468. package/dist/transport-selector-D-Ib05X1.mjs +1936 -0
  469. package/dist/transport-selector-D-Ib05X1.mjs.map +1 -0
  470. package/dist/triage-agent-BEsXg5sw.d.mts +63 -0
  471. package/dist/triage-agent-BEsXg5sw.d.mts.map +1 -0
  472. package/dist/triage-agent-CBsfX-HW.mjs +167 -0
  473. package/dist/triage-agent-CBsfX-HW.mjs.map +1 -0
  474. package/dist/types-BPnq3GQo.d.mts +23 -0
  475. package/dist/types-BPnq3GQo.d.mts.map +1 -0
  476. package/dist/types-BjWgimpY.d.mts +16 -0
  477. package/dist/types-BjWgimpY.d.mts.map +1 -0
  478. package/dist/types-BxD-5btB.d.mts +41 -0
  479. package/dist/types-BxD-5btB.d.mts.map +1 -0
  480. package/dist/types-By-r93bE.d.mts +36 -0
  481. package/dist/types-By-r93bE.d.mts.map +1 -0
  482. package/dist/types-CLBWFRZN.d.mts +69 -0
  483. package/dist/types-CLBWFRZN.d.mts.map +1 -0
  484. package/dist/types-CQ0HFd0u.d.mts +62 -0
  485. package/dist/types-CQ0HFd0u.d.mts.map +1 -0
  486. package/dist/types-D3zJb59_.d.mts +47 -0
  487. package/dist/types-D3zJb59_.d.mts.map +1 -0
  488. package/dist/types-DJnugQX0.d.mts +80 -0
  489. package/dist/types-DJnugQX0.d.mts.map +1 -0
  490. package/dist/types-DbUfMCnT.d.mts +70 -0
  491. package/dist/types-DbUfMCnT.d.mts.map +1 -0
  492. package/dist/upstash-adapter-D96Caq2O.mjs +22 -0
  493. package/dist/upstash-adapter-D96Caq2O.mjs.map +1 -0
  494. package/dist/upstash-adapter-DD4433dx.d.mts +8 -0
  495. package/dist/upstash-adapter-DD4433dx.d.mts.map +1 -0
  496. package/dist/utils-BlYhcD6M.mjs +319 -0
  497. package/dist/utils-BlYhcD6M.mjs.map +1 -0
  498. package/dist/utils-DpJGOb3y.d.mts +120 -0
  499. package/dist/utils-DpJGOb3y.d.mts.map +1 -0
  500. package/dist/vercel-blob-adapter-CkOXLT2D.mjs +25 -0
  501. package/dist/vercel-blob-adapter-CkOXLT2D.mjs.map +1 -0
  502. package/dist/xai-CbV_dCnP.mjs +1600 -0
  503. package/dist/xai-CbV_dCnP.mjs.map +1 -0
  504. package/package.json +479 -0
  505. package/src/agents/base/factory.ts +382 -0
  506. package/src/agents/base/index.ts +8 -0
  507. package/src/agents/base/schemas.ts +117 -0
  508. package/src/agents/base/types.ts +192 -0
  509. package/src/agents/control-flow/index.ts +683 -0
  510. package/src/agents/coordinator/coordinator-agent.ts +381 -0
  511. package/src/agents/coordinator/index.ts +6 -0
  512. package/src/agents/default-agent.ts +211 -0
  513. package/src/agents/evaluator-optimizer/README.md +612 -0
  514. package/src/agents/evaluator-optimizer/evaluator-optimizer.example.ts +437 -0
  515. package/src/agents/evaluator-optimizer/evaluator.ts +282 -0
  516. package/src/agents/evaluator-optimizer/index.test.ts +416 -0
  517. package/src/agents/evaluator-optimizer/index.ts +519 -0
  518. package/src/agents/evaluator-optimizer/optimizer.ts +322 -0
  519. package/src/agents/evaluator-optimizer/schema.ts +302 -0
  520. package/src/agents/evaluator-optimizer/utils.ts +42 -0
  521. package/src/agents/experimental/index.ts +1095 -0
  522. package/src/agents/experimental/types.ts +212 -0
  523. package/src/agents/fallback/index.ts +18 -0
  524. package/src/agents/fallback/recovery/circuit-breaker.ts +166 -0
  525. package/src/agents/fallback/strategies/model-fallback.ts +192 -0
  526. package/src/agents/fallback/types.ts +87 -0
  527. package/src/agents/governance-agent.ts +446 -0
  528. package/src/agents/index.ts +79 -0
  529. package/src/agents/multi/coordination/index.ts +6 -0
  530. package/src/agents/multi/coordination/message-bus.ts +144 -0
  531. package/src/agents/multi/index.ts +6 -0
  532. package/src/agents/multi/state/index.ts +162 -0
  533. package/src/agents/multi/supervisor/index.ts +7 -0
  534. package/src/agents/multi/supervisor/supervisor.ts +254 -0
  535. package/src/agents/multi/swarm/aggregation.ts +466 -0
  536. package/src/agents/multi/swarm/communication.ts +388 -0
  537. package/src/agents/multi/swarm/coordination.ts +380 -0
  538. package/src/agents/multi/swarm/index.ts +73 -0
  539. package/src/agents/multi/swarm/swarm-executor.ts +479 -0
  540. package/src/agents/multi/types.ts +181 -0
  541. package/src/agents/observability/index.ts +914 -0
  542. package/src/agents/orchestrator.ts +218 -0
  543. package/src/agents/patterns/README.md +512 -0
  544. package/src/agents/patterns/evaluator-optimizer-pattern.example.ts +455 -0
  545. package/src/agents/patterns/evaluator-optimizer-pattern.ts +653 -0
  546. package/src/agents/patterns/index.ts +26 -0
  547. package/src/agents/persistence/index.ts +726 -0
  548. package/src/agents/tools/index.ts +291 -0
  549. package/src/agents/tools/mcp.ts +188 -0
  550. package/src/agents/triage/index.ts +6 -0
  551. package/src/agents/triage/triage-agent.ts +280 -0
  552. package/src/agents/workflows/index.ts +6 -0
  553. package/src/agents/workflows/interfaces.ts +36 -0
  554. package/src/agents/workflows/schema.ts +20 -0
  555. package/src/caching/adapters/index.ts +7 -0
  556. package/src/caching/adapters/memory.ts +77 -0
  557. package/src/caching/adapters/redis.ts +60 -0
  558. package/src/caching/index.ts +17 -0
  559. package/src/caching/middleware.ts +452 -0
  560. package/src/caching/strategies/index.ts +1008 -0
  561. package/src/caching/types.ts +47 -0
  562. package/src/catalog.ts +921 -0
  563. package/src/client/chat-usage.ts +53 -0
  564. package/src/client/hooks.ts +343 -0
  565. package/src/client/index.ts +36 -0
  566. package/src/client/message-utils.ts +29 -0
  567. package/src/client/use-generative-ui.ts +174 -0
  568. package/src/client/utils.ts +66 -0
  569. package/src/generative-ui/catalog.ts +653 -0
  570. package/src/generative-ui/index.ts +82 -0
  571. package/src/generative-ui/registry.ts +273 -0
  572. package/src/generative-ui/stream.ts +324 -0
  573. package/src/generative-ui/types.ts +376 -0
  574. package/src/governance/audit/audit-logger.ts +239 -0
  575. package/src/governance/audit/audit-schema.ts +82 -0
  576. package/src/governance/audit/index.ts +6 -0
  577. package/src/governance/compliance/abac/policy-engine.ts +175 -0
  578. package/src/governance/compliance/abac/types.ts +40 -0
  579. package/src/governance/compliance/approval/compliance-approval-queue.ts +217 -0
  580. package/src/governance/compliance/index.ts +16 -0
  581. package/src/governance/compliance/schemas.ts +68 -0
  582. package/src/governance/compliance/types.ts +143 -0
  583. package/src/governance/compliance/validators/phi-detector.ts +145 -0
  584. package/src/governance/compliance/validators/redaction-utils.ts +176 -0
  585. package/src/governance/compliance/validators/safe-harbor.ts +135 -0
  586. package/src/governance/entitlements/index.ts +585 -0
  587. package/src/governance/entitlements/middleware.ts +651 -0
  588. package/src/governance/entitlements/rate-limiter.ts +711 -0
  589. package/src/governance/index.ts +32 -0
  590. package/src/governance/policies/guardrails.ts +1121 -0
  591. package/src/governance/policies/index.ts +42 -0
  592. package/src/governance/policies/loop-controls.ts +136 -0
  593. package/src/governance/policies/telemetry.ts +63 -0
  594. package/src/governance/tenancy/index.ts +30 -0
  595. package/src/governance/tenancy/isolation/context.ts +92 -0
  596. package/src/governance/tenancy/isolation/index.ts +13 -0
  597. package/src/governance/tenancy/quotas/index.ts +11 -0
  598. package/src/governance/tenancy/quotas/quota-manager.ts +180 -0
  599. package/src/governance/tenancy/types.ts +66 -0
  600. package/src/governance/types.ts +16 -0
  601. package/src/governance/versioning/index.ts +573 -0
  602. package/src/grounding/attribution/index.ts +424 -0
  603. package/src/grounding/citation/citation-generator.ts +174 -0
  604. package/src/grounding/citation/index.ts +12 -0
  605. package/src/grounding/context/index.ts +32 -0
  606. package/src/grounding/context/safe-context.ts +116 -0
  607. package/src/grounding/context/types.ts +62 -0
  608. package/src/grounding/context-engineering/error-handling.ts +359 -0
  609. package/src/grounding/context-engineering/index.ts +23 -0
  610. package/src/grounding/context-engineering/memory.ts +559 -0
  611. package/src/grounding/context-engineering/tool-masking.ts +338 -0
  612. package/src/grounding/embed/index.ts +704 -0
  613. package/src/grounding/embed/reranking.ts +604 -0
  614. package/src/grounding/hallucination/index.ts +223 -0
  615. package/src/grounding/index.ts +82 -0
  616. package/src/grounding/proof-map/applyPatch.ts +172 -0
  617. package/src/grounding/proof-map/index.ts +41 -0
  618. package/src/grounding/proof-map/loop.ts +275 -0
  619. package/src/grounding/proof-map/schema.ts +217 -0
  620. package/src/grounding/rag/__tests__/pipeline.test.ts +274 -0
  621. package/src/grounding/rag/__tests__/tool.test.ts +202 -0
  622. package/src/grounding/rag/__tests__/trace.test.ts +229 -0
  623. package/src/grounding/rag/circuit-breaker.ts +152 -0
  624. package/src/grounding/rag/index.ts +64 -0
  625. package/src/grounding/rag/pipeline.ts +602 -0
  626. package/src/grounding/rag/tool.ts +281 -0
  627. package/src/grounding/rag/trace.ts +503 -0
  628. package/src/grounding/rag/types.ts +284 -0
  629. package/src/grounding/retrieval/in-memory-store.ts +107 -0
  630. package/src/grounding/sources/index.ts +943 -0
  631. package/src/grounding/tests/applyPatch.test.ts +194 -0
  632. package/src/grounding/tests/loop.test.ts +141 -0
  633. package/src/grounding/tests/schema.test.ts +160 -0
  634. package/src/grounding/types.ts +100 -0
  635. package/src/grounding/verification/index.ts +419 -0
  636. package/src/hitl/active-learning/index.ts +332 -0
  637. package/src/hitl/annotation/index.ts +362 -0
  638. package/src/hitl/approval/approval-queue.ts +132 -0
  639. package/src/hitl/approval/index.ts +5 -0
  640. package/src/hitl/feedback/index.ts +284 -0
  641. package/src/hitl/index.ts +69 -0
  642. package/src/hitl/review/index.ts +6 -0
  643. package/src/hitl/review/review-trigger.ts +162 -0
  644. package/src/hitl/types.ts +126 -0
  645. package/src/index.ts +125 -0
  646. package/src/integrations/blob-storage/index.ts +7 -0
  647. package/src/integrations/blob-storage/types.ts +28 -0
  648. package/src/integrations/blob-storage/vercel-blob-adapter.ts +35 -0
  649. package/src/integrations/index.ts +15 -0
  650. package/src/integrations/notifications/index.ts +7 -0
  651. package/src/integrations/notifications/log-adapter.ts +30 -0
  652. package/src/integrations/notifications/types.ts +27 -0
  653. package/src/integrations/rate-limit/index.ts +7 -0
  654. package/src/integrations/rate-limit/types.ts +26 -0
  655. package/src/integrations/rate-limit/upstash-adapter.ts +45 -0
  656. package/src/integrations/redis/index.ts +7 -0
  657. package/src/integrations/redis/types.ts +67 -0
  658. package/src/integrations/redis/upstash-adapter.ts +18 -0
  659. package/src/integrations/stream/index.ts +7 -0
  660. package/src/integrations/stream/resumable-adapter.ts +20 -0
  661. package/src/integrations/stream/types.ts +21 -0
  662. package/src/internal/__tests__/hallucination.test.ts +162 -0
  663. package/src/internal/__tests__/models.test.ts +104 -0
  664. package/src/internal/__tests__/sdk-errors.test.ts +201 -0
  665. package/src/internal/__tests__/stop-conditions.test.ts +210 -0
  666. package/src/internal/shared/ai-types.ts +942 -0
  667. package/src/internal/testing/evaluators.ts +575 -0
  668. package/src/internal/testing/index.ts +960 -0
  669. package/src/internal/ui/data-parts.ts +511 -0
  670. package/src/internal/ui/type-guards.ts +344 -0
  671. package/src/internal/ui-factories/__tests__/ui-factories.test.ts +548 -0
  672. package/src/internal/ui-factories/artifact-factory.ts +667 -0
  673. package/src/internal/ui-factories/index.ts +82 -0
  674. package/src/internal/ui-factories/shimmer-manager.ts +220 -0
  675. package/src/internal/ui-factories/status-helpers.ts +149 -0
  676. package/src/internal/ui-factories/tool-renderer.ts +167 -0
  677. package/src/internal/ui-factories/types.ts +235 -0
  678. package/src/models/capabilities.ts +88 -0
  679. package/src/models/index.ts +16 -0
  680. package/src/models/provider-factory.ts +229 -0
  681. package/src/models/providers/anthropic.ts +539 -0
  682. package/src/models/providers/google.ts +354 -0
  683. package/src/models/providers/index.ts +21 -0
  684. package/src/models/providers/openai.ts +346 -0
  685. package/src/models/providers/perplexity.ts +276 -0
  686. package/src/models/providers/shared.ts +90 -0
  687. package/src/models/providers/xai.ts +269 -0
  688. package/src/models/registry.ts +208 -0
  689. package/src/models/routing/index.ts +45 -0
  690. package/src/models/routing/intent-router.ts +143 -0
  691. package/src/models/routing/model-router.ts +300 -0
  692. package/src/models/routing/types.ts +106 -0
  693. package/src/models/types.ts +23 -0
  694. package/src/observability/analytics/index.ts +593 -0
  695. package/src/observability/cost/index.ts +16 -0
  696. package/src/observability/cost/tracking/budget-guard.ts +110 -0
  697. package/src/observability/cost/tracking/usage-tracker.ts +120 -0
  698. package/src/observability/cost/types.ts +85 -0
  699. package/src/observability/index.ts +17 -0
  700. package/src/observability/telemetry/index.ts +508 -0
  701. package/src/observability/tracing/index.ts +30 -0
  702. package/src/observability/tracing/otel/ai-instrumentation.ts +193 -0
  703. package/src/observability/tracing/otel/exporters/console.ts +58 -0
  704. package/src/observability/tracing/otel/exporters/index.ts +6 -0
  705. package/src/observability/tracing/provenance.ts +769 -0
  706. package/src/observability/tracing/types.ts +92 -0
  707. package/src/output/__tests__/output.test.ts +737 -0
  708. package/src/output/element-stream.ts +678 -0
  709. package/src/output/errors.ts +108 -0
  710. package/src/output/factories.ts +392 -0
  711. package/src/output/index.ts +98 -0
  712. package/src/output/multimodal/EXPORTS.md +306 -0
  713. package/src/output/multimodal/IMPLEMENTATION_SUMMARY.md +421 -0
  714. package/src/output/multimodal/README.md +349 -0
  715. package/src/output/multimodal/SETUP_GUIDE.md +472 -0
  716. package/src/output/multimodal/audio.ts +650 -0
  717. package/src/output/multimodal/image.ts +22 -0
  718. package/src/output/multimodal/index.ts +32 -0
  719. package/src/output/multimodal/providers.example.ts +375 -0
  720. package/src/output/validator.ts +495 -0
  721. package/src/pipelines/adapters/trace-storage-blob.ts +458 -0
  722. package/src/pipelines/adapters/trace-storage-memory.ts +319 -0
  723. package/src/pipelines/defaults.ts +109 -0
  724. package/src/pipelines/index.ts +24 -0
  725. package/src/pipelines/message-transforms.ts +107 -0
  726. package/src/pipelines/multi-step-wrapper.ts +433 -0
  727. package/src/pipelines/pipeline-presets.ts +339 -0
  728. package/src/pipelines/step-executor.ts +257 -0
  729. package/src/pipelines/storage-factory.ts +85 -0
  730. package/src/pipelines/trace-storage-interface.ts +216 -0
  731. package/src/pipelines/types.ts +255 -0
  732. package/src/pipelines/validation.ts +323 -0
  733. package/src/prompts/index.ts +271 -0
  734. package/src/prompts/model-variants.ts +410 -0
  735. package/src/prompts/templates.ts +327 -0
  736. package/src/sdk/errors/base.ts +296 -0
  737. package/src/sdk/errors/index.ts +31 -0
  738. package/src/sdk/errors/utils.ts +148 -0
  739. package/src/sdk/experimental/index.ts +286 -0
  740. package/src/sdk/index.ts +25 -0
  741. package/src/sdk/middleware/ai-middleware.ts +95 -0
  742. package/src/sdk/middleware/cache.ts +154 -0
  743. package/src/sdk/middleware/circuit-breaker.ts +388 -0
  744. package/src/sdk/middleware/compose.ts +81 -0
  745. package/src/sdk/middleware/deduplication.ts +307 -0
  746. package/src/sdk/middleware/index.ts +660 -0
  747. package/src/sdk/middleware/model-middleware.ts +200 -0
  748. package/src/sdk/stop-conditions/conditions.ts +209 -0
  749. package/src/sdk/stop-conditions/index.ts +35 -0
  750. package/src/sdk/stop-conditions/types.ts +59 -0
  751. package/src/security/guardrails/index.ts +6 -0
  752. package/src/security/guardrails/middleware.ts +465 -0
  753. package/src/security/guardrails/pii-filter.ts +396 -0
  754. package/src/security/index.ts +33 -0
  755. package/src/security/injection/index.ts +5 -0
  756. package/src/security/injection/prompt-injection.ts +64 -0
  757. package/src/security/types.ts +85 -0
  758. package/src/server/cache/crypto.ts +47 -0
  759. package/src/server/cache/performance.ts +79 -0
  760. package/src/server/error-handler.ts +93 -0
  761. package/src/server/errors.ts +73 -0
  762. package/src/server/helpers.ts +944 -0
  763. package/src/server/http.ts +156 -0
  764. package/src/server/index.ts +12 -0
  765. package/src/server/messages/__tests__/messages.test.ts +720 -0
  766. package/src/server/messages/converter.ts +245 -0
  767. package/src/server/messages/data-parts.ts +338 -0
  768. package/src/server/messages/extraction.ts +328 -0
  769. package/src/server/messages/index.ts +126 -0
  770. package/src/server/messages/types.ts +355 -0
  771. package/src/server/messages/window.ts +450 -0
  772. package/src/server/rate-limit/env.ts +8 -0
  773. package/src/server/rate-limit/rate-limit.ts +165 -0
  774. package/src/server/routes/HEALTH_CHECK.md +502 -0
  775. package/src/server/routes/IMPLEMENTATION_SUMMARY.md +432 -0
  776. package/src/server/routes/QUICK_START.md +327 -0
  777. package/src/server/routes/README.md +357 -0
  778. package/src/server/routes/__tests__/routes.test.ts +628 -0
  779. package/src/server/routes/agent-route.ts +224 -0
  780. package/src/server/routes/agent-routes.ts +191 -0
  781. package/src/server/routes/embed-config.ts +181 -0
  782. package/src/server/routes/health-check.example.ts +507 -0
  783. package/src/server/routes/health-check.test.ts +533 -0
  784. package/src/server/routes/health-check.ts +639 -0
  785. package/src/server/routes/health-check.types.ts +217 -0
  786. package/src/server/routes/index.ts +32 -0
  787. package/src/server/routes/types.ts +274 -0
  788. package/src/shared/__tests__/schemas.test.ts +317 -0
  789. package/src/shared/ai-runtime.ts +139 -0
  790. package/src/shared/ai-types.ts +133 -0
  791. package/src/shared/index.ts +30 -0
  792. package/src/shared/sdk-runtime.ts +198 -0
  793. package/src/shared/sdk-types.ts +301 -0
  794. package/src/streaming/control/__tests__/streaming-control.test.ts +708 -0
  795. package/src/streaming/control/budget-guard.ts +264 -0
  796. package/src/streaming/control/controller.ts +255 -0
  797. package/src/streaming/control/index.ts +105 -0
  798. package/src/streaming/control/smoothing.ts +201 -0
  799. package/src/streaming/control/step-limit.ts +215 -0
  800. package/src/streaming/control/types.ts +234 -0
  801. package/src/streaming/core/auto-resume.ts +276 -0
  802. package/src/streaming/core/index.ts +85 -0
  803. package/src/streaming/core/multi-step.ts +471 -0
  804. package/src/streaming/core/protocol.ts +194 -0
  805. package/src/streaming/core/types.ts +182 -0
  806. package/src/streaming/index.ts +97 -0
  807. package/src/streaming/infra/backpressure/buffer.ts +210 -0
  808. package/src/streaming/infra/backpressure/index.ts +6 -0
  809. package/src/streaming/infra/index.ts +75 -0
  810. package/src/streaming/infra/multiplexing/index.ts +311 -0
  811. package/src/streaming/infra/resilience/index.ts +684 -0
  812. package/src/streaming/infra/transform/index.ts +15 -0
  813. package/src/streaming/infra/transform/stream-transforms.ts +166 -0
  814. package/src/streaming/infra/transport/index.ts +774 -0
  815. package/src/streaming/infra/types.ts +118 -0
  816. package/src/streaming/infra-extra/types.ts +118 -0
  817. package/src/tools/advanced/caching.ts +299 -0
  818. package/src/tools/advanced/generator.ts +267 -0
  819. package/src/tools/advanced/hitl.ts +251 -0
  820. package/src/tools/advanced/index.ts +9 -0
  821. package/src/tools/advanced/llm-tool.ts +208 -0
  822. package/src/tools/approval/FILES.md +449 -0
  823. package/src/tools/approval/IMPLEMENTATION_SUMMARY.md +567 -0
  824. package/src/tools/approval/QUICK_START.md +362 -0
  825. package/src/tools/approval/README.md +514 -0
  826. package/src/tools/approval/advanced-approval-queue.ts +7 -0
  827. package/src/tools/approval/approval.example.ts +571 -0
  828. package/src/tools/approval/in-memory-queue.ts +405 -0
  829. package/src/tools/approval/index.ts +737 -0
  830. package/src/tools/approval/middleware.ts +590 -0
  831. package/src/tools/approval/queue-factory.ts +162 -0
  832. package/src/tools/approval/redis-queue.ts +327 -0
  833. package/src/tools/approval/testing.ts +493 -0
  834. package/src/tools/approval/types.ts +221 -0
  835. package/src/tools/approval/with-approval.ts +366 -0
  836. package/src/tools/artifacts/artifact-tools.ts +273 -0
  837. package/src/tools/artifacts/index.ts +6 -0
  838. package/src/tools/compliance/compliance-wrapper.ts +789 -0
  839. package/src/tools/compliance/create-compliant-stream.ts +226 -0
  840. package/src/tools/compliance/index.ts +8 -0
  841. package/src/tools/compliance/phi-redaction.ts +406 -0
  842. package/src/tools/compliance/tool-wrapper.ts +306 -0
  843. package/src/tools/computer/index.ts +99 -0
  844. package/src/tools/computer/types.ts +41 -0
  845. package/src/tools/core/abort.ts +202 -0
  846. package/src/tools/core/factory.ts +197 -0
  847. package/src/tools/core/index.ts +8 -0
  848. package/src/tools/core/tool-safety.ts +112 -0
  849. package/src/tools/generic/index.ts +9 -0
  850. package/src/tools/generic/json-schema-tool.ts +301 -0
  851. package/src/tools/generic/tiptap-context.ts +619 -0
  852. package/src/tools/generic/web-search-tool.ts +82 -0
  853. package/src/tools/generic/web-search.ts +142 -0
  854. package/src/tools/index.ts +36 -0
  855. package/src/tools/mcp/ai-sdk-error-integration.ts +401 -0
  856. package/src/tools/mcp/client.ts +988 -0
  857. package/src/tools/mcp/connection-manager.ts +380 -0
  858. package/src/tools/mcp/connection-pool.ts +408 -0
  859. package/src/tools/mcp/edge-runtime.ts +318 -0
  860. package/src/tools/mcp/environment.ts +310 -0
  861. package/src/tools/mcp/index.ts +20 -0
  862. package/src/tools/mcp/next-pattern.ts +401 -0
  863. package/src/tools/mcp/stream-lifecycle-integration.ts +617 -0
  864. package/src/tools/mcp/tool-cache.ts +359 -0
  865. package/src/tools/mcp/transport-selector.ts +492 -0
  866. package/src/tools/mcp/transports.ts +99 -0
  867. package/src/tools/simple-factory.ts +55 -0
  868. package/src/tools/superpowers/index.ts +122 -0
  869. package/src/tools/superpowers/prompts/index.ts +533 -0
  870. package/src/tools/superpowers/schemas/index.ts +701 -0
  871. package/src/tools/superpowers/tools/index.ts +721 -0
  872. package/src/tools/validation-wrapper.ts +97 -0
@@ -0,0 +1,1046 @@
1
+ import { jt as stepCountIs } from "./ai-runtime-CDzQztTt.mjs";
2
+ import { t as complianceSignalSchema } from "./schemas-CxQtxIga.mjs";
3
+ import { randomUUID } from "node:crypto";
4
+
5
+ //#region src/governance/policies/guardrails.ts
6
+ /**
7
+ * @fileoverview Guardrails and content filtering policies
8
+ *
9
+ * Provides multi-layer defense for AI agent inputs and outputs including:
10
+ * - Pattern blocking (SQL injection, destructive commands, privilege escalation)
11
+ * - PII sanitization (email, SSN, phone, credit card, addresses, etc.)
12
+ * - Stream monitoring (real-time output validation)
13
+ *
14
+ * @module @od-oneapp/ai-platform/policies/guardrails
15
+ */
16
+ /**
17
+ * Banned patterns for content filtering.
18
+ * Detects dangerous SQL commands, injection attempts, and privilege escalation.
19
+ * @internal
20
+ */
21
+ const BANNED_PATTERNS = [
22
+ {
23
+ pattern: /drop\s+(table|database|schema|index)/gi,
24
+ reason: "Destructive SQL command detected (DROP)",
25
+ risk: "high"
26
+ },
27
+ {
28
+ pattern: /truncate\s+table/gi,
29
+ reason: "Destructive SQL command detected (TRUNCATE)",
30
+ risk: "high"
31
+ },
32
+ {
33
+ pattern: /delete\s+from\s+\w+\s+(where\s+1\s*=\s*1|without\s+where)/gi,
34
+ reason: "Dangerous DELETE operation without proper WHERE clause",
35
+ risk: "high"
36
+ },
37
+ {
38
+ pattern: /select\s+\*\s+from\s+(users|passwords|credentials|secrets|tokens)/gi,
39
+ reason: "Direct sensitive data extraction requires manual approval",
40
+ risk: "high"
41
+ },
42
+ {
43
+ pattern: /update\s+(users|accounts)\s+set\s+(role|permissions|is_admin)/gi,
44
+ reason: "Privilege escalation attempt detected",
45
+ risk: "high"
46
+ },
47
+ {
48
+ pattern: /;\s*(drop|delete|update|insert)/gi,
49
+ reason: "Potential SQL injection with chained commands",
50
+ risk: "high"
51
+ },
52
+ {
53
+ pattern: /(union\s+select|union\s+all\s+select)/gi,
54
+ reason: "Potential SQL injection with UNION",
55
+ risk: "high"
56
+ },
57
+ {
58
+ pattern: /(exec|execute)\s+(xp_|sp_)/gi,
59
+ reason: "Potential system stored procedure execution",
60
+ risk: "high"
61
+ },
62
+ {
63
+ pattern: /into\s+outfile|load_file\(/gi,
64
+ reason: "File system access attempt detected",
65
+ risk: "high"
66
+ }
67
+ ];
68
+ /**
69
+ * Validates credit card number using Luhn algorithm.
70
+ * @param num - Numeric string to validate
71
+ * @returns True if valid Luhn checksum
72
+ * @internal
73
+ */
74
+ const isValidLuhn = (num) => {
75
+ const digits = num.replace(/\D/g, "");
76
+ if (digits.length < 13 || digits.length > 19) return false;
77
+ let sum = 0;
78
+ let isEven = false;
79
+ for (let i = digits.length - 1; i >= 0; i--) {
80
+ let digit = parseInt(digits[i] ?? "0", 10);
81
+ if (isEven) {
82
+ digit *= 2;
83
+ if (digit > 9) digit -= 9;
84
+ }
85
+ sum += digit;
86
+ isEven = !isEven;
87
+ }
88
+ return sum % 10 === 0;
89
+ };
90
+ /**
91
+ * Checks if context keywords exist within a window around a match position.
92
+ * @param text - Full text to search
93
+ * @param matchStart - Start position of the match
94
+ * @param matchEnd - End position of the match
95
+ * @param keywords - Keywords to search for
96
+ * @param windowSize - Character window to search
97
+ * @returns True if any keyword is found within the window
98
+ * @internal
99
+ */
100
+ const hasContextKeyword = (text, matchStart, matchEnd, keywords, windowSize) => {
101
+ const windowStart = Math.max(0, matchStart - windowSize);
102
+ const windowEnd = Math.min(text.length, matchEnd + windowSize);
103
+ const contextText = text.slice(windowStart, windowEnd).toLowerCase();
104
+ return keywords.some((keyword) => contextText.includes(keyword.toLowerCase()));
105
+ };
106
+ /**
107
+ * Enterprise-grade PII patterns with context-aware detection.
108
+ * Reduces false positives by requiring context keywords for ambiguous patterns.
109
+ * @internal
110
+ */
111
+ const PII_PATTERNS = [
112
+ {
113
+ regex: /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/gi,
114
+ placeholder: "[redacted-email]",
115
+ type: "guardrail.sanitized"
116
+ },
117
+ {
118
+ regex: /\b\d{3}-\d{2}-\d{4}\b/g,
119
+ placeholder: "[redacted-ssn]",
120
+ type: "guardrail.sanitized"
121
+ },
122
+ {
123
+ regex: /\b\d{9}\b/g,
124
+ placeholder: "[redacted-ssn]",
125
+ type: "guardrail.sanitized",
126
+ contextKeywords: [
127
+ "ssn",
128
+ "social security",
129
+ "social-security",
130
+ "tax id",
131
+ "taxpayer"
132
+ ],
133
+ contextWindow: 50
134
+ },
135
+ {
136
+ regex: /\b(?:\+1[-.\s]?)?(?:\(?\d{3}\)?[-.\s]?)?\d{3}[-.\s]?\d{4}\b/g,
137
+ placeholder: "[redacted-phone]",
138
+ type: "guardrail.sanitized",
139
+ contextKeywords: [
140
+ "phone",
141
+ "call",
142
+ "tel",
143
+ "mobile",
144
+ "cell",
145
+ "contact",
146
+ "fax",
147
+ "number"
148
+ ],
149
+ contextWindow: 30
150
+ },
151
+ {
152
+ regex: /\b(?:\d{4}[-\s]?){3}\d{4,7}\b/g,
153
+ placeholder: "[redacted-card]",
154
+ type: "guardrail.sanitized",
155
+ luhnValidation: true
156
+ },
157
+ {
158
+ regex: /\b\d{13,19}\b/g,
159
+ placeholder: "[redacted-card]",
160
+ type: "guardrail.sanitized",
161
+ contextKeywords: [
162
+ "card",
163
+ "credit",
164
+ "debit",
165
+ "visa",
166
+ "mastercard",
167
+ "amex",
168
+ "discover",
169
+ "payment"
170
+ ],
171
+ contextWindow: 40,
172
+ luhnValidation: true
173
+ },
174
+ {
175
+ regex: /\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})\b/g,
176
+ placeholder: "[redacted-ip]",
177
+ type: "guardrail.sanitized",
178
+ validator: (match) => {
179
+ if ([
180
+ "127.0.0.1",
181
+ "0.0.0.0",
182
+ "255.255.255.255"
183
+ ].includes(match)) return false;
184
+ return match.split(".").map(Number).every((o) => o >= 0 && o <= 255);
185
+ }
186
+ },
187
+ {
188
+ regex: /\b[A-Z]?\d{8,9}\b/g,
189
+ placeholder: "[redacted-passport]",
190
+ type: "guardrail.sanitized",
191
+ contextKeywords: [
192
+ "passport",
193
+ "travel document",
194
+ "travel doc",
195
+ "passport number",
196
+ "passport#"
197
+ ],
198
+ contextWindow: 60
199
+ },
200
+ {
201
+ regex: /\b(0?[1-9]|1[0-2])[\/\-](0?[1-9]|[12]\d|3[01])[\/\-](19|20)\d{2}\b/g,
202
+ placeholder: "[redacted-dob]",
203
+ type: "guardrail.sanitized",
204
+ contextKeywords: [
205
+ "dob",
206
+ "birth",
207
+ "birthday",
208
+ "born",
209
+ "date of birth",
210
+ "birthdate",
211
+ "d.o.b",
212
+ "age"
213
+ ],
214
+ contextWindow: 40
215
+ },
216
+ {
217
+ regex: /\b\d+\s+[A-Za-z]+(?:\s+[A-Za-z]+)?\s+(?:Street|St|Avenue|Ave|Road|Rd|Drive|Dr|Lane|Ln|Court|Ct|Boulevard|Blvd|Way|Place|Pl|Circle|Cir)\.?\b/gi,
218
+ placeholder: "[redacted-address]",
219
+ type: "guardrail.sanitized"
220
+ },
221
+ {
222
+ regex: /\b\d{5}(?:-\d{4})?\b/g,
223
+ placeholder: "[redacted-zip]",
224
+ type: "guardrail.sanitized",
225
+ contextKeywords: [
226
+ "zip",
227
+ "postal",
228
+ "address",
229
+ "city",
230
+ "state",
231
+ "mail",
232
+ "ship"
233
+ ],
234
+ contextWindow: 50
235
+ },
236
+ {
237
+ regex: /\b\d{8,17}\b/g,
238
+ placeholder: "[redacted-account]",
239
+ type: "guardrail.sanitized",
240
+ contextKeywords: [
241
+ "account",
242
+ "acct",
243
+ "routing",
244
+ "bank",
245
+ "iban",
246
+ "aba",
247
+ "swift",
248
+ "wire",
249
+ "deposit",
250
+ "checking",
251
+ "savings"
252
+ ],
253
+ contextWindow: 50
254
+ },
255
+ {
256
+ regex: /\b[A-Z]{1,2}\d{5,8}\b/g,
257
+ placeholder: "[redacted-license]",
258
+ type: "guardrail.sanitized",
259
+ contextKeywords: [
260
+ "license",
261
+ "licence",
262
+ "dl",
263
+ "driver's",
264
+ "drivers",
265
+ "dmv",
266
+ "driving"
267
+ ],
268
+ contextWindow: 40
269
+ },
270
+ {
271
+ regex: /\b(?:AKIA|ABIA|ACCA|ASIA)[A-Z0-9]{16}\b/g,
272
+ placeholder: "[redacted-aws-key]",
273
+ type: "guardrail.sanitized"
274
+ },
275
+ {
276
+ regex: /\b[a-zA-Z0-9_-]{32,64}\b/g,
277
+ placeholder: "[redacted-token]",
278
+ type: "guardrail.sanitized",
279
+ contextKeywords: [
280
+ "api_key",
281
+ "apikey",
282
+ "api-key",
283
+ "token",
284
+ "secret",
285
+ "password",
286
+ "bearer",
287
+ "authorization",
288
+ "auth"
289
+ ],
290
+ contextWindow: 30
291
+ }
292
+ ];
293
+ /**
294
+ * Redacts PII (Personally Identifiable Information) from text.
295
+ * Uses enterprise-grade context-aware detection to minimize false positives
296
+ * while maintaining strong security coverage.
297
+ *
298
+ * Features:
299
+ * - Context-aware detection for ambiguous patterns (e.g., 9-digit numbers)
300
+ * - Luhn validation for credit card numbers
301
+ * - Custom validators for IP address filtering
302
+ * - AWS key and API token detection
303
+ *
304
+ * @param text - Text to sanitize.
305
+ * @returns Object containing redacted text and compliance signals.
306
+ * @internal
307
+ * @example
308
+ * ```ts
309
+ * const { redacted } = redactPii('Contact me at jane@example.com');
310
+ * // redacted === 'Contact me at [redacted-email]'
311
+ *
312
+ * // Context-aware: only redacts when context keywords present
313
+ * const { redacted: r1 } = redactPii('My passport number is 123456789');
314
+ * // r1 === 'My passport number is [redacted-passport]'
315
+ *
316
+ * const { redacted: r2 } = redactPii('Order 123456789 shipped');
317
+ * // r2 === 'Order 123456789 shipped' (no redaction - no context)
318
+ * ```
319
+ */
320
+ const redactPii = (text) => {
321
+ let result = text;
322
+ const signals = [];
323
+ const processedRanges = [];
324
+ for (const pattern of PII_PATTERNS) {
325
+ pattern.regex.lastIndex = 0;
326
+ let match;
327
+ const matches = [];
328
+ while ((match = pattern.regex.exec(result)) !== null) {
329
+ const matchStart = match.index;
330
+ const matchEnd = match.index + match[0].length;
331
+ if (processedRanges.some((range) => matchStart >= range.start && matchStart < range.end || matchEnd > range.start && matchEnd <= range.end)) continue;
332
+ if (pattern.contextKeywords && pattern.contextKeywords.length > 0) {
333
+ const windowSize = pattern.contextWindow ?? 50;
334
+ if (!hasContextKeyword(result, matchStart, matchEnd, pattern.contextKeywords, windowSize)) continue;
335
+ }
336
+ if (pattern.luhnValidation) {
337
+ if (!isValidLuhn(match[0])) continue;
338
+ }
339
+ if (pattern.validator && !pattern.validator(match[0], result)) continue;
340
+ matches.push({
341
+ match: match[0],
342
+ start: matchStart,
343
+ end: matchEnd
344
+ });
345
+ }
346
+ for (let i = matches.length - 1; i >= 0; i--) {
347
+ const item = matches[i];
348
+ if (!item) continue;
349
+ const { start, end } = item;
350
+ result = result.slice(0, start) + pattern.placeholder + result.slice(end);
351
+ processedRanges.push({
352
+ start,
353
+ end
354
+ });
355
+ }
356
+ if (matches.length > 0) signals.push(complianceSignalSchema.parse({
357
+ id: randomUUID(),
358
+ type: pattern.type,
359
+ message: `Automatically sanitized ${matches.length} sensitive value(s) (${pattern.placeholder})`,
360
+ runId: "guardrail",
361
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
362
+ metadata: {
363
+ count: matches.length,
364
+ pattern: pattern.placeholder
365
+ }
366
+ }));
367
+ }
368
+ return {
369
+ redacted: result,
370
+ signals
371
+ };
372
+ };
373
+ /**
374
+ * Inspects a prompt for banned patterns and PII.
375
+ * Checks against banned patterns first, then sanitizes PII if not blocked.
376
+ *
377
+ * @param prompt - Prompt text to inspect.
378
+ * @returns Guardrail result with sanitization status and signals.
379
+ * @internal
380
+ * @example
381
+ * ```ts
382
+ * const result = inspectPrompt('drop table users;');
383
+ * // result.blocked === true
384
+ * ```
385
+ */
386
+ const inspectPrompt = (prompt) => {
387
+ const signals = [];
388
+ let blocked = false;
389
+ let risk = "low";
390
+ for (const { pattern, reason, risk: patternRisk } of BANNED_PATTERNS) {
391
+ pattern.lastIndex = 0;
392
+ if (pattern.test(prompt)) {
393
+ blocked = true;
394
+ risk = patternRisk;
395
+ signals.push(complianceSignalSchema.parse({
396
+ id: randomUUID(),
397
+ type: "guardrail.blocked",
398
+ message: reason,
399
+ runId: "guardrail",
400
+ riskLevel: patternRisk,
401
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
402
+ }));
403
+ }
404
+ }
405
+ if (blocked) return {
406
+ blocked,
407
+ sanitizedPrompt: null,
408
+ signals,
409
+ risk
410
+ };
411
+ const { redacted, signals: piiSignals } = redactPii(prompt);
412
+ signals.push(...piiSignals);
413
+ return {
414
+ blocked,
415
+ sanitizedPrompt: redacted,
416
+ signals,
417
+ risk
418
+ };
419
+ };
420
+ /**
421
+ * Attaches guardrail signals to a target object.
422
+ * Used to propagate compliance signals through the request/response chain.
423
+ *
424
+ * @param target - Target object to attach signals to.
425
+ * @param signals - Compliance signals to attach.
426
+ * @internal
427
+ * @example
428
+ * ```ts
429
+ * const payload: any = {};
430
+ * attachGuardrailSignals(payload, [complianceSignalSchema.parse({ id: '1', type: 'guardrail.blocked', message: 'Blocked', runId: 'guardrail', timestamp: new Date().toISOString(), riskLevel: 'high' })]);
431
+ * ```
432
+ */
433
+ const attachGuardrailSignals = (target, signals) => {
434
+ if (!signals.length || !target || typeof target !== "object") return;
435
+ const container = target;
436
+ container.guardrailSignals = [...Array.isArray(container.guardrailSignals) ? container.guardrailSignals : [], ...signals];
437
+ };
438
+ /**
439
+ * Creates a guardrail error with attached signals.
440
+ *
441
+ * @param signals - Compliance signals explaining why the request was blocked.
442
+ * @returns Error object with guardrail signals attached.
443
+ * @internal
444
+ * @example
445
+ * ```ts
446
+ * const error = createGuardrailError([
447
+ * // signals
448
+ * ]);
449
+ * ```
450
+ */
451
+ const createGuardrailError = (signals) => {
452
+ const error = /* @__PURE__ */ new Error("Request blocked by guardrails");
453
+ attachGuardrailSignals(error, signals);
454
+ return error;
455
+ };
456
+ /**
457
+ * Sanitizes a request by inspecting prompts/messages for banned patterns and PII.
458
+ * Handles both string prompts and message arrays with various content formats.
459
+ *
460
+ * @param request - Request object to sanitize.
461
+ * @returns Object containing sanitized request and aggregated signals.
462
+ * @throws {Error} If request contains banned patterns (with guardrail signals attached).
463
+ * @internal
464
+ * @example
465
+ * ```ts
466
+ * const outcome = sanitizeRequest({ prompt: 'My email is john@example.com' });
467
+ * // outcome.sanitizedRequest.prompt contains '[redacted-email]'
468
+ * ```
469
+ */
470
+ const sanitizeRequest = (request) => {
471
+ let sanitizedRequest = request;
472
+ let mutated = false;
473
+ const aggregatedSignals = [];
474
+ if (typeof request.prompt === "string") {
475
+ const outcome = inspectPrompt(request.prompt);
476
+ if (outcome.blocked) throw createGuardrailError(outcome.signals);
477
+ const sanitizedPrompt = outcome.sanitizedPrompt ?? "";
478
+ if (sanitizedPrompt !== request.prompt) {
479
+ sanitizedRequest = {
480
+ ...sanitizedRequest,
481
+ prompt: sanitizedPrompt
482
+ };
483
+ mutated = true;
484
+ }
485
+ aggregatedSignals.push(...outcome.signals);
486
+ } else if (Array.isArray(request.prompt)) {
487
+ let promptChanged = false;
488
+ const updatedPrompt = request.prompt.map((message) => {
489
+ if (message && typeof message === "object" && message.role === "user") {
490
+ const { content } = message;
491
+ if (Array.isArray(content)) {
492
+ const updatedContent = content.map((part) => {
493
+ if (part && typeof part === "object" && part.type === "text" && typeof part.text === "string") {
494
+ const { text } = part;
495
+ const outcome = inspectPrompt(text);
496
+ if (outcome.blocked) throw createGuardrailError(outcome.signals);
497
+ const sanitizedText = outcome.sanitizedPrompt ?? "";
498
+ aggregatedSignals.push(...outcome.signals);
499
+ if (sanitizedText !== text) return {
500
+ ...part,
501
+ text: sanitizedText
502
+ };
503
+ }
504
+ return part;
505
+ });
506
+ if (updatedContent.some((part, index) => {
507
+ const original = content[index];
508
+ return part && typeof part === "object" && original && typeof original === "object" && part.text !== original.text;
509
+ })) {
510
+ promptChanged = true;
511
+ return {
512
+ ...message,
513
+ content: updatedContent
514
+ };
515
+ }
516
+ }
517
+ }
518
+ return message;
519
+ });
520
+ if (promptChanged) {
521
+ sanitizedRequest = {
522
+ ...sanitizedRequest,
523
+ prompt: updatedPrompt
524
+ };
525
+ mutated = true;
526
+ }
527
+ }
528
+ if (Array.isArray(request.messages)) {
529
+ const { messages } = request;
530
+ const updatedMessages = messages.map((message) => {
531
+ if (message && typeof message === "object" && message.role === "user") {
532
+ const { content } = message;
533
+ if (typeof content === "string") {
534
+ const outcome = inspectPrompt(content);
535
+ if (outcome.blocked) throw createGuardrailError(outcome.signals);
536
+ const sanitizedContent = outcome.sanitizedPrompt ?? "";
537
+ aggregatedSignals.push(...outcome.signals);
538
+ if (sanitizedContent !== content) return {
539
+ ...message,
540
+ content: sanitizedContent
541
+ };
542
+ } else if (Array.isArray(content)) {
543
+ const updatedContent = content.map((part) => {
544
+ if (part && typeof part === "object" && part.type === "text" && typeof part.text === "string") {
545
+ const { text } = part;
546
+ const outcome = inspectPrompt(text);
547
+ if (outcome.blocked) throw createGuardrailError(outcome.signals);
548
+ const sanitizedText = outcome.sanitizedPrompt ?? "";
549
+ aggregatedSignals.push(...outcome.signals);
550
+ if (sanitizedText !== text) return {
551
+ ...part,
552
+ text: sanitizedText
553
+ };
554
+ }
555
+ return part;
556
+ });
557
+ if (updatedContent.some((part, index) => {
558
+ const original = content[index];
559
+ return part && typeof part === "object" && original && typeof original === "object" && part.text !== original.text;
560
+ })) return {
561
+ ...message,
562
+ content: updatedContent
563
+ };
564
+ }
565
+ }
566
+ return message;
567
+ });
568
+ if (updatedMessages.some((msg, idx) => msg !== messages[idx])) {
569
+ sanitizedRequest = {
570
+ ...sanitizedRequest,
571
+ messages: updatedMessages
572
+ };
573
+ mutated = true;
574
+ }
575
+ }
576
+ return {
577
+ sanitizedRequest: mutated ? sanitizedRequest : request,
578
+ signals: aggregatedSignals
579
+ };
580
+ };
581
+ /**
582
+ * Sanitizes a single stream part for PII.
583
+ * Processes text-delta, reasoning-delta, tool-input-delta, and text parts.
584
+ *
585
+ * @param part - Stream part to sanitize.
586
+ * @returns Sanitized stream part.
587
+ * @internal
588
+ * @example
589
+ * ```ts
590
+ * const part = sanitizeStreamPart({ type: 'text-delta', delta: 'pii@example.com' });
591
+ * ```
592
+ */
593
+ const sanitizeStreamPart = (part) => {
594
+ if (!part || typeof part !== "object") return part;
595
+ const chunk = part;
596
+ if (chunk.type === "text-delta" && typeof chunk.delta === "string") return {
597
+ ...chunk,
598
+ delta: redactPii(chunk.delta).redacted
599
+ };
600
+ if (chunk.type === "reasoning-delta" && typeof chunk.delta === "string") return {
601
+ ...chunk,
602
+ delta: redactPii(chunk.delta).redacted
603
+ };
604
+ if (chunk.type === "tool-input-delta" && typeof chunk.delta === "string") return {
605
+ ...chunk,
606
+ delta: redactPii(chunk.delta).redacted
607
+ };
608
+ if (typeof chunk.text === "string") return {
609
+ ...chunk,
610
+ text: redactPii(chunk.text).redacted
611
+ };
612
+ return part;
613
+ };
614
+ /**
615
+ * Applies default guardrails to a language model.
616
+ * Wraps the model's doGenerate and doStream methods to add content filtering,
617
+ * PII redaction, and compliance signal generation.
618
+ *
619
+ * @param model - Language model to wrap with guardrails.
620
+ * @returns Wrapped model with guardrails applied.
621
+ * @throws {Error} If request contains banned patterns (with guardrail signals attached).
622
+ * @remarks Guardrails are applied to both input (prompt/messages) and output (content).
623
+ * Compliance signals are attached to responses and errors for audit purposes.
624
+ * Stream parts are sanitized in real-time for PII redaction.
625
+ * @example
626
+ * ```ts
627
+ * const guardedModel = applyDefaultGuardrails(anthropic('claude-sonnet-4'));
628
+ * const result = await guardedModel.doGenerate({ prompt: 'User input' });
629
+ * ```
630
+ */
631
+ const applyDefaultGuardrails = (model) => ({
632
+ ...model,
633
+ async doGenerate(request) {
634
+ const { sanitizedRequest, signals: requestSignals } = sanitizeRequest(request);
635
+ try {
636
+ const response = await model.doGenerate(sanitizedRequest);
637
+ const responseSignals = [];
638
+ const processedContent = response.content.map((part) => {
639
+ if (part.type === "text" && typeof part.text === "string") {
640
+ const { redacted, signals } = redactPii(part.text);
641
+ responseSignals.push(...signals);
642
+ return {
643
+ ...part,
644
+ text: redacted
645
+ };
646
+ }
647
+ return part;
648
+ });
649
+ const combinedSignals = [...requestSignals, ...responseSignals];
650
+ const sanitizedResponse = {
651
+ ...response,
652
+ content: processedContent
653
+ };
654
+ attachGuardrailSignals(sanitizedResponse, combinedSignals);
655
+ return sanitizedResponse;
656
+ } catch (error) {
657
+ attachGuardrailSignals(error, requestSignals);
658
+ throw error;
659
+ }
660
+ },
661
+ async doStream(request) {
662
+ const { sanitizedRequest, signals: requestSignals } = sanitizeRequest(request);
663
+ const result = await model.doStream(sanitizedRequest);
664
+ const reader = result.stream.getReader();
665
+ const sanitizedStream = new ReadableStream({
666
+ async pull(controller) {
667
+ const { done, value } = await reader.read();
668
+ if (done) {
669
+ controller.close();
670
+ return;
671
+ }
672
+ controller.enqueue(sanitizeStreamPart(value));
673
+ },
674
+ cancel(reason) {
675
+ return reader.cancel(reason);
676
+ }
677
+ });
678
+ const sanitizedResult = {
679
+ ...result,
680
+ stream: sanitizedStream
681
+ };
682
+ attachGuardrailSignals(sanitizedResult, requestSignals);
683
+ return sanitizedResult;
684
+ }
685
+ });
686
+ /**
687
+ * Prompt injection detection patterns.
688
+ * Detects common prompt injection, jailbreak, and manipulation attempts.
689
+ * @internal
690
+ */
691
+ const PROMPT_INJECTION_PATTERNS = [
692
+ {
693
+ pattern: /ignore\s+(all\s+)?(previous|prior|above)\s+(instructions?|prompts?|rules?)/gi,
694
+ category: "jailbreak",
695
+ severity: "high",
696
+ description: "Instruction override attempt detected"
697
+ },
698
+ {
699
+ pattern: /disregard\s+(all\s+)?(previous|prior|your)\s+(instructions?|guidelines?|rules?)/gi,
700
+ category: "jailbreak",
701
+ severity: "high",
702
+ description: "Instruction override attempt detected"
703
+ },
704
+ {
705
+ pattern: /forget\s+(everything|all|what)\s+(you\s+)?(know|learned|were told)/gi,
706
+ category: "jailbreak",
707
+ severity: "high",
708
+ description: "Memory reset attempt detected"
709
+ },
710
+ {
711
+ pattern: /pretend\s+(you\s+)?(are|have)\s+no\s+(restrictions?|limitations?|rules?)/gi,
712
+ category: "jailbreak",
713
+ severity: "high",
714
+ description: "Restriction bypass attempt detected"
715
+ },
716
+ {
717
+ pattern: /new\s+instructions?:?\s*$/gim,
718
+ category: "instruction_override",
719
+ severity: "high",
720
+ description: "New instruction injection attempt"
721
+ },
722
+ {
723
+ pattern: /system\s*:\s*you\s+are/gi,
724
+ category: "instruction_override",
725
+ severity: "high",
726
+ description: "System prompt injection attempt"
727
+ },
728
+ {
729
+ pattern: /\[system\]|\[INST\]|\[\/INST\]|<<SYS>>|<\|im_start\|>/gi,
730
+ category: "instruction_override",
731
+ severity: "high",
732
+ description: "Chat template injection attempt"
733
+ },
734
+ {
735
+ pattern: /###\s*(instruction|system|human|assistant)\s*:/gi,
736
+ category: "instruction_override",
737
+ severity: "medium",
738
+ description: "Markdown instruction injection attempt"
739
+ },
740
+ {
741
+ pattern: /you\s+are\s+(now\s+)?(DAN|jailbroken|unrestricted|evil|uncensored)/gi,
742
+ category: "role_play",
743
+ severity: "high",
744
+ description: "Malicious role-play attempt (DAN/jailbreak)"
745
+ },
746
+ {
747
+ pattern: /act\s+as\s+(if\s+)?(you\s+)?(have|had|don't have)\s+no\s+(ethics|morals|guidelines)/gi,
748
+ category: "role_play",
749
+ severity: "high",
750
+ description: "Ethics bypass role-play attempt"
751
+ },
752
+ {
753
+ pattern: /developer\s+mode|sudo\s+mode|god\s+mode|admin\s+mode/gi,
754
+ category: "role_play",
755
+ severity: "high",
756
+ description: "Privilege escalation role-play attempt"
757
+ },
758
+ {
759
+ pattern: /base64\s*:\s*[A-Za-z0-9+\/=]{20,}/gi,
760
+ category: "encoding_bypass",
761
+ severity: "medium",
762
+ description: "Base64 encoded payload detected"
763
+ },
764
+ {
765
+ pattern: /\\u[0-9a-fA-F]{4}(?:\\u[0-9a-fA-F]{4}){5,}/g,
766
+ category: "encoding_bypass",
767
+ severity: "medium",
768
+ description: "Unicode escape sequence payload detected"
769
+ },
770
+ {
771
+ pattern: /&#x?[0-9a-fA-F]+;(?:&#x?[0-9a-fA-F]+;){5,}/g,
772
+ category: "encoding_bypass",
773
+ severity: "medium",
774
+ description: "HTML entity encoded payload detected"
775
+ },
776
+ {
777
+ pattern: /repeat\s+(the\s+)?(system\s+)?prompt|show\s+(me\s+)?(the\s+)?(system\s+)?prompt/gi,
778
+ category: "data_exfil",
779
+ severity: "medium",
780
+ description: "System prompt extraction attempt"
781
+ },
782
+ {
783
+ pattern: /what\s+(are\s+)?(your|the)\s+(original\s+)?instructions/gi,
784
+ category: "data_exfil",
785
+ severity: "medium",
786
+ description: "Instruction extraction attempt"
787
+ },
788
+ {
789
+ pattern: /output\s+(your|the)\s+(entire\s+)?context/gi,
790
+ category: "data_exfil",
791
+ severity: "medium",
792
+ description: "Context extraction attempt"
793
+ }
794
+ ];
795
+ /**
796
+ * Detects prompt injection attempts in text.
797
+ * Uses pattern matching to identify common injection, jailbreak, and manipulation techniques.
798
+ *
799
+ * @param text - Text to analyze for injection attempts.
800
+ * @returns Detection result with risk level and categorization.
801
+ * @example
802
+ * ```ts
803
+ * const result = detectPromptInjection('Ignore all previous instructions and...');
804
+ * // result.detected === true
805
+ * // result.risk === 'high'
806
+ * // result.categories === ['jailbreak']
807
+ * ```
808
+ */
809
+ const detectPromptInjection = (text) => {
810
+ const detectedCategories = /* @__PURE__ */ new Set();
811
+ const descriptions = [];
812
+ const signals = [];
813
+ let maxRisk = "low";
814
+ for (const { pattern, category, severity, description } of PROMPT_INJECTION_PATTERNS) {
815
+ pattern.lastIndex = 0;
816
+ if (pattern.test(text)) {
817
+ detectedCategories.add(category);
818
+ descriptions.push(description);
819
+ if (severity === "high" || severity === "medium" && maxRisk === "low") maxRisk = severity;
820
+ signals.push(complianceSignalSchema.parse({
821
+ id: randomUUID(),
822
+ type: "guardrail.blocked",
823
+ message: `Prompt injection detected: ${description}`,
824
+ runId: "guardrail",
825
+ riskLevel: severity,
826
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
827
+ metadata: {
828
+ category,
829
+ pattern: pattern.source
830
+ }
831
+ }));
832
+ }
833
+ }
834
+ return {
835
+ detected: detectedCategories.size > 0,
836
+ risk: maxRisk,
837
+ categories: Array.from(detectedCategories),
838
+ descriptions,
839
+ signals
840
+ };
841
+ };
842
+ /**
843
+ * Token limit configuration per risk level.
844
+ * Restricts output length based on detected risk to limit potential damage.
845
+ */
846
+ const TOKEN_LIMITS = {
847
+ low: 16384,
848
+ medium: 8192,
849
+ high: 2048
850
+ };
851
+ /**
852
+ * Gets the appropriate token limit for a risk level.
853
+ *
854
+ * @param risk - Risk level to get limit for.
855
+ * @returns Maximum output tokens allowed.
856
+ * @example
857
+ * ```ts
858
+ * const limit = getTokenLimitForRisk('high');
859
+ * // limit === 2048
860
+ * ```
861
+ */
862
+ const getTokenLimitForRisk = (risk) => TOKEN_LIMITS[risk];
863
+ /**
864
+ * Detects risk level from message content.
865
+ * Analyzes user messages for high-risk keywords, patterns, and prompt injection attempts.
866
+ * Enterprise-grade detection with multiple risk factors.
867
+ *
868
+ * @param messages - Array of messages to analyze.
869
+ * @returns Detected risk level ('low', 'medium', or 'high').
870
+ * @example
871
+ * ```ts
872
+ * const risk = detectRiskFromMessages([
873
+ * { role: 'user', content: 'Delete my account' }
874
+ * ]); // Returns 'high'
875
+ * ```
876
+ */
877
+ const detectRiskFromMessages = (messages) => {
878
+ const joined = messages.filter((message) => message.role === "user").map((message) => message.content ?? "").join("\n");
879
+ const joinedLower = joined.toLowerCase();
880
+ const injectionResult = detectPromptInjection(joined);
881
+ if (injectionResult.detected && injectionResult.risk === "high") return "high";
882
+ for (const pattern of [
883
+ "delete account",
884
+ "drop table",
885
+ "rm -rf",
886
+ "format disk",
887
+ "delete all",
888
+ "wipe data",
889
+ "export all data",
890
+ "bypass security",
891
+ "admin access",
892
+ "root access",
893
+ "privilege escalation"
894
+ ]) if (joinedLower.includes(pattern)) return "high";
895
+ if (injectionResult.detected) return "medium";
896
+ for (const pattern of [
897
+ "ssn",
898
+ "pii",
899
+ "password",
900
+ "credit card",
901
+ "social security",
902
+ "api key",
903
+ "secret key",
904
+ "private key",
905
+ "access token"
906
+ ]) if (joinedLower.includes(pattern)) return "medium";
907
+ return "low";
908
+ };
909
+
910
+ //#endregion
911
+ //#region src/governance/policies/loop-controls.ts
912
+ /**
913
+ * @fileoverview Loop control policies
914
+ *
915
+ * Provides risk-tiered loop policies that control agent execution behavior:
916
+ * - Low risk: 6 steps, auto tool selection
917
+ * - Medium risk: 4 steps, auto tool selection
918
+ * - High risk: 2 steps, escalation required
919
+ *
920
+ * @module @od-oneapp/ai-platform/policies/loop-controls
921
+ */
922
+ /**
923
+ * Base loop policies for each risk level.
924
+ * Defines default step limits and tool selection strategies.
925
+ * @internal
926
+ */
927
+ const BASE_LOOP_POLICIES = {
928
+ low: {
929
+ riskLevel: "low",
930
+ maxSteps: 6,
931
+ stopCondition: stepCountIs(6),
932
+ toolChoice: "auto",
933
+ activeTools: void 0
934
+ },
935
+ medium: {
936
+ riskLevel: "medium",
937
+ maxSteps: 4,
938
+ stopCondition: stepCountIs(4),
939
+ toolChoice: "auto",
940
+ activeTools: void 0
941
+ },
942
+ high: {
943
+ riskLevel: "high",
944
+ maxSteps: 2,
945
+ stopCondition: stepCountIs(2),
946
+ toolChoice: "required",
947
+ activeTools: ["escalate"]
948
+ }
949
+ };
950
+ /**
951
+ * Resolves a loop policy for the given risk level.
952
+ * Merges base policy with optional overrides for tool choice and active tools.
953
+ *
954
+ * @param options - Policy resolution options.
955
+ * @param options.riskLevel - Risk level to resolve policy for.
956
+ * @param options.toolChoice - Optional tool choice override.
957
+ * @param options.activeTools - Optional active tools override.
958
+ * @returns Resolved loop policy with step limits, stop condition, and tool configuration.
959
+ * @remarks Base policies:
960
+ * - Low: 6 steps, auto tool choice
961
+ * - Medium: 4 steps, auto tool choice
962
+ * - High: 2 steps, required tool choice, only 'escalate' tool active
963
+ * Overrides take precedence over base policy values.
964
+ * @example
965
+ * ```ts
966
+ * const policy = resolveLoopPolicy({
967
+ * riskLevel: 'medium',
968
+ * activeTools: ['knowledgeBase', 'escalate']
969
+ * });
970
+ * ```
971
+ */
972
+ const resolveLoopPolicy = ({ riskLevel, toolChoice, activeTools }) => {
973
+ const base = BASE_LOOP_POLICIES[riskLevel];
974
+ return {
975
+ ...base,
976
+ toolChoice: toolChoice ?? base.toolChoice,
977
+ activeTools: activeTools ?? base.activeTools
978
+ };
979
+ };
980
+ /**
981
+ * Merges active tools from policy and requested tools.
982
+ * Combines policy-defined active tools with user-requested tools.
983
+ *
984
+ * @param policy - Loop policy containing active tools.
985
+ * @param requestedTools - Optional list of requested tool names.
986
+ * @returns Merged array of active tool names, or undefined if neither provided.
987
+ * @example
988
+ * ```ts
989
+ * const tools = mergeActiveTools(policy, ['customTool']);
990
+ * // Returns ['escalate', 'customTool'] if policy has 'escalate' in activeTools
991
+ * ```
992
+ */
993
+ const mergeActiveTools = (policy, requestedTools) => {
994
+ if (!policy.activeTools && !requestedTools) return;
995
+ const merged = /* @__PURE__ */ new Set();
996
+ for (const tool of requestedTools ?? []) merged.add(tool);
997
+ for (const tool of policy.activeTools ?? []) merged.add(tool);
998
+ return Array.from(merged);
999
+ };
1000
+
1001
+ //#endregion
1002
+ //#region src/governance/policies/telemetry.ts
1003
+ /**
1004
+ * Creates telemetry settings with risk level metadata.
1005
+ * Enables telemetry and includes risk level and optional metadata.
1006
+ *
1007
+ * @param options - Telemetry configuration options.
1008
+ * @param options.functionId - Function identifier for telemetry tracking.
1009
+ * @param options.riskLevel - Risk level to include in metadata.
1010
+ * @param options.metadata - Optional additional metadata (merged with riskLevel).
1011
+ * @returns Telemetry settings object with isEnabled: true and metadata containing riskLevel.
1012
+ * @remarks Telemetry is always enabled. Metadata always includes riskLevel.
1013
+ * Additional metadata is merged into the metadata object.
1014
+ * @example
1015
+ * ```ts
1016
+ * const telemetry = createTelemetrySettings({
1017
+ * functionId: 'agent-execution',
1018
+ * riskLevel: 'medium',
1019
+ * metadata: { userId: 'user-123' }
1020
+ * });
1021
+ * ```
1022
+ */
1023
+ const createTelemetrySettings = ({ functionId, riskLevel, metadata }) => ({
1024
+ isEnabled: true,
1025
+ functionId,
1026
+ metadata: {
1027
+ riskLevel,
1028
+ ...metadata
1029
+ }
1030
+ });
1031
+ /**
1032
+ * Default telemetry settings for agents.
1033
+ * Enables telemetry with basic run type metadata.
1034
+ * @example
1035
+ * ```ts
1036
+ * const telemetry = { ...defaultTelemetry, functionId: 'agent-run' };
1037
+ * ```
1038
+ */
1039
+ const defaultTelemetry = {
1040
+ isEnabled: true,
1041
+ metadata: { runType: "agent" }
1042
+ };
1043
+
1044
+ //#endregion
1045
+ export { TOKEN_LIMITS as a, detectRiskFromMessages as c, resolveLoopPolicy as i, getTokenLimitForRisk as l, defaultTelemetry as n, applyDefaultGuardrails as o, mergeActiveTools as r, detectPromptInjection as s, createTelemetrySettings as t };
1046
+ //# sourceMappingURL=telemetry-2eKMojIb.mjs.map