indusagi 0.12.7 → 0.12.9

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 (668) hide show
  1. package/README.md +2 -0
  2. package/dist/agent/agent-loop.d.ts.map +1 -1
  3. package/dist/agent/agent-loop.js +10 -1
  4. package/dist/agent/agent-loop.js.map +1 -1
  5. package/dist/agent/agent.d.ts +2 -1
  6. package/dist/agent/agent.d.ts.map +1 -1
  7. package/dist/agent/agent.js +30 -38
  8. package/dist/agent/agent.js.map +1 -1
  9. package/dist/agent/error-handler.d.ts +8 -0
  10. package/dist/agent/error-handler.d.ts.map +1 -0
  11. package/dist/agent/error-handler.js +8 -0
  12. package/dist/agent/error-handler.js.map +1 -0
  13. package/dist/agent/event-bus.d.ts +9 -0
  14. package/dist/agent/event-bus.d.ts.map +1 -0
  15. package/dist/agent/event-bus.js +17 -0
  16. package/dist/agent/event-bus.js.map +1 -0
  17. package/dist/agent/proxy.d.ts +13 -19
  18. package/dist/agent/proxy.d.ts.map +1 -1
  19. package/dist/agent/proxy.js +45 -4
  20. package/dist/agent/proxy.js.map +1 -1
  21. package/dist/agent/state-manager.d.ts +22 -0
  22. package/dist/agent/state-manager.d.ts.map +1 -0
  23. package/dist/agent/state-manager.js +59 -0
  24. package/dist/agent/state-manager.js.map +1 -0
  25. package/dist/agent/telemetry.d.ts +7 -0
  26. package/dist/agent/telemetry.d.ts.map +1 -0
  27. package/dist/agent/telemetry.js +20 -0
  28. package/dist/agent/telemetry.js.map +1 -0
  29. package/dist/agent/tools/bash.d.ts +11 -0
  30. package/dist/agent/tools/bash.d.ts.map +1 -1
  31. package/dist/agent/tools/bash.js +27 -4
  32. package/dist/agent/tools/bash.js.map +1 -1
  33. package/dist/agent/tools/edit.d.ts +5 -0
  34. package/dist/agent/tools/edit.d.ts.map +1 -1
  35. package/dist/agent/tools/edit.js +16 -2
  36. package/dist/agent/tools/edit.js.map +1 -1
  37. package/dist/agent/tools/find.d.ts +2 -0
  38. package/dist/agent/tools/find.d.ts.map +1 -1
  39. package/dist/agent/tools/find.js +4 -1
  40. package/dist/agent/tools/find.js.map +1 -1
  41. package/dist/agent/tools/grep.d.ts.map +1 -1
  42. package/dist/agent/tools/grep.js +15 -4
  43. package/dist/agent/tools/grep.js.map +1 -1
  44. package/dist/agent/tools/index.d.ts +18 -2
  45. package/dist/agent/tools/index.d.ts.map +1 -1
  46. package/dist/agent/tools/index.js +64 -50
  47. package/dist/agent/tools/index.js.map +1 -1
  48. package/dist/agent/tools/ls.d.ts +2 -0
  49. package/dist/agent/tools/ls.d.ts.map +1 -1
  50. package/dist/agent/tools/ls.js +5 -0
  51. package/dist/agent/tools/ls.js.map +1 -1
  52. package/dist/agent/tools/path-utils.d.ts.map +1 -1
  53. package/dist/agent/tools/path-utils.js +3 -0
  54. package/dist/agent/tools/path-utils.js.map +1 -1
  55. package/dist/agent/tools/registry.d.ts +21 -0
  56. package/dist/agent/tools/registry.d.ts.map +1 -0
  57. package/dist/agent/tools/registry.js +25 -0
  58. package/dist/agent/tools/registry.js.map +1 -0
  59. package/dist/agent/tools/task.d.ts.map +1 -1
  60. package/dist/agent/tools/task.js +12 -6
  61. package/dist/agent/tools/task.js.map +1 -1
  62. package/dist/agent/tools/todo-store.d.ts +4 -0
  63. package/dist/agent/tools/todo-store.d.ts.map +1 -1
  64. package/dist/agent/tools/todo-store.js +12 -0
  65. package/dist/agent/tools/todo-store.js.map +1 -1
  66. package/dist/agent/tools/todo.d.ts +4 -0
  67. package/dist/agent/tools/todo.d.ts.map +1 -1
  68. package/dist/agent/tools/todo.js +14 -4
  69. package/dist/agent/tools/todo.js.map +1 -1
  70. package/dist/agent/tools/truncate.d.ts +3 -0
  71. package/dist/agent/tools/truncate.d.ts.map +1 -1
  72. package/dist/agent/tools/truncate.js.map +1 -1
  73. package/dist/agent/tools/utils/hook-runner.d.ts +8 -3
  74. package/dist/agent/tools/utils/hook-runner.d.ts.map +1 -1
  75. package/dist/agent/tools/utils/hook-runner.js +22 -5
  76. package/dist/agent/tools/utils/hook-runner.js.map +1 -1
  77. package/dist/agent/tools/utils/image-resize.d.ts +1 -0
  78. package/dist/agent/tools/utils/image-resize.d.ts.map +1 -1
  79. package/dist/agent/tools/utils/image-resize.js +5 -0
  80. package/dist/agent/tools/utils/image-resize.js.map +1 -1
  81. package/dist/agent/tools/utils/mime.d.ts.map +1 -1
  82. package/dist/agent/tools/utils/mime.js +6 -0
  83. package/dist/agent/tools/utils/mime.js.map +1 -1
  84. package/dist/agent/tools/utils/shell.d.ts +5 -0
  85. package/dist/agent/tools/utils/shell.d.ts.map +1 -1
  86. package/dist/agent/tools/utils/shell.js +9 -0
  87. package/dist/agent/tools/utils/shell.js.map +1 -1
  88. package/dist/agent/tools/webfetch.d.ts +2 -0
  89. package/dist/agent/tools/webfetch.d.ts.map +1 -1
  90. package/dist/agent/tools/webfetch.js +4 -1
  91. package/dist/agent/tools/webfetch.js.map +1 -1
  92. package/dist/agent/tools/websearch.d.ts +7 -1
  93. package/dist/agent/tools/websearch.d.ts.map +1 -1
  94. package/dist/agent/tools/websearch.js +71 -8
  95. package/dist/agent/tools/websearch.js.map +1 -1
  96. package/dist/agent/tools/write.d.ts +4 -0
  97. package/dist/agent/tools/write.d.ts.map +1 -1
  98. package/dist/agent/tools/write.js +19 -1
  99. package/dist/agent/tools/write.js.map +1 -1
  100. package/dist/agent/types.d.ts +22 -1
  101. package/dist/agent/types.d.ts.map +1 -1
  102. package/dist/agent/types.js +44 -1
  103. package/dist/agent/types.js.map +1 -1
  104. package/dist/ai/api-registry.d.ts +34 -4
  105. package/dist/ai/api-registry.d.ts.map +1 -1
  106. package/dist/ai/api-registry.js +97 -19
  107. package/dist/ai/api-registry.js.map +1 -1
  108. package/dist/ai/cli.js +24 -3
  109. package/dist/ai/cli.js.map +1 -1
  110. package/dist/ai/env-api-keys.d.ts +9 -0
  111. package/dist/ai/env-api-keys.d.ts.map +1 -1
  112. package/dist/ai/env-api-keys.js +23 -0
  113. package/dist/ai/env-api-keys.js.map +1 -1
  114. package/dist/ai/index.d.ts +4 -2
  115. package/dist/ai/index.d.ts.map +1 -1
  116. package/dist/ai/index.js +4 -2
  117. package/dist/ai/index.js.map +1 -1
  118. package/dist/ai/models.d.ts +30 -0
  119. package/dist/ai/models.d.ts.map +1 -1
  120. package/dist/ai/models.generated.d.ts +1 -0
  121. package/dist/ai/models.generated.d.ts.map +1 -1
  122. package/dist/ai/models.js +90 -18
  123. package/dist/ai/models.js.map +1 -1
  124. package/dist/ai/providers/amazon-bedrock.d.ts +19 -1
  125. package/dist/ai/providers/amazon-bedrock.d.ts.map +1 -1
  126. package/dist/ai/providers/amazon-bedrock.js +68 -40
  127. package/dist/ai/providers/amazon-bedrock.js.map +1 -1
  128. package/dist/ai/providers/anthropic.d.ts +50 -1
  129. package/dist/ai/providers/anthropic.d.ts.map +1 -1
  130. package/dist/ai/providers/anthropic.js +204 -161
  131. package/dist/ai/providers/anthropic.js.map +1 -1
  132. package/dist/ai/providers/azure-openai-responses.d.ts.map +1 -1
  133. package/dist/ai/providers/azure-openai-responses.js +36 -28
  134. package/dist/ai/providers/azure-openai-responses.js.map +1 -1
  135. package/dist/ai/providers/google-shared.d.ts +9 -0
  136. package/dist/ai/providers/google-shared.d.ts.map +1 -1
  137. package/dist/ai/providers/google-shared.js +16 -0
  138. package/dist/ai/providers/google-shared.js.map +1 -1
  139. package/dist/ai/providers/google-vertex.d.ts.map +1 -1
  140. package/dist/ai/providers/google-vertex.js +33 -26
  141. package/dist/ai/providers/google-vertex.js.map +1 -1
  142. package/dist/ai/providers/google.d.ts.map +1 -1
  143. package/dist/ai/providers/google.js +33 -26
  144. package/dist/ai/providers/google.js.map +1 -1
  145. package/dist/ai/providers/kimi.d.ts.map +1 -1
  146. package/dist/ai/providers/kimi.js +34 -24
  147. package/dist/ai/providers/kimi.js.map +1 -1
  148. package/dist/ai/providers/openai-codex-responses.d.ts.map +1 -1
  149. package/dist/ai/providers/openai-codex-responses.js +33 -25
  150. package/dist/ai/providers/openai-codex-responses.js.map +1 -1
  151. package/dist/ai/providers/openai-completions.d.ts +10 -0
  152. package/dist/ai/providers/openai-completions.d.ts.map +1 -1
  153. package/dist/ai/providers/openai-completions.js +51 -26
  154. package/dist/ai/providers/openai-completions.js.map +1 -1
  155. package/dist/ai/providers/openai-responses-shared.d.ts +9 -0
  156. package/dist/ai/providers/openai-responses-shared.d.ts.map +1 -1
  157. package/dist/ai/providers/openai-responses-shared.js +18 -2
  158. package/dist/ai/providers/openai-responses-shared.js.map +1 -1
  159. package/dist/ai/providers/openai-responses.d.ts.map +1 -1
  160. package/dist/ai/providers/openai-responses.js +35 -32
  161. package/dist/ai/providers/openai-responses.js.map +1 -1
  162. package/dist/ai/providers/register-builtins.d.ts.map +1 -1
  163. package/dist/ai/providers/register-builtins.js +17 -8
  164. package/dist/ai/providers/register-builtins.js.map +1 -1
  165. package/dist/ai/providers/simple-options.d.ts +19 -0
  166. package/dist/ai/providers/simple-options.d.ts.map +1 -1
  167. package/dist/ai/providers/simple-options.js +62 -0
  168. package/dist/ai/providers/simple-options.js.map +1 -1
  169. package/dist/ai/providers/transform-messages.d.ts +14 -0
  170. package/dist/ai/providers/transform-messages.d.ts.map +1 -1
  171. package/dist/ai/providers/transform-messages.js +99 -96
  172. package/dist/ai/providers/transform-messages.js.map +1 -1
  173. package/dist/ai/stream.d.ts +17 -3
  174. package/dist/ai/stream.d.ts.map +1 -1
  175. package/dist/ai/stream.js +61 -6
  176. package/dist/ai/stream.js.map +1 -1
  177. package/dist/ai/types.d.ts +17 -0
  178. package/dist/ai/types.d.ts.map +1 -1
  179. package/dist/ai/types.js +87 -1
  180. package/dist/ai/types.js.map +1 -1
  181. package/dist/ai/types.test.d.ts +8 -0
  182. package/dist/ai/types.test.d.ts.map +1 -0
  183. package/dist/ai/types.test.js +389 -0
  184. package/dist/ai/types.test.js.map +1 -0
  185. package/dist/ai/utils/base-stream-handler.d.ts +16 -0
  186. package/dist/ai/utils/base-stream-handler.d.ts.map +1 -0
  187. package/dist/ai/utils/base-stream-handler.js +24 -0
  188. package/dist/ai/utils/base-stream-handler.js.map +1 -0
  189. package/dist/ai/utils/event-stream.d.ts +26 -4
  190. package/dist/ai/utils/event-stream.d.ts.map +1 -1
  191. package/dist/ai/utils/event-stream.js +89 -5
  192. package/dist/ai/utils/event-stream.js.map +1 -1
  193. package/dist/ai/utils/index.d.ts +15 -0
  194. package/dist/ai/utils/index.d.ts.map +1 -0
  195. package/dist/ai/utils/index.js +15 -0
  196. package/dist/ai/utils/index.js.map +1 -0
  197. package/dist/ai/utils/json-parse.d.ts +13 -4
  198. package/dist/ai/utils/json-parse.d.ts.map +1 -1
  199. package/dist/ai/utils/json-parse.js +31 -19
  200. package/dist/ai/utils/json-parse.js.map +1 -1
  201. package/dist/ai/utils/message-transform.d.ts +29 -0
  202. package/dist/ai/utils/message-transform.d.ts.map +1 -0
  203. package/dist/ai/utils/message-transform.js +55 -0
  204. package/dist/ai/utils/message-transform.js.map +1 -0
  205. package/dist/ai/utils/oauth/anthropic.d.ts +1 -0
  206. package/dist/ai/utils/oauth/anthropic.d.ts.map +1 -1
  207. package/dist/ai/utils/oauth/anthropic.js +3 -0
  208. package/dist/ai/utils/oauth/anthropic.js.map +1 -1
  209. package/dist/ai/utils/oauth/github-copilot.d.ts +1 -0
  210. package/dist/ai/utils/oauth/github-copilot.d.ts.map +1 -1
  211. package/dist/ai/utils/oauth/github-copilot.js +3 -0
  212. package/dist/ai/utils/oauth/github-copilot.js.map +1 -1
  213. package/dist/ai/utils/oauth/index.d.ts +2 -1
  214. package/dist/ai/utils/oauth/index.d.ts.map +1 -1
  215. package/dist/ai/utils/oauth/index.js +10 -0
  216. package/dist/ai/utils/oauth/index.js.map +1 -1
  217. package/dist/ai/utils/oauth/kimi.d.ts +1 -0
  218. package/dist/ai/utils/oauth/kimi.d.ts.map +1 -1
  219. package/dist/ai/utils/oauth/kimi.js +3 -0
  220. package/dist/ai/utils/oauth/kimi.js.map +1 -1
  221. package/dist/ai/utils/oauth/openai-codex.d.ts +1 -0
  222. package/dist/ai/utils/oauth/openai-codex.d.ts.map +1 -1
  223. package/dist/ai/utils/oauth/openai-codex.js +3 -0
  224. package/dist/ai/utils/oauth/openai-codex.js.map +1 -1
  225. package/dist/ai/utils/oauth/pkce.d.ts +1 -0
  226. package/dist/ai/utils/oauth/pkce.d.ts.map +1 -1
  227. package/dist/ai/utils/oauth/pkce.js +5 -0
  228. package/dist/ai/utils/oauth/pkce.js.map +1 -1
  229. package/dist/ai/utils/oauth/types.d.ts +6 -0
  230. package/dist/ai/utils/oauth/types.d.ts.map +1 -1
  231. package/dist/ai/utils/output-factory.d.ts +3 -0
  232. package/dist/ai/utils/output-factory.d.ts.map +1 -0
  233. package/dist/ai/utils/output-factory.js +23 -0
  234. package/dist/ai/utils/output-factory.js.map +1 -0
  235. package/dist/ai/utils/overflow.d.ts +6 -47
  236. package/dist/ai/utils/overflow.d.ts.map +1 -1
  237. package/dist/ai/utils/overflow.js +28 -92
  238. package/dist/ai/utils/overflow.js.map +1 -1
  239. package/dist/ai/utils/provider-adapter.d.ts +57 -0
  240. package/dist/ai/utils/provider-adapter.d.ts.map +1 -0
  241. package/dist/ai/utils/provider-adapter.js +28 -0
  242. package/dist/ai/utils/provider-adapter.js.map +1 -0
  243. package/dist/ai/utils/provider-client-builder.d.ts +37 -0
  244. package/dist/ai/utils/provider-client-builder.d.ts.map +1 -0
  245. package/dist/ai/utils/provider-client-builder.js +50 -0
  246. package/dist/ai/utils/provider-client-builder.js.map +1 -0
  247. package/dist/ai/utils/provider-consolidation.d.ts +4 -0
  248. package/dist/ai/utils/provider-consolidation.d.ts.map +1 -0
  249. package/dist/ai/utils/provider-consolidation.js +33 -0
  250. package/dist/ai/utils/provider-consolidation.js.map +1 -0
  251. package/dist/ai/utils/provider-constants.d.ts +35 -0
  252. package/dist/ai/utils/provider-constants.d.ts.map +1 -0
  253. package/dist/ai/utils/provider-constants.js +35 -0
  254. package/dist/ai/utils/provider-constants.js.map +1 -0
  255. package/dist/ai/utils/provider-errors.d.ts +46 -0
  256. package/dist/ai/utils/provider-errors.d.ts.map +1 -0
  257. package/dist/ai/utils/provider-errors.js +101 -0
  258. package/dist/ai/utils/provider-errors.js.map +1 -0
  259. package/dist/ai/utils/sanitize-unicode.d.ts +1 -0
  260. package/dist/ai/utils/sanitize-unicode.d.ts.map +1 -1
  261. package/dist/ai/utils/sanitize-unicode.js +16 -0
  262. package/dist/ai/utils/sanitize-unicode.js.map +1 -1
  263. package/dist/ai/utils/stream-event-helper.d.ts +28 -0
  264. package/dist/ai/utils/stream-event-helper.d.ts.map +1 -0
  265. package/dist/ai/utils/stream-event-helper.js +49 -0
  266. package/dist/ai/utils/stream-event-helper.js.map +1 -0
  267. package/dist/ai/utils/stream-handler-types.d.ts +43 -0
  268. package/dist/ai/utils/stream-handler-types.d.ts.map +1 -0
  269. package/dist/ai/utils/stream-handler-types.js +18 -0
  270. package/dist/ai/utils/stream-handler-types.js.map +1 -0
  271. package/dist/ai/utils/streaming-state-manager.d.ts +50 -0
  272. package/dist/ai/utils/streaming-state-manager.d.ts.map +1 -0
  273. package/dist/ai/utils/streaming-state-manager.js +65 -0
  274. package/dist/ai/utils/streaming-state-manager.js.map +1 -0
  275. package/dist/ai/utils/tool-converter.d.ts +50 -0
  276. package/dist/ai/utils/tool-converter.d.ts.map +1 -0
  277. package/dist/ai/utils/tool-converter.js +54 -0
  278. package/dist/ai/utils/tool-converter.js.map +1 -0
  279. package/dist/ai/utils/typebox-helpers.d.ts +6 -1
  280. package/dist/ai/utils/typebox-helpers.d.ts.map +1 -1
  281. package/dist/ai/utils/typebox-helpers.js +7 -0
  282. package/dist/ai/utils/typebox-helpers.js.map +1 -1
  283. package/dist/ai/utils/validation.d.ts +6 -0
  284. package/dist/ai/utils/validation.d.ts.map +1 -1
  285. package/dist/ai/utils/validation.js +23 -9
  286. package/dist/ai/utils/validation.js.map +1 -1
  287. package/dist/index.d.ts +0 -1
  288. package/dist/index.d.ts.map +1 -1
  289. package/dist/index.js +0 -1
  290. package/dist/index.js.map +1 -1
  291. package/dist/tui/autocomplete.d.ts +17 -0
  292. package/dist/tui/autocomplete.d.ts.map +1 -1
  293. package/dist/tui/autocomplete.js +33 -3
  294. package/dist/tui/autocomplete.js.map +1 -1
  295. package/dist/tui/components/box.d.ts +2 -2
  296. package/dist/tui/components/box.d.ts.map +1 -1
  297. package/dist/tui/components/box.js +7 -5
  298. package/dist/tui/components/box.js.map +1 -1
  299. package/dist/tui/components/cancellable-loader.d.ts +1 -0
  300. package/dist/tui/components/cancellable-loader.d.ts.map +1 -1
  301. package/dist/tui/components/cancellable-loader.js +4 -0
  302. package/dist/tui/components/cancellable-loader.js.map +1 -1
  303. package/dist/tui/components/editor.d.ts +2 -2
  304. package/dist/tui/components/editor.d.ts.map +1 -1
  305. package/dist/tui/components/editor.js +6 -3
  306. package/dist/tui/components/editor.js.map +1 -1
  307. package/dist/tui/components/image.d.ts +2 -2
  308. package/dist/tui/components/image.d.ts.map +1 -1
  309. package/dist/tui/components/image.js +35 -33
  310. package/dist/tui/components/image.js.map +1 -1
  311. package/dist/tui/components/input.d.ts +2 -2
  312. package/dist/tui/components/input.d.ts.map +1 -1
  313. package/dist/tui/components/input.js +6 -3
  314. package/dist/tui/components/input.js.map +1 -1
  315. package/dist/tui/components/loader.d.ts +2 -0
  316. package/dist/tui/components/loader.d.ts.map +1 -1
  317. package/dist/tui/components/loader.js +8 -0
  318. package/dist/tui/components/loader.js.map +1 -1
  319. package/dist/tui/components/markdown.d.ts +2 -2
  320. package/dist/tui/components/markdown.d.ts.map +1 -1
  321. package/dist/tui/components/markdown.js +61 -57
  322. package/dist/tui/components/markdown.js.map +1 -1
  323. package/dist/tui/components/select-list.d.ts +2 -2
  324. package/dist/tui/components/select-list.d.ts.map +1 -1
  325. package/dist/tui/components/select-list.js +79 -71
  326. package/dist/tui/components/select-list.js.map +1 -1
  327. package/dist/tui/components/settings-list.d.ts +2 -2
  328. package/dist/tui/components/settings-list.d.ts.map +1 -1
  329. package/dist/tui/components/settings-list.js +12 -1
  330. package/dist/tui/components/settings-list.js.map +1 -1
  331. package/dist/tui/components/spacer.d.ts +3 -3
  332. package/dist/tui/components/spacer.d.ts.map +1 -1
  333. package/dist/tui/components/spacer.js +13 -8
  334. package/dist/tui/components/spacer.js.map +1 -1
  335. package/dist/tui/components/text-renderer.d.ts +7 -0
  336. package/dist/tui/components/text-renderer.d.ts.map +1 -0
  337. package/dist/tui/components/text-renderer.js +25 -0
  338. package/dist/tui/components/text-renderer.js.map +1 -0
  339. package/dist/tui/components/text.d.ts +2 -4
  340. package/dist/tui/components/text.d.ts.map +1 -1
  341. package/dist/tui/components/text.js +35 -54
  342. package/dist/tui/components/text.js.map +1 -1
  343. package/dist/tui/components/truncated-text.d.ts +2 -2
  344. package/dist/tui/components/truncated-text.d.ts.map +1 -1
  345. package/dist/tui/components/truncated-text.js +7 -4
  346. package/dist/tui/components/truncated-text.js.map +1 -1
  347. package/dist/tui/editor-component.d.ts +2 -0
  348. package/dist/tui/editor-component.d.ts.map +1 -1
  349. package/dist/tui/fuzzy.d.ts +10 -0
  350. package/dist/tui/fuzzy.d.ts.map +1 -1
  351. package/dist/tui/fuzzy.js +75 -56
  352. package/dist/tui/fuzzy.js.map +1 -1
  353. package/dist/tui/keybindings.d.ts +16 -3
  354. package/dist/tui/keybindings.d.ts.map +1 -1
  355. package/dist/tui/keybindings.js +68 -12
  356. package/dist/tui/keybindings.js.map +1 -1
  357. package/dist/tui/keys.d.ts +5 -0
  358. package/dist/tui/keys.d.ts.map +1 -1
  359. package/dist/tui/keys.js +72 -1
  360. package/dist/tui/keys.js.map +1 -1
  361. package/dist/tui/stdin-buffer.d.ts +5 -0
  362. package/dist/tui/stdin-buffer.d.ts.map +1 -1
  363. package/dist/tui/stdin-buffer.js +20 -7
  364. package/dist/tui/stdin-buffer.js.map +1 -1
  365. package/dist/tui/terminal-image.d.ts.map +1 -1
  366. package/dist/tui/terminal-image.js +17 -6
  367. package/dist/tui/terminal-image.js.map +1 -1
  368. package/dist/tui/terminal.d.ts +15 -0
  369. package/dist/tui/terminal.d.ts.map +1 -1
  370. package/dist/tui/terminal.js +39 -6
  371. package/dist/tui/terminal.js.map +1 -1
  372. package/dist/tui/tui.d.ts +50 -4
  373. package/dist/tui/tui.d.ts.map +1 -1
  374. package/dist/tui/tui.js +201 -186
  375. package/dist/tui/tui.js.map +1 -1
  376. package/dist/tui/utils.d.ts +19 -0
  377. package/dist/tui/utils.d.ts.map +1 -1
  378. package/dist/tui/utils.js +39 -0
  379. package/dist/tui/utils.js.map +1 -1
  380. package/package.json +7 -9
  381. package/dist/webui/ChatPanel.d.ts +0 -28
  382. package/dist/webui/ChatPanel.d.ts.map +0 -1
  383. package/dist/webui/ChatPanel.js +0 -193
  384. package/dist/webui/ChatPanel.js.map +0 -1
  385. package/dist/webui/components/AgentInterface.d.ts +0 -39
  386. package/dist/webui/components/AgentInterface.d.ts.map +0 -1
  387. package/dist/webui/components/AgentInterface.js +0 -371
  388. package/dist/webui/components/AgentInterface.js.map +0 -1
  389. package/dist/webui/components/AttachmentTile.d.ts +0 -12
  390. package/dist/webui/components/AttachmentTile.d.ts.map +0 -1
  391. package/dist/webui/components/AttachmentTile.js +0 -111
  392. package/dist/webui/components/AttachmentTile.js.map +0 -1
  393. package/dist/webui/components/ConsoleBlock.d.ts +0 -12
  394. package/dist/webui/components/ConsoleBlock.d.ts.map +0 -1
  395. package/dist/webui/components/ConsoleBlock.js +0 -84
  396. package/dist/webui/components/ConsoleBlock.js.map +0 -1
  397. package/dist/webui/components/CustomProviderCard.d.ts +0 -17
  398. package/dist/webui/components/CustomProviderCard.d.ts.map +0 -1
  399. package/dist/webui/components/CustomProviderCard.js +0 -110
  400. package/dist/webui/components/CustomProviderCard.js.map +0 -1
  401. package/dist/webui/components/ExpandableSection.d.ts +0 -15
  402. package/dist/webui/components/ExpandableSection.d.ts.map +0 -1
  403. package/dist/webui/components/ExpandableSection.js +0 -63
  404. package/dist/webui/components/ExpandableSection.js.map +0 -1
  405. package/dist/webui/components/Input.d.ts +0 -26
  406. package/dist/webui/components/Input.d.ts.map +0 -1
  407. package/dist/webui/components/Input.js +0 -57
  408. package/dist/webui/components/Input.js.map +0 -1
  409. package/dist/webui/components/MessageEditor.d.ts +0 -44
  410. package/dist/webui/components/MessageEditor.d.ts.map +0 -1
  411. package/dist/webui/components/MessageEditor.js +0 -414
  412. package/dist/webui/components/MessageEditor.js.map +0 -1
  413. package/dist/webui/components/MessageList.d.ts +0 -14
  414. package/dist/webui/components/MessageList.d.ts.map +0 -1
  415. package/dist/webui/components/MessageList.js +0 -104
  416. package/dist/webui/components/MessageList.js.map +0 -1
  417. package/dist/webui/components/Messages.d.ts +0 -94
  418. package/dist/webui/components/Messages.d.ts.map +0 -1
  419. package/dist/webui/components/Messages.js +0 -352
  420. package/dist/webui/components/Messages.js.map +0 -1
  421. package/dist/webui/components/ProviderKeyInput.d.ts +0 -16
  422. package/dist/webui/components/ProviderKeyInput.d.ts.map +0 -1
  423. package/dist/webui/components/ProviderKeyInput.js +0 -171
  424. package/dist/webui/components/ProviderKeyInput.js.map +0 -1
  425. package/dist/webui/components/SandboxedIframe.d.ts +0 -85
  426. package/dist/webui/components/SandboxedIframe.d.ts.map +0 -1
  427. package/dist/webui/components/SandboxedIframe.js +0 -511
  428. package/dist/webui/components/SandboxedIframe.js.map +0 -1
  429. package/dist/webui/components/StreamingMessageContainer.d.ts +0 -19
  430. package/dist/webui/components/StreamingMessageContainer.d.ts.map +0 -1
  431. package/dist/webui/components/StreamingMessageContainer.js +0 -117
  432. package/dist/webui/components/StreamingMessageContainer.js.map +0 -1
  433. package/dist/webui/components/ThinkingBlock.d.ts +0 -11
  434. package/dist/webui/components/ThinkingBlock.d.ts.map +0 -1
  435. package/dist/webui/components/ThinkingBlock.js +0 -58
  436. package/dist/webui/components/ThinkingBlock.js.map +0 -1
  437. package/dist/webui/components/message-renderer-registry.d.ts +0 -12
  438. package/dist/webui/components/message-renderer-registry.d.ts.map +0 -1
  439. package/dist/webui/components/message-renderer-registry.js +0 -12
  440. package/dist/webui/components/message-renderer-registry.js.map +0 -1
  441. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.d.ts +0 -35
  442. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.d.ts.map +0 -1
  443. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.js +0 -189
  444. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.js.map +0 -1
  445. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.d.ts +0 -17
  446. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.d.ts.map +0 -1
  447. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.js +0 -64
  448. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.js.map +0 -1
  449. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.d.ts +0 -42
  450. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.d.ts.map +0 -1
  451. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.js +0 -161
  452. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.js.map +0 -1
  453. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.d.ts +0 -30
  454. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.d.ts.map +0 -1
  455. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.js +0 -97
  456. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.js.map +0 -1
  457. package/dist/webui/components/sandbox/RuntimeMessageBridge.d.ts +0 -19
  458. package/dist/webui/components/sandbox/RuntimeMessageBridge.d.ts.map +0 -1
  459. package/dist/webui/components/sandbox/RuntimeMessageBridge.js +0 -74
  460. package/dist/webui/components/sandbox/RuntimeMessageBridge.js.map +0 -1
  461. package/dist/webui/components/sandbox/RuntimeMessageRouter.d.ts +0 -65
  462. package/dist/webui/components/sandbox/RuntimeMessageRouter.d.ts.map +0 -1
  463. package/dist/webui/components/sandbox/RuntimeMessageRouter.js +0 -168
  464. package/dist/webui/components/sandbox/RuntimeMessageRouter.js.map +0 -1
  465. package/dist/webui/components/sandbox/SandboxRuntimeProvider.d.ts +0 -48
  466. package/dist/webui/components/sandbox/SandboxRuntimeProvider.d.ts.map +0 -1
  467. package/dist/webui/components/sandbox/SandboxRuntimeProvider.js +0 -2
  468. package/dist/webui/components/sandbox/SandboxRuntimeProvider.js.map +0 -1
  469. package/dist/webui/dialogs/ApiKeyPromptDialog.d.ts +0 -15
  470. package/dist/webui/dialogs/ApiKeyPromptDialog.d.ts.map +0 -1
  471. package/dist/webui/dialogs/ApiKeyPromptDialog.js +0 -79
  472. package/dist/webui/dialogs/ApiKeyPromptDialog.js.map +0 -1
  473. package/dist/webui/dialogs/AttachmentOverlay.d.ts +0 -32
  474. package/dist/webui/dialogs/AttachmentOverlay.d.ts.map +0 -1
  475. package/dist/webui/dialogs/AttachmentOverlay.js +0 -576
  476. package/dist/webui/dialogs/AttachmentOverlay.js.map +0 -1
  477. package/dist/webui/dialogs/CustomProviderDialog.d.ts +0 -25
  478. package/dist/webui/dialogs/CustomProviderDialog.d.ts.map +0 -1
  479. package/dist/webui/dialogs/CustomProviderDialog.js +0 -270
  480. package/dist/webui/dialogs/CustomProviderDialog.js.map +0 -1
  481. package/dist/webui/dialogs/ModelSelector.d.ts +0 -27
  482. package/dist/webui/dialogs/ModelSelector.d.ts.map +0 -1
  483. package/dist/webui/dialogs/ModelSelector.js +0 -320
  484. package/dist/webui/dialogs/ModelSelector.js.map +0 -1
  485. package/dist/webui/dialogs/PersistentStorageDialog.d.ts +0 -17
  486. package/dist/webui/dialogs/PersistentStorageDialog.d.ts.map +0 -1
  487. package/dist/webui/dialogs/PersistentStorageDialog.js +0 -147
  488. package/dist/webui/dialogs/PersistentStorageDialog.js.map +0 -1
  489. package/dist/webui/dialogs/ProvidersModelsTab.d.ts +0 -20
  490. package/dist/webui/dialogs/ProvidersModelsTab.d.ts.map +0 -1
  491. package/dist/webui/dialogs/ProvidersModelsTab.js +0 -191
  492. package/dist/webui/dialogs/ProvidersModelsTab.js.map +0 -1
  493. package/dist/webui/dialogs/SessionListDialog.d.ts +0 -19
  494. package/dist/webui/dialogs/SessionListDialog.d.ts.map +0 -1
  495. package/dist/webui/dialogs/SessionListDialog.js +0 -154
  496. package/dist/webui/dialogs/SessionListDialog.js.map +0 -1
  497. package/dist/webui/dialogs/SettingsDialog.d.ts +0 -30
  498. package/dist/webui/dialogs/SettingsDialog.d.ts.map +0 -1
  499. package/dist/webui/dialogs/SettingsDialog.js +0 -229
  500. package/dist/webui/dialogs/SettingsDialog.js.map +0 -1
  501. package/dist/webui/index.d.ts +0 -65
  502. package/dist/webui/index.d.ts.map +0 -1
  503. package/dist/webui/index.js +0 -68
  504. package/dist/webui/index.js.map +0 -1
  505. package/dist/webui/prompts/prompts.d.ts +0 -11
  506. package/dist/webui/prompts/prompts.d.ts.map +0 -1
  507. package/dist/webui/prompts/prompts.js +0 -272
  508. package/dist/webui/prompts/prompts.js.map +0 -1
  509. package/dist/webui/storage/app-storage.d.ts +0 -33
  510. package/dist/webui/storage/app-storage.d.ts.map +0 -1
  511. package/dist/webui/storage/app-storage.js +0 -38
  512. package/dist/webui/storage/app-storage.js.map +0 -1
  513. package/dist/webui/storage/backends/indexeddb-storage-backend.d.ts +0 -27
  514. package/dist/webui/storage/backends/indexeddb-storage-backend.d.ts.map +0 -1
  515. package/dist/webui/storage/backends/indexeddb-storage-backend.js +0 -166
  516. package/dist/webui/storage/backends/indexeddb-storage-backend.js.map +0 -1
  517. package/dist/webui/storage/store.d.ts +0 -23
  518. package/dist/webui/storage/store.d.ts.map +0 -1
  519. package/dist/webui/storage/store.js +0 -26
  520. package/dist/webui/storage/store.js.map +0 -1
  521. package/dist/webui/storage/stores/custom-providers-store.d.ts +0 -25
  522. package/dist/webui/storage/stores/custom-providers-store.d.ts.map +0 -1
  523. package/dist/webui/storage/stores/custom-providers-store.js +0 -35
  524. package/dist/webui/storage/stores/custom-providers-store.js.map +0 -1
  525. package/dist/webui/storage/stores/provider-keys-store.d.ts +0 -14
  526. package/dist/webui/storage/stores/provider-keys-store.d.ts.map +0 -1
  527. package/dist/webui/storage/stores/provider-keys-store.js +0 -27
  528. package/dist/webui/storage/stores/provider-keys-store.js.map +0 -1
  529. package/dist/webui/storage/stores/sessions-store.d.ts +0 -32
  530. package/dist/webui/storage/stores/sessions-store.d.ts.map +0 -1
  531. package/dist/webui/storage/stores/sessions-store.js +0 -113
  532. package/dist/webui/storage/stores/sessions-store.js.map +0 -1
  533. package/dist/webui/storage/stores/settings-store.d.ts +0 -14
  534. package/dist/webui/storage/stores/settings-store.d.ts.map +0 -1
  535. package/dist/webui/storage/stores/settings-store.js +0 -28
  536. package/dist/webui/storage/stores/settings-store.js.map +0 -1
  537. package/dist/webui/storage/types.d.ts +0 -176
  538. package/dist/webui/storage/types.d.ts.map +0 -1
  539. package/dist/webui/storage/types.js +0 -2
  540. package/dist/webui/storage/types.js.map +0 -1
  541. package/dist/webui/tools/artifacts/ArtifactElement.d.ts +0 -9
  542. package/dist/webui/tools/artifacts/ArtifactElement.d.ts.map +0 -1
  543. package/dist/webui/tools/artifacts/ArtifactElement.js +0 -11
  544. package/dist/webui/tools/artifacts/ArtifactElement.js.map +0 -1
  545. package/dist/webui/tools/artifacts/ArtifactPill.d.ts +0 -4
  546. package/dist/webui/tools/artifacts/ArtifactPill.d.ts.map +0 -1
  547. package/dist/webui/tools/artifacts/ArtifactPill.js +0 -23
  548. package/dist/webui/tools/artifacts/ArtifactPill.js.map +0 -1
  549. package/dist/webui/tools/artifacts/Console.d.ts +0 -18
  550. package/dist/webui/tools/artifacts/Console.d.ts.map +0 -1
  551. package/dist/webui/tools/artifacts/Console.js +0 -95
  552. package/dist/webui/tools/artifacts/Console.js.map +0 -1
  553. package/dist/webui/tools/artifacts/DocxArtifact.d.ts +0 -22
  554. package/dist/webui/tools/artifacts/DocxArtifact.d.ts.map +0 -1
  555. package/dist/webui/tools/artifacts/DocxArtifact.js +0 -208
  556. package/dist/webui/tools/artifacts/DocxArtifact.js.map +0 -1
  557. package/dist/webui/tools/artifacts/ExcelArtifact.d.ts +0 -24
  558. package/dist/webui/tools/artifacts/ExcelArtifact.d.ts.map +0 -1
  559. package/dist/webui/tools/artifacts/ExcelArtifact.js +0 -216
  560. package/dist/webui/tools/artifacts/ExcelArtifact.js.map +0 -1
  561. package/dist/webui/tools/artifacts/GenericArtifact.d.ts +0 -19
  562. package/dist/webui/tools/artifacts/GenericArtifact.d.ts.map +0 -1
  563. package/dist/webui/tools/artifacts/GenericArtifact.js +0 -117
  564. package/dist/webui/tools/artifacts/GenericArtifact.js.map +0 -1
  565. package/dist/webui/tools/artifacts/HtmlArtifact.d.ts +0 -27
  566. package/dist/webui/tools/artifacts/HtmlArtifact.d.ts.map +0 -1
  567. package/dist/webui/tools/artifacts/HtmlArtifact.js +0 -189
  568. package/dist/webui/tools/artifacts/HtmlArtifact.js.map +0 -1
  569. package/dist/webui/tools/artifacts/ImageArtifact.d.ts +0 -20
  570. package/dist/webui/tools/artifacts/ImageArtifact.d.ts.map +0 -1
  571. package/dist/webui/tools/artifacts/ImageArtifact.js +0 -120
  572. package/dist/webui/tools/artifacts/ImageArtifact.js.map +0 -1
  573. package/dist/webui/tools/artifacts/MarkdownArtifact.d.ts +0 -19
  574. package/dist/webui/tools/artifacts/MarkdownArtifact.d.ts.map +0 -1
  575. package/dist/webui/tools/artifacts/MarkdownArtifact.js +0 -82
  576. package/dist/webui/tools/artifacts/MarkdownArtifact.js.map +0 -1
  577. package/dist/webui/tools/artifacts/PdfArtifact.d.ts +0 -25
  578. package/dist/webui/tools/artifacts/PdfArtifact.d.ts.map +0 -1
  579. package/dist/webui/tools/artifacts/PdfArtifact.js +0 -184
  580. package/dist/webui/tools/artifacts/PdfArtifact.js.map +0 -1
  581. package/dist/webui/tools/artifacts/SvgArtifact.d.ts +0 -18
  582. package/dist/webui/tools/artifacts/SvgArtifact.d.ts.map +0 -1
  583. package/dist/webui/tools/artifacts/SvgArtifact.js +0 -78
  584. package/dist/webui/tools/artifacts/SvgArtifact.js.map +0 -1
  585. package/dist/webui/tools/artifacts/TextArtifact.d.ts +0 -19
  586. package/dist/webui/tools/artifacts/TextArtifact.d.ts.map +0 -1
  587. package/dist/webui/tools/artifacts/TextArtifact.js +0 -144
  588. package/dist/webui/tools/artifacts/TextArtifact.js.map +0 -1
  589. package/dist/webui/tools/artifacts/artifacts-tool-renderer.d.ts +0 -11
  590. package/dist/webui/tools/artifacts/artifacts-tool-renderer.d.ts.map +0 -1
  591. package/dist/webui/tools/artifacts/artifacts-tool-renderer.js +0 -272
  592. package/dist/webui/tools/artifacts/artifacts-tool-renderer.js.map +0 -1
  593. package/dist/webui/tools/artifacts/artifacts.d.ts +0 -63
  594. package/dist/webui/tools/artifacts/artifacts.d.ts.map +0 -1
  595. package/dist/webui/tools/artifacts/artifacts.js +0 -659
  596. package/dist/webui/tools/artifacts/artifacts.js.map +0 -1
  597. package/dist/webui/tools/artifacts/index.d.ts +0 -8
  598. package/dist/webui/tools/artifacts/index.d.ts.map +0 -1
  599. package/dist/webui/tools/artifacts/index.js +0 -8
  600. package/dist/webui/tools/artifacts/index.js.map +0 -1
  601. package/dist/webui/tools/extract-document.d.ts +0 -24
  602. package/dist/webui/tools/extract-document.d.ts.map +0 -1
  603. package/dist/webui/tools/extract-document.js +0 -216
  604. package/dist/webui/tools/extract-document.js.map +0 -1
  605. package/dist/webui/tools/index.d.ts +0 -16
  606. package/dist/webui/tools/index.d.ts.map +0 -1
  607. package/dist/webui/tools/index.js +0 -33
  608. package/dist/webui/tools/index.js.map +0 -1
  609. package/dist/webui/tools/javascript-repl.d.ts +0 -44
  610. package/dist/webui/tools/javascript-repl.d.ts.map +0 -1
  611. package/dist/webui/tools/javascript-repl.js +0 -224
  612. package/dist/webui/tools/javascript-repl.js.map +0 -1
  613. package/dist/webui/tools/renderer-registry.d.ts +0 -23
  614. package/dist/webui/tools/renderer-registry.d.ts.map +0 -1
  615. package/dist/webui/tools/renderer-registry.js +0 -107
  616. package/dist/webui/tools/renderer-registry.js.map +0 -1
  617. package/dist/webui/tools/renderers/BashRenderer.d.ts +0 -10
  618. package/dist/webui/tools/renderers/BashRenderer.d.ts.map +0 -1
  619. package/dist/webui/tools/renderers/BashRenderer.js +0 -42
  620. package/dist/webui/tools/renderers/BashRenderer.js.map +0 -1
  621. package/dist/webui/tools/renderers/CalculateRenderer.d.ts +0 -10
  622. package/dist/webui/tools/renderers/CalculateRenderer.d.ts.map +0 -1
  623. package/dist/webui/tools/renderers/CalculateRenderer.js +0 -45
  624. package/dist/webui/tools/renderers/CalculateRenderer.js.map +0 -1
  625. package/dist/webui/tools/renderers/DefaultRenderer.d.ts +0 -6
  626. package/dist/webui/tools/renderers/DefaultRenderer.d.ts.map +0 -1
  627. package/dist/webui/tools/renderers/DefaultRenderer.js +0 -94
  628. package/dist/webui/tools/renderers/DefaultRenderer.js.map +0 -1
  629. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.d.ts +0 -10
  630. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.d.ts.map +0 -1
  631. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.js +0 -72
  632. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.js.map +0 -1
  633. package/dist/webui/tools/types.d.ts +0 -10
  634. package/dist/webui/tools/types.d.ts.map +0 -1
  635. package/dist/webui/tools/types.js +0 -2
  636. package/dist/webui/tools/types.js.map +0 -1
  637. package/dist/webui/utils/attachment-utils.d.ts +0 -19
  638. package/dist/webui/utils/attachment-utils.d.ts.map +0 -1
  639. package/dist/webui/utils/attachment-utils.js +0 -415
  640. package/dist/webui/utils/attachment-utils.js.map +0 -1
  641. package/dist/webui/utils/auth-token.d.ts +0 -3
  642. package/dist/webui/utils/auth-token.d.ts.map +0 -1
  643. package/dist/webui/utils/auth-token.js +0 -19
  644. package/dist/webui/utils/auth-token.js.map +0 -1
  645. package/dist/webui/utils/format.d.ts +0 -6
  646. package/dist/webui/utils/format.d.ts.map +0 -1
  647. package/dist/webui/utils/format.js +0 -47
  648. package/dist/webui/utils/format.js.map +0 -1
  649. package/dist/webui/utils/i18n.d.ts +0 -636
  650. package/dist/webui/utils/i18n.d.ts.map +0 -1
  651. package/dist/webui/utils/i18n.js +0 -418
  652. package/dist/webui/utils/i18n.js.map +0 -1
  653. package/dist/webui/utils/model-discovery.d.ts +0 -38
  654. package/dist/webui/utils/model-discovery.d.ts.map +0 -1
  655. package/dist/webui/utils/model-discovery.js +0 -243
  656. package/dist/webui/utils/model-discovery.js.map +0 -1
  657. package/dist/webui/utils/proxy-utils.d.ts +0 -45
  658. package/dist/webui/utils/proxy-utils.d.ts.map +0 -1
  659. package/dist/webui/utils/proxy-utils.js +0 -116
  660. package/dist/webui/utils/proxy-utils.js.map +0 -1
  661. package/dist/webui/utils/test-sessions.d.ts +0 -359
  662. package/dist/webui/utils/test-sessions.d.ts.map +0 -1
  663. package/dist/webui/utils/test-sessions.js +0 -2325
  664. package/dist/webui/utils/test-sessions.js.map +0 -1
  665. package/dist/webui.d.ts +0 -2
  666. package/dist/webui.d.ts.map +0 -1
  667. package/dist/webui.js +0 -2
  668. package/dist/webui.js.map +0 -1
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Shared error handling utilities for provider streaming.
3
+ */
4
+ import type { StopReason } from "../types.js";
5
+ /**
6
+ * Standardized error codes for provider errors.
7
+ */
8
+ export declare enum ProviderErrorCode {
9
+ /** Authentication failed (invalid API key). */
10
+ AUTHENTICATION_FAILED = "AUTHENTICATION_FAILED",
11
+ /** Rate limit exceeded. */
12
+ RATE_LIMITED = "RATE_LIMITED",
13
+ /** Request timed out. */
14
+ TIMEOUT = "TIMEOUT",
15
+ /** Network connection error. */
16
+ NETWORK_ERROR = "NETWORK_ERROR",
17
+ /** Invalid request parameters. */
18
+ INVALID_REQUEST = "INVALID_REQUEST",
19
+ /** Provider service unavailable. */
20
+ SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE",
21
+ /** Content policy violation. */
22
+ CONTENT_FILTERED = "CONTENT_FILTERED",
23
+ /** Unknown or unexpected error. */
24
+ UNKNOWN = "UNKNOWN"
25
+ }
26
+ /**
27
+ * Standardized provider error.
28
+ */
29
+ export declare class ProviderError extends Error {
30
+ readonly code: ProviderErrorCode;
31
+ readonly originalError?: unknown | undefined;
32
+ constructor(message: string, code: ProviderErrorCode, originalError?: unknown | undefined);
33
+ }
34
+ /**
35
+ * Map provider-specific stop reason to standardized StopReason.
36
+ */
37
+ export declare function mapProviderStopReason(reason: string | null | undefined, provider: string): StopReason;
38
+ /**
39
+ * Create a standardized error response message.
40
+ */
41
+ export declare function formatProviderError(error: unknown, providerName: string): string;
42
+ /**
43
+ * Check if an error is retryable.
44
+ */
45
+ export declare function isRetryableError(error: unknown): boolean;
46
+ //# sourceMappingURL=provider-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-errors.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/provider-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,oBAAY,iBAAiB;IAC5B,+CAA+C;IAC/C,qBAAqB,0BAA0B;IAE/C,2BAA2B;IAC3B,YAAY,iBAAiB;IAE7B,yBAAyB;IACzB,OAAO,YAAY;IAEnB,gCAAgC;IAChC,aAAa,kBAAkB;IAE/B,kCAAkC;IAClC,eAAe,oBAAoB;IAEnC,oCAAoC;IACpC,mBAAmB,wBAAwB;IAE3C,gCAAgC;IAChC,gBAAgB,qBAAqB;IAErC,mCAAmC;IACnC,OAAO,YAAY;CACnB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAGtB,IAAI,EAAE,iBAAiB;aACvB,aAAa,CAAC,EAAE,OAAO;gBAFvC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,iBAAiB,EACvB,aAAa,CAAC,EAAE,OAAO,YAAA;CAKxC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAwBrG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAQhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAuBxD"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Shared error handling utilities for provider streaming.
3
+ */
4
+ /**
5
+ * Standardized error codes for provider errors.
6
+ */
7
+ export var ProviderErrorCode;
8
+ (function (ProviderErrorCode) {
9
+ /** Authentication failed (invalid API key). */
10
+ ProviderErrorCode["AUTHENTICATION_FAILED"] = "AUTHENTICATION_FAILED";
11
+ /** Rate limit exceeded. */
12
+ ProviderErrorCode["RATE_LIMITED"] = "RATE_LIMITED";
13
+ /** Request timed out. */
14
+ ProviderErrorCode["TIMEOUT"] = "TIMEOUT";
15
+ /** Network connection error. */
16
+ ProviderErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
17
+ /** Invalid request parameters. */
18
+ ProviderErrorCode["INVALID_REQUEST"] = "INVALID_REQUEST";
19
+ /** Provider service unavailable. */
20
+ ProviderErrorCode["SERVICE_UNAVAILABLE"] = "SERVICE_UNAVAILABLE";
21
+ /** Content policy violation. */
22
+ ProviderErrorCode["CONTENT_FILTERED"] = "CONTENT_FILTERED";
23
+ /** Unknown or unexpected error. */
24
+ ProviderErrorCode["UNKNOWN"] = "UNKNOWN";
25
+ })(ProviderErrorCode || (ProviderErrorCode = {}));
26
+ /**
27
+ * Standardized provider error.
28
+ */
29
+ export class ProviderError extends Error {
30
+ constructor(message, code, originalError) {
31
+ super(message);
32
+ this.code = code;
33
+ this.originalError = originalError;
34
+ this.name = "ProviderError";
35
+ }
36
+ }
37
+ /**
38
+ * Map provider-specific stop reason to standardized StopReason.
39
+ */
40
+ export function mapProviderStopReason(reason, provider) {
41
+ if (!reason)
42
+ return "stop";
43
+ const lower = reason.toLowerCase();
44
+ switch (lower) {
45
+ case "stop":
46
+ case "end_turn":
47
+ case "stop_sequence":
48
+ return "stop";
49
+ case "max_tokens":
50
+ case "length":
51
+ return "length";
52
+ case "tool_use":
53
+ case "tool_calls":
54
+ case "function_call":
55
+ return "toolUse";
56
+ case "content_filter":
57
+ case "refusal":
58
+ case "safety":
59
+ return "error";
60
+ default:
61
+ return "error";
62
+ }
63
+ }
64
+ /**
65
+ * Create a standardized error response message.
66
+ */
67
+ export function formatProviderError(error, providerName) {
68
+ if (error instanceof ProviderError) {
69
+ return `[${providerName}] ${error.message} (${error.code})`;
70
+ }
71
+ if (error instanceof Error) {
72
+ return `[${providerName}] ${error.message}`;
73
+ }
74
+ return `[${providerName}] Unknown error: ${String(error)}`;
75
+ }
76
+ /**
77
+ * Check if an error is retryable.
78
+ */
79
+ export function isRetryableError(error) {
80
+ if (error instanceof ProviderError) {
81
+ switch (error.code) {
82
+ case ProviderErrorCode.RATE_LIMITED:
83
+ case ProviderErrorCode.TIMEOUT:
84
+ case ProviderErrorCode.NETWORK_ERROR:
85
+ case ProviderErrorCode.SERVICE_UNAVAILABLE:
86
+ return true;
87
+ default:
88
+ return false;
89
+ }
90
+ }
91
+ if (error instanceof Error) {
92
+ const msg = error.message.toLowerCase();
93
+ return (msg.includes("rate limit") ||
94
+ msg.includes("timeout") ||
95
+ msg.includes("network") ||
96
+ msg.includes("econnreset") ||
97
+ msg.includes("etimedout"));
98
+ }
99
+ return false;
100
+ }
101
+ //# sourceMappingURL=provider-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-errors.js","sourceRoot":"","sources":["../../../src/ai/utils/provider-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAY,iBAwBX;AAxBD,WAAY,iBAAiB;IAC5B,+CAA+C;IAC/C,oEAA+C,CAAA;IAE/C,2BAA2B;IAC3B,kDAA6B,CAAA;IAE7B,yBAAyB;IACzB,wCAAmB,CAAA;IAEnB,gCAAgC;IAChC,oDAA+B,CAAA;IAE/B,kCAAkC;IAClC,wDAAmC,CAAA;IAEnC,oCAAoC;IACpC,gEAA2C,CAAA;IAE3C,gCAAgC;IAChC,0DAAqC,CAAA;IAErC,mCAAmC;IACnC,wCAAmB,CAAA;AACpB,CAAC,EAxBW,iBAAiB,KAAjB,iBAAiB,QAwB5B;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACvC,YACC,OAAe,EACC,IAAuB,EACvB,aAAuB;QAEvC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAmB;QACvB,kBAAa,GAAb,aAAa,CAAU;QAGvC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC7B,CAAC;CACD;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiC,EAAE,QAAgB;IACxF,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAE3B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEnC,QAAQ,KAAK,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe;YACnB,OAAO,MAAM,CAAC;QACf,KAAK,YAAY,CAAC;QAClB,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe;YACnB,OAAO,SAAS,CAAC;QAClB,KAAK,gBAAgB,CAAC;QACtB,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACZ,OAAO,OAAO,CAAC;QAChB;YACC,OAAO,OAAO,CAAC;IACjB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,YAAoB;IACvE,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACpC,OAAO,IAAI,YAAY,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO,IAAI,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,YAAY,oBAAoB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC9C,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACpC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,iBAAiB,CAAC,YAAY,CAAC;YACpC,KAAK,iBAAiB,CAAC,OAAO,CAAC;YAC/B,KAAK,iBAAiB,CAAC,aAAa,CAAC;YACrC,KAAK,iBAAiB,CAAC,mBAAmB;gBACzC,OAAO,IAAI,CAAC;YACb;gBACC,OAAO,KAAK,CAAC;QACf,CAAC;IACF,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,CACN,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1B,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;YACvB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;YACvB,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1B,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CACzB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -19,4 +19,5 @@
19
19
  * sanitizeSurrogates(`Text ${unpaired} here`) // => "Text here"
