prompsit-cli 26.225.1206 → 26.227.2006

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 (361) hide show
  1. package/README.md +10 -4
  2. package/dist/api/auth-session.d.ts +11 -11
  3. package/dist/api/auth-session.d.ts.map +1 -1
  4. package/dist/api/auth-session.js +21 -17
  5. package/dist/api/auth-session.js.map +1 -1
  6. package/dist/api/client.d.ts +4 -4
  7. package/dist/api/client.d.ts.map +1 -1
  8. package/dist/api/client.js +8 -8
  9. package/dist/api/client.js.map +1 -1
  10. package/dist/api/curl.d.ts +30 -0
  11. package/dist/api/curl.d.ts.map +1 -0
  12. package/dist/api/curl.js +115 -0
  13. package/dist/api/curl.js.map +1 -0
  14. package/dist/api/errors.d.ts +2 -3
  15. package/dist/api/errors.d.ts.map +1 -1
  16. package/dist/api/errors.js +4 -2
  17. package/dist/api/errors.js.map +1 -1
  18. package/dist/api/http-utils.d.ts +5 -0
  19. package/dist/api/http-utils.d.ts.map +1 -0
  20. package/dist/api/http-utils.js +19 -0
  21. package/dist/api/http-utils.js.map +1 -0
  22. package/dist/api/models.d.ts +135 -89
  23. package/dist/api/models.d.ts.map +1 -1
  24. package/dist/api/models.js +62 -72
  25. package/dist/api/models.js.map +1 -1
  26. package/dist/api/resources/data.d.ts +3 -5
  27. package/dist/api/resources/data.d.ts.map +1 -1
  28. package/dist/api/resources/data.js +11 -12
  29. package/dist/api/resources/data.js.map +1 -1
  30. package/dist/api/resources/discovery.d.ts +26 -0
  31. package/dist/api/resources/discovery.d.ts.map +1 -0
  32. package/dist/api/resources/discovery.js +46 -0
  33. package/dist/api/resources/discovery.js.map +1 -0
  34. package/dist/api/resources/evaluation.d.ts +9 -12
  35. package/dist/api/resources/evaluation.d.ts.map +1 -1
  36. package/dist/api/resources/evaluation.js +45 -20
  37. package/dist/api/resources/evaluation.js.map +1 -1
  38. package/dist/api/resources/formats.d.ts +1 -1
  39. package/dist/api/resources/formats.js +2 -2
  40. package/dist/api/resources/formats.js.map +1 -1
  41. package/dist/api/resources/jobs.d.ts +7 -8
  42. package/dist/api/resources/jobs.d.ts.map +1 -1
  43. package/dist/api/resources/jobs.js +10 -49
  44. package/dist/api/resources/jobs.js.map +1 -1
  45. package/dist/api/resources/languages.d.ts +25 -0
  46. package/dist/api/resources/languages.d.ts.map +1 -0
  47. package/dist/api/resources/languages.js +44 -0
  48. package/dist/api/resources/languages.js.map +1 -0
  49. package/dist/api/resources/translation.d.ts +8 -16
  50. package/dist/api/resources/translation.d.ts.map +1 -1
  51. package/dist/api/resources/translation.js +11 -15
  52. package/dist/api/resources/translation.js.map +1 -1
  53. package/dist/api/sse-client.d.ts +10 -16
  54. package/dist/api/sse-client.d.ts.map +1 -1
  55. package/dist/api/sse-client.js +158 -197
  56. package/dist/api/sse-client.js.map +1 -1
  57. package/dist/api/sse-models.js +1 -1
  58. package/dist/api/sse-models.js.map +1 -1
  59. package/dist/api/trace.js +1 -1
  60. package/dist/api/trace.js.map +1 -1
  61. package/dist/api/transport.d.ts +28 -1
  62. package/dist/api/transport.d.ts.map +1 -1
  63. package/dist/api/transport.js +89 -17
  64. package/dist/api/transport.js.map +1 -1
  65. package/dist/cli/arg-order.d.ts +2 -0
  66. package/dist/cli/arg-order.d.ts.map +1 -1
  67. package/dist/cli/arg-order.js +2 -0
  68. package/dist/cli/arg-order.js.map +1 -1
  69. package/dist/cli/exit-codes.d.ts +0 -2
  70. package/dist/cli/exit-codes.d.ts.map +1 -1
  71. package/dist/cli/exit-codes.js +0 -2
  72. package/dist/cli/exit-codes.js.map +1 -1
  73. package/dist/cli/exit.d.ts +4 -4
  74. package/dist/cli/exit.d.ts.map +1 -1
  75. package/dist/cli/exit.js +4 -4
  76. package/dist/cli/exit.js.map +1 -1
  77. package/dist/cli/prompts.d.ts +0 -2
  78. package/dist/cli/prompts.d.ts.map +1 -1
  79. package/dist/cli/prompts.js +1 -1
  80. package/dist/cli/prompts.js.map +1 -1
  81. package/dist/commands/auth.d.ts.map +1 -1
  82. package/dist/commands/auth.js +0 -1
  83. package/dist/commands/auth.js.map +1 -1
  84. package/dist/commands/batch-processor.d.ts +38 -0
  85. package/dist/commands/batch-processor.d.ts.map +1 -0
  86. package/dist/commands/batch-processor.js +73 -0
  87. package/dist/commands/batch-processor.js.map +1 -0
  88. package/dist/commands/config/api-url.d.ts.map +1 -1
  89. package/dist/commands/config/api-url.js +4 -1
  90. package/dist/commands/config/api-url.js.map +1 -1
  91. package/dist/commands/config/command.d.ts.map +1 -1
  92. package/dist/commands/config/command.js +3 -2
  93. package/dist/commands/config/command.js.map +1 -1
  94. package/dist/commands/config/language.d.ts.map +1 -1
  95. package/dist/commands/config/language.js.map +1 -1
  96. package/dist/commands/config/reset.d.ts.map +1 -1
  97. package/dist/commands/config/reset.js.map +1 -1
  98. package/dist/commands/config/shared.js +3 -3
  99. package/dist/commands/config/shared.js.map +1 -1
  100. package/dist/commands/config/show.d.ts.map +1 -1
  101. package/dist/commands/config/show.js +0 -13
  102. package/dist/commands/config/show.js.map +1 -1
  103. package/dist/commands/data.d.ts.map +1 -1
  104. package/dist/commands/data.js +241 -68
  105. package/dist/commands/data.js.map +1 -1
  106. package/dist/commands/evaluate.d.ts.map +1 -1
  107. package/dist/commands/evaluate.js +111 -29
  108. package/dist/commands/evaluate.js.map +1 -1
  109. package/dist/commands/formats.d.ts +1 -1
  110. package/dist/commands/formats.d.ts.map +1 -1
  111. package/dist/commands/formats.js +5 -12
  112. package/dist/commands/formats.js.map +1 -1
  113. package/dist/commands/health.d.ts +1 -1
  114. package/dist/commands/health.d.ts.map +1 -1
  115. package/dist/commands/health.js +3 -10
  116. package/dist/commands/health.js.map +1 -1
  117. package/dist/commands/job-tracking.d.ts +13 -5
  118. package/dist/commands/job-tracking.d.ts.map +1 -1
  119. package/dist/commands/job-tracking.js +25 -18
  120. package/dist/commands/job-tracking.js.map +1 -1
  121. package/dist/commands/languages.d.ts +12 -0
  122. package/dist/commands/languages.d.ts.map +1 -0
  123. package/dist/commands/languages.js +48 -0
  124. package/dist/commands/languages.js.map +1 -0
  125. package/dist/commands/mappers.d.ts +15 -3
  126. package/dist/commands/mappers.d.ts.map +1 -1
  127. package/dist/commands/mappers.js +38 -18
  128. package/dist/commands/mappers.js.map +1 -1
  129. package/dist/commands/progress-animator.d.ts +2 -1
  130. package/dist/commands/progress-animator.d.ts.map +1 -1
  131. package/dist/commands/progress-animator.js +4 -2
  132. package/dist/commands/progress-animator.js.map +1 -1
  133. package/dist/commands/translate.d.ts.map +1 -1
  134. package/dist/commands/translate.js +149 -87
  135. package/dist/commands/translate.js.map +1 -1
  136. package/dist/config/credentials.d.ts +11 -87
  137. package/dist/config/credentials.d.ts.map +1 -1
  138. package/dist/config/credentials.js +28 -87
  139. package/dist/config/credentials.js.map +1 -1
  140. package/dist/config/env-parser.d.ts.map +1 -1
  141. package/dist/config/env-parser.js +3 -2
  142. package/dist/config/env-parser.js.map +1 -1
  143. package/dist/config/file-utils.js +1 -1
  144. package/dist/config/file-utils.js.map +1 -1
  145. package/dist/config/index.d.ts +4 -7
  146. package/dist/config/index.d.ts.map +1 -1
  147. package/dist/config/index.js +6 -12
  148. package/dist/config/index.js.map +1 -1
  149. package/dist/config/schemas.d.ts +4 -33
  150. package/dist/config/schemas.d.ts.map +1 -1
  151. package/dist/config/schemas.js +14 -19
  152. package/dist/config/schemas.js.map +1 -1
  153. package/dist/config/settings.d.ts +4 -4
  154. package/dist/config/settings.d.ts.map +1 -1
  155. package/dist/config/settings.js +16 -21
  156. package/dist/config/settings.js.map +1 -1
  157. package/dist/config/toml-io.js +1 -1
  158. package/dist/config/toml-io.js.map +1 -1
  159. package/dist/constants.d.ts +10 -9
  160. package/dist/constants.d.ts.map +1 -1
  161. package/dist/constants.js +10 -9
  162. package/dist/constants.js.map +1 -1
  163. package/dist/errors/catalog.d.ts.map +1 -1
  164. package/dist/errors/catalog.js +6 -8
  165. package/dist/errors/catalog.js.map +1 -1
  166. package/dist/errors/contracts.d.ts.map +1 -1
  167. package/dist/errors/contracts.js +2 -3
  168. package/dist/errors/contracts.js.map +1 -1
  169. package/dist/i18n/cache.d.ts +0 -2
  170. package/dist/i18n/cache.d.ts.map +1 -1
  171. package/dist/i18n/cache.js +4 -4
  172. package/dist/i18n/cache.js.map +1 -1
  173. package/dist/i18n/catalog.d.ts +34 -37
  174. package/dist/i18n/catalog.d.ts.map +1 -1
  175. package/dist/i18n/catalog.js +38 -40
  176. package/dist/i18n/catalog.js.map +1 -1
  177. package/dist/i18n/index.d.ts +0 -1
  178. package/dist/i18n/index.d.ts.map +1 -1
  179. package/dist/i18n/index.js +0 -3
  180. package/dist/i18n/index.js.map +1 -1
  181. package/dist/i18n/translator-adapter.js +1 -1
  182. package/dist/i18n/translator-adapter.js.map +1 -1
  183. package/dist/i18n/translator.d.ts.map +1 -1
  184. package/dist/i18n/translator.js +1 -0
  185. package/dist/i18n/translator.js.map +1 -1
  186. package/dist/index.d.ts +1 -2
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +2 -3
  189. package/dist/index.js.map +1 -1
  190. package/dist/logging/console-handler.js +1 -1
  191. package/dist/logging/console-handler.js.map +1 -1
  192. package/dist/logging/file-handler.d.ts.map +1 -1
  193. package/dist/logging/file-handler.js +4 -5
  194. package/dist/logging/file-handler.js.map +1 -1
  195. package/dist/logging/index.d.ts +2 -2
  196. package/dist/logging/index.d.ts.map +1 -1
  197. package/dist/logging/index.js +1 -1
  198. package/dist/logging/index.js.map +1 -1
  199. package/dist/logging/logger.d.ts +18 -22
  200. package/dist/logging/logger.d.ts.map +1 -1
  201. package/dist/logging/logger.js +38 -64
  202. package/dist/logging/logger.js.map +1 -1
  203. package/dist/logging/loki-handler.js +1 -1
  204. package/dist/logging/loki-handler.js.map +1 -1
  205. package/dist/logging/setup.d.ts +4 -3
  206. package/dist/logging/setup.d.ts.map +1 -1
  207. package/dist/logging/setup.js +136 -33
  208. package/dist/logging/setup.js.map +1 -1
  209. package/dist/output/ansi-utils.d.ts +13 -0
  210. package/dist/output/ansi-utils.d.ts.map +1 -0
  211. package/dist/output/ansi-utils.js +37 -0
  212. package/dist/output/ansi-utils.js.map +1 -0
  213. package/dist/output/index.d.ts +2 -5
  214. package/dist/output/index.d.ts.map +1 -1
  215. package/dist/output/index.js +3 -2
  216. package/dist/output/index.js.map +1 -1
  217. package/dist/output/output-events.d.ts +0 -1
  218. package/dist/output/output-events.d.ts.map +1 -1
  219. package/dist/output/tables/catalog.d.ts +5 -2
  220. package/dist/output/tables/catalog.d.ts.map +1 -1
  221. package/dist/output/tables/catalog.js +65 -9
  222. package/dist/output/tables/catalog.js.map +1 -1
  223. package/dist/output/tables/evaluation.d.ts.map +1 -1
  224. package/dist/output/tables/evaluation.js +3 -0
  225. package/dist/output/tables/evaluation.js.map +1 -1
  226. package/dist/output/tables/health-status.d.ts.map +1 -1
  227. package/dist/output/tables/health-status.js +11 -7
  228. package/dist/output/tables/health-status.js.map +1 -1
  229. package/dist/output/tables/index.d.ts +3 -3
  230. package/dist/output/tables/index.d.ts.map +1 -1
  231. package/dist/output/tables/index.js +2 -2
  232. package/dist/output/tables/index.js.map +1 -1
  233. package/dist/output/tables/render.d.ts.map +1 -1
  234. package/dist/output/tables/render.js +2 -10
  235. package/dist/output/tables/render.js.map +1 -1
  236. package/dist/output/terminal.d.ts +1 -5
  237. package/dist/output/terminal.d.ts.map +1 -1
  238. package/dist/output/terminal.js +25 -24
  239. package/dist/output/terminal.js.map +1 -1
  240. package/dist/output/view-models.d.ts +28 -2
  241. package/dist/output/view-models.d.ts.map +1 -1
  242. package/dist/program.d.ts.map +1 -1
  243. package/dist/program.js +21 -29
  244. package/dist/program.js.map +1 -1
  245. package/dist/repl/controller.d.ts.map +1 -1
  246. package/dist/repl/controller.js +82 -47
  247. package/dist/repl/controller.js.map +1 -1
  248. package/dist/repl/core/output-bridge.d.ts.map +1 -1
  249. package/dist/repl/core/output-bridge.js +6 -4
  250. package/dist/repl/core/output-bridge.js.map +1 -1
  251. package/dist/repl/core/progress-types.d.ts +1 -1
  252. package/dist/repl/core/progress-types.d.ts.map +1 -1
  253. package/dist/repl/core/progress-types.js +1 -1
  254. package/dist/repl/core/progress-types.js.map +1 -1
  255. package/dist/repl/examples.d.ts +5 -7
  256. package/dist/repl/examples.d.ts.map +1 -1
  257. package/dist/repl/examples.js +27 -14
  258. package/dist/repl/examples.js.map +1 -1
  259. package/dist/repl/executor.d.ts +2 -4
  260. package/dist/repl/executor.d.ts.map +1 -1
  261. package/dist/repl/executor.js +69 -58
  262. package/dist/repl/executor.js.map +1 -1
  263. package/dist/repl/help.d.ts +10 -3
  264. package/dist/repl/help.d.ts.map +1 -1
  265. package/dist/repl/help.js +31 -4
  266. package/dist/repl/help.js.map +1 -1
  267. package/dist/repl/history/command-history.js +5 -5
  268. package/dist/repl/history/command-history.js.map +1 -1
  269. package/dist/repl/history/output-render.d.ts +1 -3
  270. package/dist/repl/history/output-render.d.ts.map +1 -1
  271. package/dist/repl/history/output-render.js +4 -6
  272. package/dist/repl/history/output-render.js.map +1 -1
  273. package/dist/repl/history/output-store.d.ts.map +1 -1
  274. package/dist/repl/history/output-store.js +6 -3
  275. package/dist/repl/history/output-store.js.map +1 -1
  276. package/dist/repl/input/autocomplete-provider.d.ts.map +1 -1
  277. package/dist/repl/input/autocomplete-provider.js +1 -2
  278. package/dist/repl/input/autocomplete-provider.js.map +1 -1
  279. package/dist/repl/input/completer.d.ts +0 -2
  280. package/dist/repl/input/completer.d.ts.map +1 -1
  281. package/dist/repl/input/completer.js +9 -7
  282. package/dist/repl/input/completer.js.map +1 -1
  283. package/dist/repl/input/ghost-text.d.ts +1 -1
  284. package/dist/repl/input/ghost-text.d.ts.map +1 -1
  285. package/dist/repl/input/ghost-text.js +1 -1
  286. package/dist/repl/input/ghost-text.js.map +1 -1
  287. package/dist/repl/input/input-handler.d.ts.map +1 -1
  288. package/dist/repl/input/input-handler.js +21 -15
  289. package/dist/repl/input/input-handler.js.map +1 -1
  290. package/dist/repl/input/keybindings.d.ts +0 -5
  291. package/dist/repl/input/keybindings.d.ts.map +1 -1
  292. package/dist/repl/input/keybindings.js +0 -65
  293. package/dist/repl/input/keybindings.js.map +1 -1
  294. package/dist/repl/loop.d.ts +1 -2
  295. package/dist/repl/loop.d.ts.map +1 -1
  296. package/dist/repl/loop.js +14 -14
  297. package/dist/repl/loop.js.map +1 -1
  298. package/dist/repl/registry.d.ts +28 -20
  299. package/dist/repl/registry.d.ts.map +1 -1
  300. package/dist/repl/registry.js +229 -171
  301. package/dist/repl/registry.js.map +1 -1
  302. package/dist/repl/service.d.ts +1 -10
  303. package/dist/repl/service.d.ts.map +1 -1
  304. package/dist/repl/service.js +15 -26
  305. package/dist/repl/service.js.map +1 -1
  306. package/dist/repl/ui/components/curl-panel.js +4 -4
  307. package/dist/repl/ui/components/curl-panel.js.map +1 -1
  308. package/dist/repl/ui/components/ghost-text-editor.d.ts +4 -0
  309. package/dist/repl/ui/components/ghost-text-editor.d.ts.map +1 -1
  310. package/dist/repl/ui/components/ghost-text-editor.js +17 -6
  311. package/dist/repl/ui/components/ghost-text-editor.js.map +1 -1
  312. package/dist/repl/ui/components/history-component.d.ts.map +1 -1
  313. package/dist/repl/ui/components/history-component.js +7 -69
  314. package/dist/repl/ui/components/history-component.js.map +1 -1
  315. package/dist/repl/ui/components/progress-bar.js.map +1 -1
  316. package/dist/repl/ui/components/status-bar-line.js +1 -1
  317. package/dist/repl/ui/components/status-bar-line.js.map +1 -1
  318. package/dist/repl/ui/data.js +3 -3
  319. package/dist/repl/ui/data.js.map +1 -1
  320. package/dist/repl/ui/hint-state.d.ts +0 -1
  321. package/dist/repl/ui/hint-state.d.ts.map +1 -1
  322. package/dist/repl/ui/hint-state.js +1 -1
  323. package/dist/repl/ui/hint-state.js.map +1 -1
  324. package/dist/repl/ui/selection-utils.d.ts +28 -0
  325. package/dist/repl/ui/selection-utils.d.ts.map +1 -0
  326. package/dist/repl/ui/selection-utils.js +70 -0
  327. package/dist/repl/ui/selection-utils.js.map +1 -0
  328. package/dist/repl/ui/status-bar.d.ts +1 -4
  329. package/dist/repl/ui/status-bar.d.ts.map +1 -1
  330. package/dist/repl/ui/status-bar.js +6 -33
  331. package/dist/repl/ui/status-bar.js.map +1 -1
  332. package/dist/runtime/async-utils.d.ts +16 -0
  333. package/dist/runtime/async-utils.d.ts.map +1 -0
  334. package/dist/runtime/async-utils.js +40 -0
  335. package/dist/runtime/async-utils.js.map +1 -0
  336. package/dist/runtime/clipboard-win32.d.ts.map +1 -1
  337. package/dist/runtime/clipboard-win32.js +2 -1
  338. package/dist/runtime/clipboard-win32.js.map +1 -1
  339. package/dist/runtime/clipboard.d.ts.map +1 -1
  340. package/dist/runtime/clipboard.js +6 -2
  341. package/dist/runtime/clipboard.js.map +1 -1
  342. package/dist/runtime/external-transport.d.ts.map +1 -1
  343. package/dist/runtime/external-transport.js +1 -1
  344. package/dist/runtime/external-transport.js.map +1 -1
  345. package/dist/runtime/file-args.d.ts +38 -0
  346. package/dist/runtime/file-args.d.ts.map +1 -0
  347. package/dist/runtime/file-args.js +133 -0
  348. package/dist/runtime/file-args.js.map +1 -0
  349. package/dist/runtime/platform.d.ts +0 -2
  350. package/dist/runtime/platform.d.ts.map +1 -1
  351. package/dist/runtime/platform.js +0 -6
  352. package/dist/runtime/platform.js.map +1 -1
  353. package/dist/tui/settings-screen.d.ts +1 -13
  354. package/dist/tui/settings-screen.d.ts.map +1 -1
  355. package/dist/tui/settings-screen.js +46 -34
  356. package/dist/tui/settings-screen.js.map +1 -1
  357. package/dist/version.d.ts.map +1 -1
  358. package/dist/version.js +3 -2
  359. package/dist/version.js.map +1 -1
  360. package/examples/sample.tmx +6 -0
  361. package/package.json +18 -7
