@trigger.dev/core 4.7.3 → 4.8.0-webhooks.20261015065339

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 (131) hide show
  1. package/dist/commonjs/logger.js +1 -0
  2. package/dist/commonjs/logger.js.map +1 -1
  3. package/dist/commonjs/v3/apiClient/errors.d.ts +3 -1
  4. package/dist/commonjs/v3/apiClient/errors.js +17 -13
  5. package/dist/commonjs/v3/apiClient/errors.js.map +1 -1
  6. package/dist/commonjs/v3/apiClient/index.d.ts +86 -5
  7. package/dist/commonjs/v3/apiClient/index.js +76 -2
  8. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  9. package/dist/commonjs/v3/apiClient/runTracePages.d.ts +14 -0
  10. package/dist/commonjs/v3/apiClient/runTracePages.js +120 -0
  11. package/dist/commonjs/v3/apiClient/runTracePages.js.map +1 -0
  12. package/dist/commonjs/v3/errors.d.ts +25 -2
  13. package/dist/commonjs/v3/errors.js +51 -12
  14. package/dist/commonjs/v3/errors.js.map +1 -1
  15. package/dist/commonjs/v3/index.d.ts +1 -0
  16. package/dist/commonjs/v3/index.js +1 -0
  17. package/dist/commonjs/v3/index.js.map +1 -1
  18. package/dist/commonjs/v3/isomorphic/friendlyId.d.ts +14 -3
  19. package/dist/commonjs/v3/isomorphic/friendlyId.js +45 -16
  20. package/dist/commonjs/v3/isomorphic/friendlyId.js.map +1 -1
  21. package/dist/commonjs/v3/isomorphic/index.d.ts +1 -0
  22. package/dist/commonjs/v3/isomorphic/index.js +1 -0
  23. package/dist/commonjs/v3/isomorphic/index.js.map +1 -1
  24. package/dist/commonjs/v3/isomorphic/webhookDeliveryRetention.d.ts +19 -0
  25. package/dist/commonjs/v3/isomorphic/webhookDeliveryRetention.js +27 -0
  26. package/dist/commonjs/v3/isomorphic/webhookDeliveryRetention.js.map +1 -0
  27. package/dist/commonjs/v3/runEngineWorker/supervisor/http.d.ts +2 -5
  28. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +4 -41
  29. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js +4 -20
  30. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js.map +1 -1
  31. package/dist/commonjs/v3/runEngineWorker/supervisor/session.d.ts +2 -0
  32. package/dist/commonjs/v3/runEngineWorker/supervisor/session.js +1 -0
  33. package/dist/commonjs/v3/runEngineWorker/supervisor/session.js.map +1 -1
  34. package/dist/commonjs/v3/runEngineWorker/workload/http.d.ts +1 -2
  35. package/dist/commonjs/v3/runEngineWorker/workload/http.js +2 -5
  36. package/dist/commonjs/v3/runEngineWorker/workload/http.js.map +1 -1
  37. package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +2 -22
  38. package/dist/commonjs/v3/runEngineWorker/workload/schemas.js +1 -2
  39. package/dist/commonjs/v3/runEngineWorker/workload/schemas.js.map +1 -1
  40. package/dist/commonjs/v3/schemas/api.d.ts +100 -9
  41. package/dist/commonjs/v3/schemas/api.js +76 -3
  42. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  43. package/dist/commonjs/v3/schemas/build.d.ts +4 -0
  44. package/dist/commonjs/v3/schemas/build.js +2 -0
  45. package/dist/commonjs/v3/schemas/build.js.map +1 -1
  46. package/dist/commonjs/v3/schemas/checkpoints.d.ts +2 -9
  47. package/dist/commonjs/v3/schemas/messages.d.ts +1 -0
  48. package/dist/commonjs/v3/schemas/messages.js +2 -0
  49. package/dist/commonjs/v3/schemas/messages.js.map +1 -1
  50. package/dist/commonjs/v3/schemas/queues.d.ts +77 -3
  51. package/dist/commonjs/v3/schemas/queues.js +101 -6
  52. package/dist/commonjs/v3/schemas/queues.js.map +1 -1
  53. package/dist/commonjs/v3/schemas/runEngine.d.ts +11 -11
  54. package/dist/commonjs/v3/schemas/runEngine.js +10 -5
  55. package/dist/commonjs/v3/schemas/runEngine.js.map +1 -1
  56. package/dist/commonjs/v3/schemas/webhookFilter.d.ts +65 -13
  57. package/dist/commonjs/v3/types/chatEvents.d.ts +26 -4
  58. package/dist/commonjs/v3/types/webhooks.d.ts +27 -0
  59. package/dist/commonjs/v3/webhooks/index.d.ts +4 -4
  60. package/dist/commonjs/v3/webhooks/index.js +22 -3
  61. package/dist/commonjs/v3/webhooks/index.js.map +1 -1
  62. package/dist/commonjs/version.js +1 -1
  63. package/dist/esm/logger.js +1 -0
  64. package/dist/esm/logger.js.map +1 -1
  65. package/dist/esm/v3/apiClient/errors.d.ts +3 -1
  66. package/dist/esm/v3/apiClient/errors.js +17 -13
  67. package/dist/esm/v3/apiClient/errors.js.map +1 -1
  68. package/dist/esm/v3/apiClient/index.d.ts +86 -5
  69. package/dist/esm/v3/apiClient/index.js +74 -3
  70. package/dist/esm/v3/apiClient/index.js.map +1 -1
  71. package/dist/esm/v3/apiClient/runTracePages.d.ts +14 -0
  72. package/dist/esm/v3/apiClient/runTracePages.js +117 -0
  73. package/dist/esm/v3/apiClient/runTracePages.js.map +1 -0
  74. package/dist/esm/v3/errors.d.ts +25 -2
  75. package/dist/esm/v3/errors.js +45 -10
  76. package/dist/esm/v3/errors.js.map +1 -1
  77. package/dist/esm/v3/index.d.ts +1 -0
  78. package/dist/esm/v3/index.js +1 -0
  79. package/dist/esm/v3/index.js.map +1 -1
  80. package/dist/esm/v3/isomorphic/friendlyId.d.ts +14 -3
  81. package/dist/esm/v3/isomorphic/friendlyId.js +45 -16
  82. package/dist/esm/v3/isomorphic/friendlyId.js.map +1 -1
  83. package/dist/esm/v3/isomorphic/index.d.ts +1 -0
  84. package/dist/esm/v3/isomorphic/index.js +1 -0
  85. package/dist/esm/v3/isomorphic/index.js.map +1 -1
  86. package/dist/esm/v3/isomorphic/webhookDeliveryRetention.d.ts +19 -0
  87. package/dist/esm/v3/isomorphic/webhookDeliveryRetention.js +21 -0
  88. package/dist/esm/v3/isomorphic/webhookDeliveryRetention.js.map +1 -0
  89. package/dist/esm/v3/runEngineWorker/supervisor/http.d.ts +2 -5
  90. package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +4 -41
  91. package/dist/esm/v3/runEngineWorker/supervisor/schemas.js +3 -19
  92. package/dist/esm/v3/runEngineWorker/supervisor/schemas.js.map +1 -1
  93. package/dist/esm/v3/runEngineWorker/supervisor/session.d.ts +2 -0
  94. package/dist/esm/v3/runEngineWorker/supervisor/session.js +1 -0
  95. package/dist/esm/v3/runEngineWorker/supervisor/session.js.map +1 -1
  96. package/dist/esm/v3/runEngineWorker/workload/http.d.ts +1 -2
  97. package/dist/esm/v3/runEngineWorker/workload/http.js +2 -5
  98. package/dist/esm/v3/runEngineWorker/workload/http.js.map +1 -1
  99. package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +2 -22
  100. package/dist/esm/v3/runEngineWorker/workload/schemas.js +1 -2
  101. package/dist/esm/v3/runEngineWorker/workload/schemas.js.map +1 -1
  102. package/dist/esm/v3/schemas/api.d.ts +100 -9
  103. package/dist/esm/v3/schemas/api.js +73 -0
  104. package/dist/esm/v3/schemas/api.js.map +1 -1
  105. package/dist/esm/v3/schemas/build.d.ts +4 -0
  106. package/dist/esm/v3/schemas/build.js +2 -0
  107. package/dist/esm/v3/schemas/build.js.map +1 -1
  108. package/dist/esm/v3/schemas/checkpoints.d.ts +2 -9
  109. package/dist/esm/v3/schemas/messages.d.ts +1 -0
  110. package/dist/esm/v3/schemas/messages.js +2 -0
  111. package/dist/esm/v3/schemas/messages.js.map +1 -1
  112. package/dist/esm/v3/schemas/queues.d.ts +77 -3
  113. package/dist/esm/v3/schemas/queues.js +100 -5
  114. package/dist/esm/v3/schemas/queues.js.map +1 -1
  115. package/dist/esm/v3/schemas/runEngine.d.ts +11 -11
  116. package/dist/esm/v3/schemas/runEngine.js +8 -7
  117. package/dist/esm/v3/schemas/runEngine.js.map +1 -1
  118. package/dist/esm/v3/schemas/webhookFilter.d.ts +65 -13
  119. package/dist/esm/v3/types/chatEvents.d.ts +26 -4
  120. package/dist/esm/v3/types/webhooks.d.ts +27 -0
  121. package/dist/esm/v3/webhooks/index.d.ts +4 -4
  122. package/dist/esm/v3/webhooks/index.js +22 -3
  123. package/dist/esm/v3/webhooks/index.js.map +1 -1
  124. package/dist/esm/version.js +1 -1
  125. package/package.json +1 -1
  126. package/dist/commonjs/v3/schemas/snapshotRoute.d.ts +0 -33
  127. package/dist/commonjs/v3/schemas/snapshotRoute.js +0 -33
  128. package/dist/commonjs/v3/schemas/snapshotRoute.js.map +0 -1
  129. package/dist/esm/v3/schemas/snapshotRoute.d.ts +0 -33
  130. package/dist/esm/v3/schemas/snapshotRoute.js +0 -30
  131. package/dist/esm/v3/schemas/snapshotRoute.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverrideConcurrencyLimitRequestBody = exports.ListConcurrencyLimitOptions = exports.ConcurrencyLimitItem = exports.ConcurrencyLimitBound = exports.RetrieveQueueParam = exports.QueueTypeName = exports.ListQueueOptions = exports.QueueItem = exports.RetrieveQueueType = exports.QueueType = void 0;
