@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,417 @@
1
+ import { H as embedMany, S as cosineSimilarity$1, V as embed } from "./ai-runtime-CDzQztTt.mjs";
2
+ import { a as createRerankPipeline, i as createCrossEncoderReranker, n as calculateNDCG, o as reciprocalRankFusion, r as createCohereReranker, s as vectorResultsToDocuments, t as calculateMRR } from "./reranking-Ck8aKZW7.mjs";
3
+
4
+ //#region src/grounding/embed/index.ts
5
+ /**
6
+ * Creates a text chunker with configurable strategy.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const chunker = createChunker({
11
+ * strategy: 'paragraph',
12
+ * chunkSize: 500,
13
+ * chunkOverlap: 50
14
+ * });
15
+ *
16
+ * const chunks = chunker.chunk(longText, { sourceId: 'doc-1' });
17
+ * ```
18
+ */
19
+ function createChunker(config) {
20
+ const { strategy, chunkSize, chunkOverlap, minChunkSize = 50 } = config;
21
+ function chunk(text, metadata) {
22
+ const chunks = [];
23
+ let segments;
24
+ switch (strategy) {
25
+ case "sentence":
26
+ segments = splitBySentence(text);
27
+ break;
28
+ case "paragraph":
29
+ segments = splitByParagraph(text);
30
+ break;
31
+ case "semantic":
32
+ segments = splitSemantic(text, chunkSize);
33
+ break;
34
+ case "fixed":
35
+ segments = splitFixed(text, chunkSize, chunkOverlap);
36
+ break;
37
+ default: {
38
+ const exhaustiveCheck = strategy;
39
+ throw new Error(`Unsupported chunking strategy: ${exhaustiveCheck}`);
40
+ }
41
+ }
42
+ let currentChunk = "";
43
+ let startIndex = 0;
44
+ let chunkIndex = 0;
45
+ for (let i = 0; i < segments.length; i++) {
46
+ const segment = segments[i] ?? "";
47
+ if (currentChunk.length + segment.length <= chunkSize) currentChunk += (currentChunk ? " " : "") + segment;
48
+ else {
49
+ if (currentChunk.length >= minChunkSize) {
50
+ chunks.push(createChunk(currentChunk, chunkIndex++, startIndex, metadata));
51
+ startIndex += currentChunk.length;
52
+ }
53
+ if (segment.length > chunkSize) {
54
+ const subChunks = splitFixed(segment, chunkSize, chunkOverlap);
55
+ for (const sub of subChunks) if (sub.length >= minChunkSize) {
56
+ chunks.push(createChunk(sub, chunkIndex++, startIndex, metadata));
57
+ startIndex += sub.length;
58
+ }
59
+ currentChunk = "";
60
+ } else currentChunk = segment;
61
+ }
62
+ }
63
+ if (currentChunk.length >= minChunkSize) chunks.push(createChunk(currentChunk, chunkIndex++, startIndex, metadata));
64
+ const totalChunks = chunks.length;
65
+ return chunks.map((c) => ({
66
+ ...c,
67
+ metadata: {
68
+ ...c.metadata,
69
+ totalChunks
70
+ }
71
+ }));
72
+ }
73
+ function createChunk(content, chunkIndex, startIndex, metadata) {
74
+ const uniqueSuffix = Math.random().toString(36).slice(2, 8);
75
+ return {
76
+ id: `chunk-${Date.now()}-${chunkIndex}-${uniqueSuffix}`,
77
+ content: content.trim(),
78
+ metadata: {
79
+ ...metadata,
80
+ chunkIndex,
81
+ startIndex,
82
+ endIndex: startIndex + content.length
83
+ }
84
+ };
85
+ }
86
+ return {
87
+ chunk,
88
+ config
89
+ };
90
+ }
91
+ function splitFixed(text, size, overlap) {
92
+ const chunks = [];
93
+ const effectiveOverlap = Math.min(overlap, size - 1);
94
+ const step = Math.max(1, size - effectiveOverlap);
95
+ if (size <= 0) return text ? [text] : [];
96
+ let start = 0;
97
+ while (start < text.length) {
98
+ chunks.push(text.slice(start, start + size));
99
+ start += step;
100
+ }
101
+ return chunks;
102
+ }
103
+ function splitBySentence(text) {
104
+ return text.split(/(?<=[.!?])\s+/).filter((s) => s.trim().length > 0);
105
+ }
106
+ function splitByParagraph(text) {
107
+ return text.split(/\n\n+/).filter((p) => p.trim().length > 0);
108
+ }
109
+ function splitSemantic(text, targetSize) {
110
+ const sentences = splitBySentence(text);
111
+ const result = [];
112
+ let current = "";
113
+ for (const sentence of sentences) if (current.length + sentence.length <= targetSize * 1.2) current += (current ? " " : "") + sentence;
114
+ else {
115
+ if (current) result.push(current);
116
+ current = sentence;
117
+ }
118
+ if (current) result.push(current);
119
+ return result;
120
+ }
121
+ /**
122
+ * Creates an embedding generator wrapper.
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * const embedder = createEmbedder({
127
+ * model: openaiEmbedding,
128
+ * batchSize: 100,
129
+ * cache: embeddingCache
130
+ * });
131
+ *
132
+ * const chunks = await embedder.embedChunks(textChunks);
133
+ * ```
134
+ */
135
+ function createEmbedder(options) {
136
+ const { model, batchSize = 100, cache, onProgress } = options;
137
+ async function embed(text) {
138
+ const cacheKey = hashText(text);
139
+ const cached = cache?.get(cacheKey);
140
+ if (cached) return cached;
141
+ const embedding = await model.embed(text);
142
+ if (cache) cache.set(cacheKey, embedding);
143
+ return embedding;
144
+ }
145
+ async function embedBatch(texts) {
146
+ const results = new Array(texts.length);
147
+ const toEmbed = [];
148
+ texts.forEach((text, index) => {
149
+ const cacheKey = hashText(text);
150
+ const cached = cache?.get(cacheKey);
151
+ if (cached) results[index] = cached;
152
+ else toEmbed.push({
153
+ index,
154
+ text
155
+ });
156
+ });
157
+ for (let i = 0; i < toEmbed.length; i += batchSize) {
158
+ const batch = toEmbed.slice(i, i + batchSize);
159
+ const embeddings = await model.embedBatch(batch.map((b) => b.text));
160
+ batch.forEach((item, j) => {
161
+ const embedding = embeddings[j];
162
+ if (embedding) {
163
+ results[item.index] = embedding;
164
+ if (cache) cache.set(hashText(item.text), embedding);
165
+ }
166
+ });
167
+ onProgress?.(Math.min(i + batchSize, toEmbed.length), toEmbed.length);
168
+ }
169
+ for (let i = 0; i < results.length; i++) if (!results[i]) throw new Error(`Embedding failed for text at index ${i}: incomplete batch response`);
170
+ return results;
171
+ }
172
+ async function embedChunks(chunks) {
173
+ const embeddings = await embedBatch(chunks.map((c) => c.content));
174
+ return chunks.map((chunk, i) => ({
175
+ ...chunk,
176
+ embedding: embeddings[i]
177
+ }));
178
+ }
179
+ return {
180
+ embed,
181
+ embedBatch,
182
+ embedChunks,
183
+ dimensions: model.dimensions,
184
+ modelId: model.modelId
185
+ };
186
+ }
187
+ /**
188
+ * Simple djb2-style hash for cache keys.
189
+ * Note: For production caches with millions of entries, consider using
190
+ * a stronger hash (SHA-256) to reduce collision probability.
191
+ */
192
+ function hashText(text) {
193
+ let hash = 0;
194
+ for (let i = 0; i < text.length; i++) {
195
+ const char = text.charCodeAt(i);
196
+ hash = (hash << 5) - hash + char;
197
+ hash = hash & hash;
198
+ }
199
+ return `embed-${hash}`;
200
+ }
201
+ /**
202
+ * Calculates cosine similarity between two vectors.
203
+ */
204
+ function cosineSimilarity(a, b) {
205
+ if (a.length !== b.length) throw new Error("Vectors must have same dimensions");
206
+ let dotProduct = 0;
207
+ let normA = 0;
208
+ let normB = 0;
209
+ for (let i = 0; i < a.length; i++) {
210
+ const aVal = a[i] ?? 0;
211
+ const bVal = b[i] ?? 0;
212
+ dotProduct += aVal * bVal;
213
+ normA += aVal * aVal;
214
+ normB += bVal * bVal;
215
+ }
216
+ if (normA === 0 || normB === 0) return 0;
217
+ return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
218
+ }
219
+ /**
220
+ * Creates an in-memory vector store.
221
+ *
222
+ * @example
223
+ * ```typescript
224
+ * const store = createInMemoryVectorStore();
225
+ *
226
+ * await store.upsert(embeddedChunks);
227
+ * const results = await store.search(queryEmbedding, { topK: 5 });
228
+ * ```
229
+ */
230
+ function createInMemoryVectorStore() {
231
+ const chunks = /* @__PURE__ */ new Map();
232
+ async function upsert(newChunks) {
233
+ for (const chunk of newChunks) chunks.set(chunk.id, chunk);
234
+ }
235
+ async function search(embedding, options) {
236
+ const { topK = 10, minScore = 0 } = options ?? {};
237
+ const results = [];
238
+ for (const chunk of chunks.values()) {
239
+ if (!chunk.embedding) continue;
240
+ const score = cosineSimilarity(embedding, chunk.embedding);
241
+ if (score >= minScore) results.push({
242
+ chunk,
243
+ score,
244
+ rank: 0
245
+ });
246
+ }
247
+ results.sort((a, b) => b.score - a.score);
248
+ return results.slice(0, topK).map((r, i) => ({
249
+ ...r,
250
+ rank: i + 1
251
+ }));
252
+ }
253
+ async function deleteChunks(ids) {
254
+ for (const id of ids) chunks.delete(id);
255
+ }
256
+ async function clear() {
257
+ chunks.clear();
258
+ }
259
+ return {
260
+ upsert,
261
+ search,
262
+ delete: deleteChunks,
263
+ clear
264
+ };
265
+ }
266
+ /**
267
+ * Creates a RAG pipeline for retrieval-augmented generation.
268
+ *
269
+ * @example
270
+ * ```typescript
271
+ * const rag = createRAGPipeline({
272
+ * embedder,
273
+ * vectorStore,
274
+ * topK: 5,
275
+ * maxTokens: 2000
276
+ * });
277
+ *
278
+ * const context = await rag.retrieve('What is the capital of France?');
279
+ * const prompt = rag.buildPrompt(context, 'Answer the question based on context.');
280
+ * ```
281
+ */
282
+ function createRAGPipeline(options) {
283
+ const { embedder, vectorStore, topK = 5, maxTokens = 2e3, minScore = .5 } = options;
284
+ async function ingest(documents, chunker) {
285
+ const allChunks = [];
286
+ for (const doc of documents) {
287
+ const chunks = chunker.chunk(doc.content, {
288
+ sourceId: doc.id,
289
+ ...doc.metadata
290
+ });
291
+ allChunks.push(...chunks);
292
+ }
293
+ const embeddedChunks = await embedder.embedChunks(allChunks);
294
+ await vectorStore.upsert(embeddedChunks);
295
+ }
296
+ async function retrieve(query) {
297
+ const queryEmbedding = await embedder.embed(query);
298
+ const results = await vectorStore.search(queryEmbedding, {
299
+ topK,
300
+ minScore
301
+ });
302
+ let formattedContext = "";
303
+ let totalTokens = 0;
304
+ const estimateTokens = (text) => Math.ceil(text.length / 4);
305
+ for (const result of results) {
306
+ const chunkText = result.chunk.content;
307
+ const chunkTokens = estimateTokens(chunkText);
308
+ if (totalTokens + chunkTokens > maxTokens) break;
309
+ formattedContext += `[Source: ${result.chunk.metadata.sourceId ?? "unknown"}, Relevance: ${result.score.toFixed(2)}]\n${chunkText}\n\n`;
310
+ totalTokens += chunkTokens;
311
+ }
312
+ return {
313
+ query,
314
+ results,
315
+ totalTokens,
316
+ formattedContext: formattedContext.trim()
317
+ };
318
+ }
319
+ function buildPrompt(context, systemPrompt) {
320
+ return `${systemPrompt ?? "Answer the question based on the provided context."}
321
+
322
+ Context:
323
+ ${context.formattedContext}
324
+
325
+ Question: ${context.query}
326
+
327
+ Answer:`;
328
+ }
329
+ return {
330
+ ingest,
331
+ retrieve,
332
+ buildPrompt
333
+ };
334
+ }
335
+ /**
336
+ * Quick single-text embedding using AI SDK's embed function.
337
+ *
338
+ * @param model - AI SDK embedding model instance
339
+ * @param value - Text to embed
340
+ * @param options - Optional configuration
341
+ * @returns Embed result from AI SDK
342
+ *
343
+ * @example
344
+ * ```ts
345
+ * import { openai } from '@ai-sdk/openai';
346
+ * import { embedText } from '@od-oneapp/ai-platform/grounding/embed';
347
+ *
348
+ * const result = await embedText(
349
+ * openai.embedding('text-embedding-3-small'),
350
+ * 'Hello world',
351
+ * );
352
+ * console.log(result.embedding); // number[]
353
+ * ```
354
+ */
355
+ async function embedText(model, value, options) {
356
+ return embed({
357
+ model,
358
+ value,
359
+ maxRetries: options?.maxRetries ?? 2
360
+ });
361
+ }
362
+ /**
363
+ * Quick batch embedding using AI SDK's embedMany function.
364
+ *
365
+ * @param model - AI SDK embedding model instance
366
+ * @param values - Array of texts to embed
367
+ * @param options - Optional configuration
368
+ * @returns EmbedMany result from AI SDK
369
+ *
370
+ * @example
371
+ * ```ts
372
+ * import { openai } from '@ai-sdk/openai';
373
+ * import { embedBatch } from '@od-oneapp/ai-platform/grounding/embed';
374
+ *
375
+ * const result = await embedBatch(
376
+ * openai.embedding('text-embedding-3-small'),
377
+ * ['Hello', 'World'],
378
+ * );
379
+ * console.log(result.embeddings); // number[][]
380
+ * ```
381
+ */
382
+ async function embedBatch(model, values, options) {
383
+ return embedMany({
384
+ model,
385
+ values,
386
+ maxParallelCalls: options?.maxParallelCalls ?? 2
387
+ });
388
+ }
389
+ /**
390
+ * Calculate similarity between two texts by embedding them and computing cosine similarity.
391
+ *
392
+ * @param model - AI SDK embedding model instance
393
+ * @param text1 - First text
394
+ * @param text2 - Second text
395
+ * @returns Cosine similarity score between -1 and 1
396
+ *
397
+ * @example
398
+ * ```ts
399
+ * import { openai } from '@ai-sdk/openai';
400
+ * import { calculateTextSimilarity } from '@od-oneapp/ai-platform/grounding/embed';
401
+ *
402
+ * const score = await calculateTextSimilarity(
403
+ * openai.embedding('text-embedding-3-small'),
404
+ * 'The cat sat on the mat',
405
+ * 'A feline rested on a rug',
406
+ * );
407
+ * console.log(score); // 0.85 (high similarity)
408
+ * ```
409
+ */
410
+ async function calculateTextSimilarity(model, text1, text2) {
411
+ const [{ embedding: e1 }, { embedding: e2 }] = await Promise.all([embedText(model, text1), embedText(model, text2)]);
412
+ return cosineSimilarity$1(e1, e2);
413
+ }
414
+
415
+ //#endregion
416
+ export { calculateMRR, calculateNDCG, calculateTextSimilarity, cosineSimilarity, createChunker, createCohereReranker, createCrossEncoderReranker, createEmbedder, createInMemoryVectorStore, createRAGPipeline, createRerankPipeline, embedBatch, embedText, reciprocalRankFusion, vectorResultsToDocuments };
417
+ //# sourceMappingURL=grounding-embed.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grounding-embed.mjs","names":["sdkEmbed","sdkEmbedMany","sdkCosineSimilarity"],"sources":["../src/grounding/embed/index.ts"],"sourcesContent":["/**\n * Embeddings & RAG Module\n *\n * Retrieval-Augmented Generation patterns:\n * - Text chunking strategies\n * - Embedding generation\n * - Similarity search\n * - RAG pipeline orchestration\n *\n * @module embeddings\n */\n\n// -----------------------------------------------------------------------------\n// Types\n// -----------------------------------------------------------------------------\n\n/** Text chunk with metadata */\nexport interface TextChunk {\n readonly id: string;\n readonly content: string;\n readonly metadata: ChunkMetadata;\n embedding?: number[];\n}\n\n/** Chunk metadata */\nexport interface ChunkMetadata {\n readonly sourceId?: string;\n readonly sourceName?: string;\n readonly startIndex?: number;\n readonly endIndex?: number;\n readonly chunkIndex?: number;\n readonly totalChunks?: number;\n readonly [key: string]: unknown;\n}\n\n/** Chunking strategy */\nexport type ChunkingStrategy = 'fixed' | 'sentence' | 'paragraph' | 'semantic';\n\n/** Chunking configuration */\nexport interface ChunkingConfig {\n readonly strategy: ChunkingStrategy;\n readonly chunkSize: number;\n readonly chunkOverlap: number;\n readonly minChunkSize?: number;\n}\n\n/** Embedding model interface */\nexport interface EmbeddingModel {\n embed: (text: string) => Promise<number[]>;\n embedBatch: (texts: string[]) => Promise<number[][]>;\n readonly dimensions: number;\n readonly modelId: string;\n}\n\n/** Search result */\nexport interface SearchResult {\n readonly chunk: TextChunk;\n readonly score: number;\n readonly rank: number;\n}\n\n/** RAG context */\nexport interface RAGContext {\n readonly query: string;\n readonly results: SearchResult[];\n readonly totalTokens: number;\n formattedContext: string;\n}\n\n/** Vector store interface */\nexport interface VectorStore {\n upsert: (chunks: TextChunk[]) => Promise<void>;\n search: (embedding: number[], options?: SearchOptions) => Promise<SearchResult[]>;\n delete: (ids: string[]) => Promise<void>;\n clear: () => Promise<void>;\n}\n\n/** Search options */\nexport interface SearchOptions {\n readonly topK?: number;\n readonly minScore?: number;\n readonly filter?: Record<string, unknown>;\n}\n\n// -----------------------------------------------------------------------------\n// Text Chunking\n// -----------------------------------------------------------------------------\n\n/**\n * Creates a text chunker with configurable strategy.\n *\n * @example\n * ```typescript\n * const chunker = createChunker({\n * strategy: 'paragraph',\n * chunkSize: 500,\n * chunkOverlap: 50\n * });\n *\n * const chunks = chunker.chunk(longText, { sourceId: 'doc-1' });\n * ```\n */\nexport function createChunker(config: ChunkingConfig): Chunker {\n const { strategy, chunkSize, chunkOverlap, minChunkSize = 50 } = config;\n\n function chunk(text: string, metadata?: Partial<ChunkMetadata>): TextChunk[] {\n const chunks: TextChunk[] = [];\n let segments: string[];\n\n switch (strategy) {\n case 'sentence':\n segments = splitBySentence(text);\n break;\n case 'paragraph':\n segments = splitByParagraph(text);\n break;\n case 'semantic':\n segments = splitSemantic(text, chunkSize);\n break;\n case 'fixed':\n segments = splitFixed(text, chunkSize, chunkOverlap);\n break;\n default: {\n const exhaustiveCheck: never = strategy;\n throw new Error(`Unsupported chunking strategy: ${exhaustiveCheck}`);\n }\n }\n\n // Combine small segments and split large ones\n let currentChunk = '';\n let startIndex = 0;\n let chunkIndex = 0;\n\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i] ?? '';\n\n if (currentChunk.length + segment.length <= chunkSize) {\n currentChunk += (currentChunk ? ' ' : '') + segment;\n } else {\n if (currentChunk.length >= minChunkSize) {\n chunks.push(createChunk(currentChunk, chunkIndex++, startIndex, metadata));\n startIndex += currentChunk.length;\n }\n\n // Handle segments larger than chunkSize\n if (segment.length > chunkSize) {\n const subChunks = splitFixed(segment, chunkSize, chunkOverlap);\n for (const sub of subChunks) {\n if (sub.length >= minChunkSize) {\n chunks.push(createChunk(sub, chunkIndex++, startIndex, metadata));\n startIndex += sub.length;\n }\n }\n currentChunk = '';\n } else {\n currentChunk = segment;\n }\n }\n }\n\n // Add remaining chunk\n if (currentChunk.length >= minChunkSize) {\n chunks.push(createChunk(currentChunk, chunkIndex++, startIndex, metadata));\n }\n\n // Update total chunks\n const totalChunks = chunks.length;\n return chunks.map(c => ({\n ...c,\n metadata: { ...c.metadata, totalChunks },\n }));\n }\n\n function createChunk(\n content: string,\n chunkIndex: number,\n startIndex: number,\n metadata?: Partial<ChunkMetadata>,\n ): TextChunk {\n // Add randomness to prevent ID collisions across concurrent calls\n const uniqueSuffix = Math.random().toString(36).slice(2, 8);\n return {\n id: `chunk-${Date.now()}-${chunkIndex}-${uniqueSuffix}`,\n content: content.trim(),\n metadata: {\n ...metadata,\n chunkIndex,\n startIndex,\n endIndex: startIndex + content.length,\n },\n };\n }\n\n return { chunk, config };\n}\n\nexport interface Chunker {\n chunk: (text: string, metadata?: Partial<ChunkMetadata>) => TextChunk[];\n config: ChunkingConfig;\n}\n\n// Chunking helpers\nfunction splitFixed(text: string, size: number, overlap: number): string[] {\n const chunks: string[] = [];\n\n // Guard against invalid overlap that would cause infinite loop\n const effectiveOverlap = Math.min(overlap, size - 1);\n const step = Math.max(1, size - effectiveOverlap);\n\n if (size <= 0) {\n return text ? [text] : [];\n }\n\n let start = 0;\n\n while (start < text.length) {\n chunks.push(text.slice(start, start + size));\n start += step;\n }\n\n return chunks;\n}\n\nfunction splitBySentence(text: string): string[] {\n return text.split(/(?<=[.!?])\\s+/).filter(s => s.trim().length > 0);\n}\n\nfunction splitByParagraph(text: string): string[] {\n return text.split(/\\n\\n+/).filter(p => p.trim().length > 0);\n}\n\nfunction splitSemantic(text: string, targetSize: number): string[] {\n // Simplified semantic splitting - prefer sentence boundaries within target size\n const sentences = splitBySentence(text);\n const result: string[] = [];\n let current = '';\n\n for (const sentence of sentences) {\n if (current.length + sentence.length <= targetSize * 1.2) {\n current += (current ? ' ' : '') + sentence;\n } else {\n if (current) result.push(current);\n current = sentence;\n }\n }\n\n if (current) result.push(current);\n return result;\n}\n\n// -----------------------------------------------------------------------------\n// Embedding Generator\n// -----------------------------------------------------------------------------\n\n/**\n * Creates an embedding generator wrapper.\n *\n * @example\n * ```typescript\n * const embedder = createEmbedder({\n * model: openaiEmbedding,\n * batchSize: 100,\n * cache: embeddingCache\n * });\n *\n * const chunks = await embedder.embedChunks(textChunks);\n * ```\n */\nexport function createEmbedder(options: {\n model: EmbeddingModel;\n batchSize?: number;\n cache?: Map<string, number[]>;\n onProgress?: (processed: number, total: number) => void;\n}): Embedder {\n const { model, batchSize = 100, cache, onProgress } = options;\n\n async function embed(text: string): Promise<number[]> {\n const cacheKey = hashText(text);\n\n const cached = cache?.get(cacheKey);\n if (cached) {\n return cached;\n }\n\n const embedding = await model.embed(text);\n\n if (cache) {\n cache.set(cacheKey, embedding);\n }\n\n return embedding;\n }\n\n async function embedBatch(texts: string[]): Promise<number[][]> {\n const results: number[][] = new Array(texts.length);\n const toEmbed: { index: number; text: string }[] = [];\n\n // Check cache first\n texts.forEach((text, index) => {\n const cacheKey = hashText(text);\n const cached = cache?.get(cacheKey);\n if (cached) {\n results[index] = cached;\n } else {\n toEmbed.push({ index, text });\n }\n });\n\n // Embed uncached in batches\n for (let i = 0; i < toEmbed.length; i += batchSize) {\n const batch = toEmbed.slice(i, i + batchSize);\n const embeddings = await model.embedBatch(batch.map(b => b.text));\n\n batch.forEach((item, j) => {\n const embedding = embeddings[j];\n if (embedding) {\n results[item.index] = embedding;\n if (cache) {\n cache.set(hashText(item.text), embedding);\n }\n }\n });\n\n onProgress?.(Math.min(i + batchSize, toEmbed.length), toEmbed.length);\n }\n\n // Validate all embeddings were populated (no sparse array holes)\n for (let i = 0; i < results.length; i++) {\n if (!results[i]) {\n throw new Error(`Embedding failed for text at index ${i}: incomplete batch response`);\n }\n }\n\n return results;\n }\n\n async function embedChunks(chunks: TextChunk[]): Promise<TextChunk[]> {\n const texts = chunks.map(c => c.content);\n const embeddings = await embedBatch(texts);\n\n return chunks.map((chunk, i) => ({\n ...chunk,\n embedding: embeddings[i],\n }));\n }\n\n return {\n embed,\n embedBatch,\n embedChunks,\n dimensions: model.dimensions,\n modelId: model.modelId,\n };\n}\n\nexport interface Embedder {\n embed: (text: string) => Promise<number[]>;\n embedBatch: (texts: string[]) => Promise<number[][]>;\n embedChunks: (chunks: TextChunk[]) => Promise<TextChunk[]>;\n readonly dimensions: number;\n readonly modelId: string;\n}\n\n/**\n * Simple djb2-style hash for cache keys.\n * Note: For production caches with millions of entries, consider using\n * a stronger hash (SHA-256) to reduce collision probability.\n */\nfunction hashText(text: string): string {\n let hash = 0;\n for (let i = 0; i < text.length; i++) {\n const char = text.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return `embed-${hash}`;\n}\n\n// -----------------------------------------------------------------------------\n// Similarity Search\n// -----------------------------------------------------------------------------\n\n/**\n * Calculates cosine similarity between two vectors.\n */\nexport function cosineSimilarity(a: number[], b: number[]): number {\n if (a.length !== b.length) {\n throw new Error('Vectors must have same dimensions');\n }\n\n let dotProduct = 0;\n let normA = 0;\n let normB = 0;\n\n for (let i = 0; i < a.length; i++) {\n const aVal = a[i] ?? 0;\n const bVal = b[i] ?? 0;\n dotProduct += aVal * bVal;\n normA += aVal * aVal;\n normB += bVal * bVal;\n }\n\n if (normA === 0 || normB === 0) return 0;\n return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));\n}\n\n/**\n * Creates an in-memory vector store.\n *\n * @example\n * ```typescript\n * const store = createInMemoryVectorStore();\n *\n * await store.upsert(embeddedChunks);\n * const results = await store.search(queryEmbedding, { topK: 5 });\n * ```\n */\nexport function createInMemoryVectorStore(): VectorStore {\n const chunks = new Map<string, TextChunk>();\n\n async function upsert(newChunks: TextChunk[]): Promise<void> {\n for (const chunk of newChunks) {\n chunks.set(chunk.id, chunk);\n }\n }\n\n async function search(embedding: number[], options?: SearchOptions): Promise<SearchResult[]> {\n const { topK = 10, minScore = 0 } = options ?? {};\n\n const results: SearchResult[] = [];\n\n for (const chunk of chunks.values()) {\n if (!chunk.embedding) continue;\n\n const score = cosineSimilarity(embedding, chunk.embedding);\n\n if (score >= minScore) {\n results.push({ chunk, score, rank: 0 });\n }\n }\n\n // Sort by score descending\n results.sort((a, b) => b.score - a.score);\n\n // Take top K and assign ranks\n return results.slice(0, topK).map((r, i) => ({ ...r, rank: i + 1 }));\n }\n\n async function deleteChunks(ids: string[]): Promise<void> {\n for (const id of ids) {\n chunks.delete(id);\n }\n }\n\n async function clear(): Promise<void> {\n chunks.clear();\n }\n\n return {\n upsert,\n search,\n delete: deleteChunks,\n clear,\n };\n}\n\n// -----------------------------------------------------------------------------\n// RAG Pipeline\n// -----------------------------------------------------------------------------\n\n/**\n * Creates a RAG pipeline for retrieval-augmented generation.\n *\n * @example\n * ```typescript\n * const rag = createRAGPipeline({\n * embedder,\n * vectorStore,\n * topK: 5,\n * maxTokens: 2000\n * });\n *\n * const context = await rag.retrieve('What is the capital of France?');\n * const prompt = rag.buildPrompt(context, 'Answer the question based on context.');\n * ```\n */\nexport function createRAGPipeline(options: {\n embedder: Embedder;\n vectorStore: VectorStore;\n topK?: number;\n maxTokens?: number;\n minScore?: number;\n}): RAGPipeline {\n const { embedder, vectorStore, topK = 5, maxTokens = 2000, minScore = 0.5 } = options;\n\n async function ingest(\n documents: { id: string; content: string; metadata?: Record<string, unknown> }[],\n chunker: Chunker,\n ): Promise<void> {\n const allChunks: TextChunk[] = [];\n\n for (const doc of documents) {\n const chunks = chunker.chunk(doc.content, {\n sourceId: doc.id,\n ...doc.metadata,\n });\n allChunks.push(...chunks);\n }\n\n const embeddedChunks = await embedder.embedChunks(allChunks);\n await vectorStore.upsert(embeddedChunks);\n }\n\n async function retrieve(query: string): Promise<RAGContext> {\n const queryEmbedding = await embedder.embed(query);\n const results = await vectorStore.search(queryEmbedding, { topK, minScore });\n\n // Build formatted context\n let formattedContext = '';\n let totalTokens = 0;\n const estimateTokens = (text: string) => Math.ceil(text.length / 4);\n\n for (const result of results) {\n const chunkText = result.chunk.content;\n const chunkTokens = estimateTokens(chunkText);\n\n if (totalTokens + chunkTokens > maxTokens) break;\n\n formattedContext +=\n `[Source: ${result.chunk.metadata.sourceId ?? 'unknown'}, ` +\n `Relevance: ${result.score.toFixed(2)}]\\n` +\n `${chunkText}\\n\\n`;\n totalTokens += chunkTokens;\n }\n\n return {\n query,\n results,\n totalTokens,\n formattedContext: formattedContext.trim(),\n };\n }\n\n function buildPrompt(context: RAGContext, systemPrompt?: string): string {\n const system = systemPrompt ?? 'Answer the question based on the provided context.';\n\n return `${system}\n\nContext:\n${context.formattedContext}\n\nQuestion: ${context.query}\n\nAnswer:`;\n }\n\n return {\n ingest,\n retrieve,\n buildPrompt,\n };\n}\n\nexport interface RAGPipeline {\n ingest: (\n documents: { id: string; content: string; metadata?: Record<string, unknown> }[],\n chunker: Chunker,\n ) => Promise<void>;\n retrieve: (query: string) => Promise<RAGContext>;\n buildPrompt: (context: RAGContext, systemPrompt?: string) => string;\n}\n\n// -----------------------------------------------------------------------------\n// Reranking\n// -----------------------------------------------------------------------------\n\nexport {\n // Reranker factories\n createCohereReranker,\n createCrossEncoderReranker,\n // Pipelines and utilities\n createRerankPipeline,\n reciprocalRankFusion,\n vectorResultsToDocuments,\n calculateNDCG,\n calculateMRR,\n // Types\n type RerankDocument,\n type RerankResult,\n type RerankOptions,\n type RerankProvider,\n type CohereRerankConfig,\n type CrossEncoderConfig,\n type RerankPipelineConfig,\n} from './reranking';\n\n// -----------------------------------------------------------------------------\n// AI SDK Quick Embed Helpers (migrated from @repo/ai)\n// -----------------------------------------------------------------------------\n\nimport {\n embed as sdkEmbed,\n embedMany as sdkEmbedMany,\n cosineSimilarity as sdkCosineSimilarity,\n} from '../../shared';\n\nimport type { SDKEmbeddingModel } from '../../shared';\n\n/**\n * Quick single-text embedding using AI SDK's embed function.\n *\n * @param model - AI SDK embedding model instance\n * @param value - Text to embed\n * @param options - Optional configuration\n * @returns Embed result from AI SDK\n *\n * @example\n * ```ts\n * import { openai } from '@ai-sdk/openai';\n * import { embedText } from '@od-oneapp/ai-platform/grounding/embed';\n *\n * const result = await embedText(\n * openai.embedding('text-embedding-3-small'),\n * 'Hello world',\n * );\n * console.log(result.embedding); // number[]\n * ```\n */\nexport async function embedText(\n model: SDKEmbeddingModel,\n value: string,\n options?: { maxRetries?: number },\n) {\n return sdkEmbed({\n model,\n value,\n maxRetries: options?.maxRetries ?? 2,\n });\n}\n\n/**\n * Quick batch embedding using AI SDK's embedMany function.\n *\n * @param model - AI SDK embedding model instance\n * @param values - Array of texts to embed\n * @param options - Optional configuration\n * @returns EmbedMany result from AI SDK\n *\n * @example\n * ```ts\n * import { openai } from '@ai-sdk/openai';\n * import { embedBatch } from '@od-oneapp/ai-platform/grounding/embed';\n *\n * const result = await embedBatch(\n * openai.embedding('text-embedding-3-small'),\n * ['Hello', 'World'],\n * );\n * console.log(result.embeddings); // number[][]\n * ```\n */\nexport async function embedBatch(\n model: SDKEmbeddingModel,\n values: string[],\n options?: { maxParallelCalls?: number },\n) {\n return sdkEmbedMany({\n model,\n values,\n maxParallelCalls: options?.maxParallelCalls ?? 2,\n });\n}\n\n/**\n * Calculate similarity between two texts by embedding them and computing cosine similarity.\n *\n * @param model - AI SDK embedding model instance\n * @param text1 - First text\n * @param text2 - Second text\n * @returns Cosine similarity score between -1 and 1\n *\n * @example\n * ```ts\n * import { openai } from '@ai-sdk/openai';\n * import { calculateTextSimilarity } from '@od-oneapp/ai-platform/grounding/embed';\n *\n * const score = await calculateTextSimilarity(\n * openai.embedding('text-embedding-3-small'),\n * 'The cat sat on the mat',\n * 'A feline rested on a rug',\n * );\n * console.log(score); // 0.85 (high similarity)\n * ```\n */\nexport async function calculateTextSimilarity(\n model: SDKEmbeddingModel,\n text1: string,\n text2: string,\n): Promise<number> {\n const [{ embedding: e1 }, { embedding: e2 }] = await Promise.all([\n embedText(model, text1),\n embedText(model, text2),\n ]);\n return sdkCosineSimilarity(e1, e2);\n}\n"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { i as GroundingSource } from "./types-D3zJb59_.mjs";
2
+
3
+ //#region src/grounding/hallucination/index.d.ts
4
+ interface Claim {
5
+ text: string;
6
+ startIndex: number;
7
+ endIndex: number;
8
+ }
9
+ interface ClaimVerificationResult {
10
+ claim: Claim;
11
+ isSupported: boolean;
12
+ confidence: number;
13
+ supportingSources: string[];
14
+ explanation?: string;
15
+ }
16
+ interface HallucinationResult {
17
+ isHallucinated: boolean;
18
+ confidence: number;
19
+ unsupportedClaims: Claim[];
20
+ supportedClaims: Claim[];
21
+ verificationResults: ClaimVerificationResult[];
22
+ summary: string;
23
+ }
24
+ interface HallucinationDetectorOptions {
25
+ supportThreshold?: number;
26
+ extractClaims?: boolean;
27
+ claimExtractor?: (text: string) => Claim[];
28
+ similarityFn?: (claim: string, source: string) => number;
29
+ }
30
+ declare function extractClaims(text: string): Claim[];
31
+ declare function calculateJaccardSimilarity(text1: string, text2: string): number;
32
+ declare function verifyClaim(claim: Claim, sources: GroundingSource[], options?: {
33
+ threshold?: number;
34
+ similarityFn?: (a: string, b: string) => number;
35
+ }): ClaimVerificationResult;
36
+ declare function detectHallucinations(text: string, sources: GroundingSource[], options?: HallucinationDetectorOptions): Promise<HallucinationResult>;
37
+ declare function createHallucinationDetector(options?: HallucinationDetectorOptions): {
38
+ detect: (text: string, sources: GroundingSource[]) => Promise<HallucinationResult>;
39
+ extractClaims: (text: string) => Claim[];
40
+ verifyClaim: (claim: Claim, sources: GroundingSource[]) => ClaimVerificationResult;
41
+ };
42
+ //#endregion
43
+ export { Claim, ClaimVerificationResult, HallucinationDetectorOptions, HallucinationResult, calculateJaccardSimilarity, createHallucinationDetector, detectHallucinations, extractClaims, verifyClaim };
44
+ //# sourceMappingURL=grounding-hallucination.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grounding-hallucination.d.mts","names":[],"sources":["../src/grounding/hallucination/index.ts"],"mappings":";;;UAUiB,KAAA;EACf,IAAA;EACA,UAAA;EACA,QAAA;AAAA;AAAA,UAGe,uBAAA;EACf,KAAA,EAAO,KAAA;EACP,WAAA;EACA,UAAA;EACA,iBAAA;EACA,WAAA;AAAA;AAAA,UAGe,mBAAA;EACf,cAAA;EACA,UAAA;EACA,iBAAA,EAAmB,KAAA;EACnB,eAAA,EAAiB,KAAA;EACjB,mBAAA,EAAqB,uBAAA;EACrB,OAAA;AAAA;AAAA,UAGe,4BAAA;EAEf,gBAAA;EAEA,aAAA;EAEA,cAAA,IAAkB,IAAA,aAAiB,KAAA;EAEnC,YAAA,IAAgB,KAAA,UAAe,MAAA;AAAA;AAAA,iBAMjB,aAAA,CAAc,IAAA,WAAe,KAAA;AAAA,iBAsC7B,0BAAA,CAA2B,KAAA,UAAe,KAAA;AAAA,iBAsB1C,WAAA,CACd,KAAA,EAAO,KAAA,EACP,OAAA,EAAS,eAAA,IACT,OAAA;EAAW,SAAA;EAAoB,YAAA,IAAgB,CAAA,UAAW,CAAA;AAAA,IACzD,uBAAA;AAAA,iBA8CmB,oBAAA,CACpB,IAAA,UACA,OAAA,EAAS,eAAA,IACT,OAAA,GAAS,4BAAA,GACR,OAAA,CAAQ,mBAAA;AAAA,iBAkDK,2BAAA,CAA4B,OAAA,GAAS,4BAAA;yBAE5B,OAAA,EAAW,eAAA,OAAiB,OAAA,CAAA,mBAAA;mCA9KhB,KAAA;uBAiLZ,KAAA,EAAK,OAAA,EAAW,eAAA,OAAiB,uBAAA;AAAA"}
@@ -0,0 +1,115 @@
1
+ //#region src/grounding/hallucination/index.ts
2
+ /**
3
+ * Extract factual claims from text using simple heuristics
4
+ */
5
+ function extractClaims(text) {
6
+ const claims = [];
7
+ const sentencePattern = /[^.!?]+[.!?]+/g;
8
+ let match;
9
+ while ((match = sentencePattern.exec(text)) !== null) {
10
+ const sentence = match[0].trim();
11
+ if (sentence.endsWith("?") || /\b(I think|I believe|maybe|perhaps|might|could be|seems like)\b/i.test(sentence)) continue;
12
+ if (/\b\d+\b/.test(sentence) || /\b(is|are|was|were|has|have|will)\b/i.test(sentence) || /\b[A-Z][a-z]+\s[A-Z][a-z]+\b/.test(sentence)) claims.push({
13
+ text: sentence,
14
+ startIndex: match.index,
15
+ endIndex: match.index + sentence.length
16
+ });
17
+ }
18
+ return claims;
19
+ }
20
+ /**
21
+ * Calculate text similarity using Jaccard index
22
+ */
23
+ function calculateJaccardSimilarity(text1, text2) {
24
+ const normalize = (s) => s.toLowerCase().replace(/[^\w\s]/g, "").split(/\s+/).filter((w) => w.length > 2);
25
+ const words1 = new Set(normalize(text1));
26
+ const words2 = new Set(normalize(text2));
27
+ if (words1.size === 0 || words2.size === 0) return 0;
28
+ const intersection = new Set([...words1].filter((w) => words2.has(w)));
29
+ const union = new Set([...words1, ...words2]);
30
+ return intersection.size / union.size;
31
+ }
32
+ /**
33
+ * Verify a single claim against sources
34
+ */
35
+ function verifyClaim(claim, sources, options = {}) {
36
+ const { threshold = .3, similarityFn = calculateJaccardSimilarity } = options;
37
+ const supportingSources = [];
38
+ let maxSimilarity = 0;
39
+ for (const source of sources) {
40
+ const similarity = similarityFn(claim.text, source.content);
41
+ if (similarity > maxSimilarity) maxSimilarity = similarity;
42
+ if (similarity >= threshold) supportingSources.push(source.id);
43
+ }
44
+ const isSupported = supportingSources.length > 0;
45
+ return {
46
+ claim,
47
+ isSupported,
48
+ confidence: maxSimilarity,
49
+ supportingSources,
50
+ explanation: isSupported ? `Claim is supported by ${supportingSources.length} source(s)` : "No supporting evidence found in sources"
51
+ };
52
+ }
53
+ /**
54
+ * Detect hallucinations in generated text by comparing against sources
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * const result = await detectHallucinations(
59
+ * "The company was founded in 2020 and has 500 employees.",
60
+ * [{ id: "1", content: "Founded in 2019 with initial team of 10 people." }]
61
+ * );
62
+ *
63
+ * if (result.isHallucinated) {
64
+ * console.log("Unsupported claims:", result.unsupportedClaims);
65
+ * }
66
+ * ```
67
+ */
68
+ async function detectHallucinations(text, sources, options = {}) {
69
+ const { supportThreshold = .3, extractClaims: shouldExtract = true, claimExtractor = extractClaims, similarityFn = calculateJaccardSimilarity } = options;
70
+ const claims = shouldExtract ? claimExtractor(text) : [{
71
+ text,
72
+ startIndex: 0,
73
+ endIndex: text.length
74
+ }];
75
+ if (claims.length === 0) return {
76
+ isHallucinated: false,
77
+ confidence: 1,
78
+ unsupportedClaims: [],
79
+ supportedClaims: [],
80
+ verificationResults: [],
81
+ summary: "No factual claims detected in text"
82
+ };
83
+ const verificationResults = claims.map((claim) => verifyClaim(claim, sources, {
84
+ threshold: supportThreshold,
85
+ similarityFn
86
+ }));
87
+ const supportedClaims = verificationResults.filter((r) => r.isSupported).map((r) => r.claim);
88
+ const unsupportedClaims = verificationResults.filter((r) => !r.isSupported).map((r) => r.claim);
89
+ const isHallucinated = unsupportedClaims.length > 0;
90
+ return {
91
+ isHallucinated,
92
+ confidence: supportedClaims.length / claims.length,
93
+ unsupportedClaims,
94
+ supportedClaims,
95
+ verificationResults,
96
+ summary: isHallucinated ? `Found ${unsupportedClaims.length} unsupported claim(s) out of ${claims.length} total` : `All ${claims.length} claim(s) are supported by sources`
97
+ };
98
+ }
99
+ /**
100
+ * Create a hallucination detector with custom configuration
101
+ */
102
+ function createHallucinationDetector(options = {}) {
103
+ return {
104
+ detect: (text, sources) => detectHallucinations(text, sources, options),
105
+ extractClaims: options.claimExtractor ?? extractClaims,
106
+ verifyClaim: (claim, sources) => verifyClaim(claim, sources, {
107
+ threshold: options.supportThreshold,
108
+ similarityFn: options.similarityFn
109
+ })
110
+ };
111
+ }
112
+
113
+ //#endregion
114
+ export { calculateJaccardSimilarity, createHallucinationDetector, detectHallucinations, extractClaims, verifyClaim };
115
+ //# sourceMappingURL=grounding-hallucination.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grounding-hallucination.mjs","names":[],"sources":["../src/grounding/hallucination/index.ts"],"sourcesContent":["/**\n * Hallucination detection\n * @module @od-oneapp/ai-platform/grounding/hallucination\n *\n * Provides utilities for detecting claims that are not supported\n * by the provided source documents.\n */\n\nimport type { GroundingSource } from '../types';\n\nexport interface Claim {\n text: string;\n startIndex: number;\n endIndex: number;\n}\n\nexport interface ClaimVerificationResult {\n claim: Claim;\n isSupported: boolean;\n confidence: number;\n supportingSources: string[];\n explanation?: string;\n}\n\nexport interface HallucinationResult {\n isHallucinated: boolean;\n confidence: number;\n unsupportedClaims: Claim[];\n supportedClaims: Claim[];\n verificationResults: ClaimVerificationResult[];\n summary: string;\n}\n\nexport interface HallucinationDetectorOptions {\n /** Minimum confidence threshold for considering a claim supported */\n supportThreshold?: number;\n /** Whether to extract and check individual claims */\n extractClaims?: boolean;\n /** Custom claim extractor */\n claimExtractor?: (text: string) => Claim[];\n /** Custom similarity function */\n similarityFn?: (claim: string, source: string) => number;\n}\n\n/**\n * Extract factual claims from text using simple heuristics\n */\nexport function extractClaims(text: string): Claim[] {\n const claims: Claim[] = [];\n\n // Split by sentences\n const sentencePattern = /[^.!?]+[.!?]+/g;\n let match;\n\n while ((match = sentencePattern.exec(text)) !== null) {\n const sentence = match[0].trim();\n\n // Skip questions, opinions, and hedged statements\n if (\n sentence.endsWith('?') ||\n /\\b(I think|I believe|maybe|perhaps|might|could be|seems like)\\b/i.test(sentence)\n ) {\n continue;\n }\n\n // Look for factual patterns (contains numbers, dates, names, or definitive statements)\n if (\n /\\b\\d+\\b/.test(sentence) || // Contains numbers\n /\\b(is|are|was|were|has|have|will)\\b/i.test(sentence) || // Contains factual verbs\n /\\b[A-Z][a-z]+\\s[A-Z][a-z]+\\b/.test(sentence) // Contains proper nouns\n ) {\n claims.push({\n text: sentence,\n startIndex: match.index,\n endIndex: match.index + sentence.length,\n });\n }\n }\n\n return claims;\n}\n\n/**\n * Calculate text similarity using Jaccard index\n */\nexport function calculateJaccardSimilarity(text1: string, text2: string): number {\n const normalize = (s: string) =>\n s\n .toLowerCase()\n .replace(/[^\\w\\s]/g, '')\n .split(/\\s+/)\n .filter(w => w.length > 2);\n\n const words1 = new Set(normalize(text1));\n const words2 = new Set(normalize(text2));\n\n if (words1.size === 0 || words2.size === 0) return 0;\n\n const intersection = new Set([...words1].filter(w => words2.has(w)));\n const union = new Set([...words1, ...words2]);\n\n return intersection.size / union.size;\n}\n\n/**\n * Verify a single claim against sources\n */\nexport function verifyClaim(\n claim: Claim,\n sources: GroundingSource[],\n options: { threshold?: number; similarityFn?: (a: string, b: string) => number } = {},\n): ClaimVerificationResult {\n const { threshold = 0.3, similarityFn = calculateJaccardSimilarity } = options;\n\n const supportingSources: string[] = [];\n let maxSimilarity = 0;\n\n for (const source of sources) {\n const similarity = similarityFn(claim.text, source.content);\n\n if (similarity > maxSimilarity) {\n maxSimilarity = similarity;\n }\n\n if (similarity >= threshold) {\n supportingSources.push(source.id);\n }\n }\n\n const isSupported = supportingSources.length > 0;\n\n return {\n claim,\n isSupported,\n confidence: maxSimilarity,\n supportingSources,\n explanation: isSupported\n ? `Claim is supported by ${supportingSources.length} source(s)`\n : 'No supporting evidence found in sources',\n };\n}\n\n/**\n * Detect hallucinations in generated text by comparing against sources\n *\n * @example\n * ```ts\n * const result = await detectHallucinations(\n * \"The company was founded in 2020 and has 500 employees.\",\n * [{ id: \"1\", content: \"Founded in 2019 with initial team of 10 people.\" }]\n * );\n *\n * if (result.isHallucinated) {\n * console.log(\"Unsupported claims:\", result.unsupportedClaims);\n * }\n * ```\n */\nexport async function detectHallucinations(\n text: string,\n sources: GroundingSource[],\n options: HallucinationDetectorOptions = {},\n): Promise<HallucinationResult> {\n const {\n supportThreshold = 0.3,\n extractClaims: shouldExtract = true,\n claimExtractor = extractClaims,\n similarityFn = calculateJaccardSimilarity,\n } = options;\n\n // Extract claims from text\n const claims = shouldExtract\n ? claimExtractor(text)\n : [{ text, startIndex: 0, endIndex: text.length }];\n\n if (claims.length === 0) {\n return {\n isHallucinated: false,\n confidence: 1.0,\n unsupportedClaims: [],\n supportedClaims: [],\n verificationResults: [],\n summary: 'No factual claims detected in text',\n };\n }\n\n // Verify each claim\n const verificationResults = claims.map(claim =>\n verifyClaim(claim, sources, { threshold: supportThreshold, similarityFn }),\n );\n\n const supportedClaims = verificationResults.filter(r => r.isSupported).map(r => r.claim);\n const unsupportedClaims = verificationResults.filter(r => !r.isSupported).map(r => r.claim);\n\n const isHallucinated = unsupportedClaims.length > 0;\n const supportedRatio = supportedClaims.length / claims.length;\n\n return {\n isHallucinated,\n confidence: supportedRatio,\n unsupportedClaims,\n supportedClaims,\n verificationResults,\n summary: isHallucinated\n ? `Found ${unsupportedClaims.length} unsupported claim(s) out of ${claims.length} total`\n : `All ${claims.length} claim(s) are supported by sources`,\n };\n}\n\n/**\n * Create a hallucination detector with custom configuration\n */\nexport function createHallucinationDetector(options: HallucinationDetectorOptions = {}) {\n return {\n detect: (text: string, sources: GroundingSource[]) =>\n detectHallucinations(text, sources, options),\n extractClaims: options.claimExtractor ?? extractClaims,\n verifyClaim: (claim: Claim, sources: GroundingSource[]) =>\n verifyClaim(claim, sources, {\n threshold: options.supportThreshold,\n similarityFn: options.similarityFn,\n }),\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { C as proofMapSchema, E as verificationSchema, S as hasFailingChecks, T as stepSchema, _ as checkStatus, a as validateSafeEdits, b as editSchema, c as CheckStatus, d as ProofMap, f as ProofStatus, g as checkSchema, h as chainSchema, i as applyPatch, l as Claim, m as Verification, n as runProofLoop, o as Chain, p as Step, r as verifyProof, s as Check, t as ProofLoopOptions, u as Edit, v as claimSchema, w as proofStatus, x as getCriticalClaims, y as criticalClaimsPass } from "./loop-C-tBBOqi.mjs";
2
+
3
+ //#region src/grounding/proof-map/index.d.ts
4
+ declare namespace index_d_exports {
5
+ export { Chain, Check, CheckStatus, Claim, Edit, ProofLoopOptions, ProofMap, ProofStatus, Step, Verification, applyPatch, chainSchema, checkSchema, checkStatus, claimSchema, criticalClaimsPass, editSchema, getCriticalClaims, hasFailingChecks, proofMapSchema, proofStatus, runProofLoop, stepSchema, validateSafeEdits, verificationSchema, verifyProof };
6
+ }
7
+ //#endregion
8
+ export { Chain, Check, CheckStatus, Claim, Edit, ProofLoopOptions, ProofMap, ProofStatus, Step, Verification, applyPatch, chainSchema, checkSchema, checkStatus, claimSchema, criticalClaimsPass, editSchema, getCriticalClaims, hasFailingChecks, proofMapSchema, proofStatus, runProofLoop, stepSchema, index_d_exports as t, validateSafeEdits, verificationSchema, verifyProof };
9
+ //# sourceMappingURL=grounding-proof-map.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grounding-proof-map.d.mts","names":[],"sources":["../src/grounding/proof-map/index.ts"],"mappings":""}