@trigger.dev/core 4.5.14 → 4.5.16

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 (271) hide show
  1. package/dist/commonjs/v3/apiClient/index.d.ts +8 -2
  2. package/dist/commonjs/v3/apiClient/index.js +19 -6
  3. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  4. package/dist/commonjs/v3/build/extensions.d.ts +8 -0
  5. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.d.ts +2 -2
  6. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js +6 -6
  7. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -1
  8. package/dist/commonjs/v3/schemas/api.d.ts +1 -0
  9. package/dist/commonjs/v3/schemas/api.js +17 -1
  10. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  11. package/dist/commonjs/v3/session-streams-api.d.ts +1 -0
  12. package/dist/commonjs/v3/session-streams-api.js +1 -0
  13. package/dist/commonjs/v3/session-streams-api.js.map +1 -1
  14. package/dist/commonjs/v3/sessionStreams/channels.d.ts +25 -0
  15. package/dist/commonjs/v3/sessionStreams/channels.js +3 -0
  16. package/dist/commonjs/v3/sessionStreams/channels.js.map +1 -0
  17. package/dist/commonjs/v3/sessionStreams/index.d.ts +16 -16
  18. package/dist/commonjs/v3/sessionStreams/index.js +32 -32
  19. package/dist/commonjs/v3/sessionStreams/index.js.map +1 -1
  20. package/dist/commonjs/v3/sessionStreams/manager.d.ts +16 -16
  21. package/dist/commonjs/v3/sessionStreams/manager.js +48 -47
  22. package/dist/commonjs/v3/sessionStreams/manager.js.map +1 -1
  23. package/dist/commonjs/v3/sessionStreams/types.d.ts +16 -16
  24. package/dist/commonjs/version.js +1 -1
  25. package/dist/esm/v3/apiClient/index.d.ts +8 -2
  26. package/dist/esm/v3/apiClient/index.js +19 -6
  27. package/dist/esm/v3/apiClient/index.js.map +1 -1
  28. package/dist/esm/v3/build/extensions.d.ts +8 -0
  29. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.d.ts +2 -2
  30. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js +6 -6
  31. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -1
  32. package/dist/esm/v3/schemas/api.d.ts +1 -0
  33. package/dist/esm/v3/schemas/api.js +16 -1
  34. package/dist/esm/v3/schemas/api.js.map +1 -1
  35. package/dist/esm/v3/session-streams-api.d.ts +1 -0
  36. package/dist/esm/v3/session-streams-api.js +1 -0
  37. package/dist/esm/v3/session-streams-api.js.map +1 -1
  38. package/dist/esm/v3/sessionStreams/channels.d.ts +25 -0
  39. package/dist/esm/v3/sessionStreams/channels.js +2 -0
  40. package/dist/esm/v3/sessionStreams/channels.js.map +1 -0
  41. package/dist/esm/v3/sessionStreams/index.d.ts +16 -16
  42. package/dist/esm/v3/sessionStreams/index.js +32 -32
  43. package/dist/esm/v3/sessionStreams/index.js.map +1 -1
  44. package/dist/esm/v3/sessionStreams/manager.d.ts +16 -16
  45. package/dist/esm/v3/sessionStreams/manager.js +48 -47
  46. package/dist/esm/v3/sessionStreams/manager.js.map +1 -1
  47. package/dist/esm/v3/sessionStreams/types.d.ts +16 -16
  48. package/dist/esm/version.js +1 -1
  49. package/package.json +4 -1
  50. package/dist/commonjs/v3/apiClient/bulkActions.test.d.ts +0 -1
  51. package/dist/commonjs/v3/apiClient/bulkActions.test.js +0 -151
  52. package/dist/commonjs/v3/apiClient/bulkActions.test.js.map +0 -1
  53. package/dist/commonjs/v3/apiClient/refreshAccessToken.test.d.ts +0 -1
  54. package/dist/commonjs/v3/apiClient/refreshAccessToken.test.js +0 -55
  55. package/dist/commonjs/v3/apiClient/refreshAccessToken.test.js.map +0 -1
  56. package/dist/commonjs/v3/apiClient/runStream.test.d.ts +0 -1
  57. package/dist/commonjs/v3/apiClient/runStream.test.js +0 -825
  58. package/dist/commonjs/v3/apiClient/runStream.test.js.map +0 -1
  59. package/dist/commonjs/v3/apiClient/streamBatchItems.test.d.ts +0 -1
  60. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js +0 -408
  61. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js.map +0 -1
  62. package/dist/commonjs/v3/apiKeys.test.d.ts +0 -1
  63. package/dist/commonjs/v3/apiKeys.test.js +0 -19
  64. package/dist/commonjs/v3/apiKeys.test.js.map +0 -1
  65. package/dist/commonjs/v3/apps/exec.test.d.ts +0 -1
  66. package/dist/commonjs/v3/apps/exec.test.js +0 -23
  67. package/dist/commonjs/v3/apps/exec.test.js.map +0 -1
  68. package/dist/commonjs/v3/build/flags.test.d.ts +0 -1
  69. package/dist/commonjs/v3/build/flags.test.js +0 -50
  70. package/dist/commonjs/v3/build/flags.test.js.map +0 -1
  71. package/dist/commonjs/v3/build/runtime.test.d.ts +0 -1
  72. package/dist/commonjs/v3/build/runtime.test.js +0 -44
  73. package/dist/commonjs/v3/build/runtime.test.js.map +0 -1
  74. package/dist/commonjs/v3/errors.test.d.ts +0 -1
  75. package/dist/commonjs/v3/errors.test.js +0 -36
  76. package/dist/commonjs/v3/errors.test.js.map +0 -1
  77. package/dist/commonjs/v3/externalDeploymentId.test.d.ts +0 -1
  78. package/dist/commonjs/v3/externalDeploymentId.test.js +0 -173
  79. package/dist/commonjs/v3/externalDeploymentId.test.js.map +0 -1
  80. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.d.ts +0 -1
  81. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js +0 -44
  82. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js.map +0 -1
  83. package/dist/commonjs/v3/idempotencyKeys.test.d.ts +0 -1
  84. package/dist/commonjs/v3/idempotencyKeys.test.js +0 -192
  85. package/dist/commonjs/v3/idempotencyKeys.test.js.map +0 -1
  86. package/dist/commonjs/v3/isomorphic/friendlyId.test.d.ts +0 -1
  87. package/dist/commonjs/v3/isomorphic/friendlyId.test.js +0 -497
  88. package/dist/commonjs/v3/isomorphic/friendlyId.test.js.map +0 -1
  89. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.d.ts +0 -1
  90. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js +0 -141
  91. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js.map +0 -1
  92. package/dist/commonjs/v3/isomorphic/waitpointMint.test.d.ts +0 -1
  93. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js +0 -97
  94. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js.map +0 -1
  95. package/dist/commonjs/v3/machines/max-old-space.test.d.ts +0 -1
  96. package/dist/commonjs/v3/machines/max-old-space.test.js +0 -44
  97. package/dist/commonjs/v3/machines/max-old-space.test.js.map +0 -1
  98. package/dist/commonjs/v3/otel/tracingSDK.test.d.ts +0 -1
  99. package/dist/commonjs/v3/otel/tracingSDK.test.js +0 -174
  100. package/dist/commonjs/v3/otel/tracingSDK.test.js.map +0 -1
  101. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.d.ts +0 -1
  102. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.js +0 -18
  103. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.js.map +0 -1
  104. package/dist/commonjs/v3/realtimeStreams/manager.test.d.ts +0 -1
  105. package/dist/commonjs/v3/realtimeStreams/manager.test.js +0 -89
  106. package/dist/commonjs/v3/realtimeStreams/manager.test.js.map +0 -1
  107. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.d.ts +0 -1
  108. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js +0 -68
  109. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js.map +0 -1
  110. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.d.ts +0 -1
  111. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.js +0 -674
  112. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.js.map +0 -1
  113. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.d.ts +0 -1
  114. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.js +0 -77
  115. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.js.map +0 -1
  116. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.d.ts +0 -1
  117. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js +0 -293
  118. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js.map +0 -1
  119. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.d.ts +0 -1
  120. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.js +0 -235
  121. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.js.map +0 -1
  122. package/dist/commonjs/v3/schemas/api-type.test.d.ts +0 -1
  123. package/dist/commonjs/v3/schemas/api-type.test.js +0 -358
  124. package/dist/commonjs/v3/schemas/api-type.test.js.map +0 -1
  125. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.d.ts +0 -1
  126. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.js +0 -79
  127. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.js.map +0 -1
  128. package/dist/commonjs/v3/schemas/idempotencyKey.test.d.ts +0 -1
  129. package/dist/commonjs/v3/schemas/idempotencyKey.test.js +0 -157
  130. package/dist/commonjs/v3/schemas/idempotencyKey.test.js.map +0 -1
  131. package/dist/commonjs/v3/schemas/scheduleWindow.test.d.ts +0 -1
  132. package/dist/commonjs/v3/schemas/scheduleWindow.test.js +0 -52
  133. package/dist/commonjs/v3/schemas/scheduleWindow.test.js.map +0 -1
  134. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.d.ts +0 -1
  135. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.js +0 -104
  136. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.js.map +0 -1
  137. package/dist/commonjs/v3/serverOnly/shutdownManager.test.d.ts +0 -1
  138. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js +0 -139
  139. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js.map +0 -1
  140. package/dist/commonjs/v3/sessionStreams/manager.test.d.ts +0 -1
  141. package/dist/commonjs/v3/sessionStreams/manager.test.js +0 -375
  142. package/dist/commonjs/v3/sessionStreams/manager.test.js.map +0 -1
  143. package/dist/commonjs/v3/sessionStreams/router.test.d.ts +0 -1
  144. package/dist/commonjs/v3/sessionStreams/router.test.js +0 -463
  145. package/dist/commonjs/v3/sessionStreams/router.test.js.map +0 -1
  146. package/dist/commonjs/v3/taskContext/index.test.d.ts +0 -1
  147. package/dist/commonjs/v3/taskContext/index.test.js +0 -73
  148. package/dist/commonjs/v3/taskContext/index.test.js.map +0 -1
  149. package/dist/commonjs/v3/taskContext/otelProcessors.test.d.ts +0 -1
  150. package/dist/commonjs/v3/taskContext/otelProcessors.test.js +0 -109
  151. package/dist/commonjs/v3/taskContext/otelProcessors.test.js.map +0 -1
  152. package/dist/commonjs/v3/telnetLogServer.test.d.ts +0 -1
  153. package/dist/commonjs/v3/telnetLogServer.test.js +0 -144
  154. package/dist/commonjs/v3/telnetLogServer.test.js.map +0 -1
  155. package/dist/commonjs/v3/utils/reconnectBackoff.test.d.ts +0 -1
  156. package/dist/commonjs/v3/utils/reconnectBackoff.test.js +0 -76
  157. package/dist/commonjs/v3/utils/reconnectBackoff.test.js.map +0 -1
  158. package/dist/commonjs/v3/workloadDeploymentToken.test.d.ts +0 -1
  159. package/dist/commonjs/v3/workloadDeploymentToken.test.js +0 -110
  160. package/dist/commonjs/v3/workloadDeploymentToken.test.js.map +0 -1
  161. package/dist/esm/v3/apiClient/bulkActions.test.d.ts +0 -1
  162. package/dist/esm/v3/apiClient/bulkActions.test.js +0 -149
  163. package/dist/esm/v3/apiClient/bulkActions.test.js.map +0 -1
  164. package/dist/esm/v3/apiClient/refreshAccessToken.test.d.ts +0 -1
  165. package/dist/esm/v3/apiClient/refreshAccessToken.test.js +0 -53
  166. package/dist/esm/v3/apiClient/refreshAccessToken.test.js.map +0 -1
  167. package/dist/esm/v3/apiClient/runStream.test.d.ts +0 -1
  168. package/dist/esm/v3/apiClient/runStream.test.js +0 -823
  169. package/dist/esm/v3/apiClient/runStream.test.js.map +0 -1
  170. package/dist/esm/v3/apiClient/streamBatchItems.test.d.ts +0 -1
  171. package/dist/esm/v3/apiClient/streamBatchItems.test.js +0 -406
  172. package/dist/esm/v3/apiClient/streamBatchItems.test.js.map +0 -1
  173. package/dist/esm/v3/apiKeys.test.d.ts +0 -1
  174. package/dist/esm/v3/apiKeys.test.js +0 -17
  175. package/dist/esm/v3/apiKeys.test.js.map +0 -1
  176. package/dist/esm/v3/apps/exec.test.d.ts +0 -1
  177. package/dist/esm/v3/apps/exec.test.js +0 -21
  178. package/dist/esm/v3/apps/exec.test.js.map +0 -1
  179. package/dist/esm/v3/build/flags.test.d.ts +0 -1
  180. package/dist/esm/v3/build/flags.test.js +0 -48
  181. package/dist/esm/v3/build/flags.test.js.map +0 -1
  182. package/dist/esm/v3/build/runtime.test.d.ts +0 -1
  183. package/dist/esm/v3/build/runtime.test.js +0 -42
  184. package/dist/esm/v3/build/runtime.test.js.map +0 -1
  185. package/dist/esm/v3/errors.test.d.ts +0 -1
  186. package/dist/esm/v3/errors.test.js +0 -34
  187. package/dist/esm/v3/errors.test.js.map +0 -1
  188. package/dist/esm/v3/externalDeploymentId.test.d.ts +0 -1
  189. package/dist/esm/v3/externalDeploymentId.test.js +0 -171
  190. package/dist/esm/v3/externalDeploymentId.test.js.map +0 -1
  191. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.d.ts +0 -1
  192. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js +0 -42
  193. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js.map +0 -1
  194. package/dist/esm/v3/idempotencyKeys.test.d.ts +0 -1
  195. package/dist/esm/v3/idempotencyKeys.test.js +0 -190
  196. package/dist/esm/v3/idempotencyKeys.test.js.map +0 -1
  197. package/dist/esm/v3/isomorphic/friendlyId.test.d.ts +0 -1
  198. package/dist/esm/v3/isomorphic/friendlyId.test.js +0 -495
  199. package/dist/esm/v3/isomorphic/friendlyId.test.js.map +0 -1
  200. package/dist/esm/v3/isomorphic/runOpsResidency.test.d.ts +0 -1
  201. package/dist/esm/v3/isomorphic/runOpsResidency.test.js +0 -139
  202. package/dist/esm/v3/isomorphic/runOpsResidency.test.js.map +0 -1
  203. package/dist/esm/v3/isomorphic/waitpointMint.test.d.ts +0 -1
  204. package/dist/esm/v3/isomorphic/waitpointMint.test.js +0 -95
  205. package/dist/esm/v3/isomorphic/waitpointMint.test.js.map +0 -1
  206. package/dist/esm/v3/machines/max-old-space.test.d.ts +0 -1
  207. package/dist/esm/v3/machines/max-old-space.test.js +0 -42
  208. package/dist/esm/v3/machines/max-old-space.test.js.map +0 -1
  209. package/dist/esm/v3/otel/tracingSDK.test.d.ts +0 -1
  210. package/dist/esm/v3/otel/tracingSDK.test.js +0 -172
  211. package/dist/esm/v3/otel/tracingSDK.test.js.map +0 -1
  212. package/dist/esm/v3/otel/tracingSDKShutdown.test.d.ts +0 -1
  213. package/dist/esm/v3/otel/tracingSDKShutdown.test.js +0 -16
  214. package/dist/esm/v3/otel/tracingSDKShutdown.test.js.map +0 -1
  215. package/dist/esm/v3/realtimeStreams/manager.test.d.ts +0 -1
  216. package/dist/esm/v3/realtimeStreams/manager.test.js +0 -87
  217. package/dist/esm/v3/realtimeStreams/manager.test.js.map +0 -1
  218. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.d.ts +0 -1
  219. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js +0 -66
  220. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js.map +0 -1
  221. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.d.ts +0 -1
  222. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.js +0 -672
  223. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.js.map +0 -1
  224. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.d.ts +0 -1
  225. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.js +0 -75
  226. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.js.map +0 -1
  227. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.d.ts +0 -1
  228. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js +0 -291
  229. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js.map +0 -1
  230. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.d.ts +0 -1
  231. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.js +0 -233
  232. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.js.map +0 -1
  233. package/dist/esm/v3/schemas/api-type.test.d.ts +0 -1
  234. package/dist/esm/v3/schemas/api-type.test.js +0 -356
  235. package/dist/esm/v3/schemas/api-type.test.js.map +0 -1
  236. package/dist/esm/v3/schemas/batchItemNDJSON.test.d.ts +0 -1
  237. package/dist/esm/v3/schemas/batchItemNDJSON.test.js +0 -77
  238. package/dist/esm/v3/schemas/batchItemNDJSON.test.js.map +0 -1
  239. package/dist/esm/v3/schemas/idempotencyKey.test.d.ts +0 -1
  240. package/dist/esm/v3/schemas/idempotencyKey.test.js +0 -155
  241. package/dist/esm/v3/schemas/idempotencyKey.test.js.map +0 -1
  242. package/dist/esm/v3/schemas/scheduleWindow.test.d.ts +0 -1
  243. package/dist/esm/v3/schemas/scheduleWindow.test.js +0 -50
  244. package/dist/esm/v3/schemas/scheduleWindow.test.js.map +0 -1
  245. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.d.ts +0 -1
  246. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.js +0 -102
  247. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.js.map +0 -1
  248. package/dist/esm/v3/serverOnly/shutdownManager.test.d.ts +0 -1
  249. package/dist/esm/v3/serverOnly/shutdownManager.test.js +0 -137
  250. package/dist/esm/v3/serverOnly/shutdownManager.test.js.map +0 -1
  251. package/dist/esm/v3/sessionStreams/manager.test.d.ts +0 -1
  252. package/dist/esm/v3/sessionStreams/manager.test.js +0 -373
  253. package/dist/esm/v3/sessionStreams/manager.test.js.map +0 -1
  254. package/dist/esm/v3/sessionStreams/router.test.d.ts +0 -1
  255. package/dist/esm/v3/sessionStreams/router.test.js +0 -461
  256. package/dist/esm/v3/sessionStreams/router.test.js.map +0 -1
  257. package/dist/esm/v3/taskContext/index.test.d.ts +0 -1
  258. package/dist/esm/v3/taskContext/index.test.js +0 -71
  259. package/dist/esm/v3/taskContext/index.test.js.map +0 -1
  260. package/dist/esm/v3/taskContext/otelProcessors.test.d.ts +0 -1
  261. package/dist/esm/v3/taskContext/otelProcessors.test.js +0 -107
  262. package/dist/esm/v3/taskContext/otelProcessors.test.js.map +0 -1
  263. package/dist/esm/v3/telnetLogServer.test.d.ts +0 -1
  264. package/dist/esm/v3/telnetLogServer.test.js +0 -139
  265. package/dist/esm/v3/telnetLogServer.test.js.map +0 -1
  266. package/dist/esm/v3/utils/reconnectBackoff.test.d.ts +0 -1
  267. package/dist/esm/v3/utils/reconnectBackoff.test.js +0 -74
  268. package/dist/esm/v3/utils/reconnectBackoff.test.js.map +0 -1
  269. package/dist/esm/v3/workloadDeploymentToken.test.d.ts +0 -1
  270. package/dist/esm/v3/workloadDeploymentToken.test.js +0 -108
  271. package/dist/esm/v3/workloadDeploymentToken.test.js.map +0 -1
