create-principles-disciple 1.146.0 → 1.146.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,5 +1,5 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "productVersion": "2.6.0",
4
- "sourceCommit": "dc2883bad3d0b3ce17a4a103f9b62bacdda50916"
3
+ "productVersion": "2.7.0",
4
+ "sourceCommit": "028bd1d8197cd5e6cd3187d3e6c0944848a95b9b"
5
5
  }
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Pain Recall Capability Facade — SPEC-PD-AGENT-CAPABILITY-API-001 v0.5 §7/§8.
3
+ *
4
+ * The single OD-A projection authority: constructs the protocol-independent
5
+ * `pd.capability.v1` envelope for `pd_recall_principle_pains` from the full
6
+ * PainRecallResult produced by the read model. The envelope is built
7
+ * field-by-field from the frozen od-a-v1 whitelist ("construction IS the
8
+ * whitelist") — DENY fields (canonicalId, painId, evidenceRefs, pain text,
9
+ * diagnoses.*, correctionEvidence.*, lineage hops, statusDetail-as-data, …)
10
+ * are structurally absent, never constructed-then-stripped.
11
+ *
12
+ * Every call re-asserts BOTH the leaf-key path set AND the structural
13
+ * container paths of the produced envelope (array indices normalized to
14
+ * `[]`); any non-whitelisted leaf — or any container that is not a proper
15
+ * ancestor of a whitelisted leaf (this catches a forbidden key hiding in an
16
+ * EMPTY array or object, which a leaf-only walk cannot see) — fails closed:
17
+ * the violating payload is withheld and an `unavailable` envelope with a
18
+ * stable internal error code is returned instead. The production self-check
19
+ * does NOT include the Gate 2 experimental sentinel regex — sentinel
20
+ * scanning is a test technique (see the capability tests).
21
+ *
22
+ * Layer contract (v0.5 §7.1): this facade is protocol-independent. It does
23
+ * NOT build MCP `content` blocks, does NOT set `isError`, and contains no
24
+ * transport/execution-boundary logic — the 32 KiB response budget and the
25
+ * 10 s call deadline are MCP Adapter (Gate 4) responsibilities and must not
26
+ * be implemented here. Read-model execution errors (an unexpected throw)
27
+ * propagate to the Adapter, which maps them per the Gate 4 contract; they
28
+ * are deliberately NOT swallowed into this envelope (v0.5 §7.3).
29
+ *
30
+ * Zero file I/O: everything is an in-memory projection over the read model's
31
+ * result, so this module is not registered in io-seam-registry.json (only
32
+ * files that actually perform controlled I/O are registered).
33
+ *
34
+ * OD-A scope (Owner decision 2026-11-01, v0.5 §8.2): od-a-v1 governs MCP
35
+ * Tool RESPONSE DISCLOSURE only. It is not a global agent data boundary and
36
+ * does not prevent the existing CLI (Skill-guided) from returning the full
37
+ * `pd.pain-recall.v1` output.
38
+ */
39
+ import { type AssociationType, type ItemAvailability, type SourceAvailability } from './pain-recall-read-model.js';
40
+ export declare const CAPABILITY_SCHEMA_VERSION: 'pd.capability.v1';
41
+ export declare const OD_A_DISCLOSURE_PROFILE: 'od-a-v1';
42
+ export declare const RECALL_PAIN_CAPABILITY_ID: 'pd_recall_principle_pains';
43
+ /** Trusted-context input. `workspaceDir` is injected by the Adapter (launch
44
+ * configuration); it must NEVER be a model-supplied tool parameter. */
45
+ export interface PainRecallCapabilityInput {
46
+ readonly workspaceDir: string;
47
+ readonly principleId: string;
48
+ readonly limit?: number;
49
+ }
50
+ export type PainRecallCapabilityStatus = 'ok' | 'no_matches' | 'partial' | 'not_found' | 'unavailable' | 'invalid_input';
51
+ export interface PainRecallCapabilityPrinciple {
52
+ readonly requestedId: string;
53
+ readonly identityStatus: 'resolved' | 'not_found' | 'ambiguous';
54
+ }
55
+ export interface PainRecallCapabilityQuery {
56
+ readonly limit: number;
57
+ readonly contextUsedForRanking: boolean;
58
+ readonly truncated: boolean;
59
+ }
60
+ export interface PainRecallCapabilityResultEntry {
61
+ readonly association: {
62
+ readonly type: AssociationType;
63
+ readonly confidence: 'explicit' | 'lineage_verified';
64
+ };
65
+ readonly availability: {
66
+ readonly painEvent: 'available';
67
+ readonly diagnoses: ItemAvailability;
68
+ readonly correctionEvidence: ItemAvailability;
69
+ };
70
+ }
71
+ export interface PainRecallCapabilityData {
72
+ readonly principle: PainRecallCapabilityPrinciple;
73
+ readonly query: PainRecallCapabilityQuery;
74
+ readonly results: readonly PainRecallCapabilityResultEntry[];
75
+ readonly summary: {
76
+ readonly returned: number;
77
+ readonly availableCandidates: number;
78
+ readonly truncated: boolean;
79
+ };
80
+ readonly sources: {
81
+ readonly ledger: SourceAvailability;
82
+ readonly trajectoryDb: SourceAvailability;
83
+ readonly stateDb: SourceAvailability;
84
+ };
85
+ readonly unresolvedAssociations: readonly {
86
+ readonly reason: string;
87
+ }[];
88
+ }
89
+ export interface PainRecallCapabilityProvenanceSource {
90
+ readonly name: 'ledger' | 'trajectoryDb' | 'stateDb';
91
+ readonly status: SourceAvailability;
92
+ }
93
+ export interface PainRecallCapabilityProvenance {
94
+ readonly workspaceBinding: 'configured';
95
+ readonly sources: readonly PainRecallCapabilityProvenanceSource[];
96
+ }
97
+ export interface PainRecallCapabilityWarning {
98
+ readonly code: string;
99
+ readonly message: string;
100
+ }
101
+ export interface PainRecallCapabilityError {
102
+ readonly code: string;
103
+ readonly message: string;
104
+ }
105
+ export interface PainRecallCapabilityNextAction {
106
+ readonly code: string;
107
+ readonly message: string;
108
+ }
109
+ /** The `pd.capability.v1` envelope (v0.5 §7.2). `data` is non-null for every
110
+ * status except `unavailable` and `invalid_input`, where nothing may be
111
+ * disclosed about the workspace. */
112
+ export interface PainRecallCapabilityResult {
113
+ readonly schemaVersion: typeof CAPABILITY_SCHEMA_VERSION;
114
+ readonly capability: typeof RECALL_PAIN_CAPABILITY_ID;
115
+ readonly disclosureProfile: typeof OD_A_DISCLOSURE_PROFILE;
116
+ readonly status: PainRecallCapabilityStatus;
117
+ readonly data: PainRecallCapabilityData | null;
118
+ readonly provenance: PainRecallCapabilityProvenance;
119
+ readonly warnings: readonly PainRecallCapabilityWarning[];
120
+ readonly error: PainRecallCapabilityError | null;
121
+ readonly nextAction: PainRecallCapabilityNextAction | null;
122
+ }
123
+ /**
124
+ * Recall a principle's verifiably-associated historical pains through the
125
+ * od-a-v1 disclosure profile.
126
+ *
127
+ * Duty sequence (v0.5 §7.1): validate input (fail-closed `invalid_input`,
128
+ * the read model is never called on bad input) → `recallPains` on the trusted
129
+ * workspace → OD-A projection (construction IS the whitelist) → leaf AND
130
+ * structural key-path self-check (violation ⇒ withhold the payload, return
131
+ * `unavailable`) → return.
132
+ *
133
+ * Resource constraint owned here (v0.5 §7.5.2, the only Core-layer limit):
134
+ * `limit ∈ [1, 10]`, default `PAIN_RECALL_DEFAULT_LIMIT` (3); the returned
135
+ * entry count is bounded by the read model's existing truncation semantics
136
+ * (≤ limit ≤ 10). The 32 KiB response budget and the 10 s deadline are NOT
137
+ * implemented here — they are Gate 4 MCP Adapter responsibilities.
138
+ */
139
+ export declare function recallPrinciplePainsCapability(input: PainRecallCapabilityInput): Promise<PainRecallCapabilityResult>;
140
+ //# sourceMappingURL=pain-recall-capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pain-recall-capability.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/pain-recall-capability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,334 @@
1
+ /**
2
+ * Pain Recall Capability Facade — SPEC-PD-AGENT-CAPABILITY-API-001 v0.5 §7/§8.
3
+ *
4
+ * The single OD-A projection authority: constructs the protocol-independent
5
+ * `pd.capability.v1` envelope for `pd_recall_principle_pains` from the full
6
+ * PainRecallResult produced by the read model. The envelope is built
7
+ * field-by-field from the frozen od-a-v1 whitelist ("construction IS the
8
+ * whitelist") — DENY fields (canonicalId, painId, evidenceRefs, pain text,
9
+ * diagnoses.*, correctionEvidence.*, lineage hops, statusDetail-as-data, …)
10
+ * are structurally absent, never constructed-then-stripped.
11
+ *
12
+ * Every call re-asserts BOTH the leaf-key path set AND the structural
13
+ * container paths of the produced envelope (array indices normalized to
14
+ * `[]`); any non-whitelisted leaf — or any container that is not a proper
15
+ * ancestor of a whitelisted leaf (this catches a forbidden key hiding in an
16
+ * EMPTY array or object, which a leaf-only walk cannot see) — fails closed:
17
+ * the violating payload is withheld and an `unavailable` envelope with a
18
+ * stable internal error code is returned instead. The production self-check
19
+ * does NOT include the Gate 2 experimental sentinel regex — sentinel
20
+ * scanning is a test technique (see the capability tests).
21
+ *
22
+ * Layer contract (v0.5 §7.1): this facade is protocol-independent. It does
23
+ * NOT build MCP `content` blocks, does NOT set `isError`, and contains no
24
+ * transport/execution-boundary logic — the 32 KiB response budget and the
25
+ * 10 s call deadline are MCP Adapter (Gate 4) responsibilities and must not
26
+ * be implemented here. Read-model execution errors (an unexpected throw)
27
+ * propagate to the Adapter, which maps them per the Gate 4 contract; they
28
+ * are deliberately NOT swallowed into this envelope (v0.5 §7.3).
29
+ *
30
+ * Zero file I/O: everything is an in-memory projection over the read model's
31
+ * result, so this module is not registered in io-seam-registry.json (only
32
+ * files that actually perform controlled I/O are registered).
33
+ *
34
+ * OD-A scope (Owner decision 2026-11-01, v0.5 §8.2): od-a-v1 governs MCP
35
+ * Tool RESPONSE DISCLOSURE only. It is not a global agent data boundary and
36
+ * does not prevent the existing CLI (Skill-guided) from returning the full
37
+ * `pd.pain-recall.v1` output.
38
+ */
39
+ import { recallPains, PAIN_RECALL_DEFAULT_LIMIT, PAIN_RECALL_MIN_LIMIT, PAIN_RECALL_MAX_LIMIT, } from './pain-recall-read-model.js';
40
+ export const CAPABILITY_SCHEMA_VERSION = 'pd.capability.v1';
41
+ export const OD_A_DISCLOSURE_PROFILE = 'od-a-v1';
42
+ export const RECALL_PAIN_CAPABILITY_ID = 'pd_recall_principle_pains';
43
+ /**
44
+ * Frozen od-a-v1 allowed leaf-key paths (array indices normalized to `[]`).
45
+ * Copied field-by-field from the hash-anchored Gate 2 executable projection
46
+ * (`project.mjs` ALLOWED_PATHS) plus the single v0.5 addition
47
+ * `disclosureProfile`. NOT exported: the contract is pinned behaviorally by
48
+ * the capability tests; widening requires a new profile version + Owner
49
+ * decision (v0.5 §7.4). Do not rebuild this list from documentation.
50
+ */
51
+ const ALLOWED_PATHS = new Set([
52
+ 'schemaVersion', 'capability', 'status', 'disclosureProfile',
53
+ 'data.principle.requestedId', 'data.principle.identityStatus',
54
+ 'data.query.limit', 'data.query.contextUsedForRanking', 'data.query.truncated',
55
+ 'data.results[].association.type', 'data.results[].association.confidence',
56
+ 'data.results[].availability.painEvent', 'data.results[].availability.diagnoses',
57
+ 'data.results[].availability.correctionEvidence',
58
+ 'data.summary.returned', 'data.summary.availableCandidates', 'data.summary.truncated',
59
+ 'data.sources.ledger', 'data.sources.trajectoryDb', 'data.sources.stateDb',
60
+ 'data.unresolvedAssociations[].reason',
61
+ 'provenance.workspaceBinding', 'provenance.sources[].name', 'provenance.sources[].status',
62
+ 'warnings[].code', 'warnings[].message',
63
+ 'error', 'error.code', 'error.message',
64
+ 'nextAction', 'nextAction.code', 'nextAction.message',
65
+ ]);
66
+ /**
67
+ * OUTER_STATUS — the single authority table (v0.5 §7.3). `ambiguous_principle`
68
+ * is RESERVED: the read model never produces it today (identity resolves
69
+ * exactly or reports not_found), and this facade must not fabricate the
70
+ * capability; the mapping row exists so a future read-model change surfaces
71
+ * as invalid_input instead of silently passing through. `denied` /
72
+ * `unconfirmed` are NOT enabled in the first release (v0.5 §7.3).
73
+ */
74
+ const OUTER_STATUS = {
75
+ ok: 'ok',
76
+ no_matches: 'no_matches',
77
+ partial: 'partial',
78
+ principle_not_found: 'not_found',
79
+ pain_not_found: 'not_found',
80
+ source_missing: 'unavailable',
81
+ source_unreadable: 'unavailable',
82
+ ambiguous_principle: 'invalid_input', // reserved — not produced (v0.5 F8)
83
+ };
84
+ /** errorFor — status → stable error derivation (Gate 2 semantics, verbatim).
85
+ * `statusDetail` participates ONLY here (pain_not_found code derivation);
86
+ * it is never emitted as a data field (frozen per v0.5 §8.1 detail 1). */
87
+ function errorFor(result) {
88
+ const s = result.status;
89
+ if (s === 'ok' || s === 'no_matches' || s === 'partial')
90
+ return null;
91
+ if (s === 'principle_not_found') {
92
+ return { code: 'principle_not_found', message: 'The requested principle id does not resolve to a canonical ledger principle.' };
93
+ }
94
+ if (s === 'pain_not_found') {
95
+ return {
96
+ code: result.statusDetail ?? 'pain_not_found',
97
+ message: 'The requested pain is not within this principle\'s verified associations.',
98
+ };
99
+ }
100
+ if (s === 'source_missing') {
101
+ return { code: 'source_missing', message: 'A required data source is missing; the query cannot be answered.' };
102
+ }
103
+ if (s === 'source_unreadable') {
104
+ return { code: 'source_unreadable', message: 'A required data source is unreadable; the query cannot be answered.' };
105
+ }
106
+ // Reserved row (ambiguous_principle → invalid_input): a stable refusal
107
+ // without fabricating capability the read model never claimed.
108
+ return { code: 'invalid_input', message: 'The request violates the tool input contract.' };
109
+ }
110
+ /** OD-A projection of a full PainRecallResult into the envelope. Construction
111
+ * IS the whitelist: every field below is an ALLOWED_PATHS leaf; nothing else
112
+ * from `result` is reachable. (Gate 2 projectEnvelope + disclosureProfile +
113
+ * the v0.5 §7.2 data-null rule: an `unavailable` outcome discloses no data.) */
114
+ function projectEnvelope(result) {
115
+ const status = OUTER_STATUS[result.status] ?? 'unavailable';
116
+ return {
117
+ schemaVersion: CAPABILITY_SCHEMA_VERSION,
118
+ capability: RECALL_PAIN_CAPABILITY_ID,
119
+ disclosureProfile: OD_A_DISCLOSURE_PROFILE,
120
+ status,
121
+ // §7.2: data is null for BOTH unavailable and invalid_input (the
122
+ // reserved ambiguous→invalid_input row included — review round 2,
123
+ // P2-3). Every other status carries the projected data object.
124
+ data: status === 'unavailable' || status === 'invalid_input' ? null : {
125
+ principle: {
126
+ requestedId: result.principle.requestedId,
127
+ identityStatus: result.principle.identityStatus,
128
+ },
129
+ query: {
130
+ limit: result.query.limit,
131
+ contextUsedForRanking: result.query.contextUsedForRanking,
132
+ truncated: result.query.truncated,
133
+ },
134
+ results: result.results.map((e) => ({
135
+ association: { type: e.association.type, confidence: e.association.confidence },
136
+ availability: {
137
+ painEvent: e.availability.painEvent,
138
+ diagnoses: e.availability.diagnoses,
139
+ correctionEvidence: e.availability.correctionEvidence,
140
+ },
141
+ })),
142
+ summary: {
143
+ returned: result.summary.returned,
144
+ availableCandidates: result.summary.availableCandidates,
145
+ truncated: result.summary.truncated,
146
+ },
147
+ sources: {
148
+ ledger: result.sources.ledger,
149
+ trajectoryDb: result.sources.trajectoryDb,
150
+ stateDb: result.sources.stateDb,
151
+ },
152
+ unresolvedAssociations: result.unresolvedAssociations.map((u) => ({ reason: u.reason })),
153
+ },
154
+ provenance: {
155
+ workspaceBinding: 'configured',
156
+ sources: [
157
+ { name: 'ledger', status: result.sources.ledger },
158
+ { name: 'trajectoryDb', status: result.sources.trajectoryDb },
159
+ { name: 'stateDb', status: result.sources.stateDb },
160
+ ],
161
+ },
162
+ warnings: [],
163
+ error: errorFor(result),
164
+ nextAction: null,
165
+ };
166
+ }
167
+ /** Deep key-path walk over the envelope for whitelist assertions. Leaves
168
+ * (primitives/null) contribute their exact path; every container additionally
169
+ * contributes a STRUCTURAL path — objects at `prefix`, arrays at
170
+ * `prefix + '[]'` — so a forbidden key cannot hide behind an EMPTY array or
171
+ * empty object (a leaf-only walk would see nothing at all; review round 2,
172
+ * P1-2). Gate 2's leaf-only collectPaths semantics remain for the leaf set. */
173
+ function collectPaths(value, prefix, out) {
174
+ if (Array.isArray(value)) {
175
+ for (const v of value)
176
+ collectPaths(v, prefix + '[]', out);
177
+ return;
178
+ }
179
+ if (value !== null && typeof value === 'object') {
180
+ for (const [k, v] of Object.entries(value))
181
+ collectPaths(v, prefix ? prefix + '.' + k : k, out);
182
+ return;
183
+ }
184
+ out.add(prefix);
185
+ }
186
+ /** All structural container paths of the envelope: objects at their key path,
187
+ * arrays at their `[]`-normalized key path. Empty containers contribute ONLY
188
+ * a structural path — exactly the case a leaf-only walk cannot see. */
189
+ function collectStructuralPaths(value, prefix, out) {
190
+ if (Array.isArray(value)) {
191
+ if (prefix !== '')
192
+ out.add(prefix + '[]');
193
+ for (const v of value)
194
+ collectStructuralPaths(v, prefix + '[]', out);
195
+ return;
196
+ }
197
+ if (value !== null && typeof value === 'object') {
198
+ if (prefix !== '')
199
+ out.add(prefix);
200
+ for (const [k, v] of Object.entries(value))
201
+ collectStructuralPaths(v, prefix ? prefix + '.' + k : k, out);
202
+ return;
203
+ }
204
+ }
205
+ const ALLOWED_PATH_LIST = [...ALLOWED_PATHS];
206
+ /** A structural container path is legal only when it is a proper ancestor of
207
+ * at least one whitelisted leaf path: objects must be followed by a whitelisted
208
+ * `structural.` descendant, arrays by a whitelisted `structural[]…` one. A
209
+ * whitelisted LEAF path made a container (e.g. someone turns `status` into an
210
+ * object) has no such descendant and fails here. */
211
+ function isAllowedStructuralPath(structural, isArray) {
212
+ const marker = isArray ? `${structural}[]` : `${structural}.`;
213
+ return ALLOWED_PATH_LIST.some((p) => p.startsWith(marker));
214
+ }
215
+ /** Production self-check: BOTH leaf paths and structural container paths of
216
+ * the envelope, against the frozen whitelist. Violations are returned to the
217
+ * facade, which withholds the whole payload — the violating paths/values
218
+ * never leave this module.
219
+ *
220
+ * §7.2 null form: `data: null` is the envelope's explicit empty marker for
221
+ * the `unavailable` / `invalid_input` statuses. It surfaces as a bare `data`
222
+ * leaf, which the frozen od-a-v1 path set does not list (the Gate 2
223
+ * prototype never projected a null data) — the whitelist governs the
224
+ * POPULATED shape of `data.*`, so the null marker is exempted here and
225
+ * nowhere else. */
226
+ function collectDisclosureViolations(envelope) {
227
+ const leafPaths = new Set();
228
+ collectPaths(envelope, '', leafPaths);
229
+ if (envelope.data === null)
230
+ leafPaths.delete('data');
231
+ const violations = [...leafPaths].filter((p) => !ALLOWED_PATHS.has(p));
232
+ const structuralPaths = new Set();
233
+ collectStructuralPaths(envelope, '', structuralPaths);
234
+ for (const p of structuralPaths) {
235
+ const isArray = p.endsWith('[]');
236
+ const base = isArray ? p.slice(0, -2) : p;
237
+ if (!isAllowedStructuralPath(base, isArray))
238
+ violations.push(p);
239
+ }
240
+ return violations;
241
+ }
242
+ // ── Input validation (rc-1/rc-2: unknown in, field-by-field guards) ─────────
243
+ const PRINCIPLE_ID_MAX_LENGTH = 200;
244
+ const INPUT_KEYS = new Set(['workspaceDir', 'principleId', 'limit']);
245
+ function truncateForMessage(value, max = 40) {
246
+ return value.length <= max ? value : `${value.slice(0, max)}…`;
247
+ }
248
+ function invalid(reason) {
249
+ return { ok: false, error: { code: 'invalid_input', message: `The request violates the tool input contract: ${reason}` } };
250
+ }
251
+ /**
252
+ * Validate the capability input field by field, rejecting every undeclared
253
+ * property. Fail-closed: any violation prevents the read model from being
254
+ * called at all. Messages name the field and the rule — never the value
255
+ * (bounded output, rc-8; the input is untrusted model output in the Gate 4
256
+ * deployment).
257
+ */
258
+ function validateCapabilityInput(input) {
259
+ if (typeof input !== 'object' || input === null || Array.isArray(input)) {
260
+ return invalid('the input must be an object');
261
+ }
262
+ const record = input;
263
+ for (const key of Object.keys(record)) {
264
+ if (!INPUT_KEYS.has(key)) {
265
+ return invalid(`unknown property "${truncateForMessage(key)}" is not allowed`);
266
+ }
267
+ }
268
+ const { workspaceDir, principleId, limit } = record;
269
+ if (typeof workspaceDir !== 'string' || workspaceDir.length === 0) {
270
+ return invalid('workspaceDir must be a non-empty string (injected trusted context)');
271
+ }
272
+ if (typeof principleId !== 'string' || principleId.length === 0 || principleId.length > PRINCIPLE_ID_MAX_LENGTH) {
273
+ return invalid(`principleId must be a string of 1..${PRINCIPLE_ID_MAX_LENGTH} characters`);
274
+ }
275
+ if (limit !== undefined) {
276
+ if (typeof limit !== 'number' || !Number.isInteger(limit) || limit < PAIN_RECALL_MIN_LIMIT || limit > PAIN_RECALL_MAX_LIMIT) {
277
+ return invalid(`limit must be an integer between ${PAIN_RECALL_MIN_LIMIT} and ${PAIN_RECALL_MAX_LIMIT}`);
278
+ }
279
+ }
280
+ return { ok: true, value: { workspaceDir, principleId, limit: limit ?? PAIN_RECALL_DEFAULT_LIMIT } };
281
+ }
282
+ // ── Fail-closed envelopes ────────────────────────────────────────────────────
283
+ function envelopeShell(status, error) {
284
+ return {
285
+ schemaVersion: CAPABILITY_SCHEMA_VERSION,
286
+ capability: RECALL_PAIN_CAPABILITY_ID,
287
+ disclosureProfile: OD_A_DISCLOSURE_PROFILE,
288
+ status,
289
+ data: null,
290
+ provenance: { workspaceBinding: 'configured', sources: [] },
291
+ warnings: [],
292
+ error,
293
+ nextAction: null,
294
+ };
295
+ }
296
+ // ── Capability entry point ───────────────────────────────────────────────────
297
+ /**
298
+ * Recall a principle's verifiably-associated historical pains through the
299
+ * od-a-v1 disclosure profile.
300
+ *
301
+ * Duty sequence (v0.5 §7.1): validate input (fail-closed `invalid_input`,
302
+ * the read model is never called on bad input) → `recallPains` on the trusted
303
+ * workspace → OD-A projection (construction IS the whitelist) → leaf AND
304
+ * structural key-path self-check (violation ⇒ withhold the payload, return
305
+ * `unavailable`) → return.
306
+ *
307
+ * Resource constraint owned here (v0.5 §7.5.2, the only Core-layer limit):
308
+ * `limit ∈ [1, 10]`, default `PAIN_RECALL_DEFAULT_LIMIT` (3); the returned
309
+ * entry count is bounded by the read model's existing truncation semantics
310
+ * (≤ limit ≤ 10). The 32 KiB response budget and the 10 s deadline are NOT
311
+ * implemented here — they are Gate 4 MCP Adapter responsibilities.
312
+ */
313
+ export async function recallPrinciplePainsCapability(input) {
314
+ const validated = validateCapabilityInput(input);
315
+ if (!validated.ok) {
316
+ return envelopeShell('invalid_input', validated.error);
317
+ }
318
+ const raw = await recallPains(validated.value.workspaceDir, {
319
+ requestedPrincipleId: validated.value.principleId,
320
+ limit: validated.value.limit,
321
+ });
322
+ const envelope = projectEnvelope(raw);
323
+ if (collectDisclosureViolations(envelope).length > 0) {
324
+ // Disclosure assertion failed: the payload is withheld (never returned),
325
+ // and the message stays generic so a violating field cannot leak through
326
+ // the failure channel either (values AND key paths stay internal).
327
+ return envelopeShell('unavailable', {
328
+ code: 'disclosure_assertion_failed',
329
+ message: 'Internal disclosure assertion failed; the response was withheld.',
330
+ });
331
+ }
332
+ return envelope;
333
+ }
334
+ //# sourceMappingURL=pain-recall-capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pain-recall-capability.js","sourceRoot":"","sources":["../../src/runtime-v2/pain-recall-capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,GAMtB,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAA2B,CAAC;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAkB,CAAC;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAAoC,CAAC;AAuF9E;;;;;;;GAOG;AACH,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC;IACjD,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB;IAC5D,4BAA4B,EAAE,+BAA+B;IAC7D,kBAAkB,EAAE,kCAAkC,EAAE,sBAAsB;IAC9E,iCAAiC,EAAE,uCAAuC;IAC1E,uCAAuC,EAAE,uCAAuC;IAChF,gDAAgD;IAChD,uBAAuB,EAAE,kCAAkC,EAAE,wBAAwB;IACrF,qBAAqB,EAAE,2BAA2B,EAAE,sBAAsB;IAC1E,sCAAsC;IACtC,6BAA6B,EAAE,2BAA2B,EAAE,6BAA6B;IACzF,iBAAiB,EAAE,oBAAoB;IACvC,OAAO,EAAE,YAAY,EAAE,eAAe;IACtC,YAAY,EAAE,iBAAiB,EAAE,oBAAoB;CACtD,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,YAAY,GAAmE;IACnF,EAAE,EAAE,IAAI;IACR,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,mBAAmB,EAAE,WAAW;IAChC,cAAc,EAAE,WAAW;IAC3B,cAAc,EAAE,aAAa;IAC7B,iBAAiB,EAAE,aAAa;IAChC,mBAAmB,EAAE,eAAe,EAAE,oCAAoC;CAC3E,CAAC;AAEF;;0EAE0E;AAC1E,SAAS,QAAQ,CAAC,MAAwB;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,CAAC,KAAK,qBAAqB,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,8EAA8E,EAAE,CAAC;IAClI,CAAC;IACD,IAAI,CAAC,KAAK,gBAAgB,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,YAAY,IAAI,gBAAgB;YAC7C,OAAO,EAAE,2EAA2E;SACrF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,gBAAgB,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC;IACjH,CAAC;IACD,IAAI,CAAC,KAAK,mBAAmB,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,qEAAqE,EAAE,CAAC;IACvH,CAAC;IACD,uEAAuE;IACvE,+DAA+D;IAC/D,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;AAC7F,CAAC;AAED;;;gFAGgF;AAChF,SAAS,eAAe,CAAC,MAAwB;IAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC;IAC5D,OAAO;QACL,aAAa,EAAE,yBAAyB;QACxC,UAAU,EAAE,yBAAyB;QACrC,iBAAiB,EAAE,uBAAuB;QAC1C,MAAM;QACN,iEAAiE;QACjE,kEAAkE;QAClE,+DAA+D;QAC/D,IAAI,EAAE,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACpE,SAAS,EAAE;gBACT,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;gBACzC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc;aAChD;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;gBACzB,qBAAqB,EAAE,MAAM,CAAC,KAAK,CAAC,qBAAqB;gBACzD,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;aAClC;YACD,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE;gBAC/E,YAAY,EAAE;oBACZ,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS;oBACnC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS;oBACnC,kBAAkB,EAAE,CAAC,CAAC,YAAY,CAAC,kBAAkB;iBACtD;aACF,CAAC,CAAC;YACH,OAAO,EAAE;gBACP,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;gBACjC,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB;gBACvD,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;aACpC;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;gBAC7B,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;gBACzC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;aAChC;YACD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACzF;QACD,UAAU,EAAE;YACV,gBAAgB,EAAE,YAAY;YAC9B,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;gBACjD,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;gBAC7D,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;aACpD;SACF;QACD,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;QACvB,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED;;;;;+EAK+E;AAC/E,SAAS,YAAY,CAAC,KAAc,EAAE,MAAc,EAAE,GAAgB;IACpE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChG,OAAO;IACT,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;uEAEuE;AACvE,SAAS,sBAAsB,CAAC,KAAc,EAAE,MAAc,EAAE,GAAgB;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,MAAM,KAAK,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,IAAI,MAAM,KAAK,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1G,OAAO;IACT,CAAC;AACH,CAAC;AAED,MAAM,iBAAiB,GAAsB,CAAC,GAAG,aAAa,CAAC,CAAC;AAEhE;;;;oDAIoD;AACpD,SAAS,uBAAuB,CAAC,UAAkB,EAAE,OAAgB;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;IAC9D,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;mBAUmB;AACnB,SAAS,2BAA2B,CAAC,QAAoC;IACvE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IACtC,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;QAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,sBAAsB,CAAC,QAAQ,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,+EAA+E;AAE/E,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1F,SAAS,kBAAkB,CAAC,KAAa,EAAE,GAAG,GAAG,EAAE;IACjD,OAAO,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAE7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,iDAAiD,MAAM,EAAE,EAAE,EAAE,CAAC;AAC7H,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAG7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,qBAAqB,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACpD,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO,OAAO,CAAC,oEAAoE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;QAChH,OAAO,OAAO,CAAC,sCAAsC,uBAAuB,aAAa,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,qBAAqB,IAAI,KAAK,GAAG,qBAAqB,EAAE,CAAC;YAC5H,OAAO,OAAO,CAAC,oCAAoC,qBAAqB,QAAQ,qBAAqB,EAAE,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,IAAI,yBAAyB,EAAE,EAAE,CAAC;AACvG,CAAC;AAED,gFAAgF;AAEhF,SAAS,aAAa,CAAC,MAAkC,EAAE,KAAuC;IAChG,OAAO;QACL,aAAa,EAAE,yBAAyB;QACxC,UAAU,EAAE,yBAAyB;QACrC,iBAAiB,EAAE,uBAAuB;QAC1C,MAAM;QACN,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3D,QAAQ,EAAE,EAAE;QACZ,KAAK;QACL,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,KAAgC;IAEhC,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE;QAC1D,oBAAoB,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW;QACjD,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK;KAC7B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,2BAA2B,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,yEAAyE;QACzE,yEAAyE;QACzE,mEAAmE;QACnE,OAAO,aAAa,CAAC,aAAa,EAAE;YAClC,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,kEAAkE;SAC5E,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,113 @@
1
+ export declare const PAIN_RECALL_SCHEMA_VERSION = "pd.pain-recall.v1";
2
+ export declare const PAIN_RECALL_DEFAULT_LIMIT = 3;
3
+ export declare const PAIN_RECALL_MIN_LIMIT = 1;
4
+ export declare const PAIN_RECALL_MAX_LIMIT = 10;
5
+ export type PainRecallStatus = 'ok' | 'no_matches' | 'principle_not_found' | 'ambiguous_principle' | 'pain_not_found' | 'source_missing' | 'source_unreadable' | 'partial';
6
+ export type SourceAvailability = 'ok' | 'missing' | 'unreadable' | 'not_checked';
7
+ export type AssociationType = 'explicit_reuse' | 'derived_from' | 'multiple_paths';
8
+ export interface RecallEvidenceRef {
9
+ kind: 'reuse_evidence' | 'candidate_lineage';
10
+ candidateId: string;
11
+ taskId?: string;
12
+ decidedAt?: string;
13
+ decisionId?: string;
14
+ }
15
+ export interface RecallAssociation {
16
+ type: AssociationType;
17
+ confidence: 'explicit' | 'lineage_verified';
18
+ evidenceRefs: RecallEvidenceRef[];
19
+ }
20
+ export interface PainEventView {
21
+ occurredAt: string | null;
22
+ source: string | null;
23
+ host: string;
24
+ score: number | null;
25
+ severity: string | null;
26
+ reason: string | null;
27
+ text: string | null;
28
+ /** A verbatim owner statement is only reported via correctionEvidence; the
29
+ * pain row itself never carries one, so this is structurally null. */
30
+ rawStatement: null;
31
+ }
32
+ export interface DiagnosisView {
33
+ diagnosisId: string;
34
+ taskId: string;
35
+ category: string;
36
+ rootCause: string;
37
+ supportingEvidence: readonly {
38
+ sourceRef: string;
39
+ note: string;
40
+ }[];
41
+ confidence: number | null;
42
+ isOriginalOwnerStatement: false;
43
+ }
44
+ export interface CorrectionEvidenceView {
45
+ text: string;
46
+ classification?: string;
47
+ channel?: string;
48
+ sessionId?: string;
49
+ occurredAt?: string;
50
+ }
51
+ export type ItemAvailability = 'available' | 'not_recorded' | 'unreadable';
52
+ export interface RecallLineageHop {
53
+ from: string;
54
+ to: string;
55
+ relation: string;
56
+ }
57
+ export interface PainRecallEntry {
58
+ painId: string;
59
+ association: RecallAssociation;
60
+ pain: PainEventView;
61
+ diagnoses: DiagnosisView[];
62
+ correctionEvidence: CorrectionEvidenceView | null;
63
+ availability: {
64
+ painEvent: 'available';
65
+ diagnoses: ItemAvailability;
66
+ correctionEvidence: ItemAvailability;
67
+ };
68
+ lineage: RecallLineageHop[];
69
+ }
70
+ export interface PainRecallQuery {
71
+ requestedPrincipleId: string;
72
+ painId?: string;
73
+ context?: string;
74
+ /** Validated upstream: integer within [1, 10]. */
75
+ limit: number;
76
+ }
77
+ export interface UnresolvedAssociation {
78
+ painId?: string;
79
+ candidateId?: string;
80
+ reason: string;
81
+ }
82
+ export interface PainRecallResult {
83
+ schemaVersion: string;
84
+ status: PainRecallStatus;
85
+ /** Sub-reason for pain_not_found: not_associated | pain_event_not_found. */
86
+ statusDetail?: string;
87
+ principle: {
88
+ requestedId: string;
89
+ canonicalId: string | null;
90
+ identityStatus: 'resolved' | 'not_found' | 'ambiguous';
91
+ text?: string;
92
+ };
93
+ query: {
94
+ limit: number;
95
+ painId?: string;
96
+ contextUsedForRanking: boolean;
97
+ truncated: boolean;
98
+ };
99
+ results: PainRecallEntry[];
100
+ summary: {
101
+ returned: number;
102
+ availableCandidates: number;
103
+ truncated: boolean;
104
+ };
105
+ sources: {
106
+ ledger: SourceAvailability;
107
+ trajectoryDb: SourceAvailability;
108
+ stateDb: SourceAvailability;
109
+ };
110
+ unresolvedAssociations: UnresolvedAssociation[];
111
+ }
112
+ export declare function recallPains(workspaceDir: string, query: PainRecallQuery): Promise<PainRecallResult>;
113
+ //# sourceMappingURL=pain-recall-read-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pain-recall-read-model.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/pain-recall-read-model.ts"],"names":[],"mappings":"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"}
@@ -60,9 +60,10 @@ import * as fs from 'fs';
60
60
  import * as crypto from 'crypto';
