@trigger.dev/core 4.5.16 → 4.6.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 (307) hide show
  1. package/dist/commonjs/schemas/eventFilter.d.ts +27 -105
  2. package/dist/commonjs/schemas/eventFilter.js +38 -38
  3. package/dist/commonjs/schemas/eventFilter.js.map +1 -1
  4. package/dist/commonjs/schemas/json.d.ts +3 -3
  5. package/dist/commonjs/schemas/json.js +20 -12
  6. package/dist/commonjs/schemas/json.js.map +1 -1
  7. package/dist/commonjs/v3/apiClient/core.d.ts +14 -14
  8. package/dist/commonjs/v3/apiClient/core.js +39 -18
  9. package/dist/commonjs/v3/apiClient/core.js.map +1 -1
  10. package/dist/commonjs/v3/apiClient/encodeTaskIdForPath.d.ts +6 -0
  11. package/dist/commonjs/v3/apiClient/encodeTaskIdForPath.js +20 -0
  12. package/dist/commonjs/v3/apiClient/encodeTaskIdForPath.js.map +1 -0
  13. package/dist/commonjs/v3/apiClient/index.d.ts +82 -184
  14. package/dist/commonjs/v3/apiClient/index.js +27 -8
  15. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  16. package/dist/commonjs/v3/apiClient/stream.d.ts +4 -4
  17. package/dist/commonjs/v3/apiClient/stream.js.map +1 -1
  18. package/dist/commonjs/v3/errors.d.ts +5 -4
  19. package/dist/commonjs/v3/errors.js.map +1 -1
  20. package/dist/commonjs/v3/index.d.ts +1 -1
  21. package/dist/commonjs/v3/index.js.map +1 -1
  22. package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.js +3 -0
  23. package/dist/commonjs/v3/realtimeStreams/sessionStreamInstance.js.map +1 -1
  24. package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js +3 -0
  25. package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js.map +1 -1
  26. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js +4 -0
  27. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
  28. package/dist/commonjs/v3/runEngineWorker/supervisor/http.d.ts +25 -114
  29. package/dist/commonjs/v3/runEngineWorker/supervisor/http.js +5 -12
  30. package/dist/commonjs/v3/runEngineWorker/supervisor/http.js.map +1 -1
  31. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +594 -4187
  32. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js +84 -67
  33. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js.map +1 -1
  34. package/dist/commonjs/v3/runEngineWorker/supervisor/types.d.ts +2 -0
  35. package/dist/commonjs/v3/runEngineWorker/workload/http.d.ts +15 -110
  36. package/dist/commonjs/v3/runEngineWorker/workload/http.js +8 -16
  37. package/dist/commonjs/v3/runEngineWorker/workload/http.js.map +1 -1
  38. package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +465 -3624
  39. package/dist/commonjs/v3/runEngineWorker/workload/schemas.js +10 -9
  40. package/dist/commonjs/v3/runEngineWorker/workload/schemas.js.map +1 -1
  41. package/dist/commonjs/v3/schemas/api.d.ts +1869 -12681
  42. package/dist/commonjs/v3/schemas/api.js +1023 -943
  43. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  44. package/dist/commonjs/v3/schemas/build.d.ts +645 -9115
  45. package/dist/commonjs/v3/schemas/build.js +71 -71
  46. package/dist/commonjs/v3/schemas/build.js.map +1 -1
  47. package/dist/commonjs/v3/schemas/checkpoints.d.ts +121 -461
  48. package/dist/commonjs/v3/schemas/checkpoints.js +11 -11
  49. package/dist/commonjs/v3/schemas/checkpoints.js.map +1 -1
  50. package/dist/commonjs/v3/schemas/common.d.ts +1018 -6499
  51. package/dist/commonjs/v3/schemas/common.js +225 -218
  52. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  53. package/dist/commonjs/v3/schemas/config.d.ts +3 -9
  54. package/dist/commonjs/v3/schemas/config.js +4 -4
  55. package/dist/commonjs/v3/schemas/config.js.map +1 -1
  56. package/dist/commonjs/v3/schemas/errors.d.ts +42 -173
  57. package/dist/commonjs/v3/schemas/errors.js +44 -44
  58. package/dist/commonjs/v3/schemas/errors.js.map +1 -1
  59. package/dist/commonjs/v3/schemas/eventFilter.d.ts +23 -91
  60. package/dist/commonjs/v3/schemas/eventFilter.js +35 -35
  61. package/dist/commonjs/v3/schemas/eventFilter.js.map +1 -1
  62. package/dist/commonjs/v3/schemas/fetch.d.ts +119 -415
  63. package/dist/commonjs/v3/schemas/fetch.js +17 -14
  64. package/dist/commonjs/v3/schemas/fetch.js.map +1 -1
  65. package/dist/commonjs/v3/schemas/messages.d.ts +603 -7438
  66. package/dist/commonjs/v3/schemas/messages.js +50 -50
  67. package/dist/commonjs/v3/schemas/messages.js.map +1 -1
  68. package/dist/commonjs/v3/schemas/openTelemetry.d.ts +50 -401
  69. package/dist/commonjs/v3/schemas/openTelemetry.js +32 -32
  70. package/dist/commonjs/v3/schemas/openTelemetry.js.map +1 -1
  71. package/dist/commonjs/v3/schemas/query.d.ts +51 -273
  72. package/dist/commonjs/v3/schemas/query.js +41 -40
  73. package/dist/commonjs/v3/schemas/query.js.map +1 -1
  74. package/dist/commonjs/v3/schemas/queues.d.ts +29 -100
  75. package/dist/commonjs/v3/schemas/queues.js +22 -22
  76. package/dist/commonjs/v3/schemas/queues.js.map +1 -1
  77. package/dist/commonjs/v3/schemas/reports.d.ts +150 -692
  78. package/dist/commonjs/v3/schemas/reports.js +55 -55
  79. package/dist/commonjs/v3/schemas/reports.js.map +1 -1
  80. package/dist/commonjs/v3/schemas/resources.d.ts +533 -5985
  81. package/dist/commonjs/v3/schemas/resources.js +49 -49
  82. package/dist/commonjs/v3/schemas/resources.js.map +1 -1
  83. package/dist/commonjs/v3/schemas/runEngine.d.ts +467 -1822
  84. package/dist/commonjs/v3/schemas/runEngine.js +113 -109
  85. package/dist/commonjs/v3/schemas/runEngine.js.map +1 -1
  86. package/dist/commonjs/v3/schemas/scheduleWindow.d.ts +2 -2
  87. package/dist/commonjs/v3/schemas/scheduleWindow.js +3 -3
  88. package/dist/commonjs/v3/schemas/scheduleWindow.js.map +1 -1
  89. package/dist/commonjs/v3/schemas/schemas.d.ts +788 -7456
  90. package/dist/commonjs/v3/schemas/schemas.js +133 -132
  91. package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
  92. package/dist/commonjs/v3/schemas/snapshotRoute.d.ts +33 -0
  93. package/dist/commonjs/v3/schemas/snapshotRoute.js +33 -0
  94. package/dist/commonjs/v3/schemas/snapshotRoute.js.map +1 -0
  95. package/dist/commonjs/v3/schemas/style.d.ts +24 -86
  96. package/dist/commonjs/v3/schemas/style.js +12 -12
  97. package/dist/commonjs/v3/schemas/style.js.map +1 -1
  98. package/dist/commonjs/v3/schemas/tokens.d.ts +5 -31
  99. package/dist/commonjs/v3/schemas/tokens.js +10 -10
  100. package/dist/commonjs/v3/schemas/tokens.js.map +1 -1
  101. package/dist/commonjs/v3/schemas/warmStart.d.ts +2 -8
  102. package/dist/commonjs/v3/schemas/warmStart.js +4 -4
  103. package/dist/commonjs/v3/schemas/warmStart.js.map +1 -1
  104. package/dist/commonjs/v3/schemas/webhookApi.d.ts +75 -249
  105. package/dist/commonjs/v3/schemas/webhookApi.js +41 -41
  106. package/dist/commonjs/v3/schemas/webhookApi.js.map +1 -1
  107. package/dist/commonjs/v3/schemas/webhookConfig.d.ts +473 -3309
  108. package/dist/commonjs/v3/schemas/webhookConfig.js +79 -78
  109. package/dist/commonjs/v3/schemas/webhookConfig.js.map +1 -1
  110. package/dist/commonjs/v3/schemas/webhookFilter.d.ts +16 -4
  111. package/dist/commonjs/v3/schemas/webhookFilter.js +16 -16
  112. package/dist/commonjs/v3/schemas/webhookFilter.js.map +1 -1
  113. package/dist/commonjs/v3/schemas/webhooks.d.ts +247 -2055
  114. package/dist/commonjs/v3/schemas/webhooks.js +116 -115
  115. package/dist/commonjs/v3/schemas/webhooks.js.map +1 -1
  116. package/dist/commonjs/v3/serverOnly/httpServer.d.ts +19 -8
  117. package/dist/commonjs/v3/serverOnly/httpServer.js +6 -3
  118. package/dist/commonjs/v3/serverOnly/httpServer.js.map +1 -1
  119. package/dist/commonjs/v3/sessionStreams/chatSnapshot.d.ts +163 -16
  120. package/dist/commonjs/v3/sessionStreams/chatSnapshot.js +332 -8
  121. package/dist/commonjs/v3/sessionStreams/chatSnapshot.js.map +1 -1
  122. package/dist/commonjs/v3/sessionStreams/router.d.ts +39 -1
  123. package/dist/commonjs/v3/sessionStreams/router.js +62 -0
  124. package/dist/commonjs/v3/sessionStreams/router.js.map +1 -1
  125. package/dist/commonjs/v3/sessionStreams/wireProtocol.d.ts +15 -0
  126. package/dist/commonjs/v3/sessionStreams/wireProtocol.js +16 -1
  127. package/dist/commonjs/v3/sessionStreams/wireProtocol.js.map +1 -1
  128. package/dist/commonjs/v3/test/test-session-stream-manager.js +5 -1
  129. package/dist/commonjs/v3/test/test-session-stream-manager.js.map +1 -1
  130. package/dist/commonjs/v3/types/schemas.d.ts +21 -1
  131. package/dist/commonjs/v3/types/schemas.js +2 -1
  132. package/dist/commonjs/v3/types/schemas.js.map +1 -1
  133. package/dist/commonjs/v3/types/tools.d.ts +16 -5
  134. package/dist/commonjs/v3/types/tools.js +2 -2
  135. package/dist/commonjs/v3/types/tools.js.map +1 -1
  136. package/dist/commonjs/v3/utils/ioSerialization.js +3 -3
  137. package/dist/commonjs/v3/utils/ioSerialization.js.map +1 -1
  138. package/dist/commonjs/v3/utils/zod.d.ts +8 -0
  139. package/dist/commonjs/v3/utils/zod.js +8 -0
  140. package/dist/commonjs/v3/utils/zod.js.map +1 -0
  141. package/dist/commonjs/v3/workloadDeploymentToken.d.ts +2 -21
  142. package/dist/commonjs/v3/workloadDeploymentToken.js +10 -10
  143. package/dist/commonjs/v3/workloadDeploymentToken.js.map +1 -1
  144. package/dist/commonjs/v3/zodIpc.d.ts +6 -6
  145. package/dist/commonjs/v3/zodIpc.js +20 -18
  146. package/dist/commonjs/v3/zodIpc.js.map +1 -1
  147. package/dist/commonjs/v3/zodMessageHandler.d.ts +14 -21
  148. package/dist/commonjs/v3/zodMessageHandler.js +20 -7
  149. package/dist/commonjs/v3/zodMessageHandler.js.map +1 -1
  150. package/dist/commonjs/v3/zodSocket.d.ts +11 -11
  151. package/dist/commonjs/v3/zodSocket.js +9 -8
  152. package/dist/commonjs/v3/zodSocket.js.map +1 -1
  153. package/dist/commonjs/version.js +1 -1
  154. package/dist/esm/schemas/eventFilter.d.ts +27 -105
  155. package/dist/esm/schemas/eventFilter.js +2 -2
  156. package/dist/esm/schemas/eventFilter.js.map +1 -1
  157. package/dist/esm/schemas/json.d.ts +3 -3
  158. package/dist/esm/schemas/json.js +11 -3
  159. package/dist/esm/schemas/json.js.map +1 -1
  160. package/dist/esm/v3/apiClient/core.d.ts +14 -14
  161. package/dist/esm/v3/apiClient/core.js +38 -17
  162. package/dist/esm/v3/apiClient/core.js.map +1 -1
  163. package/dist/esm/v3/apiClient/encodeTaskIdForPath.d.ts +6 -0
  164. package/dist/esm/v3/apiClient/encodeTaskIdForPath.js +17 -0
  165. package/dist/esm/v3/apiClient/encodeTaskIdForPath.js.map +1 -0
  166. package/dist/esm/v3/apiClient/index.d.ts +82 -184
  167. package/dist/esm/v3/apiClient/index.js +22 -4
  168. package/dist/esm/v3/apiClient/index.js.map +1 -1
  169. package/dist/esm/v3/apiClient/stream.d.ts +4 -4
  170. package/dist/esm/v3/apiClient/stream.js.map +1 -1
  171. package/dist/esm/v3/errors.d.ts +5 -4
  172. package/dist/esm/v3/errors.js.map +1 -1
  173. package/dist/esm/v3/index.d.ts +1 -1
  174. package/dist/esm/v3/index.js.map +1 -1
  175. package/dist/esm/v3/realtimeStreams/sessionStreamInstance.js +3 -0
  176. package/dist/esm/v3/realtimeStreams/sessionStreamInstance.js.map +1 -1
  177. package/dist/esm/v3/realtimeStreams/streamsWriterV1.js +3 -0
  178. package/dist/esm/v3/realtimeStreams/streamsWriterV1.js.map +1 -1
  179. package/dist/esm/v3/realtimeStreams/streamsWriterV2.js +4 -0
  180. package/dist/esm/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
  181. package/dist/esm/v3/runEngineWorker/supervisor/http.d.ts +25 -114
  182. package/dist/esm/v3/runEngineWorker/supervisor/http.js +4 -11
  183. package/dist/esm/v3/runEngineWorker/supervisor/http.js.map +1 -1
  184. package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +594 -4187
  185. package/dist/esm/v3/runEngineWorker/supervisor/schemas.js +22 -5
  186. package/dist/esm/v3/runEngineWorker/supervisor/schemas.js.map +1 -1
  187. package/dist/esm/v3/runEngineWorker/supervisor/types.d.ts +2 -0
  188. package/dist/esm/v3/runEngineWorker/workload/http.d.ts +15 -110
  189. package/dist/esm/v3/runEngineWorker/workload/http.js +8 -16
  190. package/dist/esm/v3/runEngineWorker/workload/http.js.map +1 -1
  191. package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +465 -3624
  192. package/dist/esm/v3/runEngineWorker/workload/schemas.js +5 -4
  193. package/dist/esm/v3/runEngineWorker/workload/schemas.js.map +1 -1
  194. package/dist/esm/v3/schemas/api.d.ts +1869 -12681
  195. package/dist/esm/v3/schemas/api.js +115 -35
  196. package/dist/esm/v3/schemas/api.js.map +1 -1
  197. package/dist/esm/v3/schemas/build.d.ts +645 -9115
  198. package/dist/esm/v3/schemas/build.js +10 -10
  199. package/dist/esm/v3/schemas/build.js.map +1 -1
  200. package/dist/esm/v3/schemas/checkpoints.d.ts +121 -461
  201. package/dist/esm/v3/schemas/checkpoints.js +1 -1
  202. package/dist/esm/v3/schemas/checkpoints.js.map +1 -1
  203. package/dist/esm/v3/schemas/common.d.ts +1018 -6499
  204. package/dist/esm/v3/schemas/common.js +17 -10
  205. package/dist/esm/v3/schemas/common.js.map +1 -1
  206. package/dist/esm/v3/schemas/config.d.ts +3 -9
  207. package/dist/esm/v3/schemas/config.js +1 -1
  208. package/dist/esm/v3/schemas/config.js.map +1 -1
  209. package/dist/esm/v3/schemas/errors.d.ts +42 -173
  210. package/dist/esm/v3/schemas/errors.js +1 -1
  211. package/dist/esm/v3/schemas/errors.js.map +1 -1
  212. package/dist/esm/v3/schemas/eventFilter.d.ts +23 -91
  213. package/dist/esm/v3/schemas/eventFilter.js +2 -2
  214. package/dist/esm/v3/schemas/eventFilter.js.map +1 -1
  215. package/dist/esm/v3/schemas/fetch.d.ts +119 -415
  216. package/dist/esm/v3/schemas/fetch.js +6 -3
  217. package/dist/esm/v3/schemas/fetch.js.map +1 -1
  218. package/dist/esm/v3/schemas/messages.d.ts +603 -7438
  219. package/dist/esm/v3/schemas/messages.js +3 -3
  220. package/dist/esm/v3/schemas/messages.js.map +1 -1
  221. package/dist/esm/v3/schemas/openTelemetry.d.ts +50 -401
  222. package/dist/esm/v3/schemas/openTelemetry.js +2 -2
  223. package/dist/esm/v3/schemas/openTelemetry.js.map +1 -1
  224. package/dist/esm/v3/schemas/query.d.ts +51 -273
  225. package/dist/esm/v3/schemas/query.js +4 -3
  226. package/dist/esm/v3/schemas/query.js.map +1 -1
  227. package/dist/esm/v3/schemas/queues.d.ts +29 -100
  228. package/dist/esm/v3/schemas/queues.js +1 -1
  229. package/dist/esm/v3/schemas/queues.js.map +1 -1
  230. package/dist/esm/v3/schemas/reports.d.ts +150 -692
  231. package/dist/esm/v3/schemas/reports.js +5 -5
  232. package/dist/esm/v3/schemas/reports.js.map +1 -1
  233. package/dist/esm/v3/schemas/resources.d.ts +533 -5985
  234. package/dist/esm/v3/schemas/resources.js +3 -3
  235. package/dist/esm/v3/schemas/resources.js.map +1 -1
  236. package/dist/esm/v3/schemas/runEngine.d.ts +467 -1822
  237. package/dist/esm/v3/schemas/runEngine.js +11 -3
  238. package/dist/esm/v3/schemas/runEngine.js.map +1 -1
  239. package/dist/esm/v3/schemas/scheduleWindow.d.ts +2 -2
  240. package/dist/esm/v3/schemas/scheduleWindow.js +1 -1
  241. package/dist/esm/v3/schemas/scheduleWindow.js.map +1 -1
  242. package/dist/esm/v3/schemas/schemas.d.ts +788 -7456
  243. package/dist/esm/v3/schemas/schemas.js +11 -10
  244. package/dist/esm/v3/schemas/schemas.js.map +1 -1
  245. package/dist/esm/v3/schemas/snapshotRoute.d.ts +33 -0
  246. package/dist/esm/v3/schemas/snapshotRoute.js +30 -0
  247. package/dist/esm/v3/schemas/snapshotRoute.js.map +1 -0
  248. package/dist/esm/v3/schemas/style.d.ts +24 -86
  249. package/dist/esm/v3/schemas/style.js +1 -1
  250. package/dist/esm/v3/schemas/style.js.map +1 -1
  251. package/dist/esm/v3/schemas/tokens.d.ts +5 -31
  252. package/dist/esm/v3/schemas/tokens.js +1 -1
  253. package/dist/esm/v3/schemas/tokens.js.map +1 -1
  254. package/dist/esm/v3/schemas/warmStart.d.ts +2 -8
  255. package/dist/esm/v3/schemas/warmStart.js +1 -1
  256. package/dist/esm/v3/schemas/warmStart.js.map +1 -1
  257. package/dist/esm/v3/schemas/webhookApi.d.ts +75 -249
  258. package/dist/esm/v3/schemas/webhookApi.js +2 -2
  259. package/dist/esm/v3/schemas/webhookApi.js.map +1 -1
  260. package/dist/esm/v3/schemas/webhookConfig.d.ts +473 -3309
  261. package/dist/esm/v3/schemas/webhookConfig.js +10 -9
  262. package/dist/esm/v3/schemas/webhookConfig.js.map +1 -1
  263. package/dist/esm/v3/schemas/webhookFilter.d.ts +16 -4
  264. package/dist/esm/v3/schemas/webhookFilter.js +1 -1
  265. package/dist/esm/v3/schemas/webhookFilter.js.map +1 -1
  266. package/dist/esm/v3/schemas/webhooks.d.ts +247 -2055
  267. package/dist/esm/v3/schemas/webhooks.js +3 -2
  268. package/dist/esm/v3/schemas/webhooks.js.map +1 -1
  269. package/dist/esm/v3/serverOnly/httpServer.d.ts +19 -8
  270. package/dist/esm/v3/serverOnly/httpServer.js +5 -2
  271. package/dist/esm/v3/serverOnly/httpServer.js.map +1 -1
  272. package/dist/esm/v3/sessionStreams/chatSnapshot.d.ts +163 -16
  273. package/dist/esm/v3/sessionStreams/chatSnapshot.js +318 -2
  274. package/dist/esm/v3/sessionStreams/chatSnapshot.js.map +1 -1
  275. package/dist/esm/v3/sessionStreams/router.d.ts +39 -1
  276. package/dist/esm/v3/sessionStreams/router.js +62 -0
  277. package/dist/esm/v3/sessionStreams/router.js.map +1 -1
  278. package/dist/esm/v3/sessionStreams/wireProtocol.d.ts +15 -0
  279. package/dist/esm/v3/sessionStreams/wireProtocol.js +15 -0
  280. package/dist/esm/v3/sessionStreams/wireProtocol.js.map +1 -1
  281. package/dist/esm/v3/test/test-session-stream-manager.js +5 -1
  282. package/dist/esm/v3/test/test-session-stream-manager.js.map +1 -1
  283. package/dist/esm/v3/types/schemas.d.ts +21 -1
  284. package/dist/esm/v3/types/schemas.js +2 -1
  285. package/dist/esm/v3/types/schemas.js.map +1 -1
  286. package/dist/esm/v3/types/tools.d.ts +16 -5
  287. package/dist/esm/v3/types/tools.js +2 -2
  288. package/dist/esm/v3/types/tools.js.map +1 -1
  289. package/dist/esm/v3/utils/ioSerialization.js +1 -1
  290. package/dist/esm/v3/utils/ioSerialization.js.map +1 -1
  291. package/dist/esm/v3/utils/zod.d.ts +8 -0
  292. package/dist/esm/v3/utils/zod.js +5 -0
  293. package/dist/esm/v3/utils/zod.js.map +1 -0
  294. package/dist/esm/v3/workloadDeploymentToken.d.ts +2 -21
  295. package/dist/esm/v3/workloadDeploymentToken.js +1 -1
  296. package/dist/esm/v3/workloadDeploymentToken.js.map +1 -1
  297. package/dist/esm/v3/zodIpc.d.ts +6 -6
  298. package/dist/esm/v3/zodIpc.js +5 -3
  299. package/dist/esm/v3/zodIpc.js.map +1 -1
  300. package/dist/esm/v3/zodMessageHandler.d.ts +14 -21
  301. package/dist/esm/v3/zodMessageHandler.js +16 -3
  302. package/dist/esm/v3/zodMessageHandler.js.map +1 -1
  303. package/dist/esm/v3/zodSocket.d.ts +11 -11
  304. package/dist/esm/v3/zodSocket.js +3 -2
  305. package/dist/esm/v3/zodSocket.js.map +1 -1
  306. package/dist/esm/version.js +1 -1
  307. package/package.json +7 -3
