@cleocode/contracts 2026.9.8 → 2026.9.10
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__/acceptance-gate.test.js +242 -1
- package/dist/__tests__/acceptance-gate.test.js.map +1 -1
- package/dist/__tests__/evidence-atom-schema.test.js +17 -14
- package/dist/__tests__/evidence-atom-schema.test.js.map +1 -1
- package/dist/__tests__/memory-wire-shapes.test.js.map +1 -1
- package/dist/__tests__/operations-registry.test.js +18 -0
- package/dist/__tests__/operations-registry.test.js.map +1 -1
- package/dist/acceptance-gate-schema.d.ts +60 -2
- package/dist/acceptance-gate-schema.d.ts.map +1 -1
- package/dist/acceptance-gate-schema.js +273 -1
- package/dist/acceptance-gate-schema.js.map +1 -1
- package/dist/acceptance-gate.d.ts +133 -11
- package/dist/acceptance-gate.d.ts.map +1 -1
- package/dist/acceptance-gate.js +3 -3
- package/dist/audit.d.ts +71 -2
- package/dist/audit.d.ts.map +1 -1
- package/dist/backup-manifest.d.ts +80 -0
- package/dist/backup-manifest.d.ts.map +1 -1
- package/dist/caamp-markers.d.ts +20 -0
- package/dist/caamp-markers.d.ts.map +1 -1
- package/dist/capabilities.d.ts +282 -0
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/changesets.d.ts +4 -4
- package/dist/code-symbol.d.ts +33 -0
- package/dist/code-symbol.d.ts.map +1 -1
- package/dist/daemon/health.d.ts +3 -3
- package/dist/data-accessor.d.ts +15 -0
- package/dist/data-accessor.d.ts.map +1 -1
- package/dist/data-accessor.js.map +1 -1
- package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.js +19 -1
- package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.js.map +1 -1
- package/dist/dispatch/operations-registry.d.ts.map +1 -1
- package/dist/dispatch/operations-registry.js +713 -3
- package/dist/dispatch/operations-registry.js.map +1 -1
- package/dist/docs-taxonomy.d.ts +25 -0
- package/dist/docs-taxonomy.d.ts.map +1 -1
- package/dist/docs-taxonomy.js.map +1 -1
- package/dist/evidence-atom-schema.d.ts +7 -6
- package/dist/evidence-atom-schema.d.ts.map +1 -1
- package/dist/evidence-atom-schema.js +10 -9
- package/dist/evidence-atom-schema.js.map +1 -1
- package/dist/graph.d.ts +283 -2
- package/dist/graph.d.ts.map +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/invariants/adr-070-orchestration.d.ts.map +1 -1
- package/dist/invariants/adr-070-orchestration.js +1 -1
- package/dist/invariants/adr-070-orchestration.js.map +1 -1
- package/dist/invariants/adr-073-saga.js +2 -2
- package/dist/invariants/adr-073-saga.js.map +1 -1
- package/dist/jobs.d.ts +329 -3
- package/dist/jobs.d.ts.map +1 -1
- package/dist/knowledge-health.d.ts +695 -0
- package/dist/knowledge-health.d.ts.map +1 -0
- package/dist/knowledge-health.js +8 -0
- package/dist/knowledge-health.js.map +1 -0
- package/dist/llm/catalog-schema.d.ts +4 -4
- package/dist/memory/observe.d.ts +4 -2
- package/dist/memory/observe.d.ts.map +1 -1
- package/dist/memory/search.d.ts +4 -0
- package/dist/memory/search.d.ts.map +1 -1
- package/dist/nexus-living-brain-ops.d.ts +28 -3
- package/dist/nexus-living-brain-ops.d.ts.map +1 -1
- package/dist/nexus-tasks-bridge-ops.d.ts +11 -0
- package/dist/nexus-tasks-bridge-ops.d.ts.map +1 -1
- package/dist/operations/admin.d.ts +10 -4
- package/dist/operations/admin.d.ts.map +1 -1
- package/dist/operations/docs.d.ts +138 -0
- package/dist/operations/docs.d.ts.map +1 -1
- package/dist/operations/docs.js +47 -0
- package/dist/operations/docs.js.map +1 -1
- package/dist/operations/focus.d.ts +7 -0
- package/dist/operations/focus.d.ts.map +1 -1
- package/dist/operations/nexus.d.ts +7 -2
- package/dist/operations/nexus.d.ts.map +1 -1
- package/dist/operations/output-contracts-data.d.ts.map +1 -1
- package/dist/operations/output-contracts-data.js +31 -3
- package/dist/operations/output-contracts-data.js.map +1 -1
- package/dist/operations/research.d.ts +33 -0
- package/dist/operations/research.d.ts.map +1 -1
- package/dist/operations/tasks.d.ts +107 -4
- package/dist/operations/tasks.d.ts.map +1 -1
- package/dist/operations/tasks.js +5 -0
- package/dist/operations/tasks.js.map +1 -1
- package/dist/operations/validate.d.ts +23 -0
- package/dist/operations/validate.d.ts.map +1 -1
- package/dist/package-artifact.d.ts +112 -0
- package/dist/package-artifact.d.ts.map +1 -0
- package/dist/package-artifact.js +8 -0
- package/dist/package-artifact.js.map +1 -0
- package/dist/project-context.d.ts +18 -0
- package/dist/project-context.d.ts.map +1 -1
- package/dist/release/evidence-atoms.d.ts +10 -0
- package/dist/release/evidence-atoms.d.ts.map +1 -1
- package/dist/release/evidence-atoms.js +6 -0
- package/dist/release/evidence-atoms.js.map +1 -1
- package/dist/release/plan.d.ts +6 -6
- package/dist/resource-governor.d.ts +114 -0
- package/dist/resource-governor.d.ts.map +1 -1
- package/dist/resource-governor.js.map +1 -1
- package/dist/supervisor-ipc/messages.d.ts +6 -6
- package/dist/task-record.d.ts +25 -4
- package/dist/task-record.d.ts.map +1 -1
- package/dist/task.d.ts +55 -36
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js.map +1 -1
- package/dist/tasks/archive.d.ts +3 -3
- package/dist/templates/manifest.d.ts +1 -1
- package/dist/workgraph.d.ts +5 -3
- package/dist/workgraph.d.ts.map +1 -1
- package/dist/workgraph.js +19 -0
- package/dist/workgraph.js.map +1 -1
- package/package.json +2 -2
- package/schemas/gate-result.schema.json +350 -1
- package/src/__tests__/__snapshots__/operations-registry.test.ts.snap +1 -1
- package/src/__tests__/acceptance-gate.test.ts +282 -1
- package/src/__tests__/evidence-atom-schema.test.ts +17 -14
- package/src/__tests__/memory-wire-shapes.test.ts +2 -0
- package/src/__tests__/operations-registry.test.ts +26 -0
- package/src/acceptance-gate-schema.ts +320 -14
- package/src/acceptance-gate.ts +144 -11
- package/src/audit.ts +72 -2
- package/src/backup-manifest.ts +88 -0
- package/src/caamp-markers.ts +22 -0
- package/src/capabilities.ts +311 -0
- package/src/code-symbol.ts +37 -0
- package/src/data-accessor.ts +16 -0
- package/src/dispatch/__tests__/tasks-gateway-crud-ops.test.ts +31 -1
- package/src/dispatch/operations-registry.ts +719 -3
- package/src/docs-taxonomy.ts +26 -0
- package/src/evidence-atom-schema.ts +10 -9
- package/src/graph.ts +326 -2
- package/src/index.ts +45 -1
- package/src/invariants/adr-070-orchestration.ts +2 -1
- package/src/invariants/adr-073-saga.ts +2 -2
- package/src/jobs.ts +382 -3
- package/src/knowledge-health.ts +748 -0
- package/src/memory/observe.ts +4 -2
- package/src/memory/search.ts +4 -0
- package/src/nexus-living-brain-ops.ts +34 -3
- package/src/nexus-tasks-bridge-ops.ts +12 -0
- package/src/operations/admin.ts +11 -4
- package/src/operations/docs.ts +153 -0
- package/src/operations/focus.ts +11 -0
- package/src/operations/nexus.ts +7 -1
- package/src/operations/output-contracts-data.ts +33 -3
- package/src/operations/research.ts +36 -0
- package/src/operations/tasks.ts +116 -4
- package/src/operations/validate.ts +24 -0
- package/src/package-artifact.ts +127 -0
- package/src/project-context.ts +19 -0
- package/src/release/evidence-atoms.ts +6 -0
- package/src/resource-governor.ts +132 -0
- package/src/task-record.ts +27 -4
- package/src/task.ts +58 -36
- package/src/workgraph.ts +19 -0
|
@@ -48,8 +48,138 @@ export function defineDomain(_domain: CanonicalDomain, ops: OperationDef[]): Ope
|
|
|
48
48
|
// OPERATIONS — the authoritative registry data
|
|
49
49
|
// ---------------------------------------------------------------------------
|
|
50
50
|
|
|
51
|
+
// Requirement commands carry JSON on the wire; the SDK validates the typed gate.
|
|
52
|
+
const requirementTaskParam: ParamDef = {
|
|
53
|
+
name: 'taskId',
|
|
54
|
+
type: 'string',
|
|
55
|
+
required: true,
|
|
56
|
+
description: 'Task that owns the requirement gates',
|
|
57
|
+
cli: { positional: true },
|
|
58
|
+
};
|
|
59
|
+
|
|
51
60
|
/** The single source of truth for all operations in CLEO. */
|
|
52
61
|
export const OPERATIONS: OperationDef[] = [
|
|
62
|
+
{
|
|
63
|
+
gateway: 'mutate',
|
|
64
|
+
domain: 'tasks',
|
|
65
|
+
operation: 'req.add',
|
|
66
|
+
description: 'Add a validated typed requirement gate without executing it',
|
|
67
|
+
tier: 1,
|
|
68
|
+
idempotent: false,
|
|
69
|
+
sessionRequired: true,
|
|
70
|
+
requiredParams: ['taskId', 'gate'],
|
|
71
|
+
params: [
|
|
72
|
+
requirementTaskParam,
|
|
73
|
+
{
|
|
74
|
+
name: 'gate',
|
|
75
|
+
type: 'string',
|
|
76
|
+
required: true,
|
|
77
|
+
description: 'AcceptanceGate JSON; must include kind, description and kind-specific fields',
|
|
78
|
+
cli: { flag: 'gate' },
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
inputSchema: {
|
|
82
|
+
operation: 'tasks.req.add',
|
|
83
|
+
schema: {
|
|
84
|
+
type: 'object',
|
|
85
|
+
required: ['taskId', 'gate'],
|
|
86
|
+
additionalProperties: false,
|
|
87
|
+
properties: {
|
|
88
|
+
taskId: { type: 'string', minLength: 1 },
|
|
89
|
+
gate: { type: 'string', minLength: 1 },
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
examples: [
|
|
93
|
+
{
|
|
94
|
+
name: 'test',
|
|
95
|
+
value: {
|
|
96
|
+
taskId: 'T121',
|
|
97
|
+
gate: '{"kind":"test","command":"node","args":["verify.mjs"],"expect":"exit0","description":"Task harness passes","req":"PARTNER-121"}',
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
gateway: 'query',
|
|
105
|
+
domain: 'tasks',
|
|
106
|
+
operation: 'req.list',
|
|
107
|
+
description: 'List named typed requirement gates without executing them',
|
|
108
|
+
tier: 1,
|
|
109
|
+
idempotent: true,
|
|
110
|
+
sessionRequired: false,
|
|
111
|
+
requiredParams: ['taskId'],
|
|
112
|
+
params: [requirementTaskParam],
|
|
113
|
+
inputSchema: {
|
|
114
|
+
operation: 'tasks.req.list',
|
|
115
|
+
schema: {
|
|
116
|
+
type: 'object',
|
|
117
|
+
required: ['taskId'],
|
|
118
|
+
additionalProperties: false,
|
|
119
|
+
properties: { taskId: { type: 'string', minLength: 1 } },
|
|
120
|
+
},
|
|
121
|
+
examples: [{ name: 'task', value: { taskId: 'T121' } }],
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
gateway: 'query',
|
|
126
|
+
domain: 'tasks',
|
|
127
|
+
operation: 'req.migrate.preview',
|
|
128
|
+
description: 'Preview typed-gate migration proposals without writing',
|
|
129
|
+
tier: 1,
|
|
130
|
+
idempotent: true,
|
|
131
|
+
sessionRequired: false,
|
|
132
|
+
requiredParams: ['taskId'],
|
|
133
|
+
params: [
|
|
134
|
+
requirementTaskParam,
|
|
135
|
+
{
|
|
136
|
+
name: 'apply',
|
|
137
|
+
type: 'boolean',
|
|
138
|
+
required: false,
|
|
139
|
+
description: 'Must be absent or false for preview',
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
inputSchema: {
|
|
143
|
+
operation: 'tasks.req.migrate.preview',
|
|
144
|
+
schema: {
|
|
145
|
+
type: 'object',
|
|
146
|
+
required: ['taskId'],
|
|
147
|
+
additionalProperties: false,
|
|
148
|
+
properties: { taskId: { type: 'string', minLength: 1 }, apply: { const: false } },
|
|
149
|
+
},
|
|
150
|
+
examples: [{ name: 'preview', value: { taskId: 'T121', apply: false } }],
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
gateway: 'mutate',
|
|
155
|
+
domain: 'tasks',
|
|
156
|
+
operation: 'req.migrate',
|
|
157
|
+
description: 'Explicitly apply validated typed-gate migration proposals',
|
|
158
|
+
tier: 1,
|
|
159
|
+
idempotent: false,
|
|
160
|
+
sessionRequired: true,
|
|
161
|
+
requiredParams: ['taskId', 'apply'],
|
|
162
|
+
params: [
|
|
163
|
+
requirementTaskParam,
|
|
164
|
+
{
|
|
165
|
+
name: 'apply',
|
|
166
|
+
type: 'boolean',
|
|
167
|
+
required: true,
|
|
168
|
+
description: 'Must be true to apply proposals',
|
|
169
|
+
cli: { flag: 'apply' },
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
inputSchema: {
|
|
173
|
+
operation: 'tasks.req.migrate',
|
|
174
|
+
schema: {
|
|
175
|
+
type: 'object',
|
|
176
|
+
required: ['taskId', 'apply'],
|
|
177
|
+
additionalProperties: false,
|
|
178
|
+
properties: { taskId: { type: 'string', minLength: 1 }, apply: { const: true } },
|
|
179
|
+
},
|
|
180
|
+
examples: [{ name: 'apply', value: { taskId: 'T121', apply: true } }],
|
|
181
|
+
},
|
|
182
|
+
},
|
|
53
183
|
{
|
|
54
184
|
gateway: 'query',
|
|
55
185
|
domain: 'tasks',
|
|
@@ -288,6 +418,13 @@ export const OPERATIONS: OperationDef[] = [
|
|
|
288
418
|
sessionRequired: false,
|
|
289
419
|
requiredParams: [],
|
|
290
420
|
params: [
|
|
421
|
+
{
|
|
422
|
+
name: 'includeArchive',
|
|
423
|
+
type: 'boolean',
|
|
424
|
+
required: false,
|
|
425
|
+
description: 'Include archived rows under the same filters',
|
|
426
|
+
cli: { flag: 'include-archive' },
|
|
427
|
+
},
|
|
291
428
|
{ name: 'parent', type: 'string', required: false, description: 'Filter by parent task ID' },
|
|
292
429
|
{ name: 'status', type: 'string', required: false, description: 'Filter by task status' },
|
|
293
430
|
{ name: 'priority', type: 'string', required: false, description: 'Filter by task priority' },
|
|
@@ -319,7 +456,7 @@ export const OPERATIONS: OperationDef[] = [
|
|
|
319
456
|
type: 'number',
|
|
320
457
|
required: false,
|
|
321
458
|
description:
|
|
322
|
-
'Maximum number of tasks to return (default 10).
|
|
459
|
+
'Maximum number of tasks to return (default 10). --all or --limit 0 returns every match.',
|
|
323
460
|
},
|
|
324
461
|
{
|
|
325
462
|
name: 'offset',
|
|
@@ -1674,6 +1811,36 @@ export const OPERATIONS: OperationDef[] = [
|
|
|
1674
1811
|
},
|
|
1675
1812
|
] satisfies ParamDef[],
|
|
1676
1813
|
},
|
|
1814
|
+
// T12308: the typed-gate runner `cleo verify <id> --run`. A query — it
|
|
1815
|
+
// executes the gates and reports them, and records nothing. Documented as
|
|
1816
|
+
// the canonical driver since T768 and emitted into every validation-stage
|
|
1817
|
+
// spawn prompt, but the flag had been dropped from the command.
|
|
1818
|
+
{
|
|
1819
|
+
gateway: 'query',
|
|
1820
|
+
domain: 'check',
|
|
1821
|
+
operation: 'gate.run',
|
|
1822
|
+
description:
|
|
1823
|
+
"check.gate.run (query) — execute a task's typed acceptance gates and report results; persists nothing (T12308)",
|
|
1824
|
+
tier: 1,
|
|
1825
|
+
idempotent: false,
|
|
1826
|
+
sessionRequired: false,
|
|
1827
|
+
requiredParams: ['taskId'],
|
|
1828
|
+
params: [
|
|
1829
|
+
{
|
|
1830
|
+
name: 'taskId',
|
|
1831
|
+
type: 'string',
|
|
1832
|
+
required: true,
|
|
1833
|
+
description: 'Task whose typed gates should run',
|
|
1834
|
+
cli: { positional: true },
|
|
1835
|
+
},
|
|
1836
|
+
{
|
|
1837
|
+
name: 'agent',
|
|
1838
|
+
type: 'string',
|
|
1839
|
+
required: false,
|
|
1840
|
+
description: 'Actor attribution recorded on each gate result',
|
|
1841
|
+
},
|
|
1842
|
+
] satisfies ParamDef[],
|
|
1843
|
+
},
|
|
1677
1844
|
// check.archive.stats incoming from admin (T5615)
|
|
1678
1845
|
{
|
|
1679
1846
|
gateway: 'query',
|
|
@@ -2497,7 +2664,7 @@ export const OPERATIONS: OperationDef[] = [
|
|
|
2497
2664
|
type: 'string',
|
|
2498
2665
|
required: false,
|
|
2499
2666
|
description: 'Task type',
|
|
2500
|
-
enum: ['epic', 'task', 'subtask'] as const,
|
|
2667
|
+
enum: ['saga', 'epic', 'task', 'subtask'] as const,
|
|
2501
2668
|
cli: { flag: 'type', short: '-t' },
|
|
2502
2669
|
},
|
|
2503
2670
|
{
|
|
@@ -2550,6 +2717,73 @@ export const OPERATIONS: OperationDef[] = [
|
|
|
2550
2717
|
description: 'Initial note entry for the task',
|
|
2551
2718
|
cli: { flag: 'notes' },
|
|
2552
2719
|
},
|
|
2720
|
+
{
|
|
2721
|
+
name: 'dependsWaiver',
|
|
2722
|
+
type: 'string',
|
|
2723
|
+
required: false,
|
|
2724
|
+
description: 'Nonempty reason waiving dependencies for explicit critical priority',
|
|
2725
|
+
cli: { flag: 'depends-waiver' },
|
|
2726
|
+
},
|
|
2727
|
+
{
|
|
2728
|
+
name: 'files',
|
|
2729
|
+
type: 'array',
|
|
2730
|
+
required: false,
|
|
2731
|
+
description: 'Associated repository file paths',
|
|
2732
|
+
cli: { flag: 'files' },
|
|
2733
|
+
},
|
|
2734
|
+
{
|
|
2735
|
+
name: 'dryRun',
|
|
2736
|
+
type: 'boolean',
|
|
2737
|
+
required: false,
|
|
2738
|
+
description: 'Preview creation without task or committed audit writes',
|
|
2739
|
+
cli: { flag: 'dry-run' },
|
|
2740
|
+
},
|
|
2741
|
+
{
|
|
2742
|
+
name: 'parentSearch',
|
|
2743
|
+
type: 'string',
|
|
2744
|
+
required: false,
|
|
2745
|
+
description: 'Search term for resolving the parent task',
|
|
2746
|
+
cli: { flag: 'parent-search' },
|
|
2747
|
+
},
|
|
2748
|
+
{
|
|
2749
|
+
name: 'kind',
|
|
2750
|
+
type: 'string',
|
|
2751
|
+
required: false,
|
|
2752
|
+
description: 'Task intent, independent of hierarchy',
|
|
2753
|
+
enum: ['work', 'research', 'experiment', 'bug', 'spike', 'release'] as const,
|
|
2754
|
+
cli: { flag: 'kind' },
|
|
2755
|
+
},
|
|
2756
|
+
{
|
|
2757
|
+
name: 'scope',
|
|
2758
|
+
type: 'string',
|
|
2759
|
+
required: false,
|
|
2760
|
+
description: 'Task granularity',
|
|
2761
|
+
enum: ['project', 'feature', 'unit'] as const,
|
|
2762
|
+
cli: { flag: 'scope' },
|
|
2763
|
+
},
|
|
2764
|
+
{
|
|
2765
|
+
name: 'severity',
|
|
2766
|
+
type: 'string',
|
|
2767
|
+
required: false,
|
|
2768
|
+
description: 'Project-authorized severity with transactional signed evidence',
|
|
2769
|
+
enum: ['P0', 'P1', 'P2', 'P3'] as const,
|
|
2770
|
+
cli: { flag: 'severity' },
|
|
2771
|
+
},
|
|
2772
|
+
{
|
|
2773
|
+
name: 'forceDuplicate',
|
|
2774
|
+
type: 'boolean',
|
|
2775
|
+
required: false,
|
|
2776
|
+
description: 'Bypass duplicate rejection with committed decision provenance',
|
|
2777
|
+
cli: { flag: 'force-duplicate' },
|
|
2778
|
+
},
|
|
2779
|
+
{
|
|
2780
|
+
name: 'autoDecompose',
|
|
2781
|
+
type: 'boolean',
|
|
2782
|
+
required: false,
|
|
2783
|
+
description:
|
|
2784
|
+
"Move the parent's text acceptance criteria onto a new first subtask when they would otherwise block this add (PM-Core V2 design-point 3) (T12298)",
|
|
2785
|
+
cli: { flag: 'auto-decompose' },
|
|
2786
|
+
},
|
|
2553
2787
|
] satisfies ParamDef[],
|
|
2554
2788
|
},
|
|
2555
2789
|
{
|
|
@@ -2785,6 +3019,20 @@ export const OPERATIONS: OperationDef[] = [
|
|
|
2785
3019
|
required: false,
|
|
2786
3020
|
description: 'Remove related-task edges by taskId',
|
|
2787
3021
|
},
|
|
3022
|
+
{
|
|
3023
|
+
name: 'phase',
|
|
3024
|
+
type: 'string',
|
|
3025
|
+
required: false,
|
|
3026
|
+
description: 'Project-defined phase, independent of pipeline stage',
|
|
3027
|
+
cli: { flag: 'phase' },
|
|
3028
|
+
},
|
|
3029
|
+
{
|
|
3030
|
+
name: 'noAutoComplete',
|
|
3031
|
+
type: 'boolean',
|
|
3032
|
+
required: false,
|
|
3033
|
+
description: 'Disable automatic parent completion',
|
|
3034
|
+
cli: { flag: 'no-auto-complete' },
|
|
3035
|
+
},
|
|
2788
3036
|
] satisfies ParamDef[],
|
|
2789
3037
|
inputSchema: tasksUpdateInputContract,
|
|
2790
3038
|
outputSchema: OUTPUT_CONTRACTS['tasks.update'],
|
|
@@ -2856,6 +3104,90 @@ export const OPERATIONS: OperationDef[] = [
|
|
|
2856
3104
|
description: 'taskId parameter',
|
|
2857
3105
|
cli: { positional: true },
|
|
2858
3106
|
},
|
|
3107
|
+
{
|
|
3108
|
+
name: 'force',
|
|
3109
|
+
type: 'boolean',
|
|
3110
|
+
required: false,
|
|
3111
|
+
description: 'Allow dependents and orphan children unless cascade is enabled',
|
|
3112
|
+
},
|
|
3113
|
+
{
|
|
3114
|
+
name: 'cascade',
|
|
3115
|
+
type: 'boolean',
|
|
3116
|
+
required: false,
|
|
3117
|
+
description: 'Archive all descendants with the selected task',
|
|
3118
|
+
},
|
|
3119
|
+
] satisfies ParamDef[],
|
|
3120
|
+
},
|
|
3121
|
+
{
|
|
3122
|
+
gateway: 'mutate',
|
|
3123
|
+
domain: 'tasks',
|
|
3124
|
+
operation: 'reconcile-scope',
|
|
3125
|
+
description:
|
|
3126
|
+
'tasks.reconcile-scope (mutate) — sweep a saga/epic subtree for tasks whose scope overlaps and propose merge/absorb/split/link; read-only unless --apply',
|
|
3127
|
+
tier: 1,
|
|
3128
|
+
idempotent: true,
|
|
3129
|
+
sessionRequired: false,
|
|
3130
|
+
requiredParams: ['rootId'],
|
|
3131
|
+
params: [
|
|
3132
|
+
{
|
|
3133
|
+
name: 'rootId',
|
|
3134
|
+
type: 'string',
|
|
3135
|
+
required: true,
|
|
3136
|
+
description: 'Saga, epic or other container to sweep (its whole subtree is considered)',
|
|
3137
|
+
cli: { positional: true },
|
|
3138
|
+
},
|
|
3139
|
+
{
|
|
3140
|
+
name: 'apply',
|
|
3141
|
+
type: 'boolean',
|
|
3142
|
+
required: false,
|
|
3143
|
+
description: 'Write the proposed `relates` edges (read-only without it)',
|
|
3144
|
+
cli: { flag: 'apply' },
|
|
3145
|
+
},
|
|
3146
|
+
{
|
|
3147
|
+
name: 'threshold',
|
|
3148
|
+
type: 'number',
|
|
3149
|
+
required: false,
|
|
3150
|
+
description: 'Report pairs at or above this similarity score, 0-1 (default 0.55)',
|
|
3151
|
+
cli: { flag: 'threshold' },
|
|
3152
|
+
},
|
|
3153
|
+
] satisfies ParamDef[],
|
|
3154
|
+
},
|
|
3155
|
+
{
|
|
3156
|
+
gateway: 'mutate',
|
|
3157
|
+
domain: 'tasks',
|
|
3158
|
+
operation: 'decompose',
|
|
3159
|
+
description:
|
|
3160
|
+
'tasks.decompose (mutate) — move a task’s free-text acceptance criteria onto a new first child, turning the leaf into a container (PM-Core V2 design-point 3)',
|
|
3161
|
+
tier: 1,
|
|
3162
|
+
idempotent: false,
|
|
3163
|
+
sessionRequired: false,
|
|
3164
|
+
requiredParams: ['taskId'],
|
|
3165
|
+
params: [
|
|
3166
|
+
{
|
|
3167
|
+
name: 'taskId',
|
|
3168
|
+
type: 'string',
|
|
3169
|
+
required: true,
|
|
3170
|
+
description: 'Task whose text acceptance criteria move to a new child',
|
|
3171
|
+
cli: { positional: true },
|
|
3172
|
+
},
|
|
3173
|
+
{
|
|
3174
|
+
name: 'childTitle',
|
|
3175
|
+
type: 'string',
|
|
3176
|
+
required: false,
|
|
3177
|
+
description: 'Title for the child that inherits the criteria (default: the parent’s)',
|
|
3178
|
+
},
|
|
3179
|
+
{
|
|
3180
|
+
name: 'childDescription',
|
|
3181
|
+
type: 'string',
|
|
3182
|
+
required: false,
|
|
3183
|
+
description: 'Description for the child (default: the parent’s)',
|
|
3184
|
+
},
|
|
3185
|
+
{
|
|
3186
|
+
name: 'dryRun',
|
|
3187
|
+
type: 'boolean',
|
|
3188
|
+
required: false,
|
|
3189
|
+
description: 'Preview the move without writing',
|
|
3190
|
+
},
|
|
2859
3191
|
] satisfies ParamDef[],
|
|
2860
3192
|
},
|
|
2861
3193
|
{
|
|
@@ -4402,7 +4734,28 @@ export const OPERATIONS: OperationDef[] = [
|
|
|
4402
4734
|
idempotent: false,
|
|
4403
4735
|
sessionRequired: false,
|
|
4404
4736
|
requiredParams: [],
|
|
4405
|
-
params: [
|
|
4737
|
+
params: [
|
|
4738
|
+
{
|
|
4739
|
+
name: 'source',
|
|
4740
|
+
type: 'string',
|
|
4741
|
+
required: false,
|
|
4742
|
+
description: 'Source of the reviewed backfill request.',
|
|
4743
|
+
},
|
|
4744
|
+
{ name: 'kind', type: 'string', required: false, description: 'Backfill classification.' },
|
|
4745
|
+
{
|
|
4746
|
+
name: 'targetTable',
|
|
4747
|
+
type: 'string',
|
|
4748
|
+
required: false,
|
|
4749
|
+
description: 'Derived brain_page_nodes target only.',
|
|
4750
|
+
},
|
|
4751
|
+
{
|
|
4752
|
+
name: 'nodeIds',
|
|
4753
|
+
type: 'array',
|
|
4754
|
+
required: false,
|
|
4755
|
+
description:
|
|
4756
|
+
'Exact qualified graph node IDs to stage; all must resolve to missing, eligible typed sources.',
|
|
4757
|
+
},
|
|
4758
|
+
],
|
|
4406
4759
|
},
|
|
4407
4760
|
{
|
|
4408
4761
|
gateway: 'mutate',
|
|
@@ -7555,6 +7908,369 @@ export const OPERATIONS: OperationDef[] = [
|
|
|
7555
7908
|
},
|
|
7556
7909
|
],
|
|
7557
7910
|
},
|
|
7911
|
+
{
|
|
7912
|
+
gateway: 'query',
|
|
7913
|
+
domain: 'docs',
|
|
7914
|
+
operation: 'status',
|
|
7915
|
+
description: 'docs.status (query) — inspect published documentation drift',
|
|
7916
|
+
tier: 1,
|
|
7917
|
+
idempotent: true,
|
|
7918
|
+
sessionRequired: false,
|
|
7919
|
+
requiredParams: [],
|
|
7920
|
+
params: [],
|
|
7921
|
+
},
|
|
7922
|
+
{
|
|
7923
|
+
gateway: 'query',
|
|
7924
|
+
domain: 'docs',
|
|
7925
|
+
operation: 'export',
|
|
7926
|
+
description: 'docs.export (query) — Export a task document',
|
|
7927
|
+
tier: 1,
|
|
7928
|
+
idempotent: true,
|
|
7929
|
+
sessionRequired: false,
|
|
7930
|
+
requiredParams: ['taskId'],
|
|
7931
|
+
params: [
|
|
7932
|
+
{
|
|
7933
|
+
name: 'taskId',
|
|
7934
|
+
type: 'string' as const,
|
|
7935
|
+
required: true,
|
|
7936
|
+
description: 'Task whose document to export',
|
|
7937
|
+
},
|
|
7938
|
+
{
|
|
7939
|
+
name: 'includeAttachments',
|
|
7940
|
+
type: 'boolean' as const,
|
|
7941
|
+
required: false,
|
|
7942
|
+
description: 'Include attachment manifest',
|
|
7943
|
+
},
|
|
7944
|
+
{
|
|
7945
|
+
name: 'includeMemoryRefs',
|
|
7946
|
+
type: 'boolean' as const,
|
|
7947
|
+
required: false,
|
|
7948
|
+
description: 'Include memory references',
|
|
7949
|
+
},
|
|
7950
|
+
],
|
|
7951
|
+
},
|
|
7952
|
+
{
|
|
7953
|
+
gateway: 'query',
|
|
7954
|
+
domain: 'docs',
|
|
7955
|
+
operation: 'search',
|
|
7956
|
+
description: 'docs.search (query) — Search document content',
|
|
7957
|
+
tier: 1,
|
|
7958
|
+
idempotent: true,
|
|
7959
|
+
sessionRequired: false,
|
|
7960
|
+
requiredParams: ['query'],
|
|
7961
|
+
params: [
|
|
7962
|
+
{
|
|
7963
|
+
name: 'query',
|
|
7964
|
+
type: 'string' as const,
|
|
7965
|
+
required: true,
|
|
7966
|
+
description: 'Document search text',
|
|
7967
|
+
},
|
|
7968
|
+
{
|
|
7969
|
+
name: 'ownerId',
|
|
7970
|
+
type: 'string' as const,
|
|
7971
|
+
required: false,
|
|
7972
|
+
description: 'Optional owner scope',
|
|
7973
|
+
},
|
|
7974
|
+
{ name: 'limit', type: 'number' as const, required: false, description: 'Maximum matches' },
|
|
7975
|
+
{
|
|
7976
|
+
name: 'type',
|
|
7977
|
+
type: 'string' as const,
|
|
7978
|
+
required: false,
|
|
7979
|
+
description: 'Document kind filter',
|
|
7980
|
+
},
|
|
7981
|
+
],
|
|
7982
|
+
},
|
|
7983
|
+
{
|
|
7984
|
+
gateway: 'query',
|
|
7985
|
+
domain: 'docs',
|
|
7986
|
+
operation: 'find',
|
|
7987
|
+
description: 'docs.find (query) — Find similar documents',
|
|
7988
|
+
tier: 1,
|
|
7989
|
+
idempotent: true,
|
|
7990
|
+
sessionRequired: false,
|
|
7991
|
+
requiredParams: ['similarSlug'],
|
|
7992
|
+
params: [
|
|
7993
|
+
{
|
|
7994
|
+
name: 'similarSlug',
|
|
7995
|
+
type: 'string' as const,
|
|
7996
|
+
required: true,
|
|
7997
|
+
description: 'Existing document slug to compare',
|
|
7998
|
+
},
|
|
7999
|
+
{ name: 'limit', type: 'number' as const, required: false, description: 'Maximum matches' },
|
|
8000
|
+
{
|
|
8001
|
+
name: 'threshold',
|
|
8002
|
+
type: 'number' as const,
|
|
8003
|
+
required: false,
|
|
8004
|
+
description: 'Minimum similarity',
|
|
8005
|
+
},
|
|
8006
|
+
{
|
|
8007
|
+
name: 'allKinds',
|
|
8008
|
+
type: 'boolean' as const,
|
|
8009
|
+
required: false,
|
|
8010
|
+
description: 'Compare all document kinds',
|
|
8011
|
+
},
|
|
8012
|
+
],
|
|
8013
|
+
},
|
|
8014
|
+
{
|
|
8015
|
+
gateway: 'query',
|
|
8016
|
+
domain: 'docs',
|
|
8017
|
+
operation: 'merge',
|
|
8018
|
+
description: 'docs.merge (query) — Preview a document merge',
|
|
8019
|
+
tier: 1,
|
|
8020
|
+
idempotent: true,
|
|
8021
|
+
sessionRequired: false,
|
|
8022
|
+
requiredParams: ['attA', 'attB'],
|
|
8023
|
+
params: [
|
|
8024
|
+
{
|
|
8025
|
+
name: 'attA',
|
|
8026
|
+
type: 'string' as const,
|
|
8027
|
+
required: true,
|
|
8028
|
+
description: 'First attachment reference',
|
|
8029
|
+
},
|
|
8030
|
+
{
|
|
8031
|
+
name: 'attB',
|
|
8032
|
+
type: 'string' as const,
|
|
8033
|
+
required: true,
|
|
8034
|
+
description: 'Second attachment reference',
|
|
8035
|
+
},
|
|
8036
|
+
{
|
|
8037
|
+
name: 'strategy',
|
|
8038
|
+
type: 'string' as const,
|
|
8039
|
+
required: false,
|
|
8040
|
+
description: 'three-way, cherry-pick, or multi-diff',
|
|
8041
|
+
},
|
|
8042
|
+
{
|
|
8043
|
+
name: 'base',
|
|
8044
|
+
type: 'string' as const,
|
|
8045
|
+
required: false,
|
|
8046
|
+
description: 'Common ancestor attachment reference',
|
|
8047
|
+
},
|
|
8048
|
+
],
|
|
8049
|
+
},
|
|
8050
|
+
{
|
|
8051
|
+
gateway: 'query',
|
|
8052
|
+
domain: 'docs',
|
|
8053
|
+
operation: 'rank',
|
|
8054
|
+
description: 'docs.rank (query) — Rank owner documents',
|
|
8055
|
+
tier: 1,
|
|
8056
|
+
idempotent: true,
|
|
8057
|
+
sessionRequired: false,
|
|
8058
|
+
requiredParams: ['ownerId'],
|
|
8059
|
+
params: [
|
|
8060
|
+
{
|
|
8061
|
+
name: 'ownerId',
|
|
8062
|
+
type: 'string' as const,
|
|
8063
|
+
required: true,
|
|
8064
|
+
description: 'Owner whose documents to rank',
|
|
8065
|
+
},
|
|
8066
|
+
{
|
|
8067
|
+
name: 'query',
|
|
8068
|
+
type: 'string' as const,
|
|
8069
|
+
required: false,
|
|
8070
|
+
description: 'Optional ranking query',
|
|
8071
|
+
},
|
|
8072
|
+
],
|
|
8073
|
+
},
|
|
8074
|
+
{
|
|
8075
|
+
gateway: 'query',
|
|
8076
|
+
domain: 'docs',
|
|
8077
|
+
operation: 'versions',
|
|
8078
|
+
description: 'docs.versions (query) — List document versions',
|
|
8079
|
+
tier: 1,
|
|
8080
|
+
idempotent: true,
|
|
8081
|
+
sessionRequired: false,
|
|
8082
|
+
requiredParams: ['ownerId'],
|
|
8083
|
+
params: [
|
|
8084
|
+
{ name: 'ownerId', type: 'string' as const, required: true, description: 'Document owner' },
|
|
8085
|
+
{
|
|
8086
|
+
name: 'name',
|
|
8087
|
+
type: 'string' as const,
|
|
8088
|
+
required: false,
|
|
8089
|
+
description: 'Optional document name',
|
|
8090
|
+
},
|
|
8091
|
+
],
|
|
8092
|
+
},
|
|
8093
|
+
{
|
|
8094
|
+
gateway: 'mutate',
|
|
8095
|
+
domain: 'docs',
|
|
8096
|
+
operation: 'publish',
|
|
8097
|
+
description: 'docs.publish (mutate) — Publish a document to a file or pull request',
|
|
8098
|
+
tier: 1,
|
|
8099
|
+
idempotent: false,
|
|
8100
|
+
sessionRequired: false,
|
|
8101
|
+
requiredParams: [],
|
|
8102
|
+
params: [
|
|
8103
|
+
{
|
|
8104
|
+
name: 'target',
|
|
8105
|
+
type: 'string' as const,
|
|
8106
|
+
required: false,
|
|
8107
|
+
description: 'Publication target: file or pr',
|
|
8108
|
+
},
|
|
8109
|
+
{
|
|
8110
|
+
name: 'ownerId',
|
|
8111
|
+
type: 'string' as const,
|
|
8112
|
+
required: false,
|
|
8113
|
+
description: 'Required for file publication',
|
|
8114
|
+
},
|
|
8115
|
+
{
|
|
8116
|
+
name: 'toPath',
|
|
8117
|
+
type: 'string' as const,
|
|
8118
|
+
required: false,
|
|
8119
|
+
description: 'Required destination for file publication',
|
|
8120
|
+
},
|
|
8121
|
+
{
|
|
8122
|
+
name: 'attachmentId',
|
|
8123
|
+
type: 'string' as const,
|
|
8124
|
+
required: false,
|
|
8125
|
+
description: 'Attachment to publish',
|
|
8126
|
+
},
|
|
8127
|
+
{
|
|
8128
|
+
name: 'slugOrId',
|
|
8129
|
+
type: 'string' as const,
|
|
8130
|
+
required: false,
|
|
8131
|
+
description: 'Required document reference for PR publication',
|
|
8132
|
+
},
|
|
8133
|
+
{
|
|
8134
|
+
name: 'slug',
|
|
8135
|
+
type: 'string' as const,
|
|
8136
|
+
required: false,
|
|
8137
|
+
description: 'Override document slug',
|
|
8138
|
+
},
|
|
8139
|
+
{
|
|
8140
|
+
name: 'type',
|
|
8141
|
+
type: 'string' as const,
|
|
8142
|
+
required: false,
|
|
8143
|
+
description: 'Override document kind',
|
|
8144
|
+
},
|
|
8145
|
+
{ name: 'title', type: 'string' as const, required: false, description: 'Override PR title' },
|
|
8146
|
+
{ name: 'body', type: 'string' as const, required: false, description: 'Override PR body' },
|
|
8147
|
+
{ name: 'base', type: 'string' as const, required: false, description: 'PR base branch' },
|
|
8148
|
+
],
|
|
8149
|
+
},
|
|
8150
|
+
{
|
|
8151
|
+
gateway: 'mutate',
|
|
8152
|
+
domain: 'docs',
|
|
8153
|
+
operation: 'publish-pr',
|
|
8154
|
+
description: 'docs.publish-pr (mutate) — Legacy alias for PR publication',
|
|
8155
|
+
tier: 1,
|
|
8156
|
+
idempotent: false,
|
|
8157
|
+
sessionRequired: false,
|
|
8158
|
+
requiredParams: ['slugOrId'],
|
|
8159
|
+
params: [
|
|
8160
|
+
{
|
|
8161
|
+
name: 'slugOrId',
|
|
8162
|
+
type: 'string' as const,
|
|
8163
|
+
required: true,
|
|
8164
|
+
description: 'Document reference to publish',
|
|
8165
|
+
},
|
|
8166
|
+
{
|
|
8167
|
+
name: 'slug',
|
|
8168
|
+
type: 'string' as const,
|
|
8169
|
+
required: false,
|
|
8170
|
+
description: 'Override document slug',
|
|
8171
|
+
},
|
|
8172
|
+
{
|
|
8173
|
+
name: 'type',
|
|
8174
|
+
type: 'string' as const,
|
|
8175
|
+
required: false,
|
|
8176
|
+
description: 'Override document kind',
|
|
8177
|
+
},
|
|
8178
|
+
{ name: 'title', type: 'string' as const, required: false, description: 'Override PR title' },
|
|
8179
|
+
{ name: 'body', type: 'string' as const, required: false, description: 'Override PR body' },
|
|
8180
|
+
{ name: 'base', type: 'string' as const, required: false, description: 'PR base branch' },
|
|
8181
|
+
],
|
|
8182
|
+
},
|
|
8183
|
+
{
|
|
8184
|
+
gateway: 'mutate',
|
|
8185
|
+
domain: 'docs',
|
|
8186
|
+
operation: 'sync',
|
|
8187
|
+
description: 'docs.sync (mutate) — Sync document content from a file',
|
|
8188
|
+
tier: 1,
|
|
8189
|
+
idempotent: false,
|
|
8190
|
+
sessionRequired: false,
|
|
8191
|
+
requiredParams: ['ownerId', 'fromPath'],
|
|
8192
|
+
params: [
|
|
8193
|
+
{ name: 'ownerId', type: 'string' as const, required: true, description: 'Document owner' },
|
|
8194
|
+
{
|
|
8195
|
+
name: 'fromPath',
|
|
8196
|
+
type: 'string' as const,
|
|
8197
|
+
required: true,
|
|
8198
|
+
description: 'Source file path',
|
|
8199
|
+
},
|
|
8200
|
+
{
|
|
8201
|
+
name: 'blobName',
|
|
8202
|
+
type: 'string' as const,
|
|
8203
|
+
required: false,
|
|
8204
|
+
description: 'Document blob name',
|
|
8205
|
+
},
|
|
8206
|
+
{
|
|
8207
|
+
name: 'contentType',
|
|
8208
|
+
type: 'string' as const,
|
|
8209
|
+
required: false,
|
|
8210
|
+
description: 'Document media type',
|
|
8211
|
+
},
|
|
8212
|
+
],
|
|
8213
|
+
},
|
|
8214
|
+
{
|
|
8215
|
+
gateway: 'mutate',
|
|
8216
|
+
domain: 'docs',
|
|
8217
|
+
operation: 'import',
|
|
8218
|
+
description: 'docs.import (mutate) — Import classified project documents',
|
|
8219
|
+
tier: 1,
|
|
8220
|
+
idempotent: false,
|
|
8221
|
+
sessionRequired: false,
|
|
8222
|
+
requiredParams: ['scanRoot'],
|
|
8223
|
+
params: [
|
|
8224
|
+
{
|
|
8225
|
+
name: 'scanRoot',
|
|
8226
|
+
type: 'string' as const,
|
|
8227
|
+
required: true,
|
|
8228
|
+
description: 'Root directory to scan',
|
|
8229
|
+
},
|
|
8230
|
+
{
|
|
8231
|
+
name: 'dryRun',
|
|
8232
|
+
type: 'boolean' as const,
|
|
8233
|
+
required: false,
|
|
8234
|
+
description: 'Preview without writing',
|
|
8235
|
+
},
|
|
8236
|
+
{
|
|
8237
|
+
name: 'force',
|
|
8238
|
+
type: 'boolean' as const,
|
|
8239
|
+
required: false,
|
|
8240
|
+
description: 'Replace conflicting import mappings',
|
|
8241
|
+
},
|
|
8242
|
+
{
|
|
8243
|
+
name: 'manifestPath',
|
|
8244
|
+
type: 'string' as const,
|
|
8245
|
+
required: false,
|
|
8246
|
+
description: 'Import manifest path',
|
|
8247
|
+
},
|
|
8248
|
+
],
|
|
8249
|
+
},
|
|
8250
|
+
{
|
|
8251
|
+
gateway: 'query',
|
|
8252
|
+
domain: 'docs',
|
|
8253
|
+
operation: 'audit',
|
|
8254
|
+
description: 'docs.audit (query) — inspect document history or verify audit chain integrity',
|
|
8255
|
+
tier: 1,
|
|
8256
|
+
idempotent: true,
|
|
8257
|
+
sessionRequired: false,
|
|
8258
|
+
requiredParams: [],
|
|
8259
|
+
params: [
|
|
8260
|
+
{
|
|
8261
|
+
name: 'slug',
|
|
8262
|
+
type: 'string' as const,
|
|
8263
|
+
required: false,
|
|
8264
|
+
description: 'Document slug whose history to inspect',
|
|
8265
|
+
},
|
|
8266
|
+
{
|
|
8267
|
+
name: 'verify',
|
|
8268
|
+
type: 'boolean' as const,
|
|
8269
|
+
required: false,
|
|
8270
|
+
description: 'Verify the full audit chain',
|
|
8271
|
+
},
|
|
8272
|
+
],
|
|
8273
|
+
},
|
|
7558
8274
|
// ── docs.generate (T798) ─────────────────────────────────────────────────
|
|
7559
8275
|
{
|
|
7560
8276
|
gateway: 'query',
|