indusagi 0.12.7 → 0.12.8

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 (667) hide show
  1. package/dist/agent/agent-loop.d.ts.map +1 -1
  2. package/dist/agent/agent-loop.js +10 -1
  3. package/dist/agent/agent-loop.js.map +1 -1
  4. package/dist/agent/agent.d.ts +2 -1
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/agent.js +30 -38
  7. package/dist/agent/agent.js.map +1 -1
  8. package/dist/agent/error-handler.d.ts +8 -0
  9. package/dist/agent/error-handler.d.ts.map +1 -0
  10. package/dist/agent/error-handler.js +8 -0
  11. package/dist/agent/error-handler.js.map +1 -0
  12. package/dist/agent/event-bus.d.ts +9 -0
  13. package/dist/agent/event-bus.d.ts.map +1 -0
  14. package/dist/agent/event-bus.js +17 -0
  15. package/dist/agent/event-bus.js.map +1 -0
  16. package/dist/agent/proxy.d.ts +13 -19
  17. package/dist/agent/proxy.d.ts.map +1 -1
  18. package/dist/agent/proxy.js +45 -4
  19. package/dist/agent/proxy.js.map +1 -1
  20. package/dist/agent/state-manager.d.ts +22 -0
  21. package/dist/agent/state-manager.d.ts.map +1 -0
  22. package/dist/agent/state-manager.js +59 -0
  23. package/dist/agent/state-manager.js.map +1 -0
  24. package/dist/agent/telemetry.d.ts +7 -0
  25. package/dist/agent/telemetry.d.ts.map +1 -0
  26. package/dist/agent/telemetry.js +20 -0
  27. package/dist/agent/telemetry.js.map +1 -0
  28. package/dist/agent/tools/bash.d.ts +11 -0
  29. package/dist/agent/tools/bash.d.ts.map +1 -1
  30. package/dist/agent/tools/bash.js +27 -4
  31. package/dist/agent/tools/bash.js.map +1 -1
  32. package/dist/agent/tools/edit.d.ts +5 -0
  33. package/dist/agent/tools/edit.d.ts.map +1 -1
  34. package/dist/agent/tools/edit.js +16 -2
  35. package/dist/agent/tools/edit.js.map +1 -1
  36. package/dist/agent/tools/find.d.ts +2 -0
  37. package/dist/agent/tools/find.d.ts.map +1 -1
  38. package/dist/agent/tools/find.js +4 -1
  39. package/dist/agent/tools/find.js.map +1 -1
  40. package/dist/agent/tools/grep.d.ts.map +1 -1
  41. package/dist/agent/tools/grep.js +15 -4
  42. package/dist/agent/tools/grep.js.map +1 -1
  43. package/dist/agent/tools/index.d.ts +18 -2
  44. package/dist/agent/tools/index.d.ts.map +1 -1
  45. package/dist/agent/tools/index.js +64 -50
  46. package/dist/agent/tools/index.js.map +1 -1
  47. package/dist/agent/tools/ls.d.ts +2 -0
  48. package/dist/agent/tools/ls.d.ts.map +1 -1
  49. package/dist/agent/tools/ls.js +5 -0
  50. package/dist/agent/tools/ls.js.map +1 -1
  51. package/dist/agent/tools/path-utils.d.ts.map +1 -1
  52. package/dist/agent/tools/path-utils.js +3 -0
  53. package/dist/agent/tools/path-utils.js.map +1 -1
  54. package/dist/agent/tools/registry.d.ts +21 -0
  55. package/dist/agent/tools/registry.d.ts.map +1 -0
  56. package/dist/agent/tools/registry.js +25 -0
  57. package/dist/agent/tools/registry.js.map +1 -0
  58. package/dist/agent/tools/task.d.ts.map +1 -1
  59. package/dist/agent/tools/task.js +12 -6
  60. package/dist/agent/tools/task.js.map +1 -1
  61. package/dist/agent/tools/todo-store.d.ts +4 -0
  62. package/dist/agent/tools/todo-store.d.ts.map +1 -1
  63. package/dist/agent/tools/todo-store.js +12 -0
  64. package/dist/agent/tools/todo-store.js.map +1 -1
  65. package/dist/agent/tools/todo.d.ts +4 -0
  66. package/dist/agent/tools/todo.d.ts.map +1 -1
  67. package/dist/agent/tools/todo.js +14 -4
  68. package/dist/agent/tools/todo.js.map +1 -1
  69. package/dist/agent/tools/truncate.d.ts +3 -0
  70. package/dist/agent/tools/truncate.d.ts.map +1 -1
  71. package/dist/agent/tools/truncate.js.map +1 -1
  72. package/dist/agent/tools/utils/hook-runner.d.ts +8 -3
  73. package/dist/agent/tools/utils/hook-runner.d.ts.map +1 -1
  74. package/dist/agent/tools/utils/hook-runner.js +22 -5
  75. package/dist/agent/tools/utils/hook-runner.js.map +1 -1
  76. package/dist/agent/tools/utils/image-resize.d.ts +1 -0
  77. package/dist/agent/tools/utils/image-resize.d.ts.map +1 -1
  78. package/dist/agent/tools/utils/image-resize.js +5 -0
  79. package/dist/agent/tools/utils/image-resize.js.map +1 -1
  80. package/dist/agent/tools/utils/mime.d.ts.map +1 -1
  81. package/dist/agent/tools/utils/mime.js +6 -0
  82. package/dist/agent/tools/utils/mime.js.map +1 -1
  83. package/dist/agent/tools/utils/shell.d.ts +5 -0
  84. package/dist/agent/tools/utils/shell.d.ts.map +1 -1
  85. package/dist/agent/tools/utils/shell.js +9 -0
  86. package/dist/agent/tools/utils/shell.js.map +1 -1
  87. package/dist/agent/tools/webfetch.d.ts +2 -0
  88. package/dist/agent/tools/webfetch.d.ts.map +1 -1
  89. package/dist/agent/tools/webfetch.js +4 -1
  90. package/dist/agent/tools/webfetch.js.map +1 -1
  91. package/dist/agent/tools/websearch.d.ts +6 -0
  92. package/dist/agent/tools/websearch.d.ts.map +1 -1
  93. package/dist/agent/tools/websearch.js +22 -2
  94. package/dist/agent/tools/websearch.js.map +1 -1
  95. package/dist/agent/tools/write.d.ts +4 -0
  96. package/dist/agent/tools/write.d.ts.map +1 -1
  97. package/dist/agent/tools/write.js +19 -1
  98. package/dist/agent/tools/write.js.map +1 -1
  99. package/dist/agent/types.d.ts +22 -1
  100. package/dist/agent/types.d.ts.map +1 -1
  101. package/dist/agent/types.js +44 -1
  102. package/dist/agent/types.js.map +1 -1
  103. package/dist/ai/api-registry.d.ts +34 -4
  104. package/dist/ai/api-registry.d.ts.map +1 -1
  105. package/dist/ai/api-registry.js +97 -19
  106. package/dist/ai/api-registry.js.map +1 -1
  107. package/dist/ai/cli.js +24 -3
  108. package/dist/ai/cli.js.map +1 -1
  109. package/dist/ai/env-api-keys.d.ts +9 -0
  110. package/dist/ai/env-api-keys.d.ts.map +1 -1
  111. package/dist/ai/env-api-keys.js +23 -0
  112. package/dist/ai/env-api-keys.js.map +1 -1
  113. package/dist/ai/index.d.ts +4 -2
  114. package/dist/ai/index.d.ts.map +1 -1
  115. package/dist/ai/index.js +4 -2
  116. package/dist/ai/index.js.map +1 -1
  117. package/dist/ai/models.d.ts +30 -0
  118. package/dist/ai/models.d.ts.map +1 -1
  119. package/dist/ai/models.generated.d.ts +1 -0
  120. package/dist/ai/models.generated.d.ts.map +1 -1
  121. package/dist/ai/models.js +90 -18
  122. package/dist/ai/models.js.map +1 -1
  123. package/dist/ai/providers/amazon-bedrock.d.ts +19 -1
  124. package/dist/ai/providers/amazon-bedrock.d.ts.map +1 -1
  125. package/dist/ai/providers/amazon-bedrock.js +68 -40
  126. package/dist/ai/providers/amazon-bedrock.js.map +1 -1
  127. package/dist/ai/providers/anthropic.d.ts +50 -1
  128. package/dist/ai/providers/anthropic.d.ts.map +1 -1
  129. package/dist/ai/providers/anthropic.js +204 -161
  130. package/dist/ai/providers/anthropic.js.map +1 -1
  131. package/dist/ai/providers/azure-openai-responses.d.ts.map +1 -1
  132. package/dist/ai/providers/azure-openai-responses.js +36 -28
  133. package/dist/ai/providers/azure-openai-responses.js.map +1 -1
  134. package/dist/ai/providers/google-shared.d.ts +9 -0
  135. package/dist/ai/providers/google-shared.d.ts.map +1 -1
  136. package/dist/ai/providers/google-shared.js +16 -0
  137. package/dist/ai/providers/google-shared.js.map +1 -1
  138. package/dist/ai/providers/google-vertex.d.ts.map +1 -1
  139. package/dist/ai/providers/google-vertex.js +33 -26
  140. package/dist/ai/providers/google-vertex.js.map +1 -1
  141. package/dist/ai/providers/google.d.ts.map +1 -1
  142. package/dist/ai/providers/google.js +33 -26
  143. package/dist/ai/providers/google.js.map +1 -1
  144. package/dist/ai/providers/kimi.d.ts.map +1 -1
  145. package/dist/ai/providers/kimi.js +34 -24
  146. package/dist/ai/providers/kimi.js.map +1 -1
  147. package/dist/ai/providers/openai-codex-responses.d.ts.map +1 -1
  148. package/dist/ai/providers/openai-codex-responses.js +33 -25
  149. package/dist/ai/providers/openai-codex-responses.js.map +1 -1
  150. package/dist/ai/providers/openai-completions.d.ts +10 -0
  151. package/dist/ai/providers/openai-completions.d.ts.map +1 -1
  152. package/dist/ai/providers/openai-completions.js +51 -26
  153. package/dist/ai/providers/openai-completions.js.map +1 -1
  154. package/dist/ai/providers/openai-responses-shared.d.ts +9 -0
  155. package/dist/ai/providers/openai-responses-shared.d.ts.map +1 -1
  156. package/dist/ai/providers/openai-responses-shared.js +18 -2
  157. package/dist/ai/providers/openai-responses-shared.js.map +1 -1
  158. package/dist/ai/providers/openai-responses.d.ts.map +1 -1
  159. package/dist/ai/providers/openai-responses.js +35 -32
  160. package/dist/ai/providers/openai-responses.js.map +1 -1
  161. package/dist/ai/providers/register-builtins.d.ts.map +1 -1
  162. package/dist/ai/providers/register-builtins.js +17 -8
  163. package/dist/ai/providers/register-builtins.js.map +1 -1
  164. package/dist/ai/providers/simple-options.d.ts +19 -0
  165. package/dist/ai/providers/simple-options.d.ts.map +1 -1
  166. package/dist/ai/providers/simple-options.js +62 -0
  167. package/dist/ai/providers/simple-options.js.map +1 -1
  168. package/dist/ai/providers/transform-messages.d.ts +14 -0
  169. package/dist/ai/providers/transform-messages.d.ts.map +1 -1
  170. package/dist/ai/providers/transform-messages.js +99 -96
  171. package/dist/ai/providers/transform-messages.js.map +1 -1
  172. package/dist/ai/stream.d.ts +17 -3
  173. package/dist/ai/stream.d.ts.map +1 -1
  174. package/dist/ai/stream.js +61 -6
  175. package/dist/ai/stream.js.map +1 -1
  176. package/dist/ai/types.d.ts +17 -0
  177. package/dist/ai/types.d.ts.map +1 -1
  178. package/dist/ai/types.js +87 -1
  179. package/dist/ai/types.js.map +1 -1
  180. package/dist/ai/types.test.d.ts +8 -0
  181. package/dist/ai/types.test.d.ts.map +1 -0
  182. package/dist/ai/types.test.js +389 -0
  183. package/dist/ai/types.test.js.map +1 -0
  184. package/dist/ai/utils/base-stream-handler.d.ts +16 -0
  185. package/dist/ai/utils/base-stream-handler.d.ts.map +1 -0
  186. package/dist/ai/utils/base-stream-handler.js +24 -0
  187. package/dist/ai/utils/base-stream-handler.js.map +1 -0
  188. package/dist/ai/utils/event-stream.d.ts +26 -4
  189. package/dist/ai/utils/event-stream.d.ts.map +1 -1
  190. package/dist/ai/utils/event-stream.js +89 -5
  191. package/dist/ai/utils/event-stream.js.map +1 -1
  192. package/dist/ai/utils/index.d.ts +15 -0
  193. package/dist/ai/utils/index.d.ts.map +1 -0
  194. package/dist/ai/utils/index.js +15 -0
  195. package/dist/ai/utils/index.js.map +1 -0
  196. package/dist/ai/utils/json-parse.d.ts +13 -4
  197. package/dist/ai/utils/json-parse.d.ts.map +1 -1
  198. package/dist/ai/utils/json-parse.js +31 -19
  199. package/dist/ai/utils/json-parse.js.map +1 -1
  200. package/dist/ai/utils/message-transform.d.ts +29 -0
  201. package/dist/ai/utils/message-transform.d.ts.map +1 -0
  202. package/dist/ai/utils/message-transform.js +55 -0
  203. package/dist/ai/utils/message-transform.js.map +1 -0
  204. package/dist/ai/utils/oauth/anthropic.d.ts +1 -0
  205. package/dist/ai/utils/oauth/anthropic.d.ts.map +1 -1
  206. package/dist/ai/utils/oauth/anthropic.js +3 -0
  207. package/dist/ai/utils/oauth/anthropic.js.map +1 -1
  208. package/dist/ai/utils/oauth/github-copilot.d.ts +1 -0
  209. package/dist/ai/utils/oauth/github-copilot.d.ts.map +1 -1
  210. package/dist/ai/utils/oauth/github-copilot.js +3 -0
  211. package/dist/ai/utils/oauth/github-copilot.js.map +1 -1
  212. package/dist/ai/utils/oauth/index.d.ts +2 -1
  213. package/dist/ai/utils/oauth/index.d.ts.map +1 -1
  214. package/dist/ai/utils/oauth/index.js +10 -0
  215. package/dist/ai/utils/oauth/index.js.map +1 -1
  216. package/dist/ai/utils/oauth/kimi.d.ts +1 -0
  217. package/dist/ai/utils/oauth/kimi.d.ts.map +1 -1
  218. package/dist/ai/utils/oauth/kimi.js +3 -0
  219. package/dist/ai/utils/oauth/kimi.js.map +1 -1
  220. package/dist/ai/utils/oauth/openai-codex.d.ts +1 -0
  221. package/dist/ai/utils/oauth/openai-codex.d.ts.map +1 -1
  222. package/dist/ai/utils/oauth/openai-codex.js +3 -0
  223. package/dist/ai/utils/oauth/openai-codex.js.map +1 -1
  224. package/dist/ai/utils/oauth/pkce.d.ts +1 -0
  225. package/dist/ai/utils/oauth/pkce.d.ts.map +1 -1
  226. package/dist/ai/utils/oauth/pkce.js +5 -0
  227. package/dist/ai/utils/oauth/pkce.js.map +1 -1
  228. package/dist/ai/utils/oauth/types.d.ts +6 -0
  229. package/dist/ai/utils/oauth/types.d.ts.map +1 -1
  230. package/dist/ai/utils/output-factory.d.ts +3 -0
  231. package/dist/ai/utils/output-factory.d.ts.map +1 -0
  232. package/dist/ai/utils/output-factory.js +23 -0
  233. package/dist/ai/utils/output-factory.js.map +1 -0
  234. package/dist/ai/utils/overflow.d.ts +6 -47
  235. package/dist/ai/utils/overflow.d.ts.map +1 -1
  236. package/dist/ai/utils/overflow.js +28 -92
  237. package/dist/ai/utils/overflow.js.map +1 -1
  238. package/dist/ai/utils/provider-adapter.d.ts +57 -0
  239. package/dist/ai/utils/provider-adapter.d.ts.map +1 -0
  240. package/dist/ai/utils/provider-adapter.js +28 -0
  241. package/dist/ai/utils/provider-adapter.js.map +1 -0
  242. package/dist/ai/utils/provider-client-builder.d.ts +37 -0
  243. package/dist/ai/utils/provider-client-builder.d.ts.map +1 -0
  244. package/dist/ai/utils/provider-client-builder.js +50 -0
  245. package/dist/ai/utils/provider-client-builder.js.map +1 -0
  246. package/dist/ai/utils/provider-consolidation.d.ts +4 -0
  247. package/dist/ai/utils/provider-consolidation.d.ts.map +1 -0
  248. package/dist/ai/utils/provider-consolidation.js +33 -0
  249. package/dist/ai/utils/provider-consolidation.js.map +1 -0
  250. package/dist/ai/utils/provider-constants.d.ts +35 -0
  251. package/dist/ai/utils/provider-constants.d.ts.map +1 -0
  252. package/dist/ai/utils/provider-constants.js +35 -0
  253. package/dist/ai/utils/provider-constants.js.map +1 -0
  254. package/dist/ai/utils/provider-errors.d.ts +46 -0
  255. package/dist/ai/utils/provider-errors.d.ts.map +1 -0
  256. package/dist/ai/utils/provider-errors.js +101 -0
  257. package/dist/ai/utils/provider-errors.js.map +1 -0
  258. package/dist/ai/utils/sanitize-unicode.d.ts +1 -0
  259. package/dist/ai/utils/sanitize-unicode.d.ts.map +1 -1
  260. package/dist/ai/utils/sanitize-unicode.js +16 -0
  261. package/dist/ai/utils/sanitize-unicode.js.map +1 -1
  262. package/dist/ai/utils/stream-event-helper.d.ts +28 -0
  263. package/dist/ai/utils/stream-event-helper.d.ts.map +1 -0
  264. package/dist/ai/utils/stream-event-helper.js +49 -0
  265. package/dist/ai/utils/stream-event-helper.js.map +1 -0
  266. package/dist/ai/utils/stream-handler-types.d.ts +43 -0
  267. package/dist/ai/utils/stream-handler-types.d.ts.map +1 -0
  268. package/dist/ai/utils/stream-handler-types.js +18 -0
  269. package/dist/ai/utils/stream-handler-types.js.map +1 -0
  270. package/dist/ai/utils/streaming-state-manager.d.ts +50 -0
  271. package/dist/ai/utils/streaming-state-manager.d.ts.map +1 -0
  272. package/dist/ai/utils/streaming-state-manager.js +65 -0
  273. package/dist/ai/utils/streaming-state-manager.js.map +1 -0
  274. package/dist/ai/utils/tool-converter.d.ts +50 -0
  275. package/dist/ai/utils/tool-converter.d.ts.map +1 -0
  276. package/dist/ai/utils/tool-converter.js +54 -0
  277. package/dist/ai/utils/tool-converter.js.map +1 -0
  278. package/dist/ai/utils/typebox-helpers.d.ts +6 -1
  279. package/dist/ai/utils/typebox-helpers.d.ts.map +1 -1
  280. package/dist/ai/utils/typebox-helpers.js +7 -0
  281. package/dist/ai/utils/typebox-helpers.js.map +1 -1
  282. package/dist/ai/utils/validation.d.ts +6 -0
  283. package/dist/ai/utils/validation.d.ts.map +1 -1
  284. package/dist/ai/utils/validation.js +23 -9
  285. package/dist/ai/utils/validation.js.map +1 -1
  286. package/dist/index.d.ts +0 -1
  287. package/dist/index.d.ts.map +1 -1
  288. package/dist/index.js +0 -1
  289. package/dist/index.js.map +1 -1
  290. package/dist/tui/autocomplete.d.ts +17 -0
  291. package/dist/tui/autocomplete.d.ts.map +1 -1
  292. package/dist/tui/autocomplete.js +33 -3
  293. package/dist/tui/autocomplete.js.map +1 -1
  294. package/dist/tui/components/box.d.ts +2 -2
  295. package/dist/tui/components/box.d.ts.map +1 -1
  296. package/dist/tui/components/box.js +7 -5
  297. package/dist/tui/components/box.js.map +1 -1
  298. package/dist/tui/components/cancellable-loader.d.ts +1 -0
  299. package/dist/tui/components/cancellable-loader.d.ts.map +1 -1
  300. package/dist/tui/components/cancellable-loader.js +4 -0
  301. package/dist/tui/components/cancellable-loader.js.map +1 -1
  302. package/dist/tui/components/editor.d.ts +2 -2
  303. package/dist/tui/components/editor.d.ts.map +1 -1
  304. package/dist/tui/components/editor.js +6 -3
  305. package/dist/tui/components/editor.js.map +1 -1
  306. package/dist/tui/components/image.d.ts +2 -2
  307. package/dist/tui/components/image.d.ts.map +1 -1
  308. package/dist/tui/components/image.js +35 -33
  309. package/dist/tui/components/image.js.map +1 -1
  310. package/dist/tui/components/input.d.ts +2 -2
  311. package/dist/tui/components/input.d.ts.map +1 -1
  312. package/dist/tui/components/input.js +6 -3
  313. package/dist/tui/components/input.js.map +1 -1
  314. package/dist/tui/components/loader.d.ts +2 -0
  315. package/dist/tui/components/loader.d.ts.map +1 -1
  316. package/dist/tui/components/loader.js +8 -0
  317. package/dist/tui/components/loader.js.map +1 -1
  318. package/dist/tui/components/markdown.d.ts +2 -2
  319. package/dist/tui/components/markdown.d.ts.map +1 -1
  320. package/dist/tui/components/markdown.js +61 -57
  321. package/dist/tui/components/markdown.js.map +1 -1
  322. package/dist/tui/components/select-list.d.ts +2 -2
  323. package/dist/tui/components/select-list.d.ts.map +1 -1
  324. package/dist/tui/components/select-list.js +79 -71
  325. package/dist/tui/components/select-list.js.map +1 -1
  326. package/dist/tui/components/settings-list.d.ts +2 -2
  327. package/dist/tui/components/settings-list.d.ts.map +1 -1
  328. package/dist/tui/components/settings-list.js +12 -1
  329. package/dist/tui/components/settings-list.js.map +1 -1
  330. package/dist/tui/components/spacer.d.ts +3 -3
  331. package/dist/tui/components/spacer.d.ts.map +1 -1
  332. package/dist/tui/components/spacer.js +13 -8
  333. package/dist/tui/components/spacer.js.map +1 -1
  334. package/dist/tui/components/text-renderer.d.ts +7 -0
  335. package/dist/tui/components/text-renderer.d.ts.map +1 -0
  336. package/dist/tui/components/text-renderer.js +25 -0
  337. package/dist/tui/components/text-renderer.js.map +1 -0
  338. package/dist/tui/components/text.d.ts +2 -4
  339. package/dist/tui/components/text.d.ts.map +1 -1
  340. package/dist/tui/components/text.js +35 -54
  341. package/dist/tui/components/text.js.map +1 -1
  342. package/dist/tui/components/truncated-text.d.ts +2 -2
  343. package/dist/tui/components/truncated-text.d.ts.map +1 -1
  344. package/dist/tui/components/truncated-text.js +7 -4
  345. package/dist/tui/components/truncated-text.js.map +1 -1
  346. package/dist/tui/editor-component.d.ts +2 -0
  347. package/dist/tui/editor-component.d.ts.map +1 -1
  348. package/dist/tui/fuzzy.d.ts +10 -0
  349. package/dist/tui/fuzzy.d.ts.map +1 -1
  350. package/dist/tui/fuzzy.js +75 -56
  351. package/dist/tui/fuzzy.js.map +1 -1
  352. package/dist/tui/keybindings.d.ts +16 -3
  353. package/dist/tui/keybindings.d.ts.map +1 -1
  354. package/dist/tui/keybindings.js +68 -12
  355. package/dist/tui/keybindings.js.map +1 -1
  356. package/dist/tui/keys.d.ts +5 -0
  357. package/dist/tui/keys.d.ts.map +1 -1
  358. package/dist/tui/keys.js +72 -1
  359. package/dist/tui/keys.js.map +1 -1
  360. package/dist/tui/stdin-buffer.d.ts +5 -0
  361. package/dist/tui/stdin-buffer.d.ts.map +1 -1
  362. package/dist/tui/stdin-buffer.js +20 -7
  363. package/dist/tui/stdin-buffer.js.map +1 -1
  364. package/dist/tui/terminal-image.d.ts.map +1 -1
  365. package/dist/tui/terminal-image.js +17 -6
  366. package/dist/tui/terminal-image.js.map +1 -1
  367. package/dist/tui/terminal.d.ts +15 -0
  368. package/dist/tui/terminal.d.ts.map +1 -1
  369. package/dist/tui/terminal.js +39 -6
  370. package/dist/tui/terminal.js.map +1 -1
  371. package/dist/tui/tui.d.ts +50 -4
  372. package/dist/tui/tui.d.ts.map +1 -1
  373. package/dist/tui/tui.js +201 -186
  374. package/dist/tui/tui.js.map +1 -1
  375. package/dist/tui/utils.d.ts +19 -0
  376. package/dist/tui/utils.d.ts.map +1 -1
  377. package/dist/tui/utils.js +39 -0
  378. package/dist/tui/utils.js.map +1 -1
  379. package/package.json +7 -9
  380. package/dist/webui/ChatPanel.d.ts +0 -28
  381. package/dist/webui/ChatPanel.d.ts.map +0 -1
  382. package/dist/webui/ChatPanel.js +0 -193
  383. package/dist/webui/ChatPanel.js.map +0 -1
  384. package/dist/webui/components/AgentInterface.d.ts +0 -39
  385. package/dist/webui/components/AgentInterface.d.ts.map +0 -1
  386. package/dist/webui/components/AgentInterface.js +0 -371
  387. package/dist/webui/components/AgentInterface.js.map +0 -1
  388. package/dist/webui/components/AttachmentTile.d.ts +0 -12
  389. package/dist/webui/components/AttachmentTile.d.ts.map +0 -1
  390. package/dist/webui/components/AttachmentTile.js +0 -111
  391. package/dist/webui/components/AttachmentTile.js.map +0 -1
  392. package/dist/webui/components/ConsoleBlock.d.ts +0 -12
  393. package/dist/webui/components/ConsoleBlock.d.ts.map +0 -1
  394. package/dist/webui/components/ConsoleBlock.js +0 -84
  395. package/dist/webui/components/ConsoleBlock.js.map +0 -1
  396. package/dist/webui/components/CustomProviderCard.d.ts +0 -17
  397. package/dist/webui/components/CustomProviderCard.d.ts.map +0 -1
  398. package/dist/webui/components/CustomProviderCard.js +0 -110
  399. package/dist/webui/components/CustomProviderCard.js.map +0 -1
  400. package/dist/webui/components/ExpandableSection.d.ts +0 -15
  401. package/dist/webui/components/ExpandableSection.d.ts.map +0 -1
  402. package/dist/webui/components/ExpandableSection.js +0 -63
  403. package/dist/webui/components/ExpandableSection.js.map +0 -1
  404. package/dist/webui/components/Input.d.ts +0 -26
  405. package/dist/webui/components/Input.d.ts.map +0 -1
  406. package/dist/webui/components/Input.js +0 -57
  407. package/dist/webui/components/Input.js.map +0 -1
  408. package/dist/webui/components/MessageEditor.d.ts +0 -44
  409. package/dist/webui/components/MessageEditor.d.ts.map +0 -1
  410. package/dist/webui/components/MessageEditor.js +0 -414
  411. package/dist/webui/components/MessageEditor.js.map +0 -1
  412. package/dist/webui/components/MessageList.d.ts +0 -14
  413. package/dist/webui/components/MessageList.d.ts.map +0 -1
  414. package/dist/webui/components/MessageList.js +0 -104
  415. package/dist/webui/components/MessageList.js.map +0 -1
  416. package/dist/webui/components/Messages.d.ts +0 -94
  417. package/dist/webui/components/Messages.d.ts.map +0 -1
  418. package/dist/webui/components/Messages.js +0 -352
  419. package/dist/webui/components/Messages.js.map +0 -1
  420. package/dist/webui/components/ProviderKeyInput.d.ts +0 -16
  421. package/dist/webui/components/ProviderKeyInput.d.ts.map +0 -1
  422. package/dist/webui/components/ProviderKeyInput.js +0 -171
  423. package/dist/webui/components/ProviderKeyInput.js.map +0 -1
  424. package/dist/webui/components/SandboxedIframe.d.ts +0 -85
  425. package/dist/webui/components/SandboxedIframe.d.ts.map +0 -1
  426. package/dist/webui/components/SandboxedIframe.js +0 -511
  427. package/dist/webui/components/SandboxedIframe.js.map +0 -1
  428. package/dist/webui/components/StreamingMessageContainer.d.ts +0 -19
  429. package/dist/webui/components/StreamingMessageContainer.d.ts.map +0 -1
  430. package/dist/webui/components/StreamingMessageContainer.js +0 -117
  431. package/dist/webui/components/StreamingMessageContainer.js.map +0 -1
  432. package/dist/webui/components/ThinkingBlock.d.ts +0 -11
  433. package/dist/webui/components/ThinkingBlock.d.ts.map +0 -1
  434. package/dist/webui/components/ThinkingBlock.js +0 -58
  435. package/dist/webui/components/ThinkingBlock.js.map +0 -1
  436. package/dist/webui/components/message-renderer-registry.d.ts +0 -12
  437. package/dist/webui/components/message-renderer-registry.d.ts.map +0 -1
  438. package/dist/webui/components/message-renderer-registry.js +0 -12
  439. package/dist/webui/components/message-renderer-registry.js.map +0 -1
  440. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.d.ts +0 -35
  441. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.d.ts.map +0 -1
  442. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.js +0 -189
  443. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.js.map +0 -1
  444. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.d.ts +0 -17
  445. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.d.ts.map +0 -1
  446. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.js +0 -64
  447. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.js.map +0 -1
  448. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.d.ts +0 -42
  449. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.d.ts.map +0 -1
  450. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.js +0 -161
  451. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.js.map +0 -1
  452. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.d.ts +0 -30
  453. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.d.ts.map +0 -1
  454. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.js +0 -97
  455. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.js.map +0 -1
  456. package/dist/webui/components/sandbox/RuntimeMessageBridge.d.ts +0 -19
  457. package/dist/webui/components/sandbox/RuntimeMessageBridge.d.ts.map +0 -1
  458. package/dist/webui/components/sandbox/RuntimeMessageBridge.js +0 -74
  459. package/dist/webui/components/sandbox/RuntimeMessageBridge.js.map +0 -1
  460. package/dist/webui/components/sandbox/RuntimeMessageRouter.d.ts +0 -65
  461. package/dist/webui/components/sandbox/RuntimeMessageRouter.d.ts.map +0 -1
  462. package/dist/webui/components/sandbox/RuntimeMessageRouter.js +0 -168
  463. package/dist/webui/components/sandbox/RuntimeMessageRouter.js.map +0 -1
  464. package/dist/webui/components/sandbox/SandboxRuntimeProvider.d.ts +0 -48
  465. package/dist/webui/components/sandbox/SandboxRuntimeProvider.d.ts.map +0 -1
  466. package/dist/webui/components/sandbox/SandboxRuntimeProvider.js +0 -2
  467. package/dist/webui/components/sandbox/SandboxRuntimeProvider.js.map +0 -1
  468. package/dist/webui/dialogs/ApiKeyPromptDialog.d.ts +0 -15
  469. package/dist/webui/dialogs/ApiKeyPromptDialog.d.ts.map +0 -1
  470. package/dist/webui/dialogs/ApiKeyPromptDialog.js +0 -79
  471. package/dist/webui/dialogs/ApiKeyPromptDialog.js.map +0 -1
  472. package/dist/webui/dialogs/AttachmentOverlay.d.ts +0 -32
  473. package/dist/webui/dialogs/AttachmentOverlay.d.ts.map +0 -1
  474. package/dist/webui/dialogs/AttachmentOverlay.js +0 -576
  475. package/dist/webui/dialogs/AttachmentOverlay.js.map +0 -1
  476. package/dist/webui/dialogs/CustomProviderDialog.d.ts +0 -25
  477. package/dist/webui/dialogs/CustomProviderDialog.d.ts.map +0 -1
  478. package/dist/webui/dialogs/CustomProviderDialog.js +0 -270
  479. package/dist/webui/dialogs/CustomProviderDialog.js.map +0 -1
  480. package/dist/webui/dialogs/ModelSelector.d.ts +0 -27
  481. package/dist/webui/dialogs/ModelSelector.d.ts.map +0 -1
  482. package/dist/webui/dialogs/ModelSelector.js +0 -320
  483. package/dist/webui/dialogs/ModelSelector.js.map +0 -1
  484. package/dist/webui/dialogs/PersistentStorageDialog.d.ts +0 -17
  485. package/dist/webui/dialogs/PersistentStorageDialog.d.ts.map +0 -1
  486. package/dist/webui/dialogs/PersistentStorageDialog.js +0 -147
  487. package/dist/webui/dialogs/PersistentStorageDialog.js.map +0 -1
  488. package/dist/webui/dialogs/ProvidersModelsTab.d.ts +0 -20
  489. package/dist/webui/dialogs/ProvidersModelsTab.d.ts.map +0 -1
  490. package/dist/webui/dialogs/ProvidersModelsTab.js +0 -191
  491. package/dist/webui/dialogs/ProvidersModelsTab.js.map +0 -1
  492. package/dist/webui/dialogs/SessionListDialog.d.ts +0 -19
  493. package/dist/webui/dialogs/SessionListDialog.d.ts.map +0 -1
  494. package/dist/webui/dialogs/SessionListDialog.js +0 -154
  495. package/dist/webui/dialogs/SessionListDialog.js.map +0 -1
  496. package/dist/webui/dialogs/SettingsDialog.d.ts +0 -30
  497. package/dist/webui/dialogs/SettingsDialog.d.ts.map +0 -1
  498. package/dist/webui/dialogs/SettingsDialog.js +0 -229
  499. package/dist/webui/dialogs/SettingsDialog.js.map +0 -1
  500. package/dist/webui/index.d.ts +0 -65
  501. package/dist/webui/index.d.ts.map +0 -1
  502. package/dist/webui/index.js +0 -68
  503. package/dist/webui/index.js.map +0 -1
  504. package/dist/webui/prompts/prompts.d.ts +0 -11
  505. package/dist/webui/prompts/prompts.d.ts.map +0 -1
  506. package/dist/webui/prompts/prompts.js +0 -272
  507. package/dist/webui/prompts/prompts.js.map +0 -1
  508. package/dist/webui/storage/app-storage.d.ts +0 -33
  509. package/dist/webui/storage/app-storage.d.ts.map +0 -1
  510. package/dist/webui/storage/app-storage.js +0 -38
  511. package/dist/webui/storage/app-storage.js.map +0 -1
  512. package/dist/webui/storage/backends/indexeddb-storage-backend.d.ts +0 -27
  513. package/dist/webui/storage/backends/indexeddb-storage-backend.d.ts.map +0 -1
  514. package/dist/webui/storage/backends/indexeddb-storage-backend.js +0 -166
  515. package/dist/webui/storage/backends/indexeddb-storage-backend.js.map +0 -1
  516. package/dist/webui/storage/store.d.ts +0 -23
  517. package/dist/webui/storage/store.d.ts.map +0 -1
  518. package/dist/webui/storage/store.js +0 -26
  519. package/dist/webui/storage/store.js.map +0 -1
  520. package/dist/webui/storage/stores/custom-providers-store.d.ts +0 -25
  521. package/dist/webui/storage/stores/custom-providers-store.d.ts.map +0 -1
  522. package/dist/webui/storage/stores/custom-providers-store.js +0 -35
  523. package/dist/webui/storage/stores/custom-providers-store.js.map +0 -1
  524. package/dist/webui/storage/stores/provider-keys-store.d.ts +0 -14
  525. package/dist/webui/storage/stores/provider-keys-store.d.ts.map +0 -1
  526. package/dist/webui/storage/stores/provider-keys-store.js +0 -27
  527. package/dist/webui/storage/stores/provider-keys-store.js.map +0 -1
  528. package/dist/webui/storage/stores/sessions-store.d.ts +0 -32
  529. package/dist/webui/storage/stores/sessions-store.d.ts.map +0 -1
  530. package/dist/webui/storage/stores/sessions-store.js +0 -113
  531. package/dist/webui/storage/stores/sessions-store.js.map +0 -1
  532. package/dist/webui/storage/stores/settings-store.d.ts +0 -14
  533. package/dist/webui/storage/stores/settings-store.d.ts.map +0 -1
  534. package/dist/webui/storage/stores/settings-store.js +0 -28
  535. package/dist/webui/storage/stores/settings-store.js.map +0 -1
  536. package/dist/webui/storage/types.d.ts +0 -176
  537. package/dist/webui/storage/types.d.ts.map +0 -1
  538. package/dist/webui/storage/types.js +0 -2
  539. package/dist/webui/storage/types.js.map +0 -1
  540. package/dist/webui/tools/artifacts/ArtifactElement.d.ts +0 -9
  541. package/dist/webui/tools/artifacts/ArtifactElement.d.ts.map +0 -1
  542. package/dist/webui/tools/artifacts/ArtifactElement.js +0 -11
  543. package/dist/webui/tools/artifacts/ArtifactElement.js.map +0 -1
  544. package/dist/webui/tools/artifacts/ArtifactPill.d.ts +0 -4
  545. package/dist/webui/tools/artifacts/ArtifactPill.d.ts.map +0 -1
  546. package/dist/webui/tools/artifacts/ArtifactPill.js +0 -23
  547. package/dist/webui/tools/artifacts/ArtifactPill.js.map +0 -1
  548. package/dist/webui/tools/artifacts/Console.d.ts +0 -18
  549. package/dist/webui/tools/artifacts/Console.d.ts.map +0 -1
  550. package/dist/webui/tools/artifacts/Console.js +0 -95
  551. package/dist/webui/tools/artifacts/Console.js.map +0 -1
  552. package/dist/webui/tools/artifacts/DocxArtifact.d.ts +0 -22
  553. package/dist/webui/tools/artifacts/DocxArtifact.d.ts.map +0 -1
  554. package/dist/webui/tools/artifacts/DocxArtifact.js +0 -208
  555. package/dist/webui/tools/artifacts/DocxArtifact.js.map +0 -1
  556. package/dist/webui/tools/artifacts/ExcelArtifact.d.ts +0 -24
  557. package/dist/webui/tools/artifacts/ExcelArtifact.d.ts.map +0 -1
  558. package/dist/webui/tools/artifacts/ExcelArtifact.js +0 -216
  559. package/dist/webui/tools/artifacts/ExcelArtifact.js.map +0 -1
  560. package/dist/webui/tools/artifacts/GenericArtifact.d.ts +0 -19
  561. package/dist/webui/tools/artifacts/GenericArtifact.d.ts.map +0 -1
  562. package/dist/webui/tools/artifacts/GenericArtifact.js +0 -117
  563. package/dist/webui/tools/artifacts/GenericArtifact.js.map +0 -1
  564. package/dist/webui/tools/artifacts/HtmlArtifact.d.ts +0 -27
  565. package/dist/webui/tools/artifacts/HtmlArtifact.d.ts.map +0 -1
  566. package/dist/webui/tools/artifacts/HtmlArtifact.js +0 -189
  567. package/dist/webui/tools/artifacts/HtmlArtifact.js.map +0 -1
  568. package/dist/webui/tools/artifacts/ImageArtifact.d.ts +0 -20
  569. package/dist/webui/tools/artifacts/ImageArtifact.d.ts.map +0 -1
  570. package/dist/webui/tools/artifacts/ImageArtifact.js +0 -120
  571. package/dist/webui/tools/artifacts/ImageArtifact.js.map +0 -1
  572. package/dist/webui/tools/artifacts/MarkdownArtifact.d.ts +0 -19
  573. package/dist/webui/tools/artifacts/MarkdownArtifact.d.ts.map +0 -1
  574. package/dist/webui/tools/artifacts/MarkdownArtifact.js +0 -82
  575. package/dist/webui/tools/artifacts/MarkdownArtifact.js.map +0 -1
  576. package/dist/webui/tools/artifacts/PdfArtifact.d.ts +0 -25
  577. package/dist/webui/tools/artifacts/PdfArtifact.d.ts.map +0 -1
  578. package/dist/webui/tools/artifacts/PdfArtifact.js +0 -184
  579. package/dist/webui/tools/artifacts/PdfArtifact.js.map +0 -1
  580. package/dist/webui/tools/artifacts/SvgArtifact.d.ts +0 -18
  581. package/dist/webui/tools/artifacts/SvgArtifact.d.ts.map +0 -1
  582. package/dist/webui/tools/artifacts/SvgArtifact.js +0 -78
  583. package/dist/webui/tools/artifacts/SvgArtifact.js.map +0 -1
  584. package/dist/webui/tools/artifacts/TextArtifact.d.ts +0 -19
  585. package/dist/webui/tools/artifacts/TextArtifact.d.ts.map +0 -1
  586. package/dist/webui/tools/artifacts/TextArtifact.js +0 -144
  587. package/dist/webui/tools/artifacts/TextArtifact.js.map +0 -1
  588. package/dist/webui/tools/artifacts/artifacts-tool-renderer.d.ts +0 -11
  589. package/dist/webui/tools/artifacts/artifacts-tool-renderer.d.ts.map +0 -1
  590. package/dist/webui/tools/artifacts/artifacts-tool-renderer.js +0 -272
  591. package/dist/webui/tools/artifacts/artifacts-tool-renderer.js.map +0 -1
  592. package/dist/webui/tools/artifacts/artifacts.d.ts +0 -63
  593. package/dist/webui/tools/artifacts/artifacts.d.ts.map +0 -1
  594. package/dist/webui/tools/artifacts/artifacts.js +0 -659
  595. package/dist/webui/tools/artifacts/artifacts.js.map +0 -1
  596. package/dist/webui/tools/artifacts/index.d.ts +0 -8
  597. package/dist/webui/tools/artifacts/index.d.ts.map +0 -1
  598. package/dist/webui/tools/artifacts/index.js +0 -8
  599. package/dist/webui/tools/artifacts/index.js.map +0 -1
  600. package/dist/webui/tools/extract-document.d.ts +0 -24
  601. package/dist/webui/tools/extract-document.d.ts.map +0 -1
  602. package/dist/webui/tools/extract-document.js +0 -216
  603. package/dist/webui/tools/extract-document.js.map +0 -1
  604. package/dist/webui/tools/index.d.ts +0 -16
  605. package/dist/webui/tools/index.d.ts.map +0 -1
  606. package/dist/webui/tools/index.js +0 -33
  607. package/dist/webui/tools/index.js.map +0 -1
  608. package/dist/webui/tools/javascript-repl.d.ts +0 -44
  609. package/dist/webui/tools/javascript-repl.d.ts.map +0 -1
  610. package/dist/webui/tools/javascript-repl.js +0 -224
  611. package/dist/webui/tools/javascript-repl.js.map +0 -1
  612. package/dist/webui/tools/renderer-registry.d.ts +0 -23
  613. package/dist/webui/tools/renderer-registry.d.ts.map +0 -1
  614. package/dist/webui/tools/renderer-registry.js +0 -107
  615. package/dist/webui/tools/renderer-registry.js.map +0 -1
  616. package/dist/webui/tools/renderers/BashRenderer.d.ts +0 -10
  617. package/dist/webui/tools/renderers/BashRenderer.d.ts.map +0 -1
  618. package/dist/webui/tools/renderers/BashRenderer.js +0 -42
  619. package/dist/webui/tools/renderers/BashRenderer.js.map +0 -1
  620. package/dist/webui/tools/renderers/CalculateRenderer.d.ts +0 -10
  621. package/dist/webui/tools/renderers/CalculateRenderer.d.ts.map +0 -1
  622. package/dist/webui/tools/renderers/CalculateRenderer.js +0 -45
  623. package/dist/webui/tools/renderers/CalculateRenderer.js.map +0 -1
  624. package/dist/webui/tools/renderers/DefaultRenderer.d.ts +0 -6
  625. package/dist/webui/tools/renderers/DefaultRenderer.d.ts.map +0 -1
  626. package/dist/webui/tools/renderers/DefaultRenderer.js +0 -94
  627. package/dist/webui/tools/renderers/DefaultRenderer.js.map +0 -1
  628. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.d.ts +0 -10
  629. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.d.ts.map +0 -1
  630. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.js +0 -72
  631. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.js.map +0 -1
  632. package/dist/webui/tools/types.d.ts +0 -10
  633. package/dist/webui/tools/types.d.ts.map +0 -1
  634. package/dist/webui/tools/types.js +0 -2
  635. package/dist/webui/tools/types.js.map +0 -1
  636. package/dist/webui/utils/attachment-utils.d.ts +0 -19
  637. package/dist/webui/utils/attachment-utils.d.ts.map +0 -1
  638. package/dist/webui/utils/attachment-utils.js +0 -415
  639. package/dist/webui/utils/attachment-utils.js.map +0 -1
  640. package/dist/webui/utils/auth-token.d.ts +0 -3
  641. package/dist/webui/utils/auth-token.d.ts.map +0 -1
  642. package/dist/webui/utils/auth-token.js +0 -19
  643. package/dist/webui/utils/auth-token.js.map +0 -1
  644. package/dist/webui/utils/format.d.ts +0 -6
  645. package/dist/webui/utils/format.d.ts.map +0 -1
  646. package/dist/webui/utils/format.js +0 -47
  647. package/dist/webui/utils/format.js.map +0 -1
  648. package/dist/webui/utils/i18n.d.ts +0 -636
  649. package/dist/webui/utils/i18n.d.ts.map +0 -1
  650. package/dist/webui/utils/i18n.js +0 -418
  651. package/dist/webui/utils/i18n.js.map +0 -1
  652. package/dist/webui/utils/model-discovery.d.ts +0 -38
  653. package/dist/webui/utils/model-discovery.d.ts.map +0 -1
  654. package/dist/webui/utils/model-discovery.js +0 -243
  655. package/dist/webui/utils/model-discovery.js.map +0 -1
  656. package/dist/webui/utils/proxy-utils.d.ts +0 -45
  657. package/dist/webui/utils/proxy-utils.d.ts.map +0 -1
  658. package/dist/webui/utils/proxy-utils.js +0 -116
  659. package/dist/webui/utils/proxy-utils.js.map +0 -1
  660. package/dist/webui/utils/test-sessions.d.ts +0 -359
  661. package/dist/webui/utils/test-sessions.d.ts.map +0 -1
  662. package/dist/webui/utils/test-sessions.js +0 -2325
  663. package/dist/webui/utils/test-sessions.js.map +0 -1
  664. package/dist/webui.d.ts +0 -2
  665. package/dist/webui.d.ts.map +0 -1
  666. package/dist/webui.js +0 -2
  667. package/dist/webui.js.map +0 -1
