@cleocode/contracts 2026.9.7 → 2026.9.9
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 +122 -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 +684 -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 +6 -5
- package/dist/index.d.ts.map +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/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/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 +133 -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 +689 -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 +43 -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/package-artifact.ts +127 -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
|
@@ -39,8 +39,137 @@ export function defineDomain(_domain, ops) {
|
|
|
39
39
|
// ---------------------------------------------------------------------------
|
|
40
40
|
// OPERATIONS — the authoritative registry data
|
|
41
41
|
// ---------------------------------------------------------------------------
|
|
42
|
+
// Requirement commands carry JSON on the wire; the SDK validates the typed gate.
|
|
43
|
+
const requirementTaskParam = {
|
|
44
|
+
name: 'taskId',
|
|
45
|
+
type: 'string',
|
|
46
|
+
required: true,
|
|
47
|
+
description: 'Task that owns the requirement gates',
|
|
48
|
+
cli: { positional: true },
|
|
49
|
+
};
|
|
42
50
|
/** The single source of truth for all operations in CLEO. */
|
|
43
51
|
export const OPERATIONS = [
|
|
52
|
+
{
|
|
53
|
+
gateway: 'mutate',
|
|
54
|
+
domain: 'tasks',
|
|
55
|
+
operation: 'req.add',
|
|
56
|
+
description: 'Add a validated typed requirement gate without executing it',
|
|
57
|
+
tier: 1,
|
|
58
|
+
idempotent: false,
|
|
59
|
+
sessionRequired: true,
|
|
60
|
+
requiredParams: ['taskId', 'gate'],
|
|
61
|
+
params: [
|
|
62
|
+
requirementTaskParam,
|
|
63
|
+
{
|
|
64
|
+
name: 'gate',
|
|
65
|
+
type: 'string',
|
|
66
|
+
required: true,
|
|
67
|
+
description: 'AcceptanceGate JSON; must include kind, description and kind-specific fields',
|
|
68
|
+
cli: { flag: 'gate' },
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
inputSchema: {
|
|
72
|
+
operation: 'tasks.req.add',
|
|
73
|
+
schema: {
|
|
74
|
+
type: 'object',
|
|
75
|
+
required: ['taskId', 'gate'],
|
|
76
|
+
additionalProperties: false,
|
|
77
|
+
properties: {
|
|
78
|
+
taskId: { type: 'string', minLength: 1 },
|
|
79
|
+
gate: { type: 'string', minLength: 1 },
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
examples: [
|
|
83
|
+
{
|
|
84
|
+
name: 'test',
|
|
85
|
+
value: {
|
|
86
|
+
taskId: 'T121',
|
|
87
|
+
gate: '{"kind":"test","command":"node","args":["verify.mjs"],"expect":"exit0","description":"Task harness passes","req":"PARTNER-121"}',
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
gateway: 'query',
|
|
95
|
+
domain: 'tasks',
|
|
96
|
+
operation: 'req.list',
|
|
97
|
+
description: 'List named typed requirement gates without executing them',
|
|
98
|
+
tier: 1,
|
|
99
|
+
idempotent: true,
|
|
100
|
+
sessionRequired: false,
|
|
101
|
+
requiredParams: ['taskId'],
|
|
102
|
+
params: [requirementTaskParam],
|
|
103
|
+
inputSchema: {
|
|
104
|
+
operation: 'tasks.req.list',
|
|
105
|
+
schema: {
|
|
106
|
+
type: 'object',
|
|
107
|
+
required: ['taskId'],
|
|
108
|
+
additionalProperties: false,
|
|
109
|
+
properties: { taskId: { type: 'string', minLength: 1 } },
|
|
110
|
+
},
|
|
111
|
+
examples: [{ name: 'task', value: { taskId: 'T121' } }],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
gateway: 'query',
|
|
116
|
+
domain: 'tasks',
|
|
117
|
+
operation: 'req.migrate.preview',
|
|
118
|
+
description: 'Preview typed-gate migration proposals without writing',
|
|
119
|
+
tier: 1,
|
|
120
|
+
idempotent: true,
|
|
121
|
+
sessionRequired: false,
|
|
122
|
+
requiredParams: ['taskId'],
|
|
123
|
+
params: [
|
|
124
|
+
requirementTaskParam,
|
|
125
|
+
{
|
|
126
|
+
name: 'apply',
|
|
127
|
+
type: 'boolean',
|
|
128
|
+
required: false,
|
|
129
|
+
description: 'Must be absent or false for preview',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
inputSchema: {
|
|
133
|
+
operation: 'tasks.req.migrate.preview',
|
|
134
|
+
schema: {
|
|
135
|
+
type: 'object',
|
|
136
|
+
required: ['taskId'],
|
|
137
|
+
additionalProperties: false,
|
|
138
|
+
properties: { taskId: { type: 'string', minLength: 1 }, apply: { const: false } },
|
|
139
|
+
},
|
|
140
|
+
examples: [{ name: 'preview', value: { taskId: 'T121', apply: false } }],
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
gateway: 'mutate',
|
|
145
|
+
domain: 'tasks',
|
|
146
|
+
operation: 'req.migrate',
|
|
147
|
+
description: 'Explicitly apply validated typed-gate migration proposals',
|
|
148
|
+
tier: 1,
|
|
149
|
+
idempotent: false,
|
|
150
|
+
sessionRequired: true,
|
|
151
|
+
requiredParams: ['taskId', 'apply'],
|
|
152
|
+
params: [
|
|
153
|
+
requirementTaskParam,
|
|
154
|
+
{
|
|
155
|
+
name: 'apply',
|
|
156
|
+
type: 'boolean',
|
|
157
|
+
required: true,
|
|
158
|
+
description: 'Must be true to apply proposals',
|
|
159
|
+
cli: { flag: 'apply' },
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
inputSchema: {
|
|
163
|
+
operation: 'tasks.req.migrate',
|
|
164
|
+
schema: {
|
|
165
|
+
type: 'object',
|
|
166
|
+
required: ['taskId', 'apply'],
|
|
167
|
+
additionalProperties: false,
|
|
168
|
+
properties: { taskId: { type: 'string', minLength: 1 }, apply: { const: true } },
|
|
169
|
+
},
|
|
170
|
+
examples: [{ name: 'apply', value: { taskId: 'T121', apply: true } }],
|
|
171
|
+
},
|
|
172
|
+
},
|
|
44
173
|
{
|
|
45
174
|
gateway: 'query',
|
|
46
175
|
domain: 'tasks',
|
|
@@ -275,6 +404,13 @@ export const OPERATIONS = [
|
|
|
275
404
|
sessionRequired: false,
|
|
276
405
|
requiredParams: [],
|
|
277
406
|
params: [
|
|
407
|
+
{
|
|
408
|
+
name: 'includeArchive',
|
|
409
|
+
type: 'boolean',
|
|
410
|
+
required: false,
|
|
411
|
+
description: 'Include archived rows under the same filters',
|
|
412
|
+
cli: { flag: 'include-archive' },
|
|
413
|
+
},
|
|
278
414
|
{ name: 'parent', type: 'string', required: false, description: 'Filter by parent task ID' },
|
|
279
415
|
{ name: 'status', type: 'string', required: false, description: 'Filter by task status' },
|
|
280
416
|
{ name: 'priority', type: 'string', required: false, description: 'Filter by task priority' },
|
|
@@ -303,7 +439,7 @@ export const OPERATIONS = [
|
|
|
303
439
|
name: 'limit',
|
|
304
440
|
type: 'number',
|
|
305
441
|
required: false,
|
|
306
|
-
description: 'Maximum number of tasks to return (default 10).
|
|
442
|
+
description: 'Maximum number of tasks to return (default 10). --all or --limit 0 returns every match.',
|
|
307
443
|
},
|
|
308
444
|
{
|
|
309
445
|
name: 'offset',
|
|
@@ -2435,7 +2571,7 @@ export const OPERATIONS = [
|
|
|
2435
2571
|
type: 'string',
|
|
2436
2572
|
required: false,
|
|
2437
2573
|
description: 'Task type',
|
|
2438
|
-
enum: ['epic', 'task', 'subtask'],
|
|
2574
|
+
enum: ['saga', 'epic', 'task', 'subtask'],
|
|
2439
2575
|
cli: { flag: 'type', short: '-t' },
|
|
2440
2576
|
},
|
|
2441
2577
|
{
|
|
@@ -2488,6 +2624,72 @@ export const OPERATIONS = [
|
|
|
2488
2624
|
description: 'Initial note entry for the task',
|
|
2489
2625
|
cli: { flag: 'notes' },
|
|
2490
2626
|
},
|
|
2627
|
+
{
|
|
2628
|
+
name: 'dependsWaiver',
|
|
2629
|
+
type: 'string',
|
|
2630
|
+
required: false,
|
|
2631
|
+
description: 'Nonempty reason waiving dependencies for explicit critical priority',
|
|
2632
|
+
cli: { flag: 'depends-waiver' },
|
|
2633
|
+
},
|
|
2634
|
+
{
|
|
2635
|
+
name: 'files',
|
|
2636
|
+
type: 'array',
|
|
2637
|
+
required: false,
|
|
2638
|
+
description: 'Associated repository file paths',
|
|
2639
|
+
cli: { flag: 'files' },
|
|
2640
|
+
},
|
|
2641
|
+
{
|
|
2642
|
+
name: 'dryRun',
|
|
2643
|
+
type: 'boolean',
|
|
2644
|
+
required: false,
|
|
2645
|
+
description: 'Preview creation without task or committed audit writes',
|
|
2646
|
+
cli: { flag: 'dry-run' },
|
|
2647
|
+
},
|
|
2648
|
+
{
|
|
2649
|
+
name: 'parentSearch',
|
|
2650
|
+
type: 'string',
|
|
2651
|
+
required: false,
|
|
2652
|
+
description: 'Search term for resolving the parent task',
|
|
2653
|
+
cli: { flag: 'parent-search' },
|
|
2654
|
+
},
|
|
2655
|
+
{
|
|
2656
|
+
name: 'kind',
|
|
2657
|
+
type: 'string',
|
|
2658
|
+
required: false,
|
|
2659
|
+
description: 'Task intent, independent of hierarchy',
|
|
2660
|
+
enum: ['work', 'research', 'experiment', 'bug', 'spike', 'release'],
|
|
2661
|
+
cli: { flag: 'kind' },
|
|
2662
|
+
},
|
|
2663
|
+
{
|
|
2664
|
+
name: 'scope',
|
|
2665
|
+
type: 'string',
|
|
2666
|
+
required: false,
|
|
2667
|
+
description: 'Task granularity',
|
|
2668
|
+
enum: ['project', 'feature', 'unit'],
|
|
2669
|
+
cli: { flag: 'scope' },
|
|
2670
|
+
},
|
|
2671
|
+
{
|
|
2672
|
+
name: 'severity',
|
|
2673
|
+
type: 'string',
|
|
2674
|
+
required: false,
|
|
2675
|
+
description: 'Project-authorized severity with transactional signed evidence',
|
|
2676
|
+
enum: ['P0', 'P1', 'P2', 'P3'],
|
|
2677
|
+
cli: { flag: 'severity' },
|
|
2678
|
+
},
|
|
2679
|
+
{
|
|
2680
|
+
name: 'forceDuplicate',
|
|
2681
|
+
type: 'boolean',
|
|
2682
|
+
required: false,
|
|
2683
|
+
description: 'Bypass duplicate rejection with committed decision provenance',
|
|
2684
|
+
cli: { flag: 'force-duplicate' },
|
|
2685
|
+
},
|
|
2686
|
+
{
|
|
2687
|
+
name: 'autoDecompose',
|
|
2688
|
+
type: 'boolean',
|
|
2689
|
+
required: false,
|
|
2690
|
+
description: "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)",
|
|
2691
|
+
cli: { flag: 'auto-decompose' },
|
|
2692
|
+
},
|
|
2491
2693
|
],
|
|
2492
2694
|
},
|
|
2493
2695
|
{
|
|
@@ -2722,6 +2924,20 @@ export const OPERATIONS = [
|
|
|
2722
2924
|
required: false,
|
|
2723
2925
|
description: 'Remove related-task edges by taskId',
|
|
2724
2926
|
},
|
|
2927
|
+
{
|
|
2928
|
+
name: 'phase',
|
|
2929
|
+
type: 'string',
|
|
2930
|
+
required: false,
|
|
2931
|
+
description: 'Project-defined phase, independent of pipeline stage',
|
|
2932
|
+
cli: { flag: 'phase' },
|
|
2933
|
+
},
|
|
2934
|
+
{
|
|
2935
|
+
name: 'noAutoComplete',
|
|
2936
|
+
type: 'boolean',
|
|
2937
|
+
required: false,
|
|
2938
|
+
description: 'Disable automatic parent completion',
|
|
2939
|
+
cli: { flag: 'no-auto-complete' },
|
|
2940
|
+
},
|
|
2725
2941
|
],
|
|
2726
2942
|
inputSchema: tasksUpdateInputContract,
|
|
2727
2943
|
outputSchema: OUTPUT_CONTRACTS['tasks.update'],
|
|
@@ -2792,6 +3008,88 @@ export const OPERATIONS = [
|
|
|
2792
3008
|
description: 'taskId parameter',
|
|
2793
3009
|
cli: { positional: true },
|
|
2794
3010
|
},
|
|
3011
|
+
{
|
|
3012
|
+
name: 'force',
|
|
3013
|
+
type: 'boolean',
|
|
3014
|
+
required: false,
|
|
3015
|
+
description: 'Allow dependents and orphan children unless cascade is enabled',
|
|
3016
|
+
},
|
|
3017
|
+
{
|
|
3018
|
+
name: 'cascade',
|
|
3019
|
+
type: 'boolean',
|
|
3020
|
+
required: false,
|
|
3021
|
+
description: 'Archive all descendants with the selected task',
|
|
3022
|
+
},
|
|
3023
|
+
],
|
|
3024
|
+
},
|
|
3025
|
+
{
|
|
3026
|
+
gateway: 'mutate',
|
|
3027
|
+
domain: 'tasks',
|
|
3028
|
+
operation: 'reconcile-scope',
|
|
3029
|
+
description: 'tasks.reconcile-scope (mutate) — sweep a saga/epic subtree for tasks whose scope overlaps and propose merge/absorb/split/link; read-only unless --apply',
|
|
3030
|
+
tier: 1,
|
|
3031
|
+
idempotent: true,
|
|
3032
|
+
sessionRequired: false,
|
|
3033
|
+
requiredParams: ['rootId'],
|
|
3034
|
+
params: [
|
|
3035
|
+
{
|
|
3036
|
+
name: 'rootId',
|
|
3037
|
+
type: 'string',
|
|
3038
|
+
required: true,
|
|
3039
|
+
description: 'Saga, epic or other container to sweep (its whole subtree is considered)',
|
|
3040
|
+
cli: { positional: true },
|
|
3041
|
+
},
|
|
3042
|
+
{
|
|
3043
|
+
name: 'apply',
|
|
3044
|
+
type: 'boolean',
|
|
3045
|
+
required: false,
|
|
3046
|
+
description: 'Write the proposed `relates` edges (read-only without it)',
|
|
3047
|
+
cli: { flag: 'apply' },
|
|
3048
|
+
},
|
|
3049
|
+
{
|
|
3050
|
+
name: 'threshold',
|
|
3051
|
+
type: 'number',
|
|
3052
|
+
required: false,
|
|
3053
|
+
description: 'Report pairs at or above this similarity score, 0-1 (default 0.55)',
|
|
3054
|
+
cli: { flag: 'threshold' },
|
|
3055
|
+
},
|
|
3056
|
+
],
|
|
3057
|
+
},
|
|
3058
|
+
{
|
|
3059
|
+
gateway: 'mutate',
|
|
3060
|
+
domain: 'tasks',
|
|
3061
|
+
operation: 'decompose',
|
|
3062
|
+
description: '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)',
|
|
3063
|
+
tier: 1,
|
|
3064
|
+
idempotent: false,
|
|
3065
|
+
sessionRequired: false,
|
|
3066
|
+
requiredParams: ['taskId'],
|
|
3067
|
+
params: [
|
|
3068
|
+
{
|
|
3069
|
+
name: 'taskId',
|
|
3070
|
+
type: 'string',
|
|
3071
|
+
required: true,
|
|
3072
|
+
description: 'Task whose text acceptance criteria move to a new child',
|
|
3073
|
+
cli: { positional: true },
|
|
3074
|
+
},
|
|
3075
|
+
{
|
|
3076
|
+
name: 'childTitle',
|
|
3077
|
+
type: 'string',
|
|
3078
|
+
required: false,
|
|
3079
|
+
description: 'Title for the child that inherits the criteria (default: the parent’s)',
|
|
3080
|
+
},
|
|
3081
|
+
{
|
|
3082
|
+
name: 'childDescription',
|
|
3083
|
+
type: 'string',
|
|
3084
|
+
required: false,
|
|
3085
|
+
description: 'Description for the child (default: the parent’s)',
|
|
3086
|
+
},
|
|
3087
|
+
{
|
|
3088
|
+
name: 'dryRun',
|
|
3089
|
+
type: 'boolean',
|
|
3090
|
+
required: false,
|
|
3091
|
+
description: 'Preview the move without writing',
|
|
3092
|
+
},
|
|
2795
3093
|
],
|
|
2796
3094
|
},
|
|
2797
3095
|
{
|
|
@@ -4299,7 +4597,27 @@ export const OPERATIONS = [
|
|
|
4299
4597
|
idempotent: false,
|
|
4300
4598
|
sessionRequired: false,
|
|
4301
4599
|
requiredParams: [],
|
|
4302
|
-
params: [
|
|
4600
|
+
params: [
|
|
4601
|
+
{
|
|
4602
|
+
name: 'source',
|
|
4603
|
+
type: 'string',
|
|
4604
|
+
required: false,
|
|
4605
|
+
description: 'Source of the reviewed backfill request.',
|
|
4606
|
+
},
|
|
4607
|
+
{ name: 'kind', type: 'string', required: false, description: 'Backfill classification.' },
|
|
4608
|
+
{
|
|
4609
|
+
name: 'targetTable',
|
|
4610
|
+
type: 'string',
|
|
4611
|
+
required: false,
|
|
4612
|
+
description: 'Derived brain_page_nodes target only.',
|
|
4613
|
+
},
|
|
4614
|
+
{
|
|
4615
|
+
name: 'nodeIds',
|
|
4616
|
+
type: 'array',
|
|
4617
|
+
required: false,
|
|
4618
|
+
description: 'Exact qualified graph node IDs to stage; all must resolve to missing, eligible typed sources.',
|
|
4619
|
+
},
|
|
4620
|
+
],
|
|
4303
4621
|
},
|
|
4304
4622
|
{
|
|
4305
4623
|
gateway: 'mutate',
|
|
@@ -7337,6 +7655,369 @@ export const OPERATIONS = [
|
|
|
7337
7655
|
},
|
|
7338
7656
|
],
|
|
7339
7657
|
},
|
|
7658
|
+
{
|
|
7659
|
+
gateway: 'query',
|
|
7660
|
+
domain: 'docs',
|
|
7661
|
+
operation: 'status',
|
|
7662
|
+
description: 'docs.status (query) — inspect published documentation drift',
|
|
7663
|
+
tier: 1,
|
|
7664
|
+
idempotent: true,
|
|
7665
|
+
sessionRequired: false,
|
|
7666
|
+
requiredParams: [],
|
|
7667
|
+
params: [],
|
|
7668
|
+
},
|
|
7669
|
+
{
|
|
7670
|
+
gateway: 'query',
|
|
7671
|
+
domain: 'docs',
|
|
7672
|
+
operation: 'export',
|
|
7673
|
+
description: 'docs.export (query) — Export a task document',
|
|
7674
|
+
tier: 1,
|
|
7675
|
+
idempotent: true,
|
|
7676
|
+
sessionRequired: false,
|
|
7677
|
+
requiredParams: ['taskId'],
|
|
7678
|
+
params: [
|
|
7679
|
+
{
|
|
7680
|
+
name: 'taskId',
|
|
7681
|
+
type: 'string',
|
|
7682
|
+
required: true,
|
|
7683
|
+
description: 'Task whose document to export',
|
|
7684
|
+
},
|
|
7685
|
+
{
|
|
7686
|
+
name: 'includeAttachments',
|
|
7687
|
+
type: 'boolean',
|
|
7688
|
+
required: false,
|
|
7689
|
+
description: 'Include attachment manifest',
|
|
7690
|
+
},
|
|
7691
|
+
{
|
|
7692
|
+
name: 'includeMemoryRefs',
|
|
7693
|
+
type: 'boolean',
|
|
7694
|
+
required: false,
|
|
7695
|
+
description: 'Include memory references',
|
|
7696
|
+
},
|
|
7697
|
+
],
|
|
7698
|
+
},
|
|
7699
|
+
{
|
|
7700
|
+
gateway: 'query',
|
|
7701
|
+
domain: 'docs',
|
|
7702
|
+
operation: 'search',
|
|
7703
|
+
description: 'docs.search (query) — Search document content',
|
|
7704
|
+
tier: 1,
|
|
7705
|
+
idempotent: true,
|
|
7706
|
+
sessionRequired: false,
|
|
7707
|
+
requiredParams: ['query'],
|
|
7708
|
+
params: [
|
|
7709
|
+
{
|
|
7710
|
+
name: 'query',
|
|
7711
|
+
type: 'string',
|
|
7712
|
+
required: true,
|
|
7713
|
+
description: 'Document search text',
|
|
7714
|
+
},
|
|
7715
|
+
{
|
|
7716
|
+
name: 'ownerId',
|
|
7717
|
+
type: 'string',
|
|
7718
|
+
required: false,
|
|
7719
|
+
description: 'Optional owner scope',
|
|
7720
|
+
},
|
|
7721
|
+
{ name: 'limit', type: 'number', required: false, description: 'Maximum matches' },
|
|
7722
|
+
{
|
|
7723
|
+
name: 'type',
|
|
7724
|
+
type: 'string',
|
|
7725
|
+
required: false,
|
|
7726
|
+
description: 'Document kind filter',
|
|
7727
|
+
},
|
|
7728
|
+
],
|
|
7729
|
+
},
|
|
7730
|
+
{
|
|
7731
|
+
gateway: 'query',
|
|
7732
|
+
domain: 'docs',
|
|
7733
|
+
operation: 'find',
|
|
7734
|
+
description: 'docs.find (query) — Find similar documents',
|
|
7735
|
+
tier: 1,
|
|
7736
|
+
idempotent: true,
|
|
7737
|
+
sessionRequired: false,
|
|
7738
|
+
requiredParams: ['similarSlug'],
|
|
7739
|
+
params: [
|
|
7740
|
+
{
|
|
7741
|
+
name: 'similarSlug',
|
|
7742
|
+
type: 'string',
|
|
7743
|
+
required: true,
|
|
7744
|
+
description: 'Existing document slug to compare',
|
|
7745
|
+
},
|
|
7746
|
+
{ name: 'limit', type: 'number', required: false, description: 'Maximum matches' },
|
|
7747
|
+
{
|
|
7748
|
+
name: 'threshold',
|
|
7749
|
+
type: 'number',
|
|
7750
|
+
required: false,
|
|
7751
|
+
description: 'Minimum similarity',
|
|
7752
|
+
},
|
|
7753
|
+
{
|
|
7754
|
+
name: 'allKinds',
|
|
7755
|
+
type: 'boolean',
|
|
7756
|
+
required: false,
|
|
7757
|
+
description: 'Compare all document kinds',
|
|
7758
|
+
},
|
|
7759
|
+
],
|
|
7760
|
+
},
|
|
7761
|
+
{
|
|
7762
|
+
gateway: 'query',
|
|
7763
|
+
domain: 'docs',
|
|
7764
|
+
operation: 'merge',
|
|
7765
|
+
description: 'docs.merge (query) — Preview a document merge',
|
|
7766
|
+
tier: 1,
|
|
7767
|
+
idempotent: true,
|
|
7768
|
+
sessionRequired: false,
|
|
7769
|
+
requiredParams: ['attA', 'attB'],
|
|
7770
|
+
params: [
|
|
7771
|
+
{
|
|
7772
|
+
name: 'attA',
|
|
7773
|
+
type: 'string',
|
|
7774
|
+
required: true,
|
|
7775
|
+
description: 'First attachment reference',
|
|
7776
|
+
},
|
|
7777
|
+
{
|
|
7778
|
+
name: 'attB',
|
|
7779
|
+
type: 'string',
|
|
7780
|
+
required: true,
|
|
7781
|
+
description: 'Second attachment reference',
|
|
7782
|
+
},
|
|
7783
|
+
{
|
|
7784
|
+
name: 'strategy',
|
|
7785
|
+
type: 'string',
|
|
7786
|
+
required: false,
|
|
7787
|
+
description: 'three-way, cherry-pick, or multi-diff',
|
|
7788
|
+
},
|
|
7789
|
+
{
|
|
7790
|
+
name: 'base',
|
|
7791
|
+
type: 'string',
|
|
7792
|
+
required: false,
|
|
7793
|
+
description: 'Common ancestor attachment reference',
|
|
7794
|
+
},
|
|
7795
|
+
],
|
|
7796
|
+
},
|
|
7797
|
+
{
|
|
7798
|
+
gateway: 'query',
|
|
7799
|
+
domain: 'docs',
|
|
7800
|
+
operation: 'rank',
|
|
7801
|
+
description: 'docs.rank (query) — Rank owner documents',
|
|
7802
|
+
tier: 1,
|
|
7803
|
+
idempotent: true,
|
|
7804
|
+
sessionRequired: false,
|
|
7805
|
+
requiredParams: ['ownerId'],
|
|
7806
|
+
params: [
|
|
7807
|
+
{
|
|
7808
|
+
name: 'ownerId',
|
|
7809
|
+
type: 'string',
|
|
7810
|
+
required: true,
|
|
7811
|
+
description: 'Owner whose documents to rank',
|
|
7812
|
+
},
|
|
7813
|
+
{
|
|
7814
|
+
name: 'query',
|
|
7815
|
+
type: 'string',
|
|
7816
|
+
required: false,
|
|
7817
|
+
description: 'Optional ranking query',
|
|
7818
|
+
},
|
|
7819
|
+
],
|
|
7820
|
+
},
|
|
7821
|
+
{
|
|
7822
|
+
gateway: 'query',
|
|
7823
|
+
domain: 'docs',
|
|
7824
|
+
operation: 'versions',
|
|
7825
|
+
description: 'docs.versions (query) — List document versions',
|
|
7826
|
+
tier: 1,
|
|
7827
|
+
idempotent: true,
|
|
7828
|
+
sessionRequired: false,
|
|
7829
|
+
requiredParams: ['ownerId'],
|
|
7830
|
+
params: [
|
|
7831
|
+
{ name: 'ownerId', type: 'string', required: true, description: 'Document owner' },
|
|
7832
|
+
{
|
|
7833
|
+
name: 'name',
|
|
7834
|
+
type: 'string',
|
|
7835
|
+
required: false,
|
|
7836
|
+
description: 'Optional document name',
|
|
7837
|
+
},
|
|
7838
|
+
],
|
|
7839
|
+
},
|
|
7840
|
+
{
|
|
7841
|
+
gateway: 'mutate',
|
|
7842
|
+
domain: 'docs',
|
|
7843
|
+
operation: 'publish',
|
|
7844
|
+
description: 'docs.publish (mutate) — Publish a document to a file or pull request',
|
|
7845
|
+
tier: 1,
|
|
7846
|
+
idempotent: false,
|
|
7847
|
+
sessionRequired: false,
|
|
7848
|
+
requiredParams: [],
|
|
7849
|
+
params: [
|
|
7850
|
+
{
|
|
7851
|
+
name: 'target',
|
|
7852
|
+
type: 'string',
|
|
7853
|
+
required: false,
|
|
7854
|
+
description: 'Publication target: file or pr',
|
|
7855
|
+
},
|
|
7856
|
+
{
|
|
7857
|
+
name: 'ownerId',
|
|
7858
|
+
type: 'string',
|
|
7859
|
+
required: false,
|
|
7860
|
+
description: 'Required for file publication',
|
|
7861
|
+
},
|
|
7862
|
+
{
|
|
7863
|
+
name: 'toPath',
|
|
7864
|
+
type: 'string',
|
|
7865
|
+
required: false,
|
|
7866
|
+
description: 'Required destination for file publication',
|
|
7867
|
+
},
|
|
7868
|
+
{
|
|
7869
|
+
name: 'attachmentId',
|
|
7870
|
+
type: 'string',
|
|
7871
|
+
required: false,
|
|
7872
|
+
description: 'Attachment to publish',
|
|
7873
|
+
},
|
|
7874
|
+
{
|
|
7875
|
+
name: 'slugOrId',
|
|
7876
|
+
type: 'string',
|
|
7877
|
+
required: false,
|
|
7878
|
+
description: 'Required document reference for PR publication',
|
|
7879
|
+
},
|
|
7880
|
+
{
|
|
7881
|
+
name: 'slug',
|
|
7882
|
+
type: 'string',
|
|
7883
|
+
required: false,
|
|
7884
|
+
description: 'Override document slug',
|
|
7885
|
+
},
|
|
7886
|
+
{
|
|
7887
|
+
name: 'type',
|
|
7888
|
+
type: 'string',
|
|
7889
|
+
required: false,
|
|
7890
|
+
description: 'Override document kind',
|
|
7891
|
+
},
|
|
7892
|
+
{ name: 'title', type: 'string', required: false, description: 'Override PR title' },
|
|
7893
|
+
{ name: 'body', type: 'string', required: false, description: 'Override PR body' },
|
|
7894
|
+
{ name: 'base', type: 'string', required: false, description: 'PR base branch' },
|
|
7895
|
+
],
|
|
7896
|
+
},
|
|
7897
|
+
{
|
|
7898
|
+
gateway: 'mutate',
|
|
7899
|
+
domain: 'docs',
|
|
7900
|
+
operation: 'publish-pr',
|
|
7901
|
+
description: 'docs.publish-pr (mutate) — Legacy alias for PR publication',
|
|
7902
|
+
tier: 1,
|
|
7903
|
+
idempotent: false,
|
|
7904
|
+
sessionRequired: false,
|
|
7905
|
+
requiredParams: ['slugOrId'],
|
|
7906
|
+
params: [
|
|
7907
|
+
{
|
|
7908
|
+
name: 'slugOrId',
|
|
7909
|
+
type: 'string',
|
|
7910
|
+
required: true,
|
|
7911
|
+
description: 'Document reference to publish',
|
|
7912
|
+
},
|
|
7913
|
+
{
|
|
7914
|
+
name: 'slug',
|
|
7915
|
+
type: 'string',
|
|
7916
|
+
required: false,
|
|
7917
|
+
description: 'Override document slug',
|
|
7918
|
+
},
|
|
7919
|
+
{
|
|
7920
|
+
name: 'type',
|
|
7921
|
+
type: 'string',
|
|
7922
|
+
required: false,
|
|
7923
|
+
description: 'Override document kind',
|
|
7924
|
+
},
|
|
7925
|
+
{ name: 'title', type: 'string', required: false, description: 'Override PR title' },
|
|
7926
|
+
{ name: 'body', type: 'string', required: false, description: 'Override PR body' },
|
|
7927
|
+
{ name: 'base', type: 'string', required: false, description: 'PR base branch' },
|
|
7928
|
+
],
|
|
7929
|
+
},
|
|
7930
|
+
{
|
|
7931
|
+
gateway: 'mutate',
|
|
7932
|
+
domain: 'docs',
|
|
7933
|
+
operation: 'sync',
|
|
7934
|
+
description: 'docs.sync (mutate) — Sync document content from a file',
|
|
7935
|
+
tier: 1,
|
|
7936
|
+
idempotent: false,
|
|
7937
|
+
sessionRequired: false,
|
|
7938
|
+
requiredParams: ['ownerId', 'fromPath'],
|
|
7939
|
+
params: [
|
|
7940
|
+
{ name: 'ownerId', type: 'string', required: true, description: 'Document owner' },
|
|
7941
|
+
{
|
|
7942
|
+
name: 'fromPath',
|
|
7943
|
+
type: 'string',
|
|
7944
|
+
required: true,
|
|
7945
|
+
description: 'Source file path',
|
|
7946
|
+
},
|
|
7947
|
+
{
|
|
7948
|
+
name: 'blobName',
|
|
7949
|
+
type: 'string',
|
|
7950
|
+
required: false,
|
|
7951
|
+
description: 'Document blob name',
|
|
7952
|
+
},
|
|
7953
|
+
{
|
|
7954
|
+
name: 'contentType',
|
|
7955
|
+
type: 'string',
|
|
7956
|
+
required: false,
|
|
7957
|
+
description: 'Document media type',
|
|
7958
|
+
},
|
|
7959
|
+
],
|
|
7960
|
+
},
|
|
7961
|
+
{
|
|
7962
|
+
gateway: 'mutate',
|
|
7963
|
+
domain: 'docs',
|
|
7964
|
+
operation: 'import',
|
|
7965
|
+
description: 'docs.import (mutate) — Import classified project documents',
|
|
7966
|
+
tier: 1,
|
|
7967
|
+
idempotent: false,
|
|
7968
|
+
sessionRequired: false,
|
|
7969
|
+
requiredParams: ['scanRoot'],
|
|
7970
|
+
params: [
|
|
7971
|
+
{
|
|
7972
|
+
name: 'scanRoot',
|
|
7973
|
+
type: 'string',
|
|
7974
|
+
required: true,
|
|
7975
|
+
description: 'Root directory to scan',
|
|
7976
|
+
},
|
|
7977
|
+
{
|
|
7978
|
+
name: 'dryRun',
|
|
7979
|
+
type: 'boolean',
|
|
7980
|
+
required: false,
|
|
7981
|
+
description: 'Preview without writing',
|
|
7982
|
+
},
|
|
7983
|
+
{
|
|
7984
|
+
name: 'force',
|
|
7985
|
+
type: 'boolean',
|
|
7986
|
+
required: false,
|
|
7987
|
+
description: 'Replace conflicting import mappings',
|
|
7988
|
+
},
|
|
7989
|
+
{
|
|
7990
|
+
name: 'manifestPath',
|
|
7991
|
+
type: 'string',
|
|
7992
|
+
required: false,
|
|
7993
|
+
description: 'Import manifest path',
|
|
7994
|
+
},
|
|
7995
|
+
],
|
|
7996
|
+
},
|
|
7997
|
+
{
|
|
7998
|
+
gateway: 'query',
|
|
7999
|
+
domain: 'docs',
|
|
8000
|
+
operation: 'audit',
|
|
8001
|
+
description: 'docs.audit (query) — inspect document history or verify audit chain integrity',
|
|
8002
|
+
tier: 1,
|
|
8003
|
+
idempotent: true,
|
|
8004
|
+
sessionRequired: false,
|
|
8005
|
+
requiredParams: [],
|
|
8006
|
+
params: [
|
|
8007
|
+
{
|
|
8008
|
+
name: 'slug',
|
|
8009
|
+
type: 'string',
|
|
8010
|
+
required: false,
|
|
8011
|
+
description: 'Document slug whose history to inspect',
|
|
8012
|
+
},
|
|
8013
|
+
{
|
|
8014
|
+
name: 'verify',
|
|
8015
|
+
type: 'boolean',
|
|
8016
|
+
required: false,
|
|
8017
|
+
description: 'Verify the full audit chain',
|
|
8018
|
+
},
|
|
8019
|
+
],
|
|
8020
|
+
},
|
|
7340
8021
|
// ── docs.generate (T798) ─────────────────────────────────────────────────
|
|
7341
8022
|
{
|
|
7342
8023
|
gateway: 'query',
|