@@ -16,7 +16,7 @@
16
16
  * The `version` field is a forward-compat lever: readers that don't
17
17
  * recognise a version silently fall back to no-snapshot behaviour.
18
18
  */
19
- import { z } from "zod";
19
+ import { z } from "zod/v4";
20
20
  /**
21
21
  * Zod schema for `ChatSnapshotV1` with the message shape kept opaque
22
22
  * (`unknown[]`). The agent runtime types messages strictly via the
@@ -25,11 +25,103 @@ import { z } from "zod";
25
25
  */
26
26
  export const ChatSnapshotV1Schema = z.object({
27
27
  version: z.literal(1),
28
- savedAt: z.number(),
28
+ savedAt: z.number().optional(),
29
29
  messages: z.array(z.unknown()),
30
30
  lastOutEventId: z.string().optional(),
31
31
  lastInEventId: z.string().optional(),
32
32
  });
33
+ export const TranscriptSnapshotV2Schema = z.object({
34
+ version: z.literal(2),
35
+ savedAt: z.number().optional(),
36
+ messages: z.array(z.object({
37
+ id: z.string(),
38
+ final: z.boolean(),
39
+ message: z.unknown(),
40
+ })),
41
+ state: z.unknown().nullable(),
42
+ lastOutEventId: z.string().optional(),
43
+ lastInEventId: z.string().optional(),
44
+ });
45
+ /**
46
+ * Parse a fetched snapshot blob of any known version into the version 2
47
+ * shape. A version 1 blob is upgraded in memory: every message becomes a
48
+ * `final: true` entry keyed by its `id` and `state` is `null`. In both
49
+ * versions, entries without a non-empty string `id` or a non-null object
50
+ * `message` are dropped; a version 2 entry whose `message.id` disagrees with
51
+ * the envelope `id` is dropped too, since a reader keys by one and renders by
52
+ * the other. A caller never sees an entry it would crash on or mis-order.
53
+ * A missing `savedAt` defaults to `0` rather than rejecting the whole blob:
54
+ * the field only orders snapshot history before live chunks, and dropping a
55
+ * whole conversation over an absent timestamp is the wrong failure mode.
56
+ * Returns `undefined` for an unknown version or a body that is not a
57
+ * snapshot; callers treat that as "no snapshot".
58
+ */
59
+ export function parseTranscriptSnapshot(input) {
60
+ const v2 = TranscriptSnapshotV2Schema.safeParse(input);
61
+ if (v2.success) {
62
+ const messages = [];
63
+ for (const entry of v2.data.messages) {
64
+ if (entry.id.length === 0)
65
+ continue;
66
+ if (typeof entry.message !== "object" || entry.message === null)
67
+ continue;
68
+ if (entry.message.id !== entry.id)
69
+ continue;
70
+ messages.push({ id: entry.id, final: entry.final, message: entry.message });
71
+ }
72
+ return {
73
+ version: 2,
74
+ savedAt: v2.data.savedAt ?? 0,
75
+ messages,
76
+ state: v2.data.state ?? null,
77
+ lastOutEventId: v2.data.lastOutEventId,
78
+ lastInEventId: v2.data.lastInEventId,
79
+ };
80
+ }
81
+ const v1 = ChatSnapshotV1Schema.safeParse(input);
82
+ if (v1.success) {
83
+ const messages = [];
84
+ for (const raw of v1.data.messages) {
85
+ const id = raw?.id;
86
+ if (typeof id !== "string" || id.length === 0)
87
+ continue;
88
+ messages.push({ id, final: true, message: raw });
89
+ }
90
+ return {
91
+ version: 2,
92
+ savedAt: v1.data.savedAt ?? 0,
93
+ messages,
94
+ state: null,
95
+ lastOutEventId: v1.data.lastOutEventId,
96
+ lastInEventId: v1.data.lastInEventId,
97
+ };
98
+ }
99
+ return undefined;
100
+ }
101
+ /**
102
+ * Select one page of transcript entries, newest last. `before` keeps only the
103
+ * entries ordered before that id, and yields an empty page when the transcript
104
+ * no longer holds that id; `limit` keeps the last that many. A
105
+ * non-positive `limit` is treated as no limit (every entry, no cursor), so a
106
+ * caller cannot mistake an empty page for the end of the transcript. The
107
+ * returned `nextCursor` is the id to pass as `before` for the previous page,
108
+ * absent when there is no earlier page.
109
+ */
110
+ export function pageTranscriptEntries(all, opts) {
111
+ let entries = all;
112
+ if (opts?.before !== undefined) {
113
+ const idx = entries.findIndex((e) => e.id === opts.before);
114
+ if (idx === -1)
115
+ return { entries: [], nextCursor: undefined };
116
+ entries = entries.slice(0, idx);
117
+ }
118
+ let nextCursor;
119
+ if (opts?.limit !== undefined && opts.limit > 0 && entries.length > opts.limit) {
120
+ entries = entries.slice(entries.length - opts.limit);
121
+ nextCursor = entries[0]?.id;
122
+ }
123
+ return { entries, nextCursor };
124
+ }
33
125
  /**
34
126
  * S3 key suffix for a session's snapshot blob. The webapp's presigned
35
127
  * URL routes prefix this with `packets/{projectRef}/{envSlug}/`.
@@ -37,4 +129,228 @@ export const ChatSnapshotV1Schema = z.object({
37
129
  export function chatSnapshotKeySuffix(sessionId) {
38
130
  return `sessions/${sessionId}/snapshot.json`;
39
131
  }
132
+ /**
133
+ * Byte length of the fixed trailer that ends a version 2 blob:
134
+ * `#tt2:` + 16 zero-padded digits + `\n`. Fixed width so a reader can fetch
135
+ * exactly this many bytes from the end of the object and learn where the
136
+ * footer starts without a second guess.
137
+ */
138
+ export const TRANSCRIPT_TRAILER_BYTES = 22;
139
+ /**
140
+ * Media type a version 2 blob is stored under. Object stores return this on a
141
+ * ranged read, so a reader learns the format from the response it already made
142
+ * instead of inferring it from the bytes.
143
+ */
144
+ export const TRANSCRIPT_BLOB_CONTENT_TYPE = "application/vnd.trigger.transcript+ndjson";
145
+ const TRAILER_PREFIX = "#tt2:";
146
+ const V2_LINE_PREFIX = '{"v":2';
147
+ function utf8Length(value) {
148
+ return new TextEncoder().encode(value).length;
149
+ }
150
+ /**
151
+ * Serialize a snapshot to the version 2 blob format: a header line carrying
152
+ * the cursors and the private runtime `state`, one JSON entry per line, an
153
+ * entry-index footer line, and the fixed trailer.
154
+ *
155
+ * The header holds `state`, so a reader that fetches only the end of the
156
+ * object to serve a transcript page cannot receive the model lane even by
157
+ * accident.
158
+ */
159
+ export function serializeTranscriptSnapshot(snapshot) {
160
+ const header = JSON.stringify({
161
+ v: 2,
162
+ savedAt: snapshot.savedAt,
163
+ lastOutEventId: snapshot.lastOutEventId,
164
+ lastInEventId: snapshot.lastInEventId,
165
+ state: snapshot.state ?? null,
166
+ });
167
+ const ids = [];
168
+ const offsets = [];
169
+ const lines = [];
170
+ let cursor = utf8Length(header) + 1;
171
+ for (const entry of snapshot.messages) {
172
+ const line = JSON.stringify({ id: entry.id, final: entry.final, message: entry.message });
173
+ ids.push(entry.id);
174
+ offsets.push(cursor);
175
+ lines.push(line);
176
+ cursor += utf8Length(line) + 1;
177
+ }
178
+ offsets.push(cursor);
179
+ const footer = JSON.stringify({
180
+ ids,
181
+ offsets,
182
+ savedAt: snapshot.savedAt,
183
+ lastOutEventId: snapshot.lastOutEventId,
184
+ lastInEventId: snapshot.lastInEventId,
185
+ });
186
+ const trailer = `${TRAILER_PREFIX}${String(utf8Length(footer)).padStart(16, "0")}\n`;
187
+ return `${header}\n${lines.map((line) => `${line}\n`).join("")}${footer}\n${trailer}`;
188
+ }
189
+ /**
190
+ * Read the fixed trailer from the last {@link TRANSCRIPT_TRAILER_BYTES} bytes
191
+ * of a version 2 blob. Returns the footer line's byte length, or `undefined`
192
+ * when the bytes are not a trailer (a version 1 blob, or a truncated write).
193
+ */
194
+ export function readTranscriptTrailer(trailer) {
195
+ if (!trailer.startsWith(TRAILER_PREFIX) || trailer.length !== TRANSCRIPT_TRAILER_BYTES) {
196
+ return undefined;
197
+ }
198
+ const digits = trailer.slice(TRAILER_PREFIX.length, TRANSCRIPT_TRAILER_BYTES - 1);
199
+ if (!/^\d{16}$/.test(digits))
200
+ return undefined;
201
+ const footerLength = Number(digits);
202
+ return Number.isSafeInteger(footerLength) && footerLength >= 0 ? { footerLength } : undefined;
203
+ }
204
+ /** Parse a version 2 footer line into its entry index. */
205
+ export function parseTranscriptFooter(line) {
206
+ let parsed;
207
+ try {
208
+ parsed = JSON.parse(line);
209
+ }
210
+ catch {
211
+ return undefined;
212
+ }
213
+ if (!parsed || typeof parsed !== "object")
214
+ return undefined;
215
+ const { ids, offsets } = parsed;
216
+ if (!Array.isArray(ids) || !Array.isArray(offsets))
217
+ return undefined;
218
+ if (offsets.length !== ids.length + 1)
219
+ return undefined;
220
+ if (!ids.every((id) => typeof id === "string"))
221
+ return undefined;
222
+ if (!offsets.every((offset) => typeof offset === "number" && Number.isSafeInteger(offset))) {
223
+ return undefined;
224
+ }
225
+ // Offsets must strictly increase. Every entry is a non-empty JSON line plus a
226
+ // newline, so consecutive offsets always differ; equal or descending ones mean
227
+ // corrupt metadata. Accepting equality would hand the reader a zero-length
228
+ // window, which decodes to no entry at all and drops a message from the page
229
+ // while the cursor advances past it, instead of declining here so the caller
230
+ // takes the whole-object fallback.
231
+ const numeric = offsets;
232
+ if (numeric[0] < 0)
233
+ return undefined;
234
+ for (let i = 1; i < numeric.length; i++) {
235
+ if (numeric[i] <= numeric[i - 1])
236
+ return undefined;
237
+ }
238
+ const { savedAt, lastOutEventId, lastInEventId } = parsed;
239
+ return {
240
+ ids: ids,
241
+ offsets: offsets,
242
+ savedAt: typeof savedAt === "number" ? savedAt : undefined,
243
+ lastOutEventId: typeof lastOutEventId === "string" ? lastOutEventId : undefined,
244
+ lastInEventId: typeof lastInEventId === "string" ? lastInEventId : undefined,
245
+ };
246
+ }
247
+ export function planTranscriptPage(footer, opts) {
248
+ let endIndex = footer.ids.length;
249
+ if (opts?.before !== undefined) {
250
+ const idx = footer.ids.indexOf(opts.before);
251
+ if (idx === -1)
252
+ return undefined;
253
+ endIndex = idx;
254
+ }
255
+ const limit = opts?.limit !== undefined && opts.limit > 0 ? opts.limit : undefined;
256
+ let startIndex = 0;
257
+ let nextCursor;
258
+ if (limit !== undefined && endIndex > limit) {
259
+ startIndex = endIndex - limit;
260
+ nextCursor = footer.ids[startIndex];
261
+ }
262
+ if (endIndex <= startIndex)
263
+ return undefined;
264
+ return {
265
+ start: footer.offsets[startIndex],
266
+ end: footer.offsets[endIndex],
267
+ ids: footer.ids.slice(startIndex, endIndex),
268
+ nextCursor,
269
+ startIndex,
270
+ totalEntries: footer.ids.length,
271
+ };
272
+ }
273
+ function parseEntryLine(line) {
274
+ let parsed;
275
+ try {
276
+ parsed = JSON.parse(line);
277
+ }
278
+ catch {
279
+ return undefined;
280
+ }
281
+ if (!parsed || typeof parsed !== "object")
282
+ return undefined;
283
+ const { id, final, message } = parsed;
284
+ if (typeof id !== "string" || id.length === 0)
285
+ return undefined;
286
+ if (typeof message !== "object" || message === null)
287
+ return undefined;
288
+ if (message.id !== id)
289
+ return undefined;
290
+ return { id, final: final === true, message: message };
291
+ }
292
+ /**
293
+ * Parse a run of whole entry lines, e.g. the byte window
294
+ * {@link planTranscriptPage} selected. Malformed lines are dropped, matching
295
+ * {@link parseTranscriptSnapshot}: a caller never sees an entry it would crash
296
+ * on or mis-order.
297
+ */
298
+ export function parseTranscriptEntryLines(text) {
299
+ const entries = [];
300
+ for (const line of text.split("\n")) {
301
+ if (line.length === 0)
302
+ continue;
303
+ const entry = parseEntryLine(line);
304
+ if (entry)
305
+ entries.push(entry);
306
+ }
307
+ return entries;
308
+ }
309
+ /**
310
+ * Parse a whole fetched blob of any known format. Version 2 is the line-based
311
+ * format {@link serializeTranscriptSnapshot} writes; anything else is handed to
312
+ * {@link parseTranscriptSnapshot}, which still reads the version 1 blobs
313
+ * written by released SDKs.
314
+ */
315
+ export function parseTranscriptBlob(text) {
316
+ if (!text.startsWith(V2_LINE_PREFIX)) {
317
+ let parsed;
318
+ try {
319
+ parsed = JSON.parse(text);
320
+ }
321
+ catch {
322
+ return undefined;
323
+ }
324
+ return parseTranscriptSnapshot(parsed);
325
+ }
326
+ const newline = text.indexOf("\n");
327
+ if (newline === -1)
328
+ return undefined;
329
+ let header;
330
+ try {
331
+ header = JSON.parse(text.slice(0, newline));
332
+ }
333
+ catch {
334
+ return undefined;
335
+ }
336
+ const { savedAt, lastOutEventId, lastInEventId, state } = (header ?? {});
337
+ const trailerStart = text.length - TRANSCRIPT_TRAILER_BYTES;
338
+ const trailer = trailerStart >= 0 ? readTranscriptTrailer(text.slice(trailerStart)) : undefined;
339
+ let body = text.slice(newline + 1);
340
+ if (trailer) {
341
+ // Drop the footer line and the trailer; the entries are everything between
342
+ // the header and them.
343
+ const footerLine = text.lastIndexOf("\n", trailerStart - 2);
344
+ if (footerLine > newline)
345
+ body = text.slice(newline + 1, footerLine + 1);
346
+ }
347
+ return {
348
+ version: 2,
349
+ savedAt: typeof savedAt === "number" ? savedAt : 0,
350
+ messages: parseTranscriptEntryLines(body),
351
+ state: state ?? null,
352
+ lastOutEventId: typeof lastOutEventId === "string" ? lastOutEventId : undefined,
353
+ lastInEventId: typeof lastInEventId === "string" ? lastInEventId : undefined,
354
+ };
355
+ }
40
356
  //# sourceMappingURL=chatSnapshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatSnapshot.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/chatSnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,OAAO,YAAY,SAAS,gBAAgB,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"chatSnapshot.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/chatSnapshot.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,14 @@ export type RouterDropReason =
