@principles/pd-cli 1.158.7 → 1.159.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"codex-worker.d.ts","sourceRoot":"","sources":["../../src/commands/codex-worker.ts"],"names":[],"mappings":"AA6BA,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,wBAAwB,GAAG,QAAQ,GAAG,UAAU,CAAC;IACjE,2BAA2B,EAAE,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwGD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DlF;;AAED,kEAAkE"}
1
+ {"version":3,"file":"codex-worker.d.ts","sourceRoot":"","sources":["../../src/commands/codex-worker.ts"],"names":[],"mappings":"AA8BA,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,wBAAwB,GAAG,QAAQ,GAAG,UAAU,CAAC;IACjE,2BAA2B,EAAE,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwGD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDlF;;AAED,kEAAkE"}
@@ -19,6 +19,7 @@
19
19
  * - cli-6: paused/degraded modes carry reason + nextAction.
20
20
  */
21
21
  import fs from 'node:fs';
22
+ import { createWorkerDrain } from './worker-drain.js';
22
23
  import os from 'node:os';
23
24
  import path from 'node:path';
24
25
  import { resolveWorkspaceDir } from '../resolve-workspace.js';
@@ -161,14 +162,9 @@ export async function handleCodexWorker(options) {
161
162
  return;
162
163
  }
163
164
  const interval = typeof options.intervalMs === 'number' && options.intervalMs >= 1000 ? options.intervalMs : DEFAULT_INTERVAL_MS;
164
- let stopped = false;
165
- const onSignal = () => {
166
- stopped = true;
167
- };
168
- process.on('SIGINT', onSignal);
169
- process.on('SIGTERM', onSignal);
165
+ const drain = createWorkerDrain();
170
166
  try {
171
- while (!stopped) {
167
+ while (!drain.stopped) {
172
168
  // PRI-655: one escaping cycle exception must not kill the daemon —
173
169
  // runCodexWorkspaceWorkerCycle reports component failures as degraded
174
170
  // results, but anything it still throws would propagate out of this
@@ -183,14 +179,13 @@ export async function handleCodexWorker(options) {
183
179
  console.error(`[PD:CodexWorker] cycle failed: ${message}`);
184
180
  console.error(` continuing in ${interval}ms. Investigate: pd codex worker --status --workspace "${workspace}"`);
185
181
  }
186
- if (stopped)
182
+ if (drain.stopped)
187
183
  break;
188
- await new Promise((resolve) => setTimeout(resolve, interval));
184
+ await drain.wait(interval);
189
185
  }
190
186
  }
191
187
  finally {
192
- process.off('SIGINT', onSignal);
193
- process.off('SIGTERM', onSignal);
188
+ drain.dispose();
194
189
  }
195
190
  }
196
191
  /** SPEC §15 worker mode, evaluated without executing anything. */