61
61
  import * as os from 'os';
62
62
  import * as path from 'path';
63
- import { readLedgerFileState } from '@principles/core/principle-tree-ledger';
64
- import { openTrajectoryDbReadonly } from '@principles/core/trajectory-store';
65
- import { RuntimeStateManager } from '@principles/core/runtime-v2';
63
+ import { readLedgerFileState } from '../principle-tree-ledger.js';
64
+ import { openTrajectoryDbReadonly } from '../trajectory-store.js';
65
+ import { RuntimeStateManager } from './store/runtime-state-manager.js';
66
+ import { painRecallSnapshotTestHooks } from './pain-recall-snapshot-hooks.js';
66
67
  export const PAIN_RECALL_SCHEMA_VERSION = 'pd.pain-recall.v1';
67
68
  export const PAIN_RECALL_DEFAULT_LIMIT = 3;
68
69
  export const PAIN_RECALL_MIN_LIMIT = 1;
@@ -121,12 +122,8 @@ function safeParseRecord(json) {
121
122
  return null;
122
123
  }
123
124
  }
124
- /**
125
- * Deterministic fault-injection seam for snapshot-race tests — the same
126
- * pattern as the runtime's databaseFactory seam (PR #2192). Every field is
127
- * undefined in production; tests assign, then clear in a finally block.
128
- */
129
- export const painRecallSnapshotTestHooks = {};
125
+ // The fault-injection seam itself (painRecallSnapshotTestHooks) lives in the
126
+ // internal pain-recall-snapshot-hooks.ts module — see its header there.
130
127
  function isEnoent(err) {
131
128
  if (!isRecord(err))
132
129
  return false;
@@ -724,4 +721,4 @@ export async function recallPains(workspaceDir, query) {
724
721
  }
725
722
  }