3
+ exports.ConcurrencyLimitKeyItem = exports.ConcurrencyLimitKeyBound = exports.RetrieveConcurrencyLimitOptions = exports.ResetConcurrencyLimitRequestBody = exports.OverrideConcurrencyLimitRequestBody = exports.OverrideConcurrencyLimitKeyBody = exports.OverrideConcurrencyLimitBoundsBody = exports.ListConcurrencyLimitOptions = exports.ConcurrencyLimitItem = exports.ConcurrencyLimitBound = exports.RetrieveQueueParam = exports.QueueTypeName = exports.ListQueueOptions = exports.QueueItem = exports.RetrieveQueueType = exports.QueueType = void 0;
4
4
  const v4_1 = require("zod/v4");
5
5
  const zod_js_1 = require("../utils/zod.js");
6
6
  const queueTypes = ["task", "custom"];
@@ -140,14 +140,109 @@ exports.ListConcurrencyLimitOptions = v4_1.z.object({
140
140
  page: v4_1.z.number().optional(),
141
141
  perPage: v4_1.z.number().optional(),
142
142
  });
143
- /** Changes only the given bounds. Zero blocks every run holding the limit, which
144
- * is how a limit is paused; `reset` restores the declared values. */
145
- exports.OverrideConcurrencyLimitRequestBody = v4_1.z
143
+ /** A concurrency-key value as callers write it: numbers are accepted and stored as strings,
144
+ * matching how a trigger's `concurrencyKey` is coerced. */
145
+ const OverrideConcurrencyKeySchema = v4_1.z
146
+ .union([v4_1.z.string(), v4_1.z.number()])
147
+ .transform((value) => String(value))
148
+ .pipe(v4_1.z.string().min(1).max(128));
149
+ const ConcurrencyBoundSchema = v4_1.z.number().int().min(0).max(100000);
150
+ const OverrideTtlSchema = v4_1.z.string().or(v4_1.z.number().int().positive());
151
+ /** Changes only the given bounds of the limit itself. Zero blocks every run holding
152
+ * the limit, which is how a limit is paused; `reset` restores the declared values. */
153
+ exports.OverrideConcurrencyLimitBoundsBody = v4_1.z
146
154
  .object({
147
- perKey: v4_1.z.number().int().min(0).max(100000).optional(),
148
- total: v4_1.z.number().int().min(0).max(100000).optional(),
155
+ perKey: ConcurrencyBoundSchema.optional(),
156
+ total: ConcurrencyBoundSchema.optional(),
157
+ concurrencyKey: v4_1.z.never().optional(),
158
+ ttl: v4_1.z.never().optional(),
149
159
  })
150
160
  .refine((body) => body.perKey !== undefined || body.total !== undefined, {
151
161
  message: "Provide at least one of `perKey` or `total`",
152
162
  });