@@ -1,463 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const router_js_1 = require("./router.js");
5
- const CHAT_TABLE = {
6
- kindOf: (data) => data?.kind,
7
- routes: [
8
- { name: "messages", delivery: "queue", replayable: true, kinds: ["message"] },
9
- { name: "stop", delivery: "at-arrival", replayable: false, kinds: ["stop"] },
10
- {
11
- name: "handover",
12
- delivery: "queue",
13
- replayable: false,
14
- kinds: ["handover", "handover-skip"],
15
- },
16
- ],
17
- };
18
- function router(onDrop) {
19
- return makeRouter(onDrop);
20
- }
21
- function makeRouter(onDrop) {
22
- return new router_js_1.SessionChannelRouter(CHAT_TABLE, { onDrop });
23
- }
24
- function rec(seqNum, kind, text) {
25
- return { id: `r${seqNum}`, seqNum, data: { kind, ...(text ? { text } : {}) } };
26
- }
27
- (0, vitest_1.describe)("SessionChannelRouter: table validation", () => {
28
- (0, vitest_1.it)("rejects a route that is at-arrival and replayable", () => {
29
- (0, vitest_1.expect)(() => new router_js_1.SessionChannelRouter({
30
- kindOf: () => "x",
31
- routes: [{ name: "bad", delivery: "at-arrival", replayable: true, kinds: ["x"] }],
32
- })).toThrow(/at-arrival and replayable/);
33
- });
34
- (0, vitest_1.it)("rejects a kind claimed by two routes", () => {
35
- (0, vitest_1.expect)(() => new router_js_1.SessionChannelRouter({
36
- kindOf: () => "x",
37
- routes: [
38
- { name: "a", delivery: "queue", replayable: true, kinds: ["x"] },
39
- { name: "b", delivery: "queue", replayable: false, kinds: ["x"] },
40
- ],
41
- })).toThrow(/claimed by both/);
42
- });
43
- });
44
- (0, vitest_1.describe)("SessionChannelRouter: classification", () => {
45
- (0, vitest_1.it)("queues a message when nobody is ready for it", () => {
46
- const r = router();
47
- (0, vitest_1.expect)(r.ingest(rec(0, "message", "M0"))).toEqual({ action: "queue", route: "messages" });
48
- (0, vitest_1.expect)(r.hasPending("messages")).toBe(true);
49
- });
50
- (0, vitest_1.it)("discards a stop with no handler attached", () => {
51
- const r = router();
52
- (0, vitest_1.expect)(r.ingest(rec(0, "stop"))).toEqual({
53
- action: "drop",
54
- route: "stop",
55
- reason: "no-handler",
56
- });
57
- });
58
- (0, vitest_1.it)("delivers a stop to a live handler", () => {
59
- const r = router();
60
- const seen = [];
61
- r.on("stop", (record) => seen.push(record.seqNum));
62
- (0, vitest_1.expect)(r.ingest(rec(3, "stop"))).toEqual({ action: "deliver", route: "stop" });
63
- (0, vitest_1.expect)(seen).toEqual([3]);
64
- });
65
- (0, vitest_1.it)("drops a kind no route claims, and reports it once", () => {
66
- const drops = [];
67
- const r = router((record, reason) => drops.push([record.seqNum, reason]));
68
- (0, vitest_1.expect)(r.ingest(rec(1, "some-future-kind"))).toEqual({
69
- action: "drop",
70
- reason: "unroutable",
71
- });
72
- (0, vitest_1.expect)(drops).toEqual([[1, "unroutable"]]);
73
- });
74
- (0, vitest_1.it)("drops a record with no usable kind", () => {
75
- const r = router();
76
- (0, vitest_1.expect)(r.ingest({ id: "x", seqNum: 0, data: { nope: true } })).toEqual({
77
- action: "drop",
78
- reason: "malformed",
79
- });
80
- });
81
- (0, vitest_1.it)("does not let a throwing kindOf take the channel down", () => {
82
- const r = new router_js_1.SessionChannelRouter({
83
- kindOf: () => {
84
- throw new Error("boom");
85
- },
86
- routes: [{ name: "m", delivery: "queue", replayable: true, kinds: ["message"] }],
87
- });
88
- (0, vitest_1.expect)(r.ingest(rec(0, "message"))).toEqual({ action: "drop", reason: "malformed" });
89
- });
90
- });
91
- (0, vitest_1.describe)("SessionChannelRouter: the wedge cannot happen", () => {
92
- (0, vitest_1.it)("delivers a message queued behind an unroutable record", async () => {
93
- const r = router();
94
- r.ingest(rec(0, "mystery-kind"));
95
- r.ingest(rec(1, "message", "M1"));
96
- (0, vitest_1.expect)(r.hasPending("messages")).toBe(true);
97
- const taken = await r.next("messages", { timeoutMs: 0 });
98
- (0, vitest_1.expect)(taken.data.text).toBe("M1");
99
- });
100
- (0, vitest_1.it)("reports pending for a message queued behind a stop", () => {
101
- const r = router();
102
- r.ingest(rec(0, "stop"));
103
- r.ingest(rec(1, "message", "M1"));
104
- (0, vitest_1.expect)(r.hasPending("messages")).toBe(true);
105
- (0, vitest_1.expect)(r.peek("messages").data.text).toBe("M1");
106
- });
107
- });
108
- (0, vitest_1.describe)("SessionChannelRouter: delivery ordering", () => {
109
- (0, vitest_1.it)("serves a parked waiter before a push handler", async () => {
110
- const r = router();
111
- const handlerSaw = [];
112
- const pending = r.next("messages");
113
- r.on("messages", (record) => handlerSaw.push(record.data.text));
114
- r.ingest(rec(0, "message", "M0"));
115
- (0, vitest_1.expect)((await pending)?.seqNum).toBe(0);
116
- (0, vitest_1.expect)(handlerSaw).toEqual([]);
117
- });
118
- (0, vitest_1.it)("re-offers a queued record to a handler attaching later, in order", () => {
119
- const r = router();
120
- r.ingest(rec(0, "message", "M0"));
121
- r.ingest(rec(1, "message", "M1"));
122
- const seen = [];
123
- r.on("messages", (record) => seen.push(record.data.text));
124
- (0, vitest_1.expect)(seen).toEqual(["M0", "M1"]);
125
- (0, vitest_1.expect)(r.hasPending("messages")).toBe(false);
126
- });
127
- (0, vitest_1.it)("resolves next() undefined on timeout without consuming anything", async () => {
128
- const r = router();
129
- (0, vitest_1.expect)(await r.next("messages", { timeoutMs: 5 })).toBeUndefined();
130
- r.ingest(rec(0, "message", "M0"));
131
- (0, vitest_1.expect)((await r.next("messages", { timeoutMs: 0 }))?.seqNum).toBe(0);
132
- });
133
- });
134
- (0, vitest_1.describe)("SessionChannelRouter: the resume floor", () => {
135
- (0, vitest_1.it)("sits at the high water when nothing is owed", () => {
136
- const r = router();
137
- r.on("stop", () => { });
138
- r.ingest(rec(0, "message"));
139
- r.next("messages", { timeoutMs: 0 });
140
- r.ingest(rec(1, "stop"));
141
- (0, vitest_1.expect)(r.resumeFloor()).toBe(1);
142
- (0, vitest_1.expect)(r.appliedThrough()).toBe(1);
143
- });
144
- (0, vitest_1.it)("is held below a message still queued, even as control records advance", () => {
145
- const r = router();
146
- r.on("stop", () => { });
147
- r.ingest(rec(0, "message", "M0"));
148
- r.ingest(rec(1, "message", "M1"));
149
- r.next("messages", { timeoutMs: 0 });
150
- r.ingest(rec(2, "stop"));
151
- r.ingest(rec(3, "stop"));
152
- (0, vitest_1.expect)(r.resumeFloor()).toBe(0);
153
- (0, vitest_1.expect)(r.appliedThrough()).toBe(3);
154
- });
155
- (0, vitest_1.it)("is undefined rather than negative when the very first record is owed", () => {
156
- const r = router();
157
- r.ingest(rec(0, "message", "M0"));
158
- (0, vitest_1.expect)(r.resumeFloor()).toBeUndefined();
159
- });
160
- (0, vitest_1.it)("is not held back by a queued non-replayable record", () => {
161
- const r = router();
162
- r.ingest(rec(0, "handover"));
163
- r.ingest(rec(1, "message", "M1"));
164
- r.next("messages", { timeoutMs: 0 });
165
- (0, vitest_1.expect)(r.pendingCount("handover")).toBe(1);
166
- (0, vitest_1.expect)(r.resumeFloor()).toBe(1);
167
- });
168
- (0, vitest_1.it)("advances once the owed message is taken", async () => {
169
- const r = router();
170
- r.on("stop", () => { });
171
- r.ingest(rec(0, "message", "M0"));
172
- r.ingest(rec(1, "stop"));
173
- (0, vitest_1.expect)(r.resumeFloor()).toBeUndefined();
174
- await r.next("messages", { timeoutMs: 0 });
175
- (0, vitest_1.expect)(r.resumeFloor()).toBe(1);
176
- });
177
- (0, vitest_1.it)("tracks the earliest of several owed messages", () => {
178
- const r = router();
179
- r.ingest(rec(0, "message", "M0"));
180
- r.ingest(rec(1, "message", "M1"));
181
- r.ingest(rec(2, "message", "M2"));
182
- r.next("messages", { timeoutMs: 0 });
183
- (0, vitest_1.expect)(r.resumeFloor()).toBe(0);
184
- (0, vitest_1.expect)(r.appliedThrough()).toBe(2);
185
- });
186
- });
187
- (0, vitest_1.describe)("SessionChannelRouter: resuming", () => {
188
- (0, vitest_1.it)("does not apply a non-replayable record inside the replay window", () => {
189
- const r = router();
190
- r.restore({ resumeFrom: 0, appliedThrough: 2 });
191
- const stops = [];
192
- r.on("stop", (record) => stops.push(record.seqNum));
193
- (0, vitest_1.expect)(r.ingest(rec(1, "message", "M1"))).toEqual({ action: "queue", route: "messages" });
194
- (0, vitest_1.expect)(r.ingest(rec(2, "stop"))).toEqual({
195
- action: "drop",
196
- route: "stop",
197
- reason: "replayed",
198
- });
199
- (0, vitest_1.expect)(stops).toEqual([]);
200
- });
201
- (0, vitest_1.it)("applies the same kind arriving live, past the window", () => {
202
- const r = router();
203
- r.restore({ resumeFrom: 0, appliedThrough: 2 });
204
- const stops = [];
205
- r.on("stop", (record) => stops.push(record.seqNum));
206
- r.ingest(rec(1, "message", "M1"));
207
- r.ingest(rec(2, "stop"));
208
- (0, vitest_1.expect)(r.ingest(rec(3, "stop"))).toEqual({ action: "deliver", route: "stop" });
209
- (0, vitest_1.expect)(stops).toEqual([3]);
210
- });
211
- (0, vitest_1.it)("falls back to the floor when no replay-window end is supplied", () => {
212
- const r = router();
213
- r.restore({ resumeFrom: 4 });
214
- r.on("stop", () => { });
215
- (0, vitest_1.expect)(r.ingest(rec(4, "stop")).action).toBe("drop");
216
- (0, vitest_1.expect)(r.ingest(rec(5, "stop"))).toEqual({ action: "deliver", route: "stop" });
217
- });
218
- (0, vitest_1.it)("declines a control record inside a window resolved from the channel", () => {
219
- const r = router();
220
- // What the chat layer supplies when the boundary predates the published
221
- // window: everything already on the channel at boot counts as replayed.
222
- r.restore({ resumeFrom: 4, appliedThrough: 6 });
223
- const stops = [];
224
- r.on("stop", (record) => stops.push(record.seqNum));
225
- (0, vitest_1.expect)(r.ingest(rec(5, "message", "M5"))).toEqual({ action: "queue", route: "messages" });
226
- (0, vitest_1.expect)(r.ingest(rec(6, "stop"))).toEqual({
227
- action: "drop",
228
- route: "stop",
229
- reason: "replayed",
230
- });
231
- (0, vitest_1.expect)(r.ingest(rec(7, "stop"))).toEqual({ action: "deliver", route: "stop" });
232
- (0, vitest_1.expect)(stops).toEqual([7]);
233
- });
234
- (0, vitest_1.it)("applies everything on a fresh session with no checkpoint", () => {
235
- const r = router();
236
- r.on("stop", () => { });
237
- (0, vitest_1.expect)(r.ingest(rec(0, "stop"))).toEqual({ action: "deliver", route: "stop" });
238
- });
239
- (0, vitest_1.it)("never drops a replayable record, however far inside the window", () => {
240
- const r = router();
241
- r.restore({ resumeFrom: 0, appliedThrough: 9 });
242
- (0, vitest_1.expect)(r.ingest(rec(1, "message", "M1"))).toEqual({ action: "queue", route: "messages" });
243
- });
244
- (0, vitest_1.it)("keeps the floor from moving backwards past the restored point", () => {
245
- const r = router();
246
- r.restore({ resumeFrom: 7, appliedThrough: 7 });
247
- (0, vitest_1.expect)(r.resumeFloor()).toBe(7);
248
- });
249
- });
250
- (0, vitest_1.describe)("SessionChannelRouter: consumer windows", () => {
251
- (0, vitest_1.it)("queues a handover that arrives before its consumer is ready", async () => {
252
- const r = router();
253
- (0, vitest_1.expect)(r.ingest(rec(0, "handover")).action).toBe("queue");
254
- const taken = await r.next("handover", { timeoutMs: 0 });
255
- (0, vitest_1.expect)(taken?.seqNum).toBe(0);
256
- });
257
- (0, vitest_1.it)("discards what is left on a route when its window closes", () => {
258
- const r = router();
259
- r.ingest(rec(0, "handover"));
260
- r.clearRoute("handover");
261
- (0, vitest_1.expect)(r.pendingCount("handover")).toBe(0);
262
- (0, vitest_1.expect)(r.resumeFloor()).toBe(0);
263
- });
264
- (0, vitest_1.it)("wakes a waiter empty when its window closes", async () => {
265
- const r = router();
266
- const pending = r.next("handover");
267
- r.clearRoute("handover");
268
- (0, vitest_1.expect)(await pending).toBeUndefined();
269
- });
270
- });
271
- /**
272
- * The invariant the whole design exists to hold: across any interleaving and
273
- * any crash point, a message is delivered exactly once and a stop is never
274
- * applied twice.
275
- *
276
- * Runs every record sequence over a simulated two-boot lifecycle. The second
277
- * boot resubscribes from the published floor, exactly as the tail does with
278
- * `Last-Event-ID`, so a floor that is too high shows up as a lost message and
279
- * one that replays a stop shows up as a duplicate application.
280
- */
281
- (0, vitest_1.describe)("SessionChannelRouter: exactly-once across a crash", () => {
282
- const KINDS = ["message", "stop", "handover", "junk"];
283
- function interleavings(length) {
284
- if (length === 0)
285
- return [[]];
286
- const shorter = interleavings(length - 1);
287
- const out = [];
288
- for (const prefix of shorter) {
289
- for (const kind of KINDS)
290
- out.push([...prefix, kind]);
291
- }
292
- return out;
293
- }
294
- function runBoot(records, checkpoint, takeMessages, attachStop) {
295
- const r = router();
296
- r.restore(checkpoint);
297
- const messages = [];
298
- const stops = [];
299
- if (attachStop)
300
- r.on("stop", (record) => stops.push(record.seqNum));
301
- for (const record of records) {
302
- if (checkpoint.resumeFrom !== undefined && record.seqNum <= checkpoint.resumeFrom)
303
- continue;
304
- r.ingest(record);
305
- }
306
- for (let i = 0; i < takeMessages; i++) {
307
- const head = r.peek("messages");
308
- if (!head)
309
- break;
310
- void r.next("messages", { timeoutMs: 0 });
311
- messages.push(head.seqNum);
312
- }
313
- return { messages, stops, checkpoint: r.checkpoint() };
314
- }
315
- (0, vitest_1.it)("delivers every message exactly once and applies no stop twice", () => {
316
- const cases = interleavings(4);
317
- (0, vitest_1.expect)(cases.length).toBe(256);
318
- for (const kinds of cases) {
319
- const records = kinds.map((kind, index) => rec(index, kind));
320
- const messageSeqs = records
321
- .filter((record) => record.data.kind === "message")
322
- .map((record) => record.seqNum);
323
- for (let crashAfter = 0; crashAfter <= kinds.length; crashAfter++) {
324
- const first = runBoot(records, {}, crashAfter, true);
325
- const second = runBoot(records, first.checkpoint, kinds.length, true);
326
- const delivered = [...first.messages, ...second.messages];
327
- (0, vitest_1.expect)(delivered, `messages for [${kinds.join(",")}] crashAfter=${crashAfter}`).toEqual(messageSeqs);
328
- const appliedTwice = first.stops.filter((seq) => second.stops.includes(seq));
329
- (0, vitest_1.expect)(appliedTwice, `stops applied twice for [${kinds.join(",")}] crashAfter=${crashAfter}`).toEqual([]);
330
- }
331
- }
332
- });
333
- });
334
- (0, vitest_1.describe)("SessionChannelRouter: observe", () => {
335
- (0, vitest_1.it)("notifies without consuming, so the record still queues and holds the floor", () => {
336
- const r = router();
337
- const seen = [];
338
- r.observe("messages", (record) => seen.push(record.seqNum));
339
- r.ingest(rec(0, "message"));
340
- (0, vitest_1.expect)(seen).toEqual([0]);
341
- (0, vitest_1.expect)(r.hasPending("messages")).toBe(true);
342
- (0, vitest_1.expect)(r.resumeFloor()).toBeUndefined();
343
- });
344
- (0, vitest_1.it)("does not satisfy a queue route's handler delivery", () => {
345
- const r = router();
346
- const observed = [];
347
- const handled = [];
348
- r.observe("messages", (record) => observed.push(record.seqNum));
349
- r.ingest(rec(0, "message"));
350
- (0, vitest_1.expect)(handled).toEqual([]);
351
- r.on("messages", (record) => handled.push(record.seqNum));
352
- (0, vitest_1.expect)(handled).toEqual([0]);
353
- (0, vitest_1.expect)(observed).toEqual([0]);
354
- });
355
- (0, vitest_1.it)("rejects an at-arrival route, so a stop with only an observer is still discarded", () => {
356
- const r = router();
357
- (0, vitest_1.expect)(() => r.observe("stop", () => { })).toThrow(/at-arrival/);
358
- });
359
- (0, vitest_1.it)("does not re-offer records that were already queued when it attached", () => {
360
- const r = router();
361
- r.ingest(rec(0, "message"));
362
- const seen = [];
363
- r.observe("messages", (record) => seen.push(record.seqNum));
364
- (0, vitest_1.expect)(seen).toEqual([]);
365
- r.ingest(rec(1, "message"));
366
- (0, vitest_1.expect)(seen).toEqual([1]);
367
- });
368
- (0, vitest_1.it)("stops notifying after off()", () => {
369
- const r = router();
370
- const seen = [];
371
- const sub = r.observe("messages", (record) => seen.push(record.seqNum));
372
- r.ingest(rec(0, "message"));
373
- sub.off();
374
- r.ingest(rec(1, "message"));
375
- (0, vitest_1.expect)(seen).toEqual([0]);
376
- });
377
- });
378
- (0, vitest_1.describe)("SessionChannelRouter: take", () => {
379
- (0, vitest_1.it)("removes one queued record by sequence and releases the floor", () => {
380
- const r = router();
381
- r.ingest(rec(0, "message"));
382
- r.ingest(rec(1, "message"));
383
- (0, vitest_1.expect)(r.take("messages", 0)?.seqNum).toBe(0);
384
- (0, vitest_1.expect)(r.pendingCount("messages")).toBe(1);
385
- (0, vitest_1.expect)(r.peek("messages")?.seqNum).toBe(1);
386
- });
387
- (0, vitest_1.it)("reports false for a record that is no longer queued", () => {
388
- const r = router();
389
- r.ingest(rec(0, "message"));
390
- (0, vitest_1.expect)(r.take("messages", 0)?.seqNum).toBe(0);
391
- (0, vitest_1.expect)(r.take("messages", 0)).toBeUndefined();
392
- (0, vitest_1.expect)(r.take("messages", 99)).toBeUndefined();
393
- });
394
- (0, vitest_1.it)("leaves an untaken observed record to be delivered as normal", async () => {
395
- const r = router();
396
- r.observe("messages", () => { });
397
- r.ingest(rec(0, "message"));
398
- r.ingest(rec(1, "message"));
399
- r.take("messages", 0);
400
- const next = await r.next("messages", { timeoutMs: 0 });
401
- (0, vitest_1.expect)(next?.seqNum).toBe(1);
402
- });
403
- });
404
- (0, vitest_1.describe)("SessionChannelRouter: clearRoute guard", () => {
405
- (0, vitest_1.it)("refuses to clear a replayable route", () => {
406
- const r = router();
407
- r.ingest(rec(0, "message"));
408
- (0, vitest_1.expect)(() => r.clearRoute("messages")).toThrow(/replayable/);
409
- (0, vitest_1.expect)(r.hasPending("messages")).toBe(true);
410
- });
411
- (0, vitest_1.it)("still clears a non-replayable route", () => {
412
- const r = router();
413
- r.ingest(rec(0, "handover"));
414
- (0, vitest_1.expect)(r.hasPending("handover")).toBe(true);
415
- r.clearRoute("handover");
416
- (0, vitest_1.expect)(r.hasPending("handover")).toBe(false);
417
- });
418
- });
419
- (0, vitest_1.describe)("SessionChannelRouter: observe versus a waiting consumer", () => {
420
- (0, vitest_1.it)("notifies the observer even when a parked puller takes the record", async () => {
421
- const r = router();
422
- const seen = [];
423
- r.observe("messages", (record) => seen.push(record.seqNum));
424
- const pull = r.next("messages");
425
- r.ingest(rec(0, "message"));
426
- const taken = await pull;
427
- (0, vitest_1.expect)(seen).toEqual([0]);
428
- (0, vitest_1.expect)(taken?.seqNum).toBe(0);
429
- (0, vitest_1.expect)(r.hasPending("messages")).toBe(false);
430
- });
431
- (0, vitest_1.it)("reports a failed take for a record a puller already consumed", async () => {
432
- const r = router();
433
- const seen = [];
434
- r.observe("messages", (record) => seen.push(record.seqNum));
435
- const pull = r.next("messages");
436
- r.ingest(rec(0, "message"));
437
- await pull;
438
- (0, vitest_1.expect)(seen).toEqual([0]);
439
- (0, vitest_1.expect)(r.take("messages", 0)).toBeUndefined();
440
- });
441
- });
442
- (0, vitest_1.describe)("SessionChannelRouter: untake", () => {
443
- (0, vitest_1.it)("puts a claimed record back in sequence order", async () => {
444
- const r = router();
445
- r.ingest(rec(0, "message"));
446
- r.ingest(rec(2, "message"));
447
- const taken = r.take("messages", 0);
448
- (0, vitest_1.expect)(r.peek("messages")?.seqNum).toBe(2);
449
- r.untake("messages", taken);
450
- (0, vitest_1.expect)(r.pendingCount("messages")).toBe(2);
451
- (0, vitest_1.expect)(r.peek("messages")?.seqNum).toBe(0);
452
- (0, vitest_1.expect)(r.resumeFloor()).toBeUndefined();
453
- });
454
- (0, vitest_1.it)("is idempotent, so a double return cannot duplicate a record", () => {
455
- const r = router();
456
- r.ingest(rec(0, "message"));
457
- const taken = r.take("messages", 0);
458
- r.untake("messages", taken);
459
- r.untake("messages", taken);
460
- (0, vitest_1.expect)(r.pendingCount("messages")).toBe(1);
461
- });
462
- });
463
- //# sourceMappingURL=router.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.test.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/router.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const globals_js_1 = require("../utils/globals.js");
5
- const semanticInternalAttributes_js_1 = require("../semanticInternalAttributes.js");
6
- const index_js_1 = require("./index.js");
7
- const FAKE_CTX = {
8
- attempt: { id: "attempt_1", number: 1, startedAt: new Date(), status: "EXECUTING" },
9
- run: {
10
- id: "run_1",
11
- payload: undefined,
12
- payloadType: "application/json",
13
- context: undefined,
14
- createdAt: new Date(),
15
- tags: [],
16
- isTest: false,
17
- isReplay: false,
18
- startedAt: new Date(),
19
- durationMs: 0,
20
- costInCents: 0,
21
- baseCostInCents: 0,
22
- },
23
- task: { id: "my-task", filePath: "src/trigger/task.ts", exportName: "myTask" },
24
- queue: { id: "queue_1", name: "default" },
25
- environment: { id: "env_1", slug: "dev", type: "DEVELOPMENT" },
26
- organization: { id: "org_1", slug: "acme", name: "Acme" },
27
- project: { id: "proj_1", ref: "proj_xyz", slug: "demo", name: "Demo" },
28
- machine: {
29
- name: "small-1x",
30
- cpu: 0.5,
31
- memory: 0.5,
32
- centsPerMs: 0.0001,
33
- },
34
- };
35
- const FAKE_WORKER = { id: "worker_1", version: "1.0.0", contentHash: "abc" };
36
- (0, vitest_1.describe)("TaskContextAPI conversation id", () => {
37
- (0, vitest_1.afterEach)(() => {
38
- (0, globals_js_1.unregisterGlobal)("task-context");
39
- index_js_1.TaskContextAPI.getInstance().setConversationId(undefined);
40
- });
41
- (0, vitest_1.it)("returns no conversation attribute when setConversationId was never called", () => {
42
- const api = index_js_1.TaskContextAPI.getInstance();
43
- api.setGlobalTaskContext({ ctx: FAKE_CTX, worker: FAKE_WORKER });
44
- (0, vitest_1.expect)(api.attributes[semanticInternalAttributes_js_1.SemanticInternalAttributes.GEN_AI_CONVERSATION_ID]).toBeUndefined();
45
- });
46
- (0, vitest_1.it)("includes gen_ai.conversation.id after setConversationId", () => {
47
- const api = index_js_1.TaskContextAPI.getInstance();
48
- api.setGlobalTaskContext({ ctx: FAKE_CTX, worker: FAKE_WORKER });
49
- api.setConversationId("chat_123");
50
- (0, vitest_1.expect)(api.attributes[semanticInternalAttributes_js_1.SemanticInternalAttributes.GEN_AI_CONVERSATION_ID]).toBe("chat_123");
51
- });
52
- (0, vitest_1.it)("clears the conversation attribute when called with undefined", () => {
53
- const api = index_js_1.TaskContextAPI.getInstance();
54
- api.setGlobalTaskContext({ ctx: FAKE_CTX, worker: FAKE_WORKER });
55
- api.setConversationId("chat_123");
56
- api.setConversationId(undefined);
57
- (0, vitest_1.expect)(api.attributes[semanticInternalAttributes_js_1.SemanticInternalAttributes.GEN_AI_CONVERSATION_ID]).toBeUndefined();
58
- (0, vitest_1.expect)(api.conversationId).toBeUndefined();
59
- });
60
- (0, vitest_1.it)("returns no attributes when there is no task context", () => {
61
- const api = index_js_1.TaskContextAPI.getInstance();
62
- api.setConversationId("chat_123");
63
- (0, vitest_1.expect)(api.attributes).toEqual({});
64
- });
65
- (0, vitest_1.it)("clears conversation id when a new task context is registered (warm restart)", () => {
66
- const api = index_js_1.TaskContextAPI.getInstance();
67
- api.setGlobalTaskContext({ ctx: FAKE_CTX, worker: FAKE_WORKER });
68
- api.setConversationId("chat_old");
69
- api.setGlobalTaskContext({ ctx: FAKE_CTX, worker: FAKE_WORKER });
70
- (0, vitest_1.expect)(api.attributes[semanticInternalAttributes_js_1.SemanticInternalAttributes.GEN_AI_CONVERSATION_ID]).toBeUndefined();
71
- });
72
- });
73
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/v3/taskContext/index.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};