@@ -0,0 +1,389 @@
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
+ import { describe, expect, it } from "vitest";
8
+ import { API_NAMES, PROVIDER_NAMES, STOP_REASONS, isTextContent, isThinkingContent, isImageContent, isToolCall, isUserMessage, isAssistantMessage, isToolResultMessage, isMessage, validateTool, validateMessage, validateContext, } from "./types.js";
9
+ describe("ai/types - Constants", () => {
10
+ it("exposes API_NAMES constant", () => {
11
+ expect(API_NAMES).toBeDefined();
12
+ expect(Array.isArray(API_NAMES)).toBe(true);
13
+ expect(API_NAMES.length).toBeGreaterThan(0);
14
+ expect(API_NAMES).toContain("openai-completions");
15
+ expect(API_NAMES).toContain("anthropic-messages");
16
+ });
17
+ it("exposes PROVIDER_NAMES constant", () => {
18
+ expect(PROVIDER_NAMES).toBeDefined();
19
+ expect(Array.isArray(PROVIDER_NAMES)).toBe(true);
20
+ expect(PROVIDER_NAMES.length).toBeGreaterThan(0);
21
+ expect(PROVIDER_NAMES).toContain("openai");
22
+ expect(PROVIDER_NAMES).toContain("anthropic");
23
+ });
24
+ it("exposes STOP_REASONS constant", () => {
25
+ expect(STOP_REASONS).toBeDefined();
26
+ expect(Array.isArray(STOP_REASONS)).toBe(true);
27
+ expect(STOP_REASONS.length).toBe(5);
28
+ expect(STOP_REASONS).toContain("stop");
29
+ expect(STOP_REASONS).toContain("length");
30
+ expect(STOP_REASONS).toContain("toolUse");
31
+ expect(STOP_REASONS).toContain("error");
32
+ expect(STOP_REASONS).toContain("aborted");
33
+ });
34
+ });
35
+ describe("ai/types - Content Type Guards", () => {
36
+ it("detects TextContent correctly", () => {
37
+ const textContent = { type: "text", text: "Hello, world!" };
38
+ expect(isTextContent(textContent)).toBe(true);
39
+ expect(isTextContent({ type: "text", text: "" })).toBe(true);
40
+ expect(isTextContent({ type: "thinking", thinking: "test" })).toBe(false);
41
+ expect(isTextContent(null)).toBe(false);
42
+ expect(isTextContent(undefined)).toBe(false);
43
+ expect(isTextContent("string")).toBe(false);
44
+ });
45
+ it("detects ThinkingContent correctly", () => {
46
+ const thinkingContent = { type: "thinking", thinking: "Let me think..." };
47
+ expect(isThinkingContent(thinkingContent)).toBe(true);
48
+ expect(isThinkingContent({ type: "thinking", thinking: "" })).toBe(true);
49
+ expect(isThinkingContent({ type: "text", text: "test" })).toBe(false);
50
+ expect(isThinkingContent(null)).toBe(false);
51
+ });
52
+ it("detects ImageContent correctly", () => {
53
+ const imageContent = {
54
+ type: "image",
55
+ data: "base64data",
56
+ mimeType: "image/png",
57
+ };
58
+ expect(isImageContent(imageContent)).toBe(true);
59
+ expect(isImageContent({
60
+ type: "image",
61
+ data: "data",
62
+ mimeType: "image/jpeg",
63
+ })).toBe(true);
64
+ expect(isImageContent({ type: "text", text: "test" })).toBe(false);
65
+ expect(isImageContent(null)).toBe(false);
66
+ });
67
+ it("detects ToolCall correctly", () => {
68
+ const toolCall = {
69
+ type: "toolCall",
70
+ id: "call_123",
71
+ name: "bash",
72
+ arguments: { command: "ls" },
73
+ };
74
+ expect(isToolCall(toolCall)).toBe(true);
75
+ expect(isToolCall({
76
+ type: "toolCall",
77
+ id: "1",
78
+ name: "read",
79
+ arguments: {},
80
+ })).toBe(true);
81
+ // Missing fields should fail
82
+ expect(isToolCall({
83
+ type: "toolCall",
84
+ id: "1",
85
+ })).toBe(false);
86
+ expect(isToolCall(null)).toBe(false);
87
+ });
88
+ });
89
+ describe("ai/types - Message Type Guards", () => {
90
+ it("detects UserMessage correctly", () => {
91
+ const userMessage = {
92
+ role: "user",
93
+ content: "Hello!",
94
+ timestamp: Date.now(),
95
+ };
96
+ expect(isUserMessage(userMessage)).toBe(true);
97
+ expect(isUserMessage({
98
+ role: "user",
99
+ content: [{ type: "text", text: "Hi" }],
100
+ timestamp: Date.now(),
101
+ })).toBe(true);
102
+ expect(isUserMessage({ role: "assistant", content: [], api: "x", provider: "y", model: "z", usage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } }, stopReason: "stop", timestamp: Date.now() })).toBe(false);
103
+ expect(isUserMessage(null)).toBe(false);
104
+ });
105
+ it("detects AssistantMessage correctly", () => {
106
+ const assistantMessage = {
107
+ role: "assistant",
108
+ content: [],
109
+ api: "anthropic-messages",
110
+ provider: "anthropic",
111
+ model: "claude-sonnet-4-20250514",
112
+ usage: { input: 10, output: 20, cacheRead: 0, cacheWrite: 0, totalTokens: 30, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } },
113
+ stopReason: "stop",
114
+ timestamp: Date.now(),
115
+ };
116
+ expect(isAssistantMessage(assistantMessage)).toBe(true);
117
+ expect(isUserMessage(assistantMessage)).toBe(false);
118
+ expect(isAssistantMessage(null)).toBe(false);
119
+ });
120
+ it("detects ToolResultMessage correctly", () => {
121
+ const toolResult = {
122
+ role: "toolResult",
123
+ toolCallId: "call_123",
124
+ toolName: "bash",
125
+ content: [{ type: "text", text: "output" }],
126
+ isError: false,
127
+ timestamp: Date.now(),
128
+ };
129
+ expect(isToolResultMessage(toolResult)).toBe(true);
130
+ expect(isToolResultMessage(null)).toBe(false);
131
+ });
132
+ it("isMessage detects all message types correctly", () => {
133
+ const userMessage = {
134
+ role: "user",
135
+ content: "Hello!",
136
+ timestamp: Date.now(),
137
+ };
138
+ const assistantMessage = {
139
+ role: "assistant",
140
+ content: [],
141
+ api: "openai-completions",
142
+ provider: "openai",
143
+ model: "gpt-4",
144
+ usage: { input: 10, output: 20, cacheRead: 0, cacheWrite: 0, totalTokens: 30, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } },
145
+ stopReason: "stop",
146
+ timestamp: Date.now(),
147
+ };
148
+ const toolResult = {
149
+ role: "toolResult",
150
+ toolCallId: "call_123",
151
+ toolName: "bash",
152
+ content: [],
153
+ isError: false,
154
+ timestamp: Date.now(),
155
+ };
156
+ expect(isMessage(userMessage)).toBe(true);
157
+ expect(isMessage(assistantMessage)).toBe(true);
158
+ expect(isMessage(toolResult)).toBe(true);
159
+ expect(isMessage({ role: "invalid" })).toBe(false);
160
+ expect(isMessage(null)).toBe(false);
161
+ });
162
+ });
163
+ describe("ai/types - Validators", () => {
164
+ describe("validateTool", () => {
165
+ it("accepts valid tool definitions", () => {
166
+ const validTool = {
167
+ name: "bash",
168
+ description: "Run bash commands",
169
+ parameters: { type: "object", properties: {} },
170
+ };
171
+ expect(() => validateTool(validTool)).not.toThrow();
172
+ });
173
+ it("throws on null or undefined", () => {
174
+ expect(() => validateTool(null)).toThrow("Invalid tool");
175
+ expect(() => validateTool(undefined)).toThrow("Invalid tool");
176
+ });
177
+ it("throws on non-object", () => {
178
+ expect(() => validateTool("string")).toThrow("Invalid tool");
179
+ expect(() => validateTool(123)).toThrow("Invalid tool");
180
+ });
181
+ it("throws when name is missing or invalid", () => {
182
+ expect(() => validateTool({
183
+ description: "test",
184
+ parameters: {},
185
+ })).toThrow("name is required");
186
+ expect(() => validateTool({
187
+ name: "",
188
+ description: "test",
189
+ parameters: {},
190
+ })).toThrow("name is required");
191
+ });
192
+ it("throws when description is missing or invalid", () => {
193
+ expect(() => validateTool({
194
+ name: "tool",
195
+ parameters: {},
196
+ })).toThrow("description is required");
197
+ expect(() => validateTool({
198
+ name: "tool",
199
+ description: "",
200
+ parameters: {},
201
+ })).toThrow("description is required");
202
+ });
203
+ it("throws when parameters are missing", () => {
204
+ expect(() => validateTool({
205
+ name: "tool",
206
+ description: "test",
207
+ })).toThrow("parameters schema is required");
208
+ });
209
+ });
210
+ describe("validateMessage", () => {
211
+ it("accepts valid user messages", () => {
212
+ expect(() => validateMessage({
213
+ role: "user",
214
+ content: "Hello",
215
+ timestamp: Date.now(),
216
+ })).not.toThrow();
217
+ });
218
+ it("accepts valid assistant messages", () => {
219
+ expect(() => validateMessage({
220
+ role: "assistant",
221
+ content: [],
222
+ api: "anthropic-messages",
223
+ provider: "anthropic",
224
+ model: "claude-sonnet-4-20250514",
225
+ usage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } },
226
+ stopReason: "stop",
227
+ timestamp: Date.now(),
228
+ })).not.toThrow();
229
+ });
230
+ it("accepts valid tool result messages", () => {
231
+ expect(() => validateMessage({
232
+ role: "toolResult",
233
+ toolCallId: "call_123",
234
+ toolName: "bash",
235
+ content: [],
236
+ isError: false,
237
+ timestamp: Date.now(),
238
+ })).not.toThrow();
239
+ });
240
+ it("throws on invalid messages", () => {
241
+ expect(() => validateMessage({ role: "invalid" })).toThrow("Invalid message");
242
+ expect(() => validateMessage(null)).toThrow("Invalid message");
243
+ });
244
+ });
245
+ describe("validateContext", () => {
246
+ it("accepts valid context with messages only", () => {
247
+ expect(() => validateContext({
248
+ messages: [{
249
+ role: "user",
250
+ content: "Hello",
251
+ timestamp: Date.now(),
252
+ }],
253
+ })).not.toThrow();
254
+ });
255
+ it("accepts valid context with tools", () => {
256
+ expect(() => validateContext({
257
+ messages: [{
258
+ role: "user",
259
+ content: "Hello",
260
+ timestamp: Date.now(),
261
+ }],
262
+ tools: [{
263
+ name: "bash",
264
+ description: "Run bash",
265
+ parameters: { type: "object" },
266
+ }],
267
+ })).not.toThrow();
268
+ });
269
+ it("accepts valid context with system prompt", () => {
270
+ expect(() => validateContext({
271
+ systemPrompt: "You are a helpful assistant",
272
+ messages: [{
273
+ role: "user",
274
+ content: "Hello",
275
+ timestamp: Date.now(),
276
+ }],
277
+ })).not.toThrow();
278
+ });
279
+ it("throws on null or undefined", () => {
280
+ expect(() => validateContext(null)).toThrow("Invalid context");
281
+ expect(() => validateContext(undefined)).toThrow("Invalid context");
282
+ });
283
+ it("throws when messages is not an array", () => {
284
+ expect(() => validateContext({
285
+ messages: "not an array",
286
+ })).toThrow("messages must be an array");
287
+ });
288
+ it("throws when tools is not an array", () => {
289
+ expect(() => validateContext({
290
+ messages: [],
291
+ tools: "not an array",
292
+ })).toThrow("tools must be an array");
293
+ });
294
+ it("throws when message in context is invalid", () => {
295
+ expect(() => validateContext({
296
+ messages: [{ role: "invalid" }],
297
+ })).toThrow("Invalid message");
298
+ });
299
+ it("throws when tool in context is invalid", () => {
300
+ expect(() => validateContext({
301
+ messages: [],
302
+ tools: [{ name: "invalid" }],
303
+ })).toThrow("Invalid tool");
304
+ });
305
+ });
306
+ });
307
+ describe("ai/types - Integration Tests", () => {
308
+ it("can validate complete workflow context", () => {
309
+ const validContext = {
310
+ systemPrompt: "You are Claude",
311
+ messages: [
312
+ { role: "user", content: "Hello!", timestamp: Date.now() },
313
+ {
314
+ role: "assistant",
315
+ content: [{ type: "text", text: "Hi there!" }],
316
+ api: "anthropic-messages",
317
+ provider: "anthropic",
318
+ model: "claude-sonnet-4-20250514",
319
+ usage: { input: 5, output: 3, cacheRead: 0, cacheWrite: 0, totalTokens: 8, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } },
320
+ stopReason: "stop",
321
+ timestamp: Date.now(),
322
+ },
323
+ ],
324
+ tools: [
325
+ {
326
+ name: "bash",
327
+ description: "Run commands",
328
+ parameters: { type: "object", properties: {} },
329
+ },
330
+ ],
331
+ };
332
+ expect(() => validateContext(validContext)).not.toThrow();
333
+ expect(isMessage(validContext.messages[0])).toBe(true);
334
+ expect(isMessage(validContext.messages[1])).toBe(true);
335
+ });
336
+ });
337
+ describe("ai/types - Edge Cases", () => {
338
+ it("handles empty content arrays", () => {
339
+ const assistantMsg = {
340
+ role: "assistant",
341
+ content: [],
342
+ api: "openai-completions",
343
+ provider: "openai",
344
+ model: "gpt-4",
345
+ usage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } },
346
+ stopReason: "stop",
347
+ timestamp: Date.now(),
348
+ };
349
+ expect(isAssistantMessage(assistantMsg)).toBe(true);
350
+ });
351
+ it("handles complex content arrays", () => {
352
+ const assistantMsg = {
353
+ role: "assistant",
354
+ content: [
355
+ { type: "thinking", thinking: "Let me think..." },
356
+ { type: "text", text: "Here's the answer" },
357
+ {
358
+ type: "toolCall",
359
+ id: "call_123",
360
+ name: "bash",
361
+ arguments: { command: "ls" },
362
+ },
363
+ ],
364
+ api: "anthropic-messages",
365
+ provider: "anthropic",
366
+ model: "claude-sonnet-4-20250514",
367
+ usage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } },
368
+ stopReason: "toolUse",
369
+ timestamp: Date.now(),
370
+ };
371
+ expect(isAssistantMessage(assistantMsg)).toBe(true);
372
+ expect(isThinkingContent(assistantMsg.content[0])).toBe(true);
373
+ expect(isTextContent(assistantMsg.content[1])).toBe(true);
374
+ expect(isToolCall(assistantMsg.content[2])).toBe(true);
375
+ });
376
+ it("handles all stop reason values", () => {
377
+ const stopReasons = [
378
+ "stop",
379
+ "length",
380
+ "toolUse",
381
+ "error",
382
+ "aborted",
383
+ ];
384
+ stopReasons.forEach((reason) => {
385
+ expect(STOP_REASONS).toContain(reason);
386
+ });
387
+ });
388
+ });
389
+ //# sourceMappingURL=types.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/ai/types.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { AssistantMessage, StopReason } from "../types.js";
2
+ import type { AssistantMessageEventStream } from "./event-stream.js";
3
+ export interface StreamHandlerContext {
4
+ output: AssistantMessage;
5
+ stream: AssistantMessageEventStream;
6
+ signal?: AbortSignal;
7
+ }
8
+ export declare abstract class BaseStreamHandler<TContext extends StreamHandlerContext = StreamHandlerContext> {
9
+ protected readonly context?: TContext | undefined;
10
+ constructor(context?: TContext | undefined);
11
+ protected abstract processStream(): Promise<void>;
12
+ run(): Promise<void>;
13
+ protected done(reason: Extract<StopReason, "stop" | "length" | "toolUse">): void;
14
+ protected fail(error: unknown): void;
15
+ }
16
+ //# sourceMappingURL=base-stream-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-stream-handler.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/base-stream-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,2BAA2B,CAAC;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,8BAAsB,iBAAiB,CAAC,QAAQ,SAAS,oBAAoB,GAAG,oBAAoB;IACvF,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ;gBAAlB,OAAO,CAAC,EAAE,QAAQ,YAAA;IAEjD,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,IAAI;IAOhF,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CAOpC"}
@@ -0,0 +1,24 @@
1
+ export class BaseStreamHandler {
2
+ constructor(context) {
3
+ this.context = context;
4
+ }
5
+ async run() {
6
+ await this.processStream();
7
+ }
8
+ done(reason) {
9
+ if (!this.context)
10
+ return;
11
+ this.context.output.stopReason = reason;
12
+ this.context.stream.pushDone(reason, this.context.output);
13
+ this.context.stream.end();
14
+ }
15
+ fail(error) {
16
+ if (!this.context)
17
+ return;
18
+ this.context.output.stopReason = this.context.signal?.aborted ? "aborted" : "error";
19
+ this.context.output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);
20
+ this.context.stream.pushError(this.context.output.stopReason, this.context.output);
21
+ this.context.stream.end();
22
+ }
23
+ }
24
+ //# sourceMappingURL=base-stream-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-stream-handler.js","sourceRoot":"","sources":["../../../src/ai/utils/base-stream-handler.ts"],"names":[],"mappings":"AASA,MAAM,OAAgB,iBAAiB;IACtC,YAA+B,OAAkB;QAAlB,YAAO,GAAP,OAAO,CAAW;IAAG,CAAC;IAIrD,KAAK,CAAC,GAAG;QACR,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAES,IAAI,CAAC,MAA0D;QACxE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IAES,IAAI,CAAC,KAAc;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACpF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;CACD"}
@@ -1,21 +1,43 @@
1
- import type { AssistantMessage, AssistantMessageEvent } from "../types.js";
1
+ import type { AssistantMessage, AssistantMessageEvent, ToolCall } from "../types.js";
2
+ export interface EventStreamOptions {
3
+ historyLimit?: number;
4
+ }
2
5
  export declare class EventStream<T, R = T> implements AsyncIterable<T> {
3
6
  private isComplete;
4
7
  private extractResult;
8
+ private options;
5
9
  private queue;
6
10
  private waiting;
7
11
  private done;
8
12
  private finalResultPromise;
9
13
  private resolveFinalResult;
10
- constructor(isComplete: (event: T) => boolean, extractResult: (event: T) => R);
14
+ private history;
15
+ constructor(isComplete: (event: T) => boolean, extractResult: (event: T) => R, options?: EventStreamOptions);
11
16
  push(event: T): void;
12
17
  end(result?: R): void;
13
18
  [Symbol.asyncIterator](): AsyncIterator<T>;
14
19
  result(): Promise<R>;
20
+ resultWithTimeout(timeoutMs: number): Promise<R>;
21
+ filter(predicate: (event: T) => boolean): AsyncIterable<T>;
22
+ map<U>(mapper: (event: T) => U): AsyncIterable<U>;
23
+ getHistory(): readonly T[];
24
+ private pushHistory;
15
25
  }