163
+ /** A temporary per-key cap on this limit's `perKey` for one concurrencyKey: `0`
164
+ * blocks the key, and the override expires after `ttl` (a duration such as `"7d"`
165
+ * or a number of seconds; default 7 days, at most 30 days). `total` is not per key,
166
+ * so it cannot be given here. `reset` with the same `concurrencyKey` clears it. */
167
+ exports.OverrideConcurrencyLimitKeyBody = v4_1.z.object({
168
+ concurrencyKey: OverrideConcurrencyKeySchema,
169
+ perKey: ConcurrencyBoundSchema,
170
+ ttl: OverrideTtlSchema.optional(),
171
+ total: v4_1.z.never().optional(),
172
+ });
173
+ /** Either the limit's own bounds or a per-key cap, told apart by `concurrencyKey`.
174
+ * The output type is the union of the two shapes above, so `total` with a key, a key
175
+ * without `perKey`, and `ttl` without a key are type errors for SDK callers. Parsing
176
+ * goes through one flat object with cross-field checks rather than a `z.union`, so an
177
+ * HTTP caller gets a single message naming the field at fault instead of the failures
178
+ * of both branches. */
179
+ exports.OverrideConcurrencyLimitRequestBody = v4_1.z
180
+ .object({
181
+ perKey: ConcurrencyBoundSchema.optional(),
182
+ total: ConcurrencyBoundSchema.optional(),
183
+ concurrencyKey: OverrideConcurrencyKeySchema.optional(),
184
+ ttl: OverrideTtlSchema.optional(),
185
+ })
186
+ .superRefine((body, ctx) => {
187
+ if (body.concurrencyKey !== undefined) {
188
+ if (body.perKey === undefined) {
189
+ ctx.addIssue({
190
+ code: "custom",
191
+ path: ["perKey"],
192
+ message: "A per-key override needs `perKey`",
193
+ });
194
+ }
195
+ if (body.total !== undefined) {
196
+ ctx.addIssue({
197
+ code: "custom",
198
+ path: ["total"],
199
+ message: "`total` is not per key; omit it when overriding one concurrencyKey",
200
+ });
201
+ }
202
+ return;
203
+ }
204
+ if (body.ttl !== undefined) {
205
+ ctx.addIssue({
206
+ code: "custom",
207
+ path: ["ttl"],
208
+ message: "`ttl` only applies to a per-key override; pass `concurrencyKey` with it",
209
+ });
210
+ }
211
+ if (body.perKey === undefined && body.total === undefined) {
212
+ ctx.addIssue({
213
+ code: "custom",
214
+ message: "Provide at least one of `perKey` or `total`",
215
+ });
216
+ }
217
+ })
218
+ .transform((body) => body);
219
+ /** `reset` with a `concurrencyKey` clears that key's override and leaves the limit
220
+ * itself alone; without one it resets the limit's own override. */
221
+ exports.ResetConcurrencyLimitRequestBody = v4_1.z.object({
222
+ concurrencyKey: OverrideConcurrencyKeySchema.optional(),
223
+ });
224
+ exports.RetrieveConcurrencyLimitOptions = v4_1.z.object({
225
+ /** Return the view of this limit for one concurrencyKey instead of the limit itself. */
226
+ concurrencyKey: OverrideConcurrencyKeySchema.optional(),
227
+ });
228
+ /** The per-key bound of a limit for one concurrencyKey: `base` is the limit's own
229
+ * `perKey` as enforced, `override` the key's temporary cap, `current` whichever
230
+ * applies right now (env-clamped). A paused limit still reports its bounds. */
231
+ exports.ConcurrencyLimitKeyBound = v4_1.z.object({
232
+ current: v4_1.z.number().nullable(),
233
+ base: v4_1.z.number().nullable(),
234
+ override: v4_1.z.number().nullable(),
235
+ /** When the key's override lapses; null when there is none. */
236
+ expiresAt: v4_1.z.coerce.date().nullable(),
237
+ });
238
+ exports.ConcurrencyLimitKeyItem = v4_1.z.object({
239
+ /** The limit's name. */
240
+ name: v4_1.z.string(),
241
+ concurrencyKey: v4_1.z.string(),
242
+ perKey: exports.ConcurrencyLimitKeyBound,
243
+ /** Runs executing for this key that hold this limit. */
244
+ running: v4_1.z.number(),
245
+ /** Whether the limit is paused. A paused limit admits no runs, override or not. */
246
+ paused: v4_1.z.boolean(),
247
+ });
153
248
  //# sourceMappingURL=queues.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queues.js","sourceRoot":"","sources":["../../../../src/v3/schemas/queues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queues.js","sourceRoot":"","sources":["../../../../src/v3/schemas/queues.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { z } from "zod/v4";
2
2
  import type { RuntimeEnvironmentType } from "./common.js";