57
57
  */
58
58
  | "replayed"
59
59
  /** An `at-arrival` record with no handler attached right now. */
60
- | "no-handler";
60
+ | "no-handler"
61
+ /**
62
+ * A record the boot took responsibility for over HTTP (see
63
+ * {@link SessionChannelRouter.markRecovered}). It is dropped however late the
64
+ * live tail re-delivers it, so a recovered message is never also answered as
65
+ * a router turn.
66
+ */
67
+ | "recovered";
61
68
  export type RouterDecision =
62
69
  /** Handed to a consumer that was already waiting, or to a live handler. */
63
70
  {
@@ -127,6 +134,37 @@ export declare class SessionChannelRouter {
127
134
  restore(checkpoint: RouterCheckpoint): void;
128
135
  /** Where a boot should subscribe from: just past this sequence. */
129
136
  resumeFrom(): number | undefined;
137
+ /**
138
+ * Declare the sequences a continuation boot already read over HTTP and took
139
+ * responsibility for dispatching itself, so the live tail's re-read of the
140
+ * same records does not answer them a second time.
141
+ *
142
+ * Two effects, deliberately separate:
143
+ *
144
+ * - Every claimed sequence is dropped in {@link ingest} however late it
145
+ * arrives (`"recovered"`), so a record the boot owns never also becomes a
146
+ * router turn. This survives the boot settling it — the boot owns its
147
+ * disposition for the whole run, and the tail may re-deliver at any time.
148
+ * - Each claimed sequence is also *owed*: it holds the resume floor exactly
149
+ * like a queued record would, until the boot {@link settleRecovered}s it.
150
+ * Suppressing the second delivery without this would let a turn boundary
151
+ * publish a floor past a message the boot has not answered yet, turning a
152
+ * duplicate into a dropped message.
153
+ *
154
+ * `#highestSeq` is advanced over the contiguous run of claimed sequences from
155
+ * the current high water, so once every claim is settled the floor can move
156
+ * past them even if the tail never re-delivers (a silent tail then degrades
157
+ * to a duplicate, never a loss). The advance stops at the first gap so a
158
+ * record the boot left for the router is never skipped.
159
+ */
160
+ markRecovered(seqNums: Iterable<number>): void;
161
+ /**
162
+ * Release a claimed sequence's hold on the resume floor once the boot has
163
+ * decided its disposition (dispatched it as a turn, folded it into the seed
164
+ * chain, or deliberately dropped it). It stays claimed, so a late tail
165
+ * re-delivery is still dropped rather than answered again.
166
+ */
167
+ settleRecovered(seqNum: number): void;
130
168
  /**
131
169
  * Classify one record and act on it. The record's destination is decided
132
170
  * here, once, and never by whichever consumer happens to be waiting.
@@ -53,6 +53,8 @@ export class SessionChannelRouter {
53
53
  #highestSeq;
54
54
  #resumeFrom;
55
55
  #appliedThrough;
56
+ #claimed = new Set();
57
+ #owed = new Set();
56
58
  #onDrop;
57
59
  constructor(table, options) {
58
60
  this.table = table;
@@ -94,6 +96,57 @@ export class SessionChannelRouter {
94
96
  resumeFrom() {
95
97
  return this.#resumeFrom;
96
98
  }
99
+ /**
100
+ * Declare the sequences a continuation boot already read over HTTP and took
101
+ * responsibility for dispatching itself, so the live tail's re-read of the
102
+ * same records does not answer them a second time.
103
+ *
104
+ * Two effects, deliberately separate:
105
+ *
106
+ * - Every claimed sequence is dropped in {@link ingest} however late it
107
+ * arrives (`"recovered"`), so a record the boot owns never also becomes a
108
+ * router turn. This survives the boot settling it — the boot owns its
109
+ * disposition for the whole run, and the tail may re-deliver at any time.
110
+ * - Each claimed sequence is also *owed*: it holds the resume floor exactly
111
+ * like a queued record would, until the boot {@link settleRecovered}s it.
112
+ * Suppressing the second delivery without this would let a turn boundary
113
+ * publish a floor past a message the boot has not answered yet, turning a
114
+ * duplicate into a dropped message.
115
+ *
116
+ * `#highestSeq` is advanced over the contiguous run of claimed sequences from
117
+ * the current high water, so once every claim is settled the floor can move
118
+ * past them even if the tail never re-delivers (a silent tail then degrades
119
+ * to a duplicate, never a loss). The advance stops at the first gap so a
120
+ * record the boot left for the router is never skipped.
121
+ */
122
+ markRecovered(seqNums) {
123
+ const nums = [...seqNums].filter((n) => Number.isFinite(n)).sort((a, b) => a - b);
124
+ if (nums.length === 0)
125
+ return;
126
+ for (const n of nums) {
127
+ this.#claimed.add(n);
128
+ this.#owed.add(n);
129
+ }
130
+ let base = this.#highestSeq ?? nums[0] - 1;
131
+ while (this.#claimed.has(base + 1))
132
+ base++;
133
+ if (this.#highestSeq === undefined || base > this.#highestSeq) {
134
+ this.#highestSeq = base;
135
+ }
136
+ const maxClaimed = nums[nums.length - 1];
137
+ if (this.#appliedThrough === undefined || maxClaimed > this.#appliedThrough) {
138
+ this.#appliedThrough = maxClaimed;
139
+ }
140
+ }
141
+ /**
142
+ * Release a claimed sequence's hold on the resume floor once the boot has
143
+ * decided its disposition (dispatched it as a turn, folded it into the seed
144
+ * chain, or deliberately dropped it). It stays claimed, so a late tail
145
+ * re-delivery is still dropped rather than answered again.
146
+ */
147
+ settleRecovered(seqNum) {
148
+ this.#owed.delete(seqNum);
149
+ }
97
150
  /**
98
151
  * Classify one record and act on it. The record's destination is decided
99
152
  * here, once, and never by whichever consumer happens to be waiting.
@@ -109,6 +162,9 @@ export class SessionChannelRouter {
109
162
  this.#highestSeq = record.seqNum;
110
163
  }
111
164
  }
165
+ if (this.#claimed.has(record.seqNum)) {
166
+ return this.#drop(record, "recovered");
167
+ }
112
168
  const kind = this.#kindOf(record.data);
113
169
  if (kind === undefined) {
114
170
  return this.#drop(record, "malformed");
@@ -195,6 +251,10 @@ export class SessionChannelRouter {
195
251
  if (pending !== undefined)
196
252
  earliestPending = Math.min(earliestPending, pending);
197
253
  }
254
+ for (const owed of this.#owed) {
255
+ if (owed < earliestPending)
256
+ earliestPending = owed;
257
+ }
198
258
  if (earliestPending === Infinity)
199
259
  return this.#highestSeq;
200
260
  const floor = Math.min(this.#highestSeq, earliestPending - 1);
@@ -393,6 +453,8 @@ export class SessionChannelRouter {
393
453
  this.#highestSeq = undefined;
394
454
  this.#resumeFrom = undefined;
395
455
  this.#appliedThrough = undefined;
456
+ this.#claimed.clear();
457
+ this.#owed.clear();
396
458
  }
397
459
  }
398
460
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/router.ts"],"names":[],"mappings":"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"}
@@ -46,9 +46,24 @@ export declare const SESSION_IN_EVENT_ID_HEADER: "session-in-event-id";
46
46
  * boot this bound tells the run which control records it has already seen.
47
47
  */
48
48
  export declare const SESSION_IN_CONSUMED_ID_HEADER: "session-in-consumed-id";
49
+ /**
50
+ * Header marking a session as closed. Carried by the `session-closed` control
51
+ * record, and also stamped on a `turn-complete` record when the close was
52
+ * decided before that turn ended — readers terminate their stream on
53
+ * turn-complete, so that is the last moment a live client can be told.
54
+ */
55
+ export declare const SESSION_CLOSED_HEADER: "session-closed";
56
+ /**
57
+ * Header on `session-closed` records carrying the reason the session was
58
+ * closed, as supplied to `chat.close({ reason })` / `sessions.close()`.
59
+ * Omitted when no reason was given.
60
+ */
61
+ export declare const SESSION_CLOSED_REASON_HEADER: "session-closed-reason";
49
62
  export declare const TRIGGER_CONTROL_SUBTYPE: {
50
63
  readonly TURN_COMPLETE: "turn-complete";
51
64
  readonly UPGRADE_REQUIRED: "upgrade-required";
65
+ readonly SESSION_CLOSED: "session-closed";
66
+ readonly PENDING_VERSION: "pending-version";
52
67
  };
53
68
  export type TriggerControlSubtype = (typeof TRIGGER_CONTROL_SUBTYPE)[keyof typeof TRIGGER_CONTROL_SUBTYPE];
54
69
  /** Read a single header value by name. Returns the first match. */
@@ -46,9 +46,24 @@ export const SESSION_IN_EVENT_ID_HEADER = "session-in-event-id";
46
46
  * boot this bound tells the run which control records it has already seen.
47
47
  */
48
48
  export const SESSION_IN_CONSUMED_ID_HEADER = "session-in-consumed-id";
49
+ /**
50
+ * Header marking a session as closed. Carried by the `session-closed` control
51
+ * record, and also stamped on a `turn-complete` record when the close was
52
+ * decided before that turn ended — readers terminate their stream on
53
+ * turn-complete, so that is the last moment a live client can be told.
54
+ */
55
+ export const SESSION_CLOSED_HEADER = "session-closed";
56
+ /**
57
+ * Header on `session-closed` records carrying the reason the session was
58
+ * closed, as supplied to `chat.close({ reason })` / `sessions.close()`.
59
+ * Omitted when no reason was given.
60
+ */
61
+ export const SESSION_CLOSED_REASON_HEADER = "session-closed-reason";
49
62
  export const TRIGGER_CONTROL_SUBTYPE = {
50
63
  TURN_COMPLETE: "turn-complete",
51
64
  UPGRADE_REQUIRED: "upgrade-required",
65
+ SESSION_CLOSED: "session-closed",
66
+ PENDING_VERSION: "pending-version",
52
67
  };
53
68
  /** Read a single header value by name. Returns the first match. */
54
69
  export function headerValue(headers, name) {
@@ -1 +1 @@
1
- {"version":3,"file":"wireProtocol.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/wireProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAA0B,CAAC;AAEjE,iFAAiF;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAA8B,CAAC;AAEzE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kCAAkC,GAAG,eAAwB,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAA8B,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,wBAAiC,CAAC;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAKX,mEAAmE;AACnE,MAAM,UAAU,WAAW,CACzB,OAA6D,EAC7D,IAAY;IAEZ,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA6D;IAE7D,OAAO,WAAW,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA6D;IAE7D,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"wireProtocol.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/wireProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAA0B,CAAC;AAEjE,iFAAiF;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAA8B,CAAC;AAEzE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kCAAkC,GAAG,eAAwB,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAA8B,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,wBAAiC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAyB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,uBAAgC,CAAC;AAE7E,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;CAC1B,CAAC;AAKX,mEAAmE;AACnE,MAAM,UAAU,WAAW,CACzB,OAA6D,EAC7D,IAAY;IAEZ,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA6D;IAE7D,OAAO,WAAW,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA6D;IAE7D,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC"}
@@ -156,7 +156,11 @@ export class TestSessionStreamManager {
156
156
  return this.seqNums.get(keyFor(sessionId, io));
157
157
  }
158
158
  setLastSeqNum(sessionId, io, seqNum) {
159
- this.seqNums.set(keyFor(sessionId, io), seqNum);
159
+ const key = keyFor(sessionId, io);
160
+ const current = this.seqNums.get(key);
161
+ if (current === undefined || seqNum > current) {
162
+ this.seqNums.set(key, seqNum);
163
+ }
160
164
  }
161
165
  consumeRecord(sessionId, io, seqNum) {
162
166
  const key = keyFor(sessionId, io);