16
26
  export declare class AssistantMessageEventStream extends EventStream<AssistantMessageEvent, AssistantMessage> {
17
- constructor();
27
+ constructor(options?: EventStreamOptions);
28
+ pushStart(partial: AssistantMessage): void;
29
+ pushTextStart(contentIndex: number, partial: AssistantMessage): void;
30
+ pushTextDelta(contentIndex: number, delta: string, partial: AssistantMessage): void;
31
+ pushTextEnd(contentIndex: number, content: string, partial: AssistantMessage): void;
32
+ pushThinkingStart(contentIndex: number, partial: AssistantMessage): void;
33
+ pushThinkingDelta(contentIndex: number, delta: string, partial: AssistantMessage): void;
34
+ pushThinkingEnd(contentIndex: number, content: string, partial: AssistantMessage): void;
35
+ pushToolCallStart(contentIndex: number, partial: AssistantMessage): void;
36
+ pushToolCallDelta(contentIndex: number, delta: string, partial: AssistantMessage): void;
37
+ pushToolCallEnd(contentIndex: number, toolCall: ToolCall, partial: AssistantMessage): void;
38
+ pushDone(reason: "stop" | "length" | "toolUse", message: AssistantMessage): void;
39
+ pushError(reason: "aborted" | "error", error: AssistantMessage): void;
18
40
  }
