@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,1600 @@
1
+ import { t as __exportAll } from "./chunk-CkzbjWQW.mjs";
2
+ import { A as createOpenAI, D as createGoogleGenerativeAI, I as createXai, T as createAnthropic, Wt as xai, at as google, h as anthropic, j as createOpenAICompatible, vt as openai } from "./ai-runtime-CDzQztTt.mjs";
3
+ import { i as getModelMetadata, n as Model, r as getModelId, t as MODEL_METADATA } from "./registry-CsD3iTIx.mjs";
4
+
5
+ //#region src/models/provider-factory.ts
6
+ /**
7
+ * Creates an AI SDK LanguageModel instance for a semantic model name.
8
+ *
9
+ * By default, routes through the configured gateway (AI_GATEWAY env var).
10
+ * Use `useNative: true` to bypass gateway and connect directly to the provider.
11
+ *
12
+ * @param model - Semantic model name from the {@link Model} enum
13
+ * @param options - Optional configuration for gateway routing
14
+ * @returns AI SDK LanguageModel instance ready for use with generateText/streamText
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * // Uses gateway (default)
19
+ * const model = createLanguageModel(Model.SONNET);
20
+ * const { text } = await generateText({ model, prompt: "Hello" });
21
+ * ```
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * // Bypass gateway for direct provider connection
26
+ * const model = createLanguageModel(Model.SONNET, { useNative: true });
27
+ * ```
28
+ */
29
+ function createLanguageModel(model, options) {
30
+ const modelId = getModelId(model);
31
+ const metadata = getModelMetadata(model);
32
+ const useNative = options?.useNative ?? false;
33
+ const configuredGateway = process.env.AI_GATEWAY;
34
+ if (!useNative && configuredGateway) {
35
+ if (configuredGateway === "cloudflare") return getCloudflareProvider(model);
36
+ if (configuredGateway === "vercel") return getVercelGatewayProvider(model);
37
+ }
38
+ switch (metadata.provider) {
39
+ case "anthropic": return anthropic(modelId);
40
+ case "openai": return openai(modelId);
41
+ case "google": return google(modelId);
42
+ case "xai": return createXai()(modelId);
43
+ case "perplexity": {
44
+ const apiKey = process.env.PERPLEXITY_API_KEY;
45
+ if (!apiKey) throw new Error("PERPLEXITY_API_KEY is required for Perplexity provider");
46
+ return createOpenAICompatible({
47
+ name: "perplexity",
48
+ baseURL: "https://api.perplexity.ai",
49
+ apiKey
50
+ })(modelId);
51
+ }
52
+ default: throw new Error(`Unsupported provider: ${metadata.provider}`);
53
+ }
54
+ }
55
+ /**
56
+ * Get model through Cloudflare AI Gateway
57
+ */
58
+ function getCloudflareProvider(model) {
59
+ const modelId = getModelId(model);
60
+ const metadata = getModelMetadata(model);
61
+ const accountId = process.env.CLOUDFLARE_ACCOUNT_ID;
62
+ const gatewayName = process.env.CLOUDFLARE_AI_GATEWAY_NAME || "ai-gateway";
63
+ if (!accountId) throw new Error("CLOUDFLARE_ACCOUNT_ID required for Cloudflare gateway");
64
+ const baseURL = `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayName}/${metadata.provider}`;
65
+ switch (metadata.provider) {
66
+ case "anthropic": return createAnthropic({ baseURL })(modelId);
67
+ case "openai": return createOpenAI({ baseURL })(modelId);
68
+ case "google": return createGoogleGenerativeAI({ baseURL })(modelId);
69
+ case "perplexity":
70
+ case "xai": throw new Error(`Cloudflare gateway not supported for ${metadata.provider}`);
71
+ default: throw new Error(`Cloudflare gateway not supported for ${metadata.provider}`);
72
+ }
73
+ }
74
+ /**
75
+ * Get model through Vercel AI Gateway
76
+ */
77
+ function getVercelGatewayProvider(model) {
78
+ const modelId = getModelId(model);
79
+ const metadata = getModelMetadata(model);
80
+ const apiKey = process.env.AI_GATEWAY_API_KEY;
81
+ const baseURL = process.env.AI_GATEWAY_BASE_URL || "https://gateway.ai.vercel.com";
82
+ if (!apiKey) throw new Error("AI_GATEWAY_API_KEY required for Vercel gateway");
83
+ switch (metadata.provider) {
84
+ case "anthropic": return createAnthropic({
85
+ baseURL,
86
+ apiKey,
87
+ headers: { "x-api-key": apiKey }
88
+ })(modelId);
89
+ case "openai": return createOpenAI({
90
+ baseURL,
91
+ apiKey,
92
+ headers: { "x-api-key": apiKey }
93
+ })(modelId);
94
+ case "google":
95
+ case "perplexity":
96
+ case "xai": throw new Error(`Vercel gateway not supported for ${metadata.provider}`);
97
+ default: throw new Error(`Vercel gateway not supported for ${metadata.provider}`);
98
+ }
99
+ }
100
+ /**
101
+ * Returns all models classified under a given performance tier.
102
+ *
103
+ * @param tier - The tier to filter by (e.g., 'fast', 'balanced', 'powerful')
104
+ * @returns Array of Model enum values matching the tier
105
+ */
106
+ function getModelsByTier(tier) {
107
+ return Object.entries(MODEL_METADATA).filter(([, metadata]) => metadata.tier === tier).map(([model]) => model);
108
+ }
109
+ /**
110
+ * Get the tier classification for a model
111
+ *
112
+ * @param model - Semantic model name
113
+ * @returns Model tier classification
114
+ */
115
+ function getModelTier(model) {
116
+ return getModelMetadata(model).tier;
117
+ }
118
+ /**
119
+ * Estimate cost for a generation based on token usage
120
+ *
121
+ * @param model - Semantic model name
122
+ * @param inputTokens - Number of input tokens
123
+ * @param outputTokens - Number of output tokens
124
+ * @returns Estimated cost in USD
125
+ */
126
+ function estimateCost(model, inputTokens, outputTokens) {
127
+ const metadata = getModelMetadata(model);
128
+ return inputTokens / 1e3 * metadata.costPer1kInput + outputTokens / 1e3 * metadata.costPer1kOutput;
129
+ }
130
+ /**
131
+ * Finds the cheapest model that satisfies the given capability requirements.
132
+ *
133
+ * @param options - Required capabilities and constraints
134
+ * @returns The least expensive Model matching all requirements
135
+ * @throws Error if no models satisfy the requirements
136
+ */
137
+ function getCheapestModel(options) {
138
+ const candidates = Object.entries(MODEL_METADATA).filter(([, metadata]) => {
139
+ if (options.supportsTools && !metadata.supportsTools) return false;
140
+ if (options.supportsStreaming && !metadata.supportsStreaming) return false;
141
+ if (options.minContextWindow !== void 0 && metadata.contextWindow < options.minContextWindow) return false;
142
+ return true;
143
+ }).sort((a, b) => a[1].costPer1kInput - b[1].costPer1kInput);
144
+ if (candidates.length === 0) throw new Error("No models match the specified requirements");
145
+ const [model] = candidates[0] ?? [];
146
+ if (!model) throw new Error("No models match the specified requirements");
147
+ return model;
148
+ }
149
+
150
+ //#endregion
151
+ //#region src/models/providers/shared.ts
152
+ /**
153
+ * @fileoverview Shared provider utilities
154
+ *
155
+ * Common constants and helpers used across all AI providers.
156
+ * Single source of truth for temperature, token, and topP presets.
157
+ *
158
+ * @module @od-oneapp/ai-platform/models/providers/shared
159
+ */
160
+ /**
161
+ * Common temperature presets used across providers.
162
+ */
163
+ const TEMPS = {
164
+ PRECISE: 0,
165
+ VERY_LOW: .1,
166
+ FACTUAL: .2,
167
+ LOW_CREATIVE: .3,
168
+ MODERATE: .5,
169
+ BALANCED: .7,
170
+ HIGH_CREATIVE: .8,
171
+ CREATIVE: .9
172
+ };
173
+ /**
174
+ * Common token limit presets.
175
+ */
176
+ const TOKENS = {
177
+ TINY: 256,
178
+ SHORT: 1024,
179
+ MEDIUM: 2048,
180
+ LONG: 4096,
181
+ EXTENDED: 8192,
182
+ MAX: 16384
183
+ };
184
+ /**
185
+ * Common topP values for nucleus sampling.
186
+ */
187
+ const TOP_P = {
188
+ DETERMINISTIC: 1,
189
+ FOCUSED: .95,
190
+ BALANCED: .98
191
+ };
192
+ /**
193
+ * Common mode configurations shared across providers.
194
+ */
195
+ const commonModes = {
196
+ precise: () => ({
197
+ temperature: TEMPS.PRECISE,
198
+ topP: TOP_P.DETERMINISTIC
199
+ }),
200
+ code: () => ({
201
+ temperature: TEMPS.FACTUAL,
202
+ topP: TOP_P.FOCUSED
203
+ }),
204
+ creative: () => ({
205
+ temperature: TEMPS.CREATIVE,
206
+ topP: TOP_P.BALANCED
207
+ }),
208
+ research: () => ({
209
+ temperature: TEMPS.FACTUAL,
210
+ maxOutputTokens: TOKENS.LONG
211
+ }),
212
+ quick: () => ({
213
+ temperature: TEMPS.MODERATE,
214
+ maxOutputTokens: TOKENS.SHORT
215
+ })
216
+ };
217
+
218
+ //#endregion
219
+ //#region src/models/providers/anthropic.ts
220
+ /**
221
+ * @fileoverview Anthropic provider configuration
222
+ *
223
+ * Provider-specific model IDs, option helpers, capability detection,
224
+ * and metadata extraction for Anthropic Claude models.
225
+ *
226
+ * All AI SDK imports come from the shared module.
227
+ *
228
+ * @module @od-oneapp/ai-platform/models/providers/anthropic
229
+ */
230
+ var anthropic_exports = /* @__PURE__ */ __exportAll({
231
+ ANTHROPIC_MODEL_CAPABILITIES: () => ANTHROPIC_MODEL_CAPABILITIES,
232
+ ANTHROPIC_MODEL_GROUPS: () => ANTHROPIC_MODEL_GROUPS,
233
+ ANTHROPIC_MODEL_IDS: () => ANTHROPIC_MODEL_IDS,
234
+ ANTHROPIC_PRESETS: () => ANTHROPIC_PRESETS,
235
+ ANTHROPIC_TOOL_NAMES: () => ANTHROPIC_TOOL_NAMES,
236
+ anthropic: () => anthropic,
237
+ anthropicTools: () => anthropicTools,
238
+ extractCacheMetadata: () => extractCacheMetadata,
239
+ extractProviderMetadata: () => extractProviderMetadata$1,
240
+ extractReasoningDetails: () => extractReasoningDetails,
241
+ extractToolErrors: () => extractToolErrors,
242
+ getCacheMinTokens: () => getCacheMinTokens,
243
+ getMaxContextTokens: () => getMaxContextTokens,
244
+ isMultimodalModel: () => isMultimodalModel,
245
+ isReasoningModel: () => isReasoningModel$1,
246
+ supportsCodeExecution: () => supportsCodeExecution,
247
+ supportsComputerUse: () => supportsComputerUse,
248
+ supportsPDF: () => supportsPDF,
249
+ supportsReasoning: () => supportsReasoning,
250
+ supportsWebSearch: () => supportsWebSearch$1,
251
+ withCacheControl: () => withCacheControl,
252
+ withExtendedCache: () => withExtendedCache,
253
+ withReasoning: () => withReasoning,
254
+ withSendReasoning: () => withSendReasoning
255
+ });
256
+ /** Single source of truth for Anthropic model IDs. */
257
+ const ANTHROPIC_MODEL_IDS = {
258
+ OPUS_4: "claude-opus-4-20250514",
259
+ SONNET_4: "claude-sonnet-4-20250514",
260
+ SONNET_37: "claude-3-7-sonnet-20250219",
261
+ SONNET_35: "claude-3-5-sonnet-20241022",
262
+ SONNET_35_OLD: "claude-3-5-sonnet-20240620",
263
+ HAIKU_35: "claude-3-5-haiku-20241022",
264
+ OPUS_3: "claude-3-opus-20240229",
265
+ SONNET_3: "claude-3-sonnet-20240229",
266
+ HAIKU_3: "claude-3-haiku-20240307"
267
+ };
268
+ /** Model groups for categorization. */
269
+ const ANTHROPIC_MODEL_GROUPS = {
270
+ REASONING_MODELS: [
271
+ ANTHROPIC_MODEL_IDS.OPUS_4,
272
+ ANTHROPIC_MODEL_IDS.SONNET_4,
273
+ ANTHROPIC_MODEL_IDS.SONNET_37
274
+ ],
275
+ MULTIMODAL_MODELS: [
276
+ ANTHROPIC_MODEL_IDS.OPUS_4,
277
+ ANTHROPIC_MODEL_IDS.SONNET_4,
278
+ ANTHROPIC_MODEL_IDS.SONNET_37,
279
+ ANTHROPIC_MODEL_IDS.SONNET_35,
280
+ ANTHROPIC_MODEL_IDS.SONNET_35_OLD,
281
+ ANTHROPIC_MODEL_IDS.HAIKU_35,
282
+ ANTHROPIC_MODEL_IDS.OPUS_3,
283
+ ANTHROPIC_MODEL_IDS.SONNET_3,
284
+ ANTHROPIC_MODEL_IDS.HAIKU_3
285
+ ],
286
+ PDF_CAPABLE_MODELS: [ANTHROPIC_MODEL_IDS.SONNET_35],
287
+ COMPUTER_USE_MODELS: [
288
+ ANTHROPIC_MODEL_IDS.OPUS_4,
289
+ ANTHROPIC_MODEL_IDS.SONNET_4,
290
+ ANTHROPIC_MODEL_IDS.SONNET_37,
291
+ ANTHROPIC_MODEL_IDS.SONNET_35
292
+ ],
293
+ WEB_SEARCH_MODELS: [
294
+ ANTHROPIC_MODEL_IDS.OPUS_4,
295
+ ANTHROPIC_MODEL_IDS.SONNET_4,
296
+ ANTHROPIC_MODEL_IDS.SONNET_37,
297
+ ANTHROPIC_MODEL_IDS.SONNET_35,
298
+ ANTHROPIC_MODEL_IDS.SONNET_35_OLD,
299
+ ANTHROPIC_MODEL_IDS.HAIKU_35
300
+ ],
301
+ CODE_EXECUTION_MODELS: [
302
+ ANTHROPIC_MODEL_IDS.OPUS_4,
303
+ ANTHROPIC_MODEL_IDS.SONNET_4,
304
+ ANTHROPIC_MODEL_IDS.SONNET_37,
305
+ ANTHROPIC_MODEL_IDS.SONNET_35,
306
+ ANTHROPIC_MODEL_IDS.SONNET_35_OLD,
307
+ ANTHROPIC_MODEL_IDS.HAIKU_35
308
+ ]
309
+ };
310
+ /** Per-model capability mapping. */
311
+ const ANTHROPIC_MODEL_CAPABILITIES = {
312
+ [ANTHROPIC_MODEL_IDS.OPUS_4]: {
313
+ imageInput: true,
314
+ objectGeneration: true,
315
+ toolUsage: true,
316
+ computerUse: true,
317
+ webSearch: true,
318
+ codeExecution: true,
319
+ pdfSupport: false,
320
+ reasoningText: true,
321
+ maxContextTokens: 2e5,
322
+ cacheMinTokens: 1024,
323
+ specialFeatures: [
324
+ "reasoning",
325
+ "computer-use",
326
+ "web-search",
327
+ "code-execution"
328
+ ]
329
+ },
330
+ [ANTHROPIC_MODEL_IDS.SONNET_4]: {
331
+ imageInput: true,
332
+ objectGeneration: true,
333
+ toolUsage: true,
334
+ computerUse: true,
335
+ webSearch: true,
336
+ codeExecution: true,
337
+ pdfSupport: false,
338
+ reasoningText: true,
339
+ maxContextTokens: 2e5,
340
+ cacheMinTokens: 1024,
341
+ specialFeatures: [
342
+ "reasoning",
343
+ "computer-use",
344
+ "web-search",
345
+ "code-execution"
346
+ ]
347
+ },
348
+ [ANTHROPIC_MODEL_IDS.SONNET_37]: {
349
+ imageInput: true,
350
+ objectGeneration: true,
351
+ toolUsage: true,
352
+ computerUse: true,
353
+ webSearch: true,
354
+ codeExecution: true,
355
+ pdfSupport: false,
356
+ reasoningText: true,
357
+ maxContextTokens: 2e5,
358
+ cacheMinTokens: 1024,
359
+ specialFeatures: [
360
+ "reasoning",
361
+ "computer-use",
362
+ "web-search",
363
+ "code-execution"
364
+ ]
365
+ },
366
+ [ANTHROPIC_MODEL_IDS.SONNET_35]: {
367
+ imageInput: true,
368
+ objectGeneration: true,
369
+ toolUsage: true,
370
+ computerUse: true,
371
+ webSearch: true,
372
+ codeExecution: true,
373
+ pdfSupport: true,
374
+ reasoningText: false,
375
+ maxContextTokens: 2e5,
376
+ cacheMinTokens: 1024,
377
+ specialFeatures: [
378
+ "pdf-support",
379
+ "computer-use",
380
+ "web-search",
381
+ "code-execution"
382
+ ]
383
+ },
384
+ [ANTHROPIC_MODEL_IDS.SONNET_35_OLD]: {
385
+ imageInput: true,
386
+ objectGeneration: true,
387
+ toolUsage: true,
388
+ computerUse: false,
389
+ webSearch: true,
390
+ codeExecution: true,
391
+ pdfSupport: false,
392
+ reasoningText: false,
393
+ maxContextTokens: 2e5,
394
+ cacheMinTokens: 1024,
395
+ specialFeatures: ["web-search", "code-execution"]
396
+ },
397
+ [ANTHROPIC_MODEL_IDS.HAIKU_35]: {
398
+ imageInput: true,
399
+ objectGeneration: true,
400
+ toolUsage: true,
401
+ computerUse: false,
402
+ webSearch: true,
403
+ codeExecution: true,
404
+ pdfSupport: false,
405
+ reasoningText: false,
406
+ maxContextTokens: 2e5,
407
+ cacheMinTokens: 2048,
408
+ specialFeatures: [
409
+ "fast",
410
+ "web-search",
411
+ "code-execution"
412
+ ]
413
+ },
414
+ [ANTHROPIC_MODEL_IDS.OPUS_3]: {
415
+ imageInput: true,
416
+ objectGeneration: true,
417
+ toolUsage: true,
418
+ computerUse: false,
419
+ webSearch: false,
420
+ codeExecution: false,
421
+ pdfSupport: false,
422
+ reasoningText: false,
423
+ maxContextTokens: 2e5,
424
+ cacheMinTokens: 1024,
425
+ specialFeatures: ["legacy"]
426
+ },
427
+ [ANTHROPIC_MODEL_IDS.SONNET_3]: {
428
+ imageInput: true,
429
+ objectGeneration: true,
430
+ toolUsage: true,
431
+ computerUse: false,
432
+ webSearch: false,
433
+ codeExecution: false,
434
+ pdfSupport: false,
435
+ reasoningText: false,
436
+ maxContextTokens: 2e5,
437
+ cacheMinTokens: 1024,
438
+ specialFeatures: ["legacy"]
439
+ },
440
+ [ANTHROPIC_MODEL_IDS.HAIKU_3]: {
441
+ imageInput: true,
442
+ objectGeneration: true,
443
+ toolUsage: true,
444
+ computerUse: false,
445
+ webSearch: false,
446
+ codeExecution: false,
447
+ pdfSupport: false,
448
+ reasoningText: false,
449
+ maxContextTokens: 2e5,
450
+ cacheMinTokens: 2048,
451
+ specialFeatures: ["legacy", "fast"]
452
+ }
453
+ };
454
+ /** Configuration presets for common use cases. */
455
+ const ANTHROPIC_PRESETS = {
456
+ REASONING: {
457
+ temperature: TEMPS.PRECISE,
458
+ maxOutputTokens: TOKENS.LONG,
459
+ topP: TOP_P.FOCUSED,
460
+ anthropic: { sendReasoning: true }
461
+ },
462
+ CREATIVE: {
463
+ temperature: TEMPS.CREATIVE,
464
+ maxOutputTokens: TOKENS.MEDIUM,
465
+ topP: TOP_P.BALANCED
466
+ },
467
+ CODING: {
468
+ temperature: TEMPS.BALANCED,
469
+ maxOutputTokens: TOKENS.EXTENDED,
470
+ topP: TOP_P.DETERMINISTIC
471
+ },
472
+ ANALYSIS: {
473
+ temperature: TEMPS.VERY_LOW,
474
+ maxOutputTokens: TOKENS.LONG,
475
+ topP: TOP_P.FOCUSED
476
+ },
477
+ VISION: {
478
+ temperature: TEMPS.BALANCED,
479
+ maxOutputTokens: TOKENS.MEDIUM,
480
+ topP: TOP_P.BALANCED
481
+ },
482
+ QUICK: {
483
+ temperature: TEMPS.VERY_LOW,
484
+ maxOutputTokens: TOKENS.SHORT,
485
+ topP: TOP_P.DETERMINISTIC
486
+ }
487
+ };
488
+ /** Anthropic tool name constants. */
489
+ const ANTHROPIC_TOOL_NAMES = {
490
+ WEB_SEARCH: "web_search",
491
+ CODE_EXECUTION: "code_execution",
492
+ COMPUTER: "computer",
493
+ BASH: "bash",
494
+ TEXT_EDITOR: "str_replace_editor",
495
+ TEXT_EDITOR_V2: "str_replace_based_edit_tool"
496
+ };
497
+ /** Anthropic-specific tool helpers wrapping SDK native tools. */
498
+ const anthropicTools = {
499
+ webSearch: (options) => anthropic.tools.webSearch_20250305(options ?? { maxUses: 5 }),
500
+ codeExecution: () => anthropic.tools.codeExecution_20250522(),
501
+ computer: (config) => anthropic.tools.computer_20241022({
502
+ displayWidthPx: config.displayWidth ?? 1920,
503
+ displayHeightPx: config.displayHeight ?? 1080
504
+ }),
505
+ bash: () => anthropic.tools.bash_20241022({}),
506
+ textEditor: () => anthropic.tools.textEditor_20241022({}),
507
+ textEditorV2: () => anthropic.tools.textEditor_20250429({})
508
+ };
509
+ /** Enable reasoning/thinking mode for Claude 4 and 3.7 models. */
510
+ function withReasoning(budgetTokens = 12e3) {
511
+ return { providerOptions: { anthropic: { thinking: {
512
+ type: "enabled",
513
+ budgetTokens
514
+ } } } };
515
+ }
516
+ /** Configure cache control for prompt caching. */
517
+ function withCacheControl(ttl) {
518
+ return { providerOptions: { anthropic: { cacheControl: {
519
+ type: "ephemeral",
520
+ ...ttl && { ttl }
521
+ } } } };
522
+ }
523
+ /** Control whether reasoning content is sent in requests. */
524
+ function withSendReasoning(send = true) {
525
+ return { providerOptions: { anthropic: { sendReasoning: send } } };
526
+ }
527
+ /** Extended cache with 1-hour TTL (requires beta header). */
528
+ function withExtendedCache() {
529
+ return {
530
+ headers: { "anthropic-beta": "extended-cache-ttl-2025-04-11" },
531
+ providerOptions: { anthropic: { cacheControl: {
532
+ type: "ephemeral",
533
+ ttl: "1h"
534
+ } } }
535
+ };
536
+ }
537
+ function getModelCapabilities$1(modelId) {
538
+ return ANTHROPIC_MODEL_CAPABILITIES[modelId];
539
+ }
540
+ /** Check if model supports reasoning/thinking. */
541
+ function supportsReasoning(modelId) {
542
+ return getModelCapabilities$1(modelId)?.reasoningText ?? false;
543
+ }
544
+ /** Check if model supports PDF input. */
545
+ function supportsPDF(modelId) {
546
+ return getModelCapabilities$1(modelId)?.pdfSupport ?? false;
547
+ }
548
+ /** Check if model supports computer use. */
549
+ function supportsComputerUse(modelId) {
550
+ return getModelCapabilities$1(modelId)?.computerUse ?? false;
551
+ }
552
+ /** Check if model supports web search. */
553
+ function supportsWebSearch$1(modelId) {
554
+ return getModelCapabilities$1(modelId)?.webSearch ?? false;
555
+ }
556
+ /** Check if model supports code execution. */
557
+ function supportsCodeExecution(modelId) {
558
+ return getModelCapabilities$1(modelId)?.codeExecution ?? false;
559
+ }
560
+ /** Get minimum cacheable tokens for a model. */
561
+ function getCacheMinTokens(modelId) {
562
+ return getModelCapabilities$1(modelId)?.cacheMinTokens ?? 1024;
563
+ }
564
+ /** Get maximum context tokens for a model. */
565
+ function getMaxContextTokens(modelId) {
566
+ return getModelCapabilities$1(modelId)?.maxContextTokens ?? 2e5;
567
+ }
568
+ /** Check if model is a reasoning model. */
569
+ function isReasoningModel$1(modelId) {
570
+ return ANTHROPIC_MODEL_GROUPS.REASONING_MODELS.includes(modelId);
571
+ }
572
+ /** Check if model is multimodal (supports images). */
573
+ function isMultimodalModel(modelId) {
574
+ return ANTHROPIC_MODEL_GROUPS.MULTIMODAL_MODELS.includes(modelId);
575
+ }
576
+ /** Extract reasoning details from a generation result. */
577
+ function extractReasoningDetails(result) {
578
+ const anthropicMeta = result.providerOptions?.anthropic;
579
+ if (!anthropicMeta || typeof anthropicMeta !== "object" || Array.isArray(anthropicMeta)) return null;
580
+ const reasoningDetails = anthropicMeta.reasoningText;
581
+ if (!reasoningDetails || typeof reasoningDetails !== "object" || Array.isArray(reasoningDetails)) return null;
582
+ const { reasoningContent } = reasoningDetails;
583
+ return {
584
+ reasoningText: typeof reasoningContent === "string" ? reasoningContent : "",
585
+ reasoningDetails
586
+ };
587
+ }
588
+ /** Extract cache metadata from a generation result. */
589
+ function extractCacheMetadata(result) {
590
+ const anthropicMeta = result.providerOptions?.anthropic;
591
+ if (!anthropicMeta || typeof anthropicMeta !== "object" || Array.isArray(anthropicMeta)) return null;
592
+ const { cacheCreationInputTokens, cacheReadInputTokens } = anthropicMeta;
593
+ return {
594
+ cacheCreationInputTokens: typeof cacheCreationInputTokens === "number" ? cacheCreationInputTokens : 0,
595
+ cacheReadInputTokens: typeof cacheReadInputTokens === "number" ? cacheReadInputTokens : 0
596
+ };
597
+ }
598
+ /** Extract complete Anthropic provider metadata. */
599
+ function extractProviderMetadata$1(result) {
600
+ const anthropicMeta = result.providerOptions?.anthropic;
601
+ if (!anthropicMeta || typeof anthropicMeta !== "object" || Array.isArray(anthropicMeta)) return null;
602
+ const meta = anthropicMeta;
603
+ const reasoningDetails = meta.reasoningText;
604
+ const { cacheCreationInputTokens, cacheReadInputTokens } = meta;
605
+ return {
606
+ cacheCreationInputTokens: typeof cacheCreationInputTokens === "number" ? cacheCreationInputTokens : 0,
607
+ cacheReadInputTokens: typeof cacheReadInputTokens === "number" ? cacheReadInputTokens : 0,
608
+ reasoningText: result.reasoningText,
609
+ reasoningDetails: reasoningDetails && typeof reasoningDetails === "object" && !Array.isArray(reasoningDetails) ? reasoningDetails : void 0
610
+ };
611
+ }
612
+ /** Extract tool errors from generation results. */
613
+ function extractToolErrors(result) {
614
+ const errors = [];
615
+ if (result.content && Array.isArray(result.content)) result.content.forEach((part) => {
616
+ if (part.type === "tool-error") errors.push({
617
+ toolName: part.toolName ?? "unknown",
618
+ toolCallId: part.toolCallId ?? "",
619
+ error: part.error
620
+ });
621
+ });
622
+ return errors;
623
+ }
624
+
625
+ //#endregion
626
+ //#region src/models/providers/openai.ts
627
+ /**
628
+ * @fileoverview OpenAI provider configuration
629
+ *
630
+ * Provider-specific model IDs, option helpers, capability detection,
631
+ * and metadata extraction for OpenAI models.
632
+ *
633
+ * All AI SDK imports come from the shared module.
634
+ *
635
+ * @module @od-oneapp/ai-platform/models/providers/openai
636
+ */
637
+ var openai_exports = /* @__PURE__ */ __exportAll({
638
+ OPENAI_MODEL_GROUPS: () => OPENAI_MODEL_GROUPS,
639
+ OPENAI_MODEL_IDS: () => OPENAI_MODEL_IDS,
640
+ OPENAI_PRESETS: () => OPENAI_PRESETS,
641
+ createOpenAI: () => createOpenAI,
642
+ extractCachedPromptTokens: () => extractCachedPromptTokens,
643
+ extractOpenAIMetadata: () => extractOpenAIMetadata,
644
+ extractPredictionTokens: () => extractPredictionTokens,
645
+ extractReasoningTokens: () => extractReasoningTokens,
646
+ openai: () => openai,
647
+ supportsPromptCaching: () => supportsPromptCaching,
648
+ supportsReasoningMode: () => supportsReasoningMode,
649
+ supportsServiceTier: () => supportsServiceTier,
650
+ supportsStructuredOutputs: () => supportsStructuredOutputs,
651
+ withPredictedOutput: () => withPredictedOutput,
652
+ withPromptCache: () => withPromptCache,
653
+ withReasoningMode: () => withReasoningMode,
654
+ withServiceTier: () => withServiceTier,
655
+ withStrictMode: () => withStrictMode,
656
+ withStructuredOutput: () => withStructuredOutput
657
+ });
658
+ /** Single source of truth for OpenAI model IDs. */
659
+ const OPENAI_MODEL_IDS = {
660
+ GPT_5: "gpt-5",
661
+ GPT_5_MINI: "gpt-5-mini",
662
+ GPT_5_NANO: "gpt-5-nano",
663
+ GPT_5_CHAT_LATEST: "gpt-5-chat-latest",
664
+ GPT_41: "gpt-4.1",
665
+ GPT_41_MINI: "gpt-4.1-mini",
666
+ GPT_41_NANO: "gpt-4.1-nano",
667
+ GPT_4O: "gpt-4o",
668
+ GPT_4O_LATEST: "chatgpt-4o-latest",
669
+ GPT_4O_MINI: "gpt-4o-mini",
670
+ GPT_4O_AUDIO: "gpt-4o-audio-preview",
671
+ GPT_4O_REALTIME: "gpt-4o-realtime-preview",
672
+ GPT_4_TURBO: "gpt-4-turbo",
673
+ GPT_4: "gpt-4",
674
+ GPT_4_32K: "gpt-4-32k",
675
+ GPT_35_TURBO: "gpt-3.5-turbo",
676
+ GPT_35_TURBO_INSTRUCT: "gpt-3.5-turbo-instruct",
677
+ O1: "o1",
678
+ O1_MINI: "o1-mini",
679
+ O1_PREVIEW: "o1-preview",
680
+ O3: "o3",
681
+ O3_MINI: "o3-mini",
682
+ O4_MINI: "o4-mini",
683
+ CODEX_MINI_LATEST: "codex-mini-latest",
684
+ COMPUTER_USE_PREVIEW: "computer-use-preview",
685
+ WHISPER_1: "whisper-1",
686
+ GPT_4O_MINI_TRANSCRIBE: "gpt-4o-mini-transcribe",
687
+ GPT_4O_TRANSCRIBE: "gpt-4o-transcribe",
688
+ TTS_1: "tts-1",
689
+ TTS_1_HD: "tts-1-hd",
690
+ GPT_4O_MINI_TTS: "gpt-4o-mini-tts",
691
+ GPT_IMAGE_1: "gpt-image-1",
692
+ DALL_E_3: "dall-e-3",
693
+ DALL_E_2: "dall-e-2",
694
+ EMBEDDING_3_SMALL: "text-embedding-3-small",
695
+ EMBEDDING_3_LARGE: "text-embedding-3-large",
696
+ EMBEDDING_ADA_002: "text-embedding-ada-002",
697
+ MODERATION_LATEST: "text-moderation-latest",
698
+ MODERATION_STABLE: "text-moderation-stable"
699
+ };
700
+ /** Model groups for categorization. */
701
+ const OPENAI_MODEL_GROUPS = {
702
+ REASONING_MODELS: [
703
+ OPENAI_MODEL_IDS.O1,
704
+ OPENAI_MODEL_IDS.O1_MINI,
705
+ OPENAI_MODEL_IDS.O1_PREVIEW,
706
+ OPENAI_MODEL_IDS.O3,
707
+ OPENAI_MODEL_IDS.O3_MINI,
708
+ OPENAI_MODEL_IDS.O4_MINI,
709
+ OPENAI_MODEL_IDS.CODEX_MINI_LATEST,
710
+ OPENAI_MODEL_IDS.COMPUTER_USE_PREVIEW
711
+ ],
712
+ GPT5_FAMILY: [
713
+ OPENAI_MODEL_IDS.GPT_5,
714
+ OPENAI_MODEL_IDS.GPT_5_MINI,
715
+ OPENAI_MODEL_IDS.GPT_5_NANO,
716
+ OPENAI_MODEL_IDS.GPT_5_CHAT_LATEST
717
+ ],
718
+ CHAT_MODELS: [
719
+ OPENAI_MODEL_IDS.GPT_5,
720
+ OPENAI_MODEL_IDS.GPT_5_MINI,
721
+ OPENAI_MODEL_IDS.GPT_5_NANO,
722
+ OPENAI_MODEL_IDS.GPT_5_CHAT_LATEST,
723
+ OPENAI_MODEL_IDS.GPT_4O,
724
+ OPENAI_MODEL_IDS.GPT_4O_MINI,
725
+ OPENAI_MODEL_IDS.GPT_4_TURBO,
726
+ OPENAI_MODEL_IDS.GPT_41,
727
+ OPENAI_MODEL_IDS.GPT_41_MINI,
728
+ OPENAI_MODEL_IDS.GPT_4,
729
+ OPENAI_MODEL_IDS.GPT_4_32K,
730
+ OPENAI_MODEL_IDS.GPT_35_TURBO
731
+ ],
732
+ VISION_MODELS: [
733
+ OPENAI_MODEL_IDS.GPT_4O,
734
+ OPENAI_MODEL_IDS.GPT_4O_MINI,
735
+ OPENAI_MODEL_IDS.GPT_4_TURBO,
736
+ OPENAI_MODEL_IDS.GPT_41,
737
+ OPENAI_MODEL_IDS.GPT_41_MINI,
738
+ OPENAI_MODEL_IDS.GPT_5,
739
+ OPENAI_MODEL_IDS.GPT_5_MINI
740
+ ],
741
+ LEGACY_MODELS: [
742
+ OPENAI_MODEL_IDS.GPT_4,
743
+ OPENAI_MODEL_IDS.GPT_4_32K,
744
+ OPENAI_MODEL_IDS.GPT_35_TURBO,
745
+ OPENAI_MODEL_IDS.GPT_35_TURBO_INSTRUCT
746
+ ]
747
+ };
748
+ /** Structured output mode with optional strict JSON schema. */
749
+ function withStructuredOutput(responseFormat = "json_object", strictJsonSchema = false) {
750
+ return { openai: {
751
+ responseFormat: { type: responseFormat },
752
+ strictJsonSchema
753
+ } };
754
+ }
755
+ /** Reasoning mode for O1/O3/O4 series models. */
756
+ function withReasoningMode(maxCompletionTokens = 25e3, reasoningEffort = "medium") {
757
+ return { providerOptions: { openai: {
758
+ maxCompletionTokens,
759
+ reasoningEffort
760
+ } } };
761
+ }
762
+ /** Predicted output for latency optimization. */
763
+ function withPredictedOutput(prediction) {
764
+ return { openai: { prediction: {
765
+ type: "content",
766
+ content: prediction
767
+ } } };
768
+ }
769
+ /** Prompt caching control. */
770
+ function withPromptCache(cacheEnabled = true, promptCacheKey) {
771
+ const options = { store: cacheEnabled };
772
+ if (promptCacheKey) options.promptCacheKey = promptCacheKey;
773
+ return { openai: options };
774
+ }
775
+ /** Service tier for latency/cost tradeoffs. */
776
+ function withServiceTier(tier = "auto") {
777
+ return { openai: { serviceTier: tier } };
778
+ }
779
+ /** Strict mode for structured output validation. */
780
+ function withStrictMode(enabled = true) {
781
+ return { openai: { strict: enabled } };
782
+ }
783
+ /** Configuration presets for OpenAI-specific use cases. */
784
+ const OPENAI_PRESETS = {
785
+ FAST: {
786
+ ...commonModes.quick(),
787
+ openai: { serviceTier: "flex" }
788
+ },
789
+ ACCURATE: {
790
+ ...commonModes.precise(),
791
+ openai: { serviceTier: "priority" }
792
+ },
793
+ CREATIVE: {
794
+ ...commonModes.creative(),
795
+ frequencyPenalty: .5,
796
+ presencePenalty: .5
797
+ },
798
+ REASONING: {
799
+ ...commonModes.research(),
800
+ maxOutputTokens: 3e4,
801
+ openai: {
802
+ reasoningEffort: "high",
803
+ reasoningSummary: "auto"
804
+ }
805
+ },
806
+ CODING: {
807
+ ...commonModes.code(),
808
+ maxOutputTokens: 8192,
809
+ openai: {
810
+ responseFormat: { type: "json_object" },
811
+ logprobs: true,
812
+ topLogprobs: 3
813
+ }
814
+ }
815
+ };
816
+ /** Check if model supports reasoning mode. */
817
+ function supportsReasoningMode(modelId) {
818
+ return OPENAI_MODEL_GROUPS.REASONING_MODELS.includes(modelId);
819
+ }
820
+ /** Check if model supports service tier selection. */
821
+ function supportsServiceTier(modelId) {
822
+ const isReasoning = OPENAI_MODEL_GROUPS.REASONING_MODELS.includes(modelId);
823
+ const supported = OPENAI_MODEL_GROUPS.CHAT_MODELS.includes(modelId) || OPENAI_MODEL_GROUPS.VISION_MODELS.includes(modelId);
824
+ return !isReasoning && supported;
825
+ }
826
+ /** Check if model supports structured outputs. */
827
+ function supportsStructuredOutputs(modelId) {
828
+ return OPENAI_MODEL_GROUPS.CHAT_MODELS.includes(modelId) || OPENAI_MODEL_GROUPS.VISION_MODELS.includes(modelId);
829
+ }
830
+ /** Check if model supports prompt caching. */
831
+ function supportsPromptCaching(modelId) {
832
+ return !OPENAI_MODEL_GROUPS.LEGACY_MODELS.includes(modelId);
833
+ }
834
+ /** Extract reasoning tokens from OpenAI reasoning models. */
835
+ function extractReasoningTokens(result) {
836
+ const tokens = result.providerOptions?.openai?.reasoningTokens;
837
+ return typeof tokens === "number" ? tokens : void 0;
838
+ }
839
+ /** Extract cached prompt tokens from OpenAI responses. */
840
+ function extractCachedPromptTokens(result) {
841
+ const tokens = result.providerOptions?.openai?.cachedPromptTokens;
842
+ return typeof tokens === "number" ? tokens : void 0;
843
+ }
844
+ /** Extract prediction tokens from OpenAI predicted outputs. */
845
+ function extractPredictionTokens(result) {
846
+ const metadata = result.providerOptions?.openai;
847
+ if (!metadata) return void 0;
848
+ const accepted = metadata.acceptedPredictionTokens;
849
+ const rejected = metadata.rejectedPredictionTokens;
850
+ return {
851
+ accepted: typeof accepted === "number" ? accepted : void 0,
852
+ rejected: typeof rejected === "number" ? rejected : void 0
853
+ };
854
+ }
855
+ /** Extract complete OpenAI provider metadata. */
856
+ function extractOpenAIMetadata(result) {
857
+ const openaiMeta = result.providerOptions?.openai;
858
+ if (!openaiMeta || typeof openaiMeta !== "object" || Array.isArray(openaiMeta)) return null;
859
+ const meta = openaiMeta;
860
+ return {
861
+ responseId: typeof meta.responseId === "string" ? meta.responseId : void 0,
862
+ reasoningTokens: typeof meta.reasoningTokens === "number" ? meta.reasoningTokens : void 0,
863
+ cachedPromptTokens: typeof meta.cachedPromptTokens === "number" ? meta.cachedPromptTokens : void 0,
864
+ acceptedPredictionTokens: typeof meta.acceptedPredictionTokens === "number" ? meta.acceptedPredictionTokens : void 0,
865
+ rejectedPredictionTokens: typeof meta.rejectedPredictionTokens === "number" ? meta.rejectedPredictionTokens : void 0,
866
+ logprobs: meta.logprobs
867
+ };
868
+ }
869
+
870
+ //#endregion
871
+ //#region src/models/providers/perplexity.ts
872
+ /**
873
+ * @fileoverview Perplexity provider configuration
874
+ *
875
+ * Provider-specific model IDs, option helpers, capability detection,
876
+ * and metadata extraction for Perplexity models.
877
+ *
878
+ * Note: @ai-sdk/perplexity is not a direct dependency. Perplexity is accessed
879
+ * via createOpenAICompatible from the shared module. This file provides
880
+ * provider-specific configurations, model IDs, and metadata extraction.
881
+ *
882
+ * @module @od-oneapp/ai-platform/models/providers/perplexity
883
+ */
884
+ var perplexity_exports = /* @__PURE__ */ __exportAll({
885
+ PERPLEXITY_MODEL_GROUPS: () => PERPLEXITY_MODEL_GROUPS,
886
+ PERPLEXITY_MODEL_IDS: () => PERPLEXITY_MODEL_IDS,
887
+ extractImages: () => extractImages,
888
+ extractProviderMetadata: () => extractProviderMetadata,
889
+ extractSources: () => extractSources$1,
890
+ extractUsageMetadata: () => extractUsageMetadata,
891
+ isReasoningModel: () => isReasoningModel,
892
+ isResearchModel: () => isResearchModel,
893
+ supportsCitations: () => supportsCitations,
894
+ supportsImageResponses: () => supportsImageResponses,
895
+ supportsWebSearch: () => supportsWebSearch,
896
+ withImages: () => withImages,
897
+ withResearchMode: () => withResearchMode
898
+ });
899
+ /** Single source of truth for Perplexity model IDs. */
900
+ const PERPLEXITY_MODEL_IDS = {
901
+ SONAR_PRO: "sonar-pro",
902
+ SONAR: "sonar",
903
+ SONAR_REASONING_PRO: "sonar-reasoning-pro",
904
+ SONAR_REASONING: "sonar-reasoning",
905
+ SONAR_DEEP_RESEARCH: "sonar-deep-research"
906
+ };
907
+ /** Model groups for categorization. */
908
+ const PERPLEXITY_MODEL_GROUPS = {
909
+ RESEARCH_MODELS: [
910
+ PERPLEXITY_MODEL_IDS.SONAR_DEEP_RESEARCH,
911
+ PERPLEXITY_MODEL_IDS.SONAR_PRO,
912
+ PERPLEXITY_MODEL_IDS.SONAR
913
+ ],
914
+ REASONING_MODELS: [PERPLEXITY_MODEL_IDS.SONAR_REASONING_PRO, PERPLEXITY_MODEL_IDS.SONAR_REASONING],
915
+ MULTIMODAL_MODELS: [
916
+ PERPLEXITY_MODEL_IDS.SONAR_REASONING_PRO,
917
+ PERPLEXITY_MODEL_IDS.SONAR_REASONING,
918
+ PERPLEXITY_MODEL_IDS.SONAR_PRO,
919
+ PERPLEXITY_MODEL_IDS.SONAR
920
+ ]
921
+ };
922
+ const PERPLEXITY_MODEL_CAPABILITIES = {
923
+ [PERPLEXITY_MODEL_IDS.SONAR_DEEP_RESEARCH]: {
924
+ webSearch: true,
925
+ citations: true,
926
+ tierRequirement: "basic",
927
+ imageResponses: false
928
+ },
929
+ [PERPLEXITY_MODEL_IDS.SONAR_REASONING_PRO]: {
930
+ webSearch: true,
931
+ citations: true,
932
+ tierRequirement: "basic",
933
+ imageResponses: true
934
+ },
935
+ [PERPLEXITY_MODEL_IDS.SONAR_REASONING]: {
936
+ webSearch: true,
937
+ citations: true,
938
+ tierRequirement: "basic",
939
+ imageResponses: true
940
+ },
941
+ [PERPLEXITY_MODEL_IDS.SONAR_PRO]: {
942
+ webSearch: true,
943
+ citations: true,
944
+ tierRequirement: "basic",
945
+ imageResponses: true
946
+ },
947
+ [PERPLEXITY_MODEL_IDS.SONAR]: {
948
+ webSearch: true,
949
+ citations: true,
950
+ tierRequirement: "basic",
951
+ imageResponses: true
952
+ }
953
+ };
954
+ /** Enable image responses (Tier-2+ only). */
955
+ function withImages() {
956
+ return { providerOptions: { perplexity: { return_images: true } } };
957
+ }
958
+ /** Research mode combining shared research settings with Perplexity image capability. */
959
+ function withResearchMode(returnImages = false) {
960
+ return {
961
+ ...commonModes.research(),
962
+ providerOptions: { perplexity: { return_images: returnImages } }
963
+ };
964
+ }
965
+ function getModelCapabilities(modelId) {
966
+ return PERPLEXITY_MODEL_CAPABILITIES[modelId];
967
+ }
968
+ /** Check if model supports image responses (Tier-2+ feature). */
969
+ function supportsImageResponses(modelId) {
970
+ return getModelCapabilities(modelId)?.imageResponses ?? false;
971
+ }
972
+ /** Check if model supports web search. */
973
+ function supportsWebSearch(modelId) {
974
+ return getModelCapabilities(modelId)?.webSearch ?? false;
975
+ }
976
+ /** Check if model supports citations. */
977
+ function supportsCitations(modelId) {
978
+ return getModelCapabilities(modelId)?.citations ?? false;
979
+ }
980
+ /** Check if model has reasoning capabilities. */
981
+ function isReasoningModel(modelId) {
982
+ return PERPLEXITY_MODEL_GROUPS.REASONING_MODELS.includes(modelId);
983
+ }
984
+ /** Check if model is optimized for research. */
985
+ function isResearchModel(modelId) {
986
+ return PERPLEXITY_MODEL_GROUPS.RESEARCH_MODELS.includes(modelId);
987
+ }
988
+ /** Extract sources from Perplexity responses. */
989
+ function extractSources$1(result) {
990
+ if (Array.isArray(result.sources)) return result.sources;
991
+ const perplexityMetadata = result.providerOptions?.perplexity;
992
+ if (!perplexityMetadata || typeof perplexityMetadata !== "object") return [];
993
+ const { sources } = perplexityMetadata;
994
+ if (!Array.isArray(sources)) return [];
995
+ return sources;
996
+ }
997
+ /** Extract image responses from Perplexity. */
998
+ function extractImages(result) {
999
+ const perplexityMetadata = result.providerOptions?.perplexity;
1000
+ if (!perplexityMetadata || typeof perplexityMetadata !== "object") return [];
1001
+ const { images } = perplexityMetadata;
1002
+ if (!Array.isArray(images)) return [];
1003
+ return images;
1004
+ }
1005
+ /** Extract usage metadata from Perplexity. */
1006
+ function extractUsageMetadata(result) {
1007
+ const perplexityMetadata = result.providerOptions?.perplexity;
1008
+ if (!perplexityMetadata || typeof perplexityMetadata !== "object" || Array.isArray(perplexityMetadata)) return null;
1009
+ const { usage } = perplexityMetadata;
1010
+ if (!usage || typeof usage !== "object" || Array.isArray(usage)) return null;
1011
+ const usageData = usage;
1012
+ return {
1013
+ citationTokens: typeof usageData.citationTokens === "number" ? usageData.citationTokens : 0,
1014
+ numSearchQueries: typeof usageData.numSearchQueries === "number" ? usageData.numSearchQueries : 0
1015
+ };
1016
+ }
1017
+ /** Extract complete Perplexity provider metadata. */
1018
+ function extractProviderMetadata(result) {
1019
+ const perplexityMetadata = result.providerOptions?.perplexity;
1020
+ if (!perplexityMetadata || typeof perplexityMetadata !== "object") return null;
1021
+ const meta = perplexityMetadata;
1022
+ const { usage, images } = meta;
1023
+ const sourcesFromMetadata = meta.sources;
1024
+ const sourcesFromResult = Array.isArray(result.sources) ? result.sources : void 0;
1025
+ return {
1026
+ usage: usage && typeof usage === "object" && !Array.isArray(usage) ? {
1027
+ citationTokens: typeof usage.citationTokens === "number" ? usage.citationTokens : 0,
1028
+ numSearchQueries: typeof usage.numSearchQueries === "number" ? usage.numSearchQueries : 0
1029
+ } : void 0,
1030
+ images: Array.isArray(images) ? images : [],
1031
+ sources: sourcesFromResult && sourcesFromResult.length > 0 ? sourcesFromResult : Array.isArray(sourcesFromMetadata) ? sourcesFromMetadata : []
1032
+ };
1033
+ }
1034
+
1035
+ //#endregion
1036
+ //#region src/models/capabilities.ts
1037
+ /**
1038
+ * @fileoverview Cross-provider model capability detection
1039
+ *
1040
+ * Provides unified capability checks that work across all providers
1041
+ * by combining the high-level MODEL_METADATA registry with
1042
+ * provider-specific capability data.
1043
+ *
1044
+ * @module @od-oneapp/ai-platform/models/capabilities
1045
+ */
1046
+ const REASONING_MODEL_IDS = new Set([
1047
+ ...ANTHROPIC_MODEL_GROUPS.REASONING_MODELS,
1048
+ ...OPENAI_MODEL_GROUPS.REASONING_MODELS,
1049
+ ...PERPLEXITY_MODEL_GROUPS.REASONING_MODELS
1050
+ ]);
1051
+ for (const model of Object.values(Model)) {
1052
+ const meta = MODEL_METADATA[model];
1053
+ if (meta?.tier === "reasoning") REASONING_MODEL_IDS.add(meta.id);
1054
+ }
1055
+ /**
1056
+ * Check if a model supports reasoning/thinking capabilities.
1057
+ *
1058
+ * Checks both the registry (tier === 'reasoning') and provider-specific
1059
+ * reasoning model lists (Anthropic extended thinking, OpenAI o-series, etc.).
1060
+ *
1061
+ * @param modelId - Provider-specific model ID string (e.g. 'claude-opus-4-20250514', 'o1')
1062
+ * @returns true if the model has reasoning/thinking capabilities
1063
+ *
1064
+ * @example
1065
+ * ```ts
1066
+ * import { modelSupportsReasoning } from '@od-oneapp/ai-platform/models';
1067
+ *
1068
+ * if (modelSupportsReasoning('claude-opus-4-20250514')) {
1069
+ * // Enable extended thinking budget
1070
+ * }
1071
+ * ```
1072
+ */
1073
+ function modelSupportsReasoning(modelId) {
1074
+ return REASONING_MODEL_IDS.has(modelId);
1075
+ }
1076
+ /**
1077
+ * Check if a model supports tool usage.
1078
+ *
1079
+ * @param modelId - Provider-specific model ID string
1080
+ * @returns true if the model supports tools
1081
+ */
1082
+ function modelSupportsTools(modelId) {
1083
+ for (const model of Object.values(Model)) {
1084
+ const meta = MODEL_METADATA[model];
1085
+ if (meta?.id === modelId) return meta.supportsTools;
1086
+ }
1087
+ return true;
1088
+ }
1089
+ /**
1090
+ * Check if a model supports streaming.
1091
+ *
1092
+ * @param modelId - Provider-specific model ID string
1093
+ * @returns true if the model supports streaming
1094
+ */
1095
+ function modelSupportsStreaming(modelId) {
1096
+ for (const model of Object.values(Model)) {
1097
+ const meta = MODEL_METADATA[model];
1098
+ if (meta?.id === modelId) return meta.supportsStreaming;
1099
+ }
1100
+ return true;
1101
+ }
1102
+
1103
+ //#endregion
1104
+ //#region src/models/providers/google.ts
1105
+ /**
1106
+ * @fileoverview Google Generative AI provider configuration
1107
+ *
1108
+ * Provider-specific model IDs, option helpers, capability detection,
1109
+ * and metadata extraction for Google Gemini models.
1110
+ *
1111
+ * All AI SDK imports come from the shared module.
1112
+ *
1113
+ * @module @od-oneapp/ai-platform/models/providers/google
1114
+ */
1115
+ var google_exports = /* @__PURE__ */ __exportAll({
1116
+ GOOGLE_MODEL_GROUPS: () => GOOGLE_MODEL_GROUPS,
1117
+ GOOGLE_MODEL_IDS: () => GOOGLE_MODEL_IDS,
1118
+ GOOGLE_PRESETS: () => GOOGLE_PRESETS,
1119
+ GOOGLE_SAFETY_PRESETS: () => GOOGLE_SAFETY_PRESETS,
1120
+ createGoogleGenerativeAI: () => createGoogleGenerativeAI,
1121
+ google: () => google,
1122
+ googleTools: () => googleTools,
1123
+ isGemmaModel: () => isGemmaModel,
1124
+ supportsGoogleSearch: () => supportsGoogleSearch,
1125
+ supportsThinking: () => supportsThinking,
1126
+ supportsUrlContext: () => supportsUrlContext,
1127
+ withEmbeddingConfig: () => withEmbeddingConfig,
1128
+ withGoogleImageGeneration: () => withGoogleImageGeneration,
1129
+ withResponseModalities: () => withResponseModalities,
1130
+ withSafetySettings: () => withSafetySettings,
1131
+ withStructuredOutputs: () => withStructuredOutputs,
1132
+ withThinking: () => withThinking,
1133
+ withYouTubeContext: () => withYouTubeContext
1134
+ });
1135
+ /** Native Google tools re-exported from AI SDK. */
1136
+ const googleTools = {
1137
+ googleSearch: google.tools.googleSearch,
1138
+ urlContext: google.tools.urlContext,
1139
+ codeExecution: google.tools.codeExecution
1140
+ };
1141
+ /** Single source of truth for Google model IDs. */
1142
+ const GOOGLE_MODEL_IDS = {
1143
+ GEMINI_3_FLASH: "gemini-3-flash",
1144
+ GEMINI_20_FLASH: "gemini-2.0-flash",
1145
+ GEMINI_15_PRO: "gemini-1.5-pro",
1146
+ GEMINI_15_PRO_LATEST: "gemini-1.5-pro-latest",
1147
+ GEMINI_15_FLASH: "gemini-1.5-flash",
1148
+ GEMINI_15_FLASH_LATEST: "gemini-1.5-flash-latest",
1149
+ GEMINI_15_FLASH_8B: "gemini-1.5-flash-8b",
1150
+ GEMINI_15_FLASH_8B_LATEST: "gemini-1.5-flash-8b-latest",
1151
+ GEMMA_3_27B_IT: "gemma-3-27b-it",
1152
+ GEMMA_3_9B_IT: "gemma-3-9b-it",
1153
+ GEMMA_2_2B_IT: "gemma-2-2b-it",
1154
+ GEMMA_2_9B_IT: "gemma-2-9b-it",
1155
+ GEMMA_2_27B_IT: "gemma-2-27b-it",
1156
+ GEMINI_EMBEDDING_001: "gemini-embedding-001",
1157
+ TEXT_EMBEDDING_004: "text-embedding-004",
1158
+ IMAGEN_3_GENERATE_002: "imagen-3.0-generate-002",
1159
+ GEMMA_2_2B: "gemma-2-2b-it",
1160
+ GEMMA_2_9B: "gemma-2-9b-it",
1161
+ GEMMA_2_27B: "gemma-2-27b-it"
1162
+ };
1163
+ /** Model groups for categorization. */
1164
+ const GOOGLE_MODEL_GROUPS = {
1165
+ THINKING_MODELS: [GOOGLE_MODEL_IDS.GEMINI_3_FLASH],
1166
+ GEMINI_MODELS: [
1167
+ GOOGLE_MODEL_IDS.GEMINI_3_FLASH,
1168
+ GOOGLE_MODEL_IDS.GEMINI_15_PRO,
1169
+ GOOGLE_MODEL_IDS.GEMINI_15_PRO_LATEST,
1170
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH,
1171
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH_LATEST,
1172
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B,
1173
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B_LATEST
1174
+ ],
1175
+ MULTIMODAL_MODELS: [
1176
+ GOOGLE_MODEL_IDS.GEMINI_3_FLASH,
1177
+ GOOGLE_MODEL_IDS.GEMINI_15_PRO,
1178
+ GOOGLE_MODEL_IDS.GEMINI_15_PRO_LATEST,
1179
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH,
1180
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH_LATEST,
1181
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B,
1182
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B_LATEST
1183
+ ],
1184
+ SEARCH_CAPABLE_MODELS: [
1185
+ GOOGLE_MODEL_IDS.GEMINI_3_FLASH,
1186
+ GOOGLE_MODEL_IDS.GEMINI_15_PRO,
1187
+ GOOGLE_MODEL_IDS.GEMINI_15_PRO_LATEST,
1188
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH,
1189
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH_LATEST,
1190
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B,
1191
+ GOOGLE_MODEL_IDS.GEMINI_15_FLASH_8B_LATEST
1192
+ ],
1193
+ URL_CONTEXT_MODELS: [GOOGLE_MODEL_IDS.GEMINI_3_FLASH],
1194
+ GEMMA_MODELS: [
1195
+ GOOGLE_MODEL_IDS.GEMMA_3_27B_IT,
1196
+ GOOGLE_MODEL_IDS.GEMMA_3_9B_IT,
1197
+ GOOGLE_MODEL_IDS.GEMMA_2_2B_IT,
1198
+ GOOGLE_MODEL_IDS.GEMMA_2_9B_IT,
1199
+ GOOGLE_MODEL_IDS.GEMMA_2_27B_IT
1200
+ ],
1201
+ IMAGE_GENERATION_MODELS: [GOOGLE_MODEL_IDS.IMAGEN_3_GENERATE_002]
1202
+ };
1203
+ /** Configure thinking capabilities for Gemini 3.0+ models. */
1204
+ function withThinking(budgetTokens = 8192, includeThoughts = false) {
1205
+ return { providerOptions: { google: { thinkingConfig: {
1206
+ thinkingBudget: budgetTokens,
1207
+ includeThoughts
1208
+ } } } };
1209
+ }
1210
+ /** Google Safety Setting Presets. */
1211
+ const GOOGLE_SAFETY_PRESETS = {
1212
+ STRICT: [
1213
+ {
1214
+ category: "HARM_CATEGORY_HATE_SPEECH",
1215
+ threshold: "BLOCK_LOW_AND_ABOVE"
1216
+ },
1217
+ {
1218
+ category: "HARM_CATEGORY_DANGEROUS_CONTENT",
1219
+ threshold: "BLOCK_LOW_AND_ABOVE"
1220
+ },
1221
+ {
1222
+ category: "HARM_CATEGORY_HARASSMENT",
1223
+ threshold: "BLOCK_LOW_AND_ABOVE"
1224
+ },
1225
+ {
1226
+ category: "HARM_CATEGORY_SEXUALLY_EXPLICIT",
1227
+ threshold: "BLOCK_LOW_AND_ABOVE"
1228
+ }
1229
+ ],
1230
+ BALANCED: [
1231
+ {
1232
+ category: "HARM_CATEGORY_HATE_SPEECH",
1233
+ threshold: "BLOCK_MEDIUM_AND_ABOVE"
1234
+ },
1235
+ {
1236
+ category: "HARM_CATEGORY_DANGEROUS_CONTENT",
1237
+ threshold: "BLOCK_MEDIUM_AND_ABOVE"
1238
+ },
1239
+ {
1240
+ category: "HARM_CATEGORY_HARASSMENT",
1241
+ threshold: "BLOCK_MEDIUM_AND_ABOVE"
1242
+ },
1243
+ {
1244
+ category: "HARM_CATEGORY_SEXUALLY_EXPLICIT",
1245
+ threshold: "BLOCK_MEDIUM_AND_ABOVE"
1246
+ }
1247
+ ],
1248
+ PERMISSIVE: [
1249
+ {
1250
+ category: "HARM_CATEGORY_HATE_SPEECH",
1251
+ threshold: "BLOCK_ONLY_HIGH"
1252
+ },
1253
+ {
1254
+ category: "HARM_CATEGORY_DANGEROUS_CONTENT",
1255
+ threshold: "BLOCK_ONLY_HIGH"
1256
+ },
1257
+ {
1258
+ category: "HARM_CATEGORY_HARASSMENT",
1259
+ threshold: "BLOCK_ONLY_HIGH"
1260
+ },
1261
+ {
1262
+ category: "HARM_CATEGORY_SEXUALLY_EXPLICIT",
1263
+ threshold: "BLOCK_ONLY_HIGH"
1264
+ }
1265
+ ],
1266
+ NONE: [
1267
+ {
1268
+ category: "HARM_CATEGORY_HATE_SPEECH",
1269
+ threshold: "BLOCK_NONE"
1270
+ },
1271
+ {
1272
+ category: "HARM_CATEGORY_DANGEROUS_CONTENT",
1273
+ threshold: "BLOCK_NONE"
1274
+ },
1275
+ {
1276
+ category: "HARM_CATEGORY_HARASSMENT",
1277
+ threshold: "BLOCK_NONE"
1278
+ },
1279
+ {
1280
+ category: "HARM_CATEGORY_SEXUALLY_EXPLICIT",
1281
+ threshold: "BLOCK_NONE"
1282
+ }
1283
+ ]
1284
+ };
1285
+ /** Configure safety settings for content filtering. */
1286
+ function withSafetySettings(preset, overrides) {
1287
+ let settings;
1288
+ if (Array.isArray(preset)) settings = [...preset];
1289
+ else {
1290
+ settings = [...GOOGLE_SAFETY_PRESETS[preset]];
1291
+ if (overrides) settings = settings.map((setting) => {
1292
+ const key = setting.category.replace("HARM_CATEGORY_", "");
1293
+ if (overrides[key]) return {
1294
+ ...setting,
1295
+ threshold: overrides[key]
1296
+ };
1297
+ return setting;
1298
+ });
1299
+ }
1300
+ return { providerOptions: { google: { safetySettings: settings.reduce((acc, setting) => {
1301
+ const key = setting.category.replace("HARM_CATEGORY_", "");
1302
+ acc[key] = setting.threshold;
1303
+ return acc;
1304
+ }, {}) } } };
1305
+ }
1306
+ /** Configure response modalities for multimodal outputs. */
1307
+ function withResponseModalities(modalities) {
1308
+ return { providerOptions: { google: { responseModalities: modalities } } };
1309
+ }
1310
+ /** Configure structured outputs with schema validation. */
1311
+ function withStructuredOutputs(schema, mode = "AUTO") {
1312
+ if (typeof schema === "boolean") return { providerOptions: { google: { structuredOutputs: {
1313
+ enabled: schema,
1314
+ mode
1315
+ } } } };
1316
+ return { providerOptions: { google: { structuredOutputs: {
1317
+ schema,
1318
+ mode
1319
+ } } } };
1320
+ }
1321
+ /** Configure embedding-specific options. */
1322
+ function withEmbeddingConfig(options) {
1323
+ return { providerOptions: { google: {
1324
+ ...options.taskType && { taskType: options.taskType },
1325
+ ...options.outputDimensionality && { outputDimensionality: options.outputDimensionality }
1326
+ } } };
1327
+ }
1328
+ /** Configure YouTube URL processing. */
1329
+ function withYouTubeContext(videoUrl, includedFeatures) {
1330
+ return { providerOptions: { google: { youtubeContext: {
1331
+ videoUrl,
1332
+ includedFeatures: includedFeatures ?? ["TRANSCRIPT"]
1333
+ } } } };
1334
+ }
1335
+ /** Configure Google image generation options. */
1336
+ function withGoogleImageGeneration(quality = "MEDIUM", count = 1, size = 1024) {
1337
+ return { providerOptions: { google: { imageGeneration: {
1338
+ quality,
1339
+ count,
1340
+ size
1341
+ } } } };
1342
+ }
1343
+ /** Configuration presets for Google-specific use cases. */
1344
+ const GOOGLE_PRESETS = {
1345
+ quick: {
1346
+ ...commonModes.quick(),
1347
+ ...withSafetySettings("BALANCED"),
1348
+ temperature: .7,
1349
+ topP: .9
1350
+ },
1351
+ thinking: {
1352
+ ...commonModes.research(),
1353
+ ...withThinking(12e3, true),
1354
+ ...withSafetySettings("BALANCED"),
1355
+ temperature: .3,
1356
+ topP: .8
1357
+ },
1358
+ creative: {
1359
+ ...commonModes.creative(),
1360
+ ...withSafetySettings("PERMISSIVE"),
1361
+ temperature: .9,
1362
+ topP: .95
1363
+ },
1364
+ precise: {
1365
+ ...commonModes.precise(),
1366
+ ...withSafetySettings("STRICT"),
1367
+ ...withStructuredOutputs(true),
1368
+ temperature: .1,
1369
+ topP: .7
1370
+ }
1371
+ };
1372
+ /** Check if model supports thinking capabilities. */
1373
+ function supportsThinking(modelId) {
1374
+ return GOOGLE_MODEL_GROUPS.THINKING_MODELS.includes(modelId);
1375
+ }
1376
+ /** Check if model supports Google Search grounding. */
1377
+ function supportsGoogleSearch(modelId) {
1378
+ return GOOGLE_MODEL_GROUPS.SEARCH_CAPABLE_MODELS.includes(modelId);
1379
+ }
1380
+ /** Check if model supports URL context analysis. */
1381
+ function supportsUrlContext(modelId) {
1382
+ return GOOGLE_MODEL_GROUPS.URL_CONTEXT_MODELS.includes(modelId);
1383
+ }
1384
+ /** Check if model is a Gemma open-source model. */
1385
+ function isGemmaModel(modelId) {
1386
+ return GOOGLE_MODEL_GROUPS.GEMMA_MODELS.includes(modelId);
1387
+ }
1388
+
1389
+ //#endregion
1390
+ //#region src/models/providers/xai.ts
1391
+ /**
1392
+ * @fileoverview xAI Grok provider configuration
1393
+ *
1394
+ * Provider-specific model IDs, option helpers, capability detection,
1395
+ * and metadata extraction for xAI Grok models.
1396
+ *
1397
+ * All AI SDK imports come from the shared module.
1398
+ *
1399
+ * @module @od-oneapp/ai-platform/models/providers/xai
1400
+ */
1401
+ var xai_exports = /* @__PURE__ */ __exportAll({
1402
+ GROK_MODEL_GROUPS: () => GROK_MODEL_GROUPS,
1403
+ GROK_MODEL_IDS: () => GROK_MODEL_IDS,
1404
+ createXai: () => createXai,
1405
+ extractSearchMetadata: () => extractSearchMetadata,
1406
+ extractSources: () => extractSources,
1407
+ grok: () => xai,
1408
+ grokImage: () => grokImage,
1409
+ supportsImageGeneration: () => supportsImageGeneration,
1410
+ supportsLiveSearch: () => supportsLiveSearch,
1411
+ supportsReasoningEffort: () => supportsReasoningEffort,
1412
+ supportsVision: () => supportsVision,
1413
+ withReasoningEffort: () => withReasoningEffort,
1414
+ withSearchParameters: () => withSearchParameters,
1415
+ withSearchSources: () => withSearchSources
1416
+ });
1417
+ /** Image generation support via xAI. */
1418
+ const grokImage = xai.image;
1419
+ /** Single source of truth for xAI Grok model IDs. */
1420
+ const GROK_MODEL_IDS = {
1421
+ GROK_4: "grok-4",
1422
+ GROK_3: "grok-3",
1423
+ GROK_3_LATEST: "grok-3-latest",
1424
+ GROK_3_FAST: "grok-3-fast",
1425
+ GROK_3_FAST_LATEST: "grok-3-fast-latest",
1426
+ GROK_3_MINI: "grok-3-mini",
1427
+ GROK_3_MINI_LATEST: "grok-3-mini-latest",
1428
+ GROK_3_MINI_FAST: "grok-3-mini-fast",
1429
+ GROK_3_MINI_FAST_LATEST: "grok-3-mini-fast-latest",
1430
+ GROK_2: "grok-2",
1431
+ GROK_2_LATEST: "grok-2-latest",
1432
+ GROK_2_1212: "grok-2-1212",
1433
+ GROK_2_VISION: "grok-2-vision",
1434
+ GROK_2_VISION_LATEST: "grok-2-vision-latest",
1435
+ GROK_2_VISION_1212: "grok-2-vision-1212",
1436
+ GROK_CODE_FAST_1: "grok-code-fast-1",
1437
+ GROK_BETA: "grok-beta",
1438
+ GROK_VISION_BETA: "grok-vision-beta",
1439
+ GROK_2_IMAGE: "grok-2-image"
1440
+ };
1441
+ /** Model groups for categorization. */
1442
+ const GROK_MODEL_GROUPS = {
1443
+ REASONING_EFFORT_MODELS: [
1444
+ GROK_MODEL_IDS.GROK_3_MINI,
1445
+ GROK_MODEL_IDS.GROK_3_MINI_LATEST,
1446
+ GROK_MODEL_IDS.GROK_3_MINI_FAST,
1447
+ GROK_MODEL_IDS.GROK_3_MINI_FAST_LATEST,
1448
+ GROK_MODEL_IDS.GROK_CODE_FAST_1
1449
+ ],
1450
+ VISION_MODELS: [
1451
+ GROK_MODEL_IDS.GROK_2_VISION,
1452
+ GROK_MODEL_IDS.GROK_2_VISION_LATEST,
1453
+ GROK_MODEL_IDS.GROK_2_VISION_1212,
1454
+ GROK_MODEL_IDS.GROK_VISION_BETA
1455
+ ]
1456
+ };
1457
+ const GROK_MODEL_CAPABILITIES = {
1458
+ [GROK_MODEL_IDS.GROK_4]: {
1459
+ liveSearch: true,
1460
+ reasoningEffort: false
1461
+ },
1462
+ [GROK_MODEL_IDS.GROK_3]: {
1463
+ liveSearch: true,
1464
+ reasoningEffort: false
1465
+ },
1466
+ [GROK_MODEL_IDS.GROK_3_LATEST]: {
1467
+ liveSearch: true,
1468
+ reasoningEffort: false
1469
+ },
1470
+ [GROK_MODEL_IDS.GROK_3_FAST]: {
1471
+ liveSearch: true,
1472
+ reasoningEffort: false
1473
+ },
1474
+ [GROK_MODEL_IDS.GROK_3_FAST_LATEST]: {
1475
+ liveSearch: true,
1476
+ reasoningEffort: false
1477
+ },
1478
+ [GROK_MODEL_IDS.GROK_2]: {
1479
+ liveSearch: true,
1480
+ reasoningEffort: false
1481
+ },
1482
+ [GROK_MODEL_IDS.GROK_2_LATEST]: {
1483
+ liveSearch: true,
1484
+ reasoningEffort: false
1485
+ },
1486
+ [GROK_MODEL_IDS.GROK_2_1212]: {
1487
+ liveSearch: true,
1488
+ reasoningEffort: false
1489
+ },
1490
+ [GROK_MODEL_IDS.GROK_2_VISION]: {
1491
+ liveSearch: true,
1492
+ reasoningEffort: false
1493
+ },
1494
+ [GROK_MODEL_IDS.GROK_2_VISION_LATEST]: {
1495
+ liveSearch: true,
1496
+ reasoningEffort: false
1497
+ },
1498
+ [GROK_MODEL_IDS.GROK_2_VISION_1212]: {
1499
+ liveSearch: true,
1500
+ reasoningEffort: false
1501
+ },
1502
+ [GROK_MODEL_IDS.GROK_BETA]: {
1503
+ liveSearch: true,
1504
+ reasoningEffort: false
1505
+ },
1506
+ [GROK_MODEL_IDS.GROK_3_MINI]: {
1507
+ liveSearch: true,
1508
+ reasoningEffort: true
1509
+ },
1510
+ [GROK_MODEL_IDS.GROK_3_MINI_LATEST]: {
1511
+ liveSearch: true,
1512
+ reasoningEffort: true
1513
+ },
1514
+ [GROK_MODEL_IDS.GROK_3_MINI_FAST]: {
1515
+ liveSearch: true,
1516
+ reasoningEffort: true
1517
+ },
1518
+ [GROK_MODEL_IDS.GROK_3_MINI_FAST_LATEST]: {
1519
+ liveSearch: true,
1520
+ reasoningEffort: true
1521
+ },
1522
+ [GROK_MODEL_IDS.GROK_CODE_FAST_1]: {
1523
+ liveSearch: true,
1524
+ reasoningEffort: true
1525
+ },
1526
+ [GROK_MODEL_IDS.GROK_VISION_BETA]: {
1527
+ liveSearch: false,
1528
+ reasoningEffort: false
1529
+ },
1530
+ [GROK_MODEL_IDS.GROK_2_IMAGE]: {
1531
+ liveSearch: false,
1532
+ reasoningEffort: false
1533
+ }
1534
+ };
1535
+ /** Configure xAI Live Search parameters. */
1536
+ function withSearchParameters(options = {}) {
1537
+ return { xai: { searchParameters: {
1538
+ mode: options.mode ?? "auto",
1539
+ returnCitations: options.returnCitations ?? true,
1540
+ fromDate: options.fromDate,
1541
+ toDate: options.toDate,
1542
+ maxSearchResults: options.maxSearchResults ?? 20,
1543
+ sources: options.sources ?? ["web", "x"]
1544
+ } } };
1545
+ }
1546
+ /** Convenience helper for multi-source search. */
1547
+ function withSearchSources(...sources) {
1548
+ return withSearchParameters({
1549
+ mode: "on",
1550
+ returnCitations: true,
1551
+ sources
1552
+ });
1553
+ }
1554
+ /** Configure reasoning effort for mini models. */
1555
+ function withReasoningEffort(effort) {
1556
+ return { xai: { reasoningEffort: effort } };
1557
+ }
1558
+ /** Check if model supports Live Search. */
1559
+ function supportsLiveSearch(modelId) {
1560
+ return GROK_MODEL_CAPABILITIES[modelId]?.liveSearch ?? false;
1561
+ }
1562
+ /** Check if model supports reasoning effort control. */
1563
+ function supportsReasoningEffort(modelId) {
1564
+ return GROK_MODEL_CAPABILITIES[modelId]?.reasoningEffort ?? false;
1565
+ }
1566
+ /** Check if model supports vision input. */
1567
+ function supportsVision(modelId) {
1568
+ return GROK_MODEL_GROUPS.VISION_MODELS.includes(modelId);
1569
+ }
1570
+ /** Check if model supports image generation. */
1571
+ function supportsImageGeneration(modelId) {
1572
+ return modelId === GROK_MODEL_IDS.GROK_2_IMAGE;
1573
+ }
1574
+ /** Extract search sources from xAI responses. */
1575
+ function extractSources(result) {
1576
+ if (!result?.sources) return [];
1577
+ return result.sources.map((source) => ({
1578
+ url: source.url ?? "",
1579
+ title: source.title,
1580
+ snippet: source.snippet,
1581
+ sourceType: "url"
1582
+ }));
1583
+ }
1584
+ /** Extract search metadata from xAI responses. */
1585
+ function extractSearchMetadata(result) {
1586
+ const xaiMeta = result?.providerOptions?.xai;
1587
+ if (!xaiMeta || typeof xaiMeta !== "object" || Array.isArray(xaiMeta)) return null;
1588
+ const { search } = xaiMeta;
1589
+ if (!search || typeof search !== "object" || Array.isArray(search)) return null;
1590
+ const searchData = search;
1591
+ return {
1592
+ queriesUsed: typeof searchData.queriesUsed === "number" ? searchData.queriesUsed : 0,
1593
+ sourcesFound: typeof searchData.sourcesFound === "number" ? searchData.sourcesFound : 0,
1594
+ searchTime: typeof searchData.searchTime === "number" ? searchData.searchTime : 0
1595
+ };
1596
+ }
1597
+
1598
+ //#endregion
1599
+ export { getModelsByTier as _, modelSupportsTools as a, anthropic_exports as c, TOP_P as d, commonModes as f, getModelTier as g, getCheapestModel as h, modelSupportsStreaming as i, TEMPS as l, estimateCost as m, google_exports as n, perplexity_exports as o, createLanguageModel as p, modelSupportsReasoning as r, openai_exports as s, xai_exports as t, TOKENS as u };
1600
+ //# sourceMappingURL=xai-CbV_dCnP.mjs.map