@@ -1 +1 @@
1
- {"version":3,"file":"codex-worker.js","sourceRoot":"","sources":["../../src/commands/codex-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-worker.js","sourceRoot":"","sources":["../../src/commands/codex-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * pd pain recall command — SPEC-PD-PAIN-RECALL-CLI-001.
3
+ *
4
+ * On-demand, read-only recall of the historical pains that a principle
5
+ * verifiably derives from. Parameter errors use the shared JSON error
6
+ * envelope; domain outcomes (ok / no_matches / partial / *_not_found /
7
+ * source_*) use the versioned pain-recall result contract with a non-zero
8
+ * exit code only when the query could not be answered.
9
+ *
10
+ * Usage:
11
+ * pd pain recall --principle-id <id> [--pain-id <id>] [--context <text>] [--limit 1-10] [--json]
12
+ */
13
+ export interface PainRecallOptions {
14
+ principleId?: string;
15
+ painId?: string;
16
+ context?: string;
17
+ limit?: number;
18
+ workspace?: string;
19
+ json?: boolean;
20
+ }
21
+ /**
22
+ * Strict --limit parser (SPEC §3.3): only a complete base-10 integer is
23
+ * accepted; anything else becomes NaN so the handler's integer/range check
24
+ * rejects it. Deliberately single-argument — Commander passes the previous
25
+ * option value as the parser's second argument, which `parseInt` would
26
+ * silently treat as a radix on repeated flags.
27
+ */
28
+ export declare function parsePainRecallLimit(value: string): number;
29
+ export declare function handlePainRecall(opts: PainRecallOptions): Promise<void>;
30
+ //# sourceMappingURL=pain-recall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pain-recall.d.ts","sourceRoot":"","sources":["../../src/commands/pain-recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAaD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG1D;AA8BD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0F7E"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * pd pain recall command — SPEC-PD-PAIN-RECALL-CLI-001.
3
+ *
4
+ * On-demand, read-only recall of the historical pains that a principle
5
+ * verifiably derives from. Parameter errors use the shared JSON error
6
+ * envelope; domain outcomes (ok / no_matches / partial / *_not_found /
7
+ * source_*) use the versioned pain-recall result contract with a non-zero
8
+ * exit code only when the query could not be answered.
9
+ *
10
+ * Usage:
11
+ * pd pain recall --principle-id <id> [--pain-id <id>] [--context <text>] [--limit 1-10] [--json]
12
+ */
13
+ import * as path from 'path';
14
+ import { resolveWorkspaceDir } from '../resolve-workspace.js';
15
+ import { recallPains, PAIN_RECALL_DEFAULT_LIMIT, PAIN_RECALL_MIN_LIMIT, PAIN_RECALL_MAX_LIMIT, } from '../services/pain-recall.js';
16
+ function fail(input) {
17
+ const { message, reason, nextAction, json } = input;
18
+ if (json) {
19
+ console.log(JSON.stringify({ status: 'failed', reason, message, nextAction }, null, 2));
20
+ }
21
+ else {
22
+ console.error('Error: ' + message);
23
+ console.error('Next: ' + nextAction);
24
+ }
25
+ process.exit(1);
26
+ }
27
+ /**
28
+ * Strict --limit parser (SPEC §3.3): only a complete base-10 integer is
29
+ * accepted; anything else becomes NaN so the handler's integer/range check
30
+ * rejects it. Deliberately single-argument — Commander passes the previous
31
+ * option value as the parser's second argument, which `parseInt` would
32
+ * silently treat as a radix on repeated flags.
33
+ */
34
+ export function parsePainRecallLimit(value) {
35
+ const trimmed = value.trim();
36
+ return /^\d+$/.test(trimmed) ? Number(trimmed) : Number.NaN;
37
+ }
38
+ function printHuman(result) {
39
+ const p = result.principle;
40
+ console.log(`Principle: ${p.canonicalId ?? p.requestedId} (${p.identityStatus})`);
41
+ if (p.text)
42
+ console.log(`Text: ${p.text}`);
43
+ console.log(`Status: ${result.status}${result.statusDetail ? ` (${result.statusDetail})` : ''}`);
44
+ console.log(`Sources: ledger=${result.sources.ledger} trajectory=${result.sources.trajectoryDb} state=${result.sources.stateDb}`);
45
+ console.log('─'.repeat(96));
46
+ for (const entry of result.results) {
47
+ console.log(` ${entry.pain.occurredAt ?? '-'} ${entry.pain.source ?? '-'} host=${entry.pain.host}`);
48
+ console.log(` id: ${entry.painId} | association: ${entry.association.type} (${entry.association.confidence})`);
49
+ if (entry.pain.reason)
50
+ console.log(` reason: ${entry.pain.reason}`);
51
+ if (entry.pain.text)
52
+ console.log(` text: ${entry.pain.text}`);
53
+ for (const diagnosis of entry.diagnoses) {
54
+ console.log(` diagnosis: ${diagnosis.diagnosisId} [${diagnosis.category}] ${diagnosis.rootCause} (not an owner statement)`);
55
+ }
56
+ if (entry.correctionEvidence) {
57
+ console.log(` correction: ${entry.correctionEvidence.text}${entry.correctionEvidence.classification ? ` [${entry.correctionEvidence.classification}]` : ''}`);
58
+ }
59
+ console.log(` availability: pain=${entry.availability.painEvent} diagnoses=${entry.availability.diagnoses} correction=${entry.availability.correctionEvidence}`);
60
+ }
61
+ console.log('─'.repeat(96));
62
+ console.log(`Returned ${result.summary.returned} of ${result.summary.availableCandidates} associated pain(s)${result.summary.truncated ? ' (truncated)' : ''}.`);
63
+ for (const item of result.unresolvedAssociations) {
64
+ const who = item.painId !== undefined ? `pain ${item.painId}` : `candidate ${item.candidateId}`;
65
+ console.error(`WARN: unresolved association: ${who}: ${item.reason}`);
66
+ }
67
+ }
68
+ export async function handlePainRecall(opts) {
69
+ const json = opts.json === true;
70
+ const principleId = typeof opts.principleId === 'string' ? opts.principleId.trim() : '';
71
+ if (principleId.length === 0) {
72
+ fail({
73
+ message: '--principle-id <id> is required and must be a non-empty canonical ledger principle id',
74
+ reason: 'principle_id_required',
75
+ nextAction: 'Pass the principle\'s canonical ledger id (a UUID), e.g. pd pain recall --principle-id <uuid> --json.',
76
+ json,
77
+ });
78
+ return; // guard: test stubs of process.exit continue execution
79
+ }
80
+ let limit = PAIN_RECALL_DEFAULT_LIMIT;
81
+ if (opts.limit !== undefined) {
82
+ if (!Number.isInteger(opts.limit) || opts.limit < PAIN_RECALL_MIN_LIMIT || opts.limit > PAIN_RECALL_MAX_LIMIT) {
83
+ fail({
84
+ message: `invalid limit: limit must be an integer between ${PAIN_RECALL_MIN_LIMIT} and ${PAIN_RECALL_MAX_LIMIT}, got ${opts.limit}`,
85
+ reason: 'invalid_limit',
86
+ nextAction: `Pass --limit with a valid integer (${PAIN_RECALL_MIN_LIMIT}-${PAIN_RECALL_MAX_LIMIT}).`,
87
+ json,
88
+ });
89
+ return; // guard: test stubs of process.exit continue execution
90
+ }
91
+ ({ limit } = opts);
92
+ }
93
+ let painId;
94
+ if (opts.painId !== undefined) {
95
+ const trimmed = typeof opts.painId === 'string' ? opts.painId.trim() : '';
96
+ if (trimmed.length === 0) {
97
+ fail({
98
+ message: 'invalid pain id: --pain-id must be a non-empty pain id',
99
+ reason: 'invalid_pain_id',
100
+ nextAction: 'Pass a non-empty --pain-id or omit the flag.',
101
+ json,
102
+ });
103
+ return; // guard: test stubs of process.exit continue execution
104
+ }
105
+ painId = trimmed;
106
+ }
107
+ let workspaceDir;
108
+ try {
109
+ workspaceDir = opts.workspace ? path.resolve(opts.workspace) : resolveWorkspaceDir();
110
+ }
111
+ catch (err) {
112
+ // resolveWorkspaceDir throws when no workspace can be determined (no
113
+ // --workspace, no PD_WORKSPACE_DIR, no config default, or an unparseable
114
+ // config) — surface it through the standard envelope instead of letting a
115
+ // raw exception escape --json mode (SPEC §4.4).
116
+ fail({
117
+ message: `workspace resolution failed: ${err instanceof Error ? err.message : String(err)}`,
118
+ reason: 'workspace_unresolved',
119
+ nextAction: 'Pass --workspace <path>, set PD_WORKSPACE_DIR, or add workspace.default to .pd/config.yaml.',
120
+ json,
121
+ });
122
+ return; // guard: test stubs of process.exit continue execution
123
+ }
124
+ let result;
125
+ try {
126
+ result = await recallPains(workspaceDir, {
127
+ requestedPrincipleId: principleId,
128
+ ...(painId !== undefined ? { painId } : {}),
129
+ ...(typeof opts.context === 'string' && opts.context.trim().length > 0 ? { context: opts.context } : {}),
130
+ limit,
131
+ });
132
+ }
133
+ catch (err) {
134
+ const message = err instanceof Error ? err.message : String(err);
135
+ fail({
136
+ message: `pain recall failed: ${message}`,
137
+ reason: 'recall_failed',
138
+ nextAction: 'Check the workspace state (pd health --json) and retry; this command never mutates state.',
139
+ json,
140
+ });
141
+ return; // guard: test stubs of process.exit continue execution
142
+ }
143
+ if (json) {
144
+ console.log(JSON.stringify(result, null, 2));
145
+ }
146
+ else {
147
+ printHuman(result);
148
+ }
149
+ // Domain failures that could not answer the query exit non-zero; ok /
150
+ // no_matches / partial are successful reads (0).
151
+ if (result.status !== 'ok' && result.status !== 'no_matches' && result.status !== 'partial') {
152
+ process.exit(1);
153
+ }
154
+ }
155
+ //# sourceMappingURL=pain-recall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pain-recall.js","sourceRoot":"","sources":["../../src/commands/pain-recall.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workbuddy-worker.d.ts","sourceRoot":"","sources":["../../src/commands/workbuddy-worker.ts"],"names":[],"mappings":"AAiCA,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,wBAAwB,GAAG,QAAQ,GAAG,UAAU,CAAC;IACjE,2BAA2B,EAAE,OAAO,CAAC;IACrC,WAAW,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,cAAc,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8ED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D1F"}
1
+ {"version":3,"file":"workbuddy-worker.d.ts","sourceRoot":"","sources":["../../src/commands/workbuddy-worker.ts"],"names":[],"mappings":"AAkCA,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,wBAAwB,GAAG,QAAQ,GAAG,UAAU,CAAC;IACjE,2BAA2B,EAAE,OAAO,CAAC;IACrC,WAAW,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,cAAc,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8ED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD1F"}
@@ -20,6 +20,7 @@
20
20
  * - cli-6: paused/degraded modes carry reason + nextAction.
21
21
  */
22
22
  import fs from 'node:fs';
23
+ import { createWorkerDrain } from './worker-drain.js';
23
24
  import os from 'node:os';
24
25
  import path from 'node:path';
25
26
  import { resolveWorkspaceDir } from '../resolve-workspace.js';
@@ -143,14 +144,9 @@ export async function handleWorkbuddyWorker(options) {
143
144
  return;
144
145
  }
145
146
  const interval = typeof options.intervalMs === 'number' && options.intervalMs >= 1000 ? options.intervalMs : DEFAULT_INTERVAL_MS;
146
- let stopped = false;
147
- const onSignal = () => {
148
- stopped = true;
149
- };
150
- process.on('SIGINT', onSignal);
151
- process.on('SIGTERM', onSignal);
147
+ const drain = createWorkerDrain();
152
148
  try {
153
- while (!stopped) {
149
+ while (!drain.stopped) {
154
150
  // One escaping cycle exception must not kill the daemon (same
155
151
  // PRI-655 discipline as the Codex worker): report, keep looping.
156
152
  try {
@@ -162,14 +158,13 @@ export async function handleWorkbuddyWorker(options) {
162
158
  console.error(`[PD:WorkbuddyWorker] cycle failed: ${message}`);
163
159
  console.error(` continuing in ${interval}ms. Investigate: pd workbuddy worker --status --workspace "${workspace}"`);
164
160
  }
165
- if (stopped)
161
+ if (drain.stopped)
166
162
  break;
167
- await new Promise((resolve) => setTimeout(resolve, interval));
163
+ await drain.wait(interval);
168
164
  }
169
165
  }
170
166
  finally {
171
- process.off('SIGINT', onSignal);
172
- process.off('SIGTERM', onSignal);
167
+ drain.dispose();
173
168
  }
174
169
  }
175
170
  //# sourceMappingURL=workbuddy-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workbuddy-worker.js","sourceRoot":"","sources":["../../src/commands/workbuddy-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workbuddy-worker.js","sourceRoot":"","sources":["../../src/commands/workbuddy-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** Private Companion IPC. Stops between cycles; never interrupts an active cycle. */
2
+ export declare function createWorkerDrain(): {
3
+ readonly stopped: boolean;
4
+ wait(interval: number): Promise<void>;
5
+ dispose(): void;
6
+ };
7
+ //# sourceMappingURL=worker-drain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-drain.d.ts","sourceRoot":"","sources":["../../src/commands/worker-drain.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,wBAAgB,iBAAiB;aAqBzB,OAAO,EAAI,OAAO;IAChB,IAAI,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C,OAAO,IAAI,IAAI;EAQlB"}
@@ -0,0 +1,51 @@
1
+ /** Private Companion IPC. Stops between cycles; never interrupts an active cycle. */
2
+ export function createWorkerDrain() {
3
+ let stopped = false;
4
+ let wake;
5
+ const stop = () => { stopped = true; wake?.(); };
6
+ const onMessage = (value) => {
7
+ if (value !== null && typeof value === 'object'
8
+ && Object.hasOwn(value, 'type') && Reflect.get(value, 'type') === 'pd.worker.drain.v1')
9
+ stop();
10
+ };
11
+ process.on('SIGINT', stop);
12
+ process.on('SIGTERM', stop);
13
+ // Other hosts (including test runners) also use Node IPC; they do not opt
14
+ // into Companion's private lifecycle protocol.
15
+ const managedIpc = process.env.PD_COMPANION_WORKER_IPC === '1';
16
+ if (managedIpc && process.send !== undefined) {
17
+ process.on('message', onMessage);
18
+ const reportUnavailable = () => { console.error('[PD:Worker] drain IPC unavailable; safely restart Companion after the current cycle.'); };
19
+ try {
20
+ process.send({ type: 'pd.worker.drain-ready.v1' }, (error) => { if (error !== null)
21
+ reportUnavailable(); });
22
+ }
23
+ catch {
24
+ reportUnavailable();
25
+ }
26
+ }
27
+ return {
28
+ get stopped() { return stopped; },
29
+ async wait(interval) {
30
+ if (stopped)
31
+ return;
32
+ await new Promise((resolve) => {
33
+ let timer;
34
+ const done = () => { clearTimeout(timer); wake = undefined; resolve(); };
35
+ timer = setTimeout(done, interval);
36
+ wake = done;
37
+ if (stopped)
38
+ done();
39
+ });
40
+ },
41
+ dispose() {
42
+ process.off('SIGINT', stop);
43
+ process.off('SIGTERM', stop);
44
+ process.off('message', onMessage);
45
+ // An open IPC channel must not keep a drained CLI alive.
46
+ if (managedIpc && process.send !== undefined && process.connected)
47
+ process.disconnect?.();
48
+ },
49
+ };
50
+ }
51
+ //# sourceMappingURL=worker-drain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-drain.js","sourceRoot":"","sources":["../../src/commands/worker-drain.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,IAA8B,CAAC;IACnC,MAAM,IAAI,GAAG,GAAS,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,CAAC,KAAc,EAAQ,EAAE;QACzC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;eAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,oBAAoB;YAAE,IAAI,EAAE,CAAC;IACnG,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,GAAG,CAAC;IAC/D,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjC,MAAM,iBAAiB,GAAG,GAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC,CAAC,CAAC,CAAC;QACjJ,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI;gBAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,CAAC;QAAC,MAAM,CAAC;YAAC,iBAAiB,EAAE,CAAC;QAAC,CAAC;IAClC,CAAC;IACD,OAAO;QACL,IAAI,OAAO,KAAc,OAAO,OAAO,CAAC,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,QAAgB;YACzB,IAAI,OAAO;gBAAE,OAAO;YACpB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,KAAoC,CAAC;gBACzC,MAAM,IAAI,GAAG,GAAS,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/E,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACnC,IAAI,GAAG,IAAI,CAAC;gBACZ,IAAI,OAAO;oBAAE,IAAI,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO;YACL,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAClC,yDAAyD;YACzD,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS;gBAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAC5F,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@
8
8
  import { Command, Option } from 'commander';
9
9
  import { handlePainRecord } from './commands/pain-record.js';
10
10
  import { registerPainRetryCommand } from './commands/pain-retry.js';
11
+ import { handlePainRecall, parsePainRecallLimit } from './commands/pain-recall.js';
11
12
  import { handlePainEvidence } from './commands/pain-evidence.js';
12
13
  import { handlePainList } from './commands/pain-list.js';
13
14
  import { handleSamplesList } from './commands/samples-list.js';
@@ -140,6 +141,26 @@ painCmd
140
141
  .action(async (opts) => {
141
142
  await handlePainEvidence(opts);
142
143
  });
144
+ // SPEC-PD-PAIN-RECALL-CLI-001: on-demand, read-only recall of the historical
145
+ // pains a principle verifiably derives from. Uses .option() (not
146
+ // .requiredOption()) so missing-flag errors produce structured JSON via the
147
+ // handler (same convention as activation edit, P2 #5).
148
+ painCmd
149
+ .command('recall')
150
+ .description('Recall historical pains verifiably associated with a principle (read-only)')
151
+ .option('--principle-id <id>', 'Canonical ledger principle id (required)')
152
+ .option('--pain-id <id>', 'Filter to one pain within this principle\'s verified associations')
153
+ .option('--context <text>', 'Current question — deterministic local re-ranking only, never creates associations')
154
+ // Strict integer parser (SPEC §3.3): non-integers become NaN and are
155
+ // rejected by the handler; never `parseInt` — Commander passes the previous
156
+ // option value as the parser's second argument, which parseInt would treat
157
+ // as a radix on repeated flags.
158
+ .option('-l, --limit <n>', 'Max results (default 3, 1-10)', parsePainRecallLimit)
159
+ .option('-w, --workspace <path>', 'Workspace directory')
160
+ .option('--json', 'Output raw JSON')
161
+ .action(async (opts) => {
162
+ await handlePainRecall(opts);
163
+ });
143
164
  const samplesCmd = program
144
165
  .command('samples', { hidden: true })
145
166
  .description('Correction sample management');