19
41
  /** Factory function for AssistantMessageEventStream (for use in extensions) */
20
- export declare function createAssistantMessageEventStream(): AssistantMessageEventStream;
42
+ export declare function createAssistantMessageEventStream(options?: EventStreamOptions): AssistantMessageEventStream;
21
43
  //# sourceMappingURL=event-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/event-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG3E,qBAAa,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAQ5D,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IARtB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,kBAAkB,CAAuB;gBAGxC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EACjC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;IAOvC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAiBpB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI;IAYd,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;IAcjD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;CAGpB;AAED,qBAAa,2BAA4B,SAAQ,WAAW,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;;CAcpG;AAED,+EAA+E;AAC/E,wBAAgB,iCAAiC,IAAI,2BAA2B,CAE/E"}
1
+ {"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/event-stream.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  // Generic event stream class for async iteration
2
2
  export class EventStream {
3
- constructor(isComplete, extractResult) {
3
+ constructor(isComplete, extractResult, options = {}) {
4
4
  this.isComplete = isComplete;
5
5
  this.extractResult = extractResult;
6
+ this.options = options;
6
7
  this.queue = [];
7
8
  this.waiting = [];
8
9
  this.done = false;
10
+ this.history = [];
9
11
  this.finalResultPromise = new Promise((resolve) => {
10
12
  this.resolveFinalResult = resolve;
11
13
  });
@@ -13,6 +15,7 @@ export class EventStream {
13
15
  push(event) {
14
16
  if (this.done)
15
17
  return;
18
+ this.pushHistory(event);
16
19
  if (this.isComplete(event)) {
17
20
  this.done = true;
18
21
  this.resolveFinalResult(this.extractResult(event));
@@ -56,9 +59,54 @@ export class EventStream {
56
59
  result() {
57
60
  return this.finalResultPromise;
58
61
  }
62
+ resultWithTimeout(timeoutMs) {
63
+ return new Promise((resolve, reject) => {
64
+ const timer = setTimeout(() => reject(new Error(`Event stream timed out after ${timeoutMs}ms`)), timeoutMs);
65
+ this.result()
66
+ .then((value) => {
67
+ clearTimeout(timer);
68
+ resolve(value);
69
+ })
70
+ .catch((error) => {
71
+ clearTimeout(timer);
72
+ reject(error);
73
+ });
74
+ });
75
+ }
76
+ filter(predicate) {
77
+ const self = this;
78
+ return {
79
+ async *[Symbol.asyncIterator]() {
80
+ for await (const event of self) {
81
+ if (predicate(event))
82
+ yield event;
83
+ }
84
+ },
85
+ };
86
+ }
87
+ map(mapper) {
88
+ const self = this;
89
+ return {
90
+ async *[Symbol.asyncIterator]() {
91
+ for await (const event of self) {
92
+ yield mapper(event);
93
+ }
94
+ },
95
+ };
96
+ }
97
+ getHistory() {
98
+ return this.history;
99
+ }
100
+ pushHistory(event) {
101
+ this.history.push(event);
102
+ const limit = this.options.historyLimit;
103
+ if (limit && limit > 0 && this.history.length > limit) {
104
+ this.history.splice(0, this.history.length - limit);
105
+ }
106
+ }
59
107
  }
60
108
  export class AssistantMessageEventStream extends EventStream {
61
- constructor() {
109
+ constructor(options) {
62
110
  super((event) => event.type === "done" || event.type === "error", (event) => {
63
111
  if (event.type === "done") {
64
112
  return event.message;
@@ -67,11 +115,47 @@ export class AssistantMessageEventStream extends EventStream {
67
115
  return event.error;
68
116
  }
69
117
  throw new Error("Unexpected event type for final result");
70
- });
118
+ }, options);
119
+ }
120
+ pushStart(partial) {
121
+ this.push({ type: "start", partial });
122
+ }
123
+ pushTextStart(contentIndex, partial) {
124
+ this.push({ type: "text_start", contentIndex, partial });
125
+ }
126
+ pushTextDelta(contentIndex, delta, partial) {
127
+ this.push({ type: "text_delta", contentIndex, delta, partial });
128
+ }
129
+ pushTextEnd(contentIndex, content, partial) {
130
+ this.push({ type: "text_end", contentIndex, content, partial });
131
+ }
132
+ pushThinkingStart(contentIndex, partial) {
133
+ this.push({ type: "thinking_start", contentIndex, partial });
134
+ }
135
+ pushThinkingDelta(contentIndex, delta, partial) {
136
+ this.push({ type: "thinking_delta", contentIndex, delta, partial });
137
+ }
138
+ pushThinkingEnd(contentIndex, content, partial) {
139
+ this.push({ type: "thinking_end", contentIndex, content, partial });
140
+ }
141
+ pushToolCallStart(contentIndex, partial) {
142
+ this.push({ type: "toolcall_start", contentIndex, partial });
143
+ }
144
+ pushToolCallDelta(contentIndex, delta, partial) {
145
+ this.push({ type: "toolcall_delta", contentIndex, delta, partial });
146
+ }
147
+ pushToolCallEnd(contentIndex, toolCall, partial) {
148
+ this.push({ type: "toolcall_end", contentIndex, toolCall, partial });
149
+ }
150
+ pushDone(reason, message) {
151
+ this.push({ type: "done", reason, message });
152
+ }
153
+ pushError(reason, error) {
154
+ this.push({ type: "error", reason, error });
71
155
  }
72
156
  }
73
157
  /** Factory function for AssistantMessageEventStream (for use in extensions) */
74
- export function createAssistantMessageEventStream() {
75
- return new AssistantMessageEventStream();
158
+ export function createAssistantMessageEventStream(options) {
159
+ return new AssistantMessageEventStream(options);
76
160
  }
77
161
  //# sourceMappingURL=event-stream.js.map