3
- import { SnapshotRouteWire } from "./snapshotRoute.js";
4
3
  export declare const TriggerSource: z.ZodUnion<[z.ZodEnum<{
5
4
  api: "api";
6
5
  cli: "cli";
@@ -53,8 +52,16 @@ export declare const RunAnnotations: z.ZodObject<{
53
52
  externalDeploymentId: z.ZodOptional<z.ZodString>;
54
53
  webhookDeliveryId: z.ZodOptional<z.ZodString>;
55
54
  webhookEndpointId: z.ZodOptional<z.ZodString>;
55
+ workerCell: z.ZodCatch<z.ZodOptional<z.ZodString>>;
56
+ workerLane: z.ZodCatch<z.ZodOptional<z.ZodString>>;
56
57
  }, z.core.$strip>;
57
58
  export type RunAnnotations = z.infer<typeof RunAnnotations>;
59
+ /** Lenient read of the worker stamp: works on blobs that predate or fail RunAnnotations. */
60
+ export declare const WorkerStampAnnotations: z.ZodObject<{
61
+ workerCell: z.ZodCatch<z.ZodOptional<z.ZodString>>;
62
+ workerLane: z.ZodCatch<z.ZodOptional<z.ZodString>>;
63
+ }, z.core.$strip>;
64
+ export type WorkerStampAnnotations = z.infer<typeof WorkerStampAnnotations>;
58
65
  export declare const TaskRunExecutionStatus: {
59
66
  RUN_CREATED: "RUN_CREATED";
60
67
  QUEUED: "QUEUED";
@@ -645,7 +652,6 @@ export declare const PlacementTag: z.ZodObject<{
645
652
  }, z.core.$strip>;
646
653
  export type PlacementTag = z.infer<typeof PlacementTag>;
647
654
  /** This is sent to a Worker when a run is dequeued (a new run or continuing run) */
648
- export { SnapshotRouteWire };
649
655
  export declare const DequeuedMessage: z.ZodObject<{
650
656
  version: z.ZodLiteral<"1">;
651
657
  snapshot: z.ZodObject<{
@@ -666,15 +672,6 @@ export declare const DequeuedMessage: z.ZodObject<{
666
672
  description: z.ZodString;
667
673
  createdAt: z.ZodCoercedDate<unknown>;
668
674
  }, z.core.$strip>;
669
- snapshotRoute: z.ZodOptional<z.ZodObject<{
670
- version: z.ZodLiteral<1>;
671
- residency: z.ZodEnum<{
672
- mirrored: "mirrored";
673
- postgres: "postgres";
674
- "redis-primary": "redis-primary";
675
- }>;
676
- organizationId: z.ZodString;
677
- }, z.core.$strip>>;
678
675
  dequeuedAt: z.ZodCoercedDate<unknown>;
679
676
  workerQueueLength: z.ZodOptional<z.ZodNumber>;
680
677
  image: z.ZodOptional<z.ZodString>;
@@ -782,6 +779,8 @@ export declare const DequeuedMessage: z.ZodObject<{
782
779
  externalDeploymentId: z.ZodOptional<z.ZodString>;
783
780
  webhookDeliveryId: z.ZodOptional<z.ZodString>;
784
781
  webhookEndpointId: z.ZodOptional<z.ZodString>;
782
+ workerCell: z.ZodCatch<z.ZodOptional<z.ZodString>>;
783
+ workerLane: z.ZodCatch<z.ZodOptional<z.ZodString>>;
785
784
  }, z.core.$strip>>;
786
785
  }, z.core.$strip>;
787
786
  environment: z.ZodObject<{
@@ -806,3 +805,4 @@ export declare const DequeuedMessage: z.ZodObject<{
806
805
  }, z.core.$strip>>>;
807
806
  }, z.core.$strip>;
808
807
  export type DequeuedMessage = z.infer<typeof DequeuedMessage>;
808
+ export {};
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DequeuedMessage = exports.SnapshotRouteWire = exports.PlacementTag = exports.DequeueMessageCheckpoint = exports.MachineResources = exports.CreateCheckpointResult = exports.RunExecutionData = exports.TaskRunCheckpoint = exports.CheckpointInput = exports.CheckpointType = exports.CheckpointTypeEnum = exports.CompleteRunAttemptResult = exports.StartRunAttemptResult = exports.ExecutionResult = exports.CompletedWaitpoint = exports.WaitpointStatus = exports.WaitpointType = exports.TaskRunStatus = exports.TaskRunExecutionStatus = exports.RunAnnotations = exports.TaskKind = exports.TriggerAction = exports.TriggerSource = void 0;
3
+ exports.DequeuedMessage = exports.PlacementTag = exports.DequeueMessageCheckpoint = exports.MachineResources = exports.CreateCheckpointResult = exports.RunExecutionData = exports.TaskRunCheckpoint = exports.CheckpointInput = exports.CheckpointType = exports.CheckpointTypeEnum = exports.CompleteRunAttemptResult = exports.StartRunAttemptResult = exports.ExecutionResult = exports.CompletedWaitpoint = exports.WaitpointStatus = exports.WaitpointType = exports.TaskRunStatus = exports.TaskRunExecutionStatus = exports.WorkerStampAnnotations = exports.RunAnnotations = exports.TaskKind = exports.TriggerAction = exports.TriggerSource = void 0;
4
4
  const v4_1 = require("zod/v4");
5
5
  const zod_js_1 = require("../utils/zod.js");
6
6
  const common_js_1 = require("./common.js");
7
7
  const schemas_js_1 = require("./schemas.js");
8
- const snapshotRoute_js_1 = require("./snapshotRoute.js");
9
- Object.defineProperty(exports, "SnapshotRouteWire", { enumerable: true, get: function () { return snapshotRoute_js_1.SnapshotRouteWire; } });
10
8
  const anyString = v4_1.z.custom((v) => typeof v === "string");
11
9
  exports.TriggerSource = v4_1.z
12
10
  .enum(["sdk", "api", "dashboard", "cli", "mcp", "schedule"])
@@ -24,6 +22,14 @@ exports.RunAnnotations = v4_1.z.object({
24
22
  webhookDeliveryId: v4_1.z.string().optional(),
25
23
  /** The endpoint (friendly id) that delivery arrived on. */
26
24
  webhookEndpointId: v4_1.z.string().optional(),
25
+ /** Where the most recently stamped attempt executed. Set by the supervisor at attempt start. */
26
+ workerCell: v4_1.z.string().optional().catch(undefined),
27
+ workerLane: v4_1.z.string().optional().catch(undefined),
28
+ });
29
+ /** Lenient read of the worker stamp: works on blobs that predate or fail RunAnnotations. */
30
+ exports.WorkerStampAnnotations = v4_1.z.object({
31
+ workerCell: v4_1.z.string().optional().catch(undefined),
32
+ workerLane: v4_1.z.string().optional().catch(undefined),
27
33
  });
28
34
  exports.TaskRunExecutionStatus = {
29
35
  RUN_CREATED: "RUN_CREATED",
@@ -192,11 +198,10 @@ exports.PlacementTag = v4_1.z.object({
192
198
  key: v4_1.z.string(),
193
199
  values: v4_1.z.array(v4_1.z.string()).optional(),
194
200
  });
201
+ /** This is sent to a Worker when a run is dequeued (a new run or continuing run) */
195
202
  exports.DequeuedMessage = v4_1.z.object({
196
203
  version: v4_1.z.literal("1"),
197
204
  snapshot: ExecutionSnapshot,
198
- // Absent for a never-enrolled (postgres) run and for messages produced before this field existed.
199
- snapshotRoute: snapshotRoute_js_1.SnapshotRouteWire.optional(),
200
205
  dequeuedAt: v4_1.z.coerce.date(),
201
206
  workerQueueLength: v4_1.z.number().optional(),
202
207
  image: v4_1.z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"runEngine.js","sourceRoot":"","sources":["../../../../src/v3/schemas/runEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runEngine.js","sourceRoot":"","sources":["../../../../src/v3/schemas/runEngine.ts"],"names":[],"mappings":"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"}
@@ -52,24 +52,63 @@ type FilterError<M extends string> = `✖ ${M}`;
52
52
  type Invalid = {
53
53
  readonly "~webhookFilterInvalid": true;
54
54
  };
55
- type PathValue<T, P extends string> = P extends `${infer H}.${infer R}` ? H extends keyof T ? PathValue<NonNullable<T[H]>, R> : Invalid : P extends keyof T ? NonNullable<T[P]> : Invalid;
56
- type ResolveFilterPath<TEvent, P extends string> = P extends `event.${infer R}` ? PathValue<TEvent, R> : P extends `header.${string}` ? string : P extends `webhook.${infer R}` ? PathValue<WebhookFilterMeta, R> : Invalid;
55
+ type IsValidFilterPath<P extends string> = P extends "" | `.${string}` | `${string}.` | `${string}..${string}` ? false : true;
56
+ type KnownValue<T> = unknown extends T ? unknown : NonNullable<T>;
57
+ /** Resolves per union member, so a path only some members have still resolves. */
58
+ type MemberPathValue<T, P extends string> = unknown extends T ? unknown : NonNullable<T> extends infer M ? M extends unknown ? P extends `${infer H}.${infer R}` ? H extends keyof M ? MemberPathValue<M[H], R> : Invalid : P extends keyof M ? KnownValue<M[P]> : Invalid : never : never;
59
+ type PathValue<T, P extends string> = IsValidFilterPath<P> extends false ? Invalid : [Exclude<MemberPathValue<T, P>, Invalid>] extends [never] ? Invalid : Exclude<MemberPathValue<T, P>, Invalid>;
60
+ type ResolveFilterPath<TEvent, P extends string> = IsValidFilterPath<P> extends false ? Invalid : P extends `event.${infer R}` ? PathValue<TEvent, R> : P extends `header.${string}` ? string : P extends `webhook.${infer R}` ? PathValue<WebhookFilterMeta, R> : Invalid;
57
61
  type FilterLiteralType<Lit extends string> = Lit extends `'${infer S}'` ? S : Lit extends `${infer N extends number}` ? N : Lit extends "true" ? true : Lit extends "false" ? false : Lit extends "null" ? null : Invalid;
58
62
  type CheckValue<F, Lit extends string, P extends string> = [FilterLiteralType<Lit>] extends [
59
63
  Invalid
60
64
  ] ? FilterError<`cannot parse value: ${Lit}`> : [FilterLiteralType<Lit>] extends [F] ? true : FilterError<`value ${Lit} is not valid for ${P}`>;
61
- type CheckNum<F, Lit extends string, P extends string> = [F] extends [number] ? Lit extends `${number}` ? true : FilterError<`${P} needs a number`> : FilterError<`${P} is not numeric`>;
62
- type CheckStr<F, Lit extends string, P extends string> = [F] extends [string] ? Lit extends `'${string}'` ? true : FilterError<`${P} op needs a string literal`> : FilterError<`${P} is not a string`>;
63
- type CheckInItems<F, Items extends string, P extends string> = Items extends `${infer Head},${infer Tail}` ? CheckValue<F, Head, P> extends true ? CheckInItems<F, Tail, P> : CheckValue<F, Head, P> : CheckValue<F, Items, P>;
65
+ type CheckNum<F, Lit extends string, P extends string> = [
66
+ Extract<unknown extends F ? number : F, number>
67
+ ] extends [never] ? FilterError<`${P} is not numeric`> : Lit extends `${number}` ? true : FilterError<`${P} needs a number`>;
68
+ type CheckStr<F, Lit extends string, P extends string> = [
69
+ Extract<unknown extends F ? string : F, string>
70
+ ] extends [never] ? FilterError<`${P} is not a string`> : Lit extends `'${string}'` ? true : FilterError<`${P} op needs a string literal`>;
71
+ type TrimItem<S extends string> = S extends ` ${infer R}` ? TrimItem<R> : S extends `${infer L} ` ? TrimItem<L> : S;
72
+ type CheckInItems<F, Items extends string, P extends string> = Items extends `${infer Head},${infer Tail}` ? CheckValue<F, TrimItem<Head>, P> extends true ? CheckInItems<F, Tail, P> : CheckValue<F, TrimItem<Head>, P> : CheckValue<F, TrimItem<Items>, P>;
64
73
  type CheckIn<F, Lit extends string, P extends string> = Lit extends `[${infer Items}]` ? CheckInItems<F, Items, P> : FilterError<`${P} "in" expects a [list]`>;
65
74
  type CheckOp<F, Op extends string, Lit extends string, P extends string> = Op extends "==" | "!=" ? CheckValue<F, Lit, P> : Op extends ">" | "<" | ">=" | "<=" ? CheckNum<F, Lit, P> : Op extends "startsWith" | "endsWith" | "contains" ? CheckStr<F, Lit, P> : Op extends "in" ? CheckIn<F, Lit, P> : FilterError<`unknown operator: ${Op}`>;
66
75
  type IsFilterPath<S extends string> = S extends `event.${string}` | `header.${string}` | `webhook.${string}` ? true : false;
67
76
  type CheckFieldToField<TEvent, F, Op extends string, Rhs extends string, P extends string> = Op extends "==" | "!=" | ">" | "<" | ">=" | "<=" ? ResolveFilterPath<TEvent, Rhs> extends infer RF ? [RF] extends [Invalid] ? FilterError<`unknown field: ${Rhs}`> : [RF] extends [F] ? true : [F] extends [RF] ? true : FilterError<`${P} and ${Rhs} are not comparable`> : never : FilterError<`operator "${Op}" does not support a field reference`>;
68
77
  type LeafCheck<TEvent, P extends string, Op extends string, Lit extends string> = ResolveFilterPath<TEvent, P> extends infer F ? [F] extends [Invalid] ? FilterError<`unknown field: ${P}`> : IsFilterPath<Lit> extends true ? CheckFieldToField<TEvent, F, Op, Lit, P> : CheckOp<F, Op, Lit, P> : never;
69
- type ElementOf<T> = T extends readonly (infer E)[] ? E : never;
78
+ type ElementOf<T> = unknown extends T ? unknown : T extends readonly (infer E)[] ? E : never;
70
79
  type CheckQuantifier<TEvent, ArrP extends string, SubP extends string, Op extends string, Lit extends string> = ResolveFilterPath<TEvent, ArrP> extends infer Arr ? [Arr] extends [Invalid] ? FilterError<`unknown field: ${ArrP}`> : [ElementOf<Arr>] extends [never] ? FilterError<`${ArrP} is not an array`> : PathValue<ElementOf<Arr>, SubP> extends infer SF ? [SF] extends [Invalid] ? FilterError<`unknown field: ${SubP} (in ${ArrP})`> : CheckOp<SF, Op, Lit, SubP> : never : never;
71
- type Tokenize<S extends string, Acc extends string[] = []> = S extends `${infer H} ${infer R}` ? Tokenize<R, [...Acc, H]> : [...Acc, S];
72
- type Scan<TEvent, Tk extends string[], Depth extends 1[], Expect extends "operand" | "operator"> = Expect extends "operand" ? Tk extends ["(", ...infer Rest extends string[]] ? Scan<TEvent, Rest, [1, ...Depth], "operand"> : Tk extends [")" | "&&" | "||", ...string[]] ? FilterError<`unexpected "${Tk[0] & string}"`> : Tk extends [
80
+ type OddQuotes<S extends string, Odd extends boolean = false> = S extends `${string}'${infer R}` ? OddQuotes<R, Odd extends true ? false : true> : Odd;
81
+ type Unclosed<S extends string> = OddQuotes<S> extends true ? true : S extends `${string}[${infer After}` ? After extends `${string}]${string}` ? false : true : false;
82
+ /** Splits on spaces, keeping a quoted string or a `[list]` that contains spaces as one token. */
83
+ type SplitOnSpaces<S extends string, Acc extends string[] = []> = S extends `${infer H} ${infer R}` ? Unclosed<H> extends true ? TokenizeJoin<R, H, Acc> : SplitOnSpaces<R, [...Acc, H]> : [...Acc, S];
84
+ type TokenizeJoin<S extends string, Cur extends string, Acc extends string[]> = S extends `${infer H} ${infer R}` ? Unclosed<`${Cur} ${H}`> extends true ? TokenizeJoin<R, `${Cur} ${H}`, Acc> : SplitOnSpaces<R, [...Acc, `${Cur} ${H}`]> : [...Acc, `${Cur} ${S}`];
85
+ type SplitClose<S extends string, Post extends string[] = []> = S extends `${infer L})` ? SplitClose<L, [")", ...Post]> : S extends "" ? Post : [S, ...Post];
86
+ type SplitOpen<S extends string, Pre extends string[] = []> = S extends `(${infer R}` ? SplitOpen<R, [...Pre, "("]> : [...Pre, ...SplitClose<S>];
87
+ type SplitParens<Tk extends string[], Acc extends string[] = []> = Tk extends [
88
+ infer H extends string,
89
+ ...infer R extends string[]
90
+ ] ? SplitParens<R, [...Acc, ...(H extends `'${string}'` ? [H] : SplitOpen<H>)]> : Acc;
91
+ type Tokenize<S extends string> = SplitParens<SplitOnSpaces<S>>;
92
+ type InItemTypes<Items extends string, Acc = never> = Items extends `${infer Head},${infer Tail}` ? InItemTypes<Tail, Acc | FilterLiteralType<TrimItem<Head>>> : Acc | FilterLiteralType<TrimItem<Items>>;
93
+ type LooseEqKind<V> = V extends string ? string : V extends number ? number : unknown;
94
+ /**
95
+ * Drops a member only when its field can never equal `V` under the server's coercing `==`: the field
96
+ * is missing, or holds only values of `V`'s own primitive kind that differ from it.
97
+ */
98
+ type NarrowTo<T, P extends string, V> = V extends unknown ? T extends unknown ? Exclude<MemberPathValue<T, P>, Invalid> extends infer F ? [V] extends [F] ? T : [F] extends [LooseEqKind<V>] ? never : T : never : never : never;
99
+ /**
100
+ * The server's `==` also matches a null field for `null`, `'null'` and `0`, so those never narrow,
101
+ * nor does a number literal TypeScript can't type exactly (`0.0`, `-0`), which reads as `number`.
102
+ */
103
+ type NarrowEq<T, P extends string, V> = unknown extends T ? T : number extends V ? T : [Extract<V, null | "null" | 0>] extends [never] ? NarrowTo<T, P, V> : T;
104
+ type NarrowLeaf<T, P extends string, Op extends string, Lit extends string> = P extends `event.${infer R}` ? Op extends "==" ? IsFilterPath<Lit> extends true ? T : NarrowEq<T, R, FilterLiteralType<Lit>> : Op extends "in" ? Lit extends `[${infer Items}]` ? NarrowEq<T, R, InItemTypes<Items>> : T : T : T;
105
+ type Frame = [unknown, unknown];
106
+ /**
107
+ * `Cur` is the event the current `&&` chain has narrowed to. Each paren group (and the whole filter)
108
+ * is a frame of [the type the group started from, the union of its finished `||` branches]. A valid
109
+ * filter scans to `[narrowed event]`, an invalid one to its error.
110
+ */
111
+ type Scan<Cur, Tk extends string[], Frames extends Frame[], Expect extends "operand" | "operator"> = Expect extends "operand" ? Tk extends ["(", ...infer Rest extends string[]] ? Scan<Cur, Rest, [[Cur, never], ...Frames], "operand"> : Tk extends [")" | "&&" | "||", ...string[]] ? FilterError<`unexpected "${Tk[0] & string}"`> : Tk extends [
73
112
  infer ArrP extends string,
74
113
  "any" | "all",
75
114
  "(",
@@ -78,18 +117,31 @@ type Scan<TEvent, Tk extends string[], Depth extends 1[], Expect extends "operan
78
117
  infer SubLit extends string,
79
118
  ")",
80
119
  ...infer Rest extends string[]
81
- ] ? CheckQuantifier<TEvent, ArrP, SubP, SubOp, SubLit> extends infer R ? R extends true ? Scan<TEvent, Rest, Depth, "operator"> : R : never : Tk extends [
120
+ ] ? CheckQuantifier<Cur, ArrP, SubP, SubOp, SubLit> extends infer R ? R extends true ? Scan<Cur, Rest, Frames, "operator"> : R : never : Tk extends [
82
121
  infer P extends string,
83
122
  "not",
84
123
  "in",
85
124
  infer Lit extends string,
86
125
  ...infer Rest extends string[]
87
- ] ? ResolveFilterPath<TEvent, P> extends infer F ? [F] extends [Invalid] ? FilterError<`unknown field: ${P}`> : CheckIn<F, Lit, P> extends infer R ? R extends true ? Scan<TEvent, Rest, Depth, "operator"> : R : never : never : Tk extends [
126
+ ] ? ResolveFilterPath<Cur, P> extends infer F ? [F] extends [Invalid] ? FilterError<`unknown field: ${P}`> : CheckIn<F, Lit, P> extends infer R ? R extends true ? Scan<Cur, Rest, Frames, "operator"> : R : never : never : Tk extends [
88
127
  infer P extends string,
89
128
  infer Op extends string,
90
129
  infer Lit extends string,
91
130
  ...infer Rest extends string[]
92
- ] ? LeafCheck<TEvent, P, Op, Lit> extends infer R ? R extends true ? Scan<TEvent, Rest, Depth, "operator"> : R : never : FilterError<`incomplete clause`> : Tk extends [] ? Depth extends [] ? true : FilterError<`unbalanced parens (missing ")")`> : Tk extends ["&&" | "||", ...infer Rest extends string[]] ? Scan<TEvent, Rest, Depth, "operand"> : Tk extends [")", ...infer Rest extends string[]] ? Depth extends [1, ...infer D extends 1[]] ? Scan<TEvent, Rest, D, "operator"> : FilterError<`unmatched ")"`> : FilterError<`expected && or ||, got "${Tk[0] & string}"`>;
93
- type ScanFilter<TEvent, S extends string> = Scan<TEvent, Tokenize<S>, [], "operand">;
94
- export type ValidateWebhookFilter<TEvent, S extends string> = ScanFilter<TEvent, S> extends true ? S : ScanFilter<TEvent, S>;
131
+ ] ? LeafCheck<Cur, P, Op, Lit> extends infer R ? R extends true ? Scan<NarrowLeaf<Cur, P, Op, Lit>, Rest, Frames, "operator"> : R : never : FilterError<`incomplete clause`> : Tk extends [] ? Frames extends [[unknown, infer Done]] ? [Done | Cur] : FilterError<`unbalanced parens (missing ")")`> : Tk extends ["&&", ...infer Rest extends string[]] ? Scan<Cur, Rest, Frames, "operand"> : Tk extends ["||", ...infer Rest extends string[]] ? Frames extends [[infer Base, infer Done], ...infer Outer extends Frame[]] ? Scan<Base, Rest, [[Base, Done | Cur], ...Outer], "operand"> : never : Tk extends [")", ...infer Rest extends string[]] ? Frames extends [
132
+ [
133
+ unknown,
134
+ infer Done
135
+ ],
136
+ infer Next extends Frame,
137
+ ...infer Outer extends Frame[]
138
+ ] ? Scan<Done | Cur, Rest, [Next, ...Outer], "operator"> : FilterError<`unmatched ")"`> : FilterError<`expected && or ||, got "${Tk[0] & string}"`>;
139
+ type ScanFilter<TEvent, S extends string> = Scan<TEvent, Tokenize<S>, [[TEvent, never]], "operand">;
140
+ export type ValidateWebhookFilter<TEvent, S extends string> = string extends S ? S : ScanFilter<TEvent, S> extends [unknown] ? S : ScanFilter<TEvent, S>;
141
+ /**
142
+ * The event a handler sees once the filter `S` has passed: the members of a union event that the
143
+ * filter's `event.<path> == <literal>` (or `in [...]`) clauses select, or `TEvent` when the filter
144
+ * doesn't narrow it (or isn't a literal).
145
+ */
146
+ export type NarrowWebhookEvent<TEvent, S extends string> = string extends S ? TEvent : ScanFilter<TEvent, S> extends [infer Narrowed] ? Narrowed : TEvent;
95
147
  export {};
@@ -1,4 +1,4 @@
1
- import type { WebhookSecretProvisioning, WebhookVerifierArtifact } from "../schemas/webhookConfig.js";
1
+ import type { WebhookEndpointContext } from "./webhooks.js";
2
2
  export type WebhookKeyScalar = string | number | boolean | bigint;
3
3
  export interface WebhookKeyMeta {
4
4
  externalRef: string;
@@ -14,18 +14,32 @@ type Invalid = {
14
14
  type PathValue<T, P extends string> = P extends `${infer Head}.${infer Rest}` ? Head extends keyof T ? PathValue<NonNullable<T[Head]>, Rest> : Invalid : P extends keyof T ? NonNullable<T[P]> : Invalid;
15
15
  export type WebhookKeyError<M extends string> = `✖ ${M}`;
16
16
  type TrimSpace<S extends string> = S extends ` ${infer R}` ? TrimSpace<R> : S extends `${infer L} ` ? TrimSpace<L> : S;
17
- type CheckKeyPathSingle<TEvent, Path extends string> = Path extends `webhook.${infer Rest}` ? PathValue<WebhookKeyMeta, Rest> extends WebhookKeyScalar ? true : WebhookKeyError<`unknown or non-scalar webhook meta path: ${Rest}`> : Path extends `header.${infer Name}` ? Name extends "" ? WebhookKeyError<`empty header name`> : true : Path extends `body.${infer Rest}` ? PathValue<TEvent, Rest> extends WebhookKeyScalar ? true : WebhookKeyError<`unknown or non-scalar event path: ${Rest}`> : PathValue<TEvent, Path> extends WebhookKeyScalar ? true : WebhookKeyError<`unknown or non-scalar event path: ${Path}`>;
18
17
  type CheckKeyPath<TEvent, Path extends string> = Path extends `${infer L}||${infer R}` ? CheckKeyPathSingle<TEvent, TrimSpace<L>> extends true ? CheckKeyPath<TEvent, TrimSpace<R>> : CheckKeyPathSingle<TEvent, TrimSpace<L>> : CheckKeyPathSingle<TEvent, TrimSpace<Path>>;
19
18
  type CheckKeyTemplate<TEvent, S extends string> = S extends `${infer _Pre}{${infer Path}}${infer Rest}` ? CheckKeyPath<TEvent, Path> extends true ? CheckKeyTemplate<TEvent, Rest> : CheckKeyPath<TEvent, Path> : true;
20
19
  export type ValidatedWebhookKey<TEvent, S extends string> = CheckKeyTemplate<TEvent, S> extends true ? S : CheckKeyTemplate<TEvent, S>;
20
+ type MatchNext<X> = unknown extends X ? unknown : NonNullable<X>;
21
+ type MatchPathValue<T, P extends string> = unknown extends T ? unknown : P extends `${infer Head}.${infer Rest}` ? Head extends keyof T ? MatchPathValue<MatchNext<T[Head]>, Rest> : string extends keyof T ? unknown : Invalid : P extends keyof T ? MatchNext<T[P]> : string extends keyof T ? unknown : Invalid;
22
+ type CheckEventPath<TEvent, Path extends string> = Path extends "" | `.${string}` | `${string}.` | `${string}..${string}` ? WebhookKeyError<`empty path segment: ${Path}`> : MatchPathValue<TEvent, Path> extends Invalid ? WebhookKeyError<`unknown event path: ${Path}`> : unknown extends MatchPathValue<TEvent, Path> ? true : MatchPathValue<TEvent, Path> extends WebhookKeyScalar ? true : WebhookKeyError<`non-scalar event path: ${Path}`>;
23
+ type CheckMetaPath<Path extends string> = Path extends `header.${infer Name}` ? Name extends "" ? WebhookKeyError<`empty header name`> : true : Path extends `webhook.${infer Rest}` ? PathValue<WebhookKeyMeta, Rest> extends WebhookKeyScalar ? true : WebhookKeyError<`unknown or non-scalar webhook meta path: ${Rest}`> : false;
24
+ type CheckNamespacedPath<TEvent, Path extends string, What extends string> = Path extends `event.${infer Rest}` ? CheckEventPath<TEvent, Rest> : CheckMetaPath<Path> extends false ? WebhookKeyError<`${What} paths start with event., header. or webhook.: ${Path}`> : CheckMetaPath<Path>;
25
+ type CheckMatchPath<TEvent, Path extends string> = CheckNamespacedPath<TEvent, Path, "match">;
26
+ type CheckKeyPathSingle<TEvent, Path extends string> = CheckNamespacedPath<TEvent, Path, "key">;
27
+ /**
28
+ * A webhook waiter's `match`: each key a path (`event.*` reads the event, `header.*` a header and
29
+ * `webhook.*` the endpoint), each value the scalar it must equal. A bad path turns that key's value
30
+ * type into an error naming it.
31
+ */
32
+ export type ValidatedWebhookMatch<TEvent, M> = {
33
+ [K in keyof M]: K extends string ? CheckMatchPath<TEvent, K> extends true ? M[K] : CheckMatchPath<TEvent, K> : never;
34
+ };
21
35
  declare const dEvt: unique symbol;
22
36
  export interface ChatEvent<TType extends string, TEvent> {
23
37
  id: string;
24
38
  type: TType;
25
39
  key: string;
40
+ /** The endpoint this event subscribes to (`webhooks.endpoint.define` id). */
41
+ endpointId: string;
26
42
  source: string;
27
- verifierArtifact: WebhookVerifierArtifact;
28
- secretProvisioning?: WebhookSecretProvisioning;
29
43
  filter?: string;
30
44
  readonly [dEvt]?: TEvent;
31
45
  }
@@ -35,7 +49,15 @@ export type ChatEventAction<W> = W extends ChatEvent<infer TType, infer TEvent>
35
49
  event: TEvent;
36
50
  source: string;
37
51
  headers: Record<string, string>;
52
+ /** The delivery's id (`whd_...`), as in the dashboard and the deliveries API. A replay gets a new one. */
38
53
  deliveryId: string;
54
+ /**
55
+ * The provider's id for the delivery (e.g. Stripe's `evt_...`), the same across replays.
56
+ * Absent on an action delivered by an older server.
57
+ */
58
+ externalDeliveryId?: string;
59
+ /** The endpoint the delivery arrived on. */
60
+ endpoint?: WebhookEndpointContext;
39
61
  } : never;
40
62
  export type ChatEventActions<TW extends readonly AnyChatEvent[]> = ChatEventAction<TW[number]>;
41
63
  export {};
@@ -16,6 +16,33 @@ export type WebhookSource<TEvent = unknown> = {
16
16
  [__webhookEvent]?: TEvent;
17
17
  };
18
18
  export type AnyWebhookSource = WebhookSource<any>;
19
+ declare const __endpointEvent: unique symbol;
20
+ /**
21
+ * A declared webhook endpoint (`webhooks.endpoint.define`): one provider URL that subscribers
22
+ * (`webhook()`, `chat.event`, channel connectors) and waiters attach to. The event type comes from
23
+ * the endpoint's source.
24
+ */
25
+ export type WebhookEndpoint<TEvent = unknown> = {
26
+ /** The declared endpoint id. */
27
+ id: string;
28
+ /** The source's provider tag, e.g. "stripe". */
29
+ source: string;
30
+ /** phantom, type-level only; never present at runtime */
31
+ [__endpointEvent]?: TEvent;
32
+ };
33
+ export type AnyWebhookEndpoint = WebhookEndpoint<any>;
34
+ /** What a webhook waiter resumes its run with. */
35
+ export type WebhookWaiterOutput<TEvent = unknown> = {
36
+ /** The verified event body. */
37
+ event: TEvent;
38
+ /** The inbound headers, curated as for `webhook()` (credentials dropped). */
39
+ headers: Record<string, string>;
40
+ /** The delivery's id (`whd_...`). */
41
+ deliveryId: string;
42
+ /** The endpoint the delivery arrived on. */
43
+ endpoint: WebhookEndpointContext;
44
+ };
45
+ export type InferWebhookEndpointEvent<E> = E extends WebhookEndpoint<infer TEvent> ? TEvent : unknown;
19
46
  export type InferWebhookEvent<S> = S extends WebhookSource<infer TEvent> ? TEvent : unknown;
20
47
  /**
21
48
  * The endpoint a delivery arrived on. `id` is the endpoint instance (`wh_...`); `declaredId` is the
@@ -1229,7 +1229,7 @@ export declare const webhookProviderConfigs: {
1229
1229
  };
1230
1230
  };
1231
1231
  shopify: {
1232
- secretProvisioning: "integrator";
1232
+ secretProvisioning: "provider";
1233
1233
  config: () => {
1234
1234
  scheme: "hmac";
1235
1235
  algorithm: "sha1" | "sha256";
@@ -1294,8 +1294,8 @@ export declare const webhookProviderConfigs: {
1294
1294
  };
1295
1295
  export type WebhookProviderId = keyof typeof webhookProviderConfigs;
1296
1296
  /**
1297
- * Setup instructions for an AI agent, per preset. SDK producers attach these as the source's
1298
- * `setupPrompt`; the platform wraps them with the endpoint URL, subscribers and secret steps.
1297
+ * Setup instructions for an AI agent, per preset or provider. SDK producers attach these as the
1298
+ * source's `setupPrompt`; the platform wraps them with the endpoint URL, subscribers and secret steps.
1299
1299
  */
1300
- export declare const webhookSetupPrompts: Partial<Record<WebhookPresetId, string>>;
1300
+ export declare const webhookSetupPrompts: Partial<Record<WebhookPresetId | WebhookProviderId, string>>;
1301
1301
  export * from "../schemas/webhookConfig.js";
@@ -159,6 +159,8 @@ function hmacVerifierConfig(opts) {
159
159
  }
160
160
  if (opts.idempotencyField)
161
161
  config.idempotencyField = opts.idempotencyField;
162
+ if (opts.formPayload)
163
+ config.formPayload = opts.formPayload;
162
164
  return config;
163
165
  }
164
166
  /**
@@ -177,6 +179,8 @@ exports.webhookProviderConfigs = {
177
179
  signingTemplate: "v0:{timestamp}:{body}",
178
180
  timestamp: { from: "header", name: "x-slack-request-timestamp" },
179
181
  toleranceSeconds: 300,
182
+ idempotencyField: { from: "body", name: "event_id" },
183
+ formPayload: { field: "payload" },
180
184
  }),
181
185
  },
182
186
  zoom: {
@@ -222,6 +226,7 @@ exports.webhookProviderConfigs = {
222
226
  header: "linear-signature",
223
227
  timestamp: { from: "body", path: "webhookTimestamp", unit: "milliseconds" },
224
228
  toleranceSeconds: 60,
229
+ idempotencyField: { from: "header", name: "linear-delivery" },
225
230
  }),
226
231
  },
227
232
  notion: {
@@ -291,10 +296,11 @@ exports.webhookProviderConfigs = {
291
296
  field: "d",
292
297
  signingTemplate: "{body}{timestamp}",
293
298
  timestamp: { from: "signatureField", field: "v", unit: "milliseconds" },
299
+ toleranceSeconds: 300,
294
300
  }),
295
301
  },
296
302
  shopify: {
297
- secretProvisioning: "integrator",
303
+ secretProvisioning: "provider",
298
304
  config: () => hmacVerifierConfig({ header: "x-shopify-hmac-sha256", encoding: "base64" }),
299
305
  },
300
306
  };
@@ -303,8 +309,8 @@ const svixFamilySetupPrompt = [
303
309
  "Add the webhook URL as an endpoint in the provider's webhook settings or through its API, subscribe it to the event types the subscribers' filters need, then read the endpoint's signing secret and store it on Trigger.dev.",
304
310
  ].join("\n");
305
311
  /**
306
- * Setup instructions for an AI agent, per preset. SDK producers attach these as the source's
307
- * `setupPrompt`; the platform wraps them with the endpoint URL, subscribers and secret steps.
312
+ * Setup instructions for an AI agent, per preset or provider. SDK producers attach these as the
313
+ * source's `setupPrompt`; the platform wraps them with the endpoint URL, subscribers and secret steps.
308
314
  */
309
315
  exports.webhookSetupPrompts = {
310
316
  stripe: [
@@ -325,6 +331,19 @@ exports.webhookSetupPrompts = {
325
331
  ].join("\n"),
326
332
  svix: svixFamilySetupPrompt,
327
333
  "standard-webhooks": svixFamilySetupPrompt,
334
+ discord: [
335
+ "These settings are in the Discord Developer Portal (https://discord.com/developers/applications); tell the user each step.",
336
+ "1. Open the application, then its Webhooks page. Set the Endpoint URL to the webhook URL, turn Events on and select the event types the subscribers need. Discord sends a PING that the endpoint answers once it is deployed.",
337
+ "2. The public key is on the application's General Information page, under Public Key.",
338
+ ].join("\n"),
339
+ shopify: [
340
+ "Shopify signs webhooks with the app's client secret, or for webhooks created in the store admin, with the key shown on that page.",
341
+ "For an app, add a subscription to shopify.app.toml and run `shopify app deploy`:",
342
+ ' [[webhooks.subscriptions]]\n topics = ["orders/create"]\n uri = "<webhook URL>"',
343
+ "or create it with the Admin API's webhookSubscriptionCreate mutation. The client secret is in the app's settings in the Shopify Dev Dashboard.",
344
+ "For a store without an app, add the webhook under Settings > Notifications > Webhooks in the store admin; the signing key is shown on that page.",
345
+ "Choose topics from the subscribers' filters, which compare `header.x-shopify-topic`, and use the JSON format.",
346
+ ].join("\n"),
328
347
  };
329
348
  __exportStar(require("../schemas/webhookConfig.js"), exports);
330
349
  //# sourceMappingURL=index.js.map