@trigger.dev/sdk 0.0.0-python-preview-20250226140121 → 0.0.0-rc-4-8-0-20261021151928

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 (732) hide show
  1. package/README.md +29 -9
  2. package/dist/commonjs/imports/ai-runtime-cjs.cjs.map +1 -0
  3. package/dist/commonjs/imports/ai-runtime.d.ts +1 -0
  4. package/dist/commonjs/imports/ai-runtime.js +31 -0
  5. package/dist/commonjs/imports/uncrypto.js +4 -4
  6. package/dist/commonjs/package.json +2 -1
  7. package/dist/commonjs/v3/agentSkillsRuntime.d.ts +28 -0
  8. package/dist/commonjs/v3/agentSkillsRuntime.js +173 -0
  9. package/dist/commonjs/v3/agentSkillsRuntime.js.map +1 -0
  10. package/dist/commonjs/v3/ai-shared.d.ts +156 -0
  11. package/dist/commonjs/v3/ai-shared.js +215 -0
  12. package/dist/commonjs/v3/ai-shared.js.map +1 -0
  13. package/dist/commonjs/v3/ai.d.ts +4225 -0
  14. package/dist/commonjs/v3/ai.js +11569 -0
  15. package/dist/commonjs/v3/ai.js.map +1 -0
  16. package/dist/commonjs/v3/aiAutoTelemetry.d.ts +2 -0
  17. package/dist/commonjs/v3/aiAutoTelemetry.js +81 -0
  18. package/dist/commonjs/v3/aiAutoTelemetry.js.map +1 -0
  19. package/dist/commonjs/v3/auth.d.ts +71 -10
  20. package/dist/commonjs/v3/auth.js +85 -19
  21. package/dist/commonjs/v3/auth.js.map +1 -1
  22. package/dist/commonjs/v3/batch.d.ts +3 -3
  23. package/dist/commonjs/v3/batch.js.map +1 -1
  24. package/dist/commonjs/v3/cache.js.map +1 -1
  25. package/dist/commonjs/v3/chat-client.d.ts +324 -0
  26. package/dist/commonjs/v3/chat-client.js +774 -0
  27. package/dist/commonjs/v3/chat-client.js.map +1 -0
  28. package/dist/commonjs/v3/chat-react.d.ts +244 -0
  29. package/dist/commonjs/v3/chat-react.js +463 -0
  30. package/dist/commonjs/v3/chat-react.js.map +1 -0
  31. package/dist/commonjs/v3/chat-server.d.ts +350 -0
  32. package/dist/commonjs/v3/chat-server.js +965 -0
  33. package/dist/commonjs/v3/chat-server.js.map +1 -0
  34. package/dist/commonjs/v3/chat-tab-coordinator.d.ts +65 -0
  35. package/dist/commonjs/v3/chat-tab-coordinator.js +235 -0
  36. package/dist/commonjs/v3/chat-tab-coordinator.js.map +1 -0
  37. package/dist/commonjs/v3/chat.d.ts +792 -0
  38. package/dist/commonjs/v3/chat.js +1662 -0
  39. package/dist/commonjs/v3/chat.js.map +1 -0
  40. package/dist/commonjs/v3/chatRouteWait.d.ts +21 -0
  41. package/dist/commonjs/v3/chatRouteWait.js +43 -0
  42. package/dist/commonjs/v3/chatRouteWait.js.map +1 -0
  43. package/dist/commonjs/v3/chatSnapshotIo.d.ts +2 -0
  44. package/dist/commonjs/v3/chatSnapshotIo.js +173 -0
  45. package/dist/commonjs/v3/chatSnapshotIo.js.map +1 -0
  46. package/dist/commonjs/v3/chatVersionSkew.d.ts +12 -0
  47. package/dist/commonjs/v3/chatVersionSkew.js +30 -0
  48. package/dist/commonjs/v3/chatVersionSkew.js.map +1 -0
  49. package/dist/commonjs/v3/compactionResponse.d.ts +9 -0
  50. package/dist/commonjs/v3/compactionResponse.js +37 -0
  51. package/dist/commonjs/v3/compactionResponse.js.map +1 -0
  52. package/dist/commonjs/v3/concurrency-shared.d.ts +13 -0
  53. package/dist/commonjs/v3/concurrency-shared.js +35 -0
  54. package/dist/commonjs/v3/concurrency-shared.js.map +1 -0
  55. package/dist/commonjs/v3/concurrencyLimits.d.ts +103 -0
  56. package/dist/commonjs/v3/concurrencyLimits.js +134 -0
  57. package/dist/commonjs/v3/concurrencyLimits.js.map +1 -0
  58. package/dist/commonjs/v3/config.js.map +1 -1
  59. package/dist/commonjs/v3/deployments.d.ts +25 -0
  60. package/dist/commonjs/v3/deployments.js +37 -0
  61. package/dist/commonjs/v3/deployments.js.map +1 -0
  62. package/dist/commonjs/v3/envvars.d.ts +5 -5
  63. package/dist/commonjs/v3/envvars.js.map +1 -1
  64. package/dist/commonjs/v3/externalDeploymentId.d.ts +23 -0
  65. package/dist/commonjs/v3/externalDeploymentId.js +43 -0
  66. package/dist/commonjs/v3/externalDeploymentId.js.map +1 -0
  67. package/dist/commonjs/v3/heartbeats.d.ts +37 -0
  68. package/dist/commonjs/v3/heartbeats.js +45 -0
  69. package/dist/commonjs/v3/heartbeats.js.map +1 -0
  70. package/dist/commonjs/v3/hooks.d.ts +26 -0
  71. package/dist/commonjs/v3/hooks.js +79 -0
  72. package/dist/commonjs/v3/hooks.js.map +1 -0
  73. package/dist/commonjs/v3/idempotencyKeys.d.ts +2 -1
  74. package/dist/commonjs/v3/idempotencyKeys.js +1 -0
  75. package/dist/commonjs/v3/idempotencyKeys.js.map +1 -1
  76. package/dist/commonjs/v3/index.d.ts +20 -5
  77. package/dist/commonjs/v3/index.js +56 -20
  78. package/dist/commonjs/v3/index.js.map +1 -1
  79. package/dist/commonjs/v3/locals.d.ts +3 -0
  80. package/dist/commonjs/v3/locals.js +6 -0
  81. package/dist/commonjs/v3/locals.js.map +1 -0
  82. package/dist/commonjs/v3/managedChatResponse.d.ts +44 -0
  83. package/dist/commonjs/v3/managedChatResponse.js +221 -0
  84. package/dist/commonjs/v3/managedChatResponse.js.map +1 -0
  85. package/dist/commonjs/v3/metadata.d.ts +5 -2
  86. package/dist/commonjs/v3/metadata.js +8 -1
  87. package/dist/commonjs/v3/metadata.js.map +1 -1
  88. package/dist/commonjs/v3/modelFileDownload.d.ts +10 -0
  89. package/dist/commonjs/v3/modelFileDownload.js +164 -0
  90. package/dist/commonjs/v3/modelFileDownload.js.map +1 -0
  91. package/dist/commonjs/v3/otel.d.ts +4 -0
  92. package/dist/commonjs/v3/otel.js +12 -0
  93. package/dist/commonjs/v3/otel.js.map +1 -0
  94. package/dist/commonjs/v3/prompt.d.ts +38 -0
  95. package/dist/commonjs/v3/prompt.js +146 -0
  96. package/dist/commonjs/v3/prompt.js.map +1 -0
  97. package/dist/commonjs/v3/promptManagement.d.ts +26 -0
  98. package/dist/commonjs/v3/promptManagement.js +180 -0
  99. package/dist/commonjs/v3/promptManagement.js.map +1 -0
  100. package/dist/commonjs/v3/prompts.d.ts +3 -0
  101. package/dist/commonjs/v3/prompts.js +15 -0
  102. package/dist/commonjs/v3/prompts.js.map +1 -0
  103. package/dist/commonjs/v3/query.d.ts +545 -0
  104. package/dist/commonjs/v3/query.js +163 -0
  105. package/dist/commonjs/v3/query.js.map +1 -0
  106. package/dist/commonjs/v3/queues.d.ts +107 -0
  107. package/dist/commonjs/v3/queues.js +225 -0
  108. package/dist/commonjs/v3/queues.js.map +1 -0
  109. package/dist/commonjs/v3/retry.d.ts +6 -2
  110. package/dist/commonjs/v3/retry.js +34 -23
  111. package/dist/commonjs/v3/retry.js.map +1 -1
  112. package/dist/commonjs/v3/runs.d.ts +182 -101
  113. package/dist/commonjs/v3/runs.js +99 -5
  114. package/dist/commonjs/v3/runs.js.map +1 -1
  115. package/dist/commonjs/v3/schedules/api.d.ts +8 -1
  116. package/dist/commonjs/v3/schedules/index.d.ts +29 -9
  117. package/dist/commonjs/v3/schedules/index.js +5 -1
  118. package/dist/commonjs/v3/schedules/index.js.map +1 -1
  119. package/dist/commonjs/v3/schemas.d.ts +1 -0
  120. package/dist/commonjs/{integrations.js → v3/schemas.js} +1 -1
  121. package/dist/commonjs/v3/schemas.js.map +1 -0
  122. package/dist/commonjs/v3/sessionTracing.d.ts +7 -0
  123. package/dist/commonjs/v3/sessionTracing.js +44 -0
  124. package/dist/commonjs/v3/sessionTracing.js.map +1 -0
  125. package/dist/commonjs/v3/sessions.d.ts +268 -0
  126. package/dist/commonjs/v3/sessions.js +776 -0
  127. package/dist/commonjs/v3/sessions.js.map +1 -0
  128. package/dist/commonjs/v3/shared.d.ts +129 -24
  129. package/dist/commonjs/v3/shared.js +1527 -689
  130. package/dist/commonjs/v3/shared.js.map +1 -1
  131. package/dist/commonjs/v3/skill.d.ts +99 -0
  132. package/dist/commonjs/v3/skill.js +165 -0
  133. package/dist/commonjs/v3/skill.js.map +1 -0
  134. package/dist/commonjs/v3/skills.d.ts +2 -0
  135. package/dist/commonjs/v3/skills.js +6 -0
  136. package/dist/commonjs/v3/skills.js.map +1 -0
  137. package/dist/commonjs/v3/steeringContext.d.ts +41 -0
  138. package/dist/commonjs/v3/steeringContext.js +118 -0
  139. package/dist/commonjs/v3/steeringContext.js.map +1 -0
  140. package/dist/commonjs/v3/streams.d.ts +298 -0
  141. package/dist/commonjs/v3/streams.js +584 -0
  142. package/dist/commonjs/v3/streams.js.map +1 -0
  143. package/dist/commonjs/v3/tasks.d.ts +19 -4
  144. package/dist/commonjs/v3/tasks.js +15 -1
  145. package/dist/commonjs/v3/tasks.js.map +1 -1
  146. package/dist/commonjs/v3/test/index.d.ts +5 -0
  147. package/dist/commonjs/v3/test/index.js +23 -0
  148. package/dist/commonjs/v3/test/index.js.map +1 -0
  149. package/dist/commonjs/v3/test/mock-channel-connector.d.ts +172 -0
  150. package/dist/commonjs/v3/test/mock-channel-connector.js +173 -0
  151. package/dist/commonjs/v3/test/mock-channel-connector.js.map +1 -0
  152. package/dist/commonjs/v3/test/mock-chat-agent.d.ts +388 -0
  153. package/dist/commonjs/v3/test/mock-chat-agent.js +689 -0
  154. package/dist/commonjs/v3/test/mock-chat-agent.js.map +1 -0
  155. package/dist/commonjs/v3/test/setup-catalog.d.ts +1 -0
  156. package/dist/commonjs/v3/test/setup-catalog.js +18 -0
  157. package/dist/commonjs/v3/test/setup-catalog.js.map +1 -0
  158. package/dist/commonjs/v3/test/test-session-handle.d.ts +24 -0
  159. package/dist/commonjs/v3/test/test-session-handle.js +271 -0
  160. package/dist/commonjs/v3/test/test-session-handle.js.map +1 -0
  161. package/dist/commonjs/v3/test/transcript-storage-tests.d.ts +40 -0
  162. package/dist/commonjs/v3/test/transcript-storage-tests.js +258 -0
  163. package/dist/commonjs/v3/test/transcript-storage-tests.js.map +1 -0
  164. package/dist/commonjs/v3/toolResultOrder.d.ts +15 -0
  165. package/dist/commonjs/v3/toolResultOrder.js +58 -0
  166. package/dist/commonjs/v3/toolResultOrder.js.map +1 -0
  167. package/dist/commonjs/v3/transcriptStorage.d.ts +307 -0
  168. package/dist/commonjs/v3/transcriptStorage.js +445 -0
  169. package/dist/commonjs/v3/transcriptStorage.js.map +1 -0
  170. package/dist/commonjs/v3/triggerClient.d.ts +45 -0
  171. package/dist/commonjs/v3/triggerClient.js +114 -0
  172. package/dist/commonjs/v3/triggerClient.js.map +1 -0
  173. package/dist/commonjs/v3/uiMessageChunks.d.ts +1 -0
  174. package/dist/commonjs/v3/uiMessageChunks.js +119 -0
  175. package/dist/commonjs/v3/uiMessageChunks.js.map +1 -0
  176. package/dist/commonjs/v3/usage.js +7 -6
  177. package/dist/commonjs/v3/usage.js.map +1 -1
  178. package/dist/commonjs/v3/wait.d.ts +218 -3
  179. package/dist/commonjs/v3/wait.js +433 -7
  180. package/dist/commonjs/v3/wait.js.map +1 -1
  181. package/dist/commonjs/v3/waitUntil.js.map +1 -1
  182. package/dist/commonjs/v3/webhookWaiters.d.ts +80 -0
  183. package/dist/commonjs/v3/webhookWaiters.js +156 -0
  184. package/dist/commonjs/v3/webhookWaiters.js.map +1 -0
  185. package/dist/commonjs/v3/webhooks.d.ts +192 -2
  186. package/dist/commonjs/v3/webhooks.js +340 -2
  187. package/dist/commonjs/v3/webhooks.js.map +1 -1
  188. package/dist/commonjs/version.js +1 -1
  189. package/dist/esm/imports/ai-runtime.d.ts +2 -0
  190. package/dist/esm/imports/ai-runtime.js +16 -0
  191. package/dist/esm/imports/ai-runtime.js.map +1 -0
  192. package/dist/esm/package.json +2 -1
  193. package/dist/esm/v3/agentSkillsRuntime.d.ts +28 -0
  194. package/dist/esm/v3/agentSkillsRuntime.js +136 -0
  195. package/dist/esm/v3/agentSkillsRuntime.js.map +1 -0
  196. package/dist/esm/v3/ai-shared.d.ts +156 -0
  197. package/dist/esm/v3/ai-shared.js +208 -0
  198. package/dist/esm/v3/ai-shared.js.map +1 -0
  199. package/dist/esm/v3/ai.d.ts +4225 -0
  200. package/dist/esm/v3/ai.js +11550 -0
  201. package/dist/esm/v3/ai.js.map +1 -0
  202. package/dist/esm/v3/aiAutoTelemetry.d.ts +2 -0
  203. package/dist/esm/v3/aiAutoTelemetry.js +78 -0
  204. package/dist/esm/v3/aiAutoTelemetry.js.map +1 -0
  205. package/dist/esm/v3/auth.d.ts +71 -10
  206. package/dist/esm/v3/auth.js +83 -17
  207. package/dist/esm/v3/auth.js.map +1 -1
  208. package/dist/esm/v3/batch.d.ts +3 -3
  209. package/dist/esm/v3/batch.js +2 -2
  210. package/dist/esm/v3/batch.js.map +1 -1
  211. package/dist/esm/v3/chat-client.d.ts +324 -0
  212. package/dist/esm/v3/chat-client.js +769 -0
  213. package/dist/esm/v3/chat-client.js.map +1 -0
  214. package/dist/esm/v3/chat-react.d.ts +244 -0
  215. package/dist/esm/v3/chat-react.js +455 -0
  216. package/dist/esm/v3/chat-react.js.map +1 -0
  217. package/dist/esm/v3/chat-server.d.ts +350 -0
  218. package/dist/esm/v3/chat-server.js +962 -0
  219. package/dist/esm/v3/chat-server.js.map +1 -0
  220. package/dist/esm/v3/chat-tab-coordinator.d.ts +65 -0
  221. package/dist/esm/v3/chat-tab-coordinator.js +231 -0
  222. package/dist/esm/v3/chat-tab-coordinator.js.map +1 -0
  223. package/dist/esm/v3/chat.d.ts +792 -0
  224. package/dist/esm/v3/chat.js +1655 -0
  225. package/dist/esm/v3/chat.js.map +1 -0
  226. package/dist/esm/v3/chatRouteWait.d.ts +21 -0
  227. package/dist/esm/v3/chatRouteWait.js +40 -0
  228. package/dist/esm/v3/chatRouteWait.js.map +1 -0
  229. package/dist/esm/v3/chatSnapshotIo.d.ts +2 -0
  230. package/dist/esm/v3/chatSnapshotIo.js +165 -0
  231. package/dist/esm/v3/chatSnapshotIo.js.map +1 -0
  232. package/dist/esm/v3/chatVersionSkew.d.ts +12 -0
  233. package/dist/esm/v3/chatVersionSkew.js +27 -0
  234. package/dist/esm/v3/chatVersionSkew.js.map +1 -0
  235. package/dist/esm/v3/compactionResponse.d.ts +9 -0
  236. package/dist/esm/v3/compactionResponse.js +34 -0
  237. package/dist/esm/v3/compactionResponse.js.map +1 -0
  238. package/dist/esm/v3/concurrency-shared.d.ts +13 -0
  239. package/dist/esm/v3/concurrency-shared.js +31 -0
  240. package/dist/esm/v3/concurrency-shared.js.map +1 -0
  241. package/dist/esm/v3/concurrencyLimits.d.ts +103 -0
  242. package/dist/esm/v3/concurrencyLimits.js +126 -0
  243. package/dist/esm/v3/concurrencyLimits.js.map +1 -0
  244. package/dist/esm/v3/deployments.d.ts +25 -0
  245. package/dist/esm/v3/deployments.js +34 -0
  246. package/dist/esm/v3/deployments.js.map +1 -0
  247. package/dist/esm/v3/envvars.d.ts +5 -5
  248. package/dist/esm/v3/envvars.js.map +1 -1
  249. package/dist/esm/v3/externalDeploymentId.d.ts +23 -0
  250. package/dist/esm/v3/externalDeploymentId.js +38 -0
  251. package/dist/esm/v3/externalDeploymentId.js.map +1 -0
  252. package/dist/esm/v3/heartbeats.d.ts +37 -0
  253. package/dist/esm/v3/heartbeats.js +42 -0
  254. package/dist/esm/v3/heartbeats.js.map +1 -0
  255. package/dist/esm/v3/hooks.d.ts +26 -0
  256. package/dist/esm/v3/hooks.js +66 -0
  257. package/dist/esm/v3/hooks.js.map +1 -0
  258. package/dist/esm/v3/idempotencyKeys.d.ts +2 -1
  259. package/dist/esm/v3/idempotencyKeys.js +2 -1
  260. package/dist/esm/v3/idempotencyKeys.js.map +1 -1
  261. package/dist/esm/v3/index.d.ts +20 -5
  262. package/dist/esm/v3/index.js +16 -2
  263. package/dist/esm/v3/index.js.map +1 -1
  264. package/dist/esm/v3/locals.d.ts +3 -0
  265. package/dist/esm/v3/locals.js +3 -0
  266. package/dist/esm/v3/locals.js.map +1 -0
  267. package/dist/esm/v3/managedChatResponse.d.ts +44 -0
  268. package/dist/esm/v3/managedChatResponse.js +216 -0
  269. package/dist/esm/v3/managedChatResponse.js.map +1 -0
  270. package/dist/esm/v3/metadata.d.ts +5 -2
  271. package/dist/esm/v3/metadata.js +8 -1
  272. package/dist/esm/v3/metadata.js.map +1 -1
  273. package/dist/esm/v3/modelFileDownload.d.ts +10 -0
  274. package/dist/esm/v3/modelFileDownload.js +161 -0
  275. package/dist/esm/v3/modelFileDownload.js.map +1 -0
  276. package/dist/esm/v3/otel.d.ts +4 -0
  277. package/dist/esm/v3/otel.js +9 -0
  278. package/dist/esm/v3/otel.js.map +1 -0
  279. package/dist/esm/v3/prompt.d.ts +38 -0
  280. package/dist/esm/v3/prompt.js +143 -0
  281. package/dist/esm/v3/prompt.js.map +1 -0
  282. package/dist/esm/v3/promptManagement.d.ts +26 -0
  283. package/dist/esm/v3/promptManagement.js +170 -0
  284. package/dist/esm/v3/promptManagement.js.map +1 -0
  285. package/dist/esm/v3/prompts.d.ts +3 -0
  286. package/dist/esm/v3/prompts.js +3 -0
  287. package/dist/esm/v3/prompts.js.map +1 -0
  288. package/dist/esm/v3/query.d.ts +545 -0
  289. package/dist/esm/v3/query.js +160 -0
  290. package/dist/esm/v3/query.js.map +1 -0
  291. package/dist/esm/v3/queues.d.ts +107 -0
  292. package/dist/esm/v3/queues.js +217 -0
  293. package/dist/esm/v3/queues.js.map +1 -0
  294. package/dist/esm/v3/retry.d.ts +6 -2
  295. package/dist/esm/v3/retry.js +27 -19
  296. package/dist/esm/v3/retry.js.map +1 -1
  297. package/dist/esm/v3/runs.d.ts +179 -98
  298. package/dist/esm/v3/runs.js +99 -5
  299. package/dist/esm/v3/runs.js.map +1 -1
  300. package/dist/esm/v3/schedules/api.d.ts +8 -1
  301. package/dist/esm/v3/schedules/index.d.ts +29 -9
  302. package/dist/esm/v3/schedules/index.js +6 -2
  303. package/dist/esm/v3/schedules/index.js.map +1 -1
  304. package/dist/esm/v3/schemas.d.ts +1 -0
  305. package/dist/esm/v3/schemas.js +2 -0
  306. package/dist/esm/v3/schemas.js.map +1 -0
  307. package/dist/esm/v3/sessionTracing.d.ts +7 -0
  308. package/dist/esm/v3/sessionTracing.js +40 -0
  309. package/dist/esm/v3/sessionTracing.js.map +1 -0
  310. package/dist/esm/v3/sessions.d.ts +268 -0
  311. package/dist/esm/v3/sessions.js +767 -0
  312. package/dist/esm/v3/sessions.js.map +1 -0
  313. package/dist/esm/v3/shared.d.ts +129 -24
  314. package/dist/esm/v3/shared.js +1521 -688
  315. package/dist/esm/v3/shared.js.map +1 -1
  316. package/dist/esm/v3/skill.d.ts +99 -0
  317. package/dist/esm/v3/skill.js +128 -0
  318. package/dist/esm/v3/skill.js.map +1 -0
  319. package/dist/esm/v3/skills.d.ts +2 -0
  320. package/dist/esm/v3/skills.js +2 -0
  321. package/dist/esm/v3/skills.js.map +1 -0
  322. package/dist/esm/v3/steeringContext.d.ts +41 -0
  323. package/dist/esm/v3/steeringContext.js +113 -0
  324. package/dist/esm/v3/steeringContext.js.map +1 -0
  325. package/dist/esm/v3/streams.d.ts +298 -0
  326. package/dist/esm/v3/streams.js +580 -0
  327. package/dist/esm/v3/streams.js.map +1 -0
  328. package/dist/esm/v3/tasks.d.ts +19 -4
  329. package/dist/esm/v3/tasks.js +16 -2
  330. package/dist/esm/v3/tasks.js.map +1 -1
  331. package/dist/esm/v3/test/index.d.ts +5 -0
  332. package/dist/esm/v3/test/index.js +15 -0
  333. package/dist/esm/v3/test/index.js.map +1 -0
  334. package/dist/esm/v3/test/mock-channel-connector.d.ts +172 -0
  335. package/dist/esm/v3/test/mock-channel-connector.js +170 -0
  336. package/dist/esm/v3/test/mock-channel-connector.js.map +1 -0
  337. package/dist/esm/v3/test/mock-chat-agent.d.ts +388 -0
  338. package/dist/esm/v3/test/mock-chat-agent.js +685 -0
  339. package/dist/esm/v3/test/mock-chat-agent.js.map +1 -0
  340. package/dist/esm/v3/test/setup-catalog.d.ts +1 -0
  341. package/dist/esm/v3/test/setup-catalog.js +16 -0
  342. package/dist/esm/v3/test/setup-catalog.js.map +1 -0
  343. package/dist/esm/v3/test/test-session-handle.d.ts +24 -0
  344. package/dist/esm/v3/test/test-session-handle.js +268 -0
  345. package/dist/esm/v3/test/test-session-handle.js.map +1 -0
  346. package/dist/esm/v3/test/transcript-storage-tests.d.ts +40 -0
  347. package/dist/esm/v3/test/transcript-storage-tests.js +255 -0
  348. package/dist/esm/v3/test/transcript-storage-tests.js.map +1 -0
  349. package/dist/esm/v3/toolResultOrder.d.ts +15 -0
  350. package/dist/esm/v3/toolResultOrder.js +55 -0
  351. package/dist/esm/v3/toolResultOrder.js.map +1 -0
  352. package/dist/esm/v3/transcriptStorage.d.ts +307 -0
  353. package/dist/esm/v3/transcriptStorage.js +431 -0
  354. package/dist/esm/v3/transcriptStorage.js.map +1 -0
  355. package/dist/esm/v3/triggerClient.d.ts +45 -0
  356. package/dist/esm/v3/triggerClient.js +77 -0
  357. package/dist/esm/v3/triggerClient.js.map +1 -0
  358. package/dist/esm/v3/uiMessageChunks.d.ts +1 -0
  359. package/dist/esm/v3/uiMessageChunks.js +116 -0
  360. package/dist/esm/v3/uiMessageChunks.js.map +1 -0
  361. package/dist/esm/v3/usage.js +7 -6
  362. package/dist/esm/v3/usage.js.map +1 -1
  363. package/dist/esm/v3/wait.d.ts +218 -3
  364. package/dist/esm/v3/wait.js +431 -7
  365. package/dist/esm/v3/wait.js.map +1 -1
  366. package/dist/esm/v3/webhookWaiters.d.ts +80 -0
  367. package/dist/esm/v3/webhookWaiters.js +149 -0
  368. package/dist/esm/v3/webhookWaiters.js.map +1 -0
  369. package/dist/esm/v3/webhooks.d.ts +192 -2
  370. package/dist/esm/v3/webhooks.js +336 -2
  371. package/dist/esm/v3/webhooks.js.map +1 -1
  372. package/dist/esm/version.js +1 -1
  373. package/docs/ai/observability.mdx +174 -0
  374. package/docs/ai/prompts.mdx +426 -0
  375. package/docs/ai-chat/actions.mdx +148 -0
  376. package/docs/ai-chat/anatomy.mdx +87 -0
  377. package/docs/ai-chat/backend.mdx +933 -0
  378. package/docs/ai-chat/background-injection.mdx +320 -0
  379. package/docs/ai-chat/changelog.mdx +958 -0
  380. package/docs/ai-chat/chat-local.mdx +170 -0
  381. package/docs/ai-chat/client-protocol.mdx +1091 -0
  382. package/docs/ai-chat/compaction.mdx +413 -0
  383. package/docs/ai-chat/custom-agents.mdx +545 -0
  384. package/docs/ai-chat/error-handling.mdx +379 -0
  385. package/docs/ai-chat/fast-starts.mdx +764 -0
  386. package/docs/ai-chat/frontend.mdx +634 -0
  387. package/docs/ai-chat/how-it-works.mdx +226 -0
  388. package/docs/ai-chat/lifecycle-hooks.mdx +532 -0
  389. package/docs/ai-chat/mcp.mdx +97 -0
  390. package/docs/ai-chat/migrating-from-a-route-handler.mdx +594 -0
  391. package/docs/ai-chat/migrating-from-hydrate-messages.mdx +299 -0
  392. package/docs/ai-chat/overview.mdx +86 -0
  393. package/docs/ai-chat/patterns/branching-conversations.mdx +145 -0
  394. package/docs/ai-chat/patterns/code-sandbox.mdx +122 -0
  395. package/docs/ai-chat/patterns/database-persistence.mdx +425 -0
  396. package/docs/ai-chat/patterns/human-in-the-loop.mdx +281 -0
  397. package/docs/ai-chat/patterns/large-payloads.mdx +165 -0
  398. package/docs/ai-chat/patterns/native-compaction.mdx +310 -0
  399. package/docs/ai-chat/patterns/oom-resilience.mdx +116 -0
  400. package/docs/ai-chat/patterns/persistence-and-replay.mdx +218 -0
  401. package/docs/ai-chat/patterns/recovery-boot.mdx +233 -0
  402. package/docs/ai-chat/patterns/redacting-telemetry.mdx +117 -0
  403. package/docs/ai-chat/patterns/skills.mdx +214 -0
  404. package/docs/ai-chat/patterns/sub-agents.mdx +412 -0
  405. package/docs/ai-chat/patterns/tool-result-auditing.mdx +145 -0
  406. package/docs/ai-chat/patterns/trusted-edge-signals.mdx +333 -0
  407. package/docs/ai-chat/patterns/version-upgrades.mdx +261 -0
  408. package/docs/ai-chat/pending-messages.mdx +363 -0
  409. package/docs/ai-chat/prompt-caching.mdx +204 -0
  410. package/docs/ai-chat/quick-start.mdx +163 -0
  411. package/docs/ai-chat/reference.mdx +1071 -0
  412. package/docs/ai-chat/server-chat.mdx +259 -0
  413. package/docs/ai-chat/sessions.mdx +334 -0
  414. package/docs/ai-chat/side-channels.mdx +172 -0
  415. package/docs/ai-chat/testing.mdx +691 -0
  416. package/docs/ai-chat/tools.mdx +192 -0
  417. package/docs/ai-chat/transcript-storage.mdx +247 -0
  418. package/docs/ai-chat/types.mdx +242 -0
  419. package/docs/ai-chat/upgrade-guide.mdx +511 -0
  420. package/docs/apikeys.mdx +170 -0
  421. package/docs/billing-limits.mdx +73 -0
  422. package/docs/building-with-ai.mdx +261 -0
  423. package/docs/bulk-actions.mdx +77 -0
  424. package/docs/changelog.mdx +6 -0
  425. package/docs/cli-deploy-commands.mdx +9 -0
  426. package/docs/cli-dev-commands.mdx +9 -0
  427. package/docs/cli-env-commands.mdx +115 -0
  428. package/docs/cli-init-commands.mdx +84 -0
  429. package/docs/cli-introduction.mdx +25 -0
  430. package/docs/cli-list-profiles-commands.mdx +42 -0
  431. package/docs/cli-login-commands.mdx +53 -0
  432. package/docs/cli-logout-commands.mdx +33 -0
  433. package/docs/cli-preview-archive.mdx +59 -0
  434. package/docs/cli-projects-commands.mdx +74 -0
  435. package/docs/cli-promote-commands.mdx +9 -0
  436. package/docs/cli-runs-commands.mdx +95 -0
  437. package/docs/cli-switch.mdx +43 -0
  438. package/docs/cli-tasks-commands.mdx +95 -0
  439. package/docs/cli-update-commands.mdx +48 -0
  440. package/docs/cli-whoami-commands.mdx +45 -0
  441. package/docs/community.mdx +6 -0
  442. package/docs/concurrency.mdx +416 -0
  443. package/docs/config/config-file.mdx +662 -0
  444. package/docs/config/extensions/additionalFiles.mdx +38 -0
  445. package/docs/config/extensions/additionalPackages.mdx +40 -0
  446. package/docs/config/extensions/aptGet.mdx +34 -0
  447. package/docs/config/extensions/audioWaveform.mdx +23 -0
  448. package/docs/config/extensions/custom.mdx +393 -0
  449. package/docs/config/extensions/emitDecoratorMetadata.mdx +52 -0
  450. package/docs/config/extensions/esbuildPlugin.mdx +31 -0
  451. package/docs/config/extensions/ffmpeg.mdx +45 -0
  452. package/docs/config/extensions/lightpanda.mdx +56 -0
  453. package/docs/config/extensions/overview.mdx +69 -0
  454. package/docs/config/extensions/playwright.mdx +195 -0
  455. package/docs/config/extensions/prismaExtension.mdx +1013 -0
  456. package/docs/config/extensions/puppeteer.mdx +28 -0
  457. package/docs/config/extensions/pythonExtension.mdx +190 -0
  458. package/docs/config/extensions/syncEnvVars.mdx +330 -0
  459. package/docs/context.mdx +235 -0
  460. package/docs/database-connections.mdx +213 -0
  461. package/docs/deploy-environment-variables.mdx +466 -0
  462. package/docs/deployment/atomic-deployment.mdx +470 -0
  463. package/docs/deployment/dev-branches.mdx +92 -0
  464. package/docs/deployment/overview.mdx +260 -0
  465. package/docs/deployment/preview-branches.mdx +227 -0
  466. package/docs/errors-retrying.mdx +383 -0
  467. package/docs/github-actions.mdx +260 -0
  468. package/docs/github-integration.mdx +148 -0
  469. package/docs/github-repo.mdx +8 -0
  470. package/docs/help-email.mdx +6 -0
  471. package/docs/help-slack.mdx +12 -0
  472. package/docs/hidden-tasks.mdx +56 -0
  473. package/docs/how-it-works.mdx +454 -0
  474. package/docs/how-to-reduce-your-spend.mdx +211 -0
  475. package/docs/idempotency.mdx +542 -0
  476. package/docs/introduction.mdx +135 -0
  477. package/docs/limits.mdx +284 -0
  478. package/docs/logging.mdx +195 -0
  479. package/docs/machines.mdx +952 -0
  480. package/docs/manual-setup.mdx +632 -0
  481. package/docs/mcp-agent-rules.mdx +41 -0
  482. package/docs/mcp-introduction.mdx +386 -0
  483. package/docs/mcp-tools.mdx +425 -0
  484. package/docs/migrating-from-v3.mdx +332 -0
  485. package/docs/observability/dashboards.mdx +166 -0
  486. package/docs/observability/query.mdx +614 -0
  487. package/docs/open-source-contributing.mdx +16 -0
  488. package/docs/private-networking/aws-console-setup.mdx +304 -0
  489. package/docs/private-networking/overview.mdx +144 -0
  490. package/docs/private-networking/troubleshooting.mdx +78 -0
  491. package/docs/queues.mdx +271 -0
  492. package/docs/quick-start.mdx +60 -0
  493. package/docs/realtime/auth.mdx +228 -0
  494. package/docs/realtime/backend/input-streams.mdx +159 -0
  495. package/docs/realtime/backend/overview.mdx +45 -0
  496. package/docs/realtime/backend/streams.mdx +433 -0
  497. package/docs/realtime/backend/subscribe.mdx +225 -0
  498. package/docs/realtime/how-it-works.mdx +94 -0
  499. package/docs/realtime/overview.mdx +63 -0
  500. package/docs/realtime/react-hooks/overview.mdx +73 -0
  501. package/docs/realtime/react-hooks/session-stream.mdx +126 -0
  502. package/docs/realtime/react-hooks/streams.mdx +517 -0
  503. package/docs/realtime/react-hooks/subscribe.mdx +690 -0
  504. package/docs/realtime/react-hooks/swr.mdx +87 -0
  505. package/docs/realtime/react-hooks/triggering.mdx +194 -0
  506. package/docs/realtime/react-hooks/use-wait-token.mdx +34 -0
  507. package/docs/realtime/run-object.mdx +197 -0
  508. package/docs/replaying.mdx +97 -0
  509. package/docs/reports.mdx +159 -0
  510. package/docs/request-feature.mdx +6 -0
  511. package/docs/roadmap.mdx +6 -0
  512. package/docs/run-tests.mdx +21 -0
  513. package/docs/run-usage.mdx +113 -0
  514. package/docs/runs/bulk-actions.mdx +183 -0
  515. package/docs/runs/heartbeats.mdx +38 -0
  516. package/docs/runs/list-best-practices.mdx +234 -0
  517. package/docs/runs/max-duration.mdx +143 -0
  518. package/docs/runs/metadata.mdx +731 -0
  519. package/docs/runs/priority.mdx +8 -0
  520. package/docs/runs.mdx +406 -0
  521. package/docs/self-hosting/docker.mdx +512 -0
  522. package/docs/self-hosting/env/supervisor.mdx +78 -0
  523. package/docs/self-hosting/env/webapp.mdx +305 -0
  524. package/docs/self-hosting/kubernetes.mdx +725 -0
  525. package/docs/self-hosting/overview.mdx +145 -0
  526. package/docs/self-hosting/security.mdx +67 -0
  527. package/docs/skills.mdx +85 -0
  528. package/docs/tags.mdx +126 -0
  529. package/docs/tasks/overview.mdx +695 -0
  530. package/docs/tasks/scheduled.mdx +479 -0
  531. package/docs/tasks/schemaTask.mdx +413 -0
  532. package/docs/tasks/streams.mdx +887 -0
  533. package/docs/triggering.mdx +1340 -0
  534. package/docs/troubleshooting-alerts.mdx +607 -0
  535. package/docs/troubleshooting-debugging-in-vscode.mdx +9 -0
  536. package/docs/troubleshooting-github-issues.mdx +6 -0
  537. package/docs/troubleshooting-uptime-status.mdx +7 -0
  538. package/docs/troubleshooting-zod.mdx +158 -0
  539. package/docs/troubleshooting.mdx +414 -0
  540. package/docs/upgrading-packages.mdx +80 -0
  541. package/docs/vercel-integration.mdx +250 -0
  542. package/docs/versioning.mdx +58 -0
  543. package/docs/video-walkthrough.mdx +23 -0
  544. package/docs/wait-for-token.mdx +540 -0
  545. package/docs/wait-for.mdx +42 -0
  546. package/docs/wait-until.mdx +53 -0
  547. package/docs/wait.mdx +18 -0
  548. package/docs/webhooks/channels.mdx +154 -0
  549. package/docs/webhooks/connect.mdx +91 -0
  550. package/docs/webhooks/deliveries.mdx +99 -0
  551. package/docs/webhooks/filters.mdx +146 -0
  552. package/docs/webhooks/human-in-the-loop.mdx +158 -0
  553. package/docs/webhooks/linear.mdx +186 -0
  554. package/docs/webhooks/overview.mdx +115 -0
  555. package/docs/webhooks/session-routing.mdx +141 -0
  556. package/docs/webhooks/slack.mdx +393 -0
  557. package/docs/webhooks/sources.mdx +250 -0
  558. package/docs/webhooks/waiters.mdx +190 -0
  559. package/docs/writing-tasks-introduction.mdx +34 -0
  560. package/package.json +143 -42
  561. package/skills/trigger-authoring-chat-agent/SKILL.md +308 -0
  562. package/skills/trigger-authoring-tasks/SKILL.md +254 -0
  563. package/skills/trigger-chat-agent-advanced/SKILL.md +403 -0
  564. package/skills/trigger-cost-savings/SKILL.md +116 -0
  565. package/skills/trigger-realtime-and-frontend/SKILL.md +276 -0
  566. package/dist/commonjs/apiClient.d.ts +0 -727
  567. package/dist/commonjs/apiClient.js +0 -692
  568. package/dist/commonjs/apiClient.js.map +0 -1
  569. package/dist/commonjs/concurrencyLimit.d.ts +0 -10
  570. package/dist/commonjs/concurrencyLimit.js +0 -17
  571. package/dist/commonjs/concurrencyLimit.js.map +0 -1
  572. package/dist/commonjs/errors.d.ts +0 -66
  573. package/dist/commonjs/errors.js +0 -109
  574. package/dist/commonjs/errors.js.map +0 -1
  575. package/dist/commonjs/httpEndpoint.d.ts +0 -87
  576. package/dist/commonjs/httpEndpoint.js +0 -130
  577. package/dist/commonjs/httpEndpoint.js.map +0 -1
  578. package/dist/commonjs/index.d.ts +0 -23
  579. package/dist/commonjs/index.js +0 -55
  580. package/dist/commonjs/index.js.map +0 -1
  581. package/dist/commonjs/integrations.d.ts +0 -11
  582. package/dist/commonjs/integrations.js.map +0 -1
  583. package/dist/commonjs/io.d.ts +0 -441
  584. package/dist/commonjs/io.js +0 -1165
  585. package/dist/commonjs/io.js.map +0 -1
  586. package/dist/commonjs/ioWithIntegrations.d.ts +0 -4
  587. package/dist/commonjs/ioWithIntegrations.js +0 -32
  588. package/dist/commonjs/ioWithIntegrations.js.map +0 -1
  589. package/dist/commonjs/job.d.ts +0 -96
  590. package/dist/commonjs/job.js +0 -210
  591. package/dist/commonjs/job.js.map +0 -1
  592. package/dist/commonjs/retry.d.ts +0 -20
  593. package/dist/commonjs/retry.js +0 -22
  594. package/dist/commonjs/retry.js.map +0 -1
  595. package/dist/commonjs/runLocalStorage.d.ts +0 -8
  596. package/dist/commonjs/runLocalStorage.js +0 -6
  597. package/dist/commonjs/runLocalStorage.js.map +0 -1
  598. package/dist/commonjs/security.d.ts +0 -18
  599. package/dist/commonjs/security.js +0 -41
  600. package/dist/commonjs/security.js.map +0 -1
  601. package/dist/commonjs/status.d.ts +0 -19
  602. package/dist/commonjs/status.js +0 -38
  603. package/dist/commonjs/status.js.map +0 -1
  604. package/dist/commonjs/store/keyValueStore.d.ts +0 -17
  605. package/dist/commonjs/store/keyValueStore.js +0 -138
  606. package/dist/commonjs/store/keyValueStore.js.map +0 -1
  607. package/dist/commonjs/store/keyValueStoreClient.d.ts +0 -19
  608. package/dist/commonjs/store/keyValueStoreClient.js +0 -65
  609. package/dist/commonjs/store/keyValueStoreClient.js.map +0 -1
  610. package/dist/commonjs/triggerClient.d.ts +0 -290
  611. package/dist/commonjs/triggerClient.js +0 -1366
  612. package/dist/commonjs/triggerClient.js.map +0 -1
  613. package/dist/commonjs/triggers/dynamic.d.ts +0 -56
  614. package/dist/commonjs/triggers/dynamic.js +0 -97
  615. package/dist/commonjs/triggers/dynamic.js.map +0 -1
  616. package/dist/commonjs/triggers/eventTrigger.d.ts +0 -58
  617. package/dist/commonjs/triggers/eventTrigger.js +0 -69
  618. package/dist/commonjs/triggers/eventTrigger.js.map +0 -1
  619. package/dist/commonjs/triggers/externalSource.d.ts +0 -148
  620. package/dist/commonjs/triggers/externalSource.js +0 -106
  621. package/dist/commonjs/triggers/externalSource.js.map +0 -1
  622. package/dist/commonjs/triggers/invokeTrigger.d.ts +0 -39
  623. package/dist/commonjs/triggers/invokeTrigger.js +0 -58
  624. package/dist/commonjs/triggers/invokeTrigger.js.map +0 -1
  625. package/dist/commonjs/triggers/notifications.d.ts +0 -111
  626. package/dist/commonjs/triggers/notifications.js +0 -101
  627. package/dist/commonjs/triggers/notifications.js.map +0 -1
  628. package/dist/commonjs/triggers/scheduled.d.ts +0 -145
  629. package/dist/commonjs/triggers/scheduled.js +0 -208
  630. package/dist/commonjs/triggers/scheduled.js.map +0 -1
  631. package/dist/commonjs/triggers/webhook.d.ts +0 -143
  632. package/dist/commonjs/triggers/webhook.js +0 -133
  633. package/dist/commonjs/triggers/webhook.js.map +0 -1
  634. package/dist/commonjs/typed-emitter.d.ts +0 -37
  635. package/dist/commonjs/typed-emitter.js +0 -3
  636. package/dist/commonjs/typed-emitter.js.map +0 -1
  637. package/dist/commonjs/types.d.ts +0 -204
  638. package/dist/commonjs/types.js +0 -23
  639. package/dist/commonjs/types.js.map +0 -1
  640. package/dist/commonjs/utils/formatSchemaErrors.d.ts +0 -3
  641. package/dist/commonjs/utils/formatSchemaErrors.js +0 -10
  642. package/dist/commonjs/utils/formatSchemaErrors.js.map +0 -1
  643. package/dist/commonjs/utils/typedAsyncLocalStorage.d.ts +0 -6
  644. package/dist/commonjs/utils/typedAsyncLocalStorage.js +0 -18
  645. package/dist/commonjs/utils/typedAsyncLocalStorage.js.map +0 -1
  646. package/dist/commonjs/utils.d.ts +0 -1
  647. package/dist/commonjs/utils.js +0 -11
  648. package/dist/commonjs/utils.js.map +0 -1
  649. package/dist/esm/apiClient.d.ts +0 -727
  650. package/dist/esm/apiClient.js +0 -687
  651. package/dist/esm/apiClient.js.map +0 -1
  652. package/dist/esm/concurrencyLimit.d.ts +0 -10
  653. package/dist/esm/concurrencyLimit.js +0 -13
  654. package/dist/esm/concurrencyLimit.js.map +0 -1
  655. package/dist/esm/errors.d.ts +0 -66
  656. package/dist/esm/errors.js +0 -95
  657. package/dist/esm/errors.js.map +0 -1
  658. package/dist/esm/httpEndpoint.d.ts +0 -87
  659. package/dist/esm/httpEndpoint.js +0 -125
  660. package/dist/esm/httpEndpoint.js.map +0 -1
  661. package/dist/esm/index.d.ts +0 -23
  662. package/dist/esm/index.js +0 -35
  663. package/dist/esm/index.js.map +0 -1
  664. package/dist/esm/integrations.d.ts +0 -11
  665. package/dist/esm/integrations.js +0 -2
  666. package/dist/esm/integrations.js.map +0 -1
  667. package/dist/esm/io.d.ts +0 -441
  668. package/dist/esm/io.js +0 -1159
  669. package/dist/esm/io.js.map +0 -1
  670. package/dist/esm/ioWithIntegrations.d.ts +0 -4
  671. package/dist/esm/ioWithIntegrations.js +0 -29
  672. package/dist/esm/ioWithIntegrations.js.map +0 -1
  673. package/dist/esm/job.d.ts +0 -96
  674. package/dist/esm/job.js +0 -206
  675. package/dist/esm/job.js.map +0 -1
  676. package/dist/esm/retry.d.ts +0 -20
  677. package/dist/esm/retry.js +0 -19
  678. package/dist/esm/retry.js.map +0 -1
  679. package/dist/esm/runLocalStorage.d.ts +0 -8
  680. package/dist/esm/runLocalStorage.js +0 -3
  681. package/dist/esm/runLocalStorage.js.map +0 -1
  682. package/dist/esm/security.d.ts +0 -18
  683. package/dist/esm/security.js +0 -34
  684. package/dist/esm/security.js.map +0 -1
  685. package/dist/esm/status.d.ts +0 -19
  686. package/dist/esm/status.js +0 -34
  687. package/dist/esm/status.js.map +0 -1
  688. package/dist/esm/store/keyValueStore.d.ts +0 -17
  689. package/dist/esm/store/keyValueStore.js +0 -134
  690. package/dist/esm/store/keyValueStore.js.map +0 -1
  691. package/dist/esm/store/keyValueStoreClient.d.ts +0 -19
  692. package/dist/esm/store/keyValueStoreClient.js +0 -61
  693. package/dist/esm/store/keyValueStoreClient.js.map +0 -1
  694. package/dist/esm/triggerClient.d.ts +0 -288
  695. package/dist/esm/triggerClient.js +0 -1359
  696. package/dist/esm/triggerClient.js.map +0 -1
  697. package/dist/esm/triggers/dynamic.d.ts +0 -56
  698. package/dist/esm/triggers/dynamic.js +0 -93
  699. package/dist/esm/triggers/dynamic.js.map +0 -1
  700. package/dist/esm/triggers/eventTrigger.d.ts +0 -58
  701. package/dist/esm/triggers/eventTrigger.js +0 -64
  702. package/dist/esm/triggers/eventTrigger.js.map +0 -1
  703. package/dist/esm/triggers/externalSource.d.ts +0 -148
  704. package/dist/esm/triggers/externalSource.js +0 -100
  705. package/dist/esm/triggers/externalSource.js.map +0 -1
  706. package/dist/esm/triggers/invokeTrigger.d.ts +0 -39
  707. package/dist/esm/triggers/invokeTrigger.js +0 -53
  708. package/dist/esm/triggers/invokeTrigger.js.map +0 -1
  709. package/dist/esm/triggers/notifications.d.ts +0 -111
  710. package/dist/esm/triggers/notifications.js +0 -94
  711. package/dist/esm/triggers/notifications.js.map +0 -1
  712. package/dist/esm/triggers/scheduled.d.ts +0 -145
  713. package/dist/esm/triggers/scheduled.js +0 -197
  714. package/dist/esm/triggers/scheduled.js.map +0 -1
  715. package/dist/esm/triggers/webhook.d.ts +0 -143
  716. package/dist/esm/triggers/webhook.js +0 -128
  717. package/dist/esm/triggers/webhook.js.map +0 -1
  718. package/dist/esm/typed-emitter.d.ts +0 -37
  719. package/dist/esm/typed-emitter.js +0 -2
  720. package/dist/esm/typed-emitter.js.map +0 -1
  721. package/dist/esm/types.d.ts +0 -204
  722. package/dist/esm/types.js +0 -19
  723. package/dist/esm/types.js.map +0 -1
  724. package/dist/esm/utils/formatSchemaErrors.d.ts +0 -3
  725. package/dist/esm/utils/formatSchemaErrors.js +0 -7
  726. package/dist/esm/utils/formatSchemaErrors.js.map +0 -1
  727. package/dist/esm/utils/typedAsyncLocalStorage.d.ts +0 -6
  728. package/dist/esm/utils/typedAsyncLocalStorage.js +0 -14
  729. package/dist/esm/utils/typedAsyncLocalStorage.js.map +0 -1
  730. package/dist/esm/utils.d.ts +0 -1
  731. package/dist/esm/utils.js +0 -8
  732. package/dist/esm/utils.js.map +0 -1