@@ -3,14 +3,11 @@ import { type SSEEvent } from "./sse-models.ts";
3
3
  * SSE client with automatic reconnection and token refresh.
4
4
  *
5
5
  * Features:
6
- * - Bearer auth via headers (not URL query param)
6
+ * - Bearer auth via custom fetch wrapper
7
7
  * - Exponential backoff reconnection (1s, 2s, 4s)
8
- * - Heartbeat timeout detection (30s)
8
+ * - Heartbeat timeout detection (30s via AbortController)
9
9
  * - Last-Event-ID reconnection protocol
10
10
  * - Proactive token refresh before connect + reactive refresh on 401
11
- *
12
- * Note: Got afterResponse hooks are ignored for Stream API,
13
- * so token refresh is handled manually at this level.
14
11
  */
15
12
  export declare class SSEClient {
16
13
  private readonly baseUrl;
@@ -23,29 +20,26 @@ export declare class SSEClient {
23
20
  *
24
21
  * @param jobId - Job ID to track
25
22
  * @param onEvent - Callback for connected/progress events
23
+ * @param signal - External abort signal (e.g. Ctrl+C) for immediate cancellation
26
24
  * @returns Terminal event (complete/error/cancelled) or null for polling fallback
27
25
  */
28
- streamJobEvents(jobId: string, onEvent: (event: SSEEvent) => void): Promise<SSEEvent | null>;
26
+ streamJobEvents(jobId: string, onEvent: (event: SSEEvent) => void, signal?: AbortSignal): Promise<SSEEvent | null>;
29
27
  /**
30
- * Connect to SSE stream and process events.
28
+ * Connect to SSE stream once and process events.
31
29
  *
32
- * Uses a settled guard to prevent double-settlement: Node.js stream.destroy()
33
- * doesn't guarantee buffered data events won't fire after destroy is called.
30
+ * Uses AbortController for heartbeat timeout: if no message arrives within
31
+ * SSE_HEARTBEAT_TIMEOUT seconds, the connection is aborted and the method
32
+ * resolves with undefined (triggering retry in the outer loop).
34
33
  *
34
+ * @param signal - External abort signal for immediate cancellation
35
35
  * @returns SSEEvent for terminal events, null for fallback, undefined for retry
36
36
  */
37
- private connectAndStream;
37
+ private connectOnce;
38
38
  /**
39
39
  * Dispatch a parsed SSE event to callback or return terminal event.
40
40
  *
41
41
  * @returns SSEEvent for terminal, null for fallback, undefined to continue
42
42
  */
43
43
  private dispatchEvent;
44
- /**
45
- * Classify error to determine retry strategy.
46
- *
47
- * @returns "retry" to retry with backoff, "fallback" to return null
48
- */
49
- private classifyError;
50
44
  }
51
45
  //# sourceMappingURL=sse-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sse-client.d.ts","sourceRoot":"","sources":["../../src/api/sse-client.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AAwF/D;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,iBAAiB,CAAK;gBAElB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC;IAK/D;;;;;;OAMG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GACjC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAoC3B;;;;;;;OAOG;YACW,gBAAgB;IAiG9B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAoDrB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAmBtB"}
1
+ {"version":3,"file":"sse-client.d.ts","sourceRoot":"","sources":["../../src/api/sse-client.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AAkB/D;;;;;;;;;GASG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,iBAAiB,CAAK;gBAElB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC;IAK/D;;;;;;;OAOG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAmC3B;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IAyJnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CA8CtB"}
@@ -1,74 +1,18 @@
1
1
  // See API-481: SSE Client with Reconnection
2
- // Streams SSE events from /v1/jobs/{job_id}/events with Bearer auth.
3
- // Uses got.stream() for custom headers (native EventSource lacks header support).
4
- // Manual text/event-stream parser per WHATWG SSE spec.
2
+ // Uses eventsource-client (MIT, async iterators, custom fetch) for SSE parsing.
3
+ // Custom fetch wrapper handles Bearer auth, 401 refresh, 404/503 fallback.
5
4
  //
6
5
  // Reconnection: exponential backoff (1s, 2s, 4s) + jitter, max 3 retries.
7
- // Heartbeat timeout: 30s read timeout detects silent disconnections.
6
+ // Heartbeat timeout: 30s AbortController detects silent disconnections.
8
7
  // Last-Event-ID: sent on reconnect for server-side event replay.
9
- import got, { HTTPError, RequestError } from "got";
8
+ import { createEventSource, } from "eventsource-client";
10
9
  import { getAccessToken, isTokenExpired } from "../config/credentials.js";
11
10
  import { getLogger } from "../logging/index.js";
12
11
  import { getSettings } from "../config/settings.js";
13
- import { BEARER_PREFIX, CONTENT_TYPE_SSE, Endpoint, HEADER_ACCEPT, HEADER_AUTHORIZATION, HEADER_LAST_EVENT_ID, HttpStatus, SSE_BACKOFF_JITTER_MS, SSE_BACKOFF_MAX_MS, SSE_HEARTBEAT_TIMEOUT, SSE_RETRY_ATTEMPTS, SSEEventType, } from "../constants.js";
12
+ import { sleep } from "../runtime/async-utils.js";
13
+ import { BEARER_PREFIX, CONTENT_TYPE_SSE, Endpoint, HEADER_ACCEPT, HEADER_AUTHORIZATION, HttpStatus, SSE_BACKOFF_JITTER_MS, SSE_BACKOFF_MAX_MS, SSE_HEARTBEAT_TIMEOUT, SSE_RETRY_ATTEMPTS, SSEEventType, } from "../constants.js";
14
14
  import { parseSSEEvent } from "./sse-models.js";
15
15
  const log = getLogger(import.meta.url);
16
- /**
17
- * Parse a single SSE field line per WHATWG spec.
18
- * Lines are "field: value" or "field:value" (space after colon is optional).
19
- *
20
- * @returns true if the line was a blank line (event dispatch trigger)
21
- */
22
- function parseSSELine(line, fields) {
23
- // Blank line = dispatch event
24
- if (line === "")
25
- return true;
26
- // Comment lines (start with colon)
27
- if (line.startsWith(":"))
28
- return false;
29
- const colonIdx = line.indexOf(":");
30
- let field;
31
- let value;
32
- if (colonIdx === -1) {
33
- // No colon: field name is entire line, value is empty
34
- field = line;
35
- value = "";
36
- }
37
- else {
38
- field = line.slice(0, colonIdx);
39
- // Skip single leading space after colon (per spec)
40
- value = line[colonIdx + 1] === " " ? line.slice(colonIdx + 2) : line.slice(colonIdx + 1);
41
- }
42
- switch (field) {
43
- case "event":
44
- fields.event = value;
45
- break;
46
- case "data":
47
- fields.data.push(value);
48
- break;
49
- case "id":
50
- // Spec: id field must not contain null character
51
- if (!value.includes("\0")) {
52
- fields.id = value;
53
- }
54
- break;
55
- case "retry": {
56
- const parsed = parseInt(value, 10);
57
- if (!isNaN(parsed) && parsed >= 0) {
58
- fields.retry = parsed;
59
- }
60
- break;
61
- }
62
- // Unknown fields: ignore (per spec)
63
- }
64
- return false;
65
- }
66
- /**
67
- * Create fresh SSE fields accumulator.
68
- */
69
- function createEmptyFields() {
70
- return { event: "", data: [], id: "", retry: undefined };
71
- }
72
16
  // --- Backoff ---
73
17
  /**
74
18
  * Calculate backoff delay with jitter.
@@ -84,14 +28,11 @@ function backoffDelay(attempt) {
84
28
  * SSE client with automatic reconnection and token refresh.
85
29
  *
86
30
  * Features:
87
- * - Bearer auth via headers (not URL query param)
31
+ * - Bearer auth via custom fetch wrapper
88
32
  * - Exponential backoff reconnection (1s, 2s, 4s)
89
- * - Heartbeat timeout detection (30s)
33
+ * - Heartbeat timeout detection (30s via AbortController)
90
34
  * - Last-Event-ID reconnection protocol
91
35
  * - Proactive token refresh before connect + reactive refresh on 401
92
- *
93
- * Note: Got afterResponse hooks are ignored for Stream API,
94
- * so token refresh is handled manually at this level.
95
36
  */
96
37
  export class SSEClient {
97
38
  baseUrl;
@@ -107,33 +48,34 @@ export class SSEClient {
107
48
  *
108
49
  * @param jobId - Job ID to track
109
50
  * @param onEvent - Callback for connected/progress events
51
+ * @param signal - External abort signal (e.g. Ctrl+C) for immediate cancellation
110
52
  * @returns Terminal event (complete/error/cancelled) or null for polling fallback
111
53
  */
112
- async streamJobEvents(jobId, onEvent) {
54
+ async streamJobEvents(jobId, onEvent, signal) {
113
55
  const url = `${this.baseUrl}${Endpoint.JOB_SSE_EVENTS.replace("{job_id}", jobId)}`;
114
56
  for (let attempt = 0; attempt < SSE_RETRY_ATTEMPTS; attempt++) {
57
+ // Fast-path: bail immediately if already aborted
58
+ if (signal?.aborted)
59
+ return null;
115
60
  log.debug("SSE connecting", { jobId, attempt: String(attempt) });
116
61
  // Apply server reconnection delay if set
117
62
  if (this.reconnectionDelay > 0) {
118
- await sleep(this.reconnectionDelay);
63
+ await sleep(this.reconnectionDelay, signal).catch(() => { });
119
64
  this.reconnectionDelay = 0;
65
+ if (signal?.aborted)
66
+ return null;
120
67
  }
121
68
  try {
122
- const result = await this.connectAndStream(url, onEvent);
69
+ const result = await this.connectOnce(url, onEvent, signal);
123
70
  if (result !== undefined) {
124
71
  return result;
125
72
  }
126
73
  // undefined = stream ended without terminal event, retry
127
74
  }
128
- catch (error) {
129
- const action = this.classifyError(error);
130
- if (action === "fallback") {
131
- log.debug("SSE unavailable, fallback to polling", { jobId });
132
- return null;
133
- }
134
- // action === "retry": apply backoff before next attempt
135
- log.debug("SSE error, retrying", { jobId, attempt: String(attempt), error: String(error) });
136
- await sleep(backoffDelay(attempt));
75
+ catch {
76
+ // All errors are retryable (404/503 fallback handled inside connectOnce via shouldFallback)
77
+ log.debug("SSE error, retrying", { jobId, attempt: String(attempt) });
78
+ await sleep(backoffDelay(attempt), signal).catch(() => { });
137
79
  continue;
138
80
  }
139
81
  }
@@ -142,95 +84,145 @@ export class SSEClient {
142
84
  return null;
143
85
  }
144
86
  /**
145
- * Connect to SSE stream and process events.
87
+ * Connect to SSE stream once and process events.
146
88
  *
147
- * Uses a settled guard to prevent double-settlement: Node.js stream.destroy()
148
- * doesn't guarantee buffered data events won't fire after destroy is called.
89
+ * Uses AbortController for heartbeat timeout: if no message arrives within
90
+ * SSE_HEARTBEAT_TIMEOUT seconds, the connection is aborted and the method
91
+ * resolves with undefined (triggering retry in the outer loop).
149
92
  *
93
+ * @param signal - External abort signal for immediate cancellation
150
94
  * @returns SSEEvent for terminal events, null for fallback, undefined for retry
151
95
  */
152
- async connectAndStream(url, onEvent) {
153
- // Proactive: refresh expired token before connecting
154
- if (isTokenExpired()) {
155
- await this.tryRefresh();
156
- }
157
- const headers = {
158
- [HEADER_ACCEPT]: CONTENT_TYPE_SSE,
159
- [HEADER_AUTHORIZATION]: `${BEARER_PREFIX} ${getAccessToken()}`,
160
- };
161
- if (this.lastEventId) {
162
- headers[HEADER_LAST_EVENT_ID] = this.lastEventId;
163
- }
164
- const settings = getSettings();
165
- const stream = got.stream(url, {
166
- headers,
167
- timeout: {
168
- connect: settings.api.connect_timeout * 1000,
169
- read: SSE_HEARTBEAT_TIMEOUT * 1000,
170
- send: settings.api.write_timeout * 1000,
171
- },
172
- retry: { limit: 0 }, // We handle retries ourselves
173
- throwHttpErrors: false, // We check status manually
174
- });
175
- return new Promise((resolve, reject) => {
96
+ connectOnce(url, onEvent, signal) {
97
+ return new Promise((resolve) => {
176
98
  let settled = false;
177
- let fields = createEmptyFields();
178
- let buffer = "";
179
- // Unified settlement: guard against double resolve/reject after stream.destroy()
180
- const settle = (fn, value) => {
99
+ let client = null;
100
+ // Heartbeat: abort if no message within timeout
101
+ const heartbeatMs = SSE_HEARTBEAT_TIMEOUT * 1000;
102
+ let heartbeatTimer = null;
103
+ const resetHeartbeat = () => {
104
+ if (heartbeatTimer)
105
+ clearTimeout(heartbeatTimer);
106
+ heartbeatTimer = setTimeout(() => {
107
+ log.debug("SSE heartbeat timeout");
108
+ settle();
109
+ }, heartbeatMs);
110
+ };
111
+ const settle = (value) => {
181
112
  if (settled)
182
113
  return;
183
114
  settled = true;
184
- stream.destroy();
185
- fn(value);
115
+ if (heartbeatTimer)
116
+ clearTimeout(heartbeatTimer);
117
+ client?.close();
118
+ resolve(value);
186
119
  };
187
- stream.on("response", (response) => {
188
- const sc = response.statusCode;
189
- if (sc === HttpStatus.NOT_FOUND || sc === HttpStatus.SERVICE_UNAVAILABLE) {
190
- settle(resolve, null);
191
- return;
192
- }
193
- if (sc === HttpStatus.UNAUTHORIZED) {
194
- // Reactive: refresh token and signal retry via undefined
195
- this.tryRefresh()
196
- .then((refreshed) => {
197
- settle(resolve, refreshed ? undefined : null);
198
- })
199
- .catch(() => {
200
- settle(resolve, null);
201
- });
120
+ // External abort: settle immediately on Ctrl+C
121
+ if (signal) {
122
+ if (signal.aborted) {
123
+ resolve(null);
202
124
  return;
203
125
  }
204
- if (sc && sc >= 400) {
205
- settle(reject, new Error(`SSE HTTP error: ${sc}`));
206
- return;
126
+ signal.addEventListener("abort", () => {
127
+ settle(null);
128
+ }, { once: true });
129
+ }
130
+ // Track whether we should fallback (set by custom fetch on 404/503)
131
+ let shouldFallback = false;
132
+ // Custom fetch: Bearer auth, 401 refresh, 404/503 detection
133
+ const sseAuthFetch = async (fetchUrl, init) => {
134
+ // Proactive: refresh expired token before connecting
135
+ if (isTokenExpired()) {
136
+ await this.tryRefresh();
207
137
  }
208
- });
209
- stream.on("data", (chunk) => {
210
- if (settled)
211
- return; // Guard against buffered chunks after destroy
212
- buffer += chunk.toString("utf-8");
213
- const lines = buffer.split("\n");
214
- buffer = lines.pop() ?? "";
215
- for (const rawLine of lines) {
216
- const line = rawLine.endsWith("\r") ? rawLine.slice(0, -1) : rawLine;
217
- const shouldDispatch = parseSSELine(line, fields);
218
- if (shouldDispatch) {
219
- const result = this.dispatchEvent(fields, onEvent);
220
- fields = createEmptyFields();
221
- if (result !== undefined) {
222
- settle(resolve, result);
223
- return;
138
+ const settings = getSettings();
139
+ const headers = {
140
+ [HEADER_ACCEPT]: CONTENT_TYPE_SSE,
141
+ [HEADER_AUTHORIZATION]: `${BEARER_PREFIX} ${getAccessToken()}`,
142
+ ...init?.headers,
143
+ };
144
+ const controller = new AbortController();
145
+ const connectTimeout = globalThis.setTimeout(() => {
146
+ controller.abort();
147
+ }, settings.api.connect_timeout * 1000);
148
+ // Compose: external signal + connect timeout + library's init.signal
149
+ const signals = [controller.signal];
150
+ if (signal)
151
+ signals.push(signal);
152
+ if (init?.signal)
153
+ signals.push(init.signal);
154
+ const composedSignal = AbortSignal.any(signals);
155
+ try {
156
+ const response = await fetch(fetchUrl, {
157
+ ...init,
158
+ headers,
159
+ signal: composedSignal,
160
+ });
161
+ clearTimeout(connectTimeout);
162
+ const sc = response.status;
163
+ // 404/503: SSE not available, signal polling fallback
164
+ if (sc === HttpStatus.NOT_FOUND || sc === HttpStatus.SERVICE_UNAVAILABLE) {
165
+ shouldFallback = true;
166
+ return response;
167
+ }
168
+ // 401: reactive token refresh
169
+ if (sc === HttpStatus.UNAUTHORIZED) {
170
+ const refreshed = await this.tryRefresh();
171
+ if (!refreshed) {
172
+ shouldFallback = true;
173
+ return response;
224
174
  }
175
+ // Retry with fresh token
176
+ return await fetch(fetchUrl, {
177
+ ...init,
178
+ headers: {
179
+ ...headers,
180
+ [HEADER_AUTHORIZATION]: `${BEARER_PREFIX} ${getAccessToken()}`,
181
+ },
182
+ signal: composedSignal,
183
+ });
225
184
  }
185
+ return response;
226
186
  }
187
+ catch (error) {
188
+ clearTimeout(connectTimeout);
189
+ throw error;
190
+ }
191
+ };
192
+ client = createEventSource({
193
+ url,
194
+ fetch: sseAuthFetch,
195
+ initialLastEventId: this.lastEventId || undefined,
196
+ headers: {}, // Headers managed by custom fetch
197
+ onMessage: (msg) => {
198
+ if (settled)
199
+ return;
200
+ resetHeartbeat();
201
+ const result = this.dispatchEvent(msg, onEvent);
202
+ if (result !== undefined) {
203
+ settle(result);
204
+ }
205
+ },
206
+ onScheduleReconnect: ({ delay }) => {
207
+ // Honor server retry: directive in our external retry loop
208
+ this.reconnectionDelay = delay;
209
+ // Prevent library's internal reconnect — we manage retries ourselves
210
+ client?.close();
211
+ },
212
+ onDisconnect: () => {
213
+ if (settled)
214
+ return;
215
+ if (shouldFallback) {
216
+ settle(null);
217
+ }
218
+ else {
219
+ // Stream ended without terminal event — retry
220
+ settle();
221
+ }
222
+ },
227
223
  });
228
- stream.on("error", (error) => {
229
- settle(reject, error);
230
- });
231
- stream.on("end", () => {
232
- settle(resolve, undefined);
233
- });
224
+ // Start heartbeat timer
225
+ resetHeartbeat();
234
226
  });
235
227
  }
236
228
  /**
@@ -238,72 +230,41 @@ export class SSEClient {
238
230
  *
239
231
  * @returns SSEEvent for terminal, null for fallback, undefined to continue
240
232
  */
241
- dispatchEvent(fields, onEvent) {
233
+ dispatchEvent(msg, onEvent) {
242
234
  // Track Last-Event-ID for reconnection
243
- if (fields.id) {
244
- this.lastEventId = fields.id;
245
- }
246
- // Track server retry field (milliseconds -> milliseconds)
247
- if (fields.retry !== undefined) {
248
- this.reconnectionDelay = fields.retry;
235
+ if (msg.id) {
236
+ this.lastEventId = msg.id;
249
237
  }
238
+ const eventType = msg.event ?? "";
250
239
  // Skip ping/heartbeat and empty data
251
- if (fields.event === SSEEventType.PING || fields.data.length === 0) {
240
+ if (eventType === SSEEventType.PING || !msg.data) {
252
241
  log.debug("SSE ping/heartbeat");
253
242
  return undefined;
254
243
  }
255
- // Multi-line data: concatenate with newline per spec
256
- const dataStr = fields.data.join("\n");
257
244
  let data;
258
245
  try {
259
- data = JSON.parse(dataStr);
246
+ data = JSON.parse(msg.data);
260
247
  }
261
248
  catch {
262
- log.debug("SSE malformed JSON", { event: fields.event, data: dataStr });
249
+ log.debug("SSE malformed JSON", { event: eventType, data: msg.data });
263
250
  return undefined;
264
251
  }
265
- const event = parseSSEEvent(fields.event, data);
252
+ const event = parseSSEEvent(eventType, data);
266
253
  if (event === null) {
267
- log.debug("SSE parse failed", { event: fields.event, data: dataStr });
254
+ log.debug("SSE parse failed", { event: eventType, data: msg.data });
268
255
  return undefined;
269
256
  }
270
257
  // Terminal events: complete, error, cancelled
271
- if (fields.event === SSEEventType.COMPLETE ||
272
- fields.event === SSEEventType.ERROR ||
273
- fields.event === SSEEventType.CANCELLED) {
274
- log.debug("SSE terminal", { event: fields.event });
258
+ if (eventType === SSEEventType.COMPLETE ||
259
+ eventType === SSEEventType.ERROR ||
260
+ eventType === SSEEventType.CANCELLED) {
261
+ log.debug("SSE terminal", { event: eventType });
275
262
  return event;
276
263
  }
277
264
  // Connected/Progress events: dispatch to callback
278
- log.debug("SSE event", { event: fields.event, data: dataStr });
265
+ log.debug("SSE event", { event: eventType, data: msg.data });
279
266
  onEvent(event);
280
267
  return undefined;
281
268
  }
282
- /**
283
- * Classify error to determine retry strategy.
284
- *
285
- * @returns "retry" to retry with backoff, "fallback" to return null
286
- */
287
- classifyError(error) {
288
- if (error instanceof HTTPError) {
289
- const status = error.response.statusCode;
290
- // 404/503: SSE not available
291
- if (status === HttpStatus.NOT_FOUND || status === HttpStatus.SERVICE_UNAVAILABLE)
292
- return "fallback";
293
- }
294
- // Timeout errors: retry (heartbeat timeout)
295
- if (error instanceof RequestError) {
296
- const code = error.code;
297
- if (code === "ERR_SOCKET_TIMEOUT" || code === "ETIMEDOUT") {
298
- return "retry";
299
- }
300
- }
301
- // Network errors: retry
302
- return "retry";
303
- }
304
- }
305
- /** Promise-based sleep utility. */
306
- function sleep(ms) {
307
- return new Promise((resolve) => setTimeout(resolve, ms));
308
269
  }
309
270
  //# sourceMappingURL=sse-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sse-client.js","sourceRoot":"","sources":["../../src/api/sse-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse-client.js","sourceRoot":"","sources":["../../src/api/sse-client.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  // See API-478: SSE Event Models (Zod Schemas)
2
2
  // Schema-first design: Zod schemas define runtime validation + TypeScript types.
3
3
  //
4
- // Pattern: z.object() (lenient) because server may add fields (matches Python extra="ignore").
4
+ // Pattern: z.object() (lenient) because server may add fields.
5
5
  // Discriminated parse: SSEEventType string selects correct schema at runtime.
6
6
  import { z } from "zod";
7
7
  import { JobStatus, SSEEventType } from "../constants.js";
@@ -1 +1 @@
1
- {"version":3,"file":"sse-models.js","sourceRoot":"","sources":["../../src/api/sse-models.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,iFAAiF;AACjF,EAAE;AACF,+FAA+F;AAC/F,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1D,4BAA4B;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;CAC9C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;CAChD,CAAC,CAAC;AAkBH,sCAAsC;AAEtC,MAAM,gBAAgB,GAAuC;IAC3D,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;IACjD,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,sBAAsB;IAC/C,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,sBAAsB;IAC/C,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,mBAAmB;IACzC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;CAClD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,IAAa;IAC5D,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,IAAgB,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"sse-models.js","sourceRoot":"","sources":["../../src/api/sse-models.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,iFAAiF;AACjF,EAAE;AACF,+DAA+D;AAC/D,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1D,4BAA4B;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;CAC9C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;CAChD,CAAC,CAAC;AAkBH,sCAAsC;AAEtC,MAAM,gBAAgB,GAAuC;IAC3D,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;IACjD,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,sBAAsB;IAC/C,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,sBAAsB;IAC/C,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,mBAAmB;IACzC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,uBAAuB;CAClD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,IAAa;IAC5D,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,IAAgB,CAAC;AACjC,CAAC"}
package/dist/api/trace.js CHANGED
@@ -11,6 +11,6 @@ import { randomUUID } from "node:crypto";
11
11
  * Example: "a3f5c8d2"
12
12
  */
13
13
  export function generateTraceId() {
14
- return randomUUID().replace(/-/g, "").slice(0, 8);
14
+ return randomUUID().replaceAll("-", "").slice(0, 8);
15
15
  }
16
16
  //# sourceMappingURL=trace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/api/trace.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,iDAAiD;AACjD,4EAA4E;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/api/trace.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,iDAAiD;AACjD,4EAA4E;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC"}