@cleocode/core 2026.11.1-canary.5 → 2026.11.1-canary.6
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/README.md +1 -1
- package/dist/.source-stamp.json +1 -1
- package/dist/build-provenance.json +2 -2
- package/dist/check/pr-gate.d.ts +1 -1
- package/dist/check/pr-gate.js +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/doctor/type-matrix-repair.d.ts +35 -4
- package/dist/doctor/type-matrix-repair.d.ts.map +1 -1
- package/dist/doctor/type-matrix-repair.js +154 -48
- package/dist/doctor/type-matrix-repair.js.map +1 -1
- package/dist/llm/credential-writeback.d.ts +1 -1
- package/dist/llm/credential-writeback.js +1 -1
- package/dist/memory/decision-cross-link.d.ts +1 -1
- package/dist/memory/decision-cross-link.js +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +5 -3
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/resources/governor.d.ts +63 -0
- package/dist/resources/governor.d.ts.map +1 -1
- package/dist/resources/governor.js +96 -3
- package/dist/resources/governor.js.map +1 -1
- package/dist/sentient/background-review.d.ts +1 -1
- package/dist/sentient/background-review.js +1 -1
- package/dist/sentient/curator-config.d.ts +1 -1
- package/dist/sentient/curator-config.js +1 -1
- package/dist/sentient/curator.d.ts +1 -1
- package/dist/sentient/curator.js +1 -1
- package/dist/sentient/local-patch.d.ts +1 -1
- package/dist/sentient/local-patch.js +1 -1
- package/dist/sentient/skill-provenance.d.ts +1 -1
- package/dist/sentient/skill-provenance.js +1 -1
- package/dist/sentient/skill-review-prompt.d.ts +1 -1
- package/dist/sentient/skill-review-prompt.js +1 -1
- package/dist/setup/sections/brain.d.ts +2 -2
- package/dist/setup/sections/brain.js +2 -2
- package/dist/setup/sections/harness.d.ts +2 -2
- package/dist/setup/sections/harness.js +2 -2
- package/dist/setup/sections/identity.d.ts +1 -1
- package/dist/setup/sections/identity.js +1 -1
- package/dist/setup/sections/integrations.d.ts +1 -1
- package/dist/setup/sections/integrations.js +1 -1
- package/dist/setup/sections/llm.d.ts +1 -1
- package/dist/setup/sections/llm.js +1 -1
- package/dist/setup/sections/project-conventions.d.ts +1 -1
- package/dist/setup/sections/project-conventions.js +1 -1
- package/dist/setup/sections/sentient.d.ts +1 -1
- package/dist/setup/sections/sentient.js +1 -1
- package/dist/setup/sections/verification.d.ts +1 -1
- package/dist/setup/sections/verification.js +1 -1
- package/dist/setup/wizard.d.ts +2 -2
- package/dist/setup/wizard.js +2 -2
- package/dist/skills/doctor-adopt.d.ts +2 -2
- package/dist/skills/doctor-adopt.js +2 -2
- package/dist/skills/doctor-bridge.d.ts +2 -2
- package/dist/skills/doctor-bridge.js +2 -2
- package/dist/skills/doctor.d.ts +2 -2
- package/dist/skills/doctor.js +2 -2
- package/dist/skills/federation-store.d.ts +1 -1
- package/dist/skills/federation-store.js +1 -1
- package/dist/skills/hermes-importer.d.ts +1 -1
- package/dist/skills/hermes-importer.js +1 -1
- package/dist/skills/migration.d.ts +1 -1
- package/dist/skills/migration.js +1 -1
- package/dist/skills/skill-root.d.ts +1 -1
- package/dist/skills/skill-root.js +1 -1
- package/dist/skills/skills-guard.d.ts +1 -1
- package/dist/skills/skills-guard.js +1 -1
- package/dist/skills/usage-recorder.d.ts +1 -1
- package/dist/skills/usage-recorder.js +1 -1
- package/dist/status/index.d.ts +1 -1
- package/dist/status/index.js +1 -1
- package/dist/store/schema/skills-schema.d.ts +2 -2
- package/dist/store/schema/skills-schema.js +2 -2
- package/dist/store/skills-db.d.ts +2 -2
- package/dist/store/skills-db.js +2 -2
- package/dist/store/skills-store.d.ts +1 -1
- package/dist/store/skills-store.js +1 -1
- package/dist/store/skills-usage-queue.d.ts +1 -1
- package/dist/store/skills-usage-queue.js +1 -1
- package/package.json +12 -12
- package/schemas/config.schema.json +50 -0
- package/templates/workflows/README.md +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ CLEO core business logic kernel **and canonical SDK surface** — tasks, session
|
|
|
6
6
|
|
|
7
7
|
> **`@cleocode/core` IS the CLEO SDK.** There is no separate `@cleocode/cleo-sdk` package. The `Cleo` facade, domain namespaces, and flat free functions are all exposed through per-subpath exports that follow a CalVer stability contract. See [STABILITY.md](./STABILITY.md) for the full contract and `.dts-snapshots/` for the enforced baseline.
|
|
8
8
|
|
|
9
|
-
For LLM agents and SDK consumers calling CORE operations directly (the recommended approach — no CLI subprocess overhead), see the **[CORE API Agent Guide](../../docs/
|
|
9
|
+
For LLM agents and SDK consumers calling CORE operations directly (the recommended approach — no CLI subprocess overhead), see the **[CORE API Agent Guide](../../docs/reference/core-sdk.md)**.
|
|
10
10
|
|
|
11
11
|
## Quickstart
|
|
12
12
|
|
package/dist/.source-stamp.json
CHANGED
package/dist/check/pr-gate.d.ts
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
*
|
|
24
24
|
* @task T11956
|
|
25
25
|
* @epic T11679 (DHQ burn-down)
|
|
26
|
-
* @see docs/
|
|
26
|
+
* @see docs/guide/branch-protection-setup.md § "Required Status Checks"
|
|
27
27
|
*/
|
|
28
28
|
/**
|
|
29
29
|
* A single runnable pre-PR gate. The `command` + `args` are executed verbatim
|
package/dist/check/pr-gate.js
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
*
|
|
24
24
|
* @task T11956
|
|
25
25
|
* @epic T11679 (DHQ burn-down)
|
|
26
|
-
* @see docs/
|
|
26
|
+
* @see docs/guide/branch-protection-setup.md § "Required Status Checks"
|
|
27
27
|
*/
|
|
28
28
|
import { spawnSync } from 'node:child_process';
|
|
29
29
|
import { getProjectRoot } from '../paths.js';
|
package/dist/config.js
CHANGED
|
@@ -115,7 +115,7 @@ const DEFAULTS = {
|
|
|
115
115
|
// read `~/.claude/.credentials.json` without the operator's consent.
|
|
116
116
|
claudeCodeConsentGiven: false,
|
|
117
117
|
// T9411 — Cooperative write-back to ~/.claude/.credentials.json is ON
|
|
118
|
-
// by default per OQ-1 in docs
|
|
118
|
+
// by default per OQ-1 in `cleo docs fetch e-config-auth-unify`. CLEO still
|
|
119
119
|
// never creates Claude Code's file unless the operator has consented;
|
|
120
120
|
// this default only governs whether an existing file gets co-written.
|
|
121
121
|
cooperativeWriteBack: true,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,11 @@ import type { TaskType } from '@cleocode/contracts';
|
|
|
38
38
|
export declare const TYPE_MATRIX_REPAIR_ACTION = "doctor.type-matrix.repair";
|
|
39
39
|
/** Audit-log action of a rollback. */
|
|
40
40
|
export declare const TYPE_MATRIX_ROLLBACK_ACTION = "doctor.type-matrix.rollback";
|
|
41
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* One repair operation: re-type a task, or move it under another parent
|
|
43
|
+
* (`toParentId: null` moves it to the root). A resolution may give one task
|
|
44
|
+
* both a re-type and a reparent; they are applied together as one write.
|
|
45
|
+
*/
|
|
42
46
|
export type TypeMatrixRepairOp = {
|
|
43
47
|
readonly kind: 'retype';
|
|
44
48
|
readonly taskId: string;
|
|
@@ -46,7 +50,7 @@ export type TypeMatrixRepairOp = {
|
|
|
46
50
|
} | {
|
|
47
51
|
readonly kind: 'reparent';
|
|
48
52
|
readonly taskId: string;
|
|
49
|
-
readonly toParentId: string;
|
|
53
|
+
readonly toParentId: string | null;
|
|
50
54
|
};
|
|
51
55
|
/** A parent/child pair that breaks the matrix, and how it can be repaired. */
|
|
52
56
|
export interface TypeMatrixViolationPlan {
|
|
@@ -141,8 +145,28 @@ export interface TypeMatrixApplyOptions {
|
|
|
141
145
|
* each row is written only at the version the plan read, so a write made
|
|
142
146
|
* after the review is `E_CONFLICT` with nothing changed.
|
|
143
147
|
*/
|
|
144
|
-
readonly plan?:
|
|
148
|
+
readonly plan?: TypeMatrixReviewedPlan;
|
|
145
149
|
}
|
|
150
|
+
/** The part of a dry run an apply is held to. */
|
|
151
|
+
export type TypeMatrixReviewedPlan = Pick<TypeMatrixRepairReport, 'operations' | 'rowVersions'>;
|
|
152
|
+
/**
|
|
153
|
+
* Parse a reviewed dry run for `--plan <file>`: the `cleo doctor type-matrix`
|
|
154
|
+
* JSON output (the envelope or its `data`).
|
|
155
|
+
*
|
|
156
|
+
* @param text - The file's contents.
|
|
157
|
+
* @returns The operations and row versions, or why the file was refused.
|
|
158
|
+
* @example
|
|
159
|
+
* ```ts
|
|
160
|
+
* const reviewed = parseTypeMatrixPlan(readFileSync('plan.json', 'utf-8'));
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
export declare function parseTypeMatrixPlan(text: string): {
|
|
164
|
+
ok: true;
|
|
165
|
+
value: TypeMatrixReviewedPlan;
|
|
166
|
+
} | {
|
|
167
|
+
ok: false;
|
|
168
|
+
reason: string;
|
|
169
|
+
};
|
|
146
170
|
/**
|
|
147
171
|
* Apply the proposals and the agent's resolutions in one transaction, and
|
|
148
172
|
* record the receipt. Each row is written only at the version it was read at
|
|
@@ -174,13 +198,20 @@ export interface TypeMatrixRollbackResult {
|
|
|
174
198
|
readonly id: string;
|
|
175
199
|
readonly reason: string;
|
|
176
200
|
}[];
|
|
201
|
+
/**
|
|
202
|
+
* Ancestors the repair's reparents reopened. A rollback does not close them
|
|
203
|
+
* again: work may have started on them since, so closing stays a decision.
|
|
204
|
+
*/
|
|
205
|
+
readonly stillReopened: readonly string[];
|
|
177
206
|
}
|
|
178
207
|
/**
|
|
179
208
|
* Restore the rows a repair changed to their before image. Refused when the
|
|
180
209
|
* receipt is unknown or already rolled back, or when any row no longer
|
|
181
210
|
* matches the repair's after image (a later edit is never overwritten). Only
|
|
182
211
|
* the rows the type-matrix trigger allows are restored; the rest are listed
|
|
183
|
-
* in `refused` with the reason, and refused outright when none can be.
|
|
212
|
+
* in `refused` with the reason, and refused outright when none can be. Done
|
|
213
|
+
* ancestors a reparent reopened stay open (`stillReopened`): closing one again
|
|
214
|
+
* is a decision, not an undo.
|
|
184
215
|
*
|
|
185
216
|
* @param projectRoot - Project root.
|
|
186
217
|
* @param receiptId - `receiptId` of {@link applyTypeMatrixRepair}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-matrix-repair.d.ts","sourceRoot":"","sources":["../../src/doctor/type-matrix-repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EAAwC,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"type-matrix-repair.d.ts","sourceRoot":"","sources":["../../src/doctor/type-matrix-repair.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,7 @@ import { CleoError } from '../errors.js';
|
|
|
40
40
|
import { getTaskAccessor } from '../store/data-accessor.js';
|
|
41
41
|
import { nextTaskVersion } from '../store/task-version.js';
|
|
42
42
|
import { assertParentNotIrreversiblyTerminal } from '../tasks/child-disposition.js';
|
|
43
|
+
import { exceedsMaxDepth } from '../tasks/hierarchy.js';
|
|
43
44
|
import { getHierarchyLimits } from '../tasks/task-tree.js';
|
|
44
45
|
/** Audit-log action of an applied repair (its row id is the receipt id). */
|
|
45
46
|
export const TYPE_MATRIX_REPAIR_ACTION = 'doctor.type-matrix.repair';
|
|
@@ -161,13 +162,14 @@ export function parseTypeMatrixResolutions(text) {
|
|
|
161
162
|
if (op['kind'] === 'retype' && isTaskType(op['to'])) {
|
|
162
163
|
operations.push({ kind: 'retype', taskId, to: op['to'] });
|
|
163
164
|
}
|
|
164
|
-
else if (op['kind'] === 'reparent' &&
|
|
165
|
+
else if (op['kind'] === 'reparent' &&
|
|
166
|
+
(typeof op['toParentId'] === 'string' || op['toParentId'] === null)) {
|
|
165
167
|
operations.push({ kind: 'reparent', taskId, toParentId: op['toParentId'] });
|
|
166
168
|
}
|
|
167
169
|
else {
|
|
168
170
|
return {
|
|
169
171
|
ok: false,
|
|
170
|
-
reason: `operation ${i} must be {"kind":"retype","to":<saga|epic|task|subtask>} or {"kind":"reparent","toParentId":<id>}`,
|
|
172
|
+
reason: `operation ${i} must be {"kind":"retype","to":<saga|epic|task|subtask>} or {"kind":"reparent","toParentId":<id|null>}`,
|
|
171
173
|
};
|
|
172
174
|
}
|
|
173
175
|
}
|
|
@@ -200,30 +202,34 @@ function decideOperations(plans, model, resolutions, guards) {
|
|
|
200
202
|
const operations = [];
|
|
201
203
|
const seen = new Set();
|
|
202
204
|
let after = new Map(model);
|
|
203
|
-
for (const
|
|
204
|
-
if (!model.has(
|
|
205
|
+
for (const [taskId, ops] of groupByTask(resolutions)) {
|
|
206
|
+
if (!model.has(taskId)) {
|
|
205
207
|
// @sync-invariant none:input-shape a resolution naming an unknown task is refused before anything is written
|
|
206
|
-
throw refuse(`Resolution names ${
|
|
208
|
+
throw refuse(`Resolution names ${taskId}, which is not a task in this store.`);
|
|
207
209
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
210
|
+
const kinds = ops.map((op) => op.kind);
|
|
211
|
+
if (new Set(kinds).size !== kinds.length) {
|
|
212
|
+
// @sync-invariant none:input-shape two resolutions of one kind for a task are refused before anything is written
|
|
213
|
+
throw refuse(`Two ${kinds[0]} resolutions name ${taskId}; give at most one re-type and one reparent per task.`);
|
|
211
214
|
}
|
|
212
|
-
if (seen.has(op.taskId)) {
|
|
213
|
-
// @sync-invariant none:input-shape two resolutions for one task are refused before anything is written
|
|
214
|
-
throw refuse(`Two resolutions name ${op.taskId}; give one per task.`);
|
|
215
|
-
}
|
|
216
|
-
if (op.kind === 'reparent')
|
|
217
|
-
assertReparentAllowed(op, after, guards);
|
|
218
215
|
const trial = new Map(after);
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
216
|
+
for (const op of ops) {
|
|
217
|
+
if (op.kind === 'reparent') {
|
|
218
|
+
if (op.toParentId !== null && !model.has(op.toParentId)) {
|
|
219
|
+
// @sync-invariant none:input-shape a resolution naming an unknown parent is refused before anything is written
|
|
220
|
+
throw refuse(`Resolution moves ${taskId} under ${op.toParentId}, which is not a task.`);
|
|
221
|
+
}
|
|
222
|
+
assertReparentAllowed(op, trial, guards);
|
|
223
|
+
}
|
|
224
|
+
applyOp(trial, op);
|
|
225
|
+
}
|
|
226
|
+
const broken = newlyBroken(taskId, after, trial);
|
|
227
|
+
if (!placed(taskId, trial) || broken.length > 0) {
|
|
222
228
|
// @sync-invariant task.parent.type-matrix a resolution that leaves the matrix broken is refused before anything is written
|
|
223
|
-
throw refuse(`The resolution for ${
|
|
229
|
+
throw refuse(`The resolution for ${taskId} would leave ${[taskId, ...broken].join(', ')} where the type matrix (saga→epic, epic→task, task→subtask) does not allow it.`, 'Run cleo doctor type-matrix for the options, and resolve each ambiguous pair with one of them.');
|
|
224
230
|
}
|
|
225
|
-
seen.add(
|
|
226
|
-
operations.push(
|
|
231
|
+
seen.add(taskId);
|
|
232
|
+
operations.push(...ops);
|
|
227
233
|
after = trial;
|
|
228
234
|
}
|
|
229
235
|
for (const plan of plans) {
|
|
@@ -242,8 +248,19 @@ function decideOperations(plans, model, resolutions, guards) {
|
|
|
242
248
|
const unresolved = plans.filter((p) => !placed(p.taskId, after)).map((p) => p.taskId);
|
|
243
249
|
return { operations, unresolved };
|
|
244
250
|
}
|
|
251
|
+
/** Resolutions grouped by task, in the order each task first appears. */
|
|
252
|
+
function groupByTask(ops) {
|
|
253
|
+
const groups = new Map();
|
|
254
|
+
for (const op of ops) {
|
|
255
|
+
const list = groups.get(op.taskId) ?? [];
|
|
256
|
+
list.push(op);
|
|
257
|
+
groups.set(op.taskId, list);
|
|
258
|
+
}
|
|
259
|
+
return groups;
|
|
260
|
+
}
|
|
261
|
+
/** Ancestor count of `id` (a root is 0), as `getTaskDepth` counts it. */
|
|
245
262
|
function depthOf(id, model) {
|
|
246
|
-
let depth =
|
|
263
|
+
let depth = 0;
|
|
247
264
|
let parent = model.get(id)?.parentId ?? null;
|
|
248
265
|
const seen = new Set([id]);
|
|
249
266
|
while (parent !== null && !seen.has(parent)) {
|
|
@@ -264,12 +281,21 @@ function subtreeHeight(id, children) {
|
|
|
264
281
|
* are reopened at apply time, as that core does.
|
|
265
282
|
*/
|
|
266
283
|
function assertReparentAllowed(op, model, guards) {
|
|
267
|
-
|
|
284
|
+
const target = op.toParentId;
|
|
285
|
+
const children = childIndex(model);
|
|
286
|
+
if (target === null) {
|
|
287
|
+
if (subtreeHeight(op.taskId, children) > guards.limits.maxDepth) {
|
|
288
|
+
// @sync-invariant none:input-shape a reparent past the depth limit is refused before anything is written
|
|
289
|
+
throw refuse(`Moving ${op.taskId} to the root would exceed the max depth of ${guards.limits.maxDepth}.`);
|
|
290
|
+
}
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
if (target === op.taskId) {
|
|
268
294
|
// @sync-invariant none:input-shape a reparent under itself is refused before anything is written
|
|
269
295
|
throw refuse(`Moving ${op.taskId} under itself would create a cycle.`);
|
|
270
296
|
}
|
|
271
|
-
assertParentNotIrreversiblyTerminal({ id:
|
|
272
|
-
let cursor =
|
|
297
|
+
assertParentNotIrreversiblyTerminal({ id: target, status: guards.status.get(target) ?? 'pending' }, op.taskId, 'move');
|
|
298
|
+
let cursor = target;
|
|
273
299
|
const seen = new Set();
|
|
274
300
|
while (cursor !== null && !seen.has(cursor)) {
|
|
275
301
|
if (cursor === op.taskId) {
|
|
@@ -279,13 +305,13 @@ function assertReparentAllowed(op, model, guards) {
|
|
|
279
305
|
seen.add(cursor);
|
|
280
306
|
cursor = model.get(cursor)?.parentId ?? null;
|
|
281
307
|
}
|
|
282
|
-
|
|
283
|
-
const deepest = depthOf(
|
|
284
|
-
if (deepest
|
|
308
|
+
// The moved task sits at depth(target) + 1; its deepest descendant below that.
|
|
309
|
+
const deepest = depthOf(target, model) + 1 + subtreeHeight(op.taskId, children);
|
|
310
|
+
if (exceedsMaxDepth(deepest - 1, guards.limits.maxDepth)) {
|
|
285
311
|
// @sync-invariant none:input-shape a reparent past the depth limit is refused before anything is written
|
|
286
312
|
throw refuse(`Moving ${op.taskId} under ${op.toParentId} would exceed the max depth of ${guards.limits.maxDepth}.`);
|
|
287
313
|
}
|
|
288
|
-
const siblings = (children.get(
|
|
314
|
+
const siblings = (children.get(target) ?? []).filter((c) => c !== op.taskId).length;
|
|
289
315
|
if (guards.limits.maxSiblings > 0 && siblings >= guards.limits.maxSiblings) {
|
|
290
316
|
// @sync-invariant none:input-shape a reparent past the sibling limit is refused before anything is written
|
|
291
317
|
throw refuse(`Cannot add ${op.taskId} under ${op.toParentId}: max siblings (${guards.limits.maxSiblings}) exceeded.`);
|
|
@@ -345,6 +371,43 @@ export async function planTypeMatrixRepair(projectRoot, resolutions = []) {
|
|
|
345
371
|
rowVersions: rowVersions(operations, new Map(tasks.map((t) => [t.id, t]))),
|
|
346
372
|
};
|
|
347
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* Parse a reviewed dry run for `--plan <file>`: the `cleo doctor type-matrix`
|
|
376
|
+
* JSON output (the envelope or its `data`).
|
|
377
|
+
*
|
|
378
|
+
* @param text - The file's contents.
|
|
379
|
+
* @returns The operations and row versions, or why the file was refused.
|
|
380
|
+
* @example
|
|
381
|
+
* ```ts
|
|
382
|
+
* const reviewed = parseTypeMatrixPlan(readFileSync('plan.json', 'utf-8'));
|
|
383
|
+
* ```
|
|
384
|
+
*/
|
|
385
|
+
export function parseTypeMatrixPlan(text) {
|
|
386
|
+
let parsed;
|
|
387
|
+
try {
|
|
388
|
+
parsed = JSON.parse(text);
|
|
389
|
+
}
|
|
390
|
+
catch (err) {
|
|
391
|
+
return { ok: false, reason: `not JSON (${err instanceof Error ? err.message : String(err)})` };
|
|
392
|
+
}
|
|
393
|
+
const outer = typeof parsed === 'object' && parsed !== null ? parsed : {};
|
|
394
|
+
const inner = outer['data'];
|
|
395
|
+
const report = typeof inner === 'object' && inner !== null ? inner : outer;
|
|
396
|
+
const ops = parseTypeMatrixResolutions(JSON.stringify(report['operations'] ?? null));
|
|
397
|
+
if (!ops.ok)
|
|
398
|
+
return { ok: false, reason: `not a type-matrix dry run: operations ${ops.reason}` };
|
|
399
|
+
const versions = report['rowVersions'];
|
|
400
|
+
if (typeof versions !== 'object' || versions === null || Array.isArray(versions)) {
|
|
401
|
+
return { ok: false, reason: 'not a type-matrix dry run: rowVersions is missing' };
|
|
402
|
+
}
|
|
403
|
+
const rowVersions = {};
|
|
404
|
+
for (const [id, v] of Object.entries(versions)) {
|
|
405
|
+
if (typeof v !== 'string')
|
|
406
|
+
return { ok: false, reason: `rowVersions.${id} is not a version` };
|
|
407
|
+
rowVersions[id] = v;
|
|
408
|
+
}
|
|
409
|
+
return { ok: true, value: { operations: ops.operations, rowVersions } };
|
|
410
|
+
}
|
|
348
411
|
/** Ancestors of `id` in the model, nearest first. */
|
|
349
412
|
function ancestorsOf(id, model) {
|
|
350
413
|
const out = [];
|
|
@@ -403,14 +466,19 @@ export async function applyTypeMatrixRepair(projectRoot, resolutions = [], opts
|
|
|
403
466
|
for (const op of operations)
|
|
404
467
|
applyOp(after, op);
|
|
405
468
|
const childrenAfter = childIndex(after);
|
|
406
|
-
|
|
469
|
+
/** Done ancestor → the tasks whose reparent reopens it. */
|
|
470
|
+
const reopen = new Map();
|
|
407
471
|
for (const op of operations) {
|
|
408
472
|
if (op.kind !== 'reparent')
|
|
409
473
|
continue;
|
|
410
474
|
const oldParent = model.get(op.taskId)?.parentId ?? null;
|
|
411
475
|
for (const id of [...ancestorsOf(oldParent, model), ...ancestorsOf(op.toParentId, after)]) {
|
|
412
|
-
if (byId.get(id)?.status
|
|
413
|
-
|
|
476
|
+
if (byId.get(id)?.status !== 'done')
|
|
477
|
+
continue;
|
|
478
|
+
const by = reopen.get(id) ?? [];
|
|
479
|
+
if (!by.includes(op.taskId))
|
|
480
|
+
by.push(op.taskId);
|
|
481
|
+
reopen.set(id, by);
|
|
414
482
|
}
|
|
415
483
|
}
|
|
416
484
|
const receiptId = `type-matrix-${randomUUID()}`;
|
|
@@ -426,23 +494,36 @@ export async function applyTypeMatrixRepair(projectRoot, resolutions = [], opts
|
|
|
426
494
|
return updatedAt;
|
|
427
495
|
};
|
|
428
496
|
const images = [];
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
497
|
+
// One write per task: a re-type and a reparent of the same task land
|
|
498
|
+
// together, so the trigger checks the row only in its final shape.
|
|
499
|
+
for (const [taskId, ops] of groupByTask(operations)) {
|
|
500
|
+
const before = model.get(taskId);
|
|
501
|
+
const now = after.get(taskId);
|
|
502
|
+
if (before === undefined || now === undefined)
|
|
432
503
|
continue;
|
|
433
|
-
const fields =
|
|
434
|
-
const
|
|
435
|
-
|
|
504
|
+
const fields = {};
|
|
505
|
+
for (const op of ops) {
|
|
506
|
+
if (op.kind === 'retype')
|
|
507
|
+
fields.type = op.to;
|
|
508
|
+
else
|
|
509
|
+
fields.parentId = op.toParentId;
|
|
510
|
+
}
|
|
436
511
|
images.push({
|
|
437
|
-
id:
|
|
438
|
-
before:
|
|
439
|
-
after: now,
|
|
440
|
-
updatedAt: await write(
|
|
441
|
-
children: childrenAfter.get(
|
|
512
|
+
id: taskId,
|
|
513
|
+
before: { type: before.type, parentId: before.parentId },
|
|
514
|
+
after: { type: now.type, parentId: now.parentId },
|
|
515
|
+
updatedAt: await write(taskId, fields),
|
|
516
|
+
children: childrenAfter.get(taskId) ?? [],
|
|
442
517
|
});
|
|
443
518
|
}
|
|
444
|
-
|
|
445
|
-
|
|
519
|
+
// As coreTaskReparent does: reopen and note it on the ancestor.
|
|
520
|
+
for (const [id, by] of reopen) {
|
|
521
|
+
const notes = [
|
|
522
|
+
...(byId.get(id)?.notes ?? []),
|
|
523
|
+
`[${stamp}] Reopened by reparent of ${by.join(', ')} (hierarchy changed)`,
|
|
524
|
+
];
|
|
525
|
+
await write(id, { status: 'pending', completedAt: null, notesJson: JSON.stringify(notes) });
|
|
526
|
+
}
|
|
446
527
|
// Each image carries the version this transaction last wrote.
|
|
447
528
|
const final = images.map((r) => ({ ...r, updatedAt: current.get(r.id) ?? r.updatedAt }));
|
|
448
529
|
await tx.appendLog({
|
|
@@ -450,7 +531,7 @@ export async function applyTypeMatrixRepair(projectRoot, resolutions = [], opts
|
|
|
450
531
|
action: TYPE_MATRIX_REPAIR_ACTION,
|
|
451
532
|
taskId: final[0]?.id ?? 'doctor',
|
|
452
533
|
actor: 'cleo doctor type-matrix',
|
|
453
|
-
details: { operations, unresolved, reopened: [...reopen] },
|
|
534
|
+
details: { operations, unresolved, reopened: [...reopen.keys()] },
|
|
454
535
|
before: final.map((r) => ({ id: r.id, ...r.before })),
|
|
455
536
|
after: final.map((r) => ({
|
|
456
537
|
id: r.id,
|
|
@@ -466,7 +547,7 @@ export async function applyTypeMatrixRepair(projectRoot, resolutions = [], opts
|
|
|
466
547
|
receiptId,
|
|
467
548
|
rollback: `cleo doctor type-matrix --rollback ${receiptId}`,
|
|
468
549
|
rows,
|
|
469
|
-
reopened: [...reopen],
|
|
550
|
+
reopened: [...reopen.keys()],
|
|
470
551
|
};
|
|
471
552
|
}
|
|
472
553
|
/**
|
|
@@ -532,6 +613,23 @@ function refusalOf(row, then, finalType, children) {
|
|
|
532
613
|
? null
|
|
533
614
|
: `restoring ${row.id} as a ${row.type} would break ${later.id} (a ${later.type ?? 'task'} filed under it after the repair); the repair's value stays`;
|
|
534
615
|
}
|
|
616
|
+
/** The ancestors a repair receipt says its reparents reopened. */
|
|
617
|
+
function reopenedOf(detailsJson) {
|
|
618
|
+
if (detailsJson === null)
|
|
619
|
+
return [];
|
|
620
|
+
try {
|
|
621
|
+
const details = JSON.parse(detailsJson);
|
|
622
|
+
const reopened = typeof details === 'object' && details !== null
|
|
623
|
+
? details['reopened']
|
|
624
|
+
: undefined;
|
|
625
|
+
return Array.isArray(reopened)
|
|
626
|
+
? reopened.filter((x) => typeof x === 'string')
|
|
627
|
+
: [];
|
|
628
|
+
}
|
|
629
|
+
catch {
|
|
630
|
+
return [];
|
|
631
|
+
}
|
|
632
|
+
}
|
|
535
633
|
function malformed(receiptId) {
|
|
536
634
|
// @sync-invariant none:input-shape a malformed receipt is refused before anything is written
|
|
537
635
|
return new CleoError(ExitCode.VALIDATION_ERROR, `Receipt ${receiptId} has a malformed row image.`, {
|
|
@@ -577,7 +675,9 @@ function parseImages(json, receiptId) {
|
|
|
577
675
|
* receipt is unknown or already rolled back, or when any row no longer
|
|
578
676
|
* matches the repair's after image (a later edit is never overwritten). Only
|
|
579
677
|
* the rows the type-matrix trigger allows are restored; the rest are listed
|
|
580
|
-
* in `refused` with the reason, and refused outright when none can be.
|
|
678
|
+
* in `refused` with the reason, and refused outright when none can be. Done
|
|
679
|
+
* ancestors a reparent reopened stay open (`stillReopened`): closing one again
|
|
680
|
+
* is a decision, not an undo.
|
|
581
681
|
*
|
|
582
682
|
* @param projectRoot - Project root.
|
|
583
683
|
* @param receiptId - `receiptId` of {@link applyTypeMatrixRepair}.
|
|
@@ -657,6 +757,12 @@ export async function rollbackTypeMatrixRepair(projectRoot, receiptId) {
|
|
|
657
757
|
after: restore,
|
|
658
758
|
});
|
|
659
759
|
});
|
|
660
|
-
return {
|
|
760
|
+
return {
|
|
761
|
+
receiptId,
|
|
762
|
+
rollbackReceiptId,
|
|
763
|
+
restored: restore.map((r) => r.id),
|
|
764
|
+
refused,
|
|
765
|
+
stillReopened: reopenedOf(receipt.detailsJson),
|
|
766
|
+
};
|
|
661
767
|
}
|
|
662
768
|
//# sourceMappingURL=type-matrix-repair.js.map
|