toolroll 0.9.41 → 0.9.43

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 (89) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/chat-actions.js +1 -1
  3. package/dist/chat-approval.d.ts +45 -0
  4. package/dist/chat-approval.js +81 -0
  5. package/dist/chat-channel.js +5 -0
  6. package/dist/chat-decide.d.ts +18 -6
  7. package/dist/chat-decide.js +54 -20
  8. package/dist/chat-flow.js +2 -2
  9. package/dist/cli.js +4 -2
  10. package/dist/coding-types.d.ts +2 -24
  11. package/dist/coding-workspace.js +12 -11
  12. package/dist/contracts/cli.d.ts +736 -0
  13. package/dist/contracts/cli.js +223 -0
  14. package/dist/contracts/coding-activity.d.ts +64 -0
  15. package/dist/contracts/coding-activity.js +58 -0
  16. package/dist/contracts/console-api.d.ts +484 -0
  17. package/dist/contracts/console-api.js +274 -0
  18. package/dist/contracts/diff-stat.d.ts +58 -0
  19. package/dist/contracts/diff-stat.js +59 -0
  20. package/dist/contracts/integration-metadata.d.ts +99 -0
  21. package/dist/contracts/integration-metadata.js +101 -0
  22. package/dist/contracts/lead-tools.d.ts +11 -0
  23. package/dist/contracts/lead-tools.js +2 -0
  24. package/dist/contracts/model-catalog.d.ts +21 -0
  25. package/dist/contracts/model-catalog.js +14 -0
  26. package/dist/contracts/native-census.d.ts +42 -0
  27. package/dist/contracts/native-census.js +36 -0
  28. package/dist/contracts/observation-request.d.ts +37 -0
  29. package/dist/contracts/observation-request.js +25 -0
  30. package/dist/contracts/provider.d.ts +30 -0
  31. package/dist/contracts/provider.js +15 -0
  32. package/dist/contracts/recipes.d.ts +166 -0
  33. package/dist/contracts/recipes.js +52 -0
  34. package/dist/contracts/retention.d.ts +42 -0
  35. package/dist/contracts/retention.js +24 -0
  36. package/dist/contracts/storage.d.ts +23 -0
  37. package/dist/contracts/storage.js +10 -0
  38. package/dist/contracts/store-json.d.ts +315 -0
  39. package/dist/contracts/store-json.js +196 -0
  40. package/dist/contracts/trigger-payloads.d.ts +369 -0
  41. package/dist/contracts/trigger-payloads.js +144 -0
  42. package/dist/contracts/update-journal.d.ts +254 -0
  43. package/dist/contracts/update-journal.js +155 -0
  44. package/dist/contracts/verification-view.d.ts +93 -0
  45. package/dist/contracts/verification-view.js +43 -0
  46. package/dist/control-setup.d.ts +1 -1
  47. package/dist/desktop-update.d.ts +7 -40
  48. package/dist/desktop-update.js +36 -8
  49. package/dist/evidence.d.ts +3 -19
  50. package/dist/flow-engine.d.ts +2 -0
  51. package/dist/flow-engine.js +10 -2
  52. package/dist/flow-triggers.js +61 -60
  53. package/dist/flows-cli.d.ts +28 -0
  54. package/dist/flows-cli.js +43 -1
  55. package/dist/guides.js +2 -0
  56. package/dist/mate-contract.js +1 -1
  57. package/dist/mate-tools.js +43 -1
  58. package/dist/mcp-connect.js +37 -22
  59. package/dist/model-catalog.js +8 -6
  60. package/dist/observations.d.ts +2 -6
  61. package/dist/observations.js +13 -9
  62. package/dist/operate.js +55 -4
  63. package/dist/process-recovery-eligibility.d.ts +1 -1
  64. package/dist/process-recovery-native.d.ts +2 -13
  65. package/dist/process-recovery-native.js +8 -5
  66. package/dist/project-tools.d.ts +6 -24
  67. package/dist/project-tools.js +22 -18
  68. package/dist/provider.d.ts +3 -8
  69. package/dist/provider.js +15 -11
  70. package/dist/recipes.d.ts +3 -28
  71. package/dist/recipes.js +79 -52
  72. package/dist/retention.d.ts +4 -5
  73. package/dist/retention.js +5 -4
  74. package/dist/scope.d.ts +4 -2
  75. package/dist/serve.js +193 -30
  76. package/dist/storage.d.ts +2 -1
  77. package/dist/storage.js +12 -9
  78. package/dist/store.d.ts +11 -16
  79. package/dist/store.js +122 -160
  80. package/dist/surface.d.ts +6 -54
  81. package/dist/surface.js +10 -2
  82. package/dist/teammate-work.js +1 -1
  83. package/dist/telegram-flow.d.ts +41 -1
  84. package/dist/telegram-flow.js +96 -12
  85. package/dist/telegram.js +27 -3
  86. package/dist/toolroll-update.d.ts +8 -99
  87. package/dist/toolroll-update.js +28 -18
  88. package/dist/verification-evidence.js +27 -12
  89. package/package.json +1 -1