20
20
  */
21
21
  export declare function sanitizeSurrogates(text: string): string;
22
+ export declare function sanitizeUnknownUnicode<T>(value: T): T;
22
23
  //# sourceMappingURL=sanitize-unicode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize-unicode.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/sanitize-unicode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIvD"}
1
+ {"version":3,"file":"sanitize-unicode.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/sanitize-unicode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAerD"}
@@ -23,4 +23,20 @@ export function sanitizeSurrogates(text) {
23
23
  // Replace unpaired low surrogates (0xDC00-0xDFFF not preceded by high surrogate)
24
24
  return text.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, "");
25
25
  }
26
+ export function sanitizeUnknownUnicode(value) {
27
+ if (typeof value === "string") {
28
+ return sanitizeSurrogates(value);
29
+ }
30
+ if (Array.isArray(value)) {
31
+ return value.map((item) => sanitizeUnknownUnicode(item));
32
+ }
33
+ if (value && typeof value === "object") {
34
+ const out = {};
35
+ for (const [key, val] of Object.entries(value)) {
36
+ out[key] = sanitizeUnknownUnicode(val);
37
+ }
38
+ return out;
39
+ }
40
+ return value;
41
+ }
26
42
  //# sourceMappingURL=sanitize-unicode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize-unicode.js","sourceRoot":"","sources":["../../../src/ai/utils/sanitize-unicode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC9C,iFAAiF;IACjF,iFAAiF;IACjF,OAAO,IAAI,CAAC,OAAO,CAAC,yEAAyE,EAAE,EAAE,CAAC,CAAC;AACpG,CAAC"}
