@cleocode/contracts 2026.5.61 → 2026.5.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/__tests__/llm-config-schema.test.d.ts +20 -0
  2. package/dist/__tests__/llm-config-schema.test.d.ts.map +1 -0
  3. package/dist/__tests__/llm-config-schema.test.js +121 -0
  4. package/dist/__tests__/llm-config-schema.test.js.map +1 -0
  5. package/dist/__tests__/nexus-scope-map.test.d.ts +8 -0
  6. package/dist/__tests__/nexus-scope-map.test.d.ts.map +1 -0
  7. package/dist/__tests__/nexus-scope-map.test.js +145 -0
  8. package/dist/__tests__/nexus-scope-map.test.js.map +1 -0
  9. package/dist/branch-lock.d.ts +11 -0
  10. package/dist/branch-lock.d.ts.map +1 -1
  11. package/dist/branch-lock.js +11 -0
  12. package/dist/branch-lock.js.map +1 -1
  13. package/dist/config.d.ts +116 -5
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/data-accessor.d.ts +2 -0
  16. package/dist/data-accessor.d.ts.map +1 -1
  17. package/dist/data-accessor.js.map +1 -1
  18. package/dist/engine-result.d.ts +170 -0
  19. package/dist/engine-result.d.ts.map +1 -0
  20. package/dist/engine-result.js +123 -0
  21. package/dist/engine-result.js.map +1 -0
  22. package/dist/errors.d.ts +24 -0
  23. package/dist/errors.d.ts.map +1 -1
  24. package/dist/errors.js +31 -0
  25. package/dist/errors.js.map +1 -1
  26. package/dist/exit-codes.d.ts +8 -1
  27. package/dist/exit-codes.d.ts.map +1 -1
  28. package/dist/exit-codes.js +7 -0
  29. package/dist/exit-codes.js.map +1 -1
  30. package/dist/graph.d.ts +88 -0
  31. package/dist/graph.d.ts.map +1 -1
  32. package/dist/graph.js +35 -0
  33. package/dist/graph.js.map +1 -1
  34. package/dist/index.d.ts +12 -6
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +6 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/operations/llm.d.ts +380 -0
  39. package/dist/operations/llm.d.ts.map +1 -1
  40. package/dist/operations/nexus-scope-map.d.ts +540 -0
  41. package/dist/operations/nexus-scope-map.d.ts.map +1 -0
  42. package/dist/operations/nexus-scope-map.js +556 -0
  43. package/dist/operations/nexus-scope-map.js.map +1 -0
  44. package/dist/operations/nexus-scope.d.ts +185 -0
  45. package/dist/operations/nexus-scope.d.ts.map +1 -0
  46. package/dist/operations/nexus-scope.js +9 -0
  47. package/dist/operations/nexus-scope.js.map +1 -0
  48. package/dist/operations/session.d.ts +79 -0
  49. package/dist/operations/session.d.ts.map +1 -1
  50. package/dist/operations/tasks.d.ts +28 -0
  51. package/dist/operations/tasks.d.ts.map +1 -1
  52. package/dist/operations/worktree.d.ts +33 -0
  53. package/dist/operations/worktree.d.ts.map +1 -1
  54. package/dist/task.d.ts +17 -2
  55. package/dist/task.d.ts.map +1 -1
  56. package/dist/task.js +11 -1
  57. package/dist/task.js.map +1 -1
  58. package/dist/tasks.d.ts +0 -2
  59. package/dist/tasks.d.ts.map +1 -1
  60. package/package.json +2 -2
  61. package/src/__tests__/llm-config-schema.test.ts +135 -0
  62. package/src/__tests__/nexus-scope-map.test.ts +183 -0
  63. package/src/branch-lock.ts +11 -0
  64. package/src/config.ts +122 -5
  65. package/src/data-accessor.ts +3 -0
  66. package/src/engine-result.ts +220 -0
  67. package/src/errors.ts +34 -0
  68. package/src/exit-codes.ts +8 -0
  69. package/src/graph.ts +112 -0
  70. package/src/index.ts +82 -2
  71. package/src/operations/llm.ts +437 -0
  72. package/src/operations/nexus-scope-map.ts +597 -0
  73. package/src/operations/nexus-scope.ts +217 -0
  74. package/src/operations/session.ts +87 -0
  75. package/src/operations/tasks.ts +30 -0
  76. package/src/operations/worktree.ts +33 -0
  77. package/src/task.ts +30 -1
  78. package/src/tasks.ts +0 -2
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Schema roundtrip tests for the extended `LlmConfig` shape.
3
+ *
4
+ * Asserts that:
5
+ *
6
+ * 1. A literal `LlmConfig` object containing the new `default`, `roles`, and
7
+ * the legacy `daemon` fields typechecks and survives a JSON
8
+ * serialize/deserialize cycle without structural loss.
9
+ * 2. All five `RoleName` values (`extraction`, `consolidation`, `derivation`,
10
+ * `hygiene`, `judgement`) are accepted as keys of `roles`.
11
+ * 3. Omitting `default` and/or `roles` still typechecks (both are optional).
12
+ *
13
+ * These tests guard the Phase 2 schema extension of
14
+ * T-LLM-CRED-CENTRALIZATION against accidental regressions.
15
+ *
16
+ * @task T9256
17
+ * @epic T-LLM-CRED-CENTRALIZATION
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=llm-config-schema.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-config-schema.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/llm-config-schema.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Schema roundtrip tests for the extended `LlmConfig` shape.
3
+ *
4
+ * Asserts that:
5
+ *
6
+ * 1. A literal `LlmConfig` object containing the new `default`, `roles`, and
7
+ * the legacy `daemon` fields typechecks and survives a JSON
8
+ * serialize/deserialize cycle without structural loss.
9
+ * 2. All five `RoleName` values (`extraction`, `consolidation`, `derivation`,
10
+ * `hygiene`, `judgement`) are accepted as keys of `roles`.
11
+ * 3. Omitting `default` and/or `roles` still typechecks (both are optional).
12
+ *
13
+ * These tests guard the Phase 2 schema extension of
14
+ * T-LLM-CRED-CENTRALIZATION against accidental regressions.
15
+ *
16
+ * @task T9256
17
+ * @epic T-LLM-CRED-CENTRALIZATION
18
+ */
19
+ import { describe, expect, it } from 'vitest';
20
+ describe('LlmConfig — Phase 2 schema extension (T9256)', () => {
21
+ it('accepts a fully-populated config with default, roles, and legacy daemon', () => {
22
+ const cfg = {
23
+ daemon: { provider: 'anthropic', model: 'claude-sonnet-4-6' },
24
+ providers: {
25
+ anthropic: { apiKey: 'sk-test-anthropic' },
26
+ openai: { apiKey: 'sk-test-openai' },
27
+ },
28
+ default: { provider: 'anthropic', model: 'claude-sonnet-4-6' },
29
+ roles: {
30
+ extraction: {
31
+ provider: 'anthropic',
32
+ model: 'claude-haiku-4-5',
33
+ credentialLabel: 'ext-key',
34
+ },
35
+ consolidation: {
36
+ provider: 'openai',
37
+ model: 'gpt-4o',
38
+ },
39
+ derivation: {
40
+ provider: 'gemini',
41
+ model: 'gemini-2.5-pro',
42
+ },
43
+ hygiene: {
44
+ provider: 'moonshot',
45
+ model: 'kimi-k2',
46
+ },
47
+ judgement: {
48
+ provider: 'anthropic',
49
+ model: 'claude-opus-4-7',
50
+ credentialLabel: 'judge-key',
51
+ },
52
+ },
53
+ };
54
+ const roundtripped = JSON.parse(JSON.stringify(cfg));
55
+ expect(roundtripped).toEqual(cfg);
56
+ });
57
+ it('preserves structural identity across JSON serialize/deserialize', () => {
58
+ const cfg = {
59
+ default: { provider: 'anthropic', model: 'claude-sonnet-4-6' },
60
+ roles: {
61
+ extraction: { provider: 'anthropic', model: 'claude-haiku-4-5' },
62
+ },
63
+ };
64
+ const serialized = JSON.stringify(cfg);
65
+ const parsed = JSON.parse(serialized);
66
+ expect(parsed.default).toEqual(cfg.default);
67
+ expect(parsed.roles).toEqual(cfg.roles);
68
+ expect(parsed.roles?.extraction?.provider).toBe('anthropic');
69
+ expect(parsed.roles?.extraction?.model).toBe('claude-haiku-4-5');
70
+ });
71
+ it('accepts all five RoleName values as keys of roles', () => {
72
+ const roleNames = [
73
+ 'extraction',
74
+ 'consolidation',
75
+ 'derivation',
76
+ 'hygiene',
77
+ 'judgement',
78
+ ];
79
+ // Build a `roles` map populated with one entry per role name. The TS
80
+ // compiler enforces that only valid `RoleName` keys appear here — any
81
+ // typo would be a compile-time error.
82
+ const roles = {};
83
+ for (const name of roleNames) {
84
+ roles[name] = { provider: 'anthropic', model: 'claude-sonnet-4-6' };
85
+ }
86
+ const cfg = { roles };
87
+ expect(Object.keys(cfg.roles ?? {})).toHaveLength(5);
88
+ for (const name of roleNames) {
89
+ expect(cfg.roles?.[name]?.provider).toBe('anthropic');
90
+ expect(cfg.roles?.[name]?.model).toBe('claude-sonnet-4-6');
91
+ }
92
+ });
93
+ it('typechecks when default and roles are both omitted', () => {
94
+ const cfg = {
95
+ daemon: { provider: 'anthropic', model: 'claude-sonnet-4-6' },
96
+ };
97
+ expect(cfg.default).toBeUndefined();
98
+ expect(cfg.roles).toBeUndefined();
99
+ expect(cfg.daemon?.provider).toBe('anthropic');
100
+ });
101
+ it('typechecks an empty LlmConfig (all fields optional)', () => {
102
+ const cfg = {};
103
+ expect(cfg).toEqual({});
104
+ });
105
+ it('allows a role entry without an optional credentialLabel', () => {
106
+ const role = {
107
+ provider: 'openai',
108
+ model: 'gpt-4o-mini',
109
+ };
110
+ expect(role.credentialLabel).toBeUndefined();
111
+ });
112
+ it('allows LlmDefaultConfig with only provider + model (no credential)', () => {
113
+ const def = {
114
+ provider: 'anthropic',
115
+ model: 'claude-sonnet-4-6',
116
+ };
117
+ expect(def.provider).toBe('anthropic');
118
+ expect(def.model).toBe('claude-sonnet-4-6');
119
+ });
120
+ });
121
+ //# sourceMappingURL=llm-config-schema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-config-schema.test.js","sourceRoot":"","sources":["../../src/__tests__/llm-config-schema.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Unit tests for NEXUS_SCOPE_MAP SSoT helpers and ConfidenceProvenance
3
+ * discriminated union utilities (T9145).
4
+ *
5
+ * @task T9145
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=nexus-scope-map.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-scope-map.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/nexus-scope-map.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Unit tests for NEXUS_SCOPE_MAP SSoT helpers and ConfidenceProvenance
3
+ * discriminated union utilities (T9145).
4
+ *
5
+ * @task T9145
6
+ */
7
+ import { describe, expect, it } from 'vitest';
8
+ import { confidenceFromProvenance, provenanceFromNumeric } from '../graph.js';
9
+ import { getNexusDescriptor, listOpsByScope, NEXUS_SCOPE_MAP, } from '../operations/nexus-scope-map.js';
10
+ // ---------------------------------------------------------------------------
11
+ // NEXUS_SCOPE_MAP completeness
12
+ // ---------------------------------------------------------------------------
13
+ describe('NEXUS_SCOPE_MAP completeness', () => {
14
+ it('contains an entry for every NexusOps key (exhaustiveness check)', () => {
15
+ // This test verifies the compile-time check also holds at runtime.
16
+ // If the TypeScript exhaustiveness check passes, this test is redundant,
17
+ // but it makes the intent explicit for CI reviewers.
18
+ const keys = Object.keys(NEXUS_SCOPE_MAP);
19
+ expect(keys.length).toBeGreaterThan(50);
20
+ });
21
+ it('every descriptor has a non-empty description', () => {
22
+ for (const [key, desc] of Object.entries(NEXUS_SCOPE_MAP)) {
23
+ expect(desc.description.length, `NEXUS_SCOPE_MAP['${key}'].description must be non-empty`).toBeGreaterThan(0);
24
+ }
25
+ });
26
+ it('every descriptor has a valid scope', () => {
27
+ const validScopes = new Set(['project', 'living-brain', 'cross', 'hybrid', 'global']);
28
+ for (const [key, desc] of Object.entries(NEXUS_SCOPE_MAP)) {
29
+ expect(validScopes.has(desc.scope), `NEXUS_SCOPE_MAP['${key}'].scope '${desc.scope}' is not a valid NexusScope`).toBe(true);
30
+ }
31
+ });
32
+ it('every descriptor has a valid effect', () => {
33
+ const validEffects = new Set(['read', 'write', 'admin']);
34
+ for (const [key, desc] of Object.entries(NEXUS_SCOPE_MAP)) {
35
+ expect(validEffects.has(desc.effect), `NEXUS_SCOPE_MAP['${key}'].effect '${desc.effect}' is not a valid NexusEffect`).toBe(true);
36
+ }
37
+ });
38
+ it('global-scope ops do not require a project', () => {
39
+ for (const [key, desc] of Object.entries(NEXUS_SCOPE_MAP)) {
40
+ if (desc.scope === 'global') {
41
+ expect(desc.requiresProject, `NEXUS_SCOPE_MAP['${key}'] has scope=global but requiresProject=true`).toBe(false);
42
+ }
43
+ }
44
+ });
45
+ });
46
+ // ---------------------------------------------------------------------------
47
+ // getNexusDescriptor helper
48
+ // ---------------------------------------------------------------------------
49
+ describe('getNexusDescriptor', () => {
50
+ it('returns the correct descriptor for a known op', () => {
51
+ const desc = getNexusDescriptor('status');
52
+ expect(desc.op).toBe('status');
53
+ expect(desc.scope).toBe('project');
54
+ expect(desc.effect).toBe('read');
55
+ });
56
+ it('returns the correct descriptor for a global op', () => {
57
+ const desc = getNexusDescriptor('register');
58
+ expect(desc.scope).toBe('global');
59
+ expect(desc.effect).toBe('admin');
60
+ expect(desc.requiresProject).toBe(false);
61
+ });
62
+ it('returns the correct descriptor for a hybrid op', () => {
63
+ const desc = getNexusDescriptor('brain-anchors');
64
+ expect(desc.scope).toBe('hybrid');
65
+ expect(desc.stores).toContain('brain');
66
+ expect(desc.stores).toContain('nexus-graph');
67
+ });
68
+ });
69
+ // ---------------------------------------------------------------------------
70
+ // listOpsByScope helper
71
+ // ---------------------------------------------------------------------------
72
+ describe('listOpsByScope', () => {
73
+ it('returns only project-scope ops when filtering by project', () => {
74
+ const ops = listOpsByScope('project');
75
+ expect(ops.length).toBeGreaterThan(10);
76
+ for (const op of ops) {
77
+ expect(NEXUS_SCOPE_MAP[op].scope).toBe('project');
78
+ }
79
+ });
80
+ it('returns only global-scope ops when filtering by global', () => {
81
+ const ops = listOpsByScope('global');
82
+ expect(ops.length).toBeGreaterThan(0);
83
+ for (const op of ops) {
84
+ expect(NEXUS_SCOPE_MAP[op].scope).toBe('global');
85
+ }
86
+ });
87
+ it('returns hybrid ops including brain-anchors', () => {
88
+ const ops = listOpsByScope('hybrid');
89
+ expect(ops).toContain('brain-anchors');
90
+ });
91
+ it('returns living-brain ops including profile.view', () => {
92
+ const ops = listOpsByScope('living-brain');
93
+ expect(ops).toContain('profile.view');
94
+ });
95
+ });
96
+ // ---------------------------------------------------------------------------
97
+ // ConfidenceProvenance helpers
98
+ // ---------------------------------------------------------------------------
99
+ describe('provenanceFromNumeric', () => {
100
+ it('maps confidence=1.0 to extracted+ast', () => {
101
+ const p = provenanceFromNumeric(1.0);
102
+ expect(p.kind).toBe('extracted');
103
+ if (p.kind === 'extracted')
104
+ expect(p.source).toBe('ast');
105
+ });
106
+ it('maps confidence=0.95 to extracted+legacy', () => {
107
+ const p = provenanceFromNumeric(0.95);
108
+ expect(p.kind).toBe('extracted');
109
+ if (p.kind === 'extracted')
110
+ expect(p.source).toBe('legacy');
111
+ });
112
+ it('maps confidence=0.85 to inferred+legacy', () => {
113
+ const p = provenanceFromNumeric(0.85);
114
+ expect(p.kind).toBe('inferred');
115
+ if (p.kind === 'inferred')
116
+ expect(p.heuristic).toBe('legacy');
117
+ });
118
+ it('maps confidence=0.5 to ambiguous with empty candidates', () => {
119
+ const p = provenanceFromNumeric(0.5);
120
+ expect(p.kind).toBe('ambiguous');
121
+ if (p.kind === 'ambiguous')
122
+ expect(p.candidates).toHaveLength(0);
123
+ });
124
+ });
125
+ describe('confidenceFromProvenance', () => {
126
+ it('extracted+ast → 1.0', () => {
127
+ expect(confidenceFromProvenance({ kind: 'extracted', source: 'ast' })).toBe(1.0);
128
+ });
129
+ it('extracted+legacy → 0.95', () => {
130
+ expect(confidenceFromProvenance({ kind: 'extracted', source: 'legacy' })).toBe(0.95);
131
+ });
132
+ it('inferred → 0.85', () => {
133
+ expect(confidenceFromProvenance({ kind: 'inferred', heuristic: 'heritage-map' })).toBe(0.85);
134
+ });
135
+ it('ambiguous → 0.5', () => {
136
+ expect(confidenceFromProvenance({ kind: 'ambiguous', candidates: ['a', 'b'] })).toBe(0.5);
137
+ });
138
+ it('round-trips cleanly for all three tiers', () => {
139
+ for (const confidence of [1.0, 0.95, 0.85, 0.5]) {
140
+ const recovered = confidenceFromProvenance(provenanceFromNumeric(confidence));
141
+ expect(recovered).toBe(confidence);
142
+ }
143
+ });
144
+ });
145
+ //# sourceMappingURL=nexus-scope-map.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-scope-map.test.js","sourceRoot":"","sources":["../../src/__tests__/nexus-scope-map.test.ts"],"names":[],"mappings":"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"}
@@ -253,6 +253,17 @@ export declare const BRANCH_LOCK_ERROR_CODES: {
253
253
  * the git-shim which only intercepts `git` binary calls.
254
254
  */
255
255
  readonly E_BOUNDARY_VIOLATION: "E_BOUNDARY_VIOLATION";
256
+ /**
257
+ * T1927: the `task/<taskId>` branch already exists and contains commits that
258
+ * are NOT reachable from the current integration base (i.e. orphan history from
259
+ * a prior test fixture, aborted session, or unrelated spawn). Reusing such a
260
+ * branch would import garbage history on merge.
261
+ *
262
+ * Fix: delete the branch manually (`git branch -D task/<taskId>`) then
263
+ * re-run spawn, or pass `{ forceReset: true }` to `createWorktree` to have it
264
+ * reset the branch automatically.
265
+ */
266
+ readonly E_DIRTY_BRANCH: "E_DIRTY_BRANCH";
256
267
  };