@@ -0,0 +1,736 @@
1
+ /**
2
+ * The CLI's machine contract (docs/plans/zod-revamp.md, item 14): one schema for the `--json` envelope, one for each
3
+ * declared command's answer, and one for a row of the declared command guide that `contract --commands` dumps.
4
+ *
5
+ * Answers are what Toolroll writes and consumers are told to ignore keys they don't recognize, so every object here is
6
+ * loose. A command answers with its own success shape or a refusal (`ok: false` with a stable `reason`). The commands
7
+ * named in COMMAND_OUTPUTS describe their top-level fields; every other declared command is held to the envelope with
8
+ * its own `command` name. An answer that disagrees is logged on stderr and written exactly as it was: the check never
9
+ * changes, reorders or refuses the bytes a command writes.
10
+ */
11
+ import { z } from "zod";
12
+ import { type EnvelopePayload } from "../envelope.js";
13
+ /** Every `--json` answer: `envelopeVersion` first, then `ok` and `command`; a refusal adds `reason` and `message`. */
14
+ export declare const envelopeSchema: z.ZodObject<{
15
+ envelopeVersion: z.ZodLiteral<1>;
16
+ ok: z.ZodBoolean;
17
+ command: z.ZodString;
18
+ reason: z.ZodOptional<z.ZodString>;
19
+ message: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$loose>;
21
+ export type Envelope = z.infer<typeof envelopeSchema>;
22
+ export declare const commandFlagSchema: z.ZodReadonly<z.ZodObject<{
23
+ name: z.ZodString;
24
+ takesValue: z.ZodBoolean;
25
+ meaning: z.ZodString;
26
+ }, z.core.$loose>>;
27
+ export type CommandFlag = z.infer<typeof commandFlagSchema>;
28
+ export declare const commandRowSchema: z.ZodReadonly<z.ZodObject<{
29
+ invocation: z.ZodString;
30
+ envelopeCommand: z.ZodOptional<z.ZodString>;
31
+ synopsis: z.ZodString;
32
+ audience: z.ZodEnum<{
33
+ agent: "agent";
34
+ operator: "operator";
35
+ }>;
36
+ agentMayInvoke: z.ZodBoolean;
37
+ mutation: z.ZodEnum<{
38
+ "identity-idempotent": "identity-idempotent";
39
+ keyed: "keyed";
40
+ none: "none";
41
+ unkeyed: "unkeyed";
42
+ }>;
43
+ positionals: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
44
+ name: z.ZodString;
45
+ required: z.ZodBoolean;
46
+ meaning: z.ZodString;
47
+ }, z.core.$loose>>>>>;
48
+ flags: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
49
+ name: z.ZodString;
50
+ takesValue: z.ZodBoolean;
51
+ meaning: z.ZodString;
52
+ }, z.core.$loose>>>>>;
53
+ notableReasons: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
54
+ inputSchema: z.ZodOptional<z.ZodCustom<{
55
+ type: 'object';
56
+ additionalProperties: false;
57
+ required: readonly string[];
58
+ properties: Record<string, {
59
+ type: 'string' | 'integer' | readonly ['string', 'null'];
60
+ minLength?: number;
61
+ maxLength?: number;
62
+ pattern?: string;
63
+ minimum?: number;
64
+ maximum?: number;
65
+ maxBytes?: number;
66
+ nonblank?: boolean;
67
+ const?: number;
68
+ }>;
69
+ }, {
70
+ type: 'object';
71
+ additionalProperties: false;
72
+ required: readonly string[];
73
+ properties: Record<string, {
74
+ type: 'string' | 'integer' | readonly ['string', 'null'];
75
+ minLength?: number;
76
+ maxLength?: number;
77
+ pattern?: string;
78
+ minimum?: number;
79
+ maximum?: number;
80
+ maxBytes?: number;
81
+ nonblank?: boolean;
82
+ const?: number;
83
+ }>;
84
+ }>>;
85
+ }, z.core.$loose>>;
86
+ export type CommandRow = z.infer<typeof commandRowSchema>;
87
+ /**
88
+ * The commands whose answers name their fields: the most-used ones (contract, the no-verb scan, status,
89
+ * integrations, task, flows, ready) and the plain lists. Keyed by the envelope's `command`.
90
+ */
91
+ export declare const COMMAND_OUTPUTS: {
92
+ readonly contract: z.ZodUnion<readonly [z.ZodObject<{
93
+ envelopeVersion: z.ZodLiteral<1>;
94
+ ok: z.ZodLiteral<true>;
95
+ command: z.ZodLiteral<"contract">;
96
+ capabilities: z.ZodArray<z.ZodString>;
97
+ }, z.core.$loose>, z.ZodObject<{
98
+ envelopeVersion: z.ZodLiteral<1>;
99
+ ok: z.ZodLiteral<true>;
100
+ command: z.ZodLiteral<"contract">;
101
+ schemaVersion: z.ZodNumber;
102
+ notes: z.ZodRecord<z.ZodString, z.ZodString>;
103
+ commands: z.ZodArray<z.ZodReadonly<z.ZodObject<{
104
+ invocation: z.ZodString;
105
+ envelopeCommand: z.ZodOptional<z.ZodString>;
106
+ synopsis: z.ZodString;
107
+ audience: z.ZodEnum<{
108
+ agent: "agent";
109
+ operator: "operator";
110
+ }>;
111
+ agentMayInvoke: z.ZodBoolean;
112
+ mutation: z.ZodEnum<{
113
+ "identity-idempotent": "identity-idempotent";
114
+ keyed: "keyed";
115
+ none: "none";
116
+ unkeyed: "unkeyed";
117
+ }>;
118
+ positionals: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
119
+ name: z.ZodString;
120
+ required: z.ZodBoolean;
121
+ meaning: z.ZodString;
122
+ }, z.core.$loose>>>>>;
123
+ flags: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
124
+ name: z.ZodString;
125
+ takesValue: z.ZodBoolean;
126
+ meaning: z.ZodString;
127
+ }, z.core.$loose>>>>>;
128
+ notableReasons: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
129
+ inputSchema: z.ZodOptional<z.ZodCustom<{
130
+ type: 'object';
131
+ additionalProperties: false;
132
+ required: readonly string[];
133
+ properties: Record<string, {
134
+ type: 'string' | 'integer' | readonly ['string', 'null'];
135
+ minLength?: number;
136
+ maxLength?: number;
137
+ pattern?: string;
138
+ minimum?: number;
139
+ maximum?: number;
140
+ maxBytes?: number;
141
+ nonblank?: boolean;
142
+ const?: number;
143
+ }>;
144
+ }, {
145
+ type: 'object';
146
+ additionalProperties: false;
147
+ required: readonly string[];
148
+ properties: Record<string, {
149
+ type: 'string' | 'integer' | readonly ['string', 'null'];
150
+ minLength?: number;
151
+ maxLength?: number;
152
+ pattern?: string;
153
+ minimum?: number;
154
+ maximum?: number;
155
+ maxBytes?: number;
156
+ nonblank?: boolean;
157
+ const?: number;
158
+ }>;
159
+ }>>;
160
+ }, z.core.$loose>>>;
161
+ }, z.core.$loose>, z.ZodObject<{
162
+ envelopeVersion: z.ZodLiteral<1>;
163
+ ok: z.ZodLiteral<false>;
164
+ command: z.ZodLiteral<"contract">;
165
+ reason: z.ZodString;
166
+ message: z.ZodOptional<z.ZodString>;
167
+ }, z.core.$loose>]>;
168
+ readonly scan: z.ZodDiscriminatedUnion<[z.ZodObject<{
169
+ envelopeVersion: z.ZodLiteral<1>;
170
+ ok: z.ZodLiteral<true>;
171
+ command: z.ZodLiteral<"scan">;
172
+ scannedAt: z.ZodString;
173
+ roots: z.ZodArray<z.ZodString>;
174
+ missingRoots: z.ZodArray<z.ZodString>;
175
+ remoteRead: z.ZodBoolean;
176
+ repos: z.ZodArray<z.ZodObject<{
177
+ path: z.ZodString;
178
+ name: z.ZodString;
179
+ }, z.core.$loose>>;
180
+ }, z.core.$loose>, z.ZodObject<{
181
+ envelopeVersion: z.ZodLiteral<1>;
182
+ ok: z.ZodLiteral<false>;
183
+ command: z.ZodLiteral<"scan">;
184
+ reason: z.ZodString;
185
+ message: z.ZodOptional<z.ZodString>;
186
+ }, z.core.$loose>], "ok">;
187
+ readonly status: z.ZodDiscriminatedUnion<[z.ZodObject<{
188
+ envelopeVersion: z.ZodLiteral<1>;
189
+ ok: z.ZodLiteral<true>;
190
+ command: z.ZodLiteral<"status">;
191
+ generatedAt: z.ZodString;
192
+ running: z.ZodObject<{
193
+ count: z.ZodNumber;
194
+ phases: z.ZodArray<z.ZodObject<{
195
+ phase: z.ZodString;
196
+ count: z.ZodNumber;
197
+ }, z.core.$loose>>;
198
+ tasks: z.ZodArray<z.ZodObject<{
199
+ task: z.ZodString;
200
+ run: z.ZodNumber;
201
+ phase: z.ZodString;
202
+ }, z.core.$loose>>;
203
+ }, z.core.$loose>;
204
+ queued: z.ZodObject<{
205
+ count: z.ZodNumber;
206
+ reasons: z.ZodArray<z.ZodObject<{
207
+ reason: z.ZodString;
208
+ count: z.ZodNumber;
209
+ }, z.core.$loose>>;
210
+ tasks: z.ZodArray<z.ZodObject<{
211
+ task: z.ZodString;
212
+ reason: z.ZodString;
213
+ }, z.core.$loose>>;
214
+ }, z.core.$loose>;
215
+ waitingForReview: z.ZodObject<{
216
+ count: z.ZodNumber;
217
+ results: z.ZodArray<z.ZodObject<{
218
+ task: z.ZodString;
219
+ run: z.ZodNullable<z.ZodNumber>;
220
+ check: z.ZodObject<{
221
+ status: z.ZodString;
222
+ exitCode: z.ZodNullable<z.ZodNumber>;
223
+ suites: z.ZodUnknown;
224
+ }, z.core.$loose>;
225
+ }, z.core.$loose>>;
226
+ }, z.core.$loose>;
227
+ releaseCheck: z.ZodNullable<z.ZodObject<{
228
+ task: z.ZodString;
229
+ run: z.ZodNumber;
230
+ finishedAt: z.ZodNullable<z.ZodString>;
231
+ check: z.ZodObject<{
232
+ status: z.ZodString;
233
+ exitCode: z.ZodNullable<z.ZodNumber>;
234
+ suites: z.ZodUnknown;
235
+ }, z.core.$loose>;
236
+ }, z.core.$loose>>;
237
+ planWindows: z.ZodArray<z.ZodObject<{
238
+ provider: z.ZodString;
239
+ plan: z.ZodNullable<z.ZodString>;
240
+ observedAt: z.ZodString;
241
+ }, z.core.$loose>>;
242
+ signIn: z.ZodArray<z.ZodObject<{
243
+ provider: z.ZodString;
244
+ reason: z.ZodString;
245
+ command: z.ZodString;
246
+ since: z.ZodString;
247
+ }, z.core.$loose>>;
248
+ tasks: z.ZodArray<z.ZodObject<{
249
+ task: z.ZodString;
250
+ title: z.ZodString;
251
+ headline: z.ZodString;
252
+ sentence: z.ZodString;
253
+ }, z.core.$loose>>;
254
+ lead: z.ZodNullable<z.ZodObject<{
255
+ owner: z.ZodString;
256
+ doing: z.ZodString;
257
+ at: z.ZodString;
258
+ task: z.ZodNullable<z.ZodString>;
259
+ line: z.ZodString;
260
+ }, z.core.$loose>>;
261
+ projects: z.ZodArray<z.ZodObject<{
262
+ repo: z.ZodString;
263
+ name: z.ZodString;
264
+ running: z.ZodNumber;
265
+ limit: z.ZodNumber;
266
+ }, z.core.$loose>>;
267
+ update: z.ZodOptional<z.ZodObject<{
268
+ current: z.ZodString;
269
+ latest: z.ZodString;
270
+ security: z.ZodBoolean;
271
+ updateCommand: z.ZodString;
272
+ url: z.ZodString;
273
+ }, z.core.$loose>>;
274
+ integrations: z.ZodOptional<z.ZodObject<{
275
+ broken: z.ZodArray<z.ZodObject<{
276
+ key: z.ZodString;
277
+ name: z.ZodString;
278
+ fix: z.ZodNullable<z.ZodString>;
279
+ }, z.core.$loose>>;
280
+ }, z.core.$loose>>;
281
+ updateWaiting: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
282
+ unsentReplies: z.ZodOptional<z.ZodArray<z.ZodObject<{
283
+ since: z.ZodString;
284
+ error: z.ZodNullable<z.ZodString>;
285
+ retry: z.ZodString;
286
+ }, z.core.$loose>>>;
287
+ }, z.core.$loose>, z.ZodObject<{
288
+ envelopeVersion: z.ZodLiteral<1>;
289
+ ok: z.ZodLiteral<false>;
290
+ command: z.ZodLiteral<"status">;
291
+ reason: z.ZodString;
292
+ message: z.ZodOptional<z.ZodString>;
293
+ }, z.core.$loose>], "ok">;
294
+ readonly integrations: z.ZodDiscriminatedUnion<[z.ZodObject<{
295
+ envelopeVersion: z.ZodLiteral<1>;
296
+ ok: z.ZodLiteral<true>;
297
+ command: z.ZodLiteral<"integrations">;
298
+ integrations: z.ZodArray<z.ZodObject<{
299
+ key: z.ZodString;
300
+ group: z.ZodEnum<{
301
+ agents: "agents";
302
+ chat: "chat";
303
+ code: "code";
304
+ mail: "mail";
305
+ monitoring: "monitoring";
306
+ tools: "tools";
307
+ }>;
308
+ name: z.ZodString;
309
+ state: z.ZodEnum<{
310
+ broken: "broken";
311
+ connected: "connected";
312
+ "not-set-up": "not-set-up";
313
+ }>;
314
+ account: z.ZodNullable<z.ZodString>;
315
+ detail: z.ZodNullable<z.ZodString>;
316
+ checked: z.ZodBoolean;
317
+ checkedAt: z.ZodNullable<z.ZodString>;
318
+ lastSuccessAt: z.ZodNullable<z.ZodString>;
319
+ lastError: z.ZodNullable<z.ZodString>;
320
+ lastErrorAt: z.ZodNullable<z.ZodString>;
321
+ usedBy: z.ZodArray<z.ZodString>;
322
+ action: z.ZodObject<{
323
+ kind: z.ZodEnum<{
324
+ fix: "fix";
325
+ setup: "setup";
326
+ test: "test";
327
+ }>;
328
+ label: z.ZodString;
329
+ }, z.core.$loose>;
330
+ custom: z.ZodOptional<z.ZodLiteral<true>>;
331
+ }, z.core.$loose>>;
332
+ counts: z.ZodObject<{
333
+ connected: z.ZodNumber;
334
+ "not-set-up": z.ZodNumber;
335
+ broken: z.ZodNumber;
336
+ }, z.core.$loose>;
337
+ }, z.core.$loose>, z.ZodObject<{
338
+ envelopeVersion: z.ZodLiteral<1>;
339
+ ok: z.ZodLiteral<false>;
340
+ command: z.ZodLiteral<"integrations">;
341
+ reason: z.ZodString;
342
+ message: z.ZodOptional<z.ZodString>;
343
+ }, z.core.$loose>], "ok">;
344
+ readonly ready: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
345
+ envelopeVersion: z.ZodLiteral<1>;
346
+ ok: z.ZodLiteral<true>;
347
+ command: z.ZodLiteral<"ready">;
348
+ count: z.ZodNumber;
349
+ tasks: z.ZodArray<z.ZodObject<{
350
+ id: z.ZodString;
351
+ title: z.ZodString;
352
+ state: z.ZodString;
353
+ }, z.core.$loose>>;
354
+ }, z.core.$loose>, z.ZodObject<{
355
+ envelopeVersion: z.ZodLiteral<1>;
356
+ ok: z.ZodLiteral<false>;
357
+ command: z.ZodLiteral<"ready">;
358
+ reason: z.ZodString;
359
+ message: z.ZodOptional<z.ZodString>;
360
+ }, z.core.$loose>], "ok">, z.ZodObject<{
361
+ envelopeVersion: z.ZodLiteral<1>;
362
+ ok: z.ZodLiteral<false>;
363
+ command: z.ZodLiteral<"ready">;
364
+ reason: z.ZodLiteral<"empty">;
365
+ message: z.ZodString;
366
+ count: z.ZodNumber;
367
+ tasks: z.ZodArray<z.ZodUnknown>;
368
+ }, z.core.$loose>]>;
369
+ readonly "task add": z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
370
+ envelopeVersion: z.ZodLiteral<1>;
371
+ ok: z.ZodLiteral<true>;
372
+ command: z.ZodLiteral<"task add">;
373
+ task: z.ZodObject<{
374
+ id: z.ZodString;
375
+ title: z.ZodString;
376
+ state: z.ZodEnum<{
377
+ cancelled: "cancelled";
378
+ done: "done";
379
+ failed: "failed";
380
+ queued: "queued";
381
+ running: "running";
382
+ }>;
383
+ createdAt: z.ZodString;
384
+ updatedAt: z.ZodString;
385
+ priority: z.ZodNumber;
386
+ }, z.core.$loose>;
387
+ repo: z.ZodNullable<z.ZodString>;
388
+ }, z.core.$loose>, z.ZodObject<{
389
+ envelopeVersion: z.ZodLiteral<1>;
390
+ ok: z.ZodLiteral<false>;
391
+ command: z.ZodLiteral<"task add">;
392
+ reason: z.ZodString;
393
+ message: z.ZodOptional<z.ZodString>;
394
+ }, z.core.$loose>], "ok">, z.ZodDiscriminatedUnion<[z.ZodObject<{
395
+ envelopeVersion: z.ZodLiteral<1>;
396
+ ok: z.ZodLiteral<true>;
397
+ command: z.ZodLiteral<"task add">;
398
+ id: z.ZodString;
399
+ backend: z.ZodString;
400
+ mirror: z.ZodOptional<z.ZodString>;
401
+ }, z.core.$loose>, z.ZodObject<{
402
+ envelopeVersion: z.ZodLiteral<1>;
403
+ ok: z.ZodLiteral<false>;
404
+ command: z.ZodLiteral<"task add">;
405
+ reason: z.ZodString;
406
+ message: z.ZodOptional<z.ZodString>;
407
+ }, z.core.$loose>], "ok">]>;
408
+ readonly "task list": z.ZodDiscriminatedUnion<[z.ZodObject<{
409
+ envelopeVersion: z.ZodLiteral<1>;
410
+ ok: z.ZodLiteral<true>;
411
+ command: z.ZodLiteral<"task list">;
412
+ count: z.ZodNumber;
413
+ tasks: z.ZodArray<z.ZodObject<{
414
+ id: z.ZodString;
415
+ rootId: z.ZodString;
416
+ activeTaskId: z.ZodString;
417
+ title: z.ZodString;
418
+ repo: z.ZodNullable<z.ZodString>;
419
+ state: z.ZodString;
420
+ status: z.ZodObject<{
421
+ token: z.ZodString;
422
+ label: z.ZodString;
423
+ }, z.core.$loose>;
424
+ }, z.core.$loose>>;
425
+ totals: z.ZodRecord<z.ZodString, z.ZodNumber>;
426
+ nextCursor: z.ZodNullable<z.ZodString>;
427
+ limit: z.ZodNumber;
428
+ view: z.ZodString;
429
+ }, z.core.$loose>, z.ZodObject<{
430
+ envelopeVersion: z.ZodLiteral<1>;
431
+ ok: z.ZodLiteral<false>;
432
+ command: z.ZodLiteral<"task list">;
433
+ reason: z.ZodString;
434
+ message: z.ZodOptional<z.ZodString>;
435
+ }, z.core.$loose>], "ok">;
436
+ readonly "task show": z.ZodDiscriminatedUnion<[z.ZodObject<{
437
+ envelopeVersion: z.ZodLiteral<1>;
438
+ ok: z.ZodLiteral<true>;
439
+ command: z.ZodLiteral<"task show">;
440
+ task: z.ZodObject<{
441
+ id: z.ZodString;
442
+ title: z.ZodString;
443
+ state: z.ZodEnum<{
444
+ cancelled: "cancelled";
445
+ done: "done";
446
+ failed: "failed";
447
+ queued: "queued";
448
+ running: "running";
449
+ }>;
450
+ createdAt: z.ZodString;
451
+ updatedAt: z.ZodString;
452
+ priority: z.ZodNumber;
453
+ }, z.core.$loose>;
454
+ work: z.ZodObject<{
455
+ taskId: z.ZodString;
456
+ state: z.ZodString;
457
+ }, z.core.$loose>;
458
+ assignment: z.ZodUnknown;
459
+ ref: z.ZodNumber;
460
+ blockedBy: z.ZodArray<z.ZodUnknown>;
461
+ position: z.ZodUnknown;
462
+ reservedFor: z.ZodNullable<z.ZodString>;
463
+ approval: z.ZodObject<{
464
+ approved: z.ZodBoolean;
465
+ }, z.core.$loose>;
466
+ risk: z.ZodString;
467
+ route: z.ZodUnknown;
468
+ runs: z.ZodArray<z.ZodUnknown>;
469
+ deliverable: z.ZodString;
470
+ proofReasons: z.ZodArray<z.ZodUnknown>;
471
+ proofMatrix: z.ZodArray<z.ZodUnknown>;
472
+ proofAccepted: z.ZodBoolean;
473
+ stops: z.ZodArray<z.ZodUnknown>;
474
+ }, z.core.$loose>, z.ZodObject<{
475
+ envelopeVersion: z.ZodLiteral<1>;
476
+ ok: z.ZodLiteral<false>;
477
+ command: z.ZodLiteral<"task show">;
478
+ reason: z.ZodString;
479
+ message: z.ZodOptional<z.ZodString>;
480
+ }, z.core.$loose>], "ok">;
481
+ readonly "task hold": z.ZodDiscriminatedUnion<[z.ZodObject<{
482
+ envelopeVersion: z.ZodLiteral<1>;
483
+ ok: z.ZodLiteral<true>;
484
+ command: z.ZodLiteral<"task hold">;
485
+ id: z.ZodString;
486
+ reason: z.ZodString;
487
+ until: z.ZodNullable<z.ZodString>;
488
+ }, z.core.$loose>, z.ZodObject<{
489
+ envelopeVersion: z.ZodLiteral<1>;
490
+ ok: z.ZodLiteral<false>;
491
+ command: z.ZodLiteral<"task hold">;
492
+ reason: z.ZodString;
493
+ message: z.ZodOptional<z.ZodString>;
494
+ }, z.core.$loose>], "ok">;
495
+ readonly "task unhold": z.ZodDiscriminatedUnion<[z.ZodObject<{
496
+ envelopeVersion: z.ZodLiteral<1>;
497
+ ok: z.ZodLiteral<true>;
498
+ command: z.ZodLiteral<"task unhold">;
499
+ id: z.ZodString;
500
+ }, z.core.$loose>, z.ZodObject<{
501
+ envelopeVersion: z.ZodLiteral<1>;
502
+ ok: z.ZodLiteral<false>;
503
+ command: z.ZodLiteral<"task unhold">;
504
+ reason: z.ZodString;
505
+ message: z.ZodOptional<z.ZodString>;
506
+ }, z.core.$loose>], "ok">;
507
+ readonly "task wait": z.ZodDiscriminatedUnion<[z.ZodObject<{
508
+ envelopeVersion: z.ZodLiteral<1>;
509
+ ok: z.ZodLiteral<true>;
510
+ command: z.ZodLiteral<"task wait">;
511
+ task: z.ZodString;
512
+ outcome: z.ZodString;
513
+ }, z.core.$loose>, z.ZodObject<{
514
+ envelopeVersion: z.ZodLiteral<1>;
515
+ ok: z.ZodLiteral<false>;
516
+ command: z.ZodLiteral<"task wait">;
517
+ reason: z.ZodString;
518
+ message: z.ZodOptional<z.ZodString>;
519
+ }, z.core.$loose>], "ok">;
520
+ readonly "flows list": z.ZodDiscriminatedUnion<[z.ZodObject<{
521
+ envelopeVersion: z.ZodLiteral<1>;
522
+ ok: z.ZodLiteral<true>;
523
+ command: z.ZodLiteral<"flows list">;
524
+ flows: z.ZodArray<z.ZodObject<{
525
+ id: z.ZodNumber;
526
+ name: z.ZodString;
527
+ repo: z.ZodString;
528
+ project: z.ZodString;
529
+ zones: z.ZodArray<z.ZodString>;
530
+ triggers: z.ZodNumber;
531
+ cardsWaiting: z.ZodNumber;
532
+ needDecision: z.ZodNumber;
533
+ }, z.core.$loose>>;
534
+ }, z.core.$loose>, z.ZodObject<{
535
+ envelopeVersion: z.ZodLiteral<1>;
536
+ ok: z.ZodLiteral<false>;
537
+ command: z.ZodLiteral<"flows list">;
538
+ reason: z.ZodString;
539
+ message: z.ZodOptional<z.ZodString>;
540
+ }, z.core.$loose>], "ok">;
541
+ readonly "flows show": z.ZodDiscriminatedUnion<[z.ZodObject<{
542
+ envelopeVersion: z.ZodLiteral<1>;
543
+ ok: z.ZodLiteral<true>;
544
+ command: z.ZodLiteral<"flows show">;
545
+ flow: z.ZodObject<{
546
+ id: z.ZodNumber;
547
+ name: z.ZodString;
548
+ repo: z.ZodString;
549
+ project: z.ZodString;
550
+ readable: z.ZodBoolean;
551
+ zones: z.ZodArray<z.ZodUnknown>;
552
+ triggers: z.ZodArray<z.ZodUnknown>;
553
+ }, z.core.$loose>;
554
+ }, z.core.$loose>, z.ZodObject<{
555
+ envelopeVersion: z.ZodLiteral<1>;
556
+ ok: z.ZodLiteral<false>;
557
+ command: z.ZodLiteral<"flows show">;
558
+ reason: z.ZodString;
559
+ message: z.ZodOptional<z.ZodString>;
560
+ }, z.core.$loose>], "ok">;
561
+ readonly grants: z.ZodDiscriminatedUnion<[z.ZodObject<{
562
+ envelopeVersion: z.ZodLiteral<1>;
563
+ ok: z.ZodLiteral<true>;
564
+ command: z.ZodLiteral<"grants">;
565
+ count: z.ZodNumber;
566
+ grants: z.ZodArray<z.ZodUnknown>;
567
+ }, z.core.$loose>, z.ZodObject<{
568
+ envelopeVersion: z.ZodLiteral<1>;
569
+ ok: z.ZodLiteral<false>;
570
+ command: z.ZodLiteral<"grants">;
571
+ reason: z.ZodString;
572
+ message: z.ZodOptional<z.ZodString>;
573
+ }, z.core.$loose>], "ok">;
574
+ readonly "runner list": z.ZodDiscriminatedUnion<[z.ZodObject<{
575
+ envelopeVersion: z.ZodLiteral<1>;
576
+ ok: z.ZodLiteral<true>;
577
+ command: z.ZodLiteral<"runner list">;
578
+ count: z.ZodNumber;
579
+ runners: z.ZodArray<z.ZodUnknown>;
580
+ }, z.core.$loose>, z.ZodObject<{
581
+ envelopeVersion: z.ZodLiteral<1>;
582
+ ok: z.ZodLiteral<false>;
583
+ command: z.ZodLiteral<"runner list">;
584
+ reason: z.ZodString;
585
+ message: z.ZodOptional<z.ZodString>;
586
+ }, z.core.$loose>], "ok">;
587
+ readonly "routine list": z.ZodDiscriminatedUnion<[z.ZodObject<{
588
+ envelopeVersion: z.ZodLiteral<1>;
589
+ ok: z.ZodLiteral<true>;
590
+ command: z.ZodLiteral<"routine list">;
591
+ routines: z.ZodArray<z.ZodUnknown>;
592
+ }, z.core.$loose>, z.ZodObject<{
593
+ envelopeVersion: z.ZodLiteral<1>;
594
+ ok: z.ZodLiteral<false>;
595
+ command: z.ZodLiteral<"routine list">;
596
+ reason: z.ZodString;
597
+ message: z.ZodOptional<z.ZodString>;
598
+ }, z.core.$loose>], "ok">;
599
+ readonly "incident list": z.ZodDiscriminatedUnion<[z.ZodObject<{
600
+ envelopeVersion: z.ZodLiteral<1>;
601
+ ok: z.ZodLiteral<true>;
602
+ command: z.ZodLiteral<"incident list">;
603
+ incidents: z.ZodArray<z.ZodUnknown>;
604
+ }, z.core.$loose>, z.ZodObject<{
605
+ envelopeVersion: z.ZodLiteral<1>;
606
+ ok: z.ZodLiteral<false>;
607
+ command: z.ZodLiteral<"incident list">;
608
+ reason: z.ZodString;
609
+ message: z.ZodOptional<z.ZodString>;
610
+ }, z.core.$loose>], "ok">;
611
+ readonly "outbox list": z.ZodDiscriminatedUnion<[z.ZodObject<{
612
+ envelopeVersion: z.ZodLiteral<1>;
613
+ ok: z.ZodLiteral<true>;
614
+ command: z.ZodLiteral<"outbox list">;
615
+ notifications: z.ZodArray<z.ZodObject<{
616
+ id: z.ZodNumber;
617
+ kind: z.ZodString;
618
+ subject: z.ZodString;
619
+ createdAt: z.ZodString;
620
+ }, z.core.$loose>>;
621
+ }, z.core.$loose>, z.ZodObject<{
622
+ envelopeVersion: z.ZodLiteral<1>;
623
+ ok: z.ZodLiteral<false>;
624
+ command: z.ZodLiteral<"outbox list">;
625
+ reason: z.ZodString;
626
+ message: z.ZodOptional<z.ZodString>;
627
+ }, z.core.$loose>], "ok">;
628
+ readonly "outbox deliver": z.ZodUnion<readonly [z.ZodObject<{
629
+ envelopeVersion: z.ZodLiteral<1>;
630
+ ok: z.ZodBoolean;
631
+ command: z.ZodLiteral<"outbox deliver">;
632
+ delivered: z.ZodNumber;
633
+ failed: z.ZodNumber;
634
+ }, z.core.$loose>, z.ZodObject<{
635
+ envelopeVersion: z.ZodLiteral<1>;
636
+ ok: z.ZodLiteral<false>;
637
+ command: z.ZodLiteral<"outbox deliver">;
638
+ reason: z.ZodString;
639
+ message: z.ZodOptional<z.ZodString>;
640
+ }, z.core.$loose>]>;
641
+ readonly "approver list": z.ZodDiscriminatedUnion<[z.ZodObject<{
642
+ envelopeVersion: z.ZodLiteral<1>;
643
+ ok: z.ZodLiteral<true>;
644
+ command: z.ZodLiteral<"approver list">;
645
+ approvers: z.ZodArray<z.ZodUnknown>;
646
+ }, z.core.$loose>, z.ZodObject<{
647
+ envelopeVersion: z.ZodLiteral<1>;
648
+ ok: z.ZodLiteral<false>;
649
+ command: z.ZodLiteral<"approver list">;
650
+ reason: z.ZodString;
651
+ message: z.ZodOptional<z.ZodString>;
652
+ }, z.core.$loose>], "ok">;
653
+ readonly "coordinator list": z.ZodDiscriminatedUnion<[z.ZodObject<{
654
+ envelopeVersion: z.ZodLiteral<1>;
655
+ ok: z.ZodLiteral<true>;
656
+ command: z.ZodLiteral<"coordinator list">;
657
+ coordinators: z.ZodArray<z.ZodUnknown>;
658
+ }, z.core.$loose>, z.ZodObject<{
659
+ envelopeVersion: z.ZodLiteral<1>;
660
+ ok: z.ZodLiteral<false>;
661
+ command: z.ZodLiteral<"coordinator list">;
662
+ reason: z.ZodString;
663
+ message: z.ZodOptional<z.ZodString>;
664
+ }, z.core.$loose>], "ok">;
665
+ readonly "cap list": z.ZodDiscriminatedUnion<[z.ZodObject<{
666
+ envelopeVersion: z.ZodLiteral<1>;
667
+ ok: z.ZodLiteral<true>;
668
+ command: z.ZodLiteral<"cap list">;
669
+ repo: z.ZodString;
670
+ capabilities: z.ZodArray<z.ZodUnknown>;
671
+ }, z.core.$loose>, z.ZodObject<{
672
+ envelopeVersion: z.ZodLiteral<1>;
673
+ ok: z.ZodLiteral<false>;
674
+ command: z.ZodLiteral<"cap list">;
675
+ reason: z.ZodString;
676
+ message: z.ZodOptional<z.ZodString>;
677
+ }, z.core.$loose>], "ok">;
678
+ readonly gaps: z.ZodDiscriminatedUnion<[z.ZodObject<{
679
+ envelopeVersion: z.ZodLiteral<1>;
680
+ ok: z.ZodLiteral<true>;
681
+ command: z.ZodLiteral<"gaps">;
682
+ repo: z.ZodString;
683
+ gaps: z.ZodArray<z.ZodUnknown>;
684
+ }, z.core.$loose>, z.ZodObject<{
685
+ envelopeVersion: z.ZodLiteral<1>;
686
+ ok: z.ZodLiteral<false>;
687
+ command: z.ZodLiteral<"gaps">;
688
+ reason: z.ZodString;
689
+ message: z.ZodOptional<z.ZodString>;
690
+ }, z.core.$loose>], "ok">;
691
+ readonly reap: z.ZodDiscriminatedUnion<[z.ZodObject<{
692
+ envelopeVersion: z.ZodLiteral<1>;
693
+ ok: z.ZodLiteral<true>;
694
+ command: z.ZodLiteral<"reap">;
695
+ count: z.ZodNumber;
696
+ released: z.ZodArray<z.ZodUnknown>;
697
+ }, z.core.$loose>, z.ZodObject<{
698
+ envelopeVersion: z.ZodLiteral<1>;
699
+ ok: z.ZodLiteral<false>;
700
+ command: z.ZodLiteral<"reap">;
701
+ reason: z.ZodString;
702
+ message: z.ZodOptional<z.ZodString>;
703
+ }, z.core.$loose>], "ok">;
704
+ readonly "skills list": z.ZodDiscriminatedUnion<[z.ZodObject<{
705
+ envelopeVersion: z.ZodLiteral<1>;
706
+ ok: z.ZodLiteral<true>;
707
+ command: z.ZodLiteral<"skills list">;
708
+ guides: z.ZodArray<z.ZodObject<{
709
+ name: z.ZodString;
710
+ title: z.ZodString;
711
+ oneLiner: z.ZodString;
712
+ }, z.core.$loose>>;
713
+ }, z.core.$loose>, z.ZodObject<{
714
+ envelopeVersion: z.ZodLiteral<1>;
715
+ ok: z.ZodLiteral<false>;
716
+ command: z.ZodLiteral<"skills list">;
717
+ reason: z.ZodString;
718
+ message: z.ZodOptional<z.ZodString>;
719
+ }, z.core.$loose>], "ok">;
720
+ };
721
+ /** The schema for `command`'s answer: its own when it names its fields, else the envelope under its own name. */
722
+ export declare function commandOutputSchema(command: string): z.ZodType;
723
+ /** One declared command: its guide row exactly as `contract --commands` dumps it, and its answer's schema. */
724
+ export type CommandEntry = {
725
+ readonly guide: CommandRow;
726
+ readonly output: z.ZodType;
727
+ };
728
+ /** Pair each guide row, in order, with the schema of the answer it names (the envelope command, else the invocation). */
729
+ export declare function commandEntries(guide: readonly CommandRow[]): readonly CommandEntry[];
730
+ /** Path-named lines for each way `envelope` (as written, version first) disagrees with its command's schema; empty when it agrees. */
731
+ export declare function envelopeProblems(envelope: unknown): string[];
732
+ /**
733
+ * Serialize one envelope with the unchanged `envelopeJson`, after checking the value it writes. A disagreement is
734
+ * logged on stderr and the envelope is written as it was; nothing here throws into a command's path.
735
+ */
736
+ export declare function checkedEnvelopeJson(payload: EnvelopePayload): string;