@@ -1,1366 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TriggerClient = void 0;
7
- const core_1 = require("@trigger.dev/core");
8
- const logger_1 = require("@trigger.dev/core/logger");
9
- const node_events_1 = __importDefault(require("node:events"));
10
- const node_process_1 = require("node:process");
11
- const apiClient_js_1 = require("./apiClient.js");
12
- const concurrencyLimit_js_1 = require("./concurrencyLimit.js");
13
- const errors_js_1 = require("./errors.js");
14
- const httpEndpoint_js_1 = require("./httpEndpoint.js");
15
- const io_js_1 = require("./io.js");
16
- const ioWithIntegrations_js_1 = require("./ioWithIntegrations.js");
17
- const job_js_1 = require("./job.js");
18
- const runLocalStorage_js_1 = require("./runLocalStorage.js");
19
- const keyValueStore_js_1 = require("./store/keyValueStore.js");
20
- const dynamic_js_1 = require("./triggers/dynamic.js");
21
- const eventTrigger_js_1 = require("./triggers/eventTrigger.js");
22
- const scheduled_js_1 = require("./triggers/scheduled.js");
23
- const formatSchemaErrors_js_1 = require("./utils/formatSchemaErrors.js");
24
- const version_js_1 = require("./version.js");
25
- const parseRequestPayload = (rawPayload) => {
26
- const result = core_1.RequestWithRawBodySchema.safeParse(rawPayload);
27
- if (!result.success) {
28
- throw new errors_js_1.ParsedPayloadSchemaError((0, formatSchemaErrors_js_1.formatSchemaErrors)(result.error.issues));
29
- }
30
- return new Request(new URL(result.data.url), {
31
- method: result.data.method,
32
- headers: result.data.headers,
33
- body: result.data.rawBody,
34
- });
35
- };
36
- const registerWebhookEvent = (key) => ({
37
- name: `${core_1.REGISTER_WEBHOOK}.${key}`,
38
- title: "Register Webhook",
39
- source: "internal",
40
- icon: "webhook",
41
- parsePayload: core_1.RegisterWebhookPayloadSchema.parse,
42
- });
43
- const registerSourceEvent = {
44
- name: core_1.REGISTER_SOURCE_EVENT_V2,
45
- title: "Register Source",
46
- source: "internal",
47
- icon: "register-source",
48
- parsePayload: core_1.RegisterSourceEventSchemaV2.parse,
49
- };
50
- /** A [TriggerClient](https://trigger.dev/docs/documentation/concepts/client-adaptors) is used to connect to a specific [Project](https://trigger.dev/docs/documentation/concepts/projects) by using an [API Key](https://trigger.dev/docs/documentation/concepts/environments-apikeys). */
51
- class TriggerClient {
52
- #options;
53
- #registeredJobs = {};
54
- #registeredSources = {};
55
- #registeredWebhooks = {};
56
- #registeredHttpSourceHandlers = {};
57
- #registeredWebhookSourceHandlers = {};
58
- #registeredDynamicTriggers = {};
59
- #jobMetadataByDynamicTriggers = {};
60
- #registeredSchedules = {};
61
- #registeredHttpEndpoints = {};
62
- #authResolvers = {};
63
- #envStore;
64
- #eventEmitter = new node_events_1.default();
65
- #client;
66
- #internalLogger;
67
- id;
68
- constructor(options) {
69
- this.id = options.id;
70
- this.#options = options;
71
- this.#internalLogger = new logger_1.Logger("trigger.dev", this.#options.verbose ? "debug" : "log", [
72
- "output",
73
- "noopTasksSet",
74
- ]);
75
- this.#client = new apiClient_js_1.ApiClient({
76
- logLevel: this.#options.verbose ? "debug" : "log",
77
- ...this.#options,
78
- });
79
- this.#envStore = new keyValueStore_js_1.KeyValueStore(this.#client);
80
- }
81
- on = this.#eventEmitter.on.bind(this.#eventEmitter);
82
- async handleRequest(request, timeOrigin = performance.now()) {
83
- this.#internalLogger.debug("handling request", {
84
- url: request.url,
85
- headers: Object.fromEntries(request.headers.entries()),
86
- method: request.method,
87
- });
88
- const apiKey = request.headers.get("x-trigger-api-key");
89
- const triggerVersion = request.headers.get("x-trigger-version");
90
- const authorization = this.authorized(apiKey);
91
- switch (authorization) {
92
- case "authorized": {
93
- break;
94
- }
95
- case "missing-client": {
96
- return {
97
- status: 401,
98
- body: {
99
- message: "Unauthorized: client missing apiKey",
100
- },
101
- headers: this.#standardResponseHeaders(timeOrigin),
102
- };
103
- }
104
- case "missing-header": {
105
- return {
106
- status: 401,
107
- body: {
108
- message: "Unauthorized: missing x-trigger-api-key header",
109
- },
110
- headers: this.#standardResponseHeaders(timeOrigin),
111
- };
112
- }
113
- case "unauthorized": {
114
- return {
115
- status: 401,
116
- body: {
117
- message: `Forbidden: client apiKey mismatch: Make sure you are using the correct API Key for your environment`,
118
- },
119
- headers: this.#standardResponseHeaders(timeOrigin),
120
- };
121
- }
122
- }
123
- if (request.method !== "POST") {
124
- return {
125
- status: 405,
126
- body: {
127
- message: "Method not allowed (only POST is allowed)",
128
- },
129
- headers: this.#standardResponseHeaders(timeOrigin),
130
- };
131
- }
132
- const action = request.headers.get("x-trigger-action");
133
- if (!action) {
134
- return {
135
- status: 400,
136
- body: {
137
- message: "Missing x-trigger-action header",
138
- },
139
- headers: this.#standardResponseHeaders(timeOrigin),
140
- };
141
- }
142
- switch (action) {
143
- case "PING": {
144
- const endpointId = request.headers.get("x-trigger-endpoint-id");
145
- if (!endpointId) {
146
- return {
147
- status: 200,
148
- body: {
149
- ok: false,
150
- error: "Missing endpoint ID",
151
- },
152
- headers: this.#standardResponseHeaders(timeOrigin),
153
- };
154
- }
155
- if (this.id !== endpointId) {
156
- return {
157
- status: 200,
158
- body: {
159
- ok: false,
160
- error: `Endpoint ID mismatch error. Expected ${this.id}, got ${endpointId}`,
161
- },
162
- headers: this.#standardResponseHeaders(timeOrigin),
163
- };
164
- }
165
- return {
166
- status: 200,
167
- body: {
168
- ok: true,
169
- },
170
- headers: this.#standardResponseHeaders(timeOrigin),
171
- };
172
- }
173
- case "INDEX_ENDPOINT": {
174
- const body = {
175
- jobs: this.#buildJobsIndex(),
176
- sources: Object.values(this.#registeredSources),
177
- webhooks: Object.values(this.#registeredWebhooks),
178
- dynamicTriggers: Object.values(this.#registeredDynamicTriggers).map((trigger) => ({
179
- id: trigger.id,
180
- jobs: this.#jobMetadataByDynamicTriggers[trigger.id] ?? [],
181
- registerSourceJob: {
182
- id: dynamicTriggerRegisterSourceJobId(trigger.id),
183
- version: trigger.source.version,
184
- },
185
- })),
186
- dynamicSchedules: Object.entries(this.#registeredSchedules).map(([id, jobs]) => ({
187
- id,
188
- jobs,
189
- })),
190
- httpEndpoints: Object.entries(this.#registeredHttpEndpoints).map(([id, endpoint]) => endpoint.toJSON()),
191
- };
192
- // if the x-trigger-job-id header is not set, we return all jobs
193
- return {
194
- status: 200,
195
- body,
196
- headers: this.#standardResponseHeaders(timeOrigin),
197
- };
198
- }
199
- case "INITIALIZE_TRIGGER": {
200
- const json = await request.json();
201
- const body = core_1.InitializeTriggerBodySchema.safeParse(json);
202
- if (!body.success) {
203
- return {
204
- status: 400,
205
- body: {
206
- message: "Invalid trigger body",
207
- },
208
- };
209
- }
210
- const dynamicTrigger = this.#registeredDynamicTriggers[body.data.id];
211
- if (!dynamicTrigger) {
212
- return {
213
- status: 404,
214
- body: {
215
- message: "Dynamic trigger not found",
216
- },
217
- };
218
- }
219
- return {
220
- status: 200,
221
- body: dynamicTrigger.registeredTriggerForParams(body.data.params),
222
- headers: this.#standardResponseHeaders(timeOrigin),
223
- };
224
- }
225
- case "EXECUTE_JOB": {
226
- const json = await request.json();
227
- const execution = core_1.RunJobBodySchema.safeParse(json);
228
- if (!execution.success) {
229
- return {
230
- status: 400,
231
- body: {
232
- message: "Invalid execution",
233
- },
234
- };
235
- }
236
- const job = this.#registeredJobs[execution.data.job.id];
237
- if (!job) {
238
- return {
239
- status: 404,
240
- body: {
241
- message: "Job not found",
242
- },
243
- };
244
- }
245
- const results = await this.#executeJob(execution.data, job, timeOrigin, triggerVersion);
246
- this.#internalLogger.debug("executed job", {
247
- results,
248
- job: job.id,
249
- version: job.version,
250
- triggerVersion,
251
- });
252
- const standardHeaders = this.#standardResponseHeaders(timeOrigin);
253
- standardHeaders["x-trigger-run-metadata"] = this.#serializeRunMetadata(job);
254
- return {
255
- status: 200,
256
- body: results,
257
- headers: standardHeaders,
258
- };
259
- }
260
- case "PREPROCESS_RUN": {
261
- const json = await request.json();
262
- const body = core_1.PreprocessRunBodySchema.safeParse(json);
263
- if (!body.success) {
264
- return {
265
- status: 400,
266
- body: {
267
- message: "Invalid body",
268
- },
269
- };
270
- }
271
- const job = this.#registeredJobs[body.data.job.id];
272
- if (!job) {
273
- return {
274
- status: 404,
275
- body: {
276
- message: "Job not found",
277
- },
278
- };
279
- }
280
- const results = await this.#preprocessRun(body.data, job);
281
- return {
282
- status: 200,
283
- body: {
284
- abort: results.abort,
285
- properties: results.properties,
286
- },
287
- headers: this.#standardResponseHeaders(timeOrigin),
288
- };
289
- }
290
- case "DELIVER_HTTP_SOURCE_REQUEST": {
291
- const headers = core_1.HttpSourceRequestHeadersSchema.safeParse(Object.fromEntries(request.headers.entries()));
292
- if (!headers.success) {
293
- return {
294
- status: 400,
295
- body: {
296
- message: "Invalid headers",
297
- },
298
- };
299
- }
300
- const sourceRequestNeedsBody = headers.data["x-ts-http-method"] !== "GET";
301
- const sourceRequestInit = {
302
- method: headers.data["x-ts-http-method"],
303
- headers: headers.data["x-ts-http-headers"],
304
- body: sourceRequestNeedsBody ? request.body : undefined,
305
- };
306
- if (sourceRequestNeedsBody) {
307
- try {
308
- // @ts-ignore
309
- sourceRequestInit.duplex = "half";
310
- }
311
- catch (error) {
312
- // ignore
313
- }
314
- }
315
- const sourceRequest = new Request(headers.data["x-ts-http-url"], sourceRequestInit);
316
- const key = headers.data["x-ts-key"];
317
- const dynamicId = headers.data["x-ts-dynamic-id"];
318
- const secret = headers.data["x-ts-secret"];
319
- const params = headers.data["x-ts-params"];
320
- const data = headers.data["x-ts-data"];
321
- const auth = headers.data["x-ts-auth"];
322
- const inputMetadata = headers.data["x-ts-metadata"];
323
- const source = {
324
- key,
325
- dynamicId,
326
- secret,
327
- params,
328
- data,
329
- auth,
330
- metadata: inputMetadata,
331
- };
332
- const { response, events, metadata } = await this.#handleHttpSourceRequest(source, sourceRequest);
333
- return {
334
- status: 200,
335
- body: {
336
- events,
337
- response,
338
- metadata,
339
- },
340
- headers: this.#standardResponseHeaders(timeOrigin),
341
- };
342
- }
343
- case "DELIVER_HTTP_ENDPOINT_REQUEST_FOR_RESPONSE": {
344
- const headers = core_1.HttpEndpointRequestHeadersSchema.safeParse(Object.fromEntries(request.headers.entries()));
345
- if (!headers.success) {
346
- return {
347
- status: 400,
348
- body: {
349
- message: "Invalid headers",
350
- },
351
- };
352
- }
353
- const sourceRequestNeedsBody = headers.data["x-ts-http-method"] !== "GET";
354
- const sourceRequestInit = {
355
- method: headers.data["x-ts-http-method"],
356
- headers: headers.data["x-ts-http-headers"],
357
- body: sourceRequestNeedsBody ? request.body : undefined,
358
- };
359
- if (sourceRequestNeedsBody) {
360
- try {
361
- // @ts-ignore
362
- sourceRequestInit.duplex = "half";
363
- }
364
- catch (error) {
365
- // ignore
366
- }
367
- }
368
- const sourceRequest = new Request(headers.data["x-ts-http-url"], sourceRequestInit);
369
- const key = headers.data["x-ts-key"];
370
- const { response } = await this.#handleHttpEndpointRequestForResponse({
371
- key,
372
- }, sourceRequest);
373
- return {
374
- status: 200,
375
- body: response,
376
- headers: this.#standardResponseHeaders(timeOrigin),
377
- };
378
- }
379
- case "DELIVER_WEBHOOK_REQUEST": {
380
- const headers = core_1.WebhookSourceRequestHeadersSchema.safeParse(Object.fromEntries(request.headers.entries()));
381
- if (!headers.success) {
382
- return {
383
- status: 400,
384
- body: {
385
- message: "Invalid headers",
386
- },
387
- };
388
- }
389
- const sourceRequestNeedsBody = headers.data["x-ts-http-method"] !== "GET";
390
- const sourceRequestInit = {
391
- method: headers.data["x-ts-http-method"],
392
- headers: headers.data["x-ts-http-headers"],
393
- body: sourceRequestNeedsBody ? request.body : undefined,
394
- };
395
- if (sourceRequestNeedsBody) {
396
- try {
397
- // @ts-ignore
398
- sourceRequestInit.duplex = "half";
399
- }
400
- catch (error) {
401
- // ignore
402
- }
403
- }
404
- const webhookRequest = new Request(headers.data["x-ts-http-url"], sourceRequestInit);
405
- const key = headers.data["x-ts-key"];
406
- const secret = headers.data["x-ts-secret"];
407
- const params = headers.data["x-ts-params"];
408
- const ctx = {
409
- key,
410
- secret,
411
- params,
412
- };
413
- const { response, verified, error } = await this.#handleWebhookRequest(webhookRequest, ctx);
414
- return {
415
- status: 200,
416
- body: {
417
- response,
418
- verified,
419
- error,
420
- },
421
- headers: this.#standardResponseHeaders(timeOrigin),
422
- };
423
- }
424
- case "VALIDATE": {
425
- return {
426
- status: 200,
427
- body: {
428
- ok: true,
429
- endpointId: this.id,
430
- },
431
- headers: this.#standardResponseHeaders(timeOrigin),
432
- };
433
- }
434
- case "PROBE_EXECUTION_TIMEOUT": {
435
- const json = await request.json();
436
- // Keep this request open for max 15 minutes so the server can detect when the function execution limit is exceeded
437
- const timeout = json?.timeout ?? 15 * 60 * 1000;
438
- await new Promise((resolve) => setTimeout(resolve, timeout));
439
- return {
440
- status: 200,
441
- body: {
442
- ok: true,
443
- },
444
- headers: this.#standardResponseHeaders(timeOrigin),
445
- };
446
- }
447
- case "RUN_NOTIFICATION": {
448
- const rawJson = await request.json();
449
- const runNotification = rawJson;
450
- if (runNotification.ok) {
451
- await this.#deliverSuccessfulRunNotification(runNotification);
452
- }
453
- else {
454
- await this.#deliverFailedRunNotification(runNotification);
455
- }
456
- return {
457
- status: 200,
458
- body: {
459
- ok: true,
460
- },
461
- headers: this.#standardResponseHeaders(timeOrigin),
462
- };
463
- }
464
- }
465
- return {
466
- status: 405,
467
- body: {
468
- message: "Method not allowed",
469
- },
470
- headers: this.#standardResponseHeaders(timeOrigin),
471
- };
472
- }
473
- defineJob(options) {
474
- const existingRegisteredJob = this.#registeredJobs[options.id];
475
- if (existingRegisteredJob && options.__internal !== true) {
476
- console.warn(`[@trigger.dev/sdk] Warning: The Job "${existingRegisteredJob.id}" you're attempting to define has already been defined. Please assign a different ID to the job.`);
477
- }
478
- const job = new job_js_1.Job(options);
479
- this.attach(job);
480
- return job;
481
- }
482
- defineAuthResolver(integration, resolver) {
483
- this.#authResolvers[integration.id] = resolver;
484
- return this;
485
- }
486
- defineDynamicSchedule(options) {
487
- return new scheduled_js_1.DynamicSchedule(this, options);
488
- }
489
- defineDynamicTrigger(options) {
490
- return new dynamic_js_1.DynamicTrigger(this, options);
491
- }
492
- /**
493
- * An [HTTP endpoint](https://trigger.dev/docs/documentation/concepts/http-endpoints) allows you to create a [HTTP Trigger](https://trigger.dev/docs/documentation/concepts/triggers/http), which means you can trigger your Jobs from any webhooks.
494
- * @param options The Endpoint options
495
- * @returns An HTTP Endpoint, that can be used to create an HTTP Trigger.
496
- * @link https://trigger.dev/docs/documentation/concepts/http-endpoints
497
- */
498
- defineHttpEndpoint(options, suppressWarnings = false) {
499
- const existingHttpEndpoint = this.#registeredHttpEndpoints[options.id];
500
- if (!suppressWarnings && existingHttpEndpoint) {
501
- console.warn(`[@trigger.dev/sdk] Warning: The HttpEndpoint "${existingHttpEndpoint.id}" you're attempting to define has already been defined. Please assign a different ID to the HttpEndpoint.`);
502
- }
503
- const endpoint = (0, httpEndpoint_js_1.httpEndpoint)(options);
504
- this.#registeredHttpEndpoints[endpoint.id] = endpoint;
505
- return endpoint;
506
- }
507
- defineConcurrencyLimit(options) {
508
- return new concurrencyLimit_js_1.ConcurrencyLimit(options);
509
- }
510
- attach(job) {
511
- this.#registeredJobs[job.id] = job;
512
- job.trigger.attachToJob(this, job);
513
- job.client = this;
514
- }
515
- attachDynamicTrigger(trigger) {
516
- this.#registeredDynamicTriggers[trigger.id] = trigger;
517
- this.defineJob({
518
- id: dynamicTriggerRegisterSourceJobId(trigger.id),
519
- name: `Register dynamic trigger ${trigger.id}`,
520
- version: trigger.source.version,
521
- trigger: new eventTrigger_js_1.EventTrigger({
522
- event: registerSourceEvent,
523
- filter: { dynamicTriggerId: [trigger.id] },
524
- }),
525
- integrations: {
526
- integration: trigger.source.integration,
527
- },
528
- run: async (event, io, ctx) => {
529
- const updates = await trigger.source.register(event.source.params, event, io, ctx);
530
- if (!updates) {
531
- // TODO: do something here?
532
- return;
533
- }
534
- return await io.updateSource("update-source", {
535
- key: event.source.key,
536
- ...updates,
537
- });
538
- },
539
- __internal: true,
540
- });
541
- }
542
- attachJobToDynamicTrigger(job, trigger) {
543
- const jobs = this.#jobMetadataByDynamicTriggers[trigger.id] ?? [];
544
- jobs.push({ id: job.id, version: job.version });
545
- this.#jobMetadataByDynamicTriggers[trigger.id] = jobs;
546
- }
547
- attachSource(options) {
548
- this.#registeredHttpSourceHandlers[options.key] = async (s, r) => {
549
- return await options.source.handle(s, r, this.#internalLogger);
550
- };
551
- let registeredSource = this.#registeredSources[options.key];
552
- if (!registeredSource) {
553
- registeredSource = {
554
- version: "2",
555
- channel: options.source.channel,
556
- key: options.key,
557
- params: options.params,
558
- options: {},
559
- integration: {
560
- id: options.source.integration.id,
561
- metadata: options.source.integration.metadata,
562
- authSource: options.source.integration.authSource,
563
- },
564
- registerSourceJob: {
565
- id: options.key,
566
- version: options.source.version,
567
- },
568
- };
569
- }
570
- //combined the previous source options with this one, making sure to include event
571
- const newOptions = deepMergeOptions({
572
- event: typeof options.event.name === "string" ? [options.event.name] : options.event.name,
573
- }, options.options ?? {});
574
- registeredSource.options = deepMergeOptions(registeredSource.options, newOptions);
575
- this.#registeredSources[options.key] = registeredSource;
576
- this.defineJob({
577
- id: options.key,
578
- name: options.key,
579
- version: options.source.version,
580
- trigger: new eventTrigger_js_1.EventTrigger({
581
- event: registerSourceEvent,
582
- filter: { source: { key: [options.key] } },
583
- }),
584
- integrations: {
585
- integration: options.source.integration,
586
- },
587
- run: async (event, io, ctx) => {
588
- const updates = await options.source.register(options.params, event, io, ctx);
589
- if (!updates) {
590
- // TODO: do something here?
591
- return;
592
- }
593
- return await io.updateSource("update-source", {
594
- key: options.key,
595
- ...updates,
596
- });
597
- },
598
- __internal: true,
599
- });
600
- }
601
- attachDynamicSchedule(key) {
602
- const jobs = this.#registeredSchedules[key] ?? [];
603
- this.#registeredSchedules[key] = jobs;
604
- }
605
- attachDynamicScheduleToJob(key, job) {
606
- const jobs = this.#registeredSchedules[key] ?? [];
607
- jobs.push({ id: job.id, version: job.version });
608
- this.#registeredSchedules[key] = jobs;
609
- }
610
- attachWebhook(options) {
611
- const { source } = options;
612
- this.#registeredWebhookSourceHandlers[options.key] = {
613
- verify: source.verify.bind(source),
614
- generateEvents: source.generateEvents.bind(source),
615
- };
616
- let registeredWebhook = this.#registeredWebhooks[options.key];
617
- if (!registeredWebhook) {
618
- registeredWebhook = {
619
- key: options.key,
620
- params: options.params,
621
- config: options.config,
622
- integration: {
623
- id: source.integration.id,
624
- metadata: source.integration.metadata,
625
- authSource: source.integration.authSource,
626
- },
627
- httpEndpoint: {
628
- id: options.key,
629
- },
630
- };
631
- }
632
- else {
633
- registeredWebhook.config = deepMergeOptions(registeredWebhook.config, options.config);
634
- }
635
- this.#registeredWebhooks[options.key] = registeredWebhook;
636
- this.defineJob({
637
- id: `webhook.register.${options.key}`,
638
- name: `webhook.register.${options.key}`,
639
- version: source.version,
640
- trigger: new eventTrigger_js_1.EventTrigger({
641
- event: registerWebhookEvent(options.key),
642
- }),
643
- integrations: {
644
- integration: source.integration,
645
- },
646
- run: async (registerPayload, io, ctx) => {
647
- return await io.try(async () => {
648
- this.#internalLogger.debug("[webhook.register] Start");
649
- const crudOptions = {
650
- io,
651
- // this is just a more strongly typed payload
652
- ctx: registerPayload,
653
- };
654
- if (!registerPayload.active) {
655
- this.#internalLogger.debug("[webhook.register] Not active, run create");
656
- await io.try(async () => {
657
- await source.crud.create(crudOptions);
658
- }, async (error) => {
659
- this.#internalLogger.debug("[webhook.register] Error during create, re-trying with delete first", { error });
660
- await io.runTask("create-retry", async () => {
661
- await source.crud.delete(crudOptions);
662
- await source.crud.create(crudOptions);
663
- });
664
- });
665
- return await io.updateWebhook("update-webhook-success", {
666
- key: options.key,
667
- active: true,
668
- config: registerPayload.config.desired,
669
- });
670
- }
671
- this.#internalLogger.debug("[webhook.register] Already active, run update");
672
- if (source.crud.update) {
673
- await source.crud.update(crudOptions);
674
- }
675
- else {
676
- this.#internalLogger.debug("[webhook.register] Run delete and create instead of update");
677
- await source.crud.delete(crudOptions);
678
- await source.crud.create(crudOptions);
679
- }
680
- return await io.updateWebhook("update-webhook-success", {
681
- key: options.key,
682
- active: true,
683
- config: registerPayload.config.desired,
684
- });
685
- }, async (error) => {
686
- this.#internalLogger.debug("[webhook.register] Error", { error });
687
- await io.updateWebhook("update-webhook-error", {
688
- key: options.key,
689
- active: false,
690
- });
691
- throw error;
692
- });
693
- },
694
- __internal: true,
695
- });
696
- }
697
- async registerTrigger(id, key, options, idempotencyKey) {
698
- return this.#client.registerTrigger(this.id, id, key, options, idempotencyKey);
699
- }
700
- async getAuth(id) {
701
- return this.#client.getAuth(this.id, id);
702
- }
703
- /** You can call this function from anywhere in your backend to send an event. The other way to send an event is by using [`io.sendEvent()`](https://trigger.dev/docs/sdk/io/sendevent) from inside a `run()` function.
704
- * @param event The event to send.
705
- * @param options Options for sending the event.
706
- * @returns A promise that resolves to the event details
707
- */
708
- async sendEvent(event, options) {
709
- return this.#client.sendEvent(event, options);
710
- }
711
- /** You can call this function from anywhere in your backend to send multiple events. The other way to send multiple events is by using [`io.sendEvents()`](https://trigger.dev/docs/sdk/io/sendevents) from inside a `run()` function.
712
- * @param events The events to send.
713
- * @param options Options for sending the events.
714
- * @returns A promise that resolves to an array of event details
715
- */
716
- async sendEvents(events, options) {
717
- return this.#client.sendEvents(events, options);
718
- }
719
- async cancelEvent(eventId) {
720
- return this.#client.cancelEvent(eventId);
721
- }
722
- async cancelRunsForEvent(eventId) {
723
- return this.#client.cancelRunsForEvent(eventId);
724
- }
725
- async updateStatus(runId, id, status) {
726
- return this.#client.updateStatus(runId, id, status);
727
- }
728
- async registerSchedule(id, key, schedule) {
729
- return this.#client.registerSchedule(this.id, id, key, schedule);
730
- }
731
- async unregisterSchedule(id, key) {
732
- return this.#client.unregisterSchedule(this.id, id, key);
733
- }
734
- async getEvent(eventId) {
735
- return this.#client.getEvent(eventId);
736
- }
737
- async getRun(runId, options) {
738
- return this.#client.getRun(runId, options);
739
- }
740
- async cancelRun(runId) {
741
- return this.#client.cancelRun(runId);
742
- }
743
- async getRuns(jobSlug, options) {
744
- return this.#client.getRuns(jobSlug, options);
745
- }
746
- async getRunStatuses(runId) {
747
- return this.#client.getRunStatuses(runId);
748
- }
749
- async invokeJob(jobId, payload, options) {
750
- return this.#client.invokeJob(jobId, payload, options);
751
- }
752
- async cancelRunsForJob(jobId) {
753
- return this.#client.cancelRunsForJob(jobId);
754
- }
755
- async createEphemeralEventDispatcher(payload) {
756
- return this.#client.createEphemeralEventDispatcher(payload);
757
- }
758
- get store() {
759
- return {
760
- env: this.#envStore,
761
- };
762
- }
763
- authorized(apiKey) {
764
- if (typeof apiKey !== "string") {
765
- return "missing-header";
766
- }
767
- const localApiKey = this.#options.apiKey ?? node_process_1.env.TRIGGER_API_KEY;
768
- if (!localApiKey) {
769
- return "missing-client";
770
- }
771
- return apiKey === localApiKey ? "authorized" : "unauthorized";
772
- }
773
- apiKey() {
774
- return this.#options.apiKey ?? node_process_1.env.TRIGGER_API_KEY;
775
- }
776
- async #preprocessRun(body, job) {
777
- const context = this.#createPreprocessRunContext(body);
778
- const parsedPayload = job.trigger.event.parsePayload(body.event.payload ?? {});
779
- const properties = job.trigger.event.runProperties?.(parsedPayload) ?? [];
780
- return {
781
- abort: false,
782
- properties,
783
- };
784
- }
785
- async #executeJob(body, job, timeOrigin, triggerVersion) {
786
- this.#internalLogger.debug("executing job", {
787
- execution: body,
788
- job: job.id,
789
- version: job.version,
790
- triggerVersion,
791
- });
792
- const context = this.#createRunContext(body);
793
- const io = new io_js_1.IO({
794
- id: body.run.id,
795
- jobId: job.id,
796
- cachedTasks: body.tasks,
797
- cachedTasksCursor: body.cachedTaskCursor,
798
- yieldedExecutions: body.yieldedExecutions ?? [],
799
- noopTasksSet: body.noopTasksSet,
800
- apiClient: this.#client,
801
- logger: this.#internalLogger,
802
- client: this,
803
- context,
804
- jobLogLevel: job.logLevel ?? this.#options.logLevel ?? "info",
805
- jobLogger: this.#options.ioLogLocalEnabled
806
- ? new logger_1.Logger(job.id, job.logLevel ?? this.#options.logLevel ?? "info")
807
- : undefined,
808
- serverVersion: triggerVersion,
809
- timeOrigin,
810
- executionTimeout: body.runChunkExecutionLimit,
811
- });
812
- const resolvedConnections = await this.#resolveConnections(context, job.options.integrations, body.connections);
813
- if (!resolvedConnections.ok) {
814
- return {
815
- status: "UNRESOLVED_AUTH_ERROR",
816
- issues: resolvedConnections.issues,
817
- };
818
- }
819
- const ioWithConnections = (0, ioWithIntegrations_js_1.createIOWithIntegrations)(io, resolvedConnections.data, job.options.integrations);
820
- try {
821
- const parsedPayload = job.trigger.event.parsePayload(body.event.payload ?? {});
822
- if (!context.run.isTest) {
823
- const verified = await job.trigger.verifyPayload(parsedPayload);
824
- if (!verified.success) {
825
- return {
826
- status: "ERROR",
827
- error: { message: `Payload verification failed. ${verified.reason}` },
828
- };
829
- }
830
- }
831
- const output = await runLocalStorage_js_1.runLocalStorage.runWith({ io, ctx: context }, () => {
832
- return job.options.run(parsedPayload, ioWithConnections, context);
833
- });
834
- if (this.#options.verbose) {
835
- this.#logIOStats(io.stats);
836
- }
837
- return { status: "SUCCESS", output };
838
- }
839
- catch (error) {
840
- if (this.#options.verbose) {
841
- this.#logIOStats(io.stats);
842
- }
843
- if (error instanceof errors_js_1.ResumeWithParallelTaskError) {
844
- return {
845
- status: "RESUME_WITH_PARALLEL_TASK",
846
- task: error.task,
847
- childErrors: error.childErrors.map((childError) => {
848
- return this.#convertErrorToExecutionResponse(childError, body);
849
- }),
850
- };
851
- }
852
- return this.#convertErrorToExecutionResponse(error, body);
853
- }
854
- }
855
- #convertErrorToExecutionResponse(error, body) {
856
- if (error instanceof errors_js_1.AutoYieldExecutionError) {
857
- return {
858
- status: "AUTO_YIELD_EXECUTION",
859
- location: error.location,
860
- timeRemaining: error.timeRemaining,
861
- timeElapsed: error.timeElapsed,
862
- limit: body.runChunkExecutionLimit,
863
- };
864
- }
865
- if (error instanceof errors_js_1.AutoYieldWithCompletedTaskExecutionError) {
866
- return {
867
- status: "AUTO_YIELD_EXECUTION_WITH_COMPLETED_TASK",
868
- id: error.id,
869
- properties: error.properties,
870
- output: error.output,
871
- data: {
872
- ...error.data,
873
- limit: body.runChunkExecutionLimit,
874
- },
875
- };
876
- }
877
- if (error instanceof errors_js_1.AutoYieldRateLimitError) {
878
- return {
879
- status: "AUTO_YIELD_RATE_LIMIT",
880
- reset: error.resetAtTimestamp,
881
- };
882
- }
883
- if (error instanceof errors_js_1.YieldExecutionError) {
884
- return { status: "YIELD_EXECUTION", key: error.key };
885
- }
886
- if (error instanceof errors_js_1.ParsedPayloadSchemaError) {
887
- return { status: "INVALID_PAYLOAD", errors: error.schemaErrors };
888
- }
889
- if (error instanceof errors_js_1.ResumeWithTaskError) {
890
- return { status: "RESUME_WITH_TASK", task: error.task };
891
- }
892
- if (error instanceof errors_js_1.RetryWithTaskError) {
893
- return {
894
- status: "RETRY_WITH_TASK",
895
- task: error.task,
896
- error: error.cause,
897
- retryAt: error.retryAt,
898
- };
899
- }
900
- if (error instanceof errors_js_1.CanceledWithTaskError) {
901
- return {
902
- status: "CANCELED",
903
- task: error.task,
904
- };
905
- }
906
- if (error instanceof errors_js_1.ErrorWithTask) {
907
- const errorWithStack = core_1.ErrorWithStackSchema.safeParse(error.cause.output);
908
- if (errorWithStack.success) {
909
- return {
910
- status: "ERROR",
911
- error: errorWithStack.data,
912
- task: error.cause,
913
- };
914
- }
915
- return {
916
- status: "ERROR",
917
- error: { message: JSON.stringify(error.cause.output) },
918
- task: error.cause,
919
- };
920
- }
921
- if (error instanceof errors_js_1.RetryWithTaskError) {
922
- const errorWithStack = core_1.ErrorWithStackSchema.safeParse(error.cause);
923
- if (errorWithStack.success) {
924
- return {
925
- status: "ERROR",
926
- error: errorWithStack.data,
927
- task: error.task,
928
- };
929
- }
930
- return {
931
- status: "ERROR",
932
- error: { message: "Unknown error" },
933
- task: error.task,
934
- };
935
- }
936
- const errorWithStack = core_1.ErrorWithStackSchema.safeParse(error);
937
- if (errorWithStack.success) {
938
- return { status: "ERROR", error: errorWithStack.data };
939
- }
940
- const message = typeof error === "string" ? error : JSON.stringify(error);
941
- return {
942
- status: "ERROR",
943
- error: { name: "Unknown error", message },
944
- };
945
- }
946
- #createRunContext(execution) {
947
- const { event, organization, project, environment, job, run, source } = execution;
948
- return {
949
- event: {
950
- id: event.id,
951
- name: event.name,
952
- context: event.context,
953
- timestamp: event.timestamp,
954
- },
955
- organization,
956
- project: project ?? { id: "unknown", name: "unknown", slug: "unknown" }, // backwards compat with old servers
957
- environment,
958
- job,
959
- run,
960
- account: execution.account,
961
- source,
962
- };
963
- }
964
- #createPreprocessRunContext(body) {
965
- const { event, organization, environment, job, run, account } = body;
966
- return {
967
- event: {
968
- id: event.id,
969
- name: event.name,
970
- context: event.context,
971
- timestamp: event.timestamp,
972
- },
973
- organization,
974
- environment,
975
- job,
976
- run,
977
- account,
978
- };
979
- }
980
- async #handleHttpSourceRequest(source, sourceRequest) {
981
- this.#internalLogger.debug("Handling HTTP source request", {
982
- source,
983
- });
984
- if (source.dynamicId) {
985
- const dynamicTrigger = this.#registeredDynamicTriggers[source.dynamicId];
986
- if (!dynamicTrigger) {
987
- this.#internalLogger.debug("No dynamic trigger registered for HTTP source", {
988
- source,
989
- });
990
- return {
991
- response: {
992
- status: 200,
993
- body: {
994
- ok: true,
995
- },
996
- },
997
- events: [],
998
- };
999
- }
1000
- const results = await dynamicTrigger.source.handle(source, sourceRequest, this.#internalLogger);
1001
- if (!results) {
1002
- return {
1003
- events: [],
1004
- response: {
1005
- status: 200,
1006
- body: {
1007
- ok: true,
1008
- },
1009
- },
1010
- };
1011
- }
1012
- return {
1013
- events: results.events,
1014
- response: results.response ?? {
1015
- status: 200,
1016
- body: {
1017
- ok: true,
1018
- },
1019
- },
1020
- metadata: results.metadata,
1021
- };
1022
- }
1023
- const handler = this.#registeredHttpSourceHandlers[source.key];
1024
- if (!handler) {
1025
- this.#internalLogger.debug("No handler registered for HTTP source", {
1026
- source,
1027
- });
1028
- return {
1029
- response: {
1030
- status: 200,
1031
- body: {
1032
- ok: true,
1033
- },
1034
- },
1035
- events: [],
1036
- };
1037
- }
1038
- const results = await handler(source, sourceRequest);
1039
- if (!results) {
1040
- return {
1041
- events: [],
1042
- response: {
1043
- status: 200,
1044
- body: {
1045
- ok: true,
1046
- },
1047
- },
1048
- };
1049
- }
1050
- return {
1051
- events: results.events,
1052
- response: results.response ?? {
1053
- status: 200,
1054
- body: {
1055
- ok: true,
1056
- },
1057
- },
1058
- metadata: results.metadata,
1059
- };
1060
- }
1061
- async #handleHttpEndpointRequestForResponse(data, sourceRequest) {
1062
- this.#internalLogger.debug("Handling HTTP Endpoint request for response", {
1063
- data,
1064
- });
1065
- const httpEndpoint = this.#registeredHttpEndpoints[data.key];
1066
- if (!httpEndpoint) {
1067
- this.#internalLogger.debug("No handler registered for HTTP Endpoint", {
1068
- data,
1069
- });
1070
- return {
1071
- response: {
1072
- status: 200,
1073
- body: {
1074
- ok: true,
1075
- },
1076
- },
1077
- };
1078
- }
1079
- const handledResponse = await httpEndpoint.handleRequest(sourceRequest);
1080
- if (!handledResponse) {
1081
- this.#internalLogger.debug("There's no HTTP Endpoint respondWith.handler()", {
1082
- data,
1083
- });
1084
- return {
1085
- response: {
1086
- status: 200,
1087
- body: {
1088
- ok: true,
1089
- },
1090
- },
1091
- };
1092
- }
1093
- let body;
1094
- try {
1095
- body = await handledResponse.text();
1096
- }
1097
- catch (error) {
1098
- this.#internalLogger.error(`Error reading httpEndpoint ${httpEndpoint.id} respondWith.handler Response`, {
1099
- error,
1100
- });
1101
- }
1102
- const response = {
1103
- status: handledResponse.status,
1104
- headers: handledResponse.headers
1105
- ? Object.fromEntries(handledResponse.headers.entries())
1106
- : undefined,
1107
- body,
1108
- };
1109
- this.#internalLogger.info(`httpEndpoint ${httpEndpoint.id} respondWith.handler response`, {
1110
- response,
1111
- });
1112
- return {
1113
- response,
1114
- };
1115
- }
1116
- async #handleWebhookRequest(request, ctx) {
1117
- this.#internalLogger.debug("Handling webhook request", {
1118
- ctx,
1119
- });
1120
- const okResponse = {
1121
- status: 200,
1122
- body: {
1123
- ok: true,
1124
- },
1125
- };
1126
- const handlers = this.#registeredWebhookSourceHandlers[ctx.key];
1127
- if (!handlers) {
1128
- this.#internalLogger.debug("No handler registered for webhook", {
1129
- ctx,
1130
- });
1131
- return {
1132
- response: okResponse,
1133
- verified: false,
1134
- };
1135
- }
1136
- const { verify, generateEvents } = handlers;
1137
- const verifyResult = await verify(request, this, ctx);
1138
- if (!verifyResult.success) {
1139
- return {
1140
- response: okResponse,
1141
- verified: false,
1142
- error: verifyResult.reason,
1143
- };
1144
- }
1145
- await generateEvents(request, this, ctx);
1146
- return {
1147
- response: okResponse,
1148
- verified: true,
1149
- };
1150
- }
1151
- async #resolveConnections(ctx, integrations, connections) {
1152
- if (!integrations) {
1153
- return { ok: true, data: {} };
1154
- }
1155
- const resolvedAuthResults = await Promise.all(Object.keys(integrations).map(async (key) => {
1156
- const integration = integrations[key];
1157
- const auth = (connections ?? {})[key];
1158
- const result = await this.#resolveConnection(ctx, integration, auth);
1159
- if (result.ok) {
1160
- return {
1161
- ok: true,
1162
- auth: result.auth,
1163
- key,
1164
- };
1165
- }
1166
- else {
1167
- return {
1168
- ok: false,
1169
- error: result.error,
1170
- key,
1171
- };
1172
- }
1173
- }));
1174
- const allResolved = resolvedAuthResults.every((result) => result.ok);
1175
- if (allResolved) {
1176
- return {
1177
- ok: true,
1178
- data: resolvedAuthResults.reduce((acc, result) => {
1179
- acc[result.key] = result.auth;
1180
- return acc;
1181
- }, {}),
1182
- };
1183
- }
1184
- else {
1185
- return {
1186
- ok: false,
1187
- issues: resolvedAuthResults.reduce((acc, result) => {
1188
- if (result.ok) {
1189
- return acc;
1190
- }
1191
- const integration = integrations[result.key];
1192
- acc[result.key] = { id: integration.id, error: result.error };
1193
- return acc;
1194
- }, {}),
1195
- };
1196
- }
1197
- }
1198
- async #resolveConnection(ctx, integration, auth) {
1199
- if (auth) {
1200
- return { ok: true, auth };
1201
- }
1202
- const authResolver = this.#authResolvers[integration.id];
1203
- if (!authResolver) {
1204
- if (integration.authSource === "HOSTED") {
1205
- return {
1206
- ok: false,
1207
- error: `Something went wrong: Integration ${integration.id} is missing auth credentials from Trigger.dev`,
1208
- };
1209
- }
1210
- return {
1211
- ok: true,
1212
- auth: undefined,
1213
- };
1214
- }
1215
- try {
1216
- const resolvedAuth = await authResolver(ctx, integration);
1217
- if (!resolvedAuth) {
1218
- return {
1219
- ok: false,
1220
- error: `Auth could not be resolved for ${integration.id}: auth resolver returned null or undefined`,
1221
- };
1222
- }
1223
- return {
1224
- ok: true,
1225
- auth: resolvedAuth.type === "apiKey"
1226
- ? {
1227
- type: "apiKey",
1228
- accessToken: resolvedAuth.token,
1229
- additionalFields: resolvedAuth.additionalFields,
1230
- }
1231
- : {
1232
- type: "oauth2",
1233
- accessToken: resolvedAuth.token,
1234
- additionalFields: resolvedAuth.additionalFields,
1235
- },
1236
- };
1237
- }
1238
- catch (resolverError) {
1239
- if (resolverError instanceof Error) {
1240
- return {
1241
- ok: false,
1242
- error: `Auth could not be resolved for ${integration.id}: auth resolver threw. ${resolverError.name}: ${resolverError.message}`,
1243
- };
1244
- }
1245
- else if (typeof resolverError === "string") {
1246
- return {
1247
- ok: false,
1248
- error: `Auth could not be resolved for ${integration.id}: auth resolver threw an error: ${resolverError}`,
1249
- };
1250
- }
1251
- return {
1252
- ok: false,
1253
- error: `Auth could not be resolved for ${integration.id}: auth resolver threw an unknown error: ${JSON.stringify(resolverError)}`,
1254
- };
1255
- }
1256
- }
1257
- #buildJobsIndex() {
1258
- return Object.values(this.#registeredJobs).map((job) => this.#buildJobIndex(job));
1259
- }
1260
- #buildJobIndex(job) {
1261
- const internal = job.options.__internal;
1262
- return {
1263
- id: job.id,
1264
- name: job.name,
1265
- version: job.version,
1266
- event: job.trigger.event,
1267
- trigger: job.trigger.toJSON(),
1268
- integrations: this.#buildJobIntegrations(job),
1269
- startPosition: "latest", // job is deprecated, leaving job for now to make sure newer clients work with older servers
1270
- enabled: job.enabled,
1271
- preprocessRuns: job.trigger.preprocessRuns,
1272
- internal,
1273
- concurrencyLimit: typeof job.options.concurrencyLimit === "number"
1274
- ? job.options.concurrencyLimit
1275
- : typeof job.options.concurrencyLimit === "object"
1276
- ? { id: job.options.concurrencyLimit.id, limit: job.options.concurrencyLimit.limit }
1277
- : undefined,
1278
- };
1279
- }
1280
- #buildJobIntegrations(job) {
1281
- return Object.keys(job.options.integrations ?? {}).reduce((acc, key) => {
1282
- const integration = job.options.integrations[key];
1283
- acc[key] = this.#buildJobIntegration(integration);
1284
- return acc;
1285
- }, {});
1286
- }
1287
- #buildJobIntegration(integration) {
1288
- const authSource = this.#authResolvers[integration.id] ? "RESOLVER" : integration.authSource;
1289
- return {
1290
- id: integration.id,
1291
- metadata: integration.metadata,
1292
- authSource,
1293
- };
1294
- }
1295
- #logIOStats(stats) {
1296
- this.#internalLogger.debug("IO stats", {
1297
- stats,
1298
- });
1299
- }
1300
- #standardResponseHeaders(start) {
1301
- return {
1302
- "Trigger-Version": core_1.API_VERSIONS.LAZY_LOADED_CACHED_TASKS,
1303
- "Trigger-SDK-Version": version_js_1.VERSION,
1304
- "X-Trigger-Request-Timing": `dur=${performance.now() - start / 1000.0}`,
1305
- };
1306
- }
1307
- #serializeRunMetadata(job) {
1308
- const metadata = {};
1309
- if (this.#eventEmitter.listenerCount("runSucceeeded") > 0 ||
1310
- typeof job.options.onSuccess === "function") {
1311
- metadata["successSubscription"] = true;
1312
- }
1313
- if (this.#eventEmitter.listenerCount("runFailed") > 0 ||
1314
- typeof job.options.onFailure === "function") {
1315
- metadata["failedSubscription"] = true;
1316
- }
1317
- return JSON.stringify(metadata);
1318
- }
1319
- async #deliverSuccessfulRunNotification(notification) {
1320
- this.#internalLogger.debug("delivering successful run notification", {
1321
- notification,
1322
- });
1323
- this.#eventEmitter.emit("runSucceeeded", notification);
1324
- const job = this.#registeredJobs[notification.job.id];
1325
- if (!job) {
1326
- return;
1327
- }
1328
- if (typeof job.options.onSuccess === "function") {
1329
- await job.options.onSuccess(notification);
1330
- }
1331
- }
1332
- async #deliverFailedRunNotification(notification) {
1333
- this.#internalLogger.debug("delivering failed run notification", {
1334
- notification,
1335
- });
1336
- this.#eventEmitter.emit("runFailed", notification);
1337
- const job = this.#registeredJobs[notification.job.id];
1338
- if (!job) {
1339
- return;
1340
- }
1341
- if (typeof job.options.onFailure === "function") {
1342
- await job.options.onFailure(notification);
1343
- }
1344
- }
1345
- }
1346
- exports.TriggerClient = TriggerClient;
1347
- function dynamicTriggerRegisterSourceJobId(id) {
1348
- return `register-dynamic-trigger-${id}`;
1349
- }
1350
- function deepMergeOptions(obj1, obj2) {
1351
- const mergedOptions = { ...obj1 };
1352
- for (const key in obj2) {
1353
- if (obj2.hasOwnProperty(key)) {
1354
- if (key in mergedOptions) {
1355
- // @ts-expect-error
1356
- mergedOptions[key] = [...mergedOptions[key], ...obj2[key]];
1357
- }
1358
- else {
1359
- // @ts-expect-error
1360
- mergedOptions[key] = obj2[key];
1361
- }
1362
- }
1363
- }
1364
- return mergedOptions;
1365
- }
1366
- //# sourceMappingURL=triggerClient.js.map