stitchkit 0.67.0 → 0.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/agent-runtime.js +5 -6
  2. package/dist/application/admission.d.ts +131 -0
  3. package/dist/application/admission.d.ts.map +1 -0
  4. package/dist/application/channel.d.ts +106 -0
  5. package/dist/application/channel.d.ts.map +1 -0
  6. package/dist/application/latest-sink.d.ts.map +1 -1
  7. package/dist/application-grammy.js +1 -1
  8. package/dist/application-opentelemetry.js +1 -1
  9. package/dist/application.d.ts +2 -0
  10. package/dist/application.d.ts.map +1 -1
  11. package/dist/application.js +386 -17
  12. package/dist/browser/client.d.ts +2 -3
  13. package/dist/browser/client.d.ts.map +1 -1
  14. package/dist/browser/contract-stream.d.ts +5 -0
  15. package/dist/browser/contract-stream.d.ts.map +1 -0
  16. package/dist/browser/http.d.ts +3 -0
  17. package/dist/browser/http.d.ts.map +1 -1
  18. package/dist/browser/stream.d.ts +4 -1
  19. package/dist/browser/stream.d.ts.map +1 -1
  20. package/dist/browser/transport.d.ts +3 -0
  21. package/dist/browser/transport.d.ts.map +1 -0
  22. package/dist/cli.js +6 -7
  23. package/dist/contract/define.d.ts +34 -2
  24. package/dist/contract/define.d.ts.map +1 -1
  25. package/dist/contract/errors.d.ts +4 -0
  26. package/dist/contract/errors.d.ts.map +1 -1
  27. package/dist/contract/index.d.ts +2 -1
  28. package/dist/contract/index.d.ts.map +1 -1
  29. package/dist/contract/index.js +5 -1
  30. package/dist/contract/stream.d.ts +19 -0
  31. package/dist/contract/stream.d.ts.map +1 -0
  32. package/dist/{index-xxye8j3k.js → index-0w9abg87.js} +4 -0
  33. package/dist/index-69m2278y.js +115 -0
  34. package/dist/{index-physbf4z.js → index-6wzr93cg.js} +1 -1
  35. package/dist/{index-1pgeyyee.js → index-7pn02bgv.js} +4 -6
  36. package/dist/index-9ky9hhg3.js +484 -0
  37. package/dist/{index-wrhf06ak.js → index-avjd67h6.js} +8 -8
  38. package/dist/{index-413xk7ga.js → index-cq9q73nf.js} +50 -1
  39. package/dist/{index-6taryy00.js → index-dafax5md.js} +1 -1
  40. package/dist/{index-8mxadm34.js → index-nymn7wbg.js} +1092 -19
  41. package/dist/{index-y91zd0ch.js → index-pr0qsmjy.js} +3 -2
  42. package/dist/index-v5bayx1z.js +138 -0
  43. package/dist/{index-mfw1pec7.js → index-wqyrvhzz.js} +3 -3
  44. package/dist/{index-svqhcrrj.js → index-zd4v31v2.js} +156 -10
  45. package/dist/{index-x8v8b7rc.js → index-zpyj7hsv.js} +330 -58
  46. package/dist/index.js +270 -105
  47. package/dist/internal/bounded-lines.d.ts +4 -0
  48. package/dist/internal/bounded-lines.d.ts.map +1 -0
  49. package/dist/node.d.ts +1 -0
  50. package/dist/node.d.ts.map +1 -1
  51. package/dist/node.js +11 -8
  52. package/dist/observability/index.js +6 -7
  53. package/dist/remote.js +5 -6
  54. package/dist/server/contract-stream.d.ts +5 -0
  55. package/dist/server/contract-stream.d.ts.map +1 -0
  56. package/dist/server/create.d.ts.map +1 -1
  57. package/dist/server/implement.d.ts.map +1 -1
  58. package/dist/server/index.d.ts +1 -0
  59. package/dist/server/index.d.ts.map +1 -1
  60. package/dist/server/index.js +41 -283
  61. package/dist/server/openapi.d.ts.map +1 -1
  62. package/dist/server/stream.d.ts +3 -1
  63. package/dist/server/stream.d.ts.map +1 -1
  64. package/dist/server/streaming-route.d.ts +2 -0
  65. package/dist/server/streaming-route.d.ts.map +1 -1
  66. package/dist/server/types.d.ts +13 -3
  67. package/dist/server/types.d.ts.map +1 -1
  68. package/dist/server/unix-client-body.d.ts +4 -0
  69. package/dist/server/unix-client-body.d.ts.map +1 -0
  70. package/dist/server/unix-client-bun.d.ts +13 -0
  71. package/dist/server/unix-client-bun.d.ts.map +1 -0
  72. package/dist/server/unix-client-error.d.ts +9 -0
  73. package/dist/server/unix-client-error.d.ts.map +1 -0
  74. package/dist/server/unix-client.d.ts +25 -0
  75. package/dist/server/unix-client.d.ts.map +1 -0
  76. package/dist/testing.js +6 -5
  77. package/dist/tools.js +14 -16
  78. package/llms-full.txt +337 -17
  79. package/package.json +1 -1
  80. package/dist/index-48ffdxgk.js +0 -6
  81. package/dist/index-pzyt11ch.js +0 -127
  82. package/dist/index-tvwcrx2d.js +0 -224
  83. package/dist/index-wd8g8z6e.js +0 -206