726
723
  }
727
- //# sourceMappingURL=pain-recall.js.map
724
+ //# sourceMappingURL=pain-recall-read-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pain-recall-read-model.js","sourceRoot":"","sources":["../../src/runtime-v2/pain-recall-read-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Pain Recall snapshot test hooks — internal test seam, migrated with the
3
+ * read model from pd-cli services (SPEC-PD-AGENT-CAPABILITY-API-001 v0.5 §6.3).
4
+ *
5
+ * Deterministic fault-injection seam for snapshot-race tests — the same
6
+ * pattern as the runtime's databaseFactory seam (PR #2192). Every field is
7
+ * undefined in production; tests assign, then clear in a finally block.
8
+ *
9
+ * INTERNAL MODULE: this file must never appear in any package exports key.
10
+ * Core tests reference it relatively; the read model references it relatively.
11
+ * The architecture guard (G-2 export-face snapshot) pins its absence from
12
+ * both the read-model and the capability subpaths.
13
+ */
14
+ /**
15
+ * Structural stand-in for `fs.Stats` — exactly the members the read model's
16
+ * fingerprint path reads. Structural so this internal module needs no fs
17
+ * import at all (the runtime fs import stays owned by the seam-registered
18
+ * read model). A real `fs.Stats` satisfies this shape structurally.
19
+ */
20
+ export interface SnapshotStatsLike {
21
+ isFile(): boolean;
22
+ readonly size: number;
23
+ }
24
+ export declare const painRecallSnapshotTestHooks: {
25
+ /** Replaces statSync for fingerprinting/classification (throw to simulate EACCES/EIO). */
26
+ statSync?: (path: string) => SnapshotStatsLike;
27
+ /** Replaces mkdtempSync for staging-root creation (throw to simulate failure). */
28
+ mkdtempSync?: (prefix: string) => string;
29
+ /** Called after each source→staging copyFileSync with (source, staged). */
30
+ afterCopyFile?: (source: string, stagedPath: string) => void;
31
+ /**
32
+ * Called between the T1 main fingerprint read and the T1 wal fingerprint
33
+ * read — the exact window a concurrent writer can hide in when the pair is
34
+ * sampled non-atomically. Tests use it to inject a deterministic
35
+ * commit→checkpoint→close cycle inside the re-check.
36
+ */
37
+ afterT1MainFingerprint?: (sourceDbPath: string) => void;
38
+ };
39
+ //# sourceMappingURL=pain-recall-snapshot-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pain-recall-snapshot-hooks.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/pain-recall-snapshot-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,OAAO,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,2BAA2B,EAAE;IACxC,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,CAAC;IAC/C,kFAAkF;IAClF,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,2EAA2E;IAC3E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Pain Recall snapshot test hooks — internal test seam, migrated with the
3
+ * read model from pd-cli services (SPEC-PD-AGENT-CAPABILITY-API-001 v0.5 §6.3).
4
+ *
5
+ * Deterministic fault-injection seam for snapshot-race tests — the same
6
+ * pattern as the runtime's databaseFactory seam (PR #2192). Every field is
7
+ * undefined in production; tests assign, then clear in a finally block.
8
+ *
9
+ * INTERNAL MODULE: this file must never appear in any package exports key.
10
+ * Core tests reference it relatively; the read model references it relatively.
11
+ * The architecture guard (G-2 export-face snapshot) pins its absence from
12
+ * both the read-model and the capability subpaths.
13
+ */
14
+ export const painRecallSnapshotTestHooks = {};
15
+ //# sourceMappingURL=pain-recall-snapshot-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pain-recall-snapshot-hooks.js","sourceRoot":"","sources":["../../src/runtime-v2/pain-recall-snapshot-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,MAAM,CAAC,MAAM,2BAA2B,GAcpC,EAAE,CAAC"}
package/core/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/core",
3
- "version": "1.297.11",
3
+ "version": "1.298.0",
4
4
  "description": "Pure-logic core of Principles Disciple, an AI Agent Governance System - pain signal capture and principle proposal (no I/O)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,6 +34,14 @@