257
268
  /** Union of all branch-lock error code strings. */
258
269
  export type BranchLockErrorCode = (typeof BRANCH_LOCK_ERROR_CODES)[keyof typeof BRANCH_LOCK_ERROR_CODES];
@@ -1 +1 @@
1
- {"version":3,"file":"branch-lock.d.ts","sourceRoot":"","sources":["../src/branch-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,uFAAuF;IACvF,WAAW,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;IACzB,sDAAsD;IACtD,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,kDAAkD;IAClD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAMD;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,eAAe,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClE,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8BAA8B;IAC9B,sBAAsB,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,KAAK,CAAC;CAC1D;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;CAC7D;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,yCAAyC;IACzC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kDAAkD;IAClD,eAAe,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;IAClC,wDAAwD;;IAExD,qDAAqD;;IAErD,uEAAuE;;IAEvE,mEAAmE;;IAEnE,oCAAoC;;IAEpC,0CAA0C;;IAE1C,iFAAiF;;IAEjF,gEAAgE;;IAEhE,4CAA4C;;IAE5C;;;;OAIG;;IAEH;;;OAGG;;IAEH;;;;;;OAMG;;CAEK,CAAC;AAEX,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAC7B,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAMzE;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,iGAKO,CAAC;AAEvC,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;;;OAOG;IACH,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC;IAChC,qFAAqF;IACrF,OAAO,EAAE,OAAO,kBAAkB,CAAC;IACnC;;;;;;;;OAQG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC;IAChC,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACzD;;;;;;;;;;;OAWG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAyDjF;AAMD;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GACpC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IACE,OAAO,EAAE,KAAK,CAAC;IACf,qCAAqC;IACrC,IAAI,EAAE,OAAO,uBAAuB,CAAC,oBAAoB,CAAC;IAC1D,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,gBAAgB,GACzB,4BAA4B,CA+B9B"}
1
+ {"version":3,"file":"branch-lock.d.ts","sourceRoot":"","sources":["../src/branch-lock.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,17 @@ export const BRANCH_LOCK_ERROR_CODES = {
64
64
  * the git-shim which only intercepts `git` binary calls.
65
65
  */
66
66
  E_BOUNDARY_VIOLATION: 'E_BOUNDARY_VIOLATION',
67
+ /**
68
+ * T1927: the `task/<taskId>` branch already exists and contains commits that
69
+ * are NOT reachable from the current integration base (i.e. orphan history from
70
+ * a prior test fixture, aborted session, or unrelated spawn). Reusing such a
71
+ * branch would import garbage history on merge.
72
+ *
73
+ * Fix: delete the branch manually (`git branch -D task/<taskId>`) then
74
+ * re-run spawn, or pass `{ forceReset: true }` to `createWorktree` to have it
75
+ * reset the branch automatically.
76
+ */
77
+ E_DIRTY_BRANCH: 'E_DIRTY_BRANCH',
67
78
  };
68
79
  // ---------------------------------------------------------------------------
69
80
  // Centralized worktree isolation contract (T1759)
@@ -1 +1 @@
1
- {"version":3,"file":"branch-lock.js","sourceRoot":"","sources":["../src/branch-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-lock.js","sourceRoot":"","sources":["../src/branch-lock.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -8,6 +8,7 @@
8
8
  * @task T4456
9
9
  * @task T5710
10
10
  */
11
+ import type { ModelTransport } from './operations/llm.js';
11
12
  /** Output format options. */
12
13
  export type OutputFormat = 'json' | 'text' | 'jsonl' | 'markdown' | 'table';
13
14
  /** Date format options. */
@@ -257,7 +258,11 @@ export interface BrainTieringConfig {
257
258
  export interface BrainLlmExtractionConfig {
258
259
  /** Enable LLM-driven extraction gate (default: true). */
259
260
  enabled: boolean;
260
- /** Anthropic model to use for extraction (default: 'claude-haiku-4-5-20251001'). */
261
+ /**
262
+ * Anthropic model to use for extraction. Default lives in
263
+ * `@cleocode/core/llm/role-resolver` (`IMPLICIT_FALLBACK_MODEL`) so the
264
+ * literal stays in a single source location (T9255 grep guard).
265
+ */
261
266
  model: string;
262
267
  /** Minimum importance score (0.0–1.0) below which extractions are dropped (default: 0.6). */
263
268
  minImportance: number;
@@ -299,10 +304,11 @@ export interface BrainConfig {
299
304
  * LLM-driven extraction gate settings.
300
305
  * When enabled and ANTHROPIC_API_KEY is present, session transcripts are
301
306
  * processed by an LLM to extract typed structured memories instead of the
302
- * legacy keyword regex. Defaults are enabled: true and model is the cheap
303
- * Haiku class so extraction cost stays bounded.
307
+ * legacy keyword regex. Defaults are enabled: true and model defaults to
308
+ * the centralised implicit fallback (cheap Haiku class) defined in
309
+ * `@cleocode/core/llm/role-resolver` so extraction cost stays bounded.
304
310
  *
305
- * @defaultValue { enabled: true, model: 'claude-haiku-4-5-20251001', minImportance: 0.6, maxExtractions: 7, maxTranscriptChars: 60000 }
311
+ * @defaultValue { enabled: true, model: IMPLICIT_FALLBACK_MODEL, minImportance: 0.6, maxExtractions: 7, maxTranscriptChars: 60000 }
306
312
  */
307
313
  llmExtraction?: BrainLlmExtractionConfig;
308
314
  }
@@ -348,21 +354,88 @@ export interface DaemonLLMConfig {
348
354
  * LLM provider transport used by daemon loops.
349
355
  * @defaultValue 'anthropic'
350
356
  */
351
- provider: 'anthropic' | 'openai' | 'gemini' | 'moonshot';
357
+ provider: ModelTransport;
352
358
  /**
353
359
  * Full model identifier for the selected provider.
354
360
  * @defaultValue 'claude-sonnet-4-6'
355
361
  */
356
362
  model: string;
357
363
  }
364
+ /**
365
+ * Canonical model transport identifier — re-export of {@link ModelTransport}
366
+ * from `operations/llm.ts` so config-layer types stay in lock-step with the
367
+ * operations layer with no risk of drift.
368
+ *
369
+ * Previously declared as a separate string-literal union; collapsed in the
370
+ * T-LLM-CRED Phase 2 DRY/SOLID review (P1-2). Adding a new transport now
371
+ * requires editing only `operations/llm.ts`.
372
+ *
373
+ * @task T-LLM-CRED-CENTRALIZATION Phase 2 — DRY review P1-2
374
+ */
375
+ export type LlmTransport = ModelTransport;
376
+ /**
377
+ * Logical LLM role name used by role-aware resolvers (BRAIN, sentient, etc.).
378
+ *
379
+ * Each role can pin its own provider + model + credential label, with
380
+ * resolution falling back to `LlmConfig.default` and finally to the legacy
381
+ * `LlmConfig.daemon` block.
382
+ *
383
+ * @task T-LLM-CRED-CENTRALIZATION Phase 2 (T9256)
384
+ */
385
+ export type RoleName = 'extraction' | 'consolidation' | 'derivation' | 'hygiene' | 'judgement';
386
+ /**
387
+ * Canonical default LLM target for unscoped (non-role) calls.
388
+ *
389
+ * Replaces the role previously played by `LlmConfig.daemon`. The `daemon`
390
+ * field stays as a deprecated alias for one release cycle to give downstream
391
+ * consumers time to migrate.
392
+ *
393
+ * @task T-LLM-CRED-CENTRALIZATION Phase 2 (T9256)
394
+ */
395
+ export interface LlmDefaultConfig {
396
+ /** LLM provider transport for the default model. */
397
+ provider: LlmTransport;
398
+ /** Full model identifier for the selected provider. */
399
+ model: string;
400
+ }
401
+ /**
402
+ * Per-role LLM configuration entry.
403
+ *
404
+ * Each role may optionally pin to a specific credential label (matching a
405
+ * `CredentialResult.label`) so that, e.g., the `extraction` role can use a
406
+ * different Anthropic API key than `judgement` without changing the global
407
+ * default.
408
+ *
409
+ * @task T-LLM-CRED-CENTRALIZATION Phase 2 (T9256)
410
+ */
411
+ export interface LlmRoleConfig {
412
+ /** LLM provider transport for this role. */
413
+ provider: LlmTransport;
414
+ /** Full model identifier for the selected provider. */
415
+ model: string;
416
+ /**
417
+ * Optional credential label to pin this role to a specific credential
418
+ * entry resolved by `resolveCredentials()`. When omitted, the role
419
+ * inherits the default credential resolution order.
420
+ */
421
+ credentialLabel?: string;
422
+ }
358
423
  /**
359
424
  * Top-level LLM configuration block inside CleoConfig.
360
425
  *
361
426
  * Stored at `llm` in config.json.
427
+ *
428
+ * Resolution order for role-scoped calls:
429
+ * `roles[role]` → `default` → `daemon` (legacy).
362
430
  */
363
431
  export interface LlmConfig {
364
432
  /**
365
433
  * Daemon LLM settings (provider + model for background loops).
434
+ *
435
+ * @deprecated Use `default` instead. Retained as a fallback alias for
436
+ * one release cycle (T-LLM-CRED-CENTRALIZATION Phase 2 · T9256). New
437
+ * code must read `default` first and only fall through to `daemon` when
438
+ * `default` is absent.
366
439
  * @defaultValue { provider: 'anthropic', model: 'claude-sonnet-4-6' }
367
440
  */
368
441
  daemon?: DaemonLLMConfig;
@@ -371,6 +444,23 @@ export interface LlmConfig {
371
444
  * Keys are provider names: 'anthropic' | 'openai' | 'gemini' | 'moonshot'.
372
445
  */
373
446
  providers?: Record<string, LlmProviderEntry>;
447
+ /**
448
+ * Canonical default LLM for unscoped calls. Replaces the role previously
449
+ * played by `daemon`, which stays as a deprecated alias for one release
450
+ * cycle.
451
+ *
452
+ * @task T-LLM-CRED-CENTRALIZATION Phase 2 (T9256)
453
+ */
454
+ default?: LlmDefaultConfig;
455
+ /**
456
+ * Per-role LLM overrides. Each role optionally pins to a credential
457
+ * label.
458
+ *
459
+ * Resolution order: `roles[role]` → `default` → `daemon` (legacy).
460
+ *
461
+ * @task T-LLM-CRED-CENTRALIZATION Phase 2 (T9256)
462
+ */
463
+ roles?: Partial<Record<RoleName, LlmRoleConfig>>;
374
464
  }
375
465
  /** SignalDock transport mode. */
376
466
  export type SignalDockMode = 'http' | 'native';
@@ -467,6 +557,27 @@ export interface CleoConfig {
467
557
  * @task T1828
468
558
  */
469
559
  decisions?: DecisionsConfig;
560
+ /**
561
+ * Briefing pipeline settings (T1904 / BBTT-W2-3).
562
+ *
563
+ * @defaultValue undefined
564
+ */
565
+ briefing?: BriefingConfig;
566
+ }
567
+ /**
568
+ * Configuration for the `cleo briefing` pipeline (T1904 / BBTT-W2-3).
569
+ */
570
+ export interface BriefingConfig {
571
+ /**
572
+ * Whether `cleo briefing` opportunistically triggers a dream cycle after
573
+ * computing the briefing response.
574
+ *
575
+ * The dream cycle is always subject to its own 5-minute cooldown guard and
576
+ * never blocks the briefing response.
577
+ *
578
+ * @defaultValue true
579
+ */
580
+ opportunisticDream?: boolean;
470
581
  }
471
582
  /**
472
583
  * Claude provider spawn mode.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,8 @@ export interface DataAccessor {
139
139
  loadSingleTask(taskId: string): Promise<Task | null>;
140
140
  /** Insert a row into the task_relations table (T5168). */
141
141
  addRelation(taskId: string, relatedTo: string, relationType: string, reason?: string): Promise<void>;
142
+ /** Remove a row from the task_relations table (T9240). */
143
+ removeRelation(taskId: string, relatedTo: string, relationType?: string): Promise<void>;
142
144
  /** Read a typed value from the metadata store. Returns null if not found. */
143
145
  getMetaValue<T>(key: string): Promise<T | null>;
144
146
  /** Write a typed value to the metadata store. */