1
+ {"version":3,"file":"sanitize-unicode.js","sourceRoot":"","sources":["../../../src/ai/utils/sanitize-unicode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC9C,iFAAiF;IACjF,iFAAiF;IACjF,OAAO,IAAI,CAAC,OAAO,CAAC,yEAAyE,EAAE,EAAE,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAI,KAAQ;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,kBAAkB,CAAC,KAAK,CAAM,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAM,CAAC;IAC/D,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,GAAQ,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { AssistantMessage, TextContent, ThinkingContent, ToolCall } from "../types.js";
2
+ import type { AssistantMessageEventStream } from "./event-stream.js";
3
+ export type StreamBlock = TextContent | ThinkingContent | ToolCall;
4
+ /** Utility for locating provider blocks by provider-native `index` values. */
5
+ export declare class BlockTracker<TBlock extends StreamBlock = StreamBlock> {
6
+ private readonly blocks;
7
+ constructor(output: AssistantMessage);
8
+ findByIndex(index: number): (TBlock & {
9
+ index?: number;
10
+ }) | undefined;
11
+ findPositionByIndex(index: number): number;
12
+ }
13
+ export declare class StreamEventHelper {
14
+ private readonly stream;
15
+ private readonly output;
16
+ constructor(stream: AssistantMessageEventStream, output: AssistantMessage);
17
+ start(): void;
18
+ textStart(contentIndex: number): void;
19
+ textDelta(contentIndex: number, delta: string): void;
20
+ textEnd(contentIndex: number, content: string): void;
21
+ thinkingStart(contentIndex: number): void;
22
+ thinkingDelta(contentIndex: number, delta: string): void;
23
+ thinkingEnd(contentIndex: number, content: string): void;
24
+ toolCallStart(contentIndex: number): void;
25
+ toolCallDelta(contentIndex: number, delta: string): void;
26
+ toolCallEnd(contentIndex: number, toolCall: ToolCall): void;
27
+ }
28
+ //# sourceMappingURL=stream-event-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-event-helper.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/stream-event-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,QAAQ,CAAC;AAEnE,8EAA8E;AAC9E,qBAAa,YAAY,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAEhD,MAAM,EAAE,gBAAgB;IAIpC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS;IAIrE,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG1C;AAED,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,2BAA2B,EACnC,MAAM,EAAE,gBAAgB;IAG1C,KAAK,IAAI,IAAI;IAIb,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAGrC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAGpD,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAGzC,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAGxD,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIxD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAGzC,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAGxD,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAG3D"}
@@ -0,0 +1,49 @@
1
+ /** Utility for locating provider blocks by provider-native `index` values. */
2
+ export class BlockTracker {
3
+ constructor(output) {
4
+ this.blocks = output.content;
5
+ }
6
+ findByIndex(index) {
7
+ return this.blocks.find((b) => b.index === index);
8
+ }
9
+ findPositionByIndex(index) {
10
+ return this.blocks.findIndex((b) => b.index === index);
11
+ }
12
+ }
13
+ export class StreamEventHelper {
14
+ constructor(stream, output) {
15
+ this.stream = stream;
16
+ this.output = output;
17
+ }
18
+ start() {
19
+ this.stream.pushStart(this.output);
20
+ }
21
+ textStart(contentIndex) {
22
+ this.stream.pushTextStart(contentIndex, this.output);
23
+ }
24
+ textDelta(contentIndex, delta) {
25
+ this.stream.pushTextDelta(contentIndex, delta, this.output);
26
+ }
27
+ textEnd(contentIndex, content) {
28
+ this.stream.pushTextEnd(contentIndex, content, this.output);
29
+ }
30
+ thinkingStart(contentIndex) {
31
+ this.stream.pushThinkingStart(contentIndex, this.output);
32
+ }
33
+ thinkingDelta(contentIndex, delta) {
34
+ this.stream.pushThinkingDelta(contentIndex, delta, this.output);
35
+ }
36
+ thinkingEnd(contentIndex, content) {
37
+ this.stream.pushThinkingEnd(contentIndex, content, this.output);
38
+ }
39
+ toolCallStart(contentIndex) {
40
+ this.stream.pushToolCallStart(contentIndex, this.output);
41
+ }
42
+ toolCallDelta(contentIndex, delta) {
43
+ this.stream.pushToolCallDelta(contentIndex, delta, this.output);
44
+ }
45
+ toolCallEnd(contentIndex, toolCall) {
46
+ this.stream.pushToolCallEnd(contentIndex, toolCall, this.output);
47
+ }
48
+ }
49
+ //# sourceMappingURL=stream-event-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-event-helper.js","sourceRoot":"","sources":["../../../src/ai/utils/stream-event-helper.ts"],"names":[],"mappings":"AAKA,8EAA8E;AAC9E,MAAM,OAAO,YAAY;IAGxB,YAAY,MAAwB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAA6C,CAAC;IACpE,CAAC;IAED,WAAW,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,mBAAmB,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACxD,CAAC;CACD;AAED,MAAM,OAAO,iBAAiB;IAC7B,YACkB,MAAmC,EACnC,MAAwB;QADxB,WAAM,GAAN,MAAM,CAA6B;QACnC,WAAM,GAAN,MAAM,CAAkB;IACvC,CAAC;IAEJ,KAAK;QACJ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,YAAoB;QAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,SAAS,CAAC,YAAoB,EAAE,KAAa;QAC5C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,YAAoB,EAAE,OAAe;QAC5C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,YAAoB;QACjC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IACD,aAAa,CAAC,YAAoB,EAAE,KAAa;QAChD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IACD,WAAW,CAAC,YAAoB,EAAE,OAAe;QAChD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,aAAa,CAAC,YAAoB;QACjC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IACD,aAAa,CAAC,YAAoB,EAAE,KAAa;QAChD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IACD,WAAW,CAAC,YAAoB,EAAE,QAAkB;QACnD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;CACD"}
@@ -0,0 +1,43 @@
1
+ import type { Api, AssistantMessage, Context, Model, StreamOptions } from "../types.js";
2
+ import type { AssistantMessageEventStream } from "./event-stream.js";
3
+ import type { StreamingStateManager } from "./streaming-state-manager.js";
4
+ /**
5
+ * Shared type definitions for stream handler implementations.
6
+ */
7
+ /**
8
+ * Context provided to stream handlers during execution.
9
+ */
10
+ export interface StreamHandlerExecutionContext {
11
+ model: Model<Api>;
12
+ context: Context;
13
+ stream: AssistantMessageEventStream;
14
+ options?: StreamOptions;
15
+ signal?: AbortSignal;
16
+ state: StreamingStateManager;
17
+ }
18
+ /**
19
+ * Generic provider request shape (to be extended by each provider).
20
+ */
21
+ export interface ProviderRequest {
22
+ [key: string]: unknown;
23
+ }
24
+ /**
25
+ * Generic provider response shape.
26
+ */
27
+ export interface ProviderResponse {
28
+ [key: string]: unknown;
29
+ }
30
+ /**
31
+ * Abstract handler base with shared context typing.
32
+ */
33
+ export declare abstract class TypedStreamHandler<TOptions extends StreamOptions = StreamOptions> {
34
+ protected readonly model: Model<Api>;
35
+ protected readonly context: Context;
36
+ protected readonly stream: AssistantMessageEventStream;
37
+ protected readonly options?: TOptions | undefined;
38
+ protected readonly signal?: AbortSignal | undefined;
39
+ constructor(model: Model<Api>, context: Context, stream: AssistantMessageEventStream, options?: TOptions | undefined, signal?: AbortSignal | undefined);
40
+ protected createStateManager(initialOutput: AssistantMessage): StreamingStateManager;
41
+ abstract execute(): AssistantMessageEventStream;
42
+ }
43
+ //# sourceMappingURL=stream-handler-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-handler-types.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/stream-handler-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC7C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,2BAA2B,CAAC;IACpC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,qBAAqB,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,CAAE,GAAG,EAAE,MAAM,GAAI,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,CAAE,GAAG,EAAE,MAAM,GAAI,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,8BAAsB,kBAAkB,CAAC,QAAQ,SAAS,aAAa,GAAG,aAAa;IAErF,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,2BAA2B;IACtD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ;IACrC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW;gBAJpB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,2BAA2B,EACnC,OAAO,CAAC,EAAE,QAAQ,YAAA,EAClB,MAAM,CAAC,EAAE,WAAW,YAAA;IAGxC,SAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,GAAG,qBAAqB;IAMpF,QAAQ,CAAC,OAAO,IAAI,2BAA2B;CAC/C"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Abstract handler base with shared context typing.
3
+ */
4
+ export class TypedStreamHandler {
5
+ constructor(model, context, stream, options, signal) {
6
+ this.model = model;
7
+ this.context = context;
8
+ this.stream = stream;
9
+ this.options = options;
10
+ this.signal = signal;
11
+ }
12
+ createStateManager(initialOutput) {
13
+ // Lazy import to avoid circular reference
14
+ const { StreamingStateManager } = require("./streaming-state-manager.js");
15
+ return new StreamingStateManager(initialOutput);
16
+ }
17
+ }
18
+ //# sourceMappingURL=stream-handler-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-handler-types.js","sourceRoot":"","sources":["../../../src/ai/utils/stream-handler-types.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,MAAM,OAAgB,kBAAkB;IACvC,YACoB,KAAiB,EACjB,OAAgB,EAChB,MAAmC,EACnC,OAAkB,EAClB,MAAoB;QAJpB,UAAK,GAAL,KAAK,CAAY;QACjB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAA6B;QACnC,YAAO,GAAP,OAAO,CAAW;QAClB,WAAM,GAAN,MAAM,CAAc;IACrC,CAAC;IAEM,kBAAkB,CAAC,aAA+B;QAC3D,0CAA0C;QAC1C,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAC1E,OAAO,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;CAGD"}
@@ -0,0 +1,50 @@
1
+ import type { AssistantMessage, StopReason, Usage } from "../types.js";
2
+ /**
3
+ * Centralized streaming state manager for provider handlers.
4
+ *
5
+ * Tracks output, usage, stop reason, and stream lifecycle in a single
6
+ * place to avoid duplicated state management across provider implementations.
7
+ */
8
+ export declare class StreamingStateManager {
9
+ /** The mutable assistant output message being built. */
10
+ readonly output: AssistantMessage;
11
+ private _stopReason;
12
+ private _isComplete;
13
+ /**
14
+ * Create a new streaming state manager.
15
+ *
16
+ * @param initialOutput - The initial assistant output message.
17
+ */
18
+ constructor(initialOutput: AssistantMessage);
19
+ /**
20
+ * Update usage fields from a partial usage update.
21
+ *
22
+ * @param update - Partial usage object with fields to update.
23
+ */
24
+ setUsage(update: Partial<Usage>): void;
25
+ /**
26
+ * Update the stop reason.
27
+ *
28
+ * @param reason - New stop reason.
29
+ */
30
+ setStopReason(reason: StopReason): void;
31
+ /**
32
+ * Get the current stop reason.
33
+ */
34
+ get stopReason(): StopReason;
35
+ /**
36
+ * Mark streaming as complete.
37
+ */
38
+ complete(): void;
39
+ /**
40
+ * Check if streaming is marked complete.
41
+ */
42
+ get isComplete(): boolean;
43
+ /**
44
+ * Mark streaming as errored.
45
+ *
46
+ * @param errorMessage - Human-readable error message.
47
+ */
48
+ error(errorMessage: string): void;
49
+ }
50
+ //# sourceMappingURL=streaming-state-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-state-manager.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/streaming-state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvE;;;;;GAKG;AACH,qBAAa,qBAAqB;IACjC,wDAAwD;IACxD,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IAEzC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;OAIG;gBAEF,aAAa,EAAE,gBAAgB;IAKhC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI;IAItC;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKvC;;OAEG;IACH,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAMjC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Centralized streaming state manager for provider handlers.
3
+ *
4
+ * Tracks output, usage, stop reason, and stream lifecycle in a single
5
+ * place to avoid duplicated state management across provider implementations.
6
+ */
7
+ export class StreamingStateManager {
8
+ /**
9
+ * Create a new streaming state manager.
10
+ *
11
+ * @param initialOutput - The initial assistant output message.
12
+ */
13
+ constructor(initialOutput) {
14
+ this._stopReason = "stop";
15
+ this._isComplete = false;
16
+ this.output = initialOutput;
17
+ }
18
+ /**
19
+ * Update usage fields from a partial usage update.
20
+ *
21
+ * @param update - Partial usage object with fields to update.
22
+ */
23
+ setUsage(update) {
24
+ Object.assign(this.output.usage, update);
25
+ }
26
+ /**
27
+ * Update the stop reason.
28
+ *
29
+ * @param reason - New stop reason.
30
+ */
31
+ setStopReason(reason) {
32
+ this._stopReason = reason;
33
+ this.output.stopReason = reason;
34
+ }
35
+ /**
36
+ * Get the current stop reason.
37
+ */
38
+ get stopReason() {
39
+ return this._stopReason;
40
+ }
41
+ /**
42
+ * Mark streaming as complete.
43
+ */
44
+ complete() {
45
+ this._isComplete = true;
46
+ }
47
+ /**
48
+ * Check if streaming is marked complete.
49
+ */
50
+ get isComplete() {
51
+ return this._isComplete;
52
+ }
53
+ /**
54
+ * Mark streaming as errored.
55
+ *
56
+ * @param errorMessage - Human-readable error message.
57
+ */
58
+ error(errorMessage) {
59
+ this._isComplete = true;
60
+ this._stopReason = "error";
61
+ this.output.stopReason = "error";
62
+ this.output.errorMessage = errorMessage;
63
+ }
64
+ }
65
+ //# sourceMappingURL=streaming-state-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-state-manager.js","sourceRoot":"","sources":["../../../src/ai/utils/streaming-state-manager.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IAOjC;;;;OAIG;IACH,YACC,aAA+B;QATxB,gBAAW,GAAe,MAAM,CAAC;QACjC,gBAAW,GAAG,KAAK,CAAC;QAU3B,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,MAAsB;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAkB;QAC/B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,QAAQ;QACP,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAoB;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IACzC,CAAC;CACD"}
@@ -0,0 +1,50 @@
1
+ import type { Tool } from "../types.js";
2
+ /**
3
+ * Shared conversion helpers for tool schemas across providers.
4
+ *
5
+ * This module provides utilities for converting between generic tool definitions
6
+ * and provider-specific tool schemas.
7
+ */
8
+ /**
9
+ * Normalize tool name to provider-specific format.
10
+ *
11
+ * @param name - Original tool name.
12
+ * @param maxLength - Maximum length for the normalized name (default: 64).
13
+ * @returns Normalized tool name.
14
+ *
15
+ * Default implementation removes special characters and truncates to maxLength.
16
+ */
17
+ export declare function normalizeToolName(name: string, maxLength?: number): string;
18
+ /**
19
+ * Provider-agnostic tool schema shape.
20
+ */
21
+ export interface ProviderToolSchema {
22
+ /** Tool name. */
23
+ name: string;
24
+ /** Tool description. */
25
+ description: string;
26
+ /** Tool parameters (JSON Schema). */
27
+ parameters: unknown;
28
+ }
29
+ /**
30
+ * Convert a generic tool to provider tool schema.
31
+ *
32
+ * @param tool - Generic tool definition.
33
+ * @returns Provider-specific tool schema.
34
+ */
35
+ export declare function toProviderTool(tool: Tool): ProviderToolSchema;
36
+ /**
37
+ * Convert a provider tool schema back to generic tool.
38
+ *
39
+ * @param schema - Provider-specific tool schema.
40
+ * @returns Generic tool definition.
41
+ */
42
+ export declare function fromProviderTool(schema: ProviderToolSchema): Tool;
43
+ /**
44
+ * Convert an array of generic tools to provider format.
45
+ *
46
+ * @param tools - Array of generic tool definitions.
47
+ * @returns Array of provider-specific tool schemas.
48
+ */
49
+ export declare function convertTools(tools: Tool[]): ProviderToolSchema[];
50
+ //# sourceMappingURL=tool-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-converter.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/tool-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAW,GACpB,MAAM,CAER;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,UAAU,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAM7D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAEhE"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Shared conversion helpers for tool schemas across providers.
3
+ *
4
+ * This module provides utilities for converting between generic tool definitions
5
+ * and provider-specific tool schemas.
6
+ */
7
+ /**
8
+ * Normalize tool name to provider-specific format.
9
+ *
10
+ * @param name - Original tool name.
11
+ * @param maxLength - Maximum length for the normalized name (default: 64).
12
+ * @returns Normalized tool name.
13
+ *
14
+ * Default implementation removes special characters and truncates to maxLength.
15
+ */
16
+ export function normalizeToolName(name, maxLength = 64) {
17
+ return name.replace(/[^a-zA-Z0-9_-]/g, "_").slice(0, maxLength);
18
+ }
19
+ /**
20
+ * Convert a generic tool to provider tool schema.
21
+ *
22
+ * @param tool - Generic tool definition.
23
+ * @returns Provider-specific tool schema.
24
+ */
25
+ export function toProviderTool(tool) {
26
+ return {
27
+ name: tool.name,
28
+ description: tool.description,
29
+ parameters: tool.parameters,
30
+ };
31
+ }
32
+ /**
33
+ * Convert a provider tool schema back to generic tool.
34
+ *
35
+ * @param schema - Provider-specific tool schema.
36
+ * @returns Generic tool definition.
37
+ */
38
+ export function fromProviderTool(schema) {
39
+ return {
40
+ name: schema.name,
41
+ description: schema.description,
42
+ parameters: schema.parameters,
43
+ };
44
+ }
45
+ /**
46
+ * Convert an array of generic tools to provider format.
47
+ *
48
+ * @param tools - Array of generic tool definitions.
49
+ * @returns Array of provider-specific tool schemas.
50
+ */
51
+ export function convertTools(tools) {
52
+ return tools.map(toProviderTool);
53
+ }
54
+ //# sourceMappingURL=tool-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-converter.js","sourceRoot":"","sources":["../../../src/ai/utils/tool-converter.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAChC,IAAY,EACZ,YAAoB,EAAE;IAEtB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACjE,CAAC;AAcD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAU;IACxC,OAAO;QACN,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA0B;IAC1D,OAAO;QACN,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAiB;KACpC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAClC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type TUnsafe } from "@sinclair/typebox";
1
+ import { type TSchema, type TUnsafe } from "@sinclair/typebox";
2
2
  /**
3
3
  * Creates a string enum schema compatible with Google's API and other providers
4
4
  * that don't support anyOf/const patterns.
@@ -14,4 +14,9 @@ export declare function StringEnum<T extends readonly string[]>(values: T, optio
14
14
  description?: string;
15
15
  default?: T[number];
16
16
  }): TUnsafe<T[number]>;
17
+ /**
18
+ * Produces a schema object safe for validator compilation.
19
+ * Useful when providers/tools pass non-plain schema values.
20
+ */
21
+ export declare function normalizeSchemaForValidation(schema: TSchema): TSchema;
17
22
  //# sourceMappingURL=typebox-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typebox-helpers.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/typebox-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAQ,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EACrD,MAAM,EAAE,CAAC,EACT,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,GACrD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAOpB"}
1
+ {"version":3,"file":"typebox-helpers.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/typebox-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAQ,MAAM,mBAAmB,CAAC;AAErE;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EACrD,MAAM,EAAE,CAAC,EACT,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,GACrD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAOpB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAErE"}
@@ -18,4 +18,11 @@ export function StringEnum(values, options) {
18
18
  ...(options?.default && { default: options.default }),
19
19
  });
20
20
  }
21
+ /**
22
+ * Produces a schema object safe for validator compilation.
23
+ * Useful when providers/tools pass non-plain schema values.
24
+ */
25
+ export function normalizeSchemaForValidation(schema) {
26
+ return structuredClone(schema);
27
+ }
21
28
  //# sourceMappingURL=typebox-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typebox-helpers.js","sourceRoot":"","sources":["../../../src/ai/utils/typebox-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACzB,MAAS,EACT,OAAuD;IAEvD,OAAO,IAAI,CAAC,MAAM,CAAY;QAC7B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAa;QACnB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACjE,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACrD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"typebox-helpers.js","sourceRoot":"","sources":["../../../src/ai/utils/typebox-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAErE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACzB,MAAS,EACT,OAAuD;IAEvD,OAAO,IAAI,CAAC,MAAM,CAAY;QAC7B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAa;QACnB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACjE,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACrD,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAe;IAC3D,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}