@cleocode/contracts 2026.5.60 → 2026.5.62
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__/nexus-scope-map.test.d.ts +8 -0
- package/dist/__tests__/nexus-scope-map.test.d.ts.map +1 -0
- package/dist/__tests__/nexus-scope-map.test.js +145 -0
- package/dist/__tests__/nexus-scope-map.test.js.map +1 -0
- package/dist/branch-lock.d.ts +11 -0
- package/dist/branch-lock.d.ts.map +1 -1
- package/dist/branch-lock.js +11 -0
- package/dist/branch-lock.js.map +1 -1
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/data-accessor.d.ts +2 -0
- package/dist/data-accessor.d.ts.map +1 -1
- package/dist/data-accessor.js.map +1 -1
- package/dist/engine-result.d.ts +170 -0
- package/dist/engine-result.d.ts.map +1 -0
- package/dist/engine-result.js +123 -0
- package/dist/engine-result.js.map +1 -0
- package/dist/errors.d.ts +24 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +31 -0
- package/dist/errors.js.map +1 -1
- package/dist/exit-codes.d.ts +8 -1
- package/dist/exit-codes.d.ts.map +1 -1
- package/dist/exit-codes.js +7 -0
- package/dist/exit-codes.js.map +1 -1
- package/dist/graph.d.ts +88 -0
- package/dist/graph.d.ts.map +1 -1
- package/dist/graph.js +35 -0
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/operations/nexus-scope-map.d.ts +540 -0
- package/dist/operations/nexus-scope-map.d.ts.map +1 -0
- package/dist/operations/nexus-scope-map.js +556 -0
- package/dist/operations/nexus-scope-map.js.map +1 -0
- package/dist/operations/nexus-scope.d.ts +185 -0
- package/dist/operations/nexus-scope.d.ts.map +1 -0
- package/dist/operations/nexus-scope.js +9 -0
- package/dist/operations/nexus-scope.js.map +1 -0
- package/dist/operations/session.d.ts +79 -0
- package/dist/operations/session.d.ts.map +1 -1
- package/dist/operations/tasks.d.ts +38 -0
- package/dist/operations/tasks.d.ts.map +1 -1
- package/dist/operations/worktree.d.ts +33 -0
- package/dist/operations/worktree.d.ts.map +1 -1
- package/dist/spawn.d.ts +94 -0
- package/dist/spawn.d.ts.map +1 -1
- package/dist/spawn.js +65 -1
- package/dist/spawn.js.map +1 -1
- package/dist/task.d.ts +17 -2
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +11 -1
- package/dist/task.js.map +1 -1
- package/dist/tasks.d.ts +0 -2
- package/dist/tasks.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/nexus-scope-map.test.ts +183 -0
- package/src/branch-lock.ts +11 -0
- package/src/config.ts +22 -0
- package/src/data-accessor.ts +3 -0
- package/src/engine-result.ts +220 -0
- package/src/errors.ts +34 -0
- package/src/exit-codes.ts +8 -0
- package/src/graph.ts +112 -0
- package/src/index.ts +49 -2
- package/src/operations/nexus-scope-map.ts +597 -0
- package/src/operations/nexus-scope.ts +217 -0
- package/src/operations/session.ts +87 -0
- package/src/operations/tasks.ts +40 -0
- package/src/operations/worktree.ts +33 -0
- package/src/spawn.ts +141 -0
- package/src/task.ts +30 -1
- package/src/tasks.ts +0 -2
package/dist/spawn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE;QACJ,yEAAyE;QACzE,MAAM,EAAE,kBAAkB,CAAC;QAC3B,sEAAsE;QACtE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,qDAAqD;QACrD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,4DAA4D;QAC5D,KAAK,EAAE,iBAAiB,EAAE,CAAC;KAC5B,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAuCnF"}
|
package/dist/spawn.js
CHANGED
|
@@ -2,6 +2,70 @@
|
|
|
2
2
|
* Spawn provider interface for CLEO provider adapters.
|
|
3
3
|
*
|
|
4
4
|
* @task T5240
|
|
5
|
+
* @task T9214 — orchestrator-defer waiver field (W4 UX hardening)
|
|
6
|
+
* @task T9215 — DelegateTaskEnvelope discriminated-union type (W1 wiring)
|
|
5
7
|
*/
|
|
6
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Parse and validate a `delegate_task` JSON envelope from adapter stdout.
|
|
10
|
+
*
|
|
11
|
+
* Scans a line of stdout for the sentinel `"tool":"delegate_task"` and
|
|
12
|
+
* attempts to parse the full envelope. Returns `null` if the line is not
|
|
13
|
+
* a valid `DelegateTaskEnvelope` — callers should pass through non-matching
|
|
14
|
+
* lines without transformation.
|
|
15
|
+
*
|
|
16
|
+
* Validation checks:
|
|
17
|
+
* - `tool` equals `'delegate_task'`
|
|
18
|
+
* - `args.tasks` is a non-empty array
|
|
19
|
+
* - Each task has a non-empty `taskId`
|
|
20
|
+
* - `args.parent` has a valid `taskId` and `role`
|
|
21
|
+
*
|
|
22
|
+
* @param line - Single line of stdout from the spawned agent process.
|
|
23
|
+
* @returns Parsed envelope or `null` if the line is not a sentinel.
|
|
24
|
+
*
|
|
25
|
+
* @task T9215
|
|
26
|
+
*/
|
|
27
|
+
export function parseDelegateTaskEnvelope(line) {
|
|
28
|
+
if (!line.includes('"delegate_task"'))
|
|
29
|
+
return null;
|
|
30
|
+
let parsed;
|
|
31
|
+
try {
|
|
32
|
+
// Find the first JSON object on the line
|
|
33
|
+
const start = line.indexOf('{');
|
|
34
|
+
const end = line.lastIndexOf('}');
|
|
35
|
+
if (start === -1 || end === -1 || end <= start)
|
|
36
|
+
return null;
|
|
37
|
+
parsed = JSON.parse(line.slice(start, end + 1));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
43
|
+
return null;
|
|
44
|
+
const obj = parsed;
|
|
45
|
+
if (obj['tool'] !== 'delegate_task')
|
|
46
|
+
return null;
|
|
47
|
+
const args = obj['args'];
|
|
48
|
+
if (typeof args !== 'object' || args === null)
|
|
49
|
+
return null;
|
|
50
|
+
const argsObj = args;
|
|
51
|
+
const tasks = argsObj['tasks'];
|
|
52
|
+
if (!Array.isArray(tasks) || tasks.length === 0)
|
|
53
|
+
return null;
|
|
54
|
+
for (const t of tasks) {
|
|
55
|
+
if (typeof t !== 'object' || t === null)
|
|
56
|
+
return null;
|
|
57
|
+
const task = t;
|
|
58
|
+
if (typeof task['taskId'] !== 'string' || task['taskId'].length === 0)
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const parent = argsObj['parent'];
|
|
62
|
+
if (typeof parent !== 'object' || parent === null)
|
|
63
|
+
return null;
|
|
64
|
+
const parentObj = parent;
|
|
65
|
+
if (typeof parentObj['taskId'] !== 'string' || parentObj['taskId'].length === 0)
|
|
66
|
+
return null;
|
|
67
|
+
if (parentObj['role'] !== 'orchestrator' && parentObj['role'] !== 'lead')
|
|
68
|
+
return null;
|
|
69
|
+
return parsed;
|
|
70
|
+
}
|
|
7
71
|
//# sourceMappingURL=spawn.js.map
|
package/dist/spawn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8GH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,yCAAyC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC;QAC5D,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAiC,CAAC;IAE9C,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAG,IAA+B,CAAC;IAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACrD,MAAM,IAAI,GAAG,CAA4B,CAAC;QAC1C,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;IACrF,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAiC,CAAC;IACpD,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7F,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,cAAc,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAEtF,OAAO,MAA8B,CAAC;AACxC,CAAC"}
|
package/dist/task.d.ts
CHANGED
|
@@ -76,8 +76,12 @@ export type TaskSeverity = 'P0' | 'P1' | 'P2' | 'P3';
|
|
|
76
76
|
export type TaskSize = 'small' | 'medium' | 'large';
|
|
77
77
|
/** Epic lifecycle states. */
|
|
78
78
|
export type EpicLifecycle = 'backlog' | 'planning' | 'active' | 'review' | 'released' | 'archived';
|
|
79
|
-
/** Task origin (provenance). */
|
|
80
|
-
export type TaskOrigin = 'internal' | 'bug-report' | 'feature-request' | 'security' | 'technical-debt' | 'dependency' | 'regression';
|
|
79
|
+
/** Task origin (provenance). T1899: added production/test-fixture/imported/migrated. */
|
|
80
|
+
export type TaskOrigin = 'production' | 'test-fixture' | 'imported' | 'migrated' | 'internal' | 'bug-report' | 'feature-request' | 'security' | 'technical-debt' | 'dependency' | 'regression';
|
|
81
|
+
/** Canonical origin values for the T1899 CHECK constraint. */
|
|
82
|
+
export declare const TASK_ORIGIN_CANONICAL: readonly ["production", "test-fixture", "imported", "migrated"];
|
|
83
|
+
/** Whether an origin value is a test-fixture (should be excluded from live briefing). */
|
|
84
|
+
export declare function isTestFixtureOrigin(origin: string | null | undefined): boolean;
|
|
81
85
|
/** Verification agent types. */
|
|
82
86
|
export type VerificationAgent = 'planner' | 'coder' | 'testing' | 'qa' | 'cleanup' | 'security' | 'docs';
|
|
83
87
|
/** Verification gate names. */
|
|
@@ -405,6 +409,17 @@ export interface Task {
|
|
|
405
409
|
pipelineStage?: string | null;
|
|
406
410
|
/** Agent ID that has claimed/is assigned to this task. Null when unclaimed. @defaultValue undefined */
|
|
407
411
|
assignee?: string | null;
|
|
412
|
+
/**
|
|
413
|
+
* Abort reason when a worker was stopped due to runaway detection (T1658).
|
|
414
|
+
*
|
|
415
|
+
* Set by the sentient monitor when a worker exceeds its size-based budget
|
|
416
|
+
* (`small` ≥ 30 min, `medium` ≥ 2 h, `large` ≥ 4 h). The field is
|
|
417
|
+
* informational — callers may surface it in `cleo sentient monitor` output.
|
|
418
|
+
*
|
|
419
|
+
* @task T1658
|
|
420
|
+
* @defaultValue undefined
|
|
421
|
+
*/
|
|
422
|
+
abortReason?: string | null;
|
|
408
423
|
}
|
|
409
424
|
/**
|
|
410
425
|
* Input type for creating a new task via `addTask()`.
|
package/dist/task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,cAAc,CAAC;AAErD,4BAA4B;AAC5B,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAElE,8BAA8B;AAC9B,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AAExF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD,mCAAmC;AACnC,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,6BAA6B;AAC7B,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAEnG,
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"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"}
|
package/dist/task.js
CHANGED
|
@@ -20,5 +20,15 @@
|
|
|
20
20
|
* @epic T4454
|
|
21
21
|
* @task T4456
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
/** Canonical origin values for the T1899 CHECK constraint. */
|
|
24
|
+
export const TASK_ORIGIN_CANONICAL = [
|
|
25
|
+
'production',
|
|
26
|
+
'test-fixture',
|
|
27
|
+
'imported',
|
|
28
|
+
'migrated',
|
|
29
|
+
];
|
|
30
|
+
/** Whether an origin value is a test-fixture (should be excluded from live briefing). */
|
|
31
|
+
export function isTestFixtureOrigin(origin) {
|
|
32
|
+
return origin === 'test-fixture';
|
|
33
|
+
}
|
|
24
34
|
//# sourceMappingURL=task.js.map
|
package/dist/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAkFH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,YAAY;IACZ,cAAc;IACd,UAAU;IACV,UAAU;CAC8B,CAAC;AAE3C,yFAAyF;AACzF,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,OAAO,MAAM,KAAK,cAAc,CAAC;AACnC,CAAC"}
|
package/dist/tasks.d.ts
CHANGED
|
@@ -18,8 +18,6 @@ import type { TaskPriority, TaskStatus } from './task.js';
|
|
|
18
18
|
/**
|
|
19
19
|
* RCASD-IVTR+C pipeline stage values valid for `TaskView.pipelineStage`.
|
|
20
20
|
*
|
|
21
|
-
* Mirrors `TaskViewPipelineStage` from `packages/core/src/tasks/compute-task-view.ts`.
|
|
22
|
-
*
|
|
23
21
|
* @task T1703
|
|
24
22
|
*/
|
|
25
23
|
export type TaskViewPipelineStage = 'research' | 'specification' | 'decomposition' | 'implementation' | 'validation' | 'testing' | 'release' | 'contribution';
|
package/dist/tasks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM1D
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/contracts",
|
|
3
|
-
"version": "2026.5.
|
|
3
|
+
"version": "2026.5.62",
|
|
4
4
|
"description": "Domain types, interfaces, and contracts for the CLEO ecosystem",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"dependencies": {
|
|
83
83
|
"zod": "^4.3.6",
|
|
84
84
|
"zod-to-json-schema": "^3.25.2",
|
|
85
|
-
"@cleocode/lafs": "2026.5.
|
|
85
|
+
"@cleocode/lafs": "2026.5.62"
|
|
86
86
|
},
|
|
87
87
|
"scripts": {
|
|
88
88
|
"build": "tsc -b --force && node scripts/emit-schemas.mjs",
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for NEXUS_SCOPE_MAP SSoT helpers and ConfidenceProvenance
|
|
3
|
+
* discriminated union utilities (T9145).
|
|
4
|
+
*
|
|
5
|
+
* @task T9145
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { describe, expect, it } from 'vitest';
|
|
9
|
+
import { confidenceFromProvenance, provenanceFromNumeric } from '../graph.js';
|
|
10
|
+
import type { NexusOps } from '../operations/nexus.js';
|
|
11
|
+
import {
|
|
12
|
+
getNexusDescriptor,
|
|
13
|
+
listOpsByScope,
|
|
14
|
+
NEXUS_SCOPE_MAP,
|
|
15
|
+
} from '../operations/nexus-scope-map.js';
|
|
16
|
+
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// NEXUS_SCOPE_MAP completeness
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
|
|
21
|
+
describe('NEXUS_SCOPE_MAP completeness', () => {
|
|
22
|
+
it('contains an entry for every NexusOps key (exhaustiveness check)', () => {
|
|
23
|
+
// This test verifies the compile-time check also holds at runtime.
|
|
24
|
+
// If the TypeScript exhaustiveness check passes, this test is redundant,
|
|
25
|
+
// but it makes the intent explicit for CI reviewers.
|
|
26
|
+
const keys = Object.keys(NEXUS_SCOPE_MAP) as Array<keyof NexusOps>;
|
|
27
|
+
expect(keys.length).toBeGreaterThan(50);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('every descriptor has a non-empty description', () => {
|
|
31
|
+
for (const [key, desc] of Object.entries(NEXUS_SCOPE_MAP)) {
|
|
32
|
+
expect(
|
|
33
|
+
desc.description.length,
|
|
34
|
+
`NEXUS_SCOPE_MAP['${key}'].description must be non-empty`,
|
|
35
|
+
).toBeGreaterThan(0);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('every descriptor has a valid scope', () => {
|
|
40
|
+
const validScopes = new Set(['project', 'living-brain', 'cross', 'hybrid', 'global']);
|
|
41
|
+
for (const [key, desc] of Object.entries(NEXUS_SCOPE_MAP)) {
|
|
42
|
+
expect(
|
|
43
|
+
validScopes.has(desc.scope),
|
|
44
|
+
`NEXUS_SCOPE_MAP['${key}'].scope '${desc.scope}' is not a valid NexusScope`,
|
|
45
|
+
).toBe(true);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('every descriptor has a valid effect', () => {
|
|
50
|
+
const validEffects = new Set(['read', 'write', 'admin']);
|
|
51
|
+
for (const [key, desc] of Object.entries(NEXUS_SCOPE_MAP)) {
|
|
52
|
+
expect(
|
|
53
|
+
validEffects.has(desc.effect),
|
|
54
|
+
`NEXUS_SCOPE_MAP['${key}'].effect '${desc.effect}' is not a valid NexusEffect`,
|
|
55
|
+
).toBe(true);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('global-scope ops do not require a project', () => {
|
|
60
|
+
for (const [key, desc] of Object.entries(NEXUS_SCOPE_MAP)) {
|
|
61
|
+
if (desc.scope === 'global') {
|
|
62
|
+
expect(
|
|
63
|
+
desc.requiresProject,
|
|
64
|
+
`NEXUS_SCOPE_MAP['${key}'] has scope=global but requiresProject=true`,
|
|
65
|
+
).toBe(false);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
// getNexusDescriptor helper
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
|
|
75
|
+
describe('getNexusDescriptor', () => {
|
|
76
|
+
it('returns the correct descriptor for a known op', () => {
|
|
77
|
+
const desc = getNexusDescriptor('status');
|
|
78
|
+
expect(desc.op).toBe('status');
|
|
79
|
+
expect(desc.scope).toBe('project');
|
|
80
|
+
expect(desc.effect).toBe('read');
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it('returns the correct descriptor for a global op', () => {
|
|
84
|
+
const desc = getNexusDescriptor('register');
|
|
85
|
+
expect(desc.scope).toBe('global');
|
|
86
|
+
expect(desc.effect).toBe('admin');
|
|
87
|
+
expect(desc.requiresProject).toBe(false);
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it('returns the correct descriptor for a hybrid op', () => {
|
|
91
|
+
const desc = getNexusDescriptor('brain-anchors');
|
|
92
|
+
expect(desc.scope).toBe('hybrid');
|
|
93
|
+
expect(desc.stores).toContain('brain');
|
|
94
|
+
expect(desc.stores).toContain('nexus-graph');
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
// listOpsByScope helper
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
|
|
102
|
+
describe('listOpsByScope', () => {
|
|
103
|
+
it('returns only project-scope ops when filtering by project', () => {
|
|
104
|
+
const ops = listOpsByScope('project');
|
|
105
|
+
expect(ops.length).toBeGreaterThan(10);
|
|
106
|
+
for (const op of ops) {
|
|
107
|
+
expect(NEXUS_SCOPE_MAP[op].scope).toBe('project');
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it('returns only global-scope ops when filtering by global', () => {
|
|
112
|
+
const ops = listOpsByScope('global');
|
|
113
|
+
expect(ops.length).toBeGreaterThan(0);
|
|
114
|
+
for (const op of ops) {
|
|
115
|
+
expect(NEXUS_SCOPE_MAP[op].scope).toBe('global');
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
it('returns hybrid ops including brain-anchors', () => {
|
|
120
|
+
const ops = listOpsByScope('hybrid');
|
|
121
|
+
expect(ops).toContain('brain-anchors');
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it('returns living-brain ops including profile.view', () => {
|
|
125
|
+
const ops = listOpsByScope('living-brain');
|
|
126
|
+
expect(ops).toContain('profile.view');
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
// ConfidenceProvenance helpers
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
|
|
134
|
+
describe('provenanceFromNumeric', () => {
|
|
135
|
+
it('maps confidence=1.0 to extracted+ast', () => {
|
|
136
|
+
const p = provenanceFromNumeric(1.0);
|
|
137
|
+
expect(p.kind).toBe('extracted');
|
|
138
|
+
if (p.kind === 'extracted') expect(p.source).toBe('ast');
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
it('maps confidence=0.95 to extracted+legacy', () => {
|
|
142
|
+
const p = provenanceFromNumeric(0.95);
|
|
143
|
+
expect(p.kind).toBe('extracted');
|
|
144
|
+
if (p.kind === 'extracted') expect(p.source).toBe('legacy');
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
it('maps confidence=0.85 to inferred+legacy', () => {
|
|
148
|
+
const p = provenanceFromNumeric(0.85);
|
|
149
|
+
expect(p.kind).toBe('inferred');
|
|
150
|
+
if (p.kind === 'inferred') expect(p.heuristic).toBe('legacy');
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
it('maps confidence=0.5 to ambiguous with empty candidates', () => {
|
|
154
|
+
const p = provenanceFromNumeric(0.5);
|
|
155
|
+
expect(p.kind).toBe('ambiguous');
|
|
156
|
+
if (p.kind === 'ambiguous') expect(p.candidates).toHaveLength(0);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
describe('confidenceFromProvenance', () => {
|
|
161
|
+
it('extracted+ast → 1.0', () => {
|
|
162
|
+
expect(confidenceFromProvenance({ kind: 'extracted', source: 'ast' })).toBe(1.0);
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
it('extracted+legacy → 0.95', () => {
|
|
166
|
+
expect(confidenceFromProvenance({ kind: 'extracted', source: 'legacy' })).toBe(0.95);
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
it('inferred → 0.85', () => {
|
|
170
|
+
expect(confidenceFromProvenance({ kind: 'inferred', heuristic: 'heritage-map' })).toBe(0.85);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
it('ambiguous → 0.5', () => {
|
|
174
|
+
expect(confidenceFromProvenance({ kind: 'ambiguous', candidates: ['a', 'b'] })).toBe(0.5);
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
it('round-trips cleanly for all three tiers', () => {
|
|
178
|
+
for (const confidence of [1.0, 0.95, 0.85, 0.5]) {
|
|
179
|
+
const recovered = confidenceFromProvenance(provenanceFromNumeric(confidence));
|
|
180
|
+
expect(recovered).toBe(confidence);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
});
|
package/src/branch-lock.ts
CHANGED
|
@@ -281,6 +281,17 @@ export const BRANCH_LOCK_ERROR_CODES = {
|
|
|
281
281
|
* the git-shim which only intercepts `git` binary calls.
|
|
282
282
|
*/
|
|
283
283
|
E_BOUNDARY_VIOLATION: 'E_BOUNDARY_VIOLATION',
|
|
284
|
+
/**
|
|
285
|
+
* T1927: the `task/<taskId>` branch already exists and contains commits that
|
|
286
|
+
* are NOT reachable from the current integration base (i.e. orphan history from
|
|
287
|
+
* a prior test fixture, aborted session, or unrelated spawn). Reusing such a
|
|
288
|
+
* branch would import garbage history on merge.
|
|
289
|
+
*
|
|
290
|
+
* Fix: delete the branch manually (`git branch -D task/<taskId>`) then
|
|
291
|
+
* re-run spawn, or pass `{ forceReset: true }` to `createWorktree` to have it
|
|
292
|
+
* reset the branch automatically.
|
|
293
|
+
*/
|
|
294
|
+
E_DIRTY_BRANCH: 'E_DIRTY_BRANCH',
|
|
284
295
|
} as const;
|
|
285
296
|
|
|
286
297
|
/** Union of all branch-lock error code strings. */
|
package/src/config.ts
CHANGED
|
@@ -505,6 +505,28 @@ export interface CleoConfig {
|
|
|
505
505
|
* @task T1828
|
|
506
506
|
*/
|
|
507
507
|
decisions?: DecisionsConfig;
|
|
508
|
+
/**
|
|
509
|
+
* Briefing pipeline settings (T1904 / BBTT-W2-3).
|
|
510
|
+
*
|
|
511
|
+
* @defaultValue undefined
|
|
512
|
+
*/
|
|
513
|
+
briefing?: BriefingConfig;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
* Configuration for the `cleo briefing` pipeline (T1904 / BBTT-W2-3).
|
|
518
|
+
*/
|
|
519
|
+
export interface BriefingConfig {
|
|
520
|
+
/**
|
|
521
|
+
* Whether `cleo briefing` opportunistically triggers a dream cycle after
|
|
522
|
+
* computing the briefing response.
|
|
523
|
+
*
|
|
524
|
+
* The dream cycle is always subject to its own 5-minute cooldown guard and
|
|
525
|
+
* never blocks the briefing response.
|
|
526
|
+
*
|
|
527
|
+
* @defaultValue true
|
|
528
|
+
*/
|
|
529
|
+
opportunisticDream?: boolean;
|
|
508
530
|
}
|
|
509
531
|
|
|
510
532
|
/**
|
package/src/data-accessor.ts
CHANGED
|
@@ -179,6 +179,9 @@ export interface DataAccessor {
|
|
|
179
179
|
reason?: string,
|
|
180
180
|
): Promise<void>;
|
|
181
181
|
|
|
182
|
+
/** Remove a row from the task_relations table (T9240). */
|
|
183
|
+
removeRelation(taskId: string, relatedTo: string, relationType?: string): Promise<void>;
|
|
184
|
+
|
|
182
185
|
// ---- Metadata (schema_meta KV store) ----
|
|
183
186
|
|
|
184
187
|
/** Read a typed value from the metadata store. Returns null if not found. */
|