@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
@@ -0,0 +1,403 @@
1
+ ---
2
+ name: trigger-chat-agent-advanced
3
+ description: >
4
+ Advanced and operational chat.agent capabilities for Trigger.dev, loaded on demand. Load this when
5
+ working on the raw Sessions primitive (sessions / SessionHandle), a custom chat transport or the
6
+ realtime wire protocol, durable sub-agents (AgentChat, chat.stream.writer), human-in-the-loop,
7
+ steering, actions, background injection (chat.defer / chat.inject), fast starts (preload, Head
8
+ Start via @trigger.dev/sdk/chat-server), context resilience (compaction, recovery boot, OOM, large
9
+ payloads), chat.local run-scoped state, offline testing with mockChatAgent, or prerelease/version
10
+ upgrades. For the everyday chat.agent({...}) definition and the useTriggerChatTransport happy path,
11
+ use the trigger-authoring-chat-agent skill instead.
12
+ type: core
13
+ library: trigger.dev
14
+ sources:
15
+ - docs/ai-chat/sessions.mdx
16
+ - docs/ai-chat/server-chat.mdx
17
+ - docs/ai-chat/client-protocol.mdx
18
+ - docs/ai-chat/pending-messages.mdx
19
+ - docs/ai-chat/actions.mdx
20
+ - docs/ai-chat/background-injection.mdx
21
+ - docs/ai-chat/compaction.mdx
22
+ - docs/ai-chat/fast-starts.mdx
23
+ - docs/ai-chat/chat-local.mdx
24
+ - docs/ai-chat/mcp.mdx
25
+ - docs/ai-chat/testing.mdx
26
+ - docs/ai-chat/upgrade-guide.mdx
27
+ - docs/ai-chat/patterns/sub-agents.mdx
28
+ - docs/ai-chat/patterns/human-in-the-loop.mdx
29
+ - docs/ai-chat/patterns/persistence-and-replay.mdx
30
+ - docs/ai-chat/patterns/recovery-boot.mdx
31
+ - docs/ai-chat/patterns/oom-resilience.mdx
32
+ - docs/ai-chat/patterns/large-payloads.mdx
33
+ - docs/ai-chat/patterns/version-upgrades.mdx
34
+ - docs/ai-chat/tools.mdx
35
+ ---
36
+
37
+ # chat.agent: advanced and operational
38
+
39
+ `chat.agent` is built on **Sessions**: a durable, task-bound, bi-directional I/O channel pair keyed
40
+ on a stable `externalId` (e.g. `chatId`) that outlives any single run. This skill covers the layers
41
+ beneath and around the everyday agent: the raw `sessions` API, server-side `AgentChat`, durable
42
+ sub-agents, actions / background injection, fast starts, compaction and recovery, and the wire
43
+ protocol for custom transports.
44
+
45
+ Two `chat` namespaces are easy to confuse: the agent definition imports `chat` from
46
+ `@trigger.dev/sdk/ai`; Head Start / Node-listener server entries import `chat` from
47
+ `@trigger.dev/sdk/chat-server`.
48
+
49
+ ## Setup
50
+
51
+ Happy path: drive an agent from server-side code (task, webhook, or script) with `AgentChat`.
52
+
53
+ ```ts
54
+ import { AgentChat } from "@trigger.dev/sdk/chat";
55
+ import type { myAgent } from "./trigger/my-agent";
56
+
57
+ const chat = new AgentChat<typeof myAgent>({ agent: "my-chat", clientData: { userId: "user_123" } });
58
+ const stream = await chat.sendMessage("Review PR #42");
59
+ const text = await stream.text();
60
+ await chat.close();
61
+ ```
62
+
63
+ `sendMessage()` triggers a run on the first call, then reuses it via input streams. `ChatStream`
64
+ exposes `text()`, `result()` (`{ text, toolCalls, toolResults }`), `messages()` (UIMessage
65
+ snapshots), and the raw `.stream`. Other methods: `steer(text)`, `stop()`, `sendRaw(uiMessages)`,
66
+ `sendAction(action)`, `preload()`, `reconnect()`.
67
+
68
+ ## Core patterns
69
+
70
+ ### 1. Raw Sessions for non-chat, bi-directional I/O
71
+
72
+ Reach for `sessions` directly when the chat abstraction does not fit: agent inboxes, approval flows,
73
+ server-to-server pipelines. `sessions.start` is idempotent on `(env, externalId)`; `externalId`
74
+ cannot start with `session_`.
75
+
76
+ ```ts
77
+ import { sessions } from "@trigger.dev/sdk";
78
+
79
+ const { id, publicAccessToken } = await sessions.start({
80
+ type: "chat.agent",
81
+ externalId: chatId,
82
+ taskIdentifier: "my-chat",
83
+ triggerConfig: { tags: [`chat:${chatId}`], basePayload: { chatId, trigger: "preload" } },
84
+ });
85
+
86
+ const session = sessions.open(chatId); // no network call; methods are lazy
87
+ await session.out.append({ kind: "message", text: "hello" });
88
+ const next = await session.in.once<MyEvent>({ timeoutMs: 30_000 });
89
+ ```
90
+
91
+ `sessions.open(id).in` also has `send`, `on(handler)`, `peek`, `wait` (suspends the run, only inside
92
+ `task.run()`), and `waitWithIdleTimeout`. `.out` has `append`, `pipe`, `writer`, `read`,
93
+ `writeControl`, and `trimTo`. List with `sessions.list({ type, tag, status, ... })` (`for await`),
94
+ mutate with `sessions.update`, end with `sessions.close` (terminal, idempotent).
95
+
96
+ ### 2. Durable sub-agent as a streaming tool
97
+
98
+ `AgentChat` inside an AI SDK `tool()` delegates to a durable sub-agent; its response streams as
99
+ preliminary tool results. Give the tool a `toModelOutput` so the model sees a compact summary.
100
+
101
+ ```ts
102
+ import { tool } from "ai";
103
+ import { AgentChat } from "@trigger.dev/sdk/chat";
104
+ import { z } from "zod";
105
+
106
+ const researchTool = tool({
107
+ description: "Delegate research to a specialist agent.",
108
+ inputSchema: z.object({ topic: z.string() }),
109
+ execute: async function* ({ topic }, { abortSignal }) {
110
+ const chat = new AgentChat({ agent: "research-agent" });
111
+ const stream = await chat.sendMessage(topic, { abortSignal });
112
+ yield* stream.messages(); // UIMessage snapshots become preliminary tool results
113
+ await chat.close();
114
+ },
115
+ toModelOutput: ({ output: message }) => {
116
+ const lastText = message?.parts?.findLast((p: { type: string }) => p.type === "text") as
117
+ | { text?: string }
118
+ | undefined;
119
+ return { type: "text", value: lastText?.text ?? "Done." };
120
+ },
121
+ });
122
+ ```
123
+
124
+ For a subtask exposed via `execute: ai.toolExecute(task)`, stream progress to the agent's run with
125
+ `chat.stream.writer({ target: "root" })`. `target` accepts `"self" | "parent" | "root" | <runId>`.
126
+ Inside the subtask, read context with `ai.toolCallId()` and `ai.chatContextOrThrow<typeof myChat>()`
127
+ (`{ chatId, turn, continuation, clientData }`).
128
+
129
+ ```ts
130
+ import { chat, ai } from "@trigger.dev/sdk/ai";
131
+
132
+ const { waitUntilComplete } = chat.stream.writer({
133
+ target: "root",
134
+ execute: ({ write }) =>
135
+ write({ type: "data-research-status", id: partId, data: { query, status: "in-progress" } }),
136
+ });
137
+ await waitUntilComplete();
138
+ ```
139
+
140
+ ### 3. Background injection: defer + inject
141
+
142
+ `chat.defer(promise)` runs work in parallel with streaming (all deferred promises are awaited, with a
143
+ 5s timeout, before `onTurnComplete`). `chat.inject(messages)` queues `ModelMessage[]` that drain at
144
+ the next turn start or `prepareStep` boundary.
145
+
146
+ Two lanes, decided by role. A `role: "system"` message goes to the model's instructions, where it is
147
+ trusted like the system prompt, and applies to the next turn only. Any other role joins the
148
+ conversation and is untrusted by construction, so put checkable facts there and directives in the
149
+ system lane. The instructions lane reaches the model only through the managed `streamText` (or a
150
+ `chat.toStreamTextOptions()` spread), since that is where the SDK can set instructions.
151
+
152
+ ```ts
153
+ export const myChat = chat.agent({
154
+ id: "my-chat",
155
+ onTurnComplete: async ({ messages }) => {
156
+ chat.defer(
157
+ (async () => {
158
+ const analysis = await analyzeConversation(messages);
159
+ chat.inject([{ role: "system", content: `[Analysis]\n\n${analysis}` }]);
160
+ })()
161
+ );
162
+ },
163
+ registry,
164
+ run: async ({ messages, signal, streamText }) =>
165
+ streamText({ messages, abortSignal: signal, stopWhen: stepCountIs(15) }),
166
+ });
167
+ ```
168
+
169
+ ### 4. Compaction (threshold-based)
170
+
171
+ `compaction.shouldCompact` decides when, `summarize` produces the summary that replaces the model
172
+ messages. UI messages are preserved by default (customize via `compactUIMessages`). The `prepareStep`
173
+ that performs inner-loop compaction rides the managed `streamText`, which composes a `prepareStep`
174
+ you pass after it. Spreading `chat.toStreamTextOptions()` and then passing your own replaces it,
175
+ switching compaction off.
176
+
177
+ ```ts
178
+ compaction: {
179
+ shouldCompact: ({ totalTokens }) => (totalTokens ?? 0) > 80_000,
180
+ summarize: async ({ messages }) =>
181
+ (await generateText({
182
+ model: anthropic("claude-haiku-4-5"),
183
+ messages: [...messages, { role: "user", content: "Summarize concisely." }],
184
+ })).text,
185
+ },
186
+ ```
187
+
188
+ ### 5. Actions: edit state, and optionally answer
189
+
190
+ `actionSchema` validates; `onAction` edits via `chat.history` (`slice`, `replace`, `rollbackTo`,
191
+ `remove`, `getPendingToolCalls`, `extractNewToolResults`). An action fires `hydrateMessages` and
192
+ `onAction` only. Return nothing for an edit-only action: no model call, and the turn counter does not
193
+ advance. Return `chat.turn()` to answer after the edit: a turn runs on the edited history with
194
+ everything a turn has (the agent's system prompt and tools, steering, compaction, injected
195
+ instructions, `onTurnStart` and `onTurnComplete`, persistence), and `run()` receives it with
196
+ `trigger: "action-turn"`. `onAction` has no `streamText` argument, and returning a
197
+ `StreamTextResult`, string or `UIMessage` from it throws.
198
+
199
+ Persistence splits by model. With transcript storage (`storage` on `chat.agent`; the platform
200
+ snapshot by default), the runtime hands storage a changeset with `reason: "action"` after an action
201
+ that changed the conversation: an undo is one `truncateAfter`, a regenerate is a `truncateAfter`
202
+ followed by the new answer's `put` when the turn completes, and an edit is a `put` for the edited
203
+ id. With the deprecated `hydrateMessages` your store is the source of truth and the runtime does
204
+ not write, so mirror every mutation yourself: a regenerate is a delete and an insert, and the
205
+ answer that follows `chat.turn()` arrives through `onTurnComplete` like any turn's answer.
206
+
207
+ ```ts
208
+ export const myChat = chat.agent({
209
+ id: "my-chat",
210
+ actionSchema: z.discriminatedUnion("type", [
211
+ z.object({ type: z.literal("undo") }),
212
+ z.object({ type: z.literal("regenerate") }),
213
+ z.object({ type: z.literal("rollback"), targetMessageId: z.string() }),
214
+ ]),
215
+ onAction: async ({ action }) => {
216
+ if (action.type === "undo") chat.history.slice(0, -2); // edit only
217
+ if (action.type === "rollback") chat.history.rollbackTo(action.targetMessageId);
218
+ if (action.type === "regenerate") {
219
+ chat.history.slice(0, -1);
220
+ return chat.turn(); // answer the edited history
221
+ }
222
+ },
223
+ run: async ({ messages, signal, streamText }) =>
224
+ streamText({ model: anthropic("claude-sonnet-4-5"), messages, abortSignal: signal }),
225
+ });
226
+ ```
227
+
228
+ Send from the browser through `useChat`, so the answer a turn produces renders like any turn:
229
+ `sendMessage(undefined, { body: { action: { type: "regenerate" } } })`, `regenerate({ body: { action } })`,
230
+ or `useChatActions({ sendMessage })` from `@trigger.dev/sdk/chat/react`. For regeneration, use
231
+ `regenerate()` from `useChat` (Vercel AI SDK) which removes the last assistant message before
232
+ streaming the new one; calling `sendMessage` with a regenerate action appends without removal,
233
+ leaving both answers visible. `transport.sendAction(chatId, action)` returns a raw stream the
234
+ caller must read and apply itself. Server-side, use
235
+ `agentChat.sendAction({ type: "rollback", targetMessageId: "msg-3" })`.
236
+
237
+ ### 6. Fast starts: Head Start
238
+
239
+ `chat.headStart` (from `@trigger.dev/sdk/chat-server`, NOT `/ai`) returns a Web Fetch handler that
240
+ serves turn 1 from your own warm process, then hands off to the agent on turn 2+. Tools passed here
241
+ must be **schema-only** (a module importing `ai` + `zod` only); heavy executes stay in the task.
242
+
243
+ ```ts
244
+ import { chat } from "@trigger.dev/sdk/chat-server";
245
+ import { anthropic } from "@ai-sdk/anthropic";
246
+ import { headStartTools } from "@/lib/chat-tools/schemas";
247
+
248
+ export const chatHandler = chat.headStart({
249
+ agentId: "my-chat",
250
+ // `streamText` from the run argument owns `messages`, `prompt`, `stopWhen`
251
+ // and `abortSignal`: the handover needs `stopWhen: stepCountIs(1)` so the agent,
252
+ // not this handler, runs step 2 onward. Passing any of them is a type error.
253
+ run: async ({ streamText }) =>
254
+ streamText({
255
+ model: anthropic("claude-sonnet-4-6"),
256
+ system: "You are helpful.",
257
+ tools: headStartTools,
258
+ }),
259
+ });
260
+ // Next.js: export const POST = chatHandler; Transport: headStart: "/api/chat"
261
+ ```
262
+
263
+ Node-only frameworks wrap a Web Fetch handler with `chat.toNodeListener(handler)`. Use the **same
264
+ model** on both sides to avoid a tone shift between turn 1 and turn 2+.
265
+
266
+ ### 7. chat.local: init in onBoot, not onChatStart
267
+
268
+ `chat.local<T>({ id })` is module-level, shallow-proxy, run-scoped state. Initialize it in `onBoot`
269
+ (fires on every fresh worker, including continuation runs), never `onChatStart`.
270
+
271
+ ```ts
272
+ const userContext = chat.local<{ name: string; plan: "free" | "pro" }>({ id: "userContext" });
273
+
274
+ export const myChat = chat.agent({
275
+ id: "my-chat",
276
+ onBoot: async ({ clientData }) => userContext.init({ name: "Alice", plan: "pro" }),
277
+ run: async ({ messages, signal }) => streamText({ /* ... */ }),
278
+ });
279
+ ```
280
+
281
+ ### 8. Pending messages (mid-stream user input)
282
+
283
+ A message sent while a turn is streaming should NOT cancel the stream. Configure
284
+ `pendingMessages` (`shouldInject`, `prepare`, `onReceived`, `onInjected`) on the agent so the managed
285
+ `streamText`'s `prepareStep` folds them in at the next boundary. An injected steering message is part
286
+ of the conversation your hooks see, so it arrives in `uiMessages` and `newUIMessages` at
287
+ `onTurnComplete` and an app persisting from there stores it without extra work. On the frontend, `usePendingMessages`
288
+ returns `pending`, `steer(text)`, `queue(text)`, and `promoteToSteering(id)`; send via
289
+ `transport.sendPendingMessage(chatId, uiMessage, metadata?)`.
290
+
291
+ ### 9. Recovery and version upgrades
292
+
293
+ `onRecoveryBoot` fires only when a **partial assistant message exists on the tail** (interrupted
294
+ deploy, crash, OOM retry). It does NOT fire on `chat.requestUpgrade()`, which is a graceful exit with
295
+ no partial. `chat.requestUpgrade()` (called in `onTurnStart` / `onValidateMessages` to skip `run()`,
296
+ or in `run()` / `chat.defer()` to exit after the turn) rotates the Session's `currentRunId` to a run
297
+ on the latest deployment without a client reconnect. Pair it with a contract version on `clientData`.
298
+
299
+ ```ts
300
+ const SUPPORTED_VERSIONS = new Set(["v2", "v3"]);
301
+ onTurnStart: async ({ clientData }) => {
302
+ if (clientData?.protocolVersion && !SUPPORTED_VERSIONS.has(clientData.protocolVersion)) {
303
+ chat.requestUpgrade();
304
+ }
305
+ },
306
+ ```
307
+
308
+ For OOM resilience, set `oomMachine` (and `machine`) on the agent so retries land on a larger preset.
309
+
310
+ ### 10. Offline testing with mockChatAgent
311
+
312
+ `@trigger.dev/sdk/ai/test` runs the real turn loop in-memory. Import it **before** the agent module
313
+ so the resource catalog is installed. Drive with `sendMessage`, `sendRegenerate`, `sendAction`,
314
+ `sendStop`, `sendHeadStart`, `sendHandover`; seed state with `seedSnapshot` / `seedSessionOutTail` /
315
+ `seedSessionOutPartial` / `seedSessionInTail`; assert against `turn.chunks` and `harness.allChunks`.
316
+
317
+ ```ts
318
+ import { mockChatAgent } from "@trigger.dev/sdk/ai/test"; // BEFORE the agent module
319
+ import { myChatAgent } from "./my-chat.js";
320
+
321
+ const harness = mockChatAgent(myChatAgent, { chatId: "test-1", clientData: { model } });
322
+ try {
323
+ const turn = await harness.sendMessage({ id: "u1", role: "user", parts: [{ type: "text", text: "hi" }] });
324
+ // assert against turn.chunks
325
+ } finally {
326
+ await harness.close();
327
+ }
328
+ ```
329
+
330
+ Options include `mode` (`"preload" | "submit-message" | "handover-prepare" | "continuation"`),
331
+ `preload`, `continuation`, `previousRunId`, `snapshot`, `taskContext`, and `setupLocals`. Set
332
+ `taskContext.ctx.attempt.number > 1` to simulate an OOM-retry attempt. `runInMockTaskContext` drives a
333
+ non-chat task offline.
334
+
335
+ ### 11. Custom transport: the wire protocol
336
+
337
+ Endpoints: `POST /api/v1/sessions` (create), `GET /realtime/v1/sessions/{id}/out` (SSE),
338
+ `POST /realtime/v1/sessions/{id}/in/append`, `POST /api/v1/sessions/{id}/close`. `ChatInputChunk` is
339
+ `{ kind: "message"; payload: ChatTaskWirePayload } | { kind: "stop"; message? }`. The
340
+ `ChatTaskWirePayload` carries `chatId`, `trigger` (`submit-message | regenerate-message | preload |
341
+ close | action | handover-prepare`), `message?`, `metadata?`, `action?`, `continuation?`,
342
+ `previousRunId?`, and more. Control records are header-form: `trigger-control: turn-complete` (with
343
+ optional `public-access-token`, `session-in-event-id`) and `trigger-control: upgrade-required`. The
344
+ TS helpers `SSEStreamSubscription` and `controlSubtype(headers)` (documented in
345
+ `docs/ai-chat/client-protocol.mdx`) handle batch decoding and control-record filtering for you.
346
+
347
+ ## Common mistakes
348
+
349
+ - **CRITICAL: sending a follow-up by re-POSTing `POST /api/v1/sessions`.**
350
+ ```ts
351
+ // Wrong - a cached re-POST silently drops basePayload.message; basePayload is trigger config, not a channel
352
+ await fetch("/api/v1/sessions", { method: "POST", body: JSON.stringify({ ...createBody }) });
353
+ // Correct - append to the session's input channel
354
+ await fetch(`/realtime/v1/sessions/${id}/in/append`, { method: "POST", body: JSON.stringify({ kind: "message", payload }) });
355
+ ```
356
+
357
+ - **Using the wrong token for `.in` / `.out`.** Use `publicAccessToken` from the create response
358
+ body (session-scoped). The `x-trigger-jwt` response header is run-scoped and cannot subscribe.
359
+
360
+ - **Initializing `chat.local` in `onChatStart`.** It is skipped on continuation runs, so `run()`
361
+ crashes with `chat.local can only be modified after initialization`. Init in `onBoot`.
362
+
363
+ - **`chat.defer` for the message-history write.** A mid-stream refresh would read `[]`. `await` that
364
+ write inline before the model streams; reserve `chat.defer` for analytics, audit, cache warming.
365
+
366
+ - **Giving the HITL tool an `execute`.** `streamText` calls it immediately. Leave it execute-less;
367
+ the frontend supplies the answer via `addToolOutput` + `sendAutomaticallyWhen`.
368
+
369
+ - **Declaring sub-agent / heavy tools only on `streamText`.** Also declare them on
370
+ `chat.agent({ tools })` (or pass to `convertToModelMessages(uiMessages, { tools })` in a custom
371
+ agent) so `toModelOutput` re-applies on every turn.
372
+
373
+ - **Importing heavy-execute tools into the Head Start route module.** This is a build-time import
374
+ chain problem; runtime strip helpers do not fix it. Keep schemas in an `ai` + `zod`-only module.
375
+
376
+ - **Returning a megabyte tool output on the stream.** One `tool-output-available` record over ~1 MiB
377
+ throws `ChatChunkTooLargeError`. Persist to your store, write the row first, then emit only an id.
378
+
379
+ - **Setting `X-Peek-Settled: 1` on the active-send path.** It races the new turn's first chunk and
380
+ closes the stream early. Use it only on reconnect-on-reload paths.
381
+
382
+ > Note on docs vocabulary: agent-side examples in some docs still use the legacy
383
+ > `trigger:turn-complete` chunk type. That is the agent-emit vocabulary. A custom **reader** must
384
+ > filter on the `trigger-control` header, not on `chunk.type`.
385
+ >
386
+ > MCP-driven agent chats (`list_agents`, `start_agent_chat`, `send_agent_message`,
387
+ > `close_agent_chat`) are MCP server tools used from Claude Code / Cursor, not importable SDK
388
+ > functions. See `/mcp-tools#agent-chat-tools`.
389
+
390
+ ## References
391
+
392
+ - `trigger-authoring-chat-agent` skill - the everyday `chat.agent({...})` definition, lifecycle hooks, and
393
+ the `useTriggerChatTransport` happy path. Start there before reaching for this skill.
394
+ - `trigger-realtime-and-frontend` skill - Realtime hooks and frontend streaming beyond the chat transport.
395
+ - `trigger-authoring-tasks` skill - base `task()` semantics, `ctx`, and standard lifecycle hooks.
396
+
397
+ Reference docs ship beside this skill in the same package, read them locally (no network), pinned to your installed version. The `sources:` frontmatter above lists every doc this skill draws from, all under `@trigger.dev/sdk/docs/ai-chat/` (including `patterns/`). For HITL, sessions, and sub-agents start with `sessions.mdx`, `server-chat.mdx`, `client-protocol.mdx`, `patterns/human-in-the-loop.mdx`, `patterns/sub-agents.mdx`.
398
+
399
+ For `trigger.config.ts` and build extensions a chat-agent task may need (Prisma, Playwright, Python, etc.), read the bundled config docs under `@trigger.dev/sdk/docs/config/` (`config/extensions/` for the per-extension setup).
400
+
401
+ ## Version
402
+
403
+ This skill is bundled inside `@trigger.dev/sdk` and read directly from `node_modules`, so it always matches your installed SDK version (see the adjacent `package.json`). The full documentation for these APIs ships alongside it under `@trigger.dev/sdk/docs/`.
@@ -0,0 +1,116 @@
1
+ ---
2
+ name: trigger-cost-savings
3
+ description: >
4
+ Analyze Trigger.dev tasks, schedules, and runs for cost optimization opportunities. Use when
5
+ asked to reduce spend, optimize costs, audit usage, right-size machines, or review task
6
+ efficiency. Combines static source analysis with live run analysis via the Trigger.dev MCP
7
+ tools (list_runs, get_run_details, get_current_worker).
8
+ type: core
9
+ library: trigger.dev
10
+ sources:
11
+ - docs/how-to-reduce-your-spend.mdx
12
+ - docs/machines.mdx
13
+ - docs/runs/max-duration.mdx
14
+ - docs/queue-concurrency.mdx
15
+ - docs/idempotency.mdx
16
+ - docs/triggering.mdx
17
+ - docs/errors-retrying.mdx
18
+ - docs/limits.mdx
19
+ ---
20
+
21
+ # Trigger.dev Cost Savings Analysis
22
+
23
+ Analyze task runs and configurations to find cost reduction opportunities. This skill pairs static source analysis with live run analysis via the Trigger.dev MCP server.
24
+
25
+ ## Before you start: read the canonical guidance
26
+
27
+ The authoritative, version-pinned cost guidance ships beside this skill. Read it first so your recommendations match the installed SDK version:
28
+
29
+ - `@trigger.dev/sdk/docs/how-to-reduce-your-spend.mdx` — the canonical "reduce your spend" guide (machine sizing, idempotency de-dup, parallelism, retries, `maxDuration`, checkpointed waits, debounce).
30
+ - Supporting references: `@trigger.dev/sdk/docs/machines.mdx`, `runs/max-duration.mdx`, `queue-concurrency.mdx`, `idempotency.mdx`, `triggering.mdx` (debounce + batch), `errors-retrying.mdx` (`AbortTaskRunError`).
31
+
32
+ ## Prerequisites: MCP tools
33
+
34
+ Live run analysis needs the **Trigger.dev MCP server**. Verify these tools are available:
35
+
36
+ - `list_runs` — list runs with filters (status, task, time period, machine size)
37
+ - `get_run_details` — get run logs, duration, and status
38
+ - `get_current_worker` — get registered tasks and their configurations
39
+
40
+ If they're not available, tell the user to install the MCP server:
41
+
42
+ ```bash
43
+ npx trigger.dev@latest install-mcp
44
+ ```
45
+
46
+ Without the MCP tools you can still do the static source analysis below; do not fabricate run data.
47
+
48
+ ## Analysis workflow
49
+
50
+ ### Step 1: Static analysis (source code)
51
+
52
+ Scan task files for:
53
+
54
+ 1. **Oversized machines** — tasks on `large-1x`/`large-2x` without clear need.
55
+ 2. **Missing `maxDuration`** — no execution-time limit (runaway-cost risk).
56
+ 3. **Excessive retries** — `maxAttempts` > 5 without `AbortTaskRunError` for known-permanent failures.
57
+ 4. **Missing debounce** — high-frequency triggers without debounce.
58
+ 5. **Missing idempotency** — payment/critical tasks without idempotency keys.
59
+ 6. **Polling instead of waits** — `setTimeout`/`setInterval`/sleep loops instead of `wait.for()`.
60
+ 7. **Short waits** — `wait.for()` under 5 seconds (not checkpointed, wastes compute).
61
+ 8. **Sequential instead of batch** — multiple `triggerAndWait()` calls that could be `batchTriggerAndWait()`.
62
+ 9. **Over-scheduled crons** — schedules firing more often than needed.
63
+
64
+ ### Step 2: Run analysis (requires MCP tools)
65
+
66
+ - **2a. Expensive tasks** — `list_runs` over `period: "30d"`/`"7d"`; find high total compute (duration × count), high failure rates, and large machines with short durations (over-provisioned).
67
+ - **2b. Failure patterns** — `list_runs` with `status: "FAILED"`/`"CRASHED"`; separate transient (retryable) from permanent; suggest `AbortTaskRunError` for the latter; estimate wasted retry compute.
68
+ - **2c. Machine utilization** — `get_run_details` on sample runs; if a `large-2x` task consistently runs in under a second, or is I/O-bound (API/DB), it's over-provisioned.
69
+ - **2d. Schedule frequency** — `get_current_worker` to list cron patterns; flag schedules that are too frequent for their purpose.
70
+
71
+ ### Step 3: Generate recommendations
72
+
73
+ Present a prioritized report with estimated impact:
74
+
75
+ ```markdown
76
+ ## Cost Optimization Report
77
+
78
+ ### High impact
79
+ 1. **Right-size `process-images`** — currently `large-2x`, average run 2s. `small-2x` could cut this task's cost by ~16x.
80
+ `machine: { preset: "small-2x" }` // was "large-2x"
81
+
82
+ ### Medium impact
83
+ 2. **Debounce `sync-user-data`** — 847 runs/day, often bursty.
84
+ `debounce: { key: \`user-${userId}\`, delay: "5s" }`
85
+
86
+ ### Low impact / best practice
87
+ 3. **Add `maxDuration` to `generate-report`** — no timeout configured.
88
+ `maxDuration: 300` // 5 minutes
89
+ ```
90
+
91
+ ## Machine preset costs (relative)
92
+
93
+ Larger machines cost proportionally more per second of compute:
94
+
95
+ | Preset | vCPU | RAM | Relative cost |
96
+ |--------|------|-----|---------------|
97
+ | micro | 0.25 | 0.25 GB | 0.25x |
98
+ | small-1x | 0.5 | 0.5 GB | 1x (baseline) |
99
+ | small-2x | 1 | 1 GB | 2x |
100
+ | medium-1x | 1 | 2 GB | 2x |
101
+ | medium-2x | 2 | 4 GB | 4x |
102
+ | large-1x | 4 | 8 GB | 8x |
103
+ | large-2x | 8 | 16 GB | 16x |
104
+
105
+ ## Key principles
106
+
107
+ - **Waits > 5 seconds are free** — checkpointed, no compute charge.
108
+ - **Start small, scale up** — the default `small-1x` is right for most tasks.
109
+ - **I/O-bound tasks don't need big machines** — API calls and DB queries wait on the network.
110
+ - **Debounce saves the most on high-frequency tasks** — it consolidates bursts into single runs.
111
+ - **Idempotency prevents duplicate billed work** — especially for expensive operations.
112
+ - **`AbortTaskRunError` stops wasteful retries** — don't pay to retry permanent failures.
113
+
114
+ ## Version
115
+
116
+ This skill is bundled inside `@trigger.dev/sdk` and read directly from `node_modules`, so it always matches your installed SDK version (see the adjacent `package.json`). The full cost documentation ships alongside it under `@trigger.dev/sdk/docs/`.