@trigger.dev/core 4.4.5 → 4.5.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/dist/commonjs/v3/apiClient/errors.d.ts +5 -0
  2. package/dist/commonjs/v3/apiClient/errors.js +12 -0
  3. package/dist/commonjs/v3/apiClient/errors.js.map +1 -1
  4. package/dist/commonjs/v3/apiClient/index.d.ts +208 -1
  5. package/dist/commonjs/v3/apiClient/index.js +204 -0
  6. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  7. package/dist/commonjs/v3/apiClient/runStream.d.ts +44 -0
  8. package/dist/commonjs/v3/apiClient/runStream.js +156 -22
  9. package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
  10. package/dist/commonjs/v3/apiClient/runStream.test.d.ts +1 -0
  11. package/dist/commonjs/v3/apiClient/runStream.test.js +511 -0
  12. package/dist/commonjs/v3/apiClient/runStream.test.js.map +1 -0
  13. package/dist/commonjs/v3/apiClient/types.d.ts +2 -0
  14. package/dist/commonjs/v3/auth/environment.d.ts +62 -0
  15. package/dist/commonjs/v3/auth/environment.js +20 -0
  16. package/dist/commonjs/v3/auth/environment.js.map +1 -0
  17. package/dist/commonjs/v3/errors.d.ts +7 -0
  18. package/dist/commonjs/v3/errors.js +36 -2
  19. package/dist/commonjs/v3/errors.js.map +1 -1
  20. package/dist/commonjs/v3/index.d.ts +2 -1
  21. package/dist/commonjs/v3/index.js +1 -0
  22. package/dist/commonjs/v3/index.js.map +1 -1
  23. package/dist/commonjs/v3/inputStreams/index.d.ts +3 -0
  24. package/dist/commonjs/v3/inputStreams/index.js +9 -0
  25. package/dist/commonjs/v3/inputStreams/index.js.map +1 -1
  26. package/dist/commonjs/v3/inputStreams/manager.d.ts +14 -0
  27. package/dist/commonjs/v3/inputStreams/manager.js +116 -4
  28. package/dist/commonjs/v3/inputStreams/manager.js.map +1 -1
  29. package/dist/commonjs/v3/inputStreams/noopManager.d.ts +3 -0
  30. package/dist/commonjs/v3/inputStreams/noopManager.js +3 -0
  31. package/dist/commonjs/v3/inputStreams/noopManager.js.map +1 -1
  32. package/dist/commonjs/v3/inputStreams/types.d.ts +19 -0
  33. package/dist/commonjs/v3/links.d.ts +1 -0
  34. package/dist/commonjs/v3/links.js +1 -0
  35. package/dist/commonjs/v3/links.js.map +1 -1
  36. package/dist/commonjs/v3/locals/manager.js.map +1 -1
  37. package/dist/commonjs/v3/locals/types.d.ts +18 -7
  38. package/dist/commonjs/v3/realtime-streams-api.d.ts +3 -0
  39. package/dist/commonjs/v3/realtime-streams-api.js +8 -1
  40. package/dist/commonjs/v3/realtime-streams-api.js.map +1 -1
  41. package/dist/commonjs/v3/realtimeStreams/index.d.ts +3 -0
  42. package/dist/commonjs/v3/realtimeStreams/index.js +11 -1
  43. package/dist/commonjs/v3/realtimeStreams/index.js.map +1 -1
  44. package/dist/commonjs/v3/realtimeStreams/manager.d.ts +11 -0
  45. package/dist/commonjs/v3/realtimeStreams/manager.js +58 -2
  46. package/dist/commonjs/v3/realtimeStreams/manager.js.map +1 -1
  47. package/dist/commonjs/v3/realtimeStreams/manager.test.d.ts +1 -0
  48. package/dist/commonjs/v3/realtimeStreams/manager.test.js +92 -0
  49. package/dist/commonjs/v3/realtimeStreams/manager.test.js.map +1 -0
  50. package/dist/commonjs/v3/realtimeStreams/noopManager.js +1 -1
  51. package/dist/commonjs/v3/realtimeStreams/noopManager.js.map +1 -1
  52. package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.d.ts +41 -0
  53. package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.js +77 -0
  54. package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.js.map +1 -0
  55. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.d.ts +45 -0
  56. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js +83 -0
  57. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -0
  58. package/dist/commonjs/v3/realtimeStreams/streamInstance.d.ts +14 -2
  59. package/dist/commonjs/v3/realtimeStreams/streamInstance.js +5 -2
  60. package/dist/commonjs/v3/realtimeStreams/streamInstance.js.map +1 -1
  61. package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.d.ts +2 -2
  62. package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js +2 -1
  63. package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js.map +1 -1
  64. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.d.ts +23 -2
  65. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js +57 -4
  66. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
  67. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.d.ts +1 -0
  68. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js +68 -0
  69. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js.map +1 -0
  70. package/dist/commonjs/v3/realtimeStreams/types.d.ts +42 -3
  71. package/dist/commonjs/v3/resource-catalog/catalog.d.ts +4 -1
  72. package/dist/commonjs/v3/resource-catalog/index.d.ts +4 -1
  73. package/dist/commonjs/v3/resource-catalog/index.js +9 -0
  74. package/dist/commonjs/v3/resource-catalog/index.js.map +1 -1
  75. package/dist/commonjs/v3/resource-catalog/noopResourceCatalog.d.ts +4 -1
  76. package/dist/commonjs/v3/resource-catalog/noopResourceCatalog.js +9 -0
  77. package/dist/commonjs/v3/resource-catalog/noopResourceCatalog.js.map +1 -1
  78. package/dist/commonjs/v3/resource-catalog/standardResourceCatalog.d.ts +6 -1
  79. package/dist/commonjs/v3/resource-catalog/standardResourceCatalog.js +52 -4
  80. package/dist/commonjs/v3/resource-catalog/standardResourceCatalog.js.map +1 -1
  81. package/dist/commonjs/v3/runEngineWorker/supervisor/http.d.ts +2 -0
  82. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +21 -7
  83. package/dist/commonjs/v3/runEngineWorker/workload/http.d.ts +1 -0
  84. package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +14 -7
  85. package/dist/commonjs/v3/schemas/api.d.ts +338 -5
  86. package/dist/commonjs/v3/schemas/api.js +82 -9
  87. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  88. package/dist/commonjs/v3/schemas/build.d.ts +240 -0
  89. package/dist/commonjs/v3/schemas/build.js +3 -0
  90. package/dist/commonjs/v3/schemas/build.js.map +1 -1
  91. package/dist/commonjs/v3/schemas/checkpoints.d.ts +7 -0
  92. package/dist/commonjs/v3/schemas/common.d.ts +24 -24
  93. package/dist/commonjs/v3/schemas/common.js +1 -0
  94. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  95. package/dist/commonjs/v3/schemas/idempotencyKey.test.d.ts +1 -0
  96. package/dist/commonjs/v3/schemas/idempotencyKey.test.js +143 -0
  97. package/dist/commonjs/v3/schemas/idempotencyKey.test.js.map +1 -0
  98. package/dist/commonjs/v3/schemas/messages.d.ts +276 -116
  99. package/dist/commonjs/v3/schemas/resources.d.ts +40 -0
  100. package/dist/commonjs/v3/schemas/resources.js +5 -1
  101. package/dist/commonjs/v3/schemas/resources.js.map +1 -1
  102. package/dist/commonjs/v3/schemas/runEngine.d.ts +12 -0
  103. package/dist/commonjs/v3/schemas/runEngine.js +3 -1
  104. package/dist/commonjs/v3/schemas/runEngine.js.map +1 -1
  105. package/dist/commonjs/v3/schemas/schemas.d.ts +59 -0
  106. package/dist/commonjs/v3/schemas/schemas.js +21 -1
  107. package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
  108. package/dist/commonjs/v3/schemas/webhooks.d.ts +16 -16
  109. package/dist/commonjs/v3/semanticInternalAttributes.d.ts +1 -0
  110. package/dist/commonjs/v3/semanticInternalAttributes.js +1 -0
  111. package/dist/commonjs/v3/semanticInternalAttributes.js.map +1 -1
  112. package/dist/commonjs/v3/session-streams-api.d.ts +5 -0
  113. package/dist/commonjs/v3/session-streams-api.js +25 -0
  114. package/dist/commonjs/v3/session-streams-api.js.map +1 -0
  115. package/dist/commonjs/v3/sessionStreams/chatSnapshot.d.ts +53 -0
  116. package/dist/commonjs/v3/sessionStreams/chatSnapshot.js +43 -0
  117. package/dist/commonjs/v3/sessionStreams/chatSnapshot.js.map +1 -0
  118. package/dist/commonjs/v3/sessionStreams/index.d.ts +24 -0
  119. package/dist/commonjs/v3/sessionStreams/index.js +64 -0
  120. package/dist/commonjs/v3/sessionStreams/index.js.map +1 -0
  121. package/dist/commonjs/v3/sessionStreams/manager.d.ts +54 -0
  122. package/dist/commonjs/v3/sessionStreams/manager.js +511 -0
  123. package/dist/commonjs/v3/sessionStreams/manager.js.map +1 -0
  124. package/dist/commonjs/v3/sessionStreams/manager.test.d.ts +1 -0
  125. package/dist/commonjs/v3/sessionStreams/manager.test.js +123 -0
  126. package/dist/commonjs/v3/sessionStreams/manager.test.js.map +1 -0
  127. package/dist/commonjs/v3/sessionStreams/noopManager.d.ts +20 -0
  128. package/dist/commonjs/v3/sessionStreams/noopManager.js +35 -0
  129. package/dist/commonjs/v3/sessionStreams/noopManager.js.map +1 -0
  130. package/dist/commonjs/v3/sessionStreams/types.d.ts +65 -0
  131. package/dist/commonjs/v3/sessionStreams/types.js +7 -0
  132. package/dist/commonjs/v3/sessionStreams/types.js.map +1 -0
  133. package/dist/commonjs/v3/sessionStreams/wireProtocol.d.ts +65 -0
  134. package/dist/commonjs/v3/sessionStreams/wireProtocol.js +72 -0
  135. package/dist/commonjs/v3/sessionStreams/wireProtocol.js.map +1 -0
  136. package/dist/commonjs/v3/taskContext/index.d.ts +4 -0
  137. package/dist/commonjs/v3/taskContext/index.js +18 -0
  138. package/dist/commonjs/v3/taskContext/index.js.map +1 -1
  139. package/dist/commonjs/v3/taskContext/index.test.d.ts +1 -0
  140. package/dist/commonjs/v3/taskContext/index.test.js +73 -0
  141. package/dist/commonjs/v3/taskContext/index.test.js.map +1 -0
  142. package/dist/commonjs/v3/taskContext/otelProcessors.js +11 -0
  143. package/dist/commonjs/v3/taskContext/otelProcessors.js.map +1 -1
  144. package/dist/commonjs/v3/test/index.d.ts +5 -0
  145. package/dist/commonjs/v3/test/index.js +14 -0
  146. package/dist/commonjs/v3/test/index.js.map +1 -0
  147. package/dist/commonjs/v3/test/mock-task-context.d.ts +123 -0
  148. package/dist/commonjs/v3/test/mock-task-context.js +193 -0
  149. package/dist/commonjs/v3/test/mock-task-context.js.map +1 -0
  150. package/dist/commonjs/v3/test/test-input-stream-manager.d.ts +46 -0
  151. package/dist/commonjs/v3/test/test-input-stream-manager.js +192 -0
  152. package/dist/commonjs/v3/test/test-input-stream-manager.js.map +1 -0
  153. package/dist/commonjs/v3/test/test-realtime-streams-manager.d.ts +40 -0
  154. package/dist/commonjs/v3/test/test-realtime-streams-manager.js +140 -0
  155. package/dist/commonjs/v3/test/test-realtime-streams-manager.js.map +1 -0
  156. package/dist/commonjs/v3/test/test-run-metadata-manager.d.ts +31 -0
  157. package/dist/commonjs/v3/test/test-run-metadata-manager.js +86 -0
  158. package/dist/commonjs/v3/test/test-run-metadata-manager.js.map +1 -0
  159. package/dist/commonjs/v3/test/test-session-stream-manager.d.ts +60 -0
  160. package/dist/commonjs/v3/test/test-session-stream-manager.js +247 -0
  161. package/dist/commonjs/v3/test/test-session-stream-manager.js.map +1 -0
  162. package/dist/commonjs/v3/types/tasks.d.ts +35 -0
  163. package/dist/commonjs/v3/utils/gitBranch.d.ts +2 -0
  164. package/dist/commonjs/v3/utils/gitBranch.js +46 -0
  165. package/dist/commonjs/v3/utils/gitBranch.js.map +1 -0
  166. package/dist/commonjs/v3/utils/globals.d.ts +2 -0
  167. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  168. package/dist/commonjs/v3/utils/reconnectBackoff.d.ts +20 -0
  169. package/dist/commonjs/v3/utils/reconnectBackoff.js +29 -0
  170. package/dist/commonjs/v3/utils/reconnectBackoff.js.map +1 -0
  171. package/dist/commonjs/v3/utils/reconnectBackoff.test.d.ts +1 -0
  172. package/dist/commonjs/v3/utils/reconnectBackoff.test.js +76 -0
  173. package/dist/commonjs/v3/utils/reconnectBackoff.test.js.map +1 -0
  174. package/dist/commonjs/v3/workers/index.d.ts +1 -0
  175. package/dist/commonjs/v3/workers/index.js +3 -1
  176. package/dist/commonjs/v3/workers/index.js.map +1 -1
  177. package/dist/commonjs/v3/workers/taskExecutor.js +1 -0
  178. package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
  179. package/dist/commonjs/v3/zodIpc.d.ts +1 -0
  180. package/dist/commonjs/v3/zodIpc.js +13 -1
  181. package/dist/commonjs/v3/zodIpc.js.map +1 -1
  182. package/dist/commonjs/version.js +1 -1
  183. package/dist/esm/v3/apiClient/errors.d.ts +5 -0
  184. package/dist/esm/v3/apiClient/errors.js +11 -0
  185. package/dist/esm/v3/apiClient/errors.js.map +1 -1
  186. package/dist/esm/v3/apiClient/index.d.ts +208 -1
  187. package/dist/esm/v3/apiClient/index.js +205 -1
  188. package/dist/esm/v3/apiClient/index.js.map +1 -1
  189. package/dist/esm/v3/apiClient/runStream.d.ts +44 -0
  190. package/dist/esm/v3/apiClient/runStream.js +157 -23
  191. package/dist/esm/v3/apiClient/runStream.js.map +1 -1
  192. package/dist/esm/v3/apiClient/runStream.test.d.ts +1 -0
  193. package/dist/esm/v3/apiClient/runStream.test.js +509 -0
  194. package/dist/esm/v3/apiClient/runStream.test.js.map +1 -0
  195. package/dist/esm/v3/apiClient/types.d.ts +2 -0
  196. package/dist/esm/v3/auth/environment.d.ts +62 -0
  197. package/dist/esm/v3/auth/environment.js +19 -0
  198. package/dist/esm/v3/auth/environment.js.map +1 -0
  199. package/dist/esm/v3/errors.d.ts +7 -0
  200. package/dist/esm/v3/errors.js +33 -1
  201. package/dist/esm/v3/errors.js.map +1 -1
  202. package/dist/esm/v3/index.d.ts +2 -1
  203. package/dist/esm/v3/index.js +1 -0
  204. package/dist/esm/v3/index.js.map +1 -1
  205. package/dist/esm/v3/inputStreams/index.d.ts +3 -0
  206. package/dist/esm/v3/inputStreams/index.js +9 -0
  207. package/dist/esm/v3/inputStreams/index.js.map +1 -1
  208. package/dist/esm/v3/inputStreams/manager.d.ts +14 -0
  209. package/dist/esm/v3/inputStreams/manager.js +116 -4
  210. package/dist/esm/v3/inputStreams/manager.js.map +1 -1
  211. package/dist/esm/v3/inputStreams/noopManager.d.ts +3 -0
  212. package/dist/esm/v3/inputStreams/noopManager.js +3 -0
  213. package/dist/esm/v3/inputStreams/noopManager.js.map +1 -1
  214. package/dist/esm/v3/inputStreams/types.d.ts +19 -0
  215. package/dist/esm/v3/links.d.ts +1 -0
  216. package/dist/esm/v3/links.js +1 -0
  217. package/dist/esm/v3/links.js.map +1 -1
  218. package/dist/esm/v3/locals/manager.js.map +1 -1
  219. package/dist/esm/v3/locals/types.d.ts +18 -7
  220. package/dist/esm/v3/realtime-streams-api.d.ts +3 -0
  221. package/dist/esm/v3/realtime-streams-api.js +2 -0
  222. package/dist/esm/v3/realtime-streams-api.js.map +1 -1
  223. package/dist/esm/v3/realtimeStreams/index.d.ts +3 -0
  224. package/dist/esm/v3/realtimeStreams/index.js +5 -0
  225. package/dist/esm/v3/realtimeStreams/index.js.map +1 -1
  226. package/dist/esm/v3/realtimeStreams/manager.d.ts +11 -0
  227. package/dist/esm/v3/realtimeStreams/manager.js +58 -2
  228. package/dist/esm/v3/realtimeStreams/manager.js.map +1 -1
  229. package/dist/esm/v3/realtimeStreams/manager.test.d.ts +1 -0
  230. package/dist/esm/v3/realtimeStreams/manager.test.js +90 -0
  231. package/dist/esm/v3/realtimeStreams/manager.test.js.map +1 -0
  232. package/dist/esm/v3/realtimeStreams/noopManager.js +1 -1
  233. package/dist/esm/v3/realtimeStreams/noopManager.js.map +1 -1
  234. package/dist/esm/v3/realtimeStreams/sessionStreamInstance.d.ts +41 -0
  235. package/dist/esm/v3/realtimeStreams/sessionStreamInstance.js +73 -0
  236. package/dist/esm/v3/realtimeStreams/sessionStreamInstance.js.map +1 -0
  237. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.d.ts +45 -0
  238. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js +77 -0
  239. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -0
  240. package/dist/esm/v3/realtimeStreams/streamInstance.d.ts +14 -2
  241. package/dist/esm/v3/realtimeStreams/streamInstance.js +5 -2
  242. package/dist/esm/v3/realtimeStreams/streamInstance.js.map +1 -1
  243. package/dist/esm/v3/realtimeStreams/streamsWriterV1.d.ts +2 -2
  244. package/dist/esm/v3/realtimeStreams/streamsWriterV1.js +2 -1
  245. package/dist/esm/v3/realtimeStreams/streamsWriterV1.js.map +1 -1
  246. package/dist/esm/v3/realtimeStreams/streamsWriterV2.d.ts +23 -2
  247. package/dist/esm/v3/realtimeStreams/streamsWriterV2.js +56 -4
  248. package/dist/esm/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
  249. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.d.ts +1 -0
  250. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js +66 -0
  251. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js.map +1 -0
  252. package/dist/esm/v3/realtimeStreams/types.d.ts +42 -3
  253. package/dist/esm/v3/resource-catalog/catalog.d.ts +4 -1
  254. package/dist/esm/v3/resource-catalog/index.d.ts +4 -1
  255. package/dist/esm/v3/resource-catalog/index.js +9 -0
  256. package/dist/esm/v3/resource-catalog/index.js.map +1 -1
  257. package/dist/esm/v3/resource-catalog/noopResourceCatalog.d.ts +4 -1
  258. package/dist/esm/v3/resource-catalog/noopResourceCatalog.js +9 -0
  259. package/dist/esm/v3/resource-catalog/noopResourceCatalog.js.map +1 -1
  260. package/dist/esm/v3/resource-catalog/standardResourceCatalog.d.ts +6 -1
  261. package/dist/esm/v3/resource-catalog/standardResourceCatalog.js +52 -4
  262. package/dist/esm/v3/resource-catalog/standardResourceCatalog.js.map +1 -1
  263. package/dist/esm/v3/runEngineWorker/supervisor/http.d.ts +2 -0
  264. package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +21 -7
  265. package/dist/esm/v3/runEngineWorker/workload/http.d.ts +1 -0
  266. package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +14 -7
  267. package/dist/esm/v3/schemas/api.d.ts +338 -5
  268. package/dist/esm/v3/schemas/api.js +80 -7
  269. package/dist/esm/v3/schemas/api.js.map +1 -1
  270. package/dist/esm/v3/schemas/build.d.ts +240 -0
  271. package/dist/esm/v3/schemas/build.js +4 -1
  272. package/dist/esm/v3/schemas/build.js.map +1 -1
  273. package/dist/esm/v3/schemas/checkpoints.d.ts +7 -0
  274. package/dist/esm/v3/schemas/common.d.ts +24 -24
  275. package/dist/esm/v3/schemas/common.js +1 -0
  276. package/dist/esm/v3/schemas/common.js.map +1 -1
  277. package/dist/esm/v3/schemas/idempotencyKey.test.d.ts +1 -0
  278. package/dist/esm/v3/schemas/idempotencyKey.test.js +141 -0
  279. package/dist/esm/v3/schemas/idempotencyKey.test.js.map +1 -0
  280. package/dist/esm/v3/schemas/messages.d.ts +276 -116
  281. package/dist/esm/v3/schemas/resources.d.ts +40 -0
  282. package/dist/esm/v3/schemas/resources.js +4 -0
  283. package/dist/esm/v3/schemas/resources.js.map +1 -1
  284. package/dist/esm/v3/schemas/runEngine.d.ts +12 -0
  285. package/dist/esm/v3/schemas/runEngine.js +2 -0
  286. package/dist/esm/v3/schemas/runEngine.js.map +1 -1
  287. package/dist/esm/v3/schemas/schemas.d.ts +59 -0
  288. package/dist/esm/v3/schemas/schemas.js +20 -0
  289. package/dist/esm/v3/schemas/schemas.js.map +1 -1
  290. package/dist/esm/v3/schemas/webhooks.d.ts +16 -16
  291. package/dist/esm/v3/semanticInternalAttributes.d.ts +1 -0
  292. package/dist/esm/v3/semanticInternalAttributes.js +1 -0
  293. package/dist/esm/v3/semanticInternalAttributes.js.map +1 -1
  294. package/dist/esm/v3/session-streams-api.d.ts +5 -0
  295. package/dist/esm/v3/session-streams-api.js +8 -0
  296. package/dist/esm/v3/session-streams-api.js.map +1 -0
  297. package/dist/esm/v3/sessionStreams/chatSnapshot.d.ts +53 -0
  298. package/dist/esm/v3/sessionStreams/chatSnapshot.js +39 -0
  299. package/dist/esm/v3/sessionStreams/chatSnapshot.js.map +1 -0
  300. package/dist/esm/v3/sessionStreams/index.d.ts +24 -0
  301. package/dist/esm/v3/sessionStreams/index.js +60 -0
  302. package/dist/esm/v3/sessionStreams/index.js.map +1 -0
  303. package/dist/esm/v3/sessionStreams/manager.d.ts +54 -0
  304. package/dist/esm/v3/sessionStreams/manager.js +507 -0
  305. package/dist/esm/v3/sessionStreams/manager.js.map +1 -0
  306. package/dist/esm/v3/sessionStreams/manager.test.d.ts +1 -0
  307. package/dist/esm/v3/sessionStreams/manager.test.js +121 -0
  308. package/dist/esm/v3/sessionStreams/manager.test.js.map +1 -0
  309. package/dist/esm/v3/sessionStreams/noopManager.d.ts +20 -0
  310. package/dist/esm/v3/sessionStreams/noopManager.js +31 -0
  311. package/dist/esm/v3/sessionStreams/noopManager.js.map +1 -0
  312. package/dist/esm/v3/sessionStreams/types.d.ts +65 -0
  313. package/dist/esm/v3/sessionStreams/types.js +8 -0
  314. package/dist/esm/v3/sessionStreams/types.js.map +1 -0
  315. package/dist/esm/v3/sessionStreams/wireProtocol.d.ts +65 -0
  316. package/dist/esm/v3/sessionStreams/wireProtocol.js +66 -0
  317. package/dist/esm/v3/sessionStreams/wireProtocol.js.map +1 -0
  318. package/dist/esm/v3/taskContext/index.d.ts +4 -0
  319. package/dist/esm/v3/taskContext/index.js +18 -0
  320. package/dist/esm/v3/taskContext/index.js.map +1 -1
  321. package/dist/esm/v3/taskContext/index.test.d.ts +1 -0
  322. package/dist/esm/v3/taskContext/index.test.js +71 -0
  323. package/dist/esm/v3/taskContext/index.test.js.map +1 -0
  324. package/dist/esm/v3/taskContext/otelProcessors.js +11 -0
  325. package/dist/esm/v3/taskContext/otelProcessors.js.map +1 -1
  326. package/dist/esm/v3/test/index.d.ts +5 -0
  327. package/dist/esm/v3/test/index.js +6 -0
  328. package/dist/esm/v3/test/index.js.map +1 -0
  329. package/dist/esm/v3/test/mock-task-context.d.ts +123 -0
  330. package/dist/esm/v3/test/mock-task-context.js +190 -0
  331. package/dist/esm/v3/test/mock-task-context.js.map +1 -0
  332. package/dist/esm/v3/test/test-input-stream-manager.d.ts +46 -0
  333. package/dist/esm/v3/test/test-input-stream-manager.js +188 -0
  334. package/dist/esm/v3/test/test-input-stream-manager.js.map +1 -0
  335. package/dist/esm/v3/test/test-realtime-streams-manager.d.ts +40 -0
  336. package/dist/esm/v3/test/test-realtime-streams-manager.js +136 -0
  337. package/dist/esm/v3/test/test-realtime-streams-manager.js.map +1 -0
  338. package/dist/esm/v3/test/test-run-metadata-manager.d.ts +31 -0
  339. package/dist/esm/v3/test/test-run-metadata-manager.js +82 -0
  340. package/dist/esm/v3/test/test-run-metadata-manager.js.map +1 -0
  341. package/dist/esm/v3/test/test-session-stream-manager.d.ts +60 -0
  342. package/dist/esm/v3/test/test-session-stream-manager.js +243 -0
  343. package/dist/esm/v3/test/test-session-stream-manager.js.map +1 -0
  344. package/dist/esm/v3/types/tasks.d.ts +35 -0
  345. package/dist/esm/v3/utils/gitBranch.d.ts +2 -0
  346. package/dist/esm/v3/utils/gitBranch.js +42 -0
  347. package/dist/esm/v3/utils/gitBranch.js.map +1 -0
  348. package/dist/esm/v3/utils/globals.d.ts +2 -0
  349. package/dist/esm/v3/utils/globals.js.map +1 -1
  350. package/dist/esm/v3/utils/reconnectBackoff.d.ts +20 -0
  351. package/dist/esm/v3/utils/reconnectBackoff.js +25 -0
  352. package/dist/esm/v3/utils/reconnectBackoff.js.map +1 -0
  353. package/dist/esm/v3/utils/reconnectBackoff.test.d.ts +1 -0
  354. package/dist/esm/v3/utils/reconnectBackoff.test.js +74 -0
  355. package/dist/esm/v3/utils/reconnectBackoff.test.js.map +1 -0
  356. package/dist/esm/v3/workers/index.d.ts +1 -0
  357. package/dist/esm/v3/workers/index.js +1 -0
  358. package/dist/esm/v3/workers/index.js.map +1 -1
  359. package/dist/esm/v3/workers/taskExecutor.js +2 -1
  360. package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
  361. package/dist/esm/v3/zodIpc.d.ts +1 -0
  362. package/dist/esm/v3/zodIpc.js +13 -1
  363. package/dist/esm/v3/zodIpc.js.map +1 -1
  364. package/dist/esm/version.js +1 -1
  365. package/package.json +46 -1
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestRealtimeStreamsManager = void 0;
4
+ const asyncIterableStream_js_1 = require("../streams/asyncIterableStream.js");
5
+ class TestRealtimeStreamsManager {
6
+ buffers = new Map();
7
+ pipeWaits = new Map();
8
+ writeListeners = new Set();
9
+ pipe(key, source, _options) {
10
+ const buffer = this.getBuffer(key);
11
+ const self = this;
12
+ // Eagerly drain the source in the background so chunks land in the
13
+ // buffer + notify listeners even when the caller never consumes the
14
+ // returned stream. This mirrors the real SDK behavior: `streams.writer`
15
+ // awaits `instance.wait()`, it doesn't read the returned stream.
16
+ //
17
+ // The source is read ONCE (into a chunks array) and replayed into a
18
+ // ReadableStream so the caller can still consume it if they want.
19
+ const readChunks = [];
20
+ let resolveDone;
21
+ const done = new Promise((resolve) => {
22
+ resolveDone = resolve;
23
+ });
24
+ (async () => {
25
+ try {
26
+ const iter = source instanceof ReadableStream
27
+ ? (async function* () {
28
+ const reader = source.getReader();
29
+ try {
30
+ while (true) {
31
+ const { done: d, value } = await reader.read();
32
+ if (d)
33
+ return;
34
+ yield value;
35
+ }
36
+ }
37
+ finally {
38
+ reader.releaseLock();
39
+ }
40
+ })()
41
+ : source;
42
+ for await (const chunk of iter) {
43
+ readChunks.push(chunk);
44
+ buffer.push(chunk);
45
+ self.notify(key, chunk);
46
+ }
47
+ }
48
+ catch {
49
+ // Swallow — tests can inspect what made it into the buffer
50
+ }
51
+ finally {
52
+ resolveDone();
53
+ }
54
+ })();
55
+ const replayStream = (async function* () {
56
+ // Wait for all chunks to be drained, then replay from our snapshot
57
+ await done;
58
+ for (const chunk of readChunks)
59
+ yield chunk;
60
+ })();
61
+ const wrappedStream = (0, asyncIterableStream_js_1.createAsyncIterableStreamFromAsyncIterable)(replayStream);
62
+ if (!this.pipeWaits.has(key))
63
+ this.pipeWaits.set(key, []);
64
+ this.pipeWaits.get(key).push(done);
65
+ return {
66
+ wait: () => done.then(() => ({})),
67
+ get stream() {
68
+ return wrappedStream;
69
+ },
70
+ };
71
+ }
72
+ async append(key, part, _options) {
73
+ this.getBuffer(key).push(part);
74
+ this.notify(key, part);
75
+ }
76
+ /**
77
+ * Register a listener fired for every chunk written to any stream.
78
+ * Returns an unsubscribe function.
79
+ *
80
+ * Intended for test harnesses that need to react to writes synchronously
81
+ * (e.g. resolving a "turn complete" latch).
82
+ */
83
+ onWrite(listener) {
84
+ this.writeListeners.add(listener);
85
+ return () => {
86
+ this.writeListeners.delete(listener);
87
+ };
88
+ }
89
+ notify(key, chunk) {
90
+ for (const listener of this.writeListeners) {
91
+ try {
92
+ listener(key, chunk);
93
+ }
94
+ catch {
95
+ // Never let a listener error break stream writes
96
+ }
97
+ }
98
+ }
99
+ // ── Test driver API (not part of RealtimeStreamsManager interface) ──────
100
+ /**
101
+ * Return all chunks written to the given stream key in order of write.
102
+ */
103
+ __chunksFromTest(key) {
104
+ return (this.buffers.get(key) ?? []).slice();
105
+ }
106
+ /**
107
+ * Return all chunks across every stream, keyed by stream id.
108
+ */
109
+ __allChunksFromTest() {
110
+ const result = {};
111
+ for (const [key, chunks] of this.buffers.entries()) {
112
+ result[key] = chunks.slice();
113
+ }
114
+ return result;
115
+ }
116
+ /**
117
+ * Clear the buffer for a specific stream or all streams.
118
+ */
119
+ __clearFromTest(key) {
120
+ if (key === undefined) {
121
+ this.buffers.clear();
122
+ }
123
+ else {
124
+ this.buffers.delete(key);
125
+ }
126
+ }
127
+ reset() {
128
+ this.buffers.clear();
129
+ this.pipeWaits.clear();
130
+ this.writeListeners.clear();
131
+ }
132
+ getBuffer(key) {
133
+ if (!this.buffers.has(key)) {
134
+ this.buffers.set(key, []);
135
+ }
136
+ return this.buffers.get(key);
137
+ }
138
+ }
139
+ exports.TestRealtimeStreamsManager = TestRealtimeStreamsManager;
140
+ //# sourceMappingURL=test-realtime-streams-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-realtime-streams-manager.js","sourceRoot":"","sources":["../../../../src/v3/test/test-realtime-streams-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { DeserializedJson } from "../../schemas/json.js";
2
+ import type { AsyncIterableStream } from "../streams/asyncIterableStream.js";
3
+ import type { RunMetadataManager, RunMetadataUpdater } from "../runMetadata/types.js";
4
+ /**
5
+ * In-memory implementation of `RunMetadataManager` for unit tests.
6
+ *
7
+ * Just stores metadata in a Map — no API calls, no queue. Good enough
8
+ * for tests that read/write metadata via `runMetadata.getKey()` /
9
+ * `runMetadata.set()`, including the IDLE_TIMEOUT and TURN_TIMEOUT
10
+ * checks inside `chat.agent()`.
11
+ */
12
+ export declare class TestRunMetadataManager implements RunMetadataManager {
13
+ private store;
14
+ enterWithMetadata(metadata: Record<string, DeserializedJson>): void;
15
+ current(): Record<string, DeserializedJson> | undefined;
16
+ getKey(key: string): DeserializedJson | undefined;
17
+ set(key: string, value: DeserializedJson): this;
18
+ del(key: string): this;
19
+ append(key: string, value: DeserializedJson): this;
20
+ remove(key: string, value: DeserializedJson): this;
21
+ increment(key: string, value: number): this;
22
+ decrement(key: string, value: number): this;
23
+ update(metadata: Record<string, DeserializedJson>): this;
24
+ flush(): Promise<void>;
25
+ refresh(): Promise<void>;
26
+ stream<T>(_key: string, value: AsyncIterable<T> | ReadableStream<T>): Promise<AsyncIterable<T>>;
27
+ fetchStream<T>(_key: string): Promise<AsyncIterableStream<T>>;
28
+ get parent(): RunMetadataUpdater;
29
+ get root(): RunMetadataUpdater;
30
+ reset(): void;
31
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestRunMetadataManager = void 0;
4
+ /**
5
+ * In-memory implementation of `RunMetadataManager` for unit tests.
6
+ *
7
+ * Just stores metadata in a Map — no API calls, no queue. Good enough
8
+ * for tests that read/write metadata via `runMetadata.getKey()` /
9
+ * `runMetadata.set()`, including the IDLE_TIMEOUT and TURN_TIMEOUT
10
+ * checks inside `chat.agent()`.
11
+ */
12
+ class TestRunMetadataManager {
13
+ store = {};
14
+ enterWithMetadata(metadata) {
15
+ this.store = { ...metadata };
16
+ }
17
+ current() {
18
+ return { ...this.store };
19
+ }
20
+ getKey(key) {
21
+ return this.store[key];
22
+ }
23
+ set(key, value) {
24
+ this.store[key] = value;
25
+ return this;
26
+ }
27
+ del(key) {
28
+ delete this.store[key];
29
+ return this;
30
+ }
31
+ append(key, value) {
32
+ const existing = this.store[key];
33
+ if (Array.isArray(existing)) {
34
+ existing.push(value);
35
+ }
36
+ else {
37
+ this.store[key] = [value];
38
+ }
39
+ return this;
40
+ }
41
+ remove(key, value) {
42
+ const existing = this.store[key];
43
+ if (Array.isArray(existing)) {
44
+ this.store[key] = existing.filter((v) => v !== value);
45
+ }
46
+ return this;
47
+ }
48
+ increment(key, value) {
49
+ const existing = this.store[key];
50
+ const current = typeof existing === "number" ? existing : 0;
51
+ this.store[key] = current + value;
52
+ return this;
53
+ }
54
+ decrement(key, value) {
55
+ return this.increment(key, -value);
56
+ }
57
+ update(metadata) {
58
+ this.store = { ...metadata };
59
+ return this;
60
+ }
61
+ async flush() { }
62
+ async refresh() { }
63
+ async stream(_key, value) {
64
+ return value;
65
+ }
66
+ async fetchStream(_key) {
67
+ // Return an empty async iterable — tests can override if needed
68
+ const empty = {
69
+ [Symbol.asyncIterator]: () => ({
70
+ next: () => Promise.resolve({ done: true, value: undefined }),
71
+ }),
72
+ };
73
+ return empty;
74
+ }
75
+ get parent() {
76
+ return this;
77
+ }
78
+ get root() {
79
+ return this;
80
+ }
81
+ reset() {
82
+ this.store = {};
83
+ }
84
+ }
85
+ exports.TestRunMetadataManager = TestRunMetadataManager;
86
+ //# sourceMappingURL=test-run-metadata-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-run-metadata-manager.js","sourceRoot":"","sources":["../../../../src/v3/test/test-run-metadata-manager.ts"],"names":[],"mappings":";;;AAIA;;;;;;;GAOG;AACH,MAAa,sBAAsB;IACzB,KAAK,GAAqC,EAAE,CAAC;IAErD,iBAAiB,CAAC,QAA0C;QAC1D,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAuB;QACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,KAAuB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,KAAuB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAqB,CAAC;QAC5E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAa;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAa;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,QAA0C;QAC/C,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;IAC/B,KAAK,CAAC,OAAO,KAAmB,CAAC;IAEjC,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,KAA2C;QAE3C,OAAO,KAAyB,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,IAAY;QAC/B,gEAAgE;QAChE,MAAM,KAAK,GAAG;YACZ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAa,EAAE,KAAK,EAAE,SAAc,EAAE,CAAC;aAC5E,CAAC;SACH,CAAC;QACF,OAAO,KAA0C,CAAC;IACpD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AA1FD,wDA0FC"}
@@ -0,0 +1,60 @@
1
+ import { InputStreamOncePromise } from "../inputStreams/types.js";
2
+ import type { InputStreamOnceOptions } from "../realtimeStreams/types.js";
3
+ import type { SessionChannelIO, SessionStreamManager } from "../sessionStreams/types.js";
4
+ type Handler = (data: unknown) => void | Promise<void>;
5
+ /**
6
+ * In-memory implementation of `SessionStreamManager` for unit tests. Same
7
+ * shape as {@link TestInputStreamManager} but keyed on `(sessionId, io)`.
8
+ *
9
+ * Tests push data via `__sendFromTest(sessionId, io, data)` — any pending
10
+ * `once()` waiters resolve immediately, and all `on()` handlers fire (awaited
11
+ * if they return a promise). Records that arrive before a listener is
12
+ * registered are buffered so the first `once()` picks them up.
13
+ */
14
+ export declare class TestSessionStreamManager implements SessionStreamManager {
15
+ private handlers;
16
+ private onceWaiters;
17
+ private buffer;
18
+ private seqNums;
19
+ on(sessionId: string, io: SessionChannelIO, handler: Handler): {
20
+ off: () => void;
21
+ };
22
+ once(sessionId: string, io: SessionChannelIO, options?: InputStreamOnceOptions): InputStreamOncePromise<unknown>;
23
+ peek(sessionId: string, io: SessionChannelIO): unknown | undefined;
24
+ lastSeqNum(sessionId: string, io: SessionChannelIO): number | undefined;
25
+ setLastSeqNum(sessionId: string, io: SessionChannelIO, seqNum: number): void;
26
+ lastDispatchedSeqNum(_sessionId: string, _io: SessionChannelIO): number | undefined;
27
+ setLastDispatchedSeqNum(_sessionId: string, _io: SessionChannelIO, _seqNum: number): void;
28
+ setMinTimestamp(_sessionId: string, _io: SessionChannelIO, _minTimestamp: number | undefined): void;
29
+ shiftBuffer(sessionId: string, io: SessionChannelIO): boolean;
30
+ disconnectStream(_sessionId: string, _io: SessionChannelIO): void;
31
+ clearHandlers(): void;
32
+ reset(): void;
33
+ disconnect(): void;
34
+ /**
35
+ * Push a record onto the given channel.
36
+ *
37
+ * Dispatch rules — similar to the production manager, but with a tweak
38
+ * that makes unit tests deterministic:
39
+ *
40
+ * 1. **Handlers always observe** (like production). A session-level `.on`
41
+ * is a filter-observer — it fires every time a record arrives,
42
+ * regardless of whether a `.once` waiter is also active.
43
+ * 2. **First waiter consumes** the record if present (like production).
44
+ * 3. **If no waiter, the record is buffered for the next `.once` call.**
45
+ * Production discards records that only match handlers — but in
46
+ * production the SSE tail introduces enough latency that the next
47
+ * `.once` is usually registered before the next record arrives. Tests
48
+ * send synchronously right after `turn-complete`, so without this
49
+ * buffer the next `waitWithIdleTimeout` would race and lose the
50
+ * message. The buffer is the only deviation from production semantics.
51
+ */
52
+ __sendFromTest(sessionId: string, io: SessionChannelIO, data: unknown): Promise<void>;
53
+ /**
54
+ * Immediately resolve every pending `once()` waiter for the given channel
55
+ * with a timeout error. Simulates a closed stream (e.g. session closed).
56
+ */
57
+ __closeFromTest(sessionId: string, io: SessionChannelIO): void;
58
+ private removeWaiter;
59
+ }
60
+ export {};
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestSessionStreamManager = void 0;
4
+ const types_js_1 = require("../inputStreams/types.js");
5
+ function keyFor(sessionId, io) {
6
+ return `${sessionId}:${io}`;
7
+ }
8
+ /**
9
+ * In-memory implementation of `SessionStreamManager` for unit tests. Same
10
+ * shape as {@link TestInputStreamManager} but keyed on `(sessionId, io)`.
11
+ *
12
+ * Tests push data via `__sendFromTest(sessionId, io, data)` — any pending
13
+ * `once()` waiters resolve immediately, and all `on()` handlers fire (awaited
14
+ * if they return a promise). Records that arrive before a listener is
15
+ * registered are buffered so the first `once()` picks them up.
16
+ */
17
+ class TestSessionStreamManager {
18
+ handlers = new Map();
19
+ onceWaiters = new Map();
20
+ buffer = new Map();
21
+ seqNums = new Map();
22
+ on(sessionId, io, handler) {
23
+ const key = keyFor(sessionId, io);
24
+ let set = this.handlers.get(key);
25
+ if (!set) {
26
+ set = new Set();
27
+ this.handlers.set(key, set);
28
+ }
29
+ set.add(handler);
30
+ // Note: we intentionally do NOT replay buffered records into the
31
+ // newly-registered handler, and we do NOT drain the buffer. The
32
+ // buffer is owned by `once()` — registering a passive observer
33
+ // (`on`) must not consume records destined for a future `once`
34
+ // waiter. This matches production SSE semantics where handlers
35
+ // observe records as they arrive, not retroactively.
36
+ //
37
+ // Earlier versions drained the buffer here, which caused user
38
+ // messages buffered during the runtime's `runFn` boot phase to be
39
+ // silently swallowed by the `stopInput.on()` handler registered at
40
+ // ai.ts:4806 (the stop handler ignores `kind: "message"` chunks).
41
+ // The next `messagesInput.waitWithIdleTimeout` then waited 30s for
42
+ // a record that had already been "delivered" to a handler that
43
+ // didn't want it.
44
+ return {
45
+ off: () => {
46
+ this.handlers.get(key)?.delete(handler);
47
+ },
48
+ };
49
+ }
50
+ once(sessionId, io, options) {
51
+ const key = keyFor(sessionId, io);
52
+ return new types_js_1.InputStreamOncePromise((resolve) => {
53
+ if (options?.signal?.aborted) {
54
+ resolve({
55
+ ok: false,
56
+ error: new types_js_1.InputStreamTimeoutError(key, options.timeoutMs ?? 0),
57
+ });
58
+ return;
59
+ }
60
+ const buffered = this.buffer.get(key);
61
+ if (buffered && buffered.length > 0) {
62
+ const next = buffered.shift();
63
+ if (buffered.length === 0)
64
+ this.buffer.delete(key);
65
+ resolve({ ok: true, output: next });
66
+ return;
67
+ }
68
+ const waiter = { resolve, signal: options?.signal };
69
+ if (options?.timeoutMs !== undefined) {
70
+ waiter.timer = setTimeout(() => {
71
+ this.removeWaiter(key, waiter);
72
+ resolve({
73
+ ok: false,
74
+ error: new types_js_1.InputStreamTimeoutError(key, options.timeoutMs),
75
+ });
76
+ }, options.timeoutMs);
77
+ }
78
+ if (options?.signal) {
79
+ const abortHandler = () => {
80
+ this.removeWaiter(key, waiter);
81
+ if (waiter.timer)
82
+ clearTimeout(waiter.timer);
83
+ resolve({
84
+ ok: false,
85
+ error: new types_js_1.InputStreamTimeoutError(key, options.timeoutMs ?? 0),
86
+ });
87
+ };
88
+ waiter.abortHandler = abortHandler;
89
+ options.signal.addEventListener("abort", abortHandler, { once: true });
90
+ }
91
+ let waiters = this.onceWaiters.get(key);
92
+ if (!waiters) {
93
+ waiters = [];
94
+ this.onceWaiters.set(key, waiters);
95
+ }
96
+ waiters.push(waiter);
97
+ });
98
+ }
99
+ peek(sessionId, io) {
100
+ const buffered = this.buffer.get(keyFor(sessionId, io));
101
+ if (buffered && buffered.length > 0)
102
+ return buffered[0];
103
+ return undefined;
104
+ }
105
+ lastSeqNum(sessionId, io) {
106
+ return this.seqNums.get(keyFor(sessionId, io));
107
+ }
108
+ setLastSeqNum(sessionId, io, seqNum) {
109
+ this.seqNums.set(keyFor(sessionId, io), seqNum);
110
+ }
111
+ lastDispatchedSeqNum(_sessionId, _io) {
112
+ // The test harness drives records via `__sendFromTest` without seq
113
+ // numbers, so the committed-consume cursor stays undefined. Tests
114
+ // that need cursor behaviour exercise it via the real manager.
115
+ return undefined;
116
+ }
117
+ setLastDispatchedSeqNum(_sessionId, _io, _seqNum) {
118
+ // no-op — see comment on `lastDispatchedSeqNum`.
119
+ }
120
+ setMinTimestamp(_sessionId, _io, _minTimestamp) {
121
+ // No filter applied in tests; the test harness drives records directly
122
+ // and the chat.agent retry path is exercised separately.
123
+ }
124
+ shiftBuffer(sessionId, io) {
125
+ const key = keyFor(sessionId, io);
126
+ const buffered = this.buffer.get(key);
127
+ if (buffered && buffered.length > 0) {
128
+ buffered.shift();
129
+ if (buffered.length === 0)
130
+ this.buffer.delete(key);
131
+ return true;
132
+ }
133
+ return false;
134
+ }
135
+ disconnectStream(_sessionId, _io) {
136
+ // no-op — no real SSE tail in tests
137
+ }
138
+ clearHandlers() {
139
+ this.handlers.clear();
140
+ }
141
+ reset() {
142
+ for (const waiters of this.onceWaiters.values()) {
143
+ for (const w of waiters) {
144
+ if (w.timer)
145
+ clearTimeout(w.timer);
146
+ if (w.signal && w.abortHandler) {
147
+ w.signal.removeEventListener("abort", w.abortHandler);
148
+ }
149
+ }
150
+ }
151
+ this.onceWaiters.clear();
152
+ this.handlers.clear();
153
+ this.buffer.clear();
154
+ this.seqNums.clear();
155
+ }
156
+ disconnect() {
157
+ this.reset();
158
+ }
159
+ // ── Test driver API (not part of SessionStreamManager interface) ──────
160
+ /**
161
+ * Push a record onto the given channel.
162
+ *
163
+ * Dispatch rules — similar to the production manager, but with a tweak
164
+ * that makes unit tests deterministic:
165
+ *
166
+ * 1. **Handlers always observe** (like production). A session-level `.on`
167
+ * is a filter-observer — it fires every time a record arrives,
168
+ * regardless of whether a `.once` waiter is also active.
169
+ * 2. **First waiter consumes** the record if present (like production).
170
+ * 3. **If no waiter, the record is buffered for the next `.once` call.**
171
+ * Production discards records that only match handlers — but in
172
+ * production the SSE tail introduces enough latency that the next
173
+ * `.once` is usually registered before the next record arrives. Tests
174
+ * send synchronously right after `turn-complete`, so without this
175
+ * buffer the next `waitWithIdleTimeout` would race and lose the
176
+ * message. The buffer is the only deviation from production semantics.
177
+ */
178
+ async __sendFromTest(sessionId, io, data) {
179
+ const key = keyFor(sessionId, io);
180
+ const handlers = this.handlers.get(key);
181
+ if (handlers && handlers.size > 0) {
182
+ // Awaited so test code can rely on handlers having completed by the
183
+ // time `__sendFromTest` resolves. Wrapped per-handler so a
184
+ // throwing/rejecting handler doesn't poison Promise.all and break
185
+ // unrelated test state.
186
+ await Promise.all(Array.from(handlers).map(async (h) => {
187
+ try {
188
+ await h(data);
189
+ }
190
+ catch {
191
+ // Never let a handler error break test state
192
+ }
193
+ }));
194
+ }
195
+ const waiters = this.onceWaiters.get(key);
196
+ if (waiters && waiters.length > 0) {
197
+ const w = waiters.shift();
198
+ if (waiters.length === 0)
199
+ this.onceWaiters.delete(key);
200
+ if (w.timer)
201
+ clearTimeout(w.timer);
202
+ if (w.signal && w.abortHandler) {
203
+ w.signal.removeEventListener("abort", w.abortHandler);
204
+ }
205
+ w.resolve({ ok: true, output: data });
206
+ return;
207
+ }
208
+ let buffered = this.buffer.get(key);
209
+ if (!buffered) {
210
+ buffered = [];
211
+ this.buffer.set(key, buffered);
212
+ }
213
+ buffered.push(data);
214
+ }
215
+ /**
216
+ * Immediately resolve every pending `once()` waiter for the given channel
217
+ * with a timeout error. Simulates a closed stream (e.g. session closed).
218
+ */
219
+ __closeFromTest(sessionId, io) {
220
+ const key = keyFor(sessionId, io);
221
+ const waiters = this.onceWaiters.get(key);
222
+ if (!waiters)
223
+ return;
224
+ const pending = waiters.splice(0);
225
+ for (const w of pending) {
226
+ if (w.timer)
227
+ clearTimeout(w.timer);
228
+ if (w.signal && w.abortHandler) {
229
+ w.signal.removeEventListener("abort", w.abortHandler);
230
+ }
231
+ w.resolve({
232
+ ok: false,
233
+ error: new types_js_1.InputStreamTimeoutError(key, 0),
234
+ });
235
+ }
236
+ }
237
+ removeWaiter(key, waiter) {
238
+ const waiters = this.onceWaiters.get(key);
239
+ if (!waiters)
240
+ return;
241
+ const idx = waiters.indexOf(waiter);
242
+ if (idx >= 0)
243
+ waiters.splice(idx, 1);
244
+ }
245
+ }
246
+ exports.TestSessionStreamManager = TestSessionStreamManager;
247
+ //# sourceMappingURL=test-session-stream-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-session-stream-manager.js","sourceRoot":"","sources":["../../../../src/v3/test/test-session-stream-manager.ts"],"names":[],"mappings":"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"}
@@ -280,6 +280,12 @@ type CommonTaskOptions<TIdentifier extends string, TPayload = void, TOutput = un
280
280
  * Should be a valid JSON Schema Draft 7 object.
281
281
  */
282
282
  jsonSchema?: JSONSchema;
283
+ /** @internal Set by SDK internals (e.g. `chat.agent()`, `schedules.task()`). */
284
+ triggerSource?: string;
285
+ /** @internal Agent configuration, only set when `triggerSource` is `"agent"`. */
286
+ agentConfig?: {
287
+ type: string;
288
+ };
283
289
  };