@@ -2,19 +2,279 @@ import {
2
2
  ApplicationIdSchema
3
3
  } from "./index-8eywc9zv.js";
4
4
 
5
- // src/application/latest-sink.ts
5
+ // src/application/channel.ts
6
6
  import { z } from "zod";
7
- var SnapshotRevisionSchema = z.number().int().nonnegative();
8
- var ApplicationSnapshotSinkStatusSchema = z.object({
9
- accepting: z.boolean(),
10
- received: z.number().int().nonnegative(),
11
- accepted: z.number().int().nonnegative(),
12
- rejected: z.number().int().nonnegative(),
7
+ var PositiveSafeIntegerSchema = z.number().int().positive().safe();
8
+ var BoundedChannelPolicySchema = z.enum(["ordered", "latest"]);
9
+ var BoundedChannelStateSchema = z.enum(["open", "draining", "closed", "failed"]);
10
+ var BoundedChannelSnapshotSchema = z.object({
11
+ state: BoundedChannelStateSchema,
12
+ policy: BoundedChannelPolicySchema,
13
+ queuedItems: z.number().int().nonnegative(),
14
+ queuedBytes: z.number().int().nonnegative(),
15
+ waitingReader: z.boolean(),
16
+ offered: z.number().int().nonnegative(),
13
17
  delivered: z.number().int().nonnegative(),
18
+ queued: z.number().int().nonnegative(),
14
19
  coalesced: z.number().int().nonnegative(),
15
- failed: z.number().int().nonnegative(),
16
- inFlight: z.boolean(),
17
- pending: z.boolean(),
20
+ refused: z.number().int().nonnegative(),
21
+ discarded: z.number().int().nonnegative()
22
+ }).strict().readonly();
23
+
24
+ class BoundedChannelReaderError extends Error {
25
+ constructor() {
26
+ super("A bounded channel permits only one pending next() call");
27
+ this.name = "BoundedChannelReaderError";
28
+ }
29
+ }
30
+ function createBoundedChannel(config) {
31
+ const policy = BoundedChannelPolicySchema.parse(config.policy);
32
+ const maxItems = PositiveSafeIntegerSchema.parse(config.maxItems);
33
+ const maxBytes = PositiveSafeIntegerSchema.parse(config.maxBytes);
34
+ const queue = [];
35
+ let state = "open";
36
+ let queuedBytes = 0;
37
+ let waiting;
38
+ let failure;
39
+ let hasFailure = false;
40
+ let offered = 0;
41
+ let delivered = 0;
42
+ let queued = 0;
43
+ let coalesced = 0;
44
+ let refused = 0;
45
+ let discarded = 0;
46
+ const removeAbortListener = () => {
47
+ config.signal?.removeEventListener("abort", abortChannel);
48
+ };
49
+ const snapshot = () => BoundedChannelSnapshotSchema.parse({
50
+ state,
51
+ policy,
52
+ queuedItems: queue.length,
53
+ queuedBytes,
54
+ waitingReader: waiting !== undefined,
55
+ offered,
56
+ delivered,
57
+ queued,
58
+ coalesced,
59
+ refused,
60
+ discarded
61
+ });
62
+ const clearQueue = () => {
63
+ discarded += queue.length;
64
+ queue.length = 0;
65
+ queuedBytes = 0;
66
+ };
67
+ const settleClosed = () => {
68
+ if (state !== "draining" || queue.length > 0)
69
+ return;
70
+ state = "closed";
71
+ removeAbortListener();
72
+ const reader = waiting;
73
+ waiting = undefined;
74
+ reader?.resolve({ done: true, value: undefined });
75
+ };
76
+ const close = (options = {}) => {
77
+ if (state === "closed" || state === "failed")
78
+ return snapshot();
79
+ const mode = options.mode ?? "drain";
80
+ if (mode !== "drain" && mode !== "discard") {
81
+ throw new TypeError("Bounded channel close mode must be drain or discard");
82
+ }
83
+ if (mode === "discard") {
84
+ clearQueue();
85
+ state = "closed";
86
+ removeAbortListener();
87
+ const reader = waiting;
88
+ waiting = undefined;
89
+ reader?.resolve({ done: true, value: undefined });
90
+ return snapshot();
91
+ }
92
+ state = "draining";
93
+ settleClosed();
94
+ return snapshot();
95
+ };
96
+ function abortChannel() {
97
+ close({ mode: "discard" });
98
+ }
99
+ const channel = {
100
+ [Symbol.asyncIterator]() {
101
+ return channel;
102
+ },
103
+ offer(value) {
104
+ offered += 1;
105
+ if (state !== "open") {
106
+ refused += 1;
107
+ return { outcome: "refused", reason: "not-open" };
108
+ }
109
+ const bytes = config.sizeOf(value);
110
+ if (!Number.isSafeInteger(bytes) || bytes < 0) {
111
+ throw new TypeError("Bounded channel sizeOf() must return a non-negative safe integer");
112
+ }
113
+ if (bytes > maxBytes) {
114
+ refused += 1;
115
+ return { outcome: "refused", reason: "item-too-large" };
116
+ }
117
+ const reader = waiting;
118
+ if (reader) {
119
+ waiting = undefined;
120
+ delivered += 1;
121
+ reader.resolve({ done: false, value });
122
+ return { outcome: "delivered" };
123
+ }
124
+ if (policy === "latest" && queue.length > 0) {
125
+ const previous = queue[0];
126
+ if (!previous)
127
+ throw new Error("Bounded latest channel lost its pending value");
128
+ queue[0] = { value, bytes };
129
+ queuedBytes += bytes - previous.bytes;
130
+ coalesced += 1;
131
+ return { outcome: "coalesced", replaced: 1 };
132
+ }
133
+ if (queue.length >= maxItems) {
134
+ refused += 1;
135
+ return { outcome: "refused", reason: "item-capacity" };
136
+ }
137
+ if (queuedBytes + bytes > maxBytes) {
138
+ refused += 1;
139
+ return { outcome: "refused", reason: "byte-capacity" };
140
+ }
141
+ queue.push({ value, bytes });
142
+ queuedBytes += bytes;
143
+ queued += 1;
144
+ return { outcome: "queued" };
145
+ },
146
+ next() {
147
+ if (hasFailure)
148
+ return Promise.reject(failure);
149
+ const next = queue.shift();
150
+ if (next) {
151
+ queuedBytes -= next.bytes;
152
+ delivered += 1;
153
+ settleClosed();
154
+ return Promise.resolve({ done: false, value: next.value });
155
+ }
156
+ if (state === "closed" || state === "draining") {
157
+ settleClosed();
158
+ return Promise.resolve({ done: true, value: undefined });
159
+ }
160
+ if (waiting)
161
+ return Promise.reject(new BoundedChannelReaderError);
162
+ return new Promise((resolve, reject) => {
163
+ waiting = { resolve, reject };
164
+ });
165
+ },
166
+ return() {
167
+ close({ mode: "discard" });
168
+ return Promise.resolve({ done: true, value: undefined });
169
+ },
170
+ throw(error) {
171
+ channel.fail(error);
172
+ return Promise.reject(error);
173
+ },
174
+ close,
175
+ fail(error) {
176
+ if (state === "closed" || state === "failed")
177
+ return snapshot();
178
+ failure = error;
179
+ hasFailure = true;
180
+ state = "failed";
181
+ clearQueue();
182
+ removeAbortListener();
183
+ const reader = waiting;
184
+ waiting = undefined;
185
+ reader?.reject(error);
186
+ return snapshot();
187
+ },
188
+ getSnapshot: snapshot
189
+ };
190
+ if (config.signal?.aborted)
191
+ abortChannel();
192
+ else
193
+ config.signal?.addEventListener("abort", abortChannel, { once: true });
194
+ return channel;
195
+ }
196
+ var CreditWindowSnapshotSchema = z.object({
197
+ state: z.enum(["open", "closed"]),
198
+ capacityBytes: PositiveSafeIntegerSchema,
199
+ availableBytes: z.number().int().nonnegative(),
200
+ leasedBytes: z.number().int().nonnegative(),
201
+ acquired: z.number().int().nonnegative(),
202
+ refused: z.number().int().nonnegative(),
203
+ replenishedBytes: z.number().int().nonnegative()
204
+ }).strict().readonly();
205
+ function createCreditWindow(config) {
206
+ const capacityBytes = PositiveSafeIntegerSchema.parse(config.capacityBytes);
207
+ let availableBytes = capacityBytes;
208
+ let state = "open";
209
+ let acquired = 0;
210
+ let refused = 0;
211
+ let replenishedBytes = 0;
212
+ const snapshot = () => CreditWindowSnapshotSchema.parse({
213
+ state,
214
+ capacityBytes,
215
+ availableBytes,
216
+ leasedBytes: capacityBytes - availableBytes,
217
+ acquired,
218
+ refused,
219
+ replenishedBytes
220
+ });
221
+ return {
222
+ acquire(bytes) {
223
+ const requested = PositiveSafeIntegerSchema.parse(bytes);
224
+ if (state === "closed") {
225
+ refused += 1;
226
+ return { outcome: "refused", reason: "closed" };
227
+ }
228
+ if (requested > capacityBytes) {
229
+ refused += 1;
230
+ return { outcome: "refused", reason: "larger-than-window" };
231
+ }
232
+ if (requested > availableBytes) {
233
+ refused += 1;
234
+ return { outcome: "refused", reason: "insufficient-credit" };
235
+ }
236
+ availableBytes -= requested;
237
+ acquired += 1;
238
+ let leaseReleased = false;
239
+ const lease = {
240
+ bytes: requested,
241
+ get released() {
242
+ return leaseReleased;
243
+ },
244
+ release() {
245
+ if (leaseReleased)
246
+ return;
247
+ leaseReleased = true;
248
+ availableBytes += requested;
249
+ replenishedBytes += requested;
250
+ if (availableBytes > capacityBytes) {
251
+ throw new Error("Credit window accounting exceeded its capacity");
252
+ }
253
+ }
254
+ };
255
+ return { outcome: "leased", lease };
256
+ },
257
+ close() {
258
+ state = "closed";
259
+ return snapshot();
260
+ },
261
+ getSnapshot: snapshot
262
+ };
263
+ }
264
+
265
+ // src/application/latest-sink.ts
266
+ import { z as z2 } from "zod";
267
+ var SnapshotRevisionSchema = z2.number().int().nonnegative();
268
+ var ApplicationSnapshotSinkStatusSchema = z2.object({
269
+ accepting: z2.boolean(),
270
+ received: z2.number().int().nonnegative(),
271
+ accepted: z2.number().int().nonnegative(),
272
+ rejected: z2.number().int().nonnegative(),
273
+ delivered: z2.number().int().nonnegative(),
274
+ coalesced: z2.number().int().nonnegative(),
275
+ failed: z2.number().int().nonnegative(),
276
+ inFlight: z2.boolean(),
277
+ pending: z2.boolean(),
18
278
  lastAcceptedRevision: SnapshotRevisionSchema.optional(),
19
279
  lastDeliveredRevision: SnapshotRevisionSchema.optional()
20
280
  }).strict().readonly();
@@ -29,9 +289,14 @@ function createApplicationSnapshotSink(config) {
29
289
  let lastAcceptedRevision;
30
290
  let lastDeliveredRevision;
31
291
  let inFlight;
32
- let pending;
33
292
  let closePromise;
34
293
  let resolveClose;
294
+ const pending = createBoundedChannel({
295
+ policy: "latest",
296
+ maxItems: 1,
297
+ maxBytes: 1,
298
+ sizeOf: () => 1
299
+ });
35
300
  const getStatus = () => ApplicationSnapshotSinkStatusSchema.parse({
36
301
  accepting,
37
302
  received,
@@ -41,7 +306,7 @@ function createApplicationSnapshotSink(config) {
41
306
  coalesced,
42
307
  failed,
43
308
  inFlight: inFlight !== undefined,
44
- pending: pending !== undefined,
309
+ pending: pending.getSnapshot().queuedItems > 0,
45
310
  ...lastAcceptedRevision !== undefined && { lastAcceptedRevision },
46
311
  ...lastDeliveredRevision !== undefined && { lastDeliveredRevision }
47
312
  });
@@ -53,7 +318,7 @@ function createApplicationSnapshotSink(config) {
53
318
  });
54
319
  };
55
320
  const settleCloseIfIdle = () => {
56
- if (accepting || inFlight || pending || !resolveClose)
321
+ if (accepting || inFlight || pending.getSnapshot().queuedItems > 0 || !resolveClose)
57
322
  return;
58
323
  const resolve = resolveClose;
59
324
  resolveClose = undefined;
@@ -67,13 +332,19 @@ function createApplicationSnapshotSink(config) {
67
332
  failed += 1;
68
333
  reportFailure(error, snapshot);
69
334
  }).finally(() => {
70
- inFlight = undefined;
71
- const next = pending;
72
- pending = undefined;
73
- if (next)
74
- startWrite(next);
75
- else
335
+ if (pending.getSnapshot().queuedItems > 0) {
336
+ pending.next().then((next) => {
337
+ if (next.done) {
338
+ inFlight = undefined;
339
+ settleCloseIfIdle();
340
+ } else {
341
+ startWrite(next.value);
342
+ }
343
+ });
344
+ } else {
345
+ inFlight = undefined;
76
346
  settleCloseIfIdle();
347
+ }
77
348
  });
78
349
  inFlight = write;
79
350
  };
@@ -90,9 +361,9 @@ function createApplicationSnapshotSink(config) {
90
361
  if (!inFlight) {
91
362
  startWrite(snapshot);
92
363
  } else {
93
- if (pending)
94
- coalesced += 1;
95
- pending = snapshot;
364
+ const offered = pending.offer(snapshot);
365
+ if (offered.outcome === "coalesced")
366
+ coalesced += offered.replaced;
96
367
  }
97
368
  return true;
98
369
  },
@@ -101,6 +372,7 @@ function createApplicationSnapshotSink(config) {
101
372
  if (closePromise)
102
373
  return closePromise;
103
374
  accepting = false;
375
+ pending.close({ mode: "drain" });
104
376
  closePromise = new Promise((resolve) => {
105
377
  resolveClose = resolve;
106
378
  settleCloseIfIdle();
@@ -111,34 +383,34 @@ function createApplicationSnapshotSink(config) {
111
383
  }
112
384
 
113
385
  // src/application/activity.ts
114
- import { z as z2 } from "zod";
115
- var BoundedOperationalIdSchema = z2.string().min(1).max(64).regex(/^[a-zA-Z0-9][a-zA-Z0-9._:-]*$/);
116
- var NonNegativeIntegerSchema = z2.number().int().nonnegative();
386
+ import { z as z3 } from "zod";
387
+ var BoundedOperationalIdSchema = z3.string().min(1).max(64).regex(/^[a-zA-Z0-9][a-zA-Z0-9._:-]*$/);
388
+ var NonNegativeIntegerSchema = z3.number().int().nonnegative();
117
389
  var ActivityIdSchema = BoundedOperationalIdSchema;
118
390
  var ActivityStageIdSchema = BoundedOperationalIdSchema;
119
- var ActivityStageSnapshotSchema = z2.object({
391
+ var ActivityStageSnapshotSchema = z3.object({
120
392
  id: ActivityStageIdSchema,
121
393
  active: NonNegativeIntegerSchema,
122
394
  queued: NonNegativeIntegerSchema,
123
395
  completed: NonNegativeIntegerSchema,
124
396
  failed: NonNegativeIntegerSchema
125
397
  }).strict().readonly();
126
- var ActivityTotalsSchema = z2.object({
398
+ var ActivityTotalsSchema = z3.object({
127
399
  active: NonNegativeIntegerSchema,
128
400
  queued: NonNegativeIntegerSchema,
129
401
  completed: NonNegativeIntegerSchema,
130
402
  failed: NonNegativeIntegerSchema
131
403
  }).strict().readonly();
132
- var ActivitySnapshotSchema = z2.object({
404
+ var ActivitySnapshotSchema = z3.object({
133
405
  id: ActivityIdSchema,
134
- epoch: z2.string().uuid(),
406
+ epoch: z3.string().uuid(),
135
407
  revision: NonNegativeIntegerSchema,
136
- capturedAt: z2.string().datetime({ offset: true }),
137
- changedAt: z2.string().datetime({ offset: true }),
138
- stages: z2.array(ActivityStageSnapshotSchema).min(1).max(64).readonly(),
408
+ capturedAt: z3.string().datetime({ offset: true }),
409
+ changedAt: z3.string().datetime({ offset: true }),
410
+ stages: z3.array(ActivityStageSnapshotSchema).min(1).max(64).readonly(),
139
411
  totals: ActivityTotalsSchema
140
412
  }).strict().readonly();
141
- var ActivityLiveStateSchema = z2.enum(["active", "queued"]);
413
+ var ActivityLiveStateSchema = z3.enum(["active", "queued"]);
142
414
  var ActivityTokenBrand = Symbol("stitchkit.application.activity");
143
415
  function emptyCounters() {
144
416
  return { active: 0, queued: 0, completed: 0, failed: 0 };
@@ -153,12 +425,12 @@ function totalsOf(stages) {
153
425
  }
154
426
  function createActivityProjection(config) {
155
427
  const id = ActivityIdSchema.parse(config.id);
156
- const declaredStages = z2.array(ActivityStageIdSchema).min(1).max(64).parse(config.stages);
428
+ const declaredStages = z3.array(ActivityStageIdSchema).min(1).max(64).parse(config.stages);
157
429
  const uniqueStages = new Set(declaredStages);
158
430
  if (uniqueStages.size !== declaredStages.length) {
159
431
  throw new Error("[stitchkit] createActivityProjection: stage ids must be unique");
160
432
  }
161
- const epoch = z2.string().uuid().parse(config.epoch ?? crypto.randomUUID());
433
+ const epoch = z3.string().uuid().parse(config.epoch ?? crypto.randomUUID());
162
434
  const now = config.now ?? (() => new Date);
163
435
  const counters = new Map(declaredStages.map((stage) => [stage, emptyCounters()]));
164
436
  const activities = new WeakMap;
@@ -263,42 +535,42 @@ function createActivityProjection(config) {
263
535
  }
264
536
 
265
537
  // src/application/schedule.ts
266
- import { z as z3 } from "zod";
267
- var NonNegativeSafeIntegerSchema = z3.number().int().nonnegative().refine(Number.isSafeInteger, "Expected a safe integer");
268
- var PositiveSafeIntegerSchema = NonNegativeSafeIntegerSchema.refine((value) => value > 0, "Expected a positive integer");
269
- var ManagedScheduleOverlapSchema = z3.discriminatedUnion("mode", [
270
- z3.object({ mode: z3.literal("skip") }).readonly(),
271
- z3.object({ mode: z3.literal("queue-one") }).readonly(),
272
- z3.object({
273
- mode: z3.literal("parallel"),
274
- maxConcurrent: PositiveSafeIntegerSchema
538
+ import { z as z4 } from "zod";
539
+ var NonNegativeSafeIntegerSchema = z4.number().int().nonnegative().refine(Number.isSafeInteger, "Expected a safe integer");
540
+ var PositiveSafeIntegerSchema2 = NonNegativeSafeIntegerSchema.refine((value) => value > 0, "Expected a positive integer");
541
+ var ManagedScheduleOverlapSchema = z4.discriminatedUnion("mode", [
542
+ z4.object({ mode: z4.literal("skip") }).readonly(),
543
+ z4.object({ mode: z4.literal("queue-one") }).readonly(),
544
+ z4.object({
545
+ mode: z4.literal("parallel"),
546
+ maxConcurrent: PositiveSafeIntegerSchema2
275
547
  }).readonly()
276
548
  ]);
277
- var ManagedScheduleErrorPolicySchema = z3.enum(["continue", "stop-schedule"]);
278
- var ManagedScheduleDescriptorSchema = z3.object({
549
+ var ManagedScheduleErrorPolicySchema = z4.enum(["continue", "stop-schedule"]);
550
+ var ManagedScheduleDescriptorSchema = z4.object({
279
551
  id: ApplicationIdSchema,
280
- everyMs: PositiveSafeIntegerSchema,
552
+ everyMs: PositiveSafeIntegerSchema2,
281
553
  startAfterMs: NonNegativeSafeIntegerSchema,
282
554
  overlap: ManagedScheduleOverlapSchema,
283
555
  errorPolicy: ManagedScheduleErrorPolicySchema
284
556
  }).readonly();
285
- var ManagedScheduleStatusSchema = z3.object({
557
+ var ManagedScheduleStatusSchema = z4.object({
286
558
  descriptor: ManagedScheduleDescriptorSchema,
287
- state: z3.enum(["inactive", "scheduled", "running", "draining", "stopped"]),
559
+ state: z4.enum(["inactive", "scheduled", "running", "draining", "stopped"]),
288
560
  revision: NonNegativeSafeIntegerSchema,
289
- capturedAt: z3.string().datetime({ offset: true }),
290
- changedAt: z3.string().datetime({ offset: true }),
291
- accepting: z3.boolean(),
561
+ capturedAt: z4.string().datetime({ offset: true }),
562
+ changedAt: z4.string().datetime({ offset: true }),
563
+ accepting: z4.boolean(),
292
564
  active: NonNegativeSafeIntegerSchema,
293
- queued: z3.boolean(),
565
+ queued: z4.boolean(),
294
566
  runsStarted: NonNegativeSafeIntegerSchema,
295
567
  runsCompleted: NonNegativeSafeIntegerSchema,
296
568
  runsFailed: NonNegativeSafeIntegerSchema,
297
569
  ticksSkipped: NonNegativeSafeIntegerSchema,
298
- nextRunAt: z3.string().datetime({ offset: true }).nullable(),
299
- lastScheduledAt: z3.string().datetime({ offset: true }).nullable(),
300
- lastStartedAt: z3.string().datetime({ offset: true }).nullable(),
301
- lastFinishedAt: z3.string().datetime({ offset: true }).nullable()
570
+ nextRunAt: z4.string().datetime({ offset: true }).nullable(),
571
+ lastScheduledAt: z4.string().datetime({ offset: true }).nullable(),
572
+ lastStartedAt: z4.string().datetime({ offset: true }).nullable(),
573
+ lastFinishedAt: z4.string().datetime({ offset: true }).nullable()
302
574
  }).readonly();
303
575
  var systemClock = {
304
576
  now: () => performance.now(),
@@ -557,4 +829,4 @@ function createManagedSchedule(config) {
557
829
  };
558
830
  }
559
831
 
560
- export { ApplicationSnapshotSinkStatusSchema, createApplicationSnapshotSink, ActivityIdSchema, ActivityStageIdSchema, ActivityStageSnapshotSchema, ActivitySnapshotSchema, ActivityLiveStateSchema, ActivityTokenBrand, createActivityProjection, ManagedScheduleOverlapSchema, ManagedScheduleErrorPolicySchema, ManagedScheduleDescriptorSchema, ManagedScheduleStatusSchema, createManagedSchedule };
832
+ export { BoundedChannelPolicySchema, BoundedChannelStateSchema, BoundedChannelSnapshotSchema, BoundedChannelReaderError, createBoundedChannel, CreditWindowSnapshotSchema, createCreditWindow, ApplicationSnapshotSinkStatusSchema, createApplicationSnapshotSink, ActivityIdSchema, ActivityStageIdSchema, ActivityStageSnapshotSchema, ActivitySnapshotSchema, ActivityLiveStateSchema, ActivityTokenBrand, createActivityProjection, ManagedScheduleOverlapSchema, ManagedScheduleErrorPolicySchema, ManagedScheduleDescriptorSchema, ManagedScheduleStatusSchema, createManagedSchedule };