@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,438 @@
1
+ import { n as hashInput } from "./crypto-8ABhc3TD.mjs";
2
+ import { createHash } from "node:crypto";
3
+
4
+ //#region src/governance/compliance/abac/policy-engine.ts
5
+ /**
6
+ * Global policy registry
7
+ */
8
+ const policyRegistry = /* @__PURE__ */ new Map();
9
+ /**
10
+ * Register a policy
11
+ */
12
+ function registerPolicy(policy) {
13
+ policyRegistry.set(policy.id, policy);
14
+ }
15
+ /**
16
+ * Unregister a policy
17
+ */
18
+ function unregisterPolicy(policyId) {
19
+ policyRegistry.delete(policyId);
20
+ }
21
+ /**
22
+ * Get all registered policies
23
+ */
24
+ function getPolicies() {
25
+ return [...policyRegistry.values()].sort((a, b) => b.priority - a.priority);
26
+ }
27
+ /**
28
+ * Evaluate access decision using all registered policies
29
+ * Policies are evaluated in priority order (highest first)
30
+ * First DENY wins, otherwise all must ALLOW
31
+ */
32
+ async function evaluatePolicy(context, resource, action) {
33
+ const startTime = Date.now();
34
+ const policiesEvaluated = [];
35
+ const policies = getPolicies();
36
+ if (policies.length === 0) return {
37
+ decision: {
38
+ allowed: false,
39
+ reason: "No policies configured",
40
+ policyId: "default-deny"
41
+ },
42
+ policiesEvaluated: [],
43
+ evaluationTimeMs: Date.now() - startTime
44
+ };
45
+ for (const policy of policies) {
46
+ policiesEvaluated.push(policy.id);
47
+ try {
48
+ const decision = await policy.evaluate(context, resource, action);
49
+ if (!decision.allowed) return {
50
+ decision,
51
+ policiesEvaluated,
52
+ evaluationTimeMs: Date.now() - startTime
53
+ };
54
+ } catch (error) {
55
+ return {
56
+ decision: {
57
+ allowed: false,
58
+ reason: `Policy evaluation error: ${error instanceof Error ? error.message : "Unknown error"}`,
59
+ policyId: policy.id
60
+ },
61
+ policiesEvaluated,
62
+ evaluationTimeMs: Date.now() - startTime
63
+ };
64
+ }
65
+ }
66
+ return {
67
+ decision: {
68
+ allowed: true,
69
+ policyId: "all-policies-allowed"
70
+ },
71
+ policiesEvaluated,
72
+ evaluationTimeMs: Date.now() - startTime
73
+ };
74
+ }
75
+ /**
76
+ * Create ABAC context from request metadata
77
+ */
78
+ function createABACContext(actorId, roles, purpose, attributes = {}, environment = {}) {
79
+ return {
80
+ actor: {
81
+ id: actorId,
82
+ roles,
83
+ attributes
84
+ },
85
+ environment: {
86
+ timestamp: /* @__PURE__ */ new Date(),
87
+ ...environment
88
+ },
89
+ purpose
90
+ };
91
+ }
92
+ /**
93
+ * Helper: Check if actor has role
94
+ */
95
+ function hasRole(context, role) {
96
+ return context.actor.roles.includes(role);
97
+ }
98
+ /**
99
+ * Helper: Check if actor has any of the roles
100
+ */
101
+ function hasAnyRole(context, roles) {
102
+ return roles.some((role) => context.actor.roles.includes(role));
103
+ }
104
+ /**
105
+ * Helper: Check if actor has all of the roles
106
+ */
107
+ function hasAllRoles(context, roles) {
108
+ return roles.every((role) => context.actor.roles.includes(role));
109
+ }
110
+ /**
111
+ * Helper: Check resource sensitivity level
112
+ */
113
+ function isResourceSensitive(resource) {
114
+ return resource.sensitivity === "confidential" || resource.sensitivity === "restricted";
115
+ }
116
+ /**
117
+ * Helper: Create ALLOW decision
118
+ */
119
+ function allow(policyId, conditions) {
120
+ return {
121
+ allowed: true,
122
+ policyId,
123
+ conditions
124
+ };
125
+ }
126
+ /**
127
+ * Helper: Create DENY decision
128
+ */
129
+ function deny(policyId, reason) {
130
+ return {
131
+ allowed: false,
132
+ policyId,
133
+ reason
134
+ };
135
+ }
136
+
137
+ //#endregion
138
+ //#region src/server/cache/performance.ts
139
+ /**
140
+ * @fileoverview Performance optimization helper functions
141
+ * Provides caching for expensive operations like PHI detection
142
+ */
143
+ /**
144
+ * In-memory cache for detection results
145
+ * In production, consider using Redis or another distributed cache
146
+ */
147
+ const detectionCache = /* @__PURE__ */ new Map();
148
+ /**
149
+ * Cache detection results for a given input
150
+ * @param input - Input data that was analyzed
151
+ * @param result - Detection results to cache
152
+ * @param ttl - Time to live in milliseconds (default: 1 hour)
153
+ */
154
+ function cacheDetections(input, result, ttl = 36e5) {
155
+ const key = hashInput(input);
156
+ detectionCache.set(key, {
157
+ result,
158
+ timestamp: Date.now(),
159
+ ttl
160
+ });
161
+ setTimeout(() => {
162
+ detectionCache.delete(key);
163
+ }, ttl);
164
+ }
165
+ /**
166
+ * Get cached detection results for a given input
167
+ * @param input - Input data to look up
168
+ * @returns Cached results if available and not expired, otherwise undefined
169
+ */
170
+ function getCachedDetections(input) {
171
+ const key = hashInput(input);
172
+ const cached = detectionCache.get(key);
173
+ if (!cached) return;
174
+ const entry = cached;
175
+ if (Date.now() - entry.timestamp > entry.ttl) {
176
+ detectionCache.delete(key);
177
+ return;
178
+ }
179
+ return entry.result;
180
+ }
181
+
182
+ //#endregion
183
+ //#region src/governance/compliance/validators/safe-harbor.ts
184
+ /**
185
+ * Regex patterns for detecting HIPAA Safe Harbor identifiers
186
+ * Note: These are basic patterns and should be enhanced with NER for production
187
+ *
188
+ * Security note: Some patterns below use eslint-disable for detect-unsafe-regex.
189
+ * These patterns have been reviewed and are safe in this context because:
190
+ * 1. Input text is validated and length-limited before processing
191
+ * 2. The patterns match specific, bounded structures (phone numbers, IPs, etc.)
192
+ * 3. The nested quantifiers are necessary for real-world format variations
193
+ */
194
+ const SAFE_HARBOR_PATTERNS = {
195
+ ssn: /\b\d{3}-\d{2}-\d{4}\b|\b\d{9}\b/g,
196
+ mrn: /\b(?:mrn|medical record|patient id)[\s#:]*([\da-z]{6,10})\b/gi,
197
+ phone: /\b(?:\+?1[\s.-]?)?\(?(\d{3})\)?[\s.-]?(\d{3})[\s.-]?(\d{4})\b/g,
198
+ fax: /\b(?:fax|facsimile)[\s:]*(?:\+?1[\s.-]?)?\(?(\d{3})\)?[\s.-]?(\d{3})[\s.-]?(\d{4})\b/gi,
199
+ email: /\b[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z|]{2,}\b/g,
200
+ ip_address: /\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|(?:[\da-f]{1,4}:){7}[\da-f]{1,4}/gi,
201
+ url: /\bhttps?:\/\/(?:w{3}\.)?[\w#%+.:=@~-]{1,256}\.[\d()a-z]{1,6}\b[\w#%&()+./:=?@~-]*/gi,
202
+ date: /\b(?:0?[1-9]|1[0-2])[./\-](?:0?[1-9]|[12]\d|3[01])[./\-](?:19|20)\d{2}\b|\b(?:19|20)\d{2}[./\-](?:0?[1-9]|1[0-2])[./\-](?:0?[1-9]|[12]\d|3[01])\b/g,
203
+ name: /\b(?:mr\.|mrs\.|ms\.|dr\.|prof\.)(?:\s+[A-Z][a-z]+)+\b/g,
204
+ geographic: /\b\d+\s+(?:[a-z]{2,}\s+){1,3}(?:street|st|avenue|ave|road|rd|drive|dr|lane|ln|court|ct|circle|cir|way|boulevard|blvd|parkway|pkwy|place|pl)\b/gi,
205
+ account_number: /\b(?:account|acct|policy)[\s#:]*(\d{8,16})\b/gi,
206
+ license_number: /\b(?:license|lic|dl)[\s#:]*([a-z]{2}\d{6,12})\b/gi,
207
+ vehicle_id: /\bvin[\s#:]*([\da-hj-npr-z]{17})\b/gi,
208
+ device_id: /\b(?:[\da-f]{2}[:-]){5}[\da-f]{2}\b|\b[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}\b/gi,
209
+ biometric: /\b(?:fingerprint|voiceprint|retina scan|iris scan|facial recognition|biometric)\b/gi,
210
+ photo: /\b(?:photo|photograph|image|picture)\s+(?:of|showing|depicting)\b/gi,
211
+ other_unique_id: /\b(?:id|identifier|code)[\s#:]*([\da-z\-]{8,})\b/gi
212
+ };
213
+ /**
214
+ * High-confidence patterns that are almost certainly PHI
215
+ */
216
+ const HIGH_CONFIDENCE_PATTERNS = {
217
+ ssn: SAFE_HARBOR_PATTERNS.ssn,
218
+ email: SAFE_HARBOR_PATTERNS.email,
219
+ phone: SAFE_HARBOR_PATTERNS.phone,
220
+ ip_address: SAFE_HARBOR_PATTERNS.ip_address,
221
+ url: SAFE_HARBOR_PATTERNS.url
222
+ };
223
+ /**
224
+ * Get confidence score for a PHI type
225
+ * Higher score = more certain it's actually PHI
226
+ */
227
+ function getConfidenceScore(type, value) {
228
+ if (type in HIGH_CONFIDENCE_PATTERNS) return .95;
229
+ if (type === "name" || type === "geographic" || type === "date") return .6;
230
+ return .4;
231
+ }
232
+ /**
233
+ * Check if a pattern match is likely a false positive
234
+ */
235
+ function isFalsePositive(type, value) {
236
+ if (type === "date" && /^\d{4}$/.test(value.trim())) return true;
237
+ if (type === "name") return [
238
+ "The",
239
+ "This",
240
+ "That",
241
+ "These",
242
+ "Those"
243
+ ].some((word) => value.includes(word));
244
+ if (type === "account_number" && /^(0+|1+|12345678)$/.test(value)) return true;
245
+ return false;
246
+ }
247
+
248
+ //#endregion
249
+ //#region src/governance/compliance/validators/phi-detector.ts
250
+ /**
251
+ * @fileoverview PHI Detection Engine
252
+ * PHI Detection Engine
253
+ * Scans text for HIPAA Safe Harbor 18 identifiers
254
+ * Includes performance caching for repeated detections
255
+ */
256
+ /**
257
+ * Detect PHI in text using regex patterns
258
+ * Returns array of detections with positions and confidence scores
259
+ * Results are cached for performance
260
+ */
261
+ function detectPHI(text, options = {}) {
262
+ const { minConfidence = .5, excludeTypes = [], useCache = true } = options;
263
+ if (useCache) {
264
+ const cached = getCachedDetections(text);
265
+ if (cached) return cached.filter((d) => d.confidence >= minConfidence && !excludeTypes.includes(d.type));
266
+ }
267
+ const detections = [];
268
+ for (const [type, pattern] of Object.entries(SAFE_HARBOR_PATTERNS)) {
269
+ const phiType = type;
270
+ if (excludeTypes.includes(phiType)) continue;
271
+ pattern.lastIndex = 0;
272
+ let match;
273
+ while ((match = pattern.exec(text)) !== null) {
274
+ const value = match[0];
275
+ const start = match.index;
276
+ const end = start + value.length;
277
+ const confidence = getConfidenceScore(phiType, value);
278
+ if (confidence < minConfidence || isFalsePositive(phiType, value)) continue;
279
+ detections.push({
280
+ type: phiType,
281
+ value,
282
+ start,
283
+ end,
284
+ confidence
285
+ });
286
+ }
287
+ }
288
+ const sorted = detections.sort((a, b) => a.start - b.start);
289
+ if (useCache) cacheDetections(text, sorted);
290
+ return sorted;
291
+ }
292
+ /**
293
+ * Check if text contains any PHI
294
+ */
295
+ function containsPHI(text, options) {
296
+ return detectPHI(text, options).length > 0;
297
+ }
298
+ /**
299
+ * Get PHI statistics for text
300
+ */
301
+ function analyzePHI(text) {
302
+ const detections = detectPHI(text);
303
+ const byType = detections.reduce((acc, d) => {
304
+ acc[d.type] = (acc[d.type] || 0) + 1;
305
+ return acc;
306
+ }, {});
307
+ const averageConfidence = detections.length > 0 ? detections.reduce((sum, d) => sum + d.confidence, 0) / detections.length : 0;
308
+ return {
309
+ hasPHI: detections.length > 0,
310
+ totalDetections: detections.length,
311
+ byType,
312
+ averageConfidence
313
+ };
314
+ }
315
+ /**
316
+ * Validate that text is Safe Harbor compliant
317
+ * Returns true if no PHI detected above threshold
318
+ */
319
+ function isSafeHarborCompliant(text, minConfidence = .7) {
320
+ const violations = detectPHI(text, { minConfidence });
321
+ return {
322
+ compliant: violations.length === 0,
323
+ violations
324
+ };
325
+ }
326
+
327
+ //#endregion
328
+ //#region src/governance/compliance/validators/redaction-utils.ts
329
+ /**
330
+ * @fileoverview PHI Redaction Utilities
331
+ * PHI Redaction Utilities
332
+ * Implements different redaction strategies for HIPAA compliance
333
+ */
334
+ /**
335
+ * Redact PHI from text using specified strategy
336
+ */
337
+ function redactPHI(text, strategy = "MASK", options = {}) {
338
+ const { customMask = "[REDACTED]", preserveLength = false, minConfidence } = options;
339
+ const detections = detectPHI(text, { minConfidence });
340
+ if (detections.length === 0) return {
341
+ redacted: text,
342
+ detections: []
343
+ };
344
+ let redacted = text;
345
+ const sortedDetections = [...detections].sort((a, b) => b.start - a.start);
346
+ for (const detection of sortedDetections) {
347
+ const { start, end, value, type } = detection;
348
+ const replacement = getRedactionReplacement(value, type, strategy, customMask, preserveLength);
349
+ redacted = redacted.slice(0, start) + replacement + redacted.slice(end);
350
+ }
351
+ return {
352
+ redacted,
353
+ detections
354
+ };
355
+ }
356
+ /**
357
+ * Get replacement text for a detected PHI value
358
+ */
359
+ function getRedactionReplacement(value, type, strategy, customMask, preserveLength) {
360
+ switch (strategy) {
361
+ case "MASK":
362
+ if (preserveLength) return "*".repeat(value.length);
363
+ return customMask;
364
+ case "HASH": return `[${type.toUpperCase()}_${hashString(value)}]`;
365
+ case "TOKENIZE": return `[TOKEN_${type.toUpperCase()}_${generateToken(value)}]`;
366
+ default: return customMask;
367
+ }
368
+ }
369
+ /**
370
+ * Cryptographically hash a string for HASH strategy
371
+ * Uses SHA-256 for consistent, secure hashing
372
+ */
373
+ function hashString(value) {
374
+ return createHash("sha256").update(value).digest("hex").slice(0, 8).toUpperCase();
375
+ }
376
+ /**
377
+ * Generate a reversible token (simplified - use proper tokenization in production)
378
+ */
379
+ function generateToken(value) {
380
+ return Buffer.from(value).toString("base64").slice(0, 12);
381
+ }
382
+ /**
383
+ * Redact specific PHI types only
384
+ */
385
+ function redactSpecificTypes(text, types, strategy = "MASK") {
386
+ const filteredDetections = detectPHI(text).filter((d) => types.includes(d.type));
387
+ let redacted = text;
388
+ const sortedDetections = [...filteredDetections].sort((a, b) => b.start - a.start);
389
+ for (const detection of sortedDetections) {
390
+ const { start, end, value, type } = detection;
391
+ const replacement = getRedactionReplacement(value, type, strategy, "[REDACTED]", false);
392
+ redacted = redacted.slice(0, start) + replacement + redacted.slice(end);
393
+ }
394
+ return {
395
+ redacted,
396
+ detections: filteredDetections
397
+ };
398
+ }
399
+ /**
400
+ * Preview redactions without applying them
401
+ */
402
+ function previewRedactions(text) {
403
+ const detections = detectPHI(text);
404
+ let preview = text;
405
+ const sortedDetections = [...detections].sort((a, b) => b.start - a.start);
406
+ for (const detection of sortedDetections) {
407
+ const { start, end, type } = detection;
408
+ const replacement = `[${type.toUpperCase()}]`;
409
+ preview = preview.slice(0, start) + replacement + preview.slice(end);
410
+ }
411
+ const byType = detections.reduce((acc, d) => {
412
+ acc[d.type] = (acc[d.type] || 0) + 1;
413
+ return acc;
414
+ }, {});
415
+ return {
416
+ original: text,
417
+ preview,
418
+ detections,
419
+ stats: {
420
+ totalPHI: detections.length,
421
+ byType
422
+ }
423
+ };
424
+ }
425
+ /**
426
+ * Sanitize text for logging (aggressive redaction)
427
+ */
428
+ function sanitizeForLogging(text) {
429
+ const { redacted } = redactPHI(text, "MASK", {
430
+ customMask: "[REDACTED]",
431
+ minConfidence: .3
432
+ });
433
+ return redacted;
434
+ }
435
+
436
+ //#endregion
437
+ export { unregisterPolicy as C, registerPolicy as S, getPolicies as _, analyzePHI as a, hasRole as b, isSafeHarborCompliant as c, getConfidenceScore as d, isFalsePositive as f, evaluatePolicy as g, deny as h, sanitizeForLogging as i, HIGH_CONFIDENCE_PATTERNS as l, createABACContext as m, redactPHI as n, containsPHI as o, allow as p, redactSpecificTypes as r, detectPHI as s, previewRedactions as t, SAFE_HARBOR_PATTERNS as u, hasAllRoles as v, isResourceSensitive as x, hasAnyRole as y };
438
+ //# sourceMappingURL=redaction-utils-DcQwsiNh.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction-utils-DcQwsiNh.mjs","names":[],"sources":["../src/governance/compliance/abac/policy-engine.ts","../src/server/cache/performance.ts","../src/governance/compliance/validators/safe-harbor.ts","../src/governance/compliance/validators/phi-detector.ts","../src/governance/compliance/validators/redaction-utils.ts"],"sourcesContent":["/**\n * @fileoverview ABAC Policy Engine\n * ABAC Policy Engine\n * Implements Attribute-Based Access Control for HIPAA minimum necessary\n */\n\nimport type { ABACContext, ABACDecision, Action, Resource } from '../types';\nimport type { ABACEvaluationResult, Policy, PolicyRegistry } from './types';\n\n/**\n * Global policy registry\n */\nconst policyRegistry: PolicyRegistry = new Map();\n\n/**\n * Register a policy\n */\nexport function registerPolicy(policy: Policy): void {\n policyRegistry.set(policy.id, policy);\n}\n\n/**\n * Unregister a policy\n */\nexport function unregisterPolicy(policyId: string): void {\n policyRegistry.delete(policyId);\n}\n\n/**\n * Get all registered policies\n */\nexport function getPolicies(): Policy[] {\n return [...policyRegistry.values()].sort((a, b) => b.priority - a.priority);\n}\n\n/**\n * Evaluate access decision using all registered policies\n * Policies are evaluated in priority order (highest first)\n * First DENY wins, otherwise all must ALLOW\n */\nexport async function evaluatePolicy(\n context: ABACContext,\n resource: Resource,\n action: Action,\n): Promise<ABACEvaluationResult> {\n const startTime = Date.now();\n const policiesEvaluated: string[] = [];\n const policies = getPolicies();\n\n // Default deny if no policies\n if (policies.length === 0) {\n return {\n decision: {\n allowed: false,\n reason: 'No policies configured',\n policyId: 'default-deny',\n },\n policiesEvaluated: [],\n evaluationTimeMs: Date.now() - startTime,\n };\n }\n\n // Evaluate each policy\n for (const policy of policies) {\n policiesEvaluated.push(policy.id);\n\n try {\n const decision = await policy.evaluate(context, resource, action);\n\n // First explicit DENY wins\n if (!decision.allowed) {\n return {\n decision,\n policiesEvaluated,\n evaluationTimeMs: Date.now() - startTime,\n };\n }\n } catch (error) {\n // Policy evaluation error = DENY\n return {\n decision: {\n allowed: false,\n reason: `Policy evaluation error: ${error instanceof Error ? error.message : 'Unknown error'}`,\n policyId: policy.id,\n },\n policiesEvaluated,\n evaluationTimeMs: Date.now() - startTime,\n };\n }\n }\n\n // All policies allowed\n return {\n decision: {\n allowed: true,\n policyId: 'all-policies-allowed',\n },\n policiesEvaluated,\n evaluationTimeMs: Date.now() - startTime,\n };\n}\n\n/**\n * Create ABAC context from request metadata\n */\nexport function createABACContext(\n actorId: string,\n roles: string[],\n purpose: ABACContext['purpose'],\n attributes: Record<string, unknown> = {},\n environment: Partial<ABACContext['environment']> = {},\n): ABACContext {\n return {\n actor: {\n id: actorId,\n roles,\n attributes,\n },\n environment: {\n timestamp: new Date(),\n ...environment,\n },\n purpose,\n };\n}\n\n/**\n * Helper: Check if actor has role\n */\nexport function hasRole(context: ABACContext, role: string): boolean {\n return context.actor.roles.includes(role);\n}\n\n/**\n * Helper: Check if actor has any of the roles\n */\nexport function hasAnyRole(context: ABACContext, roles: string[]): boolean {\n return roles.some(role => context.actor.roles.includes(role));\n}\n\n/**\n * Helper: Check if actor has all of the roles\n */\nexport function hasAllRoles(context: ABACContext, roles: string[]): boolean {\n return roles.every(role => context.actor.roles.includes(role));\n}\n\n/**\n * Helper: Check resource sensitivity level\n */\nexport function isResourceSensitive(resource: Resource): boolean {\n return resource.sensitivity === 'confidential' || resource.sensitivity === 'restricted';\n}\n\n/**\n * Helper: Create ALLOW decision\n */\nexport function allow(policyId: string, conditions?: string[]): ABACDecision {\n return {\n allowed: true,\n policyId,\n conditions,\n };\n}\n\n/**\n * Helper: Create DENY decision\n */\nexport function deny(policyId: string, reason: string): ABACDecision {\n return {\n allowed: false,\n policyId,\n reason,\n };\n}\n","/**\n * @fileoverview Performance optimization helper functions\n * Provides caching for expensive operations like PHI detection\n */\n\nimport { hashInput } from './crypto';\n\n/**\n * In-memory cache for detection results\n * In production, consider using Redis or another distributed cache\n */\nconst detectionCache = new Map<string, unknown>();\n\n/**\n * Cache detection results for a given input\n * @param input - Input data that was analyzed\n * @param result - Detection results to cache\n * @param ttl - Time to live in milliseconds (default: 1 hour)\n */\nexport function cacheDetections<T>(\n input: string | Record<string, unknown>,\n result: T,\n ttl: number = 3600000,\n): void {\n const key = hashInput(input);\n detectionCache.set(key, {\n result,\n timestamp: Date.now(),\n ttl,\n });\n\n // Auto-cleanup expired entries\n setTimeout(() => {\n detectionCache.delete(key);\n }, ttl);\n}\n\n/**\n * Get cached detection results for a given input\n * @param input - Input data to look up\n * @returns Cached results if available and not expired, otherwise undefined\n */\nexport function getCachedDetections<T>(input: string | Record<string, unknown>): T | undefined {\n const key = hashInput(input);\n const cached = detectionCache.get(key);\n\n if (!cached) {\n return undefined;\n }\n\n const entry = cached as { result: T; timestamp: number; ttl: number };\n const isExpired = Date.now() - entry.timestamp > entry.ttl;\n\n if (isExpired) {\n detectionCache.delete(key);\n return undefined;\n }\n\n return entry.result;\n}\n\n/**\n * Clear all cached detections\n * Useful for testing or memory management\n */\nexport function clearDetectionCache(): void {\n detectionCache.clear();\n}\n\n/**\n * Get cache statistics\n * @returns Object with cache size and entries\n */\nexport function getCacheStats() {\n return {\n size: detectionCache.size,\n keys: Array.from(detectionCache.keys()),\n };\n}\n","/**\n * @fileoverview HIPAA Safe Harbor 18 - Regex patterns for PHI detection\n * HIPAA Safe Harbor 18 - Regex patterns for PHI detection\n * Reference: 45 CFR § 164.514(b)(2)\n */\n\nimport type { PHIType } from '../types';\n\n/**\n * Regex patterns for detecting HIPAA Safe Harbor identifiers\n * Note: These are basic patterns and should be enhanced with NER for production\n *\n * Security note: Some patterns below use eslint-disable for detect-unsafe-regex.\n * These patterns have been reviewed and are safe in this context because:\n * 1. Input text is validated and length-limited before processing\n * 2. The patterns match specific, bounded structures (phone numbers, IPs, etc.)\n * 3. The nested quantifiers are necessary for real-world format variations\n */\nexport const SAFE_HARBOR_PATTERNS: Record<PHIType, RegExp> = {\n // SSN: xxx-xx-xxxx or xxxxxxxxx\n ssn: /\\b\\d{3}-\\d{2}-\\d{4}\\b|\\b\\d{9}\\b/g,\n\n // MRN: Common medical record number formats (6-10 digits, sometimes with prefix)\n mrn: /\\b(?:mrn|medical record|patient id)[\\s#:]*([\\da-z]{6,10})\\b/gi,\n\n // Phone: (xxx) xxx-xxxx, xxx-xxx-xxxx, xxx.xxx.xxxx\n // eslint-disable-next-line security/detect-unsafe-regex -- Pattern is bounded by digit groups, safe for phone number matching\n phone: /\\b(?:\\+?1[\\s.-]?)?\\(?(\\d{3})\\)?[\\s.-]?(\\d{3})[\\s.-]?(\\d{4})\\b/g,\n\n // Fax: Similar to phone\n // eslint-disable-next-line security/detect-unsafe-regex -- Pattern is bounded by digit groups, safe for fax number matching\n fax: /\\b(?:fax|facsimile)[\\s:]*(?:\\+?1[\\s.-]?)?\\(?(\\d{3})\\)?[\\s.-]?(\\d{3})[\\s.-]?(\\d{4})\\b/gi,\n\n // Email: Basic email pattern\n email: /\\b[\\w%+.-]+@[\\d.A-Za-z-]+\\.[A-Za-z|]{2,}\\b/g,\n\n // IP Address: IPv4 and basic IPv6\n // Pattern matches fixed-structure IP addresses with bounded repetitions\n ip_address:\n /\\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|(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}/gi, // eslint-disable-line security/detect-unsafe-regex\n\n // URL: Web URLs\n // eslint-disable-next-line security/detect-unsafe-regex -- URL pattern has explicit length limits (1,256 and 1,6) preventing ReDoS\n url: /\\bhttps?:\\/\\/(?:w{3}\\.)?[\\w#%+.:=@~-]{1,256}\\.[\\d()a-z]{1,6}\\b[\\w#%&()+./:=?@~-]*/gi,\n\n // Dates: MM/DD/YYYY, MM-DD-YYYY, YYYY-MM-DD, etc. (except standalone years)\n date: /\\b(?:0?[1-9]|1[0-2])[./\\-](?:0?[1-9]|[12]\\d|3[01])[./\\-](?:19|20)\\d{2}\\b|\\b(?:19|20)\\d{2}[./\\-](?:0?[1-9]|1[0-2])[./\\-](?:0?[1-9]|[12]\\d|3[01])\\b/g,\n\n // Names: Capitalized words (simple heuristic, should use NER in production)\n // This is a simplified pattern - in production, use Named Entity Recognition\n // eslint-disable-next-line security/detect-unsafe-regex -- Pattern matches title + name format with bounded word repetition (1-5 words typical)\n name: /\\b(?:mr\\.|mrs\\.|ms\\.|dr\\.|prof\\.)(?:\\s+[A-Z][a-z]+)+\\b/g,\n\n // Geographic: Specific addresses (simplified - requires NER for accuracy)\n // Matches: 123 Main St, 456 Oak Avenue, etc.\n\n geographic:\n /\\b\\d+\\s+(?:[a-z]{2,}\\s+){1,3}(?:street|st|avenue|ave|road|rd|drive|dr|lane|ln|court|ct|circle|cir|way|boulevard|blvd|parkway|pkwy|place|pl)\\b/gi, // eslint-disable-line security/detect-unsafe-regex\n\n // Account numbers: 8-16 digit sequences\n account_number: /\\b(?:account|acct|policy)[\\s#:]*(\\d{8,16})\\b/gi,\n\n // License numbers: State + digits (e.g., CA123456789)\n license_number: /\\b(?:license|lic|dl)[\\s#:]*([a-z]{2}\\d{6,12})\\b/gi,\n\n // Vehicle identifiers: VIN (17 characters)\n vehicle_id: /\\bvin[\\s#:]*([\\da-hj-npr-z]{17})\\b/gi,\n\n // Device identifiers: MAC addresses, UUIDs, serial numbers\n // eslint-disable-next-line security/detect-unsafe-regex -- Pattern matches fixed-structure MAC (6 octets) and UUID (8-4-4-4-12) formats\n device_id: /\\b(?:[\\da-f]{2}[:-]){5}[\\da-f]{2}\\b|\\b[\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12}\\b/gi,\n\n // Biometric: References to biometric data\n biometric: /\\b(?:fingerprint|voiceprint|retina scan|iris scan|facial recognition|biometric)\\b/gi,\n\n // Photo: References to photos\n photo: /\\b(?:photo|photograph|image|picture)\\s+(?:of|showing|depicting)\\b/gi,\n\n // Other unique identifiers: Generic patterns for IDs\n other_unique_id: /\\b(?:id|identifier|code)[\\s#:]*([\\da-z\\-]{8,})\\b/gi,\n};\n\n/**\n * High-confidence patterns that are almost certainly PHI\n */\nexport const HIGH_CONFIDENCE_PATTERNS: Partial<Record<PHIType, RegExp>> = {\n ssn: SAFE_HARBOR_PATTERNS.ssn,\n email: SAFE_HARBOR_PATTERNS.email,\n phone: SAFE_HARBOR_PATTERNS.phone,\n ip_address: SAFE_HARBOR_PATTERNS.ip_address,\n url: SAFE_HARBOR_PATTERNS.url,\n};\n\n/**\n * Get confidence score for a PHI type\n * Higher score = more certain it's actually PHI\n */\nexport function getConfidenceScore(type: PHIType, value: string): number {\n void value;\n // High confidence patterns\n if (type in HIGH_CONFIDENCE_PATTERNS) {\n return 0.95;\n }\n\n // Medium confidence patterns (require context)\n if (type === 'name' || type === 'geographic' || type === 'date') {\n return 0.6;\n }\n\n // Lower confidence - could be false positives\n return 0.4;\n}\n\n/**\n * Check if a pattern match is likely a false positive\n */\nexport function isFalsePositive(type: PHIType, value: string): boolean {\n // Dates: Allow standalone years\n if (type === 'date' && /^\\d{4}$/.test(value.trim())) {\n return true;\n }\n\n // Names: Filter out common words\n if (type === 'name') {\n const commonWords = ['The', 'This', 'That', 'These', 'Those'];\n return commonWords.some(word => value.includes(word));\n }\n\n // Account numbers: Filter out common test values\n if (type === 'account_number' && /^(0+|1+|12345678)$/.test(value)) {\n return true;\n }\n\n return false;\n}\n","/**\n * @fileoverview PHI Detection Engine\n * PHI Detection Engine\n * Scans text for HIPAA Safe Harbor 18 identifiers\n * Includes performance caching for repeated detections\n */\n\nimport { cacheDetections, getCachedDetections } from '../../../server/cache/performance';\n\nimport { SAFE_HARBOR_PATTERNS, getConfidenceScore, isFalsePositive } from './safe-harbor';\n\nimport type { PHIDetection, PHIType } from '../types';\n\n/**\n * Detect PHI in text using regex patterns\n * Returns array of detections with positions and confidence scores\n * Results are cached for performance\n */\nexport function detectPHI(\n text: string,\n options: {\n minConfidence?: number;\n excludeTypes?: PHIType[];\n useCache?: boolean;\n } = {},\n): PHIDetection[] {\n const { minConfidence = 0.5, excludeTypes = [], useCache = true } = options;\n\n // Check cache first\n if (useCache) {\n const cached = getCachedDetections<PHIDetection[]>(text);\n if (cached) {\n // Filter cached results based on current options\n return cached.filter(\n (d: PHIDetection) => d.confidence >= minConfidence && !excludeTypes.includes(d.type),\n );\n }\n }\n\n const detections: PHIDetection[] = [];\n\n // Scan text with each pattern\n for (const [type, pattern] of Object.entries(SAFE_HARBOR_PATTERNS)) {\n const phiType = type as PHIType;\n\n // Skip excluded types\n if (excludeTypes.includes(phiType)) {\n continue;\n }\n\n // Reset regex lastIndex\n pattern.lastIndex = 0;\n\n let match;\n while ((match = pattern.exec(text)) !== null) {\n const value = match[0];\n const start = match.index;\n const end = start + value.length;\n\n // Calculate confidence\n const confidence = getConfidenceScore(phiType, value);\n\n // Filter low confidence and false positives\n if (confidence < minConfidence || isFalsePositive(phiType, value)) {\n continue;\n }\n\n detections.push({\n type: phiType,\n value,\n start,\n end,\n confidence,\n });\n }\n }\n\n // Sort by position in text\n const sorted = detections.sort((a, b) => a.start - b.start);\n\n // Cache results\n if (useCache) {\n cacheDetections(text, sorted);\n }\n\n return sorted;\n}\n\n/**\n * Check if text contains any PHI\n */\nexport function containsPHI(text: string, options?: Parameters<typeof detectPHI>[1]): boolean {\n return detectPHI(text, options).length > 0;\n}\n\n/**\n * Get PHI statistics for text\n */\nexport function analyzePHI(text: string): {\n hasPHI: boolean;\n totalDetections: number;\n byType: Record<PHIType, number>;\n averageConfidence: number;\n} {\n const detections = detectPHI(text);\n\n const byType = detections.reduce(\n (acc, d) => {\n acc[d.type] = (acc[d.type] || 0) + 1;\n return acc;\n },\n {} as Record<PHIType, number>,\n );\n\n const averageConfidence =\n detections.length > 0\n ? detections.reduce((sum, d) => sum + d.confidence, 0) / detections.length\n : 0;\n\n return {\n hasPHI: detections.length > 0,\n totalDetections: detections.length,\n byType,\n averageConfidence,\n };\n}\n\n/**\n * Validate that text is Safe Harbor compliant\n * Returns true if no PHI detected above threshold\n */\nexport function isSafeHarborCompliant(\n text: string,\n minConfidence: number = 0.7,\n): {\n compliant: boolean;\n violations: PHIDetection[];\n} {\n const violations = detectPHI(text, { minConfidence });\n\n return {\n compliant: violations.length === 0,\n violations,\n };\n}\n","/**\n * @fileoverview PHI Redaction Utilities\n * PHI Redaction Utilities\n * Implements different redaction strategies for HIPAA compliance\n */\n\nimport { createHash } from 'node:crypto';\n\nimport { detectPHI } from './phi-detector';\n\nimport type { PHIDetection, RedactionStrategy } from '../types';\n\n/**\n * Redact PHI from text using specified strategy\n */\nexport function redactPHI(\n text: string,\n strategy: RedactionStrategy = 'MASK',\n options: {\n customMask?: string;\n preserveLength?: boolean;\n minConfidence?: number;\n } = {},\n): {\n redacted: string;\n detections: PHIDetection[];\n} {\n const { customMask = '[REDACTED]', preserveLength = false, minConfidence } = options;\n\n // Detect PHI\n const detections = detectPHI(text, { minConfidence });\n\n if (detections.length === 0) {\n return { redacted: text, detections: [] };\n }\n\n // Build redacted text by replacing from end to start (preserves indices)\n let redacted = text;\n const sortedDetections = [...detections].sort((a, b) => b.start - a.start);\n\n for (const detection of sortedDetections) {\n const { start, end, value, type } = detection;\n const replacement = getRedactionReplacement(value, type, strategy, customMask, preserveLength);\n\n redacted = redacted.slice(0, start) + replacement + redacted.slice(end);\n }\n\n return { redacted, detections };\n}\n\n/**\n * Get replacement text for a detected PHI value\n */\nfunction getRedactionReplacement(\n value: string,\n type: string,\n strategy: RedactionStrategy,\n customMask: string,\n preserveLength: boolean,\n): string {\n switch (strategy) {\n case 'MASK':\n if (preserveLength) {\n return '*'.repeat(value.length);\n }\n return customMask;\n\n case 'HASH':\n // Use crypto-safe hash for consistency\n return `[${type.toUpperCase()}_${hashString(value)}]`;\n\n case 'TOKENIZE':\n // Reversible tokenization (requires key management)\n return `[TOKEN_${type.toUpperCase()}_${generateToken(value)}]`;\n\n default:\n return customMask;\n }\n}\n\n/**\n * Cryptographically hash a string for HASH strategy\n * Uses SHA-256 for consistent, secure hashing\n */\nfunction hashString(value: string): string {\n const hash = createHash('sha256').update(value).digest('hex');\n return hash.slice(0, 8).toUpperCase();\n}\n\n/**\n * Generate a reversible token (simplified - use proper tokenization in production)\n */\nfunction generateToken(value: string): string {\n // In production, use a proper tokenization service with key management\n // Using base64 encoding for reversible tokenization\n return Buffer.from(value).toString('base64').slice(0, 12);\n}\n\n/**\n * Redact specific PHI types only\n */\nexport function redactSpecificTypes(\n text: string,\n types: string[],\n strategy: RedactionStrategy = 'MASK',\n): {\n redacted: string;\n detections: PHIDetection[];\n} {\n const allDetections = detectPHI(text);\n const filteredDetections = allDetections.filter(d => types.includes(d.type));\n\n let redacted = text;\n const sortedDetections = [...filteredDetections].sort((a, b) => b.start - a.start);\n\n for (const detection of sortedDetections) {\n const { start, end, value, type } = detection;\n const replacement = getRedactionReplacement(value, type, strategy, '[REDACTED]', false);\n redacted = redacted.slice(0, start) + replacement + redacted.slice(end);\n }\n\n return { redacted, detections: filteredDetections };\n}\n\n/**\n * Preview redactions without applying them\n */\nexport function previewRedactions(text: string): {\n original: string;\n preview: string;\n detections: PHIDetection[];\n stats: {\n totalPHI: number;\n byType: Record<string, number>;\n };\n} {\n const detections = detectPHI(text);\n\n let preview = text;\n const sortedDetections = [...detections].sort((a, b) => b.start - a.start);\n\n for (const detection of sortedDetections) {\n const { start, end, type } = detection;\n const replacement = `[${type.toUpperCase()}]`;\n preview = preview.slice(0, start) + replacement + preview.slice(end);\n }\n\n const byType = detections.reduce(\n (acc, d) => {\n acc[d.type] = (acc[d.type] || 0) + 1;\n return acc;\n },\n {} as Record<string, number>,\n );\n\n return {\n original: text,\n preview,\n detections,\n stats: {\n totalPHI: detections.length,\n byType,\n },\n };\n}\n\n/**\n * Sanitize text for logging (aggressive redaction)\n */\nexport function sanitizeForLogging(text: string): string {\n const { redacted } = redactPHI(text, 'MASK', {\n customMask: '[REDACTED]',\n minConfidence: 0.3, // Lower threshold for logging\n });\n return redacted;\n}\n"],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import { logWarn } from "@od-oneapp/shared/logs";
2
+
3
+ //#region src/caching/adapters/memory.ts
4
+ /**
5
+ * In-memory cache adapter
6
+ * Suitable for development, testing, and single-instance deployments
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const adapter = new MemoryCacheAdapter({ maxSize: 1000 });
11
+ * const caching = createCachingMiddleware({ adapter });
12
+ * ```
13
+ */
14
+ var MemoryCacheAdapter = class {
15
+ cache = /* @__PURE__ */ new Map();
16
+ maxSize;
17
+ constructor(options = {}) {
18
+ this.maxSize = options.maxSize ?? 1e4;
19
+ }
20
+ async get(key) {
21
+ const entry = this.cache.get(key);
22
+ if (!entry) return null;
23
+ if (Date.now() > entry.expiresAt) {
24
+ this.cache.delete(key);
25
+ return null;
26
+ }
27
+ this.cache.delete(key);
28
+ this.cache.set(key, entry);
29
+ return structuredClone(entry.value);
30
+ }
31
+ async set(key, value, ttl) {
32
+ if (this.cache.has(key)) this.cache.delete(key);
33
+ else if (this.cache.size >= this.maxSize) {
34
+ const oldestKey = this.cache.keys().next().value;
35
+ if (oldestKey !== void 0) this.cache.delete(oldestKey);
36
+ }
37
+ this.cache.set(key, {
38
+ value: structuredClone(value),
39
+ expiresAt: Date.now() + ttl * 1e3
40
+ });
41
+ }
42
+ async delete(key) {
43
+ this.cache.delete(key);
44
+ }
45
+ async clear() {
46
+ this.cache.clear();
47
+ }
48
+ /** Get current cache size */
49
+ get size() {
50
+ return this.cache.size;
51
+ }
52
+ };
53
+
54
+ //#endregion
55
+ //#region src/caching/adapters/redis.ts
56
+ /**
57
+ * Redis cache adapter for distributed deployments
58
+ */
59
+ /**
60
+ * Redis cache adapter for distributed deployments
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * import { createUpstashRedis } from '../../integrations/redis';
65
+ * const redis = createUpstashRedis({ url: '...', token: '...' });
66
+ * const adapter = new RedisCacheAdapter(redis, { prefix: "ai-cache:" });
67
+ * ```
68
+ */
69
+ var RedisCacheAdapter = class {
70
+ redis;
71
+ prefix;
72
+ constructor(redis, options = {}) {
73
+ this.redis = redis;
74
+ this.prefix = options.prefix ?? "ai-cache:";
75
+ }
76
+ getKey(key) {
77
+ return `${this.prefix}${key}`;
78
+ }
79
+ async get(key) {
80
+ const data = await this.redis.get(this.getKey(key));
81
+ if (!data) return null;
82
+ try {
83
+ return JSON.parse(data);
84
+ } catch (error) {
85
+ logWarn(`[RedisCacheAdapter] Failed to parse cached data for key "${key}"`, { error: error instanceof Error ? error : new Error(String(error)) });
86
+ return null;
87
+ }
88
+ }
89
+ async set(key, value, ttl) {
90
+ await this.redis.set(this.getKey(key), JSON.stringify(value), "EX", ttl);
91
+ }
92
+ async delete(key) {
93
+ await this.redis.del(this.getKey(key));
94
+ }
95
+ async clear() {
96
+ if (this.redis.flushdb) await this.redis.flushdb();
97
+ }
98
+ };
99
+
100
+ //#endregion
101
+ export { MemoryCacheAdapter as n, RedisCacheAdapter as t };
102
+ //# sourceMappingURL=redis-CpsSrF8K.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-CpsSrF8K.mjs","names":[],"sources":["../src/caching/adapters/memory.ts","../src/caching/adapters/redis.ts"],"sourcesContent":["/**\n * In-memory cache adapter for development and testing\n */\n\nimport type { CacheAdapter, CachedResponse } from '../types';\n\ninterface CacheEntry {\n value: CachedResponse;\n expiresAt: number;\n}\n\n/**\n * In-memory cache adapter\n * Suitable for development, testing, and single-instance deployments\n *\n * @example\n * ```ts\n * const adapter = new MemoryCacheAdapter({ maxSize: 1000 });\n * const caching = createCachingMiddleware({ adapter });\n * ```\n */\nexport class MemoryCacheAdapter implements CacheAdapter {\n private cache = new Map<string, CacheEntry>();\n private maxSize: number;\n\n constructor(options: { maxSize?: number } = {}) {\n this.maxSize = options.maxSize ?? 10000;\n }\n\n async get(key: string): Promise<CachedResponse | null> {\n const entry = this.cache.get(key);\n\n if (!entry) return null;\n\n if (Date.now() > entry.expiresAt) {\n this.cache.delete(key);\n return null;\n }\n\n // Refresh recency for LRU by re-inserting\n this.cache.delete(key);\n this.cache.set(key, entry);\n // Return a clone to prevent external mutation of cached data\n return structuredClone(entry.value);\n }\n\n async set(key: string, value: CachedResponse, ttl: number): Promise<void> {\n // LRU eviction if at capacity\n if (this.cache.has(key)) {\n // Delete first to refresh position (move to end)\n this.cache.delete(key);\n } else if (this.cache.size >= this.maxSize) {\n const oldestKey = this.cache.keys().next().value;\n // Use !== undefined to handle empty-string keys correctly\n if (oldestKey !== undefined) this.cache.delete(oldestKey);\n }\n\n // Clone value to prevent external mutation affecting cached data\n this.cache.set(key, {\n value: structuredClone(value),\n expiresAt: Date.now() + ttl * 1000,\n });\n }\n\n async delete(key: string): Promise<void> {\n this.cache.delete(key);\n }\n\n async clear(): Promise<void> {\n this.cache.clear();\n }\n\n /** Get current cache size */\n get size(): number {\n return this.cache.size;\n }\n}\n","/**\n * Redis cache adapter for distributed deployments\n */\n\nimport { logWarn } from '@repo/shared/logs';\n\nimport type { RedisClient } from '../../integrations/redis';\nimport type { CacheAdapter, CachedResponse } from '../types';\n\n/**\n * Redis cache adapter for distributed deployments\n *\n * @example\n * ```ts\n * import { createUpstashRedis } from '../../integrations/redis';\n * const redis = createUpstashRedis({ url: '...', token: '...' });\n * const adapter = new RedisCacheAdapter(redis, { prefix: \"ai-cache:\" });\n * ```\n */\nexport class RedisCacheAdapter implements CacheAdapter {\n private redis: RedisClient;\n private prefix: string;\n\n constructor(redis: RedisClient, options: { prefix?: string } = {}) {\n this.redis = redis;\n this.prefix = options.prefix ?? 'ai-cache:';\n }\n\n private getKey(key: string): string {\n return `${this.prefix}${key}`;\n }\n\n async get(key: string): Promise<CachedResponse | null> {\n const data = await this.redis.get(this.getKey(key));\n if (!data) return null;\n\n try {\n return JSON.parse(data) as CachedResponse;\n } catch (error) {\n logWarn(`[RedisCacheAdapter] Failed to parse cached data for key \"${key}\"`, {\n error: error instanceof Error ? error : new Error(String(error)),\n });\n return null;\n }\n }\n\n async set(key: string, value: CachedResponse, ttl: number): Promise<void> {\n await this.redis.set(this.getKey(key), JSON.stringify(value), 'EX', ttl);\n }\n\n async delete(key: string): Promise<void> {\n await this.redis.del(this.getKey(key));\n }\n\n async clear(): Promise<void> {\n if (this.redis.flushdb) {\n await this.redis.flushdb();\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAqBA,IAAa,qBAAb,MAAwD;CACtD,AAAQ,wBAAQ,IAAI,KAAyB;CAC7C,AAAQ;CAER,YAAY,UAAgC,EAAE,EAAE;AAC9C,OAAK,UAAU,QAAQ,WAAW;;CAGpC,MAAM,IAAI,KAA6C;EACrD,MAAM,QAAQ,KAAK,MAAM,IAAI,IAAI;AAEjC,MAAI,CAAC,MAAO,QAAO;AAEnB,MAAI,KAAK,KAAK,GAAG,MAAM,WAAW;AAChC,QAAK,MAAM,OAAO,IAAI;AACtB,UAAO;;AAIT,OAAK,MAAM,OAAO,IAAI;AACtB,OAAK,MAAM,IAAI,KAAK,MAAM;AAE1B,SAAO,gBAAgB,MAAM,MAAM;;CAGrC,MAAM,IAAI,KAAa,OAAuB,KAA4B;AAExE,MAAI,KAAK,MAAM,IAAI,IAAI,CAErB,MAAK,MAAM,OAAO,IAAI;WACb,KAAK,MAAM,QAAQ,KAAK,SAAS;GAC1C,MAAM,YAAY,KAAK,MAAM,MAAM,CAAC,MAAM,CAAC;AAE3C,OAAI,cAAc,OAAW,MAAK,MAAM,OAAO,UAAU;;AAI3D,OAAK,MAAM,IAAI,KAAK;GAClB,OAAO,gBAAgB,MAAM;GAC7B,WAAW,KAAK,KAAK,GAAG,MAAM;GAC/B,CAAC;;CAGJ,MAAM,OAAO,KAA4B;AACvC,OAAK,MAAM,OAAO,IAAI;;CAGxB,MAAM,QAAuB;AAC3B,OAAK,MAAM,OAAO;;;CAIpB,IAAI,OAAe;AACjB,SAAO,KAAK,MAAM;;;;;;;;;;;;;;;;;;;ACvDtB,IAAa,oBAAb,MAAuD;CACrD,AAAQ;CACR,AAAQ;CAER,YAAY,OAAoB,UAA+B,EAAE,EAAE;AACjE,OAAK,QAAQ;AACb,OAAK,SAAS,QAAQ,UAAU;;CAGlC,AAAQ,OAAO,KAAqB;AAClC,SAAO,GAAG,KAAK,SAAS;;CAG1B,MAAM,IAAI,KAA6C;EACrD,MAAM,OAAO,MAAM,KAAK,MAAM,IAAI,KAAK,OAAO,IAAI,CAAC;AACnD,MAAI,CAAC,KAAM,QAAO;AAElB,MAAI;AACF,UAAO,KAAK,MAAM,KAAK;WAChB,OAAO;AACd,WAAQ,4DAA4D,IAAI,IAAI,EAC1E,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,CAAC,EACjE,CAAC;AACF,UAAO;;;CAIX,MAAM,IAAI,KAAa,OAAuB,KAA4B;AACxE,QAAM,KAAK,MAAM,IAAI,KAAK,OAAO,IAAI,EAAE,KAAK,UAAU,MAAM,EAAE,MAAM,IAAI;;CAG1E,MAAM,OAAO,KAA4B;AACvC,QAAM,KAAK,MAAM,IAAI,KAAK,OAAO,IAAI,CAAC;;CAGxC,MAAM,QAAuB;AAC3B,MAAI,KAAK,MAAM,QACb,OAAM,KAAK,MAAM,SAAS"}
@@ -0,0 +1,33 @@
1
+ import { t as RedisClient } from "./types-By-r93bE.mjs";
2
+ import { r as CachedResponse, t as CacheAdapter } from "./types-BPnq3GQo.mjs";
3
+
4
+ //#region src/caching/adapters/memory.d.ts
5
+ declare class MemoryCacheAdapter implements CacheAdapter {
6
+ private cache;
7
+ private maxSize;
8
+ constructor(options?: {
9
+ maxSize?: number;
10
+ });
11
+ get(key: string): Promise<CachedResponse | null>;
12
+ set(key: string, value: CachedResponse, ttl: number): Promise<void>;
13
+ delete(key: string): Promise<void>;
14
+ clear(): Promise<void>;
15
+ get size(): number;
16
+ }
17
+ //#endregion
18
+ //#region src/caching/adapters/redis.d.ts
19
+ declare class RedisCacheAdapter implements CacheAdapter {
20
+ private redis;
21
+ private prefix;
22
+ constructor(redis: RedisClient, options?: {
23
+ prefix?: string;
24
+ });
25
+ private getKey;
26
+ get(key: string): Promise<CachedResponse | null>;
27
+ set(key: string, value: CachedResponse, ttl: number): Promise<void>;
28
+ delete(key: string): Promise<void>;
29
+ clear(): Promise<void>;
30
+ }
31
+ //#endregion
32
+ export { MemoryCacheAdapter as n, RedisCacheAdapter as t };
33
+ //# sourceMappingURL=redis-CwguYFGh.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-CwguYFGh.d.mts","names":[],"sources":["../src/caching/adapters/memory.ts","../src/caching/adapters/redis.ts"],"mappings":";;;;cAqBa,kBAAA,YAA8B,YAAA;EAAA,QACjC,KAAA;EAAA,QACA,OAAA;cAEI,OAAA;IAAW,OAAA;EAAA;EAIjB,GAAA,CAAI,GAAA,WAAc,OAAA,CAAQ,cAAA;EAiB1B,GAAA,CAAI,GAAA,UAAa,KAAA,EAAO,cAAA,EAAgB,GAAA,WAAc,OAAA;EAkBtD,MAAA,CAAO,GAAA,WAAc,OAAA;EAIrB,KAAA,CAAA,GAAS,OAAA;EAAA,IAKX,IAAA,CAAA;AAAA;;;cCtDO,iBAAA,YAA6B,YAAA;EAAA,QAChC,KAAA;EAAA,QACA,MAAA;cAEI,KAAA,EAAO,WAAA,EAAa,OAAA;IAAW,MAAA;EAAA;EAAA,QAKnC,MAAA;EAIF,GAAA,CAAI,GAAA,WAAc,OAAA,CAAQ,cAAA;EAc1B,GAAA,CAAI,GAAA,UAAa,KAAA,EAAO,cAAA,EAAgB,GAAA,WAAc,OAAA;EAItD,MAAA,CAAO,GAAA,WAAc,OAAA;EAIrB,KAAA,CAAA,GAAS,OAAA;AAAA"}