284
290
  export type TaskOptions<TIdentifier extends string, TPayload = void, TOutput = unknown, TInitOutput extends InitOutput = any> = CommonTaskOptions<TIdentifier, TPayload, TOutput, TInitOutput>;
285
291
  export type TaskOptionsWithSchema<TIdentifier extends string, TOutput = unknown, TInitOutput extends InitOutput = any> = CommonTaskOptions<TIdentifier, any, TOutput, TInitOutput> & {
@@ -424,6 +430,26 @@ export interface Task<TIdentifier extends string, TInput = void, TOutput = any>
424
430
  * ```
425
431
  */
426
432
  triggerAndWait: (payload: TInput, options?: TriggerAndWaitOptions, requestOptions?: TriggerApiRequestOptions) => TaskRunPromise<TIdentifier, TOutput>;
433
+ /**
434
+ * Trigger a task and subscribe to its updates via realtime. Unlike `triggerAndWait`,
435
+ * this does NOT suspend the parent run — the parent stays alive and polls for updates.
436
+ * This enables parallel tool calls and proper abort signal handling.
437
+ *
438
+ * @param payload
439
+ * @param options - Options for the task run, including an optional `signal` to cancel the subscription and child run
440
+ * @returns TaskRunPromise
441
+ * @example
442
+ * ```
443
+ * const result = await task.triggerAndSubscribe({ foo: "bar" }, { signal: abortSignal });
444
+ *
445
+ * if (result.ok) {
446
+ * console.log(result.output);
447
+ * } else {
448
+ * console.error(result.error);
449
+ * }
450
+ * ```
451
+ */
452
+ triggerAndSubscribe: (payload: TInput, options?: TriggerAndSubscribeOptions) => TaskRunPromise<TIdentifier, TOutput>;
427
453
  /**
428
454
  * Batch trigger multiple task runs with the given payloads, and wait for the results. Returns the results of the task runs.
429
455
  * @param items - Array, AsyncIterable, or ReadableStream of batch items
@@ -713,6 +739,15 @@ export type TriggerOptions = {
713
739
  };
714
740
  };
715
741
  export type TriggerAndWaitOptions = Omit<TriggerOptions, "version">;
742
+ export type TriggerAndSubscribeOptions = Omit<TriggerOptions, "version"> & {
743
+ /** An AbortSignal to cancel the subscription. When fired, the subscription closes and the promise rejects. */
744
+ signal?: AbortSignal;
745
+ /**
746
+ * Whether to cancel the child run when the abort signal fires.
747
+ * @default true
748
+ */
749
+ cancelOnAbort?: boolean;
750
+ };
716
751
  export type BatchTriggerOptions = {
717
752
  /**
718
753
  * If no idempotencyKey is set on an individual item in the batch, it will use this key on each item + the array index.
@@ -0,0 +1,2 @@
1
+ export declare function isValidGitBranchName(branch: string): boolean;
2
+ export declare function sanitizeBranchName(ref: string | null | undefined): string | null;