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
@@ -1,54 +1,39 @@
1
- /**
2
- * Normalize tool call ID for cross-provider compatibility.
3
- * OpenAI Responses API generates IDs that are 450+ chars with special characters like `|`.
4
- * Anthropic APIs require IDs matching ^[a-zA-Z0-9_-]+$ (max 64 chars).
5
- */
6
- export function transformMessages(messages, model, normalizeToolCallId) {
7
- // Build a map of original tool call IDs to normalized IDs
8
- const toolCallIdMap = new Map();
9
- // First pass: transform messages (thinking blocks, tool call ID normalization)
10
- const transformed = messages.map((msg) => {
11
- // User messages pass through unchanged
12
- if (msg.role === "user") {
13
- return msg;
14
- }
15
- // Handle toolResult messages - normalize toolCallId if we have a mapping
16
- if (msg.role === "toolResult") {
17
- const normalizedId = toolCallIdMap.get(msg.toolCallId);
18
- if (normalizedId && normalizedId !== msg.toolCallId) {
19
- return { ...msg, toolCallId: normalizedId };
1
+ import { validateMessage } from "../types.js";
2
+ class NormalizeAssistantContentTransformation {
3
+ constructor() {
4
+ this.name = "normalize-assistant-content";
5
+ }
6
+ apply(messages, context) {
7
+ const { model, normalizeToolCallId } = context;
8
+ const toolCallIdMap = new Map();
9
+ return messages.map((msg) => {
10
+ if (msg.role === "user")
11
+ return msg;
12
+ if (msg.role === "toolResult") {
13
+ const normalizedId = toolCallIdMap.get(msg.toolCallId);
14
+ if (normalizedId && normalizedId !== msg.toolCallId) {
15
+ return { ...msg, toolCallId: normalizedId };
16
+ }
17
+ return msg;
20
18
  }
21
- return msg;
22
- }
23
- // Assistant messages need transformation check
24
- if (msg.role === "assistant") {
25
19
  const assistantMsg = msg;
26
20
  const isSameModel = assistantMsg.provider === model.provider &&
27
21
  assistantMsg.api === model.api &&
28
22
  assistantMsg.model === model.id;
29
23
  const transformedContent = assistantMsg.content.flatMap((block) => {
30
24
  if (block.type === "thinking") {
31
- // For same model: keep thinking blocks with signatures (needed for replay)
32
- // even if the thinking text is empty (OpenAI encrypted reasoning)
33
25
  if (isSameModel && block.thinkingSignature)
34
26
  return block;
35
- // Skip empty thinking blocks, convert others to plain text
36
27
  if (!block.thinking || block.thinking.trim() === "")
37
28
  return [];
38
29
  if (isSameModel)
39
30
  return block;
40
- return {
41
- type: "text",
42
- text: block.thinking,
43
- };
31
+ return { type: "text", text: block.thinking };
44
32
  }
45
33
  if (block.type === "text") {
46
34
  if (isSameModel)
47
35
  return block;
48
- return {
49
- type: "text",
50
- text: block.text,
51
- };
36
+ return { type: "text", text: block.text };
52
37
  }
53
38
  if (block.type === "toolCall") {
54
39
  const toolCall = block;
@@ -68,72 +53,50 @@ export function transformMessages(messages, model, normalizeToolCallId) {
68
53
  }
69
54
  return block;
70
55
  });
71
- return {
72
- ...assistantMsg,
73
- content: transformedContent,
74
- };
75
- }
76
- return msg;
77
- });
78
- // Second pass: insert synthetic empty tool results for orphaned tool calls
79
- // This preserves thinking signatures and satisfies API requirements
80
- const result = [];
81
- let pendingToolCalls = [];
82
- let existingToolResultIds = new Set();
83
- for (let i = 0; i < transformed.length; i++) {
84
- const msg = transformed[i];
85
- if (msg.role === "assistant") {
86
- // If we have pending orphaned tool calls from a previous assistant, insert synthetic results now
87
- if (pendingToolCalls.length > 0) {
88
- for (const tc of pendingToolCalls) {
89
- if (!existingToolResultIds.has(tc.id)) {
90
- result.push({
91
- role: "toolResult",
92
- toolCallId: tc.id,
93
- toolName: tc.name,
94
- content: [{ type: "text", text: "No result provided" }],
95
- isError: true,
96
- timestamp: Date.now(),
97
- });
56
+ return { ...assistantMsg, content: transformedContent };
57
+ });
58
+ }
59
+ }
60
+ class InsertSyntheticToolResultsTransformation {
61
+ constructor() {
62
+ this.name = "insert-synthetic-tool-results";
63
+ }
64
+ apply(messages) {
65
+ const result = [];
66
+ let pendingToolCalls = [];
67
+ let existingToolResultIds = new Set();
68
+ for (const msg of messages) {
69
+ if (msg.role === "assistant") {
70
+ if (pendingToolCalls.length > 0) {
71
+ for (const tc of pendingToolCalls) {
72
+ if (!existingToolResultIds.has(tc.id)) {
73
+ result.push(this.syntheticToolResult(tc));
74
+ }
98
75
  }
76
+ pendingToolCalls = [];
77
+ existingToolResultIds = new Set();
99
78
  }
100
- pendingToolCalls = [];
101
- existingToolResultIds = new Set();
102
- }
103
- // Skip errored/aborted assistant messages entirely.
104
- // These are incomplete turns that shouldn't be replayed:
105
- // - May have partial content (reasoning without message, incomplete tool calls)
106
- // - Replaying them can cause API errors (e.g., OpenAI "reasoning without following item")
107
- // - The model should retry from the last valid state
108
- const assistantMsg = msg;
109
- if (assistantMsg.stopReason === "error" || assistantMsg.stopReason === "aborted") {
79
+ const assistantMsg = msg;
80
+ if (assistantMsg.stopReason === "error" || assistantMsg.stopReason === "aborted") {
81
+ continue;
82
+ }
83
+ const toolCalls = assistantMsg.content.filter((b) => b.type === "toolCall");
84
+ if (toolCalls.length > 0) {
85
+ pendingToolCalls = toolCalls;
86
+ existingToolResultIds = new Set();
87
+ }
88
+ result.push(msg);
110
89
  continue;
111
90
  }
112
- // Track tool calls from this assistant message
113
- const toolCalls = assistantMsg.content.filter((b) => b.type === "toolCall");
114
- if (toolCalls.length > 0) {
115
- pendingToolCalls = toolCalls;
116
- existingToolResultIds = new Set();
91
+ if (msg.role === "toolResult") {
92
+ existingToolResultIds.add(msg.toolCallId);
93
+ result.push(msg);
94
+ continue;
117
95
  }
118
- result.push(msg);
119
- }
120
- else if (msg.role === "toolResult") {
121
- existingToolResultIds.add(msg.toolCallId);
122
- result.push(msg);
123
- }
124
- else if (msg.role === "user") {
125
- // User message interrupts tool flow - insert synthetic results for orphaned calls
126
- if (pendingToolCalls.length > 0) {
96
+ if (msg.role === "user" && pendingToolCalls.length > 0) {
127
97
  for (const tc of pendingToolCalls) {
128
98
  if (!existingToolResultIds.has(tc.id)) {
129
- result.push({
130
- role: "toolResult",
131
- toolCallId: tc.id,
132
- toolName: tc.name,
133
- content: [{ type: "text", text: "No result provided" }],
134
- isError: true,
135
- timestamp: Date.now(),
136
- });
99
+ result.push(this.syntheticToolResult(tc));
137
100
  }
138
101
  }
139
102
  pendingToolCalls = [];
@@ -141,10 +104,50 @@ export function transformMessages(messages, model, normalizeToolCallId) {
141
104
  }
142
105
  result.push(msg);
143
106
  }
144
- else {
145
- result.push(msg);
107
+ return result;
108
+ }
109
+ syntheticToolResult(toolCall) {
110
+ return {
111
+ role: "toolResult",
112
+ toolCallId: toolCall.id,
113
+ toolName: toolCall.name,
114
+ content: [{ type: "text", text: "No result provided" }],
115
+ isError: true,
116
+ timestamp: Date.now(),
117
+ };
118
+ }
119
+ }
120
+ export class MessageTransformationPipeline {
121
+ constructor() {
122
+ this.transformations = [];
123
+ }
124
+ addTransformation(transformation) {
125
+ this.transformations.push(transformation);
126
+ return this;
127
+ }
128
+ transform(messages, context) {
129
+ for (const message of messages)
130
+ validateMessage(message);
131
+ let current = [...messages];
132
+ for (const transformation of this.transformations) {
133
+ context.debug?.(transformation.name, { before: current.length });
134
+ current = transformation.apply(current, context);
135
+ context.debug?.(transformation.name, { after: current.length });
136
+ for (const message of current)
137
+ validateMessage(message);
146
138
  }
139
+ return current;
147
140
  }
148
- return result;
141
+ }
142
+ /**
143
+ * Normalize tool call ID for cross-provider compatibility.
144
+ * OpenAI Responses API generates IDs that are 450+ chars with special characters like `|`.
145
+ * Anthropic APIs require IDs matching ^[a-zA-Z0-9_-]+$ (max 64 chars).
146
+ */
147
+ export function transformMessages(messages, model, normalizeToolCallId) {
148
+ const pipeline = new MessageTransformationPipeline()
149
+ .addTransformation(new NormalizeAssistantContentTransformation())
150
+ .addTransformation(new InsertSyntheticToolResultsTransformation());
151
+ return pipeline.transform(messages, { model, normalizeToolCallId });
149
152
  }
150
153
  //# sourceMappingURL=transform-messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform-messages.js","sourceRoot":"","sources":["../../../src/ai/providers/transform-messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform-messages.js","sourceRoot":"","sources":["../../../src/ai/providers/transform-messages.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,22 @@
1
1
  import "./providers/register-builtins.js";
2
2
  import type { Api, AssistantMessage, AssistantMessageEventStream, Context, Model, ProviderStreamOptions, SimpleStreamOptions } from "./types.js";
3
3
  export { getEnvApiKey } from "./env-api-keys.js";
4
+ export interface StreamLogger {
5
+ debug?: (message: string, details?: unknown) => void;
6
+ }
7
+ export declare class StreamOptionsBuilder {
8
+ private options;
9
+ withTemperature(temperature: number): this;
10
+ withMaxTokens(maxTokens: number): this;
11
+ withApiKey(apiKey: string): this;
12
+ withHeader(name: string, value: string): this;
13
+ withSignal(signal: AbortSignal): this;
14
+ build(): ProviderStreamOptions;
15
+ }
16
+ export declare function stream<TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions, logger?: StreamLogger): AssistantMessageEventStream;
4
17
  export declare function stream<TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions): AssistantMessageEventStream;
5
- export declare function complete<TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions): Promise<AssistantMessage>;
6
- export declare function streamSimple<TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions): AssistantMessageEventStream;
7
- export declare function completeSimple<TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions): Promise<AssistantMessage>;
18
+ export declare function complete<TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions, logger?: StreamLogger): Promise<AssistantMessage>;
19
+ export declare function streamSimple<TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions, logger?: StreamLogger): AssistantMessageEventStream;
20
+ export declare function completeSimple<TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions, logger?: StreamLogger): Promise<AssistantMessage>;
21
+ export declare function streamByApi<TApi extends Api>(api: TApi, model: Model<TApi>, context: Context, options?: ProviderStreamOptions, logger?: StreamLogger): AssistantMessageEventStream;
8
22
  //# sourceMappingURL=stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/ai/stream.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAG1C,OAAO,KAAK,EACX,GAAG,EACH,gBAAgB,EAChB,2BAA2B,EAC3B,OAAO,EACP,KAAK,EACL,qBAAqB,EACrB,mBAAmB,EAEnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmBjD,wBAAgB,MAAM,CAAC,IAAI,SAAS,GAAG,EACtC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC7B,2BAA2B,CAG7B;AAED,wBAAsB,QAAQ,CAAC,IAAI,SAAS,GAAG,EAC9C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED,wBAAgB,YAAY,CAAC,IAAI,SAAS,GAAG,EAC5C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,2BAA2B,CAG7B;AAED,wBAAsB,cAAc,CAAC,IAAI,SAAS,GAAG,EACpD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/ai/stream.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAG1C,OAAO,KAAK,EACX,GAAG,EACH,gBAAgB,EAChB,2BAA2B,EAC3B,OAAO,EACP,KAAK,EACL,qBAAqB,EACrB,mBAAmB,EAEnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC5B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,qBAAa,oBAAoB;IAChC,OAAO,CAAC,OAAO,CAA6B;IAE5C,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK1C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKtC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKhC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7C,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKrC,KAAK,IAAI,qBAAqB;CAG9B;AAgCD,wBAAgB,MAAM,CAAC,IAAI,SAAS,GAAG,EACtC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,MAAM,CAAC,EAAE,YAAY,GACnB,2BAA2B,CAAC;AAC/B,wBAAgB,MAAM,CAAC,IAAI,SAAS,GAAG,EACtC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC7B,2BAA2B,CAAC;AAc/B,wBAAsB,QAAQ,CAAC,IAAI,SAAS,GAAG,EAC9C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,MAAM,CAAC,EAAE,YAAY,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED,wBAAgB,YAAY,CAAC,IAAI,SAAS,GAAG,EAC5C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,EAC7B,MAAM,CAAC,EAAE,YAAY,GACnB,2BAA2B,CAM7B;AAED,wBAAsB,cAAc,CAAC,IAAI,SAAS,GAAG,EACpD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,EAC7B,MAAM,CAAC,EAAE,YAAY,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED,wBAAgB,WAAW,CAAC,IAAI,SAAS,GAAG,EAC3C,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,MAAM,CAAC,EAAE,YAAY,GACnB,2BAA2B,CAK7B"}
package/dist/ai/stream.js CHANGED
@@ -1,6 +1,35 @@
1
1
  import "./providers/register-builtins.js";
2
2
  import { getApiProvider } from "./api-registry.js";
3
+ import { validateContext } from "./types.js";
3
4
  export { getEnvApiKey } from "./env-api-keys.js";
5
+ export class StreamOptionsBuilder {
6
+ constructor() {
7
+ this.options = {};
8
+ }
9
+ withTemperature(temperature) {
10
+ this.options.temperature = temperature;
11
+ return this;
12
+ }
13
+ withMaxTokens(maxTokens) {
14
+ this.options.maxTokens = maxTokens;
15
+ return this;
16
+ }
17
+ withApiKey(apiKey) {
18
+ this.options.apiKey = apiKey;
19
+ return this;
20
+ }
21
+ withHeader(name, value) {
22
+ this.options.headers = { ...(this.options.headers ?? {}), [name]: value };
23
+ return this;
24
+ }
25
+ withSignal(signal) {
26
+ this.options.signal = signal;
27
+ return this;
28
+ }
29
+ build() {
30
+ return { ...this.options };
31
+ }
32
+ }
4
33
  // Set up http proxy according to env variables for `fetch` based SDKs in Node.js.
5
34
  // Bun has builtin support for this.
6
35
  if (typeof process !== "undefined" && process.versions?.node) {
@@ -9,6 +38,17 @@ if (typeof process !== "undefined" && process.versions?.node) {
9
38
  setGlobalDispatcher(new EnvHttpProxyAgent());
10
39
  });
11
40
  }
41
+ function validateModel(model) {
42
+ if (!model || typeof model !== "object")
43
+ throw new Error("Invalid model: expected object");
44
+ if (!model.api || typeof model.api !== "string")
45
+ throw new Error("Invalid model: api is required");
46
+ if (!model.id || typeof model.id !== "string")
47
+ throw new Error("Invalid model: id is required");
48
+ if (!model.provider || typeof model.provider !== "string") {
49
+ throw new Error("Invalid model: provider is required");
50
+ }
51
+ }
12
52
  function resolveApiProvider(api) {
13
53
  const provider = getApiProvider(api);
14
54
  if (!provider) {
@@ -16,20 +56,35 @@ function resolveApiProvider(api) {
16
56
  }
17
57
  return provider;
18
58
  }
19
- export function stream(model, context, options) {
59
+ function log(logger, message, details) {
60
+ logger?.debug?.(message, details);
61
+ }
62
+ export function stream(model, context, options, logger) {
63
+ validateModel(model);
64
+ validateContext(context);
20
65
  const provider = resolveApiProvider(model.api);
66
+ log(logger, "ai.stream.start", { api: model.api, model: model.id, hasTools: !!context.tools?.length });
21
67
  return provider.stream(model, context, options);
22
68
  }
23
- export async function complete(model, context, options) {
24
- const s = stream(model, context, options);
69
+ export async function complete(model, context, options, logger) {
70
+ const s = stream(model, context, options, logger);
25
71
  return s.result();
26
72
  }
27
- export function streamSimple(model, context, options) {
73
+ export function streamSimple(model, context, options, logger) {
74
+ validateModel(model);
75
+ validateContext(context);
28
76
  const provider = resolveApiProvider(model.api);
77
+ log(logger, "ai.stream.simple.start", { api: model.api, model: model.id });
29
78
  return provider.streamSimple(model, context, options);
30
79
  }
31
- export async function completeSimple(model, context, options) {
32
- const s = streamSimple(model, context, options);
80
+ export async function completeSimple(model, context, options, logger) {
81
+ const s = streamSimple(model, context, options, logger);
33
82
  return s.result();
34
83
  }
84
+ export function streamByApi(api, model, context, options, logger) {
85
+ if (model.api !== api) {
86
+ throw new Error(`Mismatched api: model=${model.api} expected=${api}`);
87
+ }
88
+ return stream(model, context, options, logger);
89
+ }
35
90
  //# sourceMappingURL=stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/ai/stream.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,kFAAkF;AAClF,oCAAoC;AACpC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3B,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACrD,mBAAmB,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAQ;IACnC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,MAAM,CACrB,KAAkB,EAClB,OAAgB,EAChB,OAA+B;IAE/B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAwB,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,KAAkB,EAClB,OAAgB,EAChB,OAA+B;IAE/B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,KAAkB,EAClB,OAAgB,EAChB,OAA6B;IAE7B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,KAAkB,EAClB,OAAgB,EAChB,OAA6B;IAE7B,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/ai/stream.ts"],"names":[],"mappings":"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"}
@@ -231,4 +231,21 @@ export interface Model<TApi extends Api> {
231
231
  /** Compatibility overrides for OpenAI-compatible APIs. If not set, auto-detected from baseUrl. */
232
232
  compat?: TApi extends "openai-completions" ? OpenAICompletionsCompat : TApi extends "openai-responses" ? OpenAIResponsesCompat : never;
233
233
  }
234
+ /** Canonical known API identifiers supported by built-in providers. */
235
+ export declare const API_NAMES: readonly KnownApi[];
236
+ /** Canonical known provider identifiers. */
237
+ export declare const PROVIDER_NAMES: readonly KnownProvider[];
238
+ /** Stop reasons emitted by all providers. */
239
+ export declare const STOP_REASONS: readonly StopReason[];
240
+ export declare const isTextContent: (value: unknown) => value is TextContent;
241
+ export declare const isThinkingContent: (value: unknown) => value is ThinkingContent;
242
+ export declare const isImageContent: (value: unknown) => value is ImageContent;
243
+ export declare const isToolCall: (value: unknown) => value is ToolCall;
244
+ export declare const isUserMessage: (value: unknown) => value is UserMessage;
245
+ export declare const isAssistantMessage: (value: unknown) => value is AssistantMessage;
246
+ export declare const isToolResultMessage: (value: unknown) => value is ToolResultMessage;
247
+ export declare const isMessage: (value: unknown) => value is Message;
248
+ export declare function validateTool(tool: unknown): asserts tool is Tool;
249
+ export declare function validateMessage(message: unknown): asserts message is Message;
250
+ export declare function validateContext(context: unknown): asserts context is Context;
234
251
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE3E,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE3E,MAAM,MAAM,QAAQ,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,wBAAwB,GACxB,wBAAwB,GACxB,oBAAoB,GACpB,yBAAyB,GACzB,sBAAsB,GACtB,eAAe,CAAC;AAEnB,MAAM,MAAM,GAAG,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE3C,MAAM,MAAM,aAAa,GACtB,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,wBAAwB,GACxB,cAAc,GACd,gBAAgB,GAChB,KAAK,GACL,MAAM,GACN,UAAU,GACV,YAAY,GACZ,mBAAmB,GACnB,KAAK,GACL,SAAS,GACT,SAAS,GACT,YAAY,GACZ,UAAU,GACV,MAAM,GACN,aAAa,CAAC;AACjB,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5E,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,aAAa;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAG5E,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACzD,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,4EAA4E;IAC5E,eAAe,CAAC,EAAE,eAAe,CAAC;CAClC;AAGD,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,GAAG,GAAG,GAAG,EAAE,QAAQ,SAAS,aAAa,GAAG,aAAa,IAAI,CACpG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,QAAQ,KACd,2BAA2B,CAAC;AAEjC,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;CACF;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,CAAC,WAAW,GAAG,eAAe,GAAG,QAAQ,CAAC,EAAE,CAAC;IACtD,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB,CAAC,QAAQ,GAAG,GAAG;IAChD,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC;IACxC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,IAAI,CAAC,WAAW,SAAS,OAAO,GAAG,OAAO;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GACvG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEhG;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,wFAAwF;IACxF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yGAAyG;IACzG,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,yFAAyF;IACzF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qIAAqI;IACrI,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,0EAA0E;IAC1E,cAAc,CAAC,EAAE,uBAAuB,GAAG,YAAY,CAAC;IACxD,sFAAsF;IACtF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,2HAA2H;IAC3H,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,4HAA4H;IAC5H,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,kIAAkI;IAClI,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,4IAA4I;IAC5I,cAAc,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAClC,4FAA4F;IAC5F,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED,wDAAwD;AACxD,MAAM,WAAW,qBAAqB;CAErC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IACjC,0GAA0G;IAC1G,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAGD,MAAM,WAAW,KAAK,CAAC,IAAI,SAAS,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;IACV,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IAC5B,IAAI,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,kGAAkG;IAClG,MAAM,CAAC,EAAE,IAAI,SAAS,oBAAoB,GACvC,uBAAuB,GACvB,IAAI,SAAS,kBAAkB,GAC9B,qBAAqB,GACrB,KAAK,CAAC;CACV;AAED,uEAAuE;AACvE,eAAO,MAAM,SAAS,EAAE,SAAS,QAAQ,EAS/B,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,cAAc,EAAE,SAAS,aAAa,EAqBzC,CAAC;AAEX,6CAA6C;AAC7C,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAA+D,CAAC;AAE9G,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAC0E,CAAC;AAEnI,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAIJ,CAAC;AAEzD,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,YAKJ,CAAC;AAEtD,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,QAKR,CAAC;AAE9C,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WACuB,CAAC;AAEhF,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAC4B,CAAC;AAE1F,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iBAC6B,CAAC;AAE5F,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OAC4B,CAAC;AAEjF,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAUhE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAE5E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAS5E"}
package/dist/ai/types.js CHANGED
@@ -1,2 +1,88 @@
1
- export {};
1
+ /** Canonical known API identifiers supported by built-in providers. */
2
+ export const API_NAMES = [
3
+ "openai-completions",
4
+ "openai-responses",
5
+ "azure-openai-responses",
6
+ "openai-codex-responses",
7
+ "anthropic-messages",
8
+ "bedrock-converse-stream",
9
+ "google-generative-ai",
10
+ "google-vertex",
11
+ ];
12
+ /** Canonical known provider identifiers. */
13
+ export const PROVIDER_NAMES = [
14
+ "amazon-bedrock",
15
+ "anthropic",
16
+ "google",
17
+ "google-vertex",
18
+ "openai",
19
+ "azure-openai-responses",
20
+ "openai-codex",
21
+ "github-copilot",
22
+ "xai",
23
+ "groq",
24
+ "cerebras",
25
+ "openrouter",
26
+ "vercel-ai-gateway",
27
+ "zai",
28
+ "mistral",
29
+ "minimax",
30
+ "minimax-cn",
31
+ "opencode",
32
+ "kimi",
33
+ "kimi-coding",
34
+ ];
35
+ /** Stop reasons emitted by all providers. */
36
+ export const STOP_REASONS = ["stop", "length", "toolUse", "error", "aborted"];
37
+ export const isTextContent = (value) => !!value && typeof value === "object" && value.type === "text" && typeof value.text === "string";
38
+ export const isThinkingContent = (value) => !!value &&
39
+ typeof value === "object" &&
40
+ value.type === "thinking" &&
41
+ typeof value.thinking === "string";
42
+ export const isImageContent = (value) => !!value &&
43
+ typeof value === "object" &&
44
+ value.type === "image" &&
45
+ typeof value.data === "string" &&
46
+ typeof value.mimeType === "string";
47
+ export const isToolCall = (value) => !!value &&
48
+ typeof value === "object" &&
49
+ value.type === "toolCall" &&
50
+ typeof value.id === "string" &&
51
+ typeof value.name === "string";
52
+ export const isUserMessage = (value) => !!value && typeof value === "object" && value.role === "user";
53
+ export const isAssistantMessage = (value) => !!value && typeof value === "object" && value.role === "assistant";
54
+ export const isToolResultMessage = (value) => !!value && typeof value === "object" && value.role === "toolResult";
55
+ export const isMessage = (value) => isUserMessage(value) || isAssistantMessage(value) || isToolResultMessage(value);
56
+ export function validateTool(tool) {
57
+ if (!tool || typeof tool !== "object")
58
+ throw new Error("Invalid tool: expected object");
59
+ const candidate = tool;
60
+ if (!candidate.name || typeof candidate.name !== "string")
61
+ throw new Error("Invalid tool: name is required");
62
+ if (!candidate.description || typeof candidate.description !== "string") {
63
+ throw new Error("Invalid tool: description is required");
64
+ }
65
+ if (!candidate.parameters || typeof candidate.parameters !== "object") {
66
+ throw new Error("Invalid tool: parameters schema is required");
67
+ }
68
+ }
69
+ export function validateMessage(message) {
70
+ if (!isMessage(message))
71
+ throw new Error("Invalid message: unsupported role or shape");
72
+ }
73
+ export function validateContext(context) {
74
+ if (!context || typeof context !== "object")
75
+ throw new Error("Invalid context: expected object");
76
+ const candidate = context;
77
+ if (!Array.isArray(candidate.messages))
78
+ throw new Error("Invalid context: messages must be an array");
79
+ for (const message of candidate.messages)
80
+ validateMessage(message);
81
+ if (candidate.tools) {
82
+ if (!Array.isArray(candidate.tools))
83
+ throw new Error("Invalid context: tools must be an array when provided");
84
+ for (const tool of candidate.tools)
85
+ validateTool(tool);
86
+ }
87
+ }
2
88
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Types Test Suite
3
+ *
4
+ * This test file verifies all type guards, validators, and constants
5
+ * defined in the types module.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../src/ai/types.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}