@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,596 @@
1
+ import { n as hashInput, t as generateSignature } from "./crypto-8ABhc3TD.mjs";
2
+ import { z } from "zod";
3
+ import { logInfo, logWarn } from "@od-oneapp/shared/logs";
4
+
5
+ //#region src/governance/versioning/index.ts
6
+ /**
7
+ * Version Control & Configuration Management
8
+ *
9
+ * Manages versioning for AI platform configurations, policies, and schemas.
10
+ * Enables tracking configuration changes, compatibility checking, and migration.
11
+ *
12
+ * @module @od-oneapp/ai-platform/governance/versioning
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import {
17
+ * createVersionRegistry,
18
+ * getCurrentVersion,
19
+ * isVersionCompatible,
20
+ * migrateConfig
21
+ * } from '@od-oneapp/ai-platform/governance/versioning';
22
+ *
23
+ * // Get current platform version
24
+ * const version = getCurrentVersion();
25
+ *
26
+ * // Check compatibility
27
+ * if (isVersionCompatible(config.version, version)) {
28
+ * // Config is compatible
29
+ * } else {
30
+ * // Migrate config
31
+ * const migrated = migrateConfig(config, version);
32
+ * }
33
+ * ```
34
+ */
35
+ /** Current policy version - increment when making breaking changes */
36
+ const POLICY_VERSION = "2.0.0";
37
+ /** Current schema version for configurations */
38
+ const SCHEMA_VERSION = "1.0.0";
39
+ /** Platform version (synced with package.json) */
40
+ const PLATFORM_VERSION = "1.0.0";
41
+ /**
42
+ * Create a version registry for tracking and managing versions.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const registry = createVersionRegistry();
47
+ *
48
+ * registry.registerVersion({
49
+ * version: '1.0.0',
50
+ * releasedAt: new Date('2024-01-01'),
51
+ * deprecated: false,
52
+ * features: ['Initial release']
53
+ * });
54
+ *
55
+ * registry.registerVersion({
56
+ * version: '2.0.0',
57
+ * releasedAt: new Date('2024-06-01'),
58
+ * deprecated: false,
59
+ * breakingChanges: ['Changed policy schema']
60
+ * });
61
+ *
62
+ * registry.registerMigration({
63
+ * fromVersion: '1.0.0',
64
+ * toVersion: '2.0.0',
65
+ * migrate: (config) => ({ ...config, newField: 'default' })
66
+ * });
67
+ * ```
68
+ */
69
+ function createVersionRegistry(config = {}) {
70
+ const versions = /* @__PURE__ */ new Map();
71
+ const migrations = /* @__PURE__ */ new Map();
72
+ for (const version of config.versions ?? []) versions.set(version.version, version);
73
+ for (const migration of config.migrations ?? []) {
74
+ const key = `${migration.fromVersion}->${migration.toVersion}`;
75
+ migrations.set(key, migration);
76
+ }
77
+ function registerVersion(metadata) {
78
+ versions.set(metadata.version, metadata);
79
+ }
80
+ function getVersion(version) {
81
+ return versions.get(version);
82
+ }
83
+ function getAllVersions() {
84
+ return Array.from(versions.values()).sort((a, b) => compareVersions(a.version, b.version));
85
+ }
86
+ function getLatestVersion() {
87
+ const all = getAllVersions();
88
+ return all[all.length - 1];
89
+ }
90
+ function deprecateVersion(version, migrateToVersion) {
91
+ const metadata = versions.get(version);
92
+ if (metadata) {
93
+ metadata.deprecated = true;
94
+ metadata.migrateToVersion = migrateToVersion;
95
+ }
96
+ }
97
+ function hasVersion(version) {
98
+ return versions.has(version);
99
+ }
100
+ function registerMigration(migration) {
101
+ const key = `${migration.fromVersion}->${migration.toVersion}`;
102
+ migrations.set(key, migration);
103
+ }
104
+ function getMigrationPath(fromVersion, toVersion) {
105
+ const path = [];
106
+ const visited = /* @__PURE__ */ new Set();
107
+ const queue = [{
108
+ version: fromVersion,
109
+ path: []
110
+ }];
111
+ while (queue.length > 0) {
112
+ const item = queue.shift();
113
+ if (!item) break;
114
+ const { version, path: currentPath } = item;
115
+ if (version === toVersion) return currentPath;
116
+ if (visited.has(version)) continue;
117
+ visited.add(version);
118
+ for (const migration of migrations.values()) if (migration.fromVersion === version && !visited.has(migration.toVersion)) queue.push({
119
+ version: migration.toVersion,
120
+ path: [...currentPath, migration]
121
+ });
122
+ }
123
+ return path;
124
+ }
125
+ function migrate(config, fromVersion, toVersion) {
126
+ if (fromVersion === toVersion) return config;
127
+ const path = getMigrationPath(fromVersion, toVersion);
128
+ if (path.length === 0) throw new Error(`No migration path from ${fromVersion} to ${toVersion}`);
129
+ let result = config;
130
+ for (const migration of path) result = migration.migrate(result);
131
+ return result;
132
+ }
133
+ return {
134
+ registerVersion,
135
+ getVersion,
136
+ getAllVersions,
137
+ getLatestVersion,
138
+ deprecateVersion,
139
+ hasVersion,
140
+ registerMigration,
141
+ getMigrationPath,
142
+ migrate
143
+ };
144
+ }
145
+ /**
146
+ * Parse a semantic version string.
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * const { major, minor, patch } = parseVersion('2.1.3');
151
+ * // { major: 2, minor: 1, patch: 3 }
152
+ * ```
153
+ */
154
+ function parseVersion(version) {
155
+ const match = version.match(/^(\d+)\.(\d+)\.(\d+)/);
156
+ if (!match) throw new Error(`Invalid version format: ${version}`);
157
+ const major = match[1];
158
+ const minor = match[2];
159
+ const patch = match[3];
160
+ if (!major || !minor || !patch) throw new Error(`Invalid version format: ${version}`);
161
+ return {
162
+ major: parseInt(major, 10),
163
+ minor: parseInt(minor, 10),
164
+ patch: parseInt(patch, 10)
165
+ };
166
+ }
167
+ /**
168
+ * Compare two version strings.
169
+ * Returns negative if a < b, positive if a > b, 0 if equal.
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * compareVersions('1.0.0', '2.0.0'); // -1
174
+ * compareVersions('2.0.0', '1.0.0'); // 1
175
+ * compareVersions('1.0.0', '1.0.0'); // 0
176
+ * ```
177
+ */
178
+ function compareVersions(a, b) {
179
+ const versionA = parseVersion(a);
180
+ const versionB = parseVersion(b);
181
+ if (versionA.major !== versionB.major) return versionA.major - versionB.major;
182
+ if (versionA.minor !== versionB.minor) return versionA.minor - versionB.minor;
183
+ return versionA.patch - versionB.patch;
184
+ }
185
+ /**
186
+ * Check if two versions are compatible (same major version).
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * isVersionCompatible('1.0.0', '1.5.0'); // true
191
+ * isVersionCompatible('1.0.0', '2.0.0'); // false
192
+ * ```
193
+ */
194
+ function isVersionCompatible(configVersion, targetVersion) {
195
+ const config = parseVersion(configVersion);
196
+ const target = parseVersion(targetVersion);
197
+ return config.major === target.major;
198
+ }
199
+ /**
200
+ * Check if a version satisfies a version range.
201
+ *
202
+ * @example
203
+ * ```typescript
204
+ * satisfiesRange('1.5.0', '>=1.0.0'); // true
205
+ * satisfiesRange('2.0.0', '<2.0.0'); // false
206
+ * satisfiesRange('1.5.0', '>=1.0.0 <2.0.0'); // true
207
+ * ```
208
+ */
209
+ function satisfiesRange(version, range) {
210
+ parseVersion(version);
211
+ const conditions = range.split(/\s+/).filter((c) => c.length > 0);
212
+ for (const condition of conditions) {
213
+ const trimmed = condition.trim();
214
+ const operator = trimmed.startsWith(">=") || trimmed.startsWith("<=") ? trimmed.slice(0, 2) : trimmed.startsWith(">") || trimmed.startsWith("<") || trimmed.startsWith("=") ? trimmed.slice(0, 1) : "=";
215
+ const targetVersion = trimmed.slice(operator.length);
216
+ if (!targetVersion) continue;
217
+ const cmp = compareVersions(version, targetVersion);
218
+ switch (operator) {
219
+ case ">=":
220
+ if (cmp < 0) return false;
221
+ break;
222
+ case ">":
223
+ if (cmp <= 0) return false;
224
+ break;
225
+ case "<=":
226
+ if (cmp > 0) return false;
227
+ break;
228
+ case "<":
229
+ if (cmp >= 0) return false;
230
+ break;
231
+ case "=":
232
+ if (cmp !== 0) return false;
233
+ break;
234
+ }
235
+ }
236
+ return true;
237
+ }
238
+ /**
239
+ * Get the current platform version.
240
+ */
241
+ function getCurrentVersion() {
242
+ return PLATFORM_VERSION;
243
+ }
244
+ /**
245
+ * Get the current policy version.
246
+ */
247
+ function getCurrentPolicyVersion() {
248
+ return POLICY_VERSION;
249
+ }
250
+ /**
251
+ * Get the current schema version.
252
+ */
253
+ function getCurrentSchemaVersion() {
254
+ return SCHEMA_VERSION;
255
+ }
256
+ /**
257
+ * Create a versioned configuration wrapper.
258
+ *
259
+ * @example
260
+ * ```typescript
261
+ * const config = createVersionedConfig(
262
+ * { apiKey: 'xxx', timeout: 5000 },
263
+ * '1.0.0'
264
+ * );
265
+ * ```
266
+ */
267
+ function createVersionedConfig(data, schemaVersion = SCHEMA_VERSION) {
268
+ const now = /* @__PURE__ */ new Date();
269
+ return {
270
+ schemaVersion,
271
+ data,
272
+ createdAt: now,
273
+ updatedAt: now,
274
+ hash: computeConfigHash(data)
275
+ };
276
+ }
277
+ /**
278
+ * Update a versioned configuration.
279
+ *
280
+ * @example
281
+ * ```typescript
282
+ * const updated = updateVersionedConfig(config, { timeout: 10000 });
283
+ * ```
284
+ */
285
+ function updateVersionedConfig(config, updates) {
286
+ const data = {
287
+ ...config.data,
288
+ ...updates
289
+ };
290
+ return {
291
+ ...config,
292
+ data,
293
+ updatedAt: /* @__PURE__ */ new Date(),
294
+ hash: computeConfigHash(data)
295
+ };
296
+ }
297
+ /**
298
+ * Migrate a versioned configuration to a new schema version.
299
+ *
300
+ * @example
301
+ * ```typescript
302
+ * const registry = createVersionRegistry();
303
+ * const migrated = migrateVersionedConfig(config, '2.0.0', registry);
304
+ * ```
305
+ */
306
+ function migrateVersionedConfig(config, targetVersion, registry) {
307
+ if (config.schemaVersion === targetVersion) return config;
308
+ const migratedData = registry.migrate(config.data, config.schemaVersion, targetVersion);
309
+ return {
310
+ ...config,
311
+ schemaVersion: targetVersion,
312
+ data: migratedData,
313
+ updatedAt: /* @__PURE__ */ new Date(),
314
+ hash: computeConfigHash(migratedData)
315
+ };
316
+ }
317
+ /**
318
+ * Validate a versioned configuration integrity.
319
+ */
320
+ function validateConfigIntegrity(config) {
321
+ if (!config.hash) return true;
322
+ return config.hash === computeConfigHash(config.data);
323
+ }
324
+ /** Default version registry with platform versions */
325
+ const defaultRegistry = createVersionRegistry({
326
+ versions: [{
327
+ version: "1.0.0",
328
+ releasedAt: /* @__PURE__ */ new Date("2024-01-01"),
329
+ deprecated: false,
330
+ features: [
331
+ "Initial release",
332
+ "Basic policy support",
333
+ "ABAC compliance"
334
+ ]
335
+ }, {
336
+ version: "2.0.0",
337
+ releasedAt: /* @__PURE__ */ new Date("2024-06-01"),
338
+ deprecated: false,
339
+ breakingChanges: ["New policy schema", "Updated compliance validators"],
340
+ features: [
341
+ "Advanced guardrails",
342
+ "Adaptive caching",
343
+ "Multi-tenant support"
344
+ ]
345
+ }],
346
+ migrations: [{
347
+ fromVersion: "1.0.0",
348
+ toVersion: "2.0.0",
349
+ description: "Migrate from v1 to v2 schema",
350
+ migrate: (config) => {
351
+ return {
352
+ ...config,
353
+ policyVersion: "2.0.0",
354
+ migratedAt: (/* @__PURE__ */ new Date()).toISOString()
355
+ };
356
+ }
357
+ }]
358
+ });
359
+ function computeConfigHash(data) {
360
+ const str = JSON.stringify(data, Object.keys(data).sort());
361
+ let hash = 0;
362
+ for (let i = 0; i < str.length; i++) {
363
+ const char = str.charCodeAt(i);
364
+ hash = (hash << 5) - hash + char;
365
+ hash = hash & hash;
366
+ }
367
+ return Math.abs(hash).toString(16).padStart(8, "0");
368
+ }
369
+
370
+ //#endregion
371
+ //#region src/governance/audit/audit-schema.ts
372
+ /**
373
+ * @fileoverview Audit entry schemas and validation
374
+ * Audit entry schemas and validation
375
+ * Ensures structured, machine-readable audit logs for FDA/SOC2
376
+ */
377
+ /**
378
+ * Audit action types
379
+ */
380
+ const AuditActionSchema = z.enum([
381
+ "generation",
382
+ "generative_ui",
383
+ "tool_call",
384
+ "redaction",
385
+ "policy_check",
386
+ "abac_decision",
387
+ "approval_request",
388
+ "approval_granted",
389
+ "approval_denied"
390
+ ]);
391
+ /**
392
+ * ABAC decision schema
393
+ */
394
+ const ABACDecisionSchema = z.object({
395
+ allowed: z.boolean(),
396
+ reason: z.string().optional(),
397
+ conditions: z.array(z.string()).optional(),
398
+ policyId: z.string()
399
+ });
400
+ /**
401
+ * Core audit entry schema
402
+ */
403
+ const AuditEntrySchema = z.object({
404
+ id: z.string().optional(),
405
+ timestamp: z.string(),
406
+ actor: z.string(),
407
+ action: AuditActionSchema,
408
+ input_hash: z.string(),
409
+ output_snapshot: z.unknown(),
410
+ policy_version: z.string(),
411
+ abac_decision: ABACDecisionSchema.optional(),
412
+ metadata: z.record(z.string(), z.unknown()).optional(),
413
+ signature: z.string()
414
+ });
415
+ /**
416
+ * Audit query filter schema
417
+ */
418
+ const AuditQueryFilterSchema = z.object({
419
+ actor: z.string().optional(),
420
+ action: AuditActionSchema.optional(),
421
+ startDate: z.date().optional(),
422
+ endDate: z.date().optional(),
423
+ limit: z.number().positive().max(1e3).default(100),
424
+ offset: z.number().nonnegative().default(0)
425
+ });
426
+ /**
427
+ * Validate audit entry
428
+ */
429
+ function validateAuditEntry(entry) {
430
+ return AuditEntrySchema.parse(entry);
431
+ }
432
+ /**
433
+ * Validate query filter
434
+ */
435
+ function validateQueryFilter(filter) {
436
+ return AuditQueryFilterSchema.parse(filter);
437
+ }
438
+
439
+ //#endregion
440
+ //#region src/governance/audit/audit-logger.ts
441
+ /**
442
+ * @fileoverview Audit Logger Implementation
443
+ * Audit Logger Implementation
444
+ * Creates immutable, cryptographically signed audit trail
445
+ */
446
+ /**
447
+ * In-memory audit logger (for development)
448
+ * In production, replace with persistent storage (PostgreSQL, Redis, S3)
449
+ */
450
+ var InMemoryAuditLogger = class {
451
+ entries = [];
452
+ maxEntries;
453
+ constructor(maxEntries = 1e4) {
454
+ this.maxEntries = maxEntries;
455
+ }
456
+ async log(entry) {
457
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString();
458
+ const entryWithTimestamp = {
459
+ ...entry,
460
+ timestamp
461
+ };
462
+ const signature = await generateSignature(entryWithTimestamp);
463
+ const completeEntry = {
464
+ ...entryWithTimestamp,
465
+ signature
466
+ };
467
+ validateAuditEntry(completeEntry);
468
+ this.entries.push(completeEntry);
469
+ if (this.entries.length > this.maxEntries) this.entries.shift();
470
+ if (process.env.NODE_ENV === "development") logInfo("[AUDIT]", {
471
+ action: completeEntry.action,
472
+ actor: completeEntry.actor,
473
+ timestamp: completeEntry.timestamp
474
+ });
475
+ }
476
+ async query(filter) {
477
+ let results = this.entries.map((entry) => structuredClone(entry));
478
+ if (filter.actor) results = results.filter((e) => e.actor === filter.actor);
479
+ if (filter.action) results = results.filter((e) => e.action === filter.action);
480
+ const { startDate, endDate } = filter;
481
+ if (startDate) results = results.filter((e) => new Date(e.timestamp) >= startDate);
482
+ if (endDate) results = results.filter((e) => new Date(e.timestamp) <= endDate);
483
+ const limit = filter.limit ?? 100;
484
+ return results.slice(0, limit);
485
+ }
486
+ /**
487
+ * Get all entries (for development/testing)
488
+ */
489
+ async getAll() {
490
+ return this.entries.map((entry) => structuredClone(entry));
491
+ }
492
+ /**
493
+ * Clear all entries (for testing only)
494
+ */
495
+ async clear() {
496
+ this.entries = [];
497
+ }
498
+ };
499
+ /**
500
+ * Console-only audit logger (for demos)
501
+ */
502
+ var ConsoleAuditLogger = class {
503
+ async log(entry) {
504
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString();
505
+ const signature = await generateSignature({
506
+ ...entry,
507
+ timestamp
508
+ });
509
+ logInfo("[AUDIT LOG]", { entry: {
510
+ ...entry,
511
+ timestamp,
512
+ signature
513
+ } });
514
+ }
515
+ async query(filter) {
516
+ logWarn("[AUDIT] ConsoleAuditLogger does not support querying");
517
+ return [];
518
+ }
519
+ };
520
+ /**
521
+ * Create an audit logger instance
522
+ */
523
+ function createAuditLogger(type = "memory") {
524
+ switch (type) {
525
+ case "console": return new ConsoleAuditLogger();
526
+ default: return new InMemoryAuditLogger();
527
+ }
528
+ }
529
+ /**
530
+ * Global audit logger instance
531
+ */
532
+ let globalLogger = null;
533
+ /**
534
+ * Get or create global audit logger
535
+ */
536
+ function getAuditLogger() {
537
+ if (!globalLogger) globalLogger = createAuditLogger("memory");
538
+ return globalLogger;
539
+ }
540
+ /**
541
+ * Set global audit logger
542
+ */
543
+ function setAuditLogger(logger) {
544
+ globalLogger = logger;
545
+ }
546
+ /**
547
+ * Helper to log a generation event
548
+ */
549
+ async function logGeneration(actor, input, output, metadata) {
550
+ const logger = getAuditLogger();
551
+ const input_hash = await hashInput(input);
552
+ await logger.log({
553
+ actor,
554
+ action: "generation",
555
+ input_hash,
556
+ output_snapshot: output,
557
+ policy_version: POLICY_VERSION,
558
+ metadata
559
+ });
560
+ }
561
+ /**
562
+ * Helper to log a tool call event
563
+ */
564
+ async function logToolCall(actor, toolName, args, result, metadata) {
565
+ const logger = getAuditLogger();
566
+ const input_hash = await hashInput(JSON.stringify(args));
567
+ await logger.log({
568
+ actor,
569
+ action: "tool_call",
570
+ input_hash,
571
+ output_snapshot: {
572
+ tool: toolName,
573
+ args,
574
+ result
575
+ },
576
+ policy_version: POLICY_VERSION,
577
+ metadata
578
+ });
579
+ }
580
+ /**
581
+ * Helper to log a redaction event
582
+ */
583
+ async function logRedaction(actor, detections, metadata) {
584
+ await getAuditLogger().log({
585
+ actor,
586
+ action: "redaction",
587
+ input_hash: "n/a",
588
+ output_snapshot: { detections },
589
+ policy_version: POLICY_VERSION,
590
+ metadata
591
+ });
592
+ }
593
+
594
+ //#endregion
595
+ export { isVersionCompatible as C, updateVersionedConfig as D, satisfiesRange as E, validateConfigIntegrity as O, getCurrentVersion as S, parseVersion as T, createVersionRegistry as _, logToolCall as a, getCurrentPolicyVersion as b, AuditActionSchema as c, validateAuditEntry as d, validateQueryFilter as f, compareVersions as g, SCHEMA_VERSION as h, logRedaction as i, AuditEntrySchema as l, POLICY_VERSION as m, getAuditLogger as n, setAuditLogger as o, PLATFORM_VERSION as p, logGeneration as r, ABACDecisionSchema as s, createAuditLogger as t, AuditQueryFilterSchema as u, createVersionedConfig as v, migrateVersionedConfig as w, getCurrentSchemaVersion as x, defaultRegistry as y };
596
+ //# sourceMappingURL=audit-logger-CHIP8bRO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-logger-CHIP8bRO.mjs","names":[],"sources":["../src/governance/versioning/index.ts","../src/governance/audit/audit-schema.ts","../src/governance/audit/audit-logger.ts"],"sourcesContent":["/**\n * Version Control & Configuration Management\n *\n * Manages versioning for AI platform configurations, policies, and schemas.\n * Enables tracking configuration changes, compatibility checking, and migration.\n *\n * @module @od-oneapp/ai-platform/governance/versioning\n *\n * @example\n * ```typescript\n * import {\n * createVersionRegistry,\n * getCurrentVersion,\n * isVersionCompatible,\n * migrateConfig\n * } from '@od-oneapp/ai-platform/governance/versioning';\n *\n * // Get current platform version\n * const version = getCurrentVersion();\n *\n * // Check compatibility\n * if (isVersionCompatible(config.version, version)) {\n * // Config is compatible\n * } else {\n * // Migrate config\n * const migrated = migrateConfig(config, version);\n * }\n * ```\n */\n\n// -----------------------------------------------------------------------------\n// Constants\n// -----------------------------------------------------------------------------\n\n/** Current policy version - increment when making breaking changes */\nexport const POLICY_VERSION = '2.0.0' as const;\n\n/** Current schema version for configurations */\nexport const SCHEMA_VERSION = '1.0.0' as const;\n\n/** Platform version (synced with package.json) */\nexport const PLATFORM_VERSION = '1.0.0' as const;\n\n// -----------------------------------------------------------------------------\n// Types\n// -----------------------------------------------------------------------------\n\n/** Semantic version string */\nexport type SemVer = `${number}.${number}.${number}`;\n\n/** Version metadata */\nexport interface VersionMetadata {\n /** Version string */\n version: SemVer;\n /** When this version was released */\n releasedAt: Date;\n /** Whether this version is deprecated */\n deprecated: boolean;\n /** Version to migrate to if deprecated */\n migrateToVersion?: SemVer;\n /** Breaking changes in this version */\n breakingChanges?: string[];\n /** New features in this version */\n features?: string[];\n /** Bug fixes in this version */\n bugFixes?: string[];\n /** Additional metadata */\n metadata?: Record<string, unknown>;\n}\n\n/** Version change record */\nexport interface VersionChange {\n /** ID of the change */\n id: string;\n /** Type of change */\n type: 'breaking' | 'feature' | 'fix' | 'deprecation';\n /** Description of the change */\n description: string;\n /** Affected components */\n affectedComponents: string[];\n /** Migration guide if applicable */\n migrationGuide?: string;\n}\n\n/** Versioned configuration */\nexport interface VersionedConfig<T = unknown> {\n /** Schema version */\n schemaVersion: SemVer;\n /** Configuration data */\n data: T;\n /** When the config was created */\n createdAt: Date;\n /** When the config was last updated */\n updatedAt: Date;\n /** Configuration hash for integrity checking */\n hash?: string;\n}\n\n/** Migration function type */\nexport type MigrationFn<TFrom = unknown, TTo = unknown> = (config: TFrom) => TTo;\n\n/** Migration definition */\nexport interface Migration {\n /** Source version */\n fromVersion: SemVer;\n /** Target version */\n toVersion: SemVer;\n /** Migration function */\n migrate: MigrationFn;\n /** Description of the migration */\n description?: string;\n}\n\n/** Version registry interface */\nexport interface VersionRegistry {\n /** Register a version */\n registerVersion(metadata: VersionMetadata): void;\n /** Get version metadata */\n getVersion(version: SemVer): VersionMetadata | undefined;\n /** Get all versions */\n getAllVersions(): VersionMetadata[];\n /** Get latest version */\n getLatestVersion(): VersionMetadata | undefined;\n /** Deprecate a version */\n deprecateVersion(version: SemVer, migrateToVersion: SemVer): void;\n /** Check if version exists */\n hasVersion(version: SemVer): boolean;\n /** Register a migration */\n registerMigration(migration: Migration): void;\n /** Get migration path */\n getMigrationPath(fromVersion: SemVer, toVersion: SemVer): Migration[];\n /** Execute migration */\n migrate<T>(config: T, fromVersion: SemVer, toVersion: SemVer): T;\n}\n\n/** Version registry configuration */\nexport interface VersionRegistryConfig {\n /** Initial versions to register */\n versions?: VersionMetadata[];\n /** Initial migrations to register */\n migrations?: Migration[];\n}\n\n// -----------------------------------------------------------------------------\n// Version Registry Implementation\n// -----------------------------------------------------------------------------\n\n/**\n * Create a version registry for tracking and managing versions.\n *\n * @example\n * ```typescript\n * const registry = createVersionRegistry();\n *\n * registry.registerVersion({\n * version: '1.0.0',\n * releasedAt: new Date('2024-01-01'),\n * deprecated: false,\n * features: ['Initial release']\n * });\n *\n * registry.registerVersion({\n * version: '2.0.0',\n * releasedAt: new Date('2024-06-01'),\n * deprecated: false,\n * breakingChanges: ['Changed policy schema']\n * });\n *\n * registry.registerMigration({\n * fromVersion: '1.0.0',\n * toVersion: '2.0.0',\n * migrate: (config) => ({ ...config, newField: 'default' })\n * });\n * ```\n */\nexport function createVersionRegistry(config: VersionRegistryConfig = {}): VersionRegistry {\n const versions = new Map<SemVer, VersionMetadata>();\n const migrations = new Map<string, Migration>();\n\n // Register initial versions\n for (const version of config.versions ?? []) {\n versions.set(version.version, version);\n }\n\n // Register initial migrations\n for (const migration of config.migrations ?? []) {\n const key = `${migration.fromVersion}->${migration.toVersion}`;\n migrations.set(key, migration);\n }\n\n function registerVersion(metadata: VersionMetadata): void {\n versions.set(metadata.version, metadata);\n }\n\n function getVersion(version: SemVer): VersionMetadata | undefined {\n return versions.get(version);\n }\n\n function getAllVersions(): VersionMetadata[] {\n return Array.from(versions.values()).sort((a, b) => compareVersions(a.version, b.version));\n }\n\n function getLatestVersion(): VersionMetadata | undefined {\n const all = getAllVersions();\n return all[all.length - 1];\n }\n\n function deprecateVersion(version: SemVer, migrateToVersion: SemVer): void {\n const metadata = versions.get(version);\n if (metadata) {\n metadata.deprecated = true;\n metadata.migrateToVersion = migrateToVersion;\n }\n }\n\n function hasVersion(version: SemVer): boolean {\n return versions.has(version);\n }\n\n function registerMigration(migration: Migration): void {\n const key = `${migration.fromVersion}->${migration.toVersion}`;\n migrations.set(key, migration);\n }\n\n function getMigrationPath(fromVersion: SemVer, toVersion: SemVer): Migration[] {\n const path: Migration[] = [];\n\n // Simple BFS to find path\n const visited = new Set<SemVer>();\n const queue: Array<{ version: SemVer; path: Migration[] }> = [\n { version: fromVersion, path: [] },\n ];\n\n while (queue.length > 0) {\n const item = queue.shift();\n if (!item) {\n break;\n }\n const { version, path: currentPath } = item;\n\n if (version === toVersion) {\n return currentPath;\n }\n\n if (visited.has(version)) continue;\n visited.add(version);\n\n // Find all migrations from this version\n for (const migration of migrations.values()) {\n if (migration.fromVersion === version && !visited.has(migration.toVersion)) {\n queue.push({\n version: migration.toVersion,\n path: [...currentPath, migration],\n });\n }\n }\n }\n\n return path; // Empty if no path found\n }\n\n function migrate<T>(config: T, fromVersion: SemVer, toVersion: SemVer): T {\n if (fromVersion === toVersion) return config;\n\n const path = getMigrationPath(fromVersion, toVersion);\n if (path.length === 0) {\n throw new Error(`No migration path from ${fromVersion} to ${toVersion}`);\n }\n\n let result: unknown = config;\n for (const migration of path) {\n result = migration.migrate(result);\n }\n\n return result as T;\n }\n\n return {\n registerVersion,\n getVersion,\n getAllVersions,\n getLatestVersion,\n deprecateVersion,\n hasVersion,\n registerMigration,\n getMigrationPath,\n migrate,\n };\n}\n\n// -----------------------------------------------------------------------------\n// Version Utilities\n// -----------------------------------------------------------------------------\n\n/**\n * Parse a semantic version string.\n *\n * @example\n * ```typescript\n * const { major, minor, patch } = parseVersion('2.1.3');\n * // { major: 2, minor: 1, patch: 3 }\n * ```\n */\nexport function parseVersion(version: string): { major: number; minor: number; patch: number } {\n const match = version.match(/^(\\d+)\\.(\\d+)\\.(\\d+)/);\n if (!match) {\n throw new Error(`Invalid version format: ${version}`);\n }\n const major = match[1];\n const minor = match[2];\n const patch = match[3];\n if (!major || !minor || !patch) {\n throw new Error(`Invalid version format: ${version}`);\n }\n return {\n major: parseInt(major, 10),\n minor: parseInt(minor, 10),\n patch: parseInt(patch, 10),\n };\n}\n\n/**\n * Compare two version strings.\n * Returns negative if a < b, positive if a > b, 0 if equal.\n *\n * @example\n * ```typescript\n * compareVersions('1.0.0', '2.0.0'); // -1\n * compareVersions('2.0.0', '1.0.0'); // 1\n * compareVersions('1.0.0', '1.0.0'); // 0\n * ```\n */\nexport function compareVersions(a: string, b: string): number {\n const versionA = parseVersion(a);\n const versionB = parseVersion(b);\n\n if (versionA.major !== versionB.major) {\n return versionA.major - versionB.major;\n }\n if (versionA.minor !== versionB.minor) {\n return versionA.minor - versionB.minor;\n }\n return versionA.patch - versionB.patch;\n}\n\n/**\n * Check if two versions are compatible (same major version).\n *\n * @example\n * ```typescript\n * isVersionCompatible('1.0.0', '1.5.0'); // true\n * isVersionCompatible('1.0.0', '2.0.0'); // false\n * ```\n */\nexport function isVersionCompatible(configVersion: string, targetVersion: string): boolean {\n const config = parseVersion(configVersion);\n const target = parseVersion(targetVersion);\n\n // Same major version = compatible\n return config.major === target.major;\n}\n\n/**\n * Check if a version satisfies a version range.\n *\n * @example\n * ```typescript\n * satisfiesRange('1.5.0', '>=1.0.0'); // true\n * satisfiesRange('2.0.0', '<2.0.0'); // false\n * satisfiesRange('1.5.0', '>=1.0.0 <2.0.0'); // true\n * ```\n */\nexport function satisfiesRange(version: string, range: string): boolean {\n parseVersion(version);\n\n // Parse range conditions\n const conditions = range.split(/\\s+/).filter(c => c.length > 0);\n\n for (const condition of conditions) {\n const trimmed = condition.trim();\n const operator =\n trimmed.startsWith('>=') || trimmed.startsWith('<=')\n ? trimmed.slice(0, 2)\n : trimmed.startsWith('>') || trimmed.startsWith('<') || trimmed.startsWith('=')\n ? trimmed.slice(0, 1)\n : '=';\n const targetVersion = trimmed.slice(operator.length);\n if (!targetVersion) continue;\n const cmp = compareVersions(version, targetVersion);\n\n switch (operator) {\n case '>=':\n if (cmp < 0) return false;\n break;\n case '>':\n if (cmp <= 0) return false;\n break;\n case '<=':\n if (cmp > 0) return false;\n break;\n case '<':\n if (cmp >= 0) return false;\n break;\n case '=':\n if (cmp !== 0) return false;\n break;\n }\n }\n\n return true;\n}\n\n/**\n * Get the current platform version.\n */\nexport function getCurrentVersion(): SemVer {\n return PLATFORM_VERSION;\n}\n\n/**\n * Get the current policy version.\n */\nexport function getCurrentPolicyVersion(): SemVer {\n return POLICY_VERSION as SemVer;\n}\n\n/**\n * Get the current schema version.\n */\nexport function getCurrentSchemaVersion(): SemVer {\n return SCHEMA_VERSION;\n}\n\n// -----------------------------------------------------------------------------\n// Configuration Versioning Utilities\n// -----------------------------------------------------------------------------\n\n/**\n * Create a versioned configuration wrapper.\n *\n * @example\n * ```typescript\n * const config = createVersionedConfig(\n * { apiKey: 'xxx', timeout: 5000 },\n * '1.0.0'\n * );\n * ```\n */\nexport function createVersionedConfig<T>(\n data: T,\n schemaVersion: SemVer = SCHEMA_VERSION,\n): VersionedConfig<T> {\n const now = new Date();\n return {\n schemaVersion,\n data,\n createdAt: now,\n updatedAt: now,\n hash: computeConfigHash(data),\n };\n}\n\n/**\n * Update a versioned configuration.\n *\n * @example\n * ```typescript\n * const updated = updateVersionedConfig(config, { timeout: 10000 });\n * ```\n */\nexport function updateVersionedConfig<T>(\n config: VersionedConfig<T>,\n updates: Partial<T>,\n): VersionedConfig<T> {\n const data = { ...config.data, ...updates };\n return {\n ...config,\n data,\n updatedAt: new Date(),\n hash: computeConfigHash(data),\n };\n}\n\n/**\n * Migrate a versioned configuration to a new schema version.\n *\n * @example\n * ```typescript\n * const registry = createVersionRegistry();\n * const migrated = migrateVersionedConfig(config, '2.0.0', registry);\n * ```\n */\nexport function migrateVersionedConfig<T>(\n config: VersionedConfig<T>,\n targetVersion: SemVer,\n registry: VersionRegistry,\n): VersionedConfig<T> {\n if (config.schemaVersion === targetVersion) {\n return config;\n }\n\n const migratedData = registry.migrate<T>(config.data, config.schemaVersion, targetVersion);\n\n return {\n ...config,\n schemaVersion: targetVersion,\n data: migratedData,\n updatedAt: new Date(),\n hash: computeConfigHash(migratedData),\n };\n}\n\n/**\n * Validate a versioned configuration integrity.\n */\nexport function validateConfigIntegrity<T>(config: VersionedConfig<T>): boolean {\n if (!config.hash) return true; // No hash to validate\n return config.hash === computeConfigHash(config.data);\n}\n\n// -----------------------------------------------------------------------------\n// Default Registry\n// -----------------------------------------------------------------------------\n\n/** Default version registry with platform versions */\nexport const defaultRegistry = createVersionRegistry({\n versions: [\n {\n version: '1.0.0',\n releasedAt: new Date('2024-01-01'),\n deprecated: false,\n features: ['Initial release', 'Basic policy support', 'ABAC compliance'],\n },\n {\n version: '2.0.0',\n releasedAt: new Date('2024-06-01'),\n deprecated: false,\n breakingChanges: ['New policy schema', 'Updated compliance validators'],\n features: ['Advanced guardrails', 'Adaptive caching', 'Multi-tenant support'],\n },\n ],\n migrations: [\n {\n fromVersion: '1.0.0',\n toVersion: '2.0.0',\n description: 'Migrate from v1 to v2 schema',\n migrate: (config: unknown) => {\n // Default migration - adds default values for new fields\n return {\n ...(config as object),\n policyVersion: '2.0.0',\n migratedAt: new Date().toISOString(),\n };\n },\n },\n ],\n});\n\n// -----------------------------------------------------------------------------\n// Utility Functions\n// -----------------------------------------------------------------------------\n\nfunction computeConfigHash(data: unknown): string {\n // Simple hash for integrity checking\n const str = JSON.stringify(data, Object.keys(data as object).sort());\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // Convert to 32-bit integer\n }\n return Math.abs(hash).toString(16).padStart(8, '0');\n}\n","/**\n * @fileoverview Audit entry schemas and validation\n * Audit entry schemas and validation\n * Ensures structured, machine-readable audit logs for FDA/SOC2\n */\n\nimport { z } from 'zod';\n\n/**\n * Audit action types\n */\nexport const AuditActionSchema = z.enum([\n 'generation',\n 'generative_ui',\n 'tool_call',\n 'redaction',\n 'policy_check',\n 'abac_decision',\n 'approval_request',\n 'approval_granted',\n 'approval_denied',\n]);\n\n/**\n * ABAC decision schema\n */\nexport const ABACDecisionSchema = z.object({\n allowed: z.boolean(),\n reason: z.string().optional(),\n conditions: z.array(z.string()).optional(),\n policyId: z.string(),\n});\n\n/**\n * Core audit entry schema\n */\nexport const AuditEntrySchema = z.object({\n id: z.string().optional(), // Generated by logger\n timestamp: z.string(), // ISO 8601\n actor: z.string(), // User/Agent ID\n action: AuditActionSchema,\n input_hash: z.string(), // SHA-256 hash\n output_snapshot: z.unknown(), // Flexible structured output\n policy_version: z.string(),\n abac_decision: ABACDecisionSchema.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n signature: z.string(), // HMAC signature\n});\n\n/**\n * Audit query filter schema\n */\nexport const AuditQueryFilterSchema = z.object({\n actor: z.string().optional(),\n action: AuditActionSchema.optional(),\n startDate: z.date().optional(),\n endDate: z.date().optional(),\n limit: z.number().positive().max(1000).default(100),\n offset: z.number().nonnegative().default(0),\n});\n\n/**\n * Type exports\n */\nexport type AuditAction = z.infer<typeof AuditActionSchema>;\nexport type ABACDecision = z.infer<typeof ABACDecisionSchema>;\nexport type AuditEntry = z.infer<typeof AuditEntrySchema>;\nexport type AuditQueryFilter = z.infer<typeof AuditQueryFilterSchema>;\n\n/**\n * Validate audit entry\n */\nexport function validateAuditEntry(entry: unknown): AuditEntry {\n return AuditEntrySchema.parse(entry);\n}\n\n/**\n * Validate query filter\n */\nexport function validateQueryFilter(filter: unknown): AuditQueryFilter {\n return AuditQueryFilterSchema.parse(filter);\n}\n","/**\n * @fileoverview Audit Logger Implementation\n * Audit Logger Implementation\n * Creates immutable, cryptographically signed audit trail\n */\n\nimport { logInfo, logWarn } from '@repo/shared/logs';\n\nimport { generateSignature, hashInput } from '../../server/cache/crypto';\nimport { POLICY_VERSION } from '../versioning';\n\nimport { validateAuditEntry } from './audit-schema';\n\nimport type { AuditEntry, AuditLogger, AuditQueryFilter } from '../types';\n\n/**\n * In-memory audit logger (for development)\n * In production, replace with persistent storage (PostgreSQL, Redis, S3)\n */\nclass InMemoryAuditLogger implements AuditLogger {\n private entries: AuditEntry[] = [];\n private readonly maxEntries: number;\n\n constructor(maxEntries: number = 10000) {\n this.maxEntries = maxEntries;\n }\n\n async log(entry: Omit<AuditEntry, 'timestamp' | 'signature'>): Promise<void> {\n const timestamp = new Date().toISOString();\n\n // Create entry with timestamp\n const entryWithTimestamp = {\n ...entry,\n timestamp,\n };\n\n // Generate signature\n const signature = await generateSignature(entryWithTimestamp);\n\n // Complete entry\n const completeEntry: AuditEntry = {\n ...entryWithTimestamp,\n signature,\n };\n\n // Validate\n validateAuditEntry(completeEntry);\n\n // Store (append-only)\n this.entries.push(completeEntry);\n\n // Enforce retention limit (in production, use proper archival)\n if (this.entries.length > this.maxEntries) {\n this.entries.shift(); // Remove oldest\n }\n\n // Log to console in development\n if (process.env.NODE_ENV === 'development') {\n logInfo('[AUDIT]', {\n action: completeEntry.action,\n actor: completeEntry.actor,\n timestamp: completeEntry.timestamp,\n });\n }\n }\n\n async query(filter: AuditQueryFilter): Promise<AuditEntry[]> {\n // Clone entries to prevent external mutation\n let results = this.entries.map(entry => structuredClone(entry));\n\n // Filter by actor\n if (filter.actor) {\n results = results.filter(e => e.actor === filter.actor);\n }\n\n // Filter by action\n if (filter.action) {\n results = results.filter(e => e.action === filter.action);\n }\n\n // Filter by date range\n const { startDate, endDate } = filter;\n if (startDate) {\n results = results.filter(e => new Date(e.timestamp) >= startDate);\n }\n if (endDate) {\n results = results.filter(e => new Date(e.timestamp) <= endDate);\n }\n\n // Apply limit\n const limit = filter.limit ?? 100;\n return results.slice(0, limit);\n }\n\n /**\n * Get all entries (for development/testing)\n */\n async getAll(): Promise<AuditEntry[]> {\n // Return deep clones to prevent external mutation\n return this.entries.map(entry => structuredClone(entry));\n }\n\n /**\n * Clear all entries (for testing only)\n */\n async clear(): Promise<void> {\n this.entries = [];\n }\n}\n\n/**\n * Console-only audit logger (for demos)\n */\nclass ConsoleAuditLogger implements AuditLogger {\n async log(entry: Omit<AuditEntry, 'timestamp' | 'signature'>): Promise<void> {\n const timestamp = new Date().toISOString();\n const signature = await generateSignature({ ...entry, timestamp });\n\n const completeEntry = {\n ...entry,\n timestamp,\n signature,\n };\n\n logInfo('[AUDIT LOG]', { entry: completeEntry });\n }\n\n async query(filter: AuditQueryFilter): Promise<AuditEntry[]> {\n void filter;\n logWarn('[AUDIT] ConsoleAuditLogger does not support querying');\n return [];\n }\n}\n\n/**\n * Create an audit logger instance\n */\nexport function createAuditLogger(type: 'memory' | 'console' = 'memory'): AuditLogger {\n switch (type) {\n case 'console':\n return new ConsoleAuditLogger();\n case 'memory':\n default:\n return new InMemoryAuditLogger();\n }\n}\n\n/**\n * Global audit logger instance\n */\nlet globalLogger: AuditLogger | null = null;\n\n/**\n * Get or create global audit logger\n */\nexport function getAuditLogger(): AuditLogger {\n if (!globalLogger) {\n globalLogger = createAuditLogger('memory');\n }\n return globalLogger;\n}\n\n/**\n * Set global audit logger\n */\nexport function setAuditLogger(logger: AuditLogger): void {\n globalLogger = logger;\n}\n\n/**\n * Helper to log a generation event\n */\nexport async function logGeneration(\n actor: string,\n input: string,\n output: unknown,\n metadata?: Record<string, unknown>,\n): Promise<void> {\n const logger = getAuditLogger();\n const input_hash = await hashInput(input);\n\n await logger.log({\n actor,\n action: 'generation',\n input_hash,\n output_snapshot: output,\n policy_version: POLICY_VERSION,\n metadata,\n });\n}\n\n/**\n * Helper to log a tool call event\n */\nexport async function logToolCall(\n actor: string,\n toolName: string,\n args: unknown,\n result: unknown,\n metadata?: Record<string, unknown>,\n): Promise<void> {\n const logger = getAuditLogger();\n const input_hash = await hashInput(JSON.stringify(args));\n\n await logger.log({\n actor,\n action: 'tool_call',\n input_hash,\n output_snapshot: {\n tool: toolName,\n args,\n result,\n },\n policy_version: POLICY_VERSION,\n metadata,\n });\n}\n\n/**\n * Helper to log a redaction event\n */\nexport async function logRedaction(\n actor: string,\n detections: unknown,\n metadata?: Record<string, unknown>,\n): Promise<void> {\n const logger = getAuditLogger();\n\n await logger.log({\n actor,\n action: 'redaction',\n input_hash: 'n/a', // Don't hash PHI\n output_snapshot: {\n detections,\n },\n policy_version: POLICY_VERSION,\n metadata,\n });\n}\n"],"mappings":"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"}