@cleocode/contracts 2026.5.121 → 2026.5.123
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.
- package/dist/__tests__/completion-operation-contracts.test.d.ts +8 -0
- package/dist/__tests__/completion-operation-contracts.test.d.ts.map +1 -0
- package/dist/__tests__/completion-operation-contracts.test.js +114 -0
- package/dist/__tests__/completion-operation-contracts.test.js.map +1 -0
- package/dist/__tests__/operation-envelope-validation.test.d.ts +8 -0
- package/dist/__tests__/operation-envelope-validation.test.d.ts.map +1 -0
- package/dist/__tests__/operation-envelope-validation.test.js +105 -0
- package/dist/__tests__/operation-envelope-validation.test.js.map +1 -0
- package/dist/__tests__/satisfies-atom.test.d.ts +24 -0
- package/dist/__tests__/satisfies-atom.test.d.ts.map +1 -0
- package/dist/__tests__/satisfies-atom.test.js +320 -0
- package/dist/__tests__/satisfies-atom.test.js.map +1 -0
- package/dist/__tests__/validator-types.test.d.ts +13 -0
- package/dist/__tests__/validator-types.test.d.ts.map +1 -0
- package/dist/__tests__/validator-types.test.js +293 -0
- package/dist/__tests__/validator-types.test.js.map +1 -0
- package/dist/__tests__/workgraph-context-scaffold-contracts.test.d.ts +8 -0
- package/dist/__tests__/workgraph-context-scaffold-contracts.test.d.ts.map +1 -0
- package/dist/__tests__/workgraph-context-scaffold-contracts.test.js +188 -0
- package/dist/__tests__/workgraph-context-scaffold-contracts.test.js.map +1 -0
- package/dist/__tests__/workgraph-operation-contracts.test.d.ts +8 -0
- package/dist/__tests__/workgraph-operation-contracts.test.d.ts.map +1 -0
- package/dist/__tests__/workgraph-operation-contracts.test.js +115 -0
- package/dist/__tests__/workgraph-operation-contracts.test.js.map +1 -0
- package/dist/config.d.ts +56 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/data-accessor.d.ts +194 -0
- package/dist/data-accessor.d.ts.map +1 -1
- package/dist/data-accessor.js.map +1 -1
- package/dist/dispatch/__tests__/docs-update-registry.test.d.ts +2 -0
- package/dist/dispatch/__tests__/docs-update-registry.test.d.ts.map +1 -0
- package/dist/dispatch/__tests__/docs-update-registry.test.js +27 -0
- package/dist/dispatch/__tests__/docs-update-registry.test.js.map +1 -0
- package/dist/dispatch/__tests__/operation-envelope-snapshots.test.d.ts +2 -0
- package/dist/dispatch/__tests__/operation-envelope-snapshots.test.d.ts.map +1 -0
- package/dist/dispatch/__tests__/operation-envelope-snapshots.test.js +265 -0
- package/dist/dispatch/__tests__/operation-envelope-snapshots.test.js.map +1 -0
- package/dist/dispatch/operations-registry.d.ts.map +1 -1
- package/dist/dispatch/operations-registry.js +487 -7
- package/dist/dispatch/operations-registry.js.map +1 -1
- package/dist/evidence-atom-schema.d.ts +91 -0
- package/dist/evidence-atom-schema.d.ts.map +1 -1
- package/dist/evidence-atom-schema.js +162 -1
- package/dist/evidence-atom-schema.js.map +1 -1
- package/dist/exit-codes.d.ts +41 -1
- package/dist/exit-codes.d.ts.map +1 -1
- package/dist/exit-codes.js +40 -0
- package/dist/exit-codes.js.map +1 -1
- package/dist/index.d.ts +17 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/operation-envelope-validation.d.ts +79 -0
- package/dist/operation-envelope-validation.d.ts.map +1 -0
- package/dist/operation-envelope-validation.js +219 -0
- package/dist/operation-envelope-validation.js.map +1 -0
- package/dist/operations/__tests__/agent-operation-contract.test.d.ts +2 -0
- package/dist/operations/__tests__/agent-operation-contract.test.d.ts.map +1 -0
- package/dist/operations/__tests__/agent-operation-contract.test.js +128 -0
- package/dist/operations/__tests__/agent-operation-contract.test.js.map +1 -0
- package/dist/operations/__tests__/tasks-input-contracts.test.js +15 -0
- package/dist/operations/__tests__/tasks-input-contracts.test.js.map +1 -1
- package/dist/operations/agent-operation-contract.d.ts +227 -0
- package/dist/operations/agent-operation-contract.d.ts.map +1 -0
- package/dist/operations/agent-operation-contract.js +38 -0
- package/dist/operations/agent-operation-contract.js.map +1 -0
- package/dist/operations/docs.d.ts +19 -1
- package/dist/operations/docs.d.ts.map +1 -1
- package/dist/operations/docs.js +20 -0
- package/dist/operations/docs.js.map +1 -1
- package/dist/operations/focus.d.ts +1 -1
- package/dist/operations/index.d.ts +1 -0
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +1 -0
- package/dist/operations/index.js.map +1 -1
- package/dist/operations/orchestrate.d.ts +66 -0
- package/dist/operations/orchestrate.d.ts.map +1 -1
- package/dist/operations/tasks.d.ts +617 -11
- package/dist/operations/tasks.d.ts.map +1 -1
- package/dist/operations/tasks.js +22 -3
- package/dist/operations/tasks.js.map +1 -1
- package/dist/task-record.d.ts +15 -0
- package/dist/task-record.d.ts.map +1 -1
- package/dist/task.d.ts +52 -5
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js.map +1 -1
- package/dist/tasks.d.ts +944 -0
- package/dist/tasks.d.ts.map +1 -1
- package/dist/tasks.js +198 -1
- package/dist/tasks.js.map +1 -1
- package/dist/validator/index.d.ts +375 -0
- package/dist/validator/index.d.ts.map +1 -0
- package/dist/validator/index.js +162 -0
- package/dist/validator/index.js.map +1 -0
- package/dist/workgraph.d.ts +1950 -0
- package/dist/workgraph.d.ts.map +1 -0
- package/dist/workgraph.js +449 -0
- package/dist/workgraph.js.map +1 -0
- package/package.json +10 -2
- package/src/__tests__/__snapshots__/operations-registry.test.ts.snap +1 -1
- package/src/__tests__/completion-operation-contracts.test.ts +154 -0
- package/src/__tests__/operation-envelope-validation.test.ts +140 -0
- package/src/__tests__/satisfies-atom.test.ts +383 -0
- package/src/__tests__/validator-types.test.ts +359 -0
- package/src/__tests__/workgraph-context-scaffold-contracts.test.ts +232 -0
- package/src/__tests__/workgraph-operation-contracts.test.ts +151 -0
- package/src/config.ts +58 -0
- package/src/data-accessor.ts +213 -0
- package/src/dispatch/__tests__/docs-update-registry.test.ts +35 -0
- package/src/dispatch/__tests__/operation-envelope-snapshots.test.ts +283 -0
- package/src/dispatch/operations-registry.ts +502 -7
- package/src/evidence-atom-schema.ts +188 -1
- package/src/exit-codes.ts +42 -0
- package/src/index.ts +230 -2
- package/src/operation-envelope-validation.ts +319 -0
- package/src/operations/__tests__/agent-operation-contract.test.ts +161 -0
- package/src/operations/__tests__/tasks-input-contracts.test.ts +30 -0
- package/src/operations/agent-operation-contract.ts +253 -0
- package/src/operations/docs.ts +27 -7
- package/src/operations/focus.ts +1 -1
- package/src/operations/index.ts +1 -0
- package/src/operations/orchestrate.ts +71 -0
- package/src/operations/tasks.ts +662 -15
- package/src/task-record.ts +16 -0
- package/src/task.ts +54 -5
- package/src/tasks.ts +558 -0
- package/src/validator/index.ts +385 -0
- package/src/workgraph.ts +1153 -0
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @since SG-ARCH-SOLID Saga T9831 · E-CLI-BOUNDARY T9833 · T10061
|
|
10
10
|
*/
|
|
11
|
+
import { DOCS_LIFECYCLE_STATUSES } from '../operations/docs.js';
|
|
11
12
|
// ---------------------------------------------------------------------------
|
|
12
13
|
// Builder helpers
|
|
13
14
|
// ---------------------------------------------------------------------------
|
|
@@ -67,6 +68,167 @@ export const OPERATIONS = [
|
|
|
67
68
|
required: false,
|
|
68
69
|
description: 'Include IVTR phase chain history in the response',
|
|
69
70
|
},
|
|
71
|
+
{
|
|
72
|
+
name: 'relations',
|
|
73
|
+
type: 'boolean',
|
|
74
|
+
required: false,
|
|
75
|
+
description: 'Expand relation/doc lists while preserving compact MVI counts',
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
gateway: 'query',
|
|
81
|
+
domain: 'tasks',
|
|
82
|
+
operation: 'traverse',
|
|
83
|
+
description: 'tasks.traverse (query) — WorkGraph traversal from a task root',
|
|
84
|
+
tier: 1,
|
|
85
|
+
idempotent: true,
|
|
86
|
+
sessionRequired: false,
|
|
87
|
+
requiredParams: ['rootId', 'direction'],
|
|
88
|
+
params: [
|
|
89
|
+
{
|
|
90
|
+
name: 'rootId',
|
|
91
|
+
type: 'string',
|
|
92
|
+
required: true,
|
|
93
|
+
description: 'Root task ID for the traversal',
|
|
94
|
+
cli: { positional: true },
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'direction',
|
|
98
|
+
type: 'string',
|
|
99
|
+
required: true,
|
|
100
|
+
description: 'Traversal direction to project from the root task',
|
|
101
|
+
enum: ['ancestors', 'descendants', 'upstream', 'downstream'],
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: 'maxDepth',
|
|
105
|
+
type: 'number',
|
|
106
|
+
required: false,
|
|
107
|
+
description: 'Maximum traversal depth to include',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: 'includeRelations',
|
|
111
|
+
type: 'boolean',
|
|
112
|
+
required: false,
|
|
113
|
+
description: 'Include non-containment relation edges',
|
|
114
|
+
},
|
|
115
|
+
{ name: 'cursor', type: 'string', required: false, description: 'Opaque pagination cursor' },
|
|
116
|
+
{ name: 'limit', type: 'number', required: false, description: 'Maximum nodes to return' },
|
|
117
|
+
],
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
gateway: 'query',
|
|
121
|
+
domain: 'tasks',
|
|
122
|
+
operation: 'tree',
|
|
123
|
+
description: 'tasks.tree (query) — WorkGraph containment tree projection',
|
|
124
|
+
tier: 1,
|
|
125
|
+
idempotent: true,
|
|
126
|
+
sessionRequired: false,
|
|
127
|
+
requiredParams: ['rootId'],
|
|
128
|
+
params: [
|
|
129
|
+
{
|
|
130
|
+
name: 'rootId',
|
|
131
|
+
type: 'string',
|
|
132
|
+
required: true,
|
|
133
|
+
description: 'Root task ID for the tree projection',
|
|
134
|
+
cli: { positional: true },
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: 'maxDepth',
|
|
138
|
+
type: 'number',
|
|
139
|
+
required: false,
|
|
140
|
+
description: 'Maximum containment depth to include',
|
|
141
|
+
},
|
|
142
|
+
{ name: 'cursor', type: 'string', required: false, description: 'Opaque pagination cursor' },
|
|
143
|
+
{ name: 'limit', type: 'number', required: false, description: 'Maximum nodes to return' },
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
gateway: 'query',
|
|
148
|
+
domain: 'tasks',
|
|
149
|
+
operation: 'rollup',
|
|
150
|
+
description: 'tasks.rollup (query) — WorkGraph direct and subtree status/type summary',
|
|
151
|
+
tier: 1,
|
|
152
|
+
idempotent: true,
|
|
153
|
+
sessionRequired: false,
|
|
154
|
+
requiredParams: ['rootId'],
|
|
155
|
+
params: [
|
|
156
|
+
{
|
|
157
|
+
name: 'rootId',
|
|
158
|
+
type: 'string',
|
|
159
|
+
required: true,
|
|
160
|
+
description: 'Root task ID for the rollup',
|
|
161
|
+
cli: { positional: true },
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: 'expectedDirectRollup',
|
|
165
|
+
type: 'string',
|
|
166
|
+
required: false,
|
|
167
|
+
description: 'Optional serialized expected direct rollup for stale-projection diagnostics',
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
gateway: 'query',
|
|
173
|
+
domain: 'tasks',
|
|
174
|
+
operation: 'frontier',
|
|
175
|
+
description: 'tasks.frontier (query) — WorkGraph ready and blocked frontier under a root',
|
|
176
|
+
tier: 1,
|
|
177
|
+
idempotent: true,
|
|
178
|
+
sessionRequired: false,
|
|
179
|
+
requiredParams: ['rootId'],
|
|
180
|
+
params: [
|
|
181
|
+
{
|
|
182
|
+
name: 'rootId',
|
|
183
|
+
type: 'string',
|
|
184
|
+
required: true,
|
|
185
|
+
description: 'Root task ID for the frontier',
|
|
186
|
+
cli: { positional: true },
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
name: 'role',
|
|
190
|
+
type: 'string',
|
|
191
|
+
required: false,
|
|
192
|
+
description: 'Optional assignee/role lane filter',
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
gateway: 'query',
|
|
198
|
+
domain: 'tasks',
|
|
199
|
+
operation: 'workgraph.audit',
|
|
200
|
+
description: 'tasks.workgraph.audit (query) — aggregate WorkGraph hierarchy/traversal/frontier/rollup diagnostics',
|
|
201
|
+
tier: 1,
|
|
202
|
+
idempotent: true,
|
|
203
|
+
sessionRequired: false,
|
|
204
|
+
requiredParams: ['rootId'],
|
|
205
|
+
params: [
|
|
206
|
+
{
|
|
207
|
+
name: 'rootId',
|
|
208
|
+
type: 'string',
|
|
209
|
+
required: true,
|
|
210
|
+
description: 'Root task ID for the WorkGraph audit',
|
|
211
|
+
cli: { positional: true },
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
name: 'maxDepth',
|
|
215
|
+
type: 'number',
|
|
216
|
+
required: false,
|
|
217
|
+
description: 'Maximum descendant depth to include in audit projections',
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
name: 'includeRelations',
|
|
221
|
+
type: 'boolean',
|
|
222
|
+
required: false,
|
|
223
|
+
description: 'Include relation-edge diagnostics in the audit result',
|
|
224
|
+
},
|
|
225
|
+
{ name: 'cursor', type: 'string', required: false, description: 'Opaque pagination cursor' },
|
|
226
|
+
{
|
|
227
|
+
name: 'limit',
|
|
228
|
+
type: 'number',
|
|
229
|
+
required: false,
|
|
230
|
+
description: 'Maximum nodes to return in paginated audit projections',
|
|
231
|
+
},
|
|
70
232
|
],
|
|
71
233
|
},
|
|
72
234
|
{
|
|
@@ -260,6 +422,150 @@ export const OPERATIONS = [
|
|
|
260
422
|
requiredParams: [],
|
|
261
423
|
params: [],
|
|
262
424
|
},
|
|
425
|
+
{
|
|
426
|
+
gateway: 'query',
|
|
427
|
+
domain: 'tasks',
|
|
428
|
+
operation: 'completion.list',
|
|
429
|
+
description: 'tasks.completion.list (query) — list typed completion criteria results',
|
|
430
|
+
tier: 1,
|
|
431
|
+
idempotent: true,
|
|
432
|
+
sessionRequired: false,
|
|
433
|
+
requiredParams: ['taskId'],
|
|
434
|
+
params: [
|
|
435
|
+
{
|
|
436
|
+
name: 'taskId',
|
|
437
|
+
type: 'string',
|
|
438
|
+
required: true,
|
|
439
|
+
description: 'Task ID to list completion criteria for',
|
|
440
|
+
cli: { positional: true },
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
name: 'status',
|
|
444
|
+
type: 'string',
|
|
445
|
+
required: false,
|
|
446
|
+
description: 'Optional criterion status filter',
|
|
447
|
+
enum: ['satisfied', 'unsatisfied', 'waived', 'replaced'],
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
name: 'kind',
|
|
451
|
+
type: 'string',
|
|
452
|
+
required: false,
|
|
453
|
+
description: 'Optional criterion kind filter',
|
|
454
|
+
enum: ['text', 'evidence_bound', 'child_task'],
|
|
455
|
+
},
|
|
456
|
+
],
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
gateway: 'query',
|
|
460
|
+
domain: 'tasks',
|
|
461
|
+
operation: 'completion.evaluate',
|
|
462
|
+
description: 'tasks.completion.evaluate (query) — evaluate completion readiness with typed AC results',
|
|
463
|
+
tier: 1,
|
|
464
|
+
idempotent: true,
|
|
465
|
+
sessionRequired: false,
|
|
466
|
+
requiredParams: ['taskId'],
|
|
467
|
+
params: [
|
|
468
|
+
{
|
|
469
|
+
name: 'taskId',
|
|
470
|
+
type: 'string',
|
|
471
|
+
required: true,
|
|
472
|
+
description: 'Task ID to evaluate completion readiness for',
|
|
473
|
+
cli: { positional: true },
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
name: 'includeContext',
|
|
477
|
+
type: 'boolean',
|
|
478
|
+
required: false,
|
|
479
|
+
description: 'Include bounded audit context pack',
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
name: 'limit',
|
|
483
|
+
type: 'number',
|
|
484
|
+
required: false,
|
|
485
|
+
description: 'Maximum audit context events when context is included',
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
name: 'since',
|
|
489
|
+
type: 'string',
|
|
490
|
+
required: false,
|
|
491
|
+
description: 'Lower ISO timestamp bound for audit context',
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
name: 'relationDepth',
|
|
495
|
+
type: 'number',
|
|
496
|
+
required: false,
|
|
497
|
+
description: 'Related-task audit context depth',
|
|
498
|
+
},
|
|
499
|
+
],
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
gateway: 'query',
|
|
503
|
+
domain: 'tasks',
|
|
504
|
+
operation: 'completion.explain',
|
|
505
|
+
description: 'tasks.completion.explain (query) — explain completion blockers and stale state',
|
|
506
|
+
tier: 1,
|
|
507
|
+
idempotent: true,
|
|
508
|
+
sessionRequired: false,
|
|
509
|
+
requiredParams: ['taskId'],
|
|
510
|
+
params: [
|
|
511
|
+
{
|
|
512
|
+
name: 'taskId',
|
|
513
|
+
type: 'string',
|
|
514
|
+
required: true,
|
|
515
|
+
description: 'Task ID to explain completion readiness for',
|
|
516
|
+
cli: { positional: true },
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
name: 'includeContext',
|
|
520
|
+
type: 'boolean',
|
|
521
|
+
required: false,
|
|
522
|
+
description: 'Include bounded audit context pack',
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
name: 'limit',
|
|
526
|
+
type: 'number',
|
|
527
|
+
required: false,
|
|
528
|
+
description: 'Maximum audit context events when context is included',
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
name: 'since',
|
|
532
|
+
type: 'string',
|
|
533
|
+
required: false,
|
|
534
|
+
description: 'Lower ISO timestamp bound for audit context',
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
name: 'relationDepth',
|
|
538
|
+
type: 'number',
|
|
539
|
+
required: false,
|
|
540
|
+
description: 'Related-task audit context depth',
|
|
541
|
+
},
|
|
542
|
+
],
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
gateway: 'mutate',
|
|
546
|
+
domain: 'tasks',
|
|
547
|
+
operation: 'projection.repair',
|
|
548
|
+
description: 'tasks.projection.repair (mutate) — repair stale completion projection state with typed errors',
|
|
549
|
+
tier: 1,
|
|
550
|
+
idempotent: true,
|
|
551
|
+
sessionRequired: false,
|
|
552
|
+
requiredParams: ['taskId'],
|
|
553
|
+
params: [
|
|
554
|
+
{
|
|
555
|
+
name: 'taskId',
|
|
556
|
+
type: 'string',
|
|
557
|
+
required: true,
|
|
558
|
+
description: 'Task ID whose completion projection should be repaired',
|
|
559
|
+
cli: { positional: true },
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
name: 'dryRun',
|
|
563
|
+
type: 'boolean',
|
|
564
|
+
required: false,
|
|
565
|
+
description: 'Preview repair actions without writing projection state',
|
|
566
|
+
},
|
|
567
|
+
],
|
|
568
|
+
},
|
|
263
569
|
{
|
|
264
570
|
gateway: 'query',
|
|
265
571
|
domain: 'tasks',
|
|
@@ -647,6 +953,37 @@ export const OPERATIONS = [
|
|
|
647
953
|
requiredParams: [],
|
|
648
954
|
params: [],
|
|
649
955
|
},
|
|
956
|
+
{
|
|
957
|
+
gateway: 'query',
|
|
958
|
+
domain: 'orchestrate',
|
|
959
|
+
operation: 'report',
|
|
960
|
+
description: 'orchestrate.report (query) — grouped readiness report: ready, blocked, blockedBy, gate-blocked, invalid (T10631)',
|
|
961
|
+
tier: 1,
|
|
962
|
+
idempotent: true,
|
|
963
|
+
sessionRequired: false,
|
|
964
|
+
requiredParams: ['epicId'],
|
|
965
|
+
params: [
|
|
966
|
+
{
|
|
967
|
+
name: 'epicId',
|
|
968
|
+
type: 'string',
|
|
969
|
+
required: true,
|
|
970
|
+
description: 'Epic ID to generate the report for',
|
|
971
|
+
cli: { positional: true },
|
|
972
|
+
},
|
|
973
|
+
{
|
|
974
|
+
name: 'page',
|
|
975
|
+
type: 'number',
|
|
976
|
+
required: false,
|
|
977
|
+
description: 'Page number for paginated output (1-indexed, default 1)',
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
name: 'pageSize',
|
|
981
|
+
type: 'number',
|
|
982
|
+
required: false,
|
|
983
|
+
description: 'Page size for paginated output (default 50, max 200)',
|
|
984
|
+
},
|
|
985
|
+
],
|
|
986
|
+
},
|
|
650
987
|
{
|
|
651
988
|
gateway: 'query',
|
|
652
989
|
domain: 'orchestrate',
|
|
@@ -2324,7 +2661,7 @@ export const OPERATIONS = [
|
|
|
2324
2661
|
gateway: 'mutate',
|
|
2325
2662
|
domain: 'tasks',
|
|
2326
2663
|
operation: 'saga.create',
|
|
2327
|
-
description: 'tasks.saga.create (mutate) — create a
|
|
2664
|
+
description: 'tasks.saga.create (mutate) — create a Saga as a first-class TaskType (type=saga) per ADR-083',
|
|
2328
2665
|
tier: 0,
|
|
2329
2666
|
idempotent: false,
|
|
2330
2667
|
sessionRequired: false,
|
|
@@ -2351,6 +2688,13 @@ export const OPERATIONS = [
|
|
|
2351
2688
|
description: 'Pipe-separated acceptance criteria',
|
|
2352
2689
|
cli: { flag: 'acceptance' },
|
|
2353
2690
|
},
|
|
2691
|
+
{
|
|
2692
|
+
name: 'dryRun',
|
|
2693
|
+
type: 'boolean',
|
|
2694
|
+
required: false,
|
|
2695
|
+
description: 'Validate and preview without writing task, relation, or doc rows',
|
|
2696
|
+
cli: { flag: 'dry-run' },
|
|
2697
|
+
},
|
|
2354
2698
|
],
|
|
2355
2699
|
},
|
|
2356
2700
|
{
|
|
@@ -2367,7 +2711,7 @@ export const OPERATIONS = [
|
|
|
2367
2711
|
name: 'sagaId',
|
|
2368
2712
|
type: 'string',
|
|
2369
2713
|
required: true,
|
|
2370
|
-
description: 'Saga task ID (must have
|
|
2714
|
+
description: 'Saga task ID (must have type=saga)',
|
|
2371
2715
|
cli: { positional: true },
|
|
2372
2716
|
},
|
|
2373
2717
|
{
|
|
@@ -2476,7 +2820,7 @@ export const OPERATIONS = [
|
|
|
2476
2820
|
name: 'sagaId',
|
|
2477
2821
|
type: 'string',
|
|
2478
2822
|
required: true,
|
|
2479
|
-
description: 'Saga task ID (must have
|
|
2823
|
+
description: 'Saga task ID (must have type=saga)',
|
|
2480
2824
|
cli: { positional: true },
|
|
2481
2825
|
},
|
|
2482
2826
|
],
|
|
@@ -2510,6 +2854,34 @@ export const OPERATIONS = [
|
|
|
2510
2854
|
},
|
|
2511
2855
|
],
|
|
2512
2856
|
},
|
|
2857
|
+
{
|
|
2858
|
+
// T10637 — migrate parent_id-based Saga membership to groups relations.
|
|
2859
|
+
// Converts Epics whose parent_id points to a type='saga' task into proper
|
|
2860
|
+
// groups relations. Non-Epic tasks are documented as conflicts.
|
|
2861
|
+
gateway: 'mutate',
|
|
2862
|
+
domain: 'tasks',
|
|
2863
|
+
operation: 'saga.migrate-containment',
|
|
2864
|
+
description: 'tasks.saga.migrate-containment (mutate) — convert parent_id-based Saga membership to groups relations; idempotent; audits to saga-contain-migration.jsonl',
|
|
2865
|
+
tier: 0,
|
|
2866
|
+
idempotent: true,
|
|
2867
|
+
sessionRequired: false,
|
|
2868
|
+
requiredParams: [],
|
|
2869
|
+
params: [
|
|
2870
|
+
{
|
|
2871
|
+
name: 'sagaId',
|
|
2872
|
+
type: 'string',
|
|
2873
|
+
required: false,
|
|
2874
|
+
description: 'Optional saga task ID. Omit to migrate all sagas.',
|
|
2875
|
+
cli: { positional: true },
|
|
2876
|
+
},
|
|
2877
|
+
{
|
|
2878
|
+
name: 'dryRun',
|
|
2879
|
+
type: 'boolean',
|
|
2880
|
+
required: false,
|
|
2881
|
+
description: 'Report what would happen without mutating rows or writing audit log',
|
|
2882
|
+
},
|
|
2883
|
+
],
|
|
2884
|
+
},
|
|
2513
2885
|
{
|
|
2514
2886
|
gateway: 'mutate',
|
|
2515
2887
|
domain: 'tasks',
|
|
@@ -6687,6 +7059,7 @@ export const OPERATIONS = [
|
|
|
6687
7059
|
type: 'string',
|
|
6688
7060
|
required: true,
|
|
6689
7061
|
description: 'Slug of the existing attachment to update',
|
|
7062
|
+
cli: { positional: true },
|
|
6690
7063
|
},
|
|
6691
7064
|
{
|
|
6692
7065
|
name: 'file',
|
|
@@ -6694,6 +7067,13 @@ export const OPERATIONS = [
|
|
|
6694
7067
|
required: false,
|
|
6695
7068
|
description: 'Path to a local file containing the new content',
|
|
6696
7069
|
},
|
|
7070
|
+
{
|
|
7071
|
+
name: 'allowExternal',
|
|
7072
|
+
type: 'boolean',
|
|
7073
|
+
required: false,
|
|
7074
|
+
description: 'Permit --file to resolve outside the canonical project root; required for explicit external/worktree update ingestion.',
|
|
7075
|
+
cli: { flag: 'allow-external' },
|
|
7076
|
+
},
|
|
6697
7077
|
{
|
|
6698
7078
|
name: 'content',
|
|
6699
7079
|
type: 'string',
|
|
@@ -6710,14 +7090,29 @@ export const OPERATIONS = [
|
|
|
6710
7090
|
name: 'status',
|
|
6711
7091
|
type: 'string',
|
|
6712
7092
|
required: false,
|
|
7093
|
+
enum: DOCS_LIFECYCLE_STATUSES,
|
|
6713
7094
|
description: 'Override the new lifecycle status. Defaults to "draft" on every update. ' +
|
|
6714
|
-
|
|
7095
|
+
`Valid: ${DOCS_LIFECYCLE_STATUSES.join('|')}.`,
|
|
7096
|
+
},
|
|
7097
|
+
{
|
|
7098
|
+
name: 'dryRun',
|
|
7099
|
+
type: 'boolean',
|
|
7100
|
+
required: false,
|
|
7101
|
+
description: 'Preview validation and resulting envelope without mutating attachment rows, blob storage, or audit logs.',
|
|
7102
|
+
cli: { flag: 'dry-run' },
|
|
7103
|
+
},
|
|
7104
|
+
{
|
|
7105
|
+
name: 'strict',
|
|
7106
|
+
type: 'boolean',
|
|
7107
|
+
required: false,
|
|
7108
|
+
description: 'Fail body-schema diagnostics instead of surfacing advisory warnings before the write.',
|
|
6715
7109
|
},
|
|
6716
7110
|
{
|
|
6717
7111
|
name: 'attachedBy',
|
|
6718
7112
|
type: 'string',
|
|
6719
7113
|
required: false,
|
|
6720
7114
|
description: 'Agent identity that performed the update (defaults to "human")',
|
|
7115
|
+
cli: { flag: 'attached-by' },
|
|
6721
7116
|
},
|
|
6722
7117
|
],
|
|
6723
7118
|
},
|
|
@@ -7273,7 +7668,7 @@ export const OPERATIONS = [
|
|
|
7273
7668
|
tier: 1,
|
|
7274
7669
|
idempotent: true,
|
|
7275
7670
|
sessionRequired: false,
|
|
7276
|
-
requiredParams: ['version'
|
|
7671
|
+
requiredParams: ['version'],
|
|
7277
7672
|
params: [
|
|
7278
7673
|
{
|
|
7279
7674
|
name: 'version',
|
|
@@ -7284,8 +7679,20 @@ export const OPERATIONS = [
|
|
|
7284
7679
|
{
|
|
7285
7680
|
name: 'epicId',
|
|
7286
7681
|
type: 'string',
|
|
7287
|
-
required:
|
|
7288
|
-
description: 'Epic task ID whose children scope the release (R-303)',
|
|
7682
|
+
required: false,
|
|
7683
|
+
description: 'Epic task ID whose children scope the release (R-303); mutually exclusive with sagaId/taskIds',
|
|
7684
|
+
},
|
|
7685
|
+
{
|
|
7686
|
+
name: 'sagaId',
|
|
7687
|
+
type: 'string',
|
|
7688
|
+
required: false,
|
|
7689
|
+
description: 'Saga task ID whose grouped member Epics scope the release; mutually exclusive with epicId/taskIds',
|
|
7690
|
+
},
|
|
7691
|
+
{
|
|
7692
|
+
name: 'taskIds',
|
|
7693
|
+
type: 'array',
|
|
7694
|
+
required: false,
|
|
7695
|
+
description: 'Explicit task-list release scope; mutually exclusive with epicId/sagaId (T10088)',
|
|
7289
7696
|
},
|
|
7290
7697
|
{
|
|
7291
7698
|
name: 'scheme',
|
|
@@ -7935,5 +8342,78 @@ export const OPERATIONS = [
|
|
|
7935
8342
|
},
|
|
7936
8343
|
],
|
|
7937
8344
|
},
|
|
8345
|
+
// ---------------------------------------------------------------------------
|
|
8346
|
+
// T10629 — tasks.context: bounded task-scoped context pack with token budget
|
|
8347
|
+
// ---------------------------------------------------------------------------
|
|
8348
|
+
{
|
|
8349
|
+
gateway: 'query',
|
|
8350
|
+
domain: 'tasks',
|
|
8351
|
+
operation: 'context',
|
|
8352
|
+
description: 'tasks.context (query) — bounded context pack for a single task. ' +
|
|
8353
|
+
'Combines identity + acceptance criteria + blockers + attached docs + ' +
|
|
8354
|
+
'graph edges (from tasks.slice) + recent activity within a configurable ' +
|
|
8355
|
+
'token budget, with explicit omission tracking and expansion hints.',
|
|
8356
|
+
tier: 1,
|
|
8357
|
+
idempotent: true,
|
|
8358
|
+
sessionRequired: false,
|
|
8359
|
+
requiredParams: ['taskId'],
|
|
8360
|
+
params: [
|
|
8361
|
+
{
|
|
8362
|
+
name: 'taskId',
|
|
8363
|
+
type: 'string',
|
|
8364
|
+
required: true,
|
|
8365
|
+
description: 'Task ID to build context for (e.g. T10629)',
|
|
8366
|
+
cli: { positional: true },
|
|
8367
|
+
},
|
|
8368
|
+
{
|
|
8369
|
+
name: 'budgetTokens',
|
|
8370
|
+
type: 'number',
|
|
8371
|
+
required: false,
|
|
8372
|
+
description: 'Maximum token budget for the returned pack. Default: 1500',
|
|
8373
|
+
},
|
|
8374
|
+
{
|
|
8375
|
+
name: 'includeAcceptance',
|
|
8376
|
+
type: 'boolean',
|
|
8377
|
+
required: false,
|
|
8378
|
+
description: 'Include acceptance criteria in the pack. Default: true',
|
|
8379
|
+
},
|
|
8380
|
+
{
|
|
8381
|
+
name: 'includeBlockers',
|
|
8382
|
+
type: 'boolean',
|
|
8383
|
+
required: false,
|
|
8384
|
+
description: 'Include blocker summary in the pack. Default: true',
|
|
8385
|
+
},
|
|
8386
|
+
{
|
|
8387
|
+
name: 'includeDocs',
|
|
8388
|
+
type: 'boolean',
|
|
8389
|
+
required: false,
|
|
8390
|
+
description: 'Include attached docs in the pack. Default: true',
|
|
8391
|
+
},
|
|
8392
|
+
{
|
|
8393
|
+
name: 'includeEdges',
|
|
8394
|
+
type: 'boolean',
|
|
8395
|
+
required: false,
|
|
8396
|
+
description: 'Include graph edges (upstream/downstream/siblings/related) in the pack. Default: true',
|
|
8397
|
+
},
|
|
8398
|
+
{
|
|
8399
|
+
name: 'includeActivity',
|
|
8400
|
+
type: 'boolean',
|
|
8401
|
+
required: false,
|
|
8402
|
+
description: 'Include recent activity (audit log) in the pack. Default: true',
|
|
8403
|
+
},
|
|
8404
|
+
{
|
|
8405
|
+
name: 'activityLimit',
|
|
8406
|
+
type: 'number',
|
|
8407
|
+
required: false,
|
|
8408
|
+
description: 'Maximum number of recent activity events. Default: 10',
|
|
8409
|
+
},
|
|
8410
|
+
{
|
|
8411
|
+
name: 'edgeDepth',
|
|
8412
|
+
type: 'number',
|
|
8413
|
+
required: false,
|
|
8414
|
+
description: 'Maximum depth for graph edges when includeEdges is true. Default: 1',
|
|
8415
|
+
},
|
|
8416
|
+
],
|
|
8417
|
+
},
|
|
7938
8418
|
];
|
|
7939
8419
|
//# sourceMappingURL=operations-registry.js.map
|