34
34
  "types": "./dist/runtime-v2/index.d.ts",
35
35
  "default": "./dist/runtime-v2/index.js"
36
36
  },
37
+ "./runtime-v2/pain-recall": {
38
+ "types": "./dist/runtime-v2/pain-recall-read-model.d.ts",
39
+ "default": "./dist/runtime-v2/pain-recall-read-model.js"
40
+ },
41
+ "./runtime-v2/pain-recall-capability": {
42
+ "types": "./dist/runtime-v2/pain-recall-capability.d.ts",
43
+ "default": "./dist/runtime-v2/pain-recall-capability.js"
44
+ },
37
45
  "./runtime-v2/receipt-coverage": {
38
46
  "types": "./dist/runtime-v2/receipt-coverage.d.ts",
39
47
  "default": "./dist/runtime-v2/receipt-coverage.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-principles-disciple",
3
- "version": "1.146.0",
3
+ "version": "1.146.1",
4
4
  "description": "Interactive CLI installer for Principles Disciple OpenClaw plugin",
5
5
  "type": "module",
6
6
  "bin": {
@@ -96,6 +96,6 @@
96
96
  "directory": "packages/create-principles-disciple"
97
97
  },
98
98
  "pd": {
99
- "bundledPluginVersion": "2.2.10"
99
+ "bundledPluginVersion": "2.2.11"
100
100
  }
101
101
  }
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import * as path from 'path';
14
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';
15
+ import { recallPains, PAIN_RECALL_DEFAULT_LIMIT, PAIN_RECALL_MIN_LIMIT, PAIN_RECALL_MAX_LIMIT, } from '@principles/core/runtime-v2/pain-recall';
16
16
  function fail(input) {
17
17
  const { message, reason, nextAction, json } = input;
18
18
  if (json) {
@@ -1 +1 @@
1
- {"version":3,"file":"pain-recall.js","sourceRoot":"","sources":["../../src/commands/pain-recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,4BAA4B,CAAC;AAWpC,SAAS,IAAI,CAAC,KAA6E;IACzF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACpD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CAAC,MAAwB;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;IACtF,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxG,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,OAAO,CAAC,MAAM,eAAe,MAAM,CAAC,OAAO,CAAC,YAAY,UAAU,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,MAAM,mBAAmB,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC;QAClH,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,SAAS,2BAA2B,CAAC,CAAC;QACjI,CAAC;QACD,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,kBAAkB,CAAC,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,kBAAkB,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnK,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,YAAY,CAAC,SAAS,cAAc,KAAK,CAAC,YAAY,CAAC,SAAS,eAAe,KAAK,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACtK,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,mBAAmB,sBAAsB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjK,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC;QAChG,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAuB;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;IAEhC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,EAAE,uFAAuF;YAChG,MAAM,EAAE,uBAAuB;YAC/B,UAAU,EAAE,uGAAuG;YACnH,IAAI;SACL,CAAC,CAAC;QACH,OAAO,CAAC,uDAAuD;IACjE,CAAC;IAED,IAAI,KAAK,GAAG,yBAAyB,CAAC;IACtC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,qBAAqB,IAAI,IAAI,CAAC,KAAK,GAAG,qBAAqB,EAAE,CAAC;YAC9G,IAAI,CAAC;gBACH,OAAO,EAAE,mDAAmD,qBAAqB,QAAQ,qBAAqB,SAAS,IAAI,CAAC,KAAK,EAAE;gBACnI,MAAM,EAAE,eAAe;gBACvB,UAAU,EAAE,sCAAsC,qBAAqB,IAAI,qBAAqB,IAAI;gBACpG,IAAI;aACL,CAAC,CAAC;YACH,OAAO,CAAC,uDAAuD;QACjE,CAAC;QACD,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,MAA0B,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,OAAO,EAAE,wDAAwD;gBACjE,MAAM,EAAE,iBAAiB;gBACzB,UAAU,EAAE,8CAA8C;gBAC1D,IAAI;aACL,CAAC,CAAC;YACH,OAAO,CAAC,uDAAuD;QACjE,CAAC;QACD,MAAM,GAAG,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;IACvF,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,qEAAqE;QACrE,yEAAyE;QACzE,0EAA0E;QAC1E,gDAAgD;QAChD,IAAI,CAAC;YACH,OAAO,EAAE,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC3F,MAAM,EAAE,sBAAsB;YAC9B,UAAU,EAAE,6FAA6F;YACzG,IAAI;SACL,CAAC,CAAC;QACH,OAAO,CAAC,uDAAuD;IACjE,CAAC;IAED,IAAI,MAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE;YACvC,oBAAoB,EAAE,WAAW;YACjC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxG,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,OAAO,EAAE,uBAAuB,OAAO,EAAE;YACzC,MAAM,EAAE,eAAe;YACvB,UAAU,EAAE,2FAA2F;YACvG,IAAI;SACL,CAAC,CAAC;QACH,OAAO,CAAC,uDAAuD;IACjE,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,sEAAsE;IACtE,iDAAiD;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pain-recall.js","sourceRoot":"","sources":["../../src/commands/pain-recall.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  "id": "principles-disciple",
3
3
  "name": "Principles Disciple",
4
4
  "description": "Principles Disciple is an AI Agent Governance System. Stop correcting the same AI behavior across sessions. Turn repeated Agent corrections into Owner-approved, observable, reversible behavior principles.",
5
- "version": "2.2.10",
5
+ "version": "2.2.11",
6
6
  "activation": {
7
7
  "onStartup": true,
8
8
  "onCapabilities": [
@@ -2,7 +2,7 @@
2
2
  "id": "principles-disciple",
3
3
  "name": "Principles Disciple",
4
4
  "description": "Principles Disciple is an AI Agent Governance System. Stop correcting the same AI behavior across sessions. Turn repeated Agent corrections into Owner-approved, observable, reversible behavior principles.",
5
- "version": "2.2.10",
5
+ "version": "2.2.11",
6
6
  "activation": {
7
7
  "onStartup": true,
8
8
  "onCapabilities": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "principles-disciple",
3
- "version": "2.2.10",
3
+ "version": "2.2.11",
4
4
  "description": "Principles Disciple is an AI Agent Governance System. Stop correcting the same AI behavior across sessions. Turn repeated Agent corrections into Owner-approved, observable, reversible behavior principles.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-principles-disciple",
3
- "version": "1.146.0",
3
+ "version": "1.146.1",
4
4
  "description": "Interactive CLI installer for Principles Disciple OpenClaw plugin",
5
5
  "type": "module",
6
6
  "bin": {
@@ -96,6 +96,6 @@
96
96
  "directory": "packages/create-principles-disciple"
97
97
  },
98
98
  "pd": {
99
- "bundledPluginVersion": "2.2.10"
99
+ "bundledPluginVersion": "2.2.11"
100
100
  }
101
101
  }
@@ -1,192 +0,0 @@
1
- /**
2
- * Pain Recall read model — SPEC-PD-PAIN-RECALL-CLI-001.
3
- *
4
- * Resolves a canonical ledger principle to its verifiably-associated
5
- * historical pains through the two authoritative edges only:
6
- *
7
- * 1. `Principle.reuseEvidence[]` — carries a REAL `painId` (validated at
8
- * the ledger write boundary, appendReuseEvidence);
9
- * 2. `Principle.derivedFromPainIds[]` — stores CANDIDATE ids despite its
10
- * legacy pain-oriented name (see PainChainReadModel's linkage note);
11
- * the pain resolves through candidate → task → `tasks.input_ref`
12
- * (fallback: the `diagnosis_<painId>` task-id spelling).
13
- *
14
- * Anything not reachable through those edges is excluded and REPORTED
15
- * (unresolvedAssociations) — never guessed from text similarity, never
16
- * resolved through candidateId/taskId/artifactId masquerading as pain ids.
17
- *
18
- * Strictly read-only: the ledger through readLedgerFileState, trajectory.db
19
- * through openTrajectoryDbReadonly, state.db through RuntimeStateManager with
20
- * readonly:true + bootstrapIfMissing:false. Missing stays missing; unreadable
21
- * stays unreadable; neither is ever reported as an empty result.
22
- *
23
- * WAL safety (SPEC §6.1/§9.2; SPEC-PD-AGENT-CAPABILITY-API-001 v0.3 §10.3.1):
24
- * both production databases are persisted in WAL journal mode. Any readonly
25
- * open of a WAL database can touch workspace files — a quiet WAL gains
26
- * `-wal`/`-shm` sidecars, a missing `-shm` gets created, and an existing
27
- * `-shm` can be rewritten by WAL-index recovery (all reproduced 2026-10-28 on
28
- * better-sqlite3 13.0.3, which cannot open `file:` URIs, so SQLite's
29
- * immutable=1 zero-side-effect mode is unavailable). Therefore EVERY WAL-mode
30
- * database is read through a staged, fingerprint-verified snapshot in a
31
- * private temp directory; only rollback-journal databases keep the direct
32
- * readonly open, which creates nothing. The snapshot copies the main file
33
- * plus a non-empty `-wal` (the pair SQLite needs to recover un-checkpointed
34
- * commits; `-shm` is an index cache and is deliberately never copied — the
35
- * staged open regenerates it beside the copy).
36
- *
37
- * Snapshot acceptance contract (proved in stageWalSnapshot): the T1 re-check
38
- * is ordered main → wal → main, making the WAL fingerprint read the single
39
- * LINEARIZATION POINT. Acceptance means the staged bytes equal the real
40
- * database state at that instant: the wal read observes the wal directly,
41
- * and the bracketing main reads (equal to each other and to T0) pin the main
42
- * bytes across the whole window — under SQLite-only writes the main file's
43
- * byte-image cannot return to a previous value (monotonic change counter),
44
- * so a bracketed main equal on both ends was unchanged in between. Any write
45
- * completing before the linearization point is therefore caught (a commit
46
- * changes the wal; a checkpoint changes main and is visible at one of the
47
- * bracketing reads), and the trailing main re-read additionally rejects a
48
- * checkpoint landing between the wal read and the protocol's end. An ABA
49
- * rewrite (commit → checkpoint → wal delete → main bytes back at T0) cannot
50
- * produce a stale acceptance: a commit surviving to the linearization point
51
- * moved the main bytes and is rejected; bytes genuinely ending at the T0
52
- * state mean the staged copy IS the current state, so returning it is
53
- * correct. Writes after the linearization point (an un-checkpointed commit
54
- * landing in the trailing window) are post-linearization events — a correct
55
- * point-in-time read, not staleness. "Always latest at return time" would
56
- * require writer coordination, which no available mechanism provides
57
- * honestly (see the implementation report's option analysis A–D).
58
- */
59
- import * as fs from 'fs';
60
- export declare const PAIN_RECALL_SCHEMA_VERSION = "pd.pain-recall.v1";
61
- export declare const PAIN_RECALL_DEFAULT_LIMIT = 3;
62
- export declare const PAIN_RECALL_MIN_LIMIT = 1;
63
- export declare const PAIN_RECALL_MAX_LIMIT = 10;
64
- export type PainRecallStatus = 'ok' | 'no_matches' | 'principle_not_found' | 'ambiguous_principle' | 'pain_not_found' | 'source_missing' | 'source_unreadable' | 'partial';
65
- export type SourceAvailability = 'ok' | 'missing' | 'unreadable' | 'not_checked';
66
- export type AssociationType = 'explicit_reuse' | 'derived_from' | 'multiple_paths';
67
- export interface RecallEvidenceRef {
68
- kind: 'reuse_evidence' | 'candidate_lineage';
69
- candidateId: string;
70
- taskId?: string;
71
- decidedAt?: string;
72
- decisionId?: string;
73
- }
74
- export interface RecallAssociation {
75
- type: AssociationType;
76
- confidence: 'explicit' | 'lineage_verified';
77
- evidenceRefs: RecallEvidenceRef[];
78
- }
79
- export interface PainEventView {
80
- occurredAt: string | null;
81
- source: string | null;
82
- host: string;
83
- score: number | null;
84
- severity: string | null;
85
- reason: string | null;
86
- text: string | null;
87
- /** A verbatim owner statement is only reported via correctionEvidence; the
88
- * pain row itself never carries one, so this is structurally null. */
89
- rawStatement: null;
90
- }
91
- export interface DiagnosisView {
92
- diagnosisId: string;
93
- taskId: string;
94
- category: string;
95
- rootCause: string;
96
- supportingEvidence: readonly {
97
- sourceRef: string;
98
- note: string;
99
- }[];
100
- confidence: number | null;
101
- isOriginalOwnerStatement: false;
102
- }
103
- export interface CorrectionEvidenceView {
104
- text: string;
105
- classification?: string;
106
- channel?: string;
107
- sessionId?: string;
108
- occurredAt?: string;
109
- }
110
- export type ItemAvailability = 'available' | 'not_recorded' | 'unreadable';
111
- export interface RecallLineageHop {
112
- from: string;
113
- to: string;
114
- relation: string;
115
- }
116
- export interface PainRecallEntry {
117
- painId: string;
118
- association: RecallAssociation;
119
- pain: PainEventView;
120
- diagnoses: DiagnosisView[];
121
- correctionEvidence: CorrectionEvidenceView | null;
122
- availability: {
123
- painEvent: 'available';
124
- diagnoses: ItemAvailability;
125
- correctionEvidence: ItemAvailability;
126
- };
127
- lineage: RecallLineageHop[];
128
- }
129
- export interface PainRecallQuery {
130
- requestedPrincipleId: string;
131
- painId?: string;
132
- context?: string;
133
- /** Validated upstream: integer within [1, 10]. */
134
- limit: number;
135
- }
136
- export interface UnresolvedAssociation {
137
- painId?: string;
138
- candidateId?: string;
139
- reason: string;
140
- }
141
- export interface PainRecallResult {
142
- schemaVersion: string;
143
- status: PainRecallStatus;
144
- /** Sub-reason for pain_not_found: not_associated | pain_event_not_found. */
145
- statusDetail?: string;
146
- principle: {
147
- requestedId: string;
148
- canonicalId: string | null;
149
- identityStatus: 'resolved' | 'not_found' | 'ambiguous';
150
- text?: string;
151
- };
152
- query: {
153
- limit: number;
154
- painId?: string;
155
- contextUsedForRanking: boolean;
156
- truncated: boolean;
157
- };
158
- results: PainRecallEntry[];
159
- summary: {
160
- returned: number;
161
- availableCandidates: number;
162
- truncated: boolean;
163
- };
164
- sources: {
165
- ledger: SourceAvailability;
166
- trajectoryDb: SourceAvailability;
167
- stateDb: SourceAvailability;
168
- };
169
- unresolvedAssociations: UnresolvedAssociation[];
170
- }
171
- /**
172
- * Deterministic fault-injection seam for snapshot-race tests — the same
173
- * pattern as the runtime's databaseFactory seam (PR #2192). Every field is
174
- * undefined in production; tests assign, then clear in a finally block.
175
- */
176
- export declare const painRecallSnapshotTestHooks: {
177
- /** Replaces statSync for fingerprinting/classification (throw to simulate EACCES/EIO). */
178
- statSync?: (path: string) => fs.Stats;
179
- /** Replaces mkdtempSync for staging-root creation (throw to simulate failure). */
180
- mkdtempSync?: (prefix: string) => string;
181
- /** Called after each source→staging copyFileSync with (source, staged). */
182
- afterCopyFile?: (source: string, stagedPath: string) => void;
183
- /**
184
- * Called between the T1 main fingerprint read and the T1 wal fingerprint
185
- * read — the exact window a concurrent writer can hide in when the pair is
186
- * sampled non-atomically. Tests use it to inject a deterministic
187
- * commit→checkpoint→close cycle inside the re-check.
188
- */
189
- afterT1MainFingerprint?: (sourceDbPath: string) => void;
190
- };
191
- export declare function recallPains(workspaceDir: string, query: PainRecallQuery): Promise<PainRecallResult>;
192
- //# sourceMappingURL=pain-recall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pain-recall.d.ts","sourceRoot":"","sources":["../../src/services/pain-recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAQzB,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,MAAM,gBAAgB,GACxB,IAAI,GACJ,YAAY,GACZ,qBAAqB,GACrB,qBAAqB,GACrB,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,UAAU,GAAG,kBAAkB,CAAC;IAC5C,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB;0EACsE;IACtE,YAAY,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,wBAAwB,EAAE,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,iBAAiB,CAAC;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,kBAAkB,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAClD,YAAY,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAC;QAAC,kBAAkB,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAC5G,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,cAAc,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;QACvD,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9F,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/E,OAAO,EAAE;QAAE,MAAM,EAAE,kBAAkB,CAAC;QAAC,YAAY,EAAE,kBAAkB,CAAC;QAAC,OAAO,EAAE,kBAAkB,CAAA;KAAE,CAAC;IACvG,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;CACjD;AAoFD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE;IACxC,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,EAAE,CAAC,KAAK,CAAC;IACtC,kFAAkF;IAClF,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,2EAA2E;IAC3E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD,CAAC;AA+MP,wBAAsB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+YzG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pain-recall.js","sourceRoot":"","sources":["../../src/services/pain-recall.ts"],"names":[],"mappings":"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"}