@principles/pd-cli 1.149.1 → 1.149.3
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/commands/evolution-tasks-list.d.ts.map +1 -1
- package/dist/commands/evolution-tasks-list.js +15 -12
- package/dist/commands/evolution-tasks-list.js.map +1 -1
- package/dist/commands/evolution-tasks-show.d.ts.map +1 -1
- package/dist/commands/evolution-tasks-show.js +7 -4
- package/dist/commands/evolution-tasks-show.js.map +1 -1
- package/dist/commands/pain-evidence.d.ts.map +1 -1
- package/dist/commands/pain-evidence.js +3 -1
- package/dist/commands/pain-evidence.js.map +1 -1
- package/dist/commands/samples-list.d.ts.map +1 -1
- package/dist/commands/samples-list.js +5 -9
- package/dist/commands/samples-list.js.map +1 -1
- package/dist/commands/samples-review.d.ts.map +1 -1
- package/dist/commands/samples-review.js +5 -1
- package/dist/commands/samples-review.js.map +1 -1
- package/dist/commands/trajectory-db-unavailable.d.ts +11 -0
- package/dist/commands/trajectory-db-unavailable.d.ts.map +1 -0
- package/dist/commands/trajectory-db-unavailable.js +15 -0
- package/dist/commands/trajectory-db-unavailable.js.map +1 -0
- package/package.json +1 -1
- package/src/commands/evolution-tasks-list.ts +18 -14
- package/src/commands/evolution-tasks-show.ts +7 -5
- package/src/commands/pain-evidence.ts +3 -1
- package/src/commands/samples-list.ts +5 -9
- package/src/commands/samples-review.ts +5 -1
- package/src/commands/trajectory-db-unavailable.ts +19 -0
- package/tests/commands/config-doctor.test.ts +2 -2
- package/tests/commands/evolution-tasks-list.test.ts +41 -0
- package/tests/commands/evolution-tasks-show.test.ts +46 -0
- package/tests/commands/runtime-features.test.ts +1 -1
- package/tests/commands/runtime-internalization-run-once-language.test.ts +1 -1
- package/tests/commands/samples-list.test.ts +43 -0
- package/tests/commands/samples-review.test.ts +41 -0
- package/tests/services/pd-config-loader.test.ts +1 -1
- package/tests/services/rulehost-pipeline-runner.test.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolution-tasks-list.d.ts","sourceRoot":"","sources":["../../src/commands/evolution-tasks-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"evolution-tasks-list.d.ts","sourceRoot":"","sources":["../../src/commands/evolution-tasks-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,UAAU,yBAAyB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B7F"}
|
|
@@ -4,31 +4,34 @@
|
|
|
4
4
|
* Usage: pd evolution tasks list [--status pending|in_progress|completed|all]
|
|
5
5
|
* [--limit <number>] [--date-from <date>] [--date-to <date>]
|
|
6
6
|
*/
|
|
7
|
-
import { listEvolutionTasks } from '@principles/core/evolution-store';
|
|
7
|
+
import { listEvolutionTasks, TrajectoryDbUnavailableError } from '@principles/core/evolution-store';
|
|
8
8
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
9
|
+
import { exitWithTrajectoryDbUnavailable } from './trajectory-db-unavailable.js';
|
|
9
10
|
export async function handleEvolutionTasksList(opts) {
|
|
10
11
|
const workspaceDir = resolveWorkspaceDir();
|
|
12
|
+
let tasks;
|
|
11
13
|
try {
|
|
12
|
-
|
|
14
|
+
tasks = listEvolutionTasks(workspaceDir, {
|
|
13
15
|
status: opts.status === 'all' ? undefined : opts.status,
|
|
14
16
|
limit: opts.limit,
|
|
15
17
|
dateFrom: opts.dateFrom,
|
|
16
18
|
dateTo: opts.dateTo,
|
|
17
19
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
for (const task of tasks) {
|
|
23
|
-
const enqueuedAt = task.enqueuedAt ?? 'null';
|
|
24
|
-
console.log(`[${task.status}] ${task.taskId} (${task.taskKind}) score=${task.score} source=${task.source} enqueued=${enqueuedAt}`);
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
if (err instanceof TrajectoryDbUnavailableError) {
|
|
23
|
+
return exitWithTrajectoryDbUnavailable(err);
|
|
25
24
|
}
|
|
26
|
-
|
|
27
|
-
return;
|
|
25
|
+
throw err;
|
|
28
26
|
}
|
|
29
|
-
|
|
27
|
+
if (tasks.length === 0) {
|
|
30
28
|
console.log('No evolution tasks found.');
|
|
31
29
|
return;
|
|
32
30
|
}
|
|
31
|
+
for (const task of tasks) {
|
|
32
|
+
const enqueuedAt = task.enqueuedAt ?? 'null';
|
|
33
|
+
console.log(`[${task.status}] ${task.taskId} (${task.taskKind}) score=${task.score} source=${task.source} enqueued=${enqueuedAt}`);
|
|
34
|
+
}
|
|
35
|
+
console.log(`${tasks.length} task(s)`);
|
|
33
36
|
}
|
|
34
37
|
//# sourceMappingURL=evolution-tasks-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolution-tasks-list.js","sourceRoot":"","sources":["../../src/commands/evolution-tasks-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"evolution-tasks-list.js","sourceRoot":"","sources":["../../src/commands/evolution-tasks-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AASjF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAA+B;IAC5E,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAE3C,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,KAAK,GAAG,kBAAkB,CAAC,YAAY,EAAE;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;YACvD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,4BAA4B,EAAE,CAAC;YAChD,OAAO,+BAA+B,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;QAC7C,OAAO,CAAC,GAAG,CACT,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,MAAM,aAAa,UAAU,EAAE,CACtH,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,UAAU,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolution-tasks-show.d.ts","sourceRoot":"","sources":["../../src/commands/evolution-tasks-show.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"evolution-tasks-show.d.ts","sourceRoot":"","sources":["../../src/commands/evolution-tasks-show.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,UAAU,yBAAyB;IACjC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C7F"}
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
* Displays full details for a single evolution task.
|
|
7
7
|
* Accepts both numeric id and string taskId.
|
|
8
8
|
*/
|
|
9
|
-
import { getEvolutionTask } from '@principles/core/evolution-store';
|
|
9
|
+
import { getEvolutionTask, TrajectoryDbUnavailableError } from '@principles/core/evolution-store';
|
|
10
10
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
11
|
+
import { exitWithTrajectoryDbUnavailable } from './trajectory-db-unavailable.js';
|
|
11
12
|
export async function handleEvolutionTasksShow(opts) {
|
|
12
13
|
const workspaceDir = resolveWorkspaceDir();
|
|
13
14
|
let foundTask;
|
|
@@ -15,9 +16,11 @@ export async function handleEvolutionTasksShow(opts) {
|
|
|
15
16
|
const numericId = isNaN(Number(opts.id)) ? undefined : Number(opts.id);
|
|
16
17
|
foundTask = getEvolutionTask(workspaceDir, numericId ?? opts.id);
|
|
17
18
|
}
|
|
18
|
-
catch {
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
catch (err) {
|
|
20
|
+
if (err instanceof TrajectoryDbUnavailableError) {
|
|
21
|
+
return exitWithTrajectoryDbUnavailable(err);
|
|
22
|
+
}
|
|
23
|
+
throw err;
|
|
21
24
|
}
|
|
22
25
|
if (!foundTask) {
|
|
23
26
|
console.error(`Task not found: ${opts.id}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolution-tasks-show.js","sourceRoot":"","sources":["../../src/commands/evolution-tasks-show.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"evolution-tasks-show.js","sourceRoot":"","sources":["../../src/commands/evolution-tasks-show.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pain-evidence.d.ts","sourceRoot":"","sources":["../../src/commands/pain-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;;GAGG;AACH,iBAAS,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAsCzE;AA0DD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"pain-evidence.d.ts","sourceRoot":"","sources":["../../src/commands/pain-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;;GAGG;AACH,iBAAS,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAsCzE;AA0DD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE7E;AAID,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -158,7 +158,9 @@ export async function handlePainEvidence(opts) {
|
|
|
158
158
|
if (decisions.length === 0) {
|
|
159
159
|
console.log('No trigger decisions found in logs.');
|
|
160
160
|
console.log(`Searched: ${path.join(logDir, 'SYSTEM_*.log')}`);
|
|
161
|
-
|
|
161
|
+
// PRI-752: the old tip advised enabling painEvidenceAdmission — that flag
|
|
162
|
+
// has no executable consumers (Gate B records unconditionally when the
|
|
163
|
+
// plugin runs), so the advice was a placebo and was removed.
|
|
162
164
|
return;
|
|
163
165
|
}
|
|
164
166
|
console.log(`Recent Pain Evidence Admission Decisions (${decisions.length}):`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pain-evidence.js","sourceRoot":"","sources":["../../src/commands/pain-evidence.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pain-evidence.js","sourceRoot":"","sources":["../../src/commands/pain-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"samples-list.d.ts","sourceRoot":"","sources":["../../src/commands/samples-list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"samples-list.d.ts","sourceRoot":"","sources":["../../src/commands/samples-list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;CAC9C;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/E"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Usage: pd samples list [--status pending|approved|rejected]
|
|
5
5
|
*/
|
|
6
|
-
import { listCorrectionSamples } from '@principles/core/trajectory-store';
|
|
6
|
+
import { listCorrectionSamples, TrajectoryDbUnavailableError } from '@principles/core/trajectory-store';
|
|
7
7
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
8
|
+
import { exitWithTrajectoryDbUnavailable } from './trajectory-db-unavailable.js';
|
|
8
9
|
export async function handleSamplesList(opts) {
|
|
9
10
|
const workspaceDir = resolveWorkspaceDir();
|
|
10
11
|
const status = opts.status ?? 'pending';
|
|
@@ -13,15 +14,10 @@ export async function handleSamplesList(opts) {
|
|
|
13
14
|
samples = listCorrectionSamples(workspaceDir, status);
|
|
14
15
|
}
|
|
15
16
|
catch (err) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
console.log('No correction samples found.');
|
|
17
|
+
if (err instanceof TrajectoryDbUnavailableError) {
|
|
18
|
+
return exitWithTrajectoryDbUnavailable(err);
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
console.error('Failed to list samples:', message);
|
|
22
|
-
throw err;
|
|
23
|
-
}
|
|
24
|
-
return;
|
|
20
|
+
throw err;
|
|
25
21
|
}
|
|
26
22
|
if (samples.length === 0) {
|
|
27
23
|
console.log('No correction samples found.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"samples-list.js","sourceRoot":"","sources":["../../src/commands/samples-list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"samples-list.js","sourceRoot":"","sources":["../../src/commands/samples-list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAMjF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAwB;IAC9D,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;IAExC,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,qBAAqB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,4BAA4B,EAAE,CAAC;YAChD,OAAO,+BAA+B,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,CAAC,CAAC;IAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,aAAa,MAAM,CAAC,SAAS,UAAU,MAAM,CAAC,YAAY,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7H,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,YAAY,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"samples-review.d.ts","sourceRoot":"","sources":["../../src/commands/samples-review.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"samples-review.d.ts","sourceRoot":"","sources":["../../src/commands/samples-review.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,KAAK,cAAc,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9C,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBnF"}
|
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Usage: pd samples review <sample-id> approve|reject [note]
|
|
5
5
|
*/
|
|
6
|
-
import { reviewCorrectionSample } from '@principles/core/trajectory-store';
|
|
6
|
+
import { reviewCorrectionSample, TrajectoryDbUnavailableError } from '@principles/core/trajectory-store';
|
|
7
7
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
8
|
+
import { exitWithTrajectoryDbUnavailable } from './trajectory-db-unavailable.js';
|
|
8
9
|
export async function handleSamplesReview(opts) {
|
|
9
10
|
const workspaceDir = resolveWorkspaceDir();
|
|
10
11
|
try {
|
|
11
12
|
reviewCorrectionSample(opts.sampleId, opts.decision, opts.note, workspaceDir);
|
|
12
13
|
}
|
|
13
14
|
catch (err) {
|
|
15
|
+
if (err instanceof TrajectoryDbUnavailableError) {
|
|
16
|
+
return exitWithTrajectoryDbUnavailable(err);
|
|
17
|
+
}
|
|
14
18
|
if (err instanceof Error && err.message.includes('Sample not found')) {
|
|
15
19
|
console.error(`Error: Sample not found: ${opts.sampleId}`);
|
|
16
20
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"samples-review.js","sourceRoot":"","sources":["../../src/commands/samples-review.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"samples-review.js","sourceRoot":"","sources":["../../src/commands/samples-review.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAUjF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAA0B;IAClE,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAE3C,IAAI,CAAC;QACH,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,4BAA4B,EAAE,CAAC;YAChD,OAAO,+BAA+B,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,QAAQ,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared operator-facing failure for an unavailable trajectory database (PRI-753).
|
|
3
|
+
*
|
|
4
|
+
* The four trajectory-reading commands (`pd samples list/review`,
|
|
5
|
+
* `pd evolution tasks list/show`) surface the same structured failure:
|
|
6
|
+
* the error message carries path + reason, the second line is the next
|
|
7
|
+
* action (cli-6), and the process exits before any further mutation (cli-5).
|
|
8
|
+
*/
|
|
9
|
+
import type { TrajectoryDbUnavailableError } from '@principles/core/trajectory-store';
|
|
10
|
+
export declare function exitWithTrajectoryDbUnavailable(err: TrajectoryDbUnavailableError): never;
|
|
11
|
+
//# sourceMappingURL=trajectory-db-unavailable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trajectory-db-unavailable.d.ts","sourceRoot":"","sources":["../../src/commands/trajectory-db-unavailable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAKtF,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,4BAA4B,GAAG,KAAK,CAIxF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared operator-facing failure for an unavailable trajectory database (PRI-753).
|
|
3
|
+
*
|
|
4
|
+
* The four trajectory-reading commands (`pd samples list/review`,
|
|
5
|
+
* `pd evolution tasks list/show`) surface the same structured failure:
|
|
6
|
+
* the error message carries path + reason, the second line is the next
|
|
7
|
+
* action (cli-6), and the process exits before any further mutation (cli-5).
|
|
8
|
+
*/
|
|
9
|
+
const NEXT_ACTION = "Trajectory data lives in the workspace database written by the PD plugin. Initialize this workspace with 'pd runtime init --confirm' or run PD here first.";
|
|
10
|
+
export function exitWithTrajectoryDbUnavailable(err) {
|
|
11
|
+
console.error(`Error: ${err.message}`);
|
|
12
|
+
console.error(NEXT_ACTION);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=trajectory-db-unavailable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trajectory-db-unavailable.js","sourceRoot":"","sources":["../../src/commands/trajectory-db-unavailable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,GACf,4JAA4J,CAAC;AAE/J,MAAM,UAAU,+BAA+B,CAAC,GAAiC;IAC/E,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
* [--limit <number>] [--date-from <date>] [--date-to <date>]
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { listEvolutionTasks } from '@principles/core/evolution-store';
|
|
8
|
+
import { listEvolutionTasks, TrajectoryDbUnavailableError } from '@principles/core/evolution-store';
|
|
9
9
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
10
|
+
import { exitWithTrajectoryDbUnavailable } from './trajectory-db-unavailable.js';
|
|
10
11
|
|
|
11
12
|
interface EvolutionTasksListOptions {
|
|
12
13
|
status?: string;
|
|
@@ -18,27 +19,30 @@ interface EvolutionTasksListOptions {
|
|
|
18
19
|
export async function handleEvolutionTasksList(opts: EvolutionTasksListOptions): Promise<void> {
|
|
19
20
|
const workspaceDir = resolveWorkspaceDir();
|
|
20
21
|
|
|
22
|
+
let tasks;
|
|
21
23
|
try {
|
|
22
|
-
|
|
24
|
+
tasks = listEvolutionTasks(workspaceDir, {
|
|
23
25
|
status: opts.status === 'all' ? undefined : opts.status,
|
|
24
26
|
limit: opts.limit,
|
|
25
27
|
dateFrom: opts.dateFrom,
|
|
26
28
|
dateTo: opts.dateTo,
|
|
27
29
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return;
|
|
30
|
+
} catch (err) {
|
|
31
|
+
if (err instanceof TrajectoryDbUnavailableError) {
|
|
32
|
+
return exitWithTrajectoryDbUnavailable(err);
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
console.log(`${tasks.length} task(s)`);
|
|
39
|
-
return;
|
|
40
|
-
} catch {
|
|
34
|
+
throw err;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (tasks.length === 0) {
|
|
41
38
|
console.log('No evolution tasks found.');
|
|
42
39
|
return;
|
|
43
40
|
}
|
|
41
|
+
for (const task of tasks) {
|
|
42
|
+
const enqueuedAt = task.enqueuedAt ?? 'null';
|
|
43
|
+
console.log(
|
|
44
|
+
`[${task.status}] ${task.taskId} (${task.taskKind}) score=${task.score} source=${task.source} enqueued=${enqueuedAt}`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
console.log(`${tasks.length} task(s)`);
|
|
44
48
|
}
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
* Accepts both numeric id and string taskId.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { getEvolutionTask } from '@principles/core/evolution-store';
|
|
10
|
+
import { getEvolutionTask, TrajectoryDbUnavailableError } from '@principles/core/evolution-store';
|
|
11
11
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
12
|
+
import { exitWithTrajectoryDbUnavailable } from './trajectory-db-unavailable.js';
|
|
12
13
|
|
|
13
14
|
interface EvolutionTasksShowOptions {
|
|
14
15
|
id: string;
|
|
@@ -17,14 +18,15 @@ interface EvolutionTasksShowOptions {
|
|
|
17
18
|
export async function handleEvolutionTasksShow(opts: EvolutionTasksShowOptions): Promise<void> {
|
|
18
19
|
const workspaceDir = resolveWorkspaceDir();
|
|
19
20
|
|
|
20
|
-
|
|
21
21
|
let foundTask;
|
|
22
22
|
try {
|
|
23
23
|
const numericId = isNaN(Number(opts.id)) ? undefined : Number(opts.id);
|
|
24
24
|
foundTask = getEvolutionTask(workspaceDir, numericId ?? opts.id);
|
|
25
|
-
} catch {
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
} catch (err) {
|
|
26
|
+
if (err instanceof TrajectoryDbUnavailableError) {
|
|
27
|
+
return exitWithTrajectoryDbUnavailable(err);
|
|
28
|
+
}
|
|
29
|
+
throw err;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
if (!foundTask) {
|
|
@@ -188,7 +188,9 @@ export async function handlePainEvidence(opts: EvidenceOptions): Promise<void> {
|
|
|
188
188
|
if (decisions.length === 0) {
|
|
189
189
|
console.log('No trigger decisions found in logs.');
|
|
190
190
|
console.log(`Searched: ${path.join(logDir, 'SYSTEM_*.log')}`);
|
|
191
|
-
|
|
191
|
+
// PRI-752: the old tip advised enabling painEvidenceAdmission — that flag
|
|
192
|
+
// has no executable consumers (Gate B records unconditionally when the
|
|
193
|
+
// plugin runs), so the advice was a placebo and was removed.
|
|
192
194
|
return;
|
|
193
195
|
}
|
|
194
196
|
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* Usage: pd samples list [--status pending|approved|rejected]
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { listCorrectionSamples } from '@principles/core/trajectory-store';
|
|
7
|
+
import { listCorrectionSamples, TrajectoryDbUnavailableError } from '@principles/core/trajectory-store';
|
|
8
8
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
9
|
+
import { exitWithTrajectoryDbUnavailable } from './trajectory-db-unavailable.js';
|
|
9
10
|
|
|
10
11
|
interface SamplesListOptions {
|
|
11
12
|
status?: 'pending' | 'approved' | 'rejected';
|
|
@@ -15,19 +16,14 @@ export async function handleSamplesList(opts: SamplesListOptions): Promise<void>
|
|
|
15
16
|
const workspaceDir = resolveWorkspaceDir();
|
|
16
17
|
const status = opts.status ?? 'pending';
|
|
17
18
|
|
|
18
|
-
|
|
19
19
|
let samples;
|
|
20
20
|
try {
|
|
21
21
|
samples = listCorrectionSamples(workspaceDir, status);
|
|
22
22
|
} catch (err) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
console.log('No correction samples found.');
|
|
26
|
-
} else {
|
|
27
|
-
console.error('Failed to list samples:', message);
|
|
28
|
-
throw err;
|
|
23
|
+
if (err instanceof TrajectoryDbUnavailableError) {
|
|
24
|
+
return exitWithTrajectoryDbUnavailable(err);
|
|
29
25
|
}
|
|
30
|
-
|
|
26
|
+
throw err;
|
|
31
27
|
}
|
|
32
28
|
|
|
33
29
|
if (samples.length === 0) {
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* Usage: pd samples review <sample-id> approve|reject [note]
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { reviewCorrectionSample } from '@principles/core/trajectory-store';
|
|
7
|
+
import { reviewCorrectionSample, TrajectoryDbUnavailableError } from '@principles/core/trajectory-store';
|
|
8
8
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
9
|
+
import { exitWithTrajectoryDbUnavailable } from './trajectory-db-unavailable.js';
|
|
9
10
|
|
|
10
11
|
type ReviewDecision = 'approved' | 'rejected';
|
|
11
12
|
|
|
@@ -21,6 +22,9 @@ export async function handleSamplesReview(opts: SamplesReviewOptions): Promise<v
|
|
|
21
22
|
try {
|
|
22
23
|
reviewCorrectionSample(opts.sampleId, opts.decision, opts.note, workspaceDir);
|
|
23
24
|
} catch (err) {
|
|
25
|
+
if (err instanceof TrajectoryDbUnavailableError) {
|
|
26
|
+
return exitWithTrajectoryDbUnavailable(err);
|
|
27
|
+
}
|
|
24
28
|
if (err instanceof Error && err.message.includes('Sample not found')) {
|
|
25
29
|
console.error(`Error: Sample not found: ${opts.sampleId}`);
|
|
26
30
|
process.exit(1);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared operator-facing failure for an unavailable trajectory database (PRI-753).
|
|
3
|
+
*
|
|
4
|
+
* The four trajectory-reading commands (`pd samples list/review`,
|
|
5
|
+
* `pd evolution tasks list/show`) surface the same structured failure:
|
|
6
|
+
* the error message carries path + reason, the second line is the next
|
|
7
|
+
* action (cli-6), and the process exits before any further mutation (cli-5).
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { TrajectoryDbUnavailableError } from '@principles/core/trajectory-store';
|
|
11
|
+
|
|
12
|
+
const NEXT_ACTION =
|
|
13
|
+
"Trajectory data lives in the workspace database written by the PD plugin. Initialize this workspace with 'pd runtime init --confirm' or run PD here first.";
|
|
14
|
+
|
|
15
|
+
export function exitWithTrajectoryDbUnavailable(err: TrajectoryDbUnavailableError): never {
|
|
16
|
+
console.error(`Error: ${err.message}`);
|
|
17
|
+
console.error(NEXT_ACTION);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
@@ -43,7 +43,7 @@ function makeValidConfigYaml(): string {
|
|
|
43
43
|
code_tool_hook: { category: 'core', enabled: true },
|
|
44
44
|
defer_archive: { category: 'core', enabled: true },
|
|
45
45
|
correction_observer: { category: 'quiet', enabled: false },
|
|
46
|
-
|
|
46
|
+
gfi: { category: 'quiet', enabled: false },
|
|
47
47
|
},
|
|
48
48
|
runtimeProfiles: {
|
|
49
49
|
'openclaw.default': { type: 'openclaw', source: 'default' },
|
|
@@ -110,7 +110,7 @@ describe('Internal agent runtime binding readiness', () => {
|
|
|
110
110
|
code_tool_hook: { category: 'core', enabled: true },
|
|
111
111
|
defer_archive: { category: 'core', enabled: true },
|
|
112
112
|
correction_observer: { category: 'quiet', enabled: false },
|
|
113
|
-
|
|
113
|
+
gfi: { category: 'quiet', enabled: false },
|
|
114
114
|
},
|
|
115
115
|
runtimeProfiles: {
|
|
116
116
|
'openclaw.default': { type: 'openclaw', source: 'default' },
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pd evolution tasks list command tests — PRI-753 (Trajectory Reader Reality Fix).
|
|
3
|
+
*
|
|
4
|
+
* Before PRI-753 this handler wrapped every error as "No evolution tasks
|
|
5
|
+
* found." — including a missing database and real database failures. A
|
|
6
|
+
* missing trajectory database must now fail loud with reason and next action
|
|
7
|
+
* (cli-6), never masquerade as an empty task list (rc-9).
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
10
|
+
|
|
11
|
+
vi.mock('../../src/resolve-workspace.js', () => ({
|
|
12
|
+
resolveWorkspaceDir: vi.fn().mockReturnValue('/tmp/pri753-missing-workspace'),
|
|
13
|
+
}));
|
|
14
|
+
|
|
15
|
+
import { handleEvolutionTasksList } from '../../src/commands/evolution-tasks-list.js';
|
|
16
|
+
|
|
17
|
+
describe('handleEvolutionTasksList — unavailable database (PRI-753)', () => {
|
|
18
|
+
let errorSpy: ReturnType<typeof vi.spyOn>;
|
|
19
|
+
let exitSpy: ReturnType<typeof vi.spyOn>;
|
|
20
|
+
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
errorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
|
23
|
+
exitSpy = vi.spyOn(process, 'exit').mockImplementation(((code: number) => {
|
|
24
|
+
throw new Error(`process.exit:${String(code)}`);
|
|
25
|
+
}) as never);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
vi.restoreAllMocks();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('fails loud with reason and next action when trajectory.db is missing', async () => {
|
|
33
|
+
await expect(handleEvolutionTasksList({ status: 'all' })).rejects.toThrow('process.exit:1');
|
|
34
|
+
|
|
35
|
+
const stderrText = errorSpy.mock.calls.map((call) => String(call[0])).join('');
|
|
36
|
+
expect(stderrText).toContain('Trajectory database unavailable');
|
|
37
|
+
expect(stderrText).toContain('trajectory.db');
|
|
38
|
+
expect(stderrText).toContain('pd runtime init --confirm');
|
|
39
|
+
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pd evolution tasks show command tests — PRI-753 (Trajectory Reader Reality Fix).
|
|
3
|
+
*
|
|
4
|
+
* "Task not found" (database present, row absent) and "database unavailable"
|
|
5
|
+
* (file missing) are different failures and must stay distinguishable (cli-6).
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
8
|
+
|
|
9
|
+
vi.mock('../../src/resolve-workspace.js', () => ({
|
|
10
|
+
resolveWorkspaceDir: vi.fn().mockReturnValue('/tmp/pri753-missing-workspace'),
|
|
11
|
+
}));
|
|
12
|
+
|
|
13
|
+
import { handleEvolutionTasksShow } from '../../src/commands/evolution-tasks-show.js';
|
|
14
|
+
|
|
15
|
+
describe('handleEvolutionTasksShow — unavailable database (PRI-753)', () => {
|
|
16
|
+
let errorSpy: ReturnType<typeof vi.spyOn>;
|
|
17
|
+
let exitSpy: ReturnType<typeof vi.spyOn>;
|
|
18
|
+
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
errorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
|
21
|
+
exitSpy = vi.spyOn(process, 'exit').mockImplementation(((code: number) => {
|
|
22
|
+
throw new Error(`process.exit:${String(code)}`);
|
|
23
|
+
}) as never);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
vi.restoreAllMocks();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('fails loud with reason and next action when trajectory.db is missing', async () => {
|
|
31
|
+
await expect(handleEvolutionTasksShow({ id: 'task-001' })).rejects.toThrow('process.exit:1');
|
|
32
|
+
|
|
33
|
+
const stderrText = errorSpy.mock.calls.map((call) => String(call[0])).join('');
|
|
34
|
+
expect(stderrText).toContain('Trajectory database unavailable');
|
|
35
|
+
expect(stderrText).toContain('trajectory.db');
|
|
36
|
+
expect(stderrText).toContain('pd runtime init --confirm');
|
|
37
|
+
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('reports unavailable instead of "Task not found" when the database is missing', async () => {
|
|
41
|
+
await expect(handleEvolutionTasksShow({ id: 'task-001' })).rejects.toThrow('process.exit:1');
|
|
42
|
+
|
|
43
|
+
const stderrText = errorSpy.mock.calls.map((call) => String(call[0])).join('');
|
|
44
|
+
expect(stderrText).not.toContain('Task not found');
|
|
45
|
+
});
|
|
46
|
+
});
|
|
@@ -41,7 +41,7 @@ function makeValidConfigYaml(): string {
|
|
|
41
41
|
code_tool_hook: { category: 'core', enabled: true },
|
|
42
42
|
defer_archive: { category: 'core', enabled: true },
|
|
43
43
|
correction_observer: { category: 'quiet', enabled: false },
|
|
44
|
-
|
|
44
|
+
gfi: { category: 'quiet', enabled: false },
|
|
45
45
|
},
|
|
46
46
|
runtimeProfiles: {
|
|
47
47
|
// Include pd.default (the M9 default) to avoid "profile not found" warnings
|
|
@@ -58,7 +58,7 @@ function makeWorkspace(outputLanguage?: 'en'): string {
|
|
|
58
58
|
code_tool_hook: { category: 'core', enabled: true },
|
|
59
59
|
defer_archive: { category: 'core', enabled: true },
|
|
60
60
|
correction_observer: { category: 'quiet', enabled: false },
|
|
61
|
-
|
|
61
|
+
gfi: { category: 'quiet', enabled: false },
|
|
62
62
|
},
|
|
63
63
|
runtimeProfiles: { 'openclaw.default': { type: 'openclaw', source: 'default' } },
|
|
64
64
|
internalAgents: {
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pd samples list command tests — PRI-753 (Trajectory Reader Reality Fix).
|
|
3
|
+
*
|
|
4
|
+
* A missing workspace trajectory database is an operator-visible failure with
|
|
5
|
+
* a next action (cli-6), never a silent "no samples" answer (rc-9).
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
8
|
+
|
|
9
|
+
vi.mock('../../src/resolve-workspace.js', () => ({
|
|
10
|
+
resolveWorkspaceDir: vi.fn().mockReturnValue('/tmp/pri753-missing-workspace'),
|
|
11
|
+
}));
|
|
12
|
+
|
|
13
|
+
import { handleSamplesList } from '../../src/commands/samples-list.js';
|
|
14
|
+
|
|
15
|
+
describe('handleSamplesList — unavailable database (PRI-753)', () => {
|
|
16
|
+
let errorSpy: ReturnType<typeof vi.spyOn>;
|
|
17
|
+
let exitSpy: ReturnType<typeof vi.spyOn>;
|
|
18
|
+
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
errorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
|
21
|
+
exitSpy = vi.spyOn(process, 'exit').mockImplementation(((code: number) => {
|
|
22
|
+
throw new Error(`process.exit:${String(code)}`);
|
|
23
|
+
}) as never);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
vi.restoreAllMocks();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('fails loud with reason and next action when trajectory.db is missing', async () => {
|
|
31
|
+
await expect(handleSamplesList({})).rejects.toThrow('process.exit:1');
|
|
32
|
+
|
|
33
|
+
const stderrText = errorSpy.mock.calls.map((call) => String(call[0])).join('');
|
|
34
|
+
expect(stderrText).toContain('Trajectory database unavailable');
|
|
35
|
+
expect(stderrText).toContain(joinPath('.state', 'trajectory.db'));
|
|
36
|
+
expect(stderrText).toContain('pd runtime init --confirm');
|
|
37
|
+
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
function joinPath(a: string, b: string): string {
|
|
42
|
+
return `${a}${process.platform === 'win32' ? '\\' : '/'}${b}`;
|
|
43
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pd samples review command tests — PRI-753 (Trajectory Reader Reality Fix).
|
|
3
|
+
*
|
|
4
|
+
* A missing workspace trajectory database is an operator-visible failure with
|
|
5
|
+
* a next action (cli-6); failure exits before any mutation (cli-2/cli-5).
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
8
|
+
|
|
9
|
+
vi.mock('../../src/resolve-workspace.js', () => ({
|
|
10
|
+
resolveWorkspaceDir: vi.fn().mockReturnValue('/tmp/pri753-missing-workspace'),
|
|
11
|
+
}));
|
|
12
|
+
|
|
13
|
+
import { handleSamplesReview } from '../../src/commands/samples-review.js';
|
|
14
|
+
|
|
15
|
+
describe('handleSamplesReview — unavailable database (PRI-753)', () => {
|
|
16
|
+
let errorSpy: ReturnType<typeof vi.spyOn>;
|
|
17
|
+
let exitSpy: ReturnType<typeof vi.spyOn>;
|
|
18
|
+
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
errorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
|
21
|
+
exitSpy = vi.spyOn(process, 'exit').mockImplementation(((code: number) => {
|
|
22
|
+
throw new Error(`process.exit:${String(code)}`);
|
|
23
|
+
}) as never);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
vi.restoreAllMocks();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('fails loud with reason and next action when trajectory.db is missing', async () => {
|
|
31
|
+
await expect(handleSamplesReview({ sampleId: 'sample-001', decision: 'approve' })).rejects.toThrow(
|
|
32
|
+
'process.exit:1'
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
const stderrText = errorSpy.mock.calls.map((call) => String(call[0])).join('');
|
|
36
|
+
expect(stderrText).toContain('Trajectory database unavailable');
|
|
37
|
+
expect(stderrText).toContain('trajectory.db');
|
|
38
|
+
expect(stderrText).toContain('pd runtime init --confirm');
|
|
39
|
+
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
@@ -58,7 +58,7 @@ function makeValidConfigYaml(): string {
|
|
|
58
58
|
code_tool_hook: { category: 'core', enabled: true },
|
|
59
59
|
defer_archive: { category: 'core', enabled: true },
|
|
60
60
|
correction_observer: { category: 'quiet', enabled: false },
|
|
61
|
-
|
|
61
|
+
gfi: { category: 'quiet', enabled: false },
|
|
62
62
|
},
|
|
63
63
|
runtimeProfiles: {
|
|
64
64
|
'openclaw.default': { type: 'openclaw', source: 'default' },
|
|
@@ -667,7 +667,7 @@ function writeLanguageConfig(dir: string, outputLanguage?: 'en'): void {
|
|
|
667
667
|
code_tool_hook: { category: 'core', enabled: true },
|
|
668
668
|
defer_archive: { category: 'core', enabled: true },
|
|
669
669
|
correction_observer: { category: 'quiet', enabled: false },
|
|
670
|
-
|
|
670
|
+
gfi: { category: 'quiet', enabled: false },
|
|
671
671
|
},
|
|
672
672
|
runtimeProfiles: {
|
|
673
673
|
'openclaw.default': { type: 'openclaw', source: 'default' },
|