@principles/core 1.287.6 → 1.287.8
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/principle-tree-ledger.d.ts +50 -0
- package/dist/principle-tree-ledger.d.ts.map +1 -1
- package/dist/principle-tree-ledger.js +133 -1
- package/dist/principle-tree-ledger.js.map +1 -1
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.d.ts +24 -0
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.js +36 -1
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.js.map +1 -1
- package/dist/runtime-v2/candidate-intake-service.d.ts +102 -3
- package/dist/runtime-v2/candidate-intake-service.d.ts.map +1 -1
- package/dist/runtime-v2/candidate-intake-service.js +280 -47
- package/dist/runtime-v2/candidate-intake-service.js.map +1 -1
- package/dist/runtime-v2/candidate-intake.d.ts +44 -0
- package/dist/runtime-v2/candidate-intake.d.ts.map +1 -1
- package/dist/runtime-v2/candidate-intake.js +7 -0
- package/dist/runtime-v2/candidate-intake.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +14 -2
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +15 -2
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/pain-signal-bridge.d.ts +26 -11
- package/dist/runtime-v2/pain-signal-bridge.d.ts.map +1 -1
- package/dist/runtime-v2/pain-signal-bridge.js +73 -53
- package/dist/runtime-v2/pain-signal-bridge.js.map +1 -1
- package/dist/runtime-v2/pain-signal-runtime-factory.d.ts +9 -0
- package/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
- package/dist/runtime-v2/pain-signal-runtime-factory.js +17 -8
- package/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
- package/dist/runtime-v2/principle-reuse/reuse-domain.d.ts +89 -0
- package/dist/runtime-v2/principle-reuse/reuse-domain.d.ts.map +1 -0
- package/dist/runtime-v2/principle-reuse/reuse-domain.js +16 -0
- package/dist/runtime-v2/principle-reuse/reuse-domain.js.map +1 -0
- package/dist/runtime-v2/principle-reuse/reuse-proposal.d.ts +87 -0
- package/dist/runtime-v2/principle-reuse/reuse-proposal.d.ts.map +1 -0
- package/dist/runtime-v2/principle-reuse/reuse-proposal.js +99 -0
- package/dist/runtime-v2/principle-reuse/reuse-proposal.js.map +1 -0
- package/dist/runtime-v2/principle-reuse/reuse-retrieval.d.ts +36 -0
- package/dist/runtime-v2/principle-reuse/reuse-retrieval.d.ts.map +1 -0
- package/dist/runtime-v2/principle-reuse/reuse-retrieval.js +118 -0
- package/dist/runtime-v2/principle-reuse/reuse-retrieval.js.map +1 -0
- package/dist/runtime-v2/principle-reuse/reuse-shortlist.d.ts +40 -0
- package/dist/runtime-v2/principle-reuse/reuse-shortlist.d.ts.map +1 -0
- package/dist/runtime-v2/principle-reuse/reuse-shortlist.js +184 -0
- package/dist/runtime-v2/principle-reuse/reuse-shortlist.js.map +1 -0
- package/dist/runtime-v2/recovery-sweep-service.d.ts +13 -0
- package/dist/runtime-v2/recovery-sweep-service.d.ts.map +1 -1
- package/dist/runtime-v2/recovery-sweep-service.js +43 -29
- package/dist/runtime-v2/recovery-sweep-service.js.map +1 -1
- package/dist/runtime-v2/store/pain-diagnosis/pain-diagnosis-store.d.ts +7 -0
- package/dist/runtime-v2/store/pain-diagnosis/pain-diagnosis-store.d.ts.map +1 -1
- package/dist/runtime-v2/store/pain-diagnosis/pain-diagnosis-store.js.map +1 -1
- package/dist/runtime-v2/store/pain-diagnosis/sqlite-pain-diagnosis-store.d.ts +1 -0
- package/dist/runtime-v2/store/pain-diagnosis/sqlite-pain-diagnosis-store.d.ts.map +1 -1
- package/dist/runtime-v2/store/pain-diagnosis/sqlite-pain-diagnosis-store.js +12 -0
- package/dist/runtime-v2/store/pain-diagnosis/sqlite-pain-diagnosis-store.js.map +1 -1
- package/dist/runtime-v2/store/runtime-state-manager.d.ts +5 -0
- package/dist/runtime-v2/store/runtime-state-manager.d.ts.map +1 -1
- package/dist/runtime-v2/store/runtime-state-manager.js +8 -0
- package/dist/runtime-v2/store/runtime-state-manager.js.map +1 -1
- package/dist/runtime-v2/types/principle-schema.d.ts +65 -0
- package/dist/runtime-v2/types/principle-schema.d.ts.map +1 -1
- package/dist/runtime-v2/types/principle-schema.js +14 -0
- package/dist/runtime-v2/types/principle-schema.js.map +1 -1
- package/dist/runtime-v2/types/principle-tree-store.d.ts +12 -0
- package/dist/runtime-v2/types/principle-tree-store.d.ts.map +1 -1
- package/dist/telemetry-event.d.ts +2 -2
- package/dist/telemetry-event.d.ts.map +1 -1
- package/dist/telemetry-event.js +2 -0
- package/dist/telemetry-event.js.map +1 -1
- package/package.json +2 -2
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
import type { Principle, Rule, Implementation, PrincipleValueMetrics, LedgerPrinciple, LedgerRule, LedgerTreeStore, LegacyPrincipleTrainingState, LegacyPrincipleTrainingStore, HybridLedgerStore } from './runtime-v2/types/ledger-store.js';
|
|
17
17
|
import { TREE_NAMESPACE } from './runtime-v2/types/ledger-store.js';
|
|
18
18
|
import type { ImplementationLifecycleState } from './runtime-v2/types/principle-enums.js';
|
|
19
|
+
import type { ReuseEvidenceActor, ReuseEvidenceEntry } from './runtime-v2/types/principle-schema.js';
|
|
19
20
|
export type { Principle, Rule, Implementation, PrincipleValueMetrics, LedgerPrinciple, LedgerRule, LedgerTreeStore, LegacyPrincipleTrainingState, LegacyPrincipleTrainingStore, HybridLedgerStore, ImplementationLifecycleState, };
|
|
21
|
+
export type { ReuseEvidenceActor, ReuseEvidenceEntry };
|
|
20
22
|
export { TREE_NAMESPACE };
|
|
21
23
|
export declare class LockAcquisitionError extends Error {
|
|
22
24
|
readonly filePath: string;
|
|
@@ -43,6 +45,54 @@ export declare function loadLedger(stateDir: string): HybridLedgerStore;
|
|
|
43
45
|
export declare function saveLedger(stateDir: string, store: HybridLedgerStore): void;
|
|
44
46
|
export declare function addPrincipleToLedger(stateDir: string, principle: LedgerPrinciple): LedgerPrinciple;
|
|
45
47
|
export declare function updatePrinciple(stateDir: string, principleId: string, updates: Partial<LedgerPrinciple>): LedgerPrinciple;
|
|
48
|
+
/**
|
|
49
|
+
* Thrown when the ledger file's content is not trustworthy for a read-modify-
|
|
50
|
+
* write: it parses to an empty principles tree while the file exists on disk
|
|
51
|
+
* (empty, corrupt, or truncated), or an entity's persisted reuseEvidence field
|
|
52
|
+
* has a malformed shape. Unlike a missing principle, writing over this state
|
|
53
|
+
* would DESTROY ledger content, so the write refuses instead of proceeding
|
|
54
|
+
* (rc-3).
|
|
55
|
+
*/
|
|
56
|
+
export declare class LedgerIntegrityError extends Error {
|
|
57
|
+
readonly filePath: string;
|
|
58
|
+
constructor(message: string, filePath: string);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Append one reuse-evidence entry to an existing Principle (PRI-917 PR3B,
|
|
62
|
+
* SPEC v0.2.1 §12). The ONLY writer for `Principle.reuseEvidence`.
|
|
63
|
+
*
|
|
64
|
+
* Runs entirely inside the single-writer file lock via mutateLedger —
|
|
65
|
+
* read → integrity guard → dedupe → append → save — so a concurrent append
|
|
66
|
+
* can never be lost, and there is no load-then-update window between
|
|
67
|
+
* processes. Do NOT implement appends via addPrincipleToLedger (it replaces
|
|
68
|
+
* the whole entry and would silently drop existing evidence) or via an
|
|
69
|
+
* external loadLedger+updatePrinciple sequence (read outside the lock).
|
|
70
|
+
*
|
|
71
|
+
* Fail-closed:
|
|
72
|
+
* - a ledger file that exists but parses to an empty principles tree (empty
|
|
73
|
+
* file, corrupt, or truncated) is treated as corruption — the write
|
|
74
|
+
* refuses rather than risk replacing the corpus with the new entry alone
|
|
75
|
+
* (LedgerIntegrityError);
|
|
76
|
+
* - a missing principleId refuses the write (no file mutation);
|
|
77
|
+
* - a malformed entry refuses the write.
|
|
78
|
+
*
|
|
79
|
+
* Idempotency key: (principleId, entry.candidateId). A candidate resolves
|
|
80
|
+
* into a principle at most once, so replaying the same decision is a no-op
|
|
81
|
+
* that returns the existing evidence with `appended: false` (INV-R07). A
|
|
82
|
+
* no-op still goes through the normal save path, so the tree's lastUpdated
|
|
83
|
+
* is refreshed; the ledger content itself is unchanged.
|
|
84
|
+
*
|
|
85
|
+
* Append-only (INV-R05): no other Principle field — including updatedAt —
|
|
86
|
+
* is touched, and existing entries are never rewritten or removed. Target
|
|
87
|
+
* eligibility (e.g. archived/deprecated exclusion, SPEC §15) is the
|
|
88
|
+
* retrieval/proposal layer's invariant; this writer records the decision
|
|
89
|
+
* verbatim.
|
|
90
|
+
*/
|
|
91
|
+
export declare function appendReuseEvidence(stateDir: string, principleId: string, entry: ReuseEvidenceEntry): {
|
|
92
|
+
principleId: string;
|
|
93
|
+
reuseEvidence: ReuseEvidenceEntry[];
|
|
94
|
+
appended: boolean;
|
|
95
|
+
};
|
|
46
96
|
export declare function updatePrincipleValueMetrics(stateDir: string, principleId: string, metrics: PrincipleValueMetrics): PrincipleValueMetrics;
|
|
47
97
|
export declare function getLedgerFilePathPublic(stateDir: string): string;
|
|
48
98
|
export interface PrincipleSubtree {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principle-tree-ledger.d.ts","sourceRoot":"","sources":["../src/principle-tree-ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EACV,SAAS,EACT,IAAI,EACJ,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,UAAU,EACV,eAAe,EACf,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"principle-tree-ledger.d.ts","sourceRoot":"","sources":["../src/principle-tree-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ import * as fs from 'fs';
|
|
|
17
17
|
import * as path from 'path';
|
|
18
18
|
import { TREE_NAMESPACE } from './runtime-v2/types/ledger-store.js';
|
|
19
19
|
// PRI-443: Pure parse/serialize functions extracted to codec module
|
|
20
|
-
import { uniqueStrings, createEmptyTree, parseHybridLedger, serializeLedger, } from './runtime-v2/principle-tree/ledger-codec.js';
|
|
20
|
+
import { isRecord, uniqueStrings, createEmptyTree, parseHybridLedger, serializeLedger, } from './runtime-v2/principle-tree/ledger-codec.js';
|
|
21
21
|
export { TREE_NAMESPACE };
|
|
22
22
|
const PRINCIPLE_TRAINING_FILE = 'principle_training_state.json';
|
|
23
23
|
// ---------------------------------------------------------------------------
|
|
@@ -391,6 +391,138 @@ export function updatePrinciple(stateDir, principleId, updates) {
|
|
|
391
391
|
return next;
|
|
392
392
|
});
|
|
393
393
|
}
|
|
394
|
+
// ---------------------------------------------------------------------------
|
|
395
|
+
// PRI-917 PR3B: reuse evidence append (SPEC v0.2.1 §12)
|
|
396
|
+
// ---------------------------------------------------------------------------
|
|
397
|
+
/**
|
|
398
|
+
* Thrown when the ledger file's content is not trustworthy for a read-modify-
|
|
399
|
+
* write: it parses to an empty principles tree while the file exists on disk
|
|
400
|
+
* (empty, corrupt, or truncated), or an entity's persisted reuseEvidence field
|
|
401
|
+
* has a malformed shape. Unlike a missing principle, writing over this state
|
|
402
|
+
* would DESTROY ledger content, so the write refuses instead of proceeding
|
|
403
|
+
* (rc-3).
|
|
404
|
+
*/
|
|
405
|
+
export class LedgerIntegrityError extends Error {
|
|
406
|
+
filePath;
|
|
407
|
+
constructor(message, filePath) {
|
|
408
|
+
super(message);
|
|
409
|
+
this.name = 'LedgerIntegrityError';
|
|
410
|
+
this.filePath = filePath;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
const REUSE_EVIDENCE_KEYS = [
|
|
414
|
+
'painId',
|
|
415
|
+
'candidateId',
|
|
416
|
+
'decision',
|
|
417
|
+
'actor',
|
|
418
|
+
'reason',
|
|
419
|
+
'decidedAt',
|
|
420
|
+
'decisionId',
|
|
421
|
+
];
|
|
422
|
+
/**
|
|
423
|
+
* Runtime shape check for an untrusted reuse evidence entry (rc-1/rc-2/rc-3).
|
|
424
|
+
* The caller-side decision surface parses owner/model output, so the ledger
|
|
425
|
+
* writer re-validates at this boundary: any malformed or unexpected field
|
|
426
|
+
* refuses the write — a half-valid evidence row must never land in the ledger.
|
|
427
|
+
*/
|
|
428
|
+
function validateReuseEvidenceEntry(entry) {
|
|
429
|
+
const refuse = (detail) => {
|
|
430
|
+
throw new Error(`appendReuseEvidence: malformed reuse evidence entry (${detail}) — refusing to write (fail closed).`);
|
|
431
|
+
};
|
|
432
|
+
if (!isRecord(entry))
|
|
433
|
+
refuse(`expected an object, got ${typeof entry}`);
|
|
434
|
+
for (const key of Object.keys(entry)) {
|
|
435
|
+
if (!REUSE_EVIDENCE_KEYS.includes(key))
|
|
436
|
+
refuse(`unknown field "${key}"`);
|
|
437
|
+
}
|
|
438
|
+
if (typeof entry.painId !== 'string' || entry.painId.trim() === '')
|
|
439
|
+
refuse('painId must be a non-empty string');
|
|
440
|
+
if (typeof entry.candidateId !== 'string' || entry.candidateId.trim() === '') {
|
|
441
|
+
refuse('candidateId must be a non-empty string');
|
|
442
|
+
}
|
|
443
|
+
if (entry.decision !== 'reuse')
|
|
444
|
+
refuse('decision must be exactly "reuse"');
|
|
445
|
+
if (!isRecord(entry.actor))
|
|
446
|
+
refuse('actor must be an object');
|
|
447
|
+
if (entry.actor.kind !== 'owner' && entry.actor.kind !== 'ai_owner') {
|
|
448
|
+
refuse('actor.kind must be "owner" or "ai_owner"');
|
|
449
|
+
}
|
|
450
|
+
if (typeof entry.actor.id !== 'string' || entry.actor.id.trim() === '')
|
|
451
|
+
refuse('actor.id must be a non-empty string');
|
|
452
|
+
if (typeof entry.reason !== 'string' || entry.reason.trim() === '')
|
|
453
|
+
refuse('reason must be a non-empty string');
|
|
454
|
+
if (typeof entry.decidedAt !== 'string' || entry.decidedAt.trim() === '' || Number.isNaN(Date.parse(entry.decidedAt))) {
|
|
455
|
+
refuse('decidedAt must be a parseable date string');
|
|
456
|
+
}
|
|
457
|
+
if (entry.decisionId !== undefined && (typeof entry.decisionId !== 'string' || entry.decisionId.trim() === '')) {
|
|
458
|
+
refuse('decisionId, when present, must be a non-empty string');
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Append one reuse-evidence entry to an existing Principle (PRI-917 PR3B,
|
|
463
|
+
* SPEC v0.2.1 §12). The ONLY writer for `Principle.reuseEvidence`.
|
|
464
|
+
*
|
|
465
|
+
* Runs entirely inside the single-writer file lock via mutateLedger —
|
|
466
|
+
* read → integrity guard → dedupe → append → save — so a concurrent append
|
|
467
|
+
* can never be lost, and there is no load-then-update window between
|
|
468
|
+
* processes. Do NOT implement appends via addPrincipleToLedger (it replaces
|
|
469
|
+
* the whole entry and would silently drop existing evidence) or via an
|
|
470
|
+
* external loadLedger+updatePrinciple sequence (read outside the lock).
|
|
471
|
+
*
|
|
472
|
+
* Fail-closed:
|
|
473
|
+
* - a ledger file that exists but parses to an empty principles tree (empty
|
|
474
|
+
* file, corrupt, or truncated) is treated as corruption — the write
|
|
475
|
+
* refuses rather than risk replacing the corpus with the new entry alone
|
|
476
|
+
* (LedgerIntegrityError);
|
|
477
|
+
* - a missing principleId refuses the write (no file mutation);
|
|
478
|
+
* - a malformed entry refuses the write.
|
|
479
|
+
*
|
|
480
|
+
* Idempotency key: (principleId, entry.candidateId). A candidate resolves
|
|
481
|
+
* into a principle at most once, so replaying the same decision is a no-op
|
|
482
|
+
* that returns the existing evidence with `appended: false` (INV-R07). A
|
|
483
|
+
* no-op still goes through the normal save path, so the tree's lastUpdated
|
|
484
|
+
* is refreshed; the ledger content itself is unchanged.
|
|
485
|
+
*
|
|
486
|
+
* Append-only (INV-R05): no other Principle field — including updatedAt —
|
|
487
|
+
* is touched, and existing entries are never rewritten or removed. Target
|
|
488
|
+
* eligibility (e.g. archived/deprecated exclusion, SPEC §15) is the
|
|
489
|
+
* retrieval/proposal layer's invariant; this writer records the decision
|
|
490
|
+
* verbatim.
|
|
491
|
+
*/
|
|
492
|
+
export function appendReuseEvidence(stateDir, principleId, entry) {
|
|
493
|
+
validateReuseEvidenceEntry(entry);
|
|
494
|
+
const filePath = getLedgerFilePath(stateDir);
|
|
495
|
+
// Stat captured just before the lock as a hint; the authoritative check is
|
|
496
|
+
// the in-lock one below against the parsed store. A file created between
|
|
497
|
+
// this stat and the lock cannot trip the guard (it only fires when the
|
|
498
|
+
// file already existed at stat time AND the parsed tree is empty).
|
|
499
|
+
const statBefore = fs.existsSync(filePath) ? fs.statSync(filePath) : null;
|
|
500
|
+
return mutateLedger(stateDir, (store) => {
|
|
501
|
+
if (statBefore !== null && Object.keys(store.tree.principles).length === 0) {
|
|
502
|
+
throw new LedgerIntegrityError(`Ledger file ${filePath} exists (${statBefore.size} bytes) but parsed to an empty principles tree — ` +
|
|
503
|
+
'the file is likely corrupt or truncated. Refusing to append reuse evidence, because the save ' +
|
|
504
|
+
'below would replace the ledger with this write alone. Restore the ledger file first (fail closed).', filePath);
|
|
505
|
+
}
|
|
506
|
+
const principle = store.tree.principles[principleId];
|
|
507
|
+
if (!principle) {
|
|
508
|
+
throw new Error(`Cannot append reuse evidence: principle "${principleId}" does not exist in the ledger.`);
|
|
509
|
+
}
|
|
510
|
+
const existing = principle.reuseEvidence;
|
|
511
|
+
if (existing !== undefined && !Array.isArray(existing)) {
|
|
512
|
+
throw new LedgerIntegrityError(`Principle "${principleId}" has a malformed reuseEvidence field (expected an array, got ${typeof existing}). ` +
|
|
513
|
+
'Refusing to append — fix or restore the ledger entry first (fail closed).', filePath);
|
|
514
|
+
}
|
|
515
|
+
const current = existing ?? [];
|
|
516
|
+
if (current.some((e) => isRecord(e) && e.candidateId === entry.candidateId)) {
|
|
517
|
+
// Idempotent replay (INV-R07): this candidate already resolved into
|
|
518
|
+
// this principle. No new entry, no new logical decision.
|
|
519
|
+
return { principleId, reuseEvidence: current, appended: false };
|
|
520
|
+
}
|
|
521
|
+
const next = [...current, entry];
|
|
522
|
+
principle.reuseEvidence = next;
|
|
523
|
+
return { principleId, reuseEvidence: next, appended: true };
|
|
524
|
+
});
|
|
525
|
+
}
|
|
394
526
|
export function updatePrincipleValueMetrics(stateDir, principleId, metrics) {
|
|
395
527
|
return mutateLedger(stateDir, (store) => {
|
|
396
528
|
const next = { ...metrics, principleId };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principle-tree-ledger.js","sourceRoot":"","sources":["../src/principle-tree-ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"principle-tree-ledger.js","sourceRoot":"","sources":["../src/principle-tree-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* as openclaw-plugin without depending on openclaw-plugin private code.
|
|
6
6
|
*/
|
|
7
7
|
import type { LedgerAdapter, LedgerPrincipleEntry } from '../candidate-intake.js';
|
|
8
|
+
import type { ReuseEvidenceEntry } from '../types/principle-schema.js';
|
|
8
9
|
/**
|
|
9
10
|
* PrincipleTreeLedgerAdapter — bridges 11-field LedgerPrincipleEntry to ledger file.
|
|
10
11
|
*
|
|
@@ -28,6 +29,29 @@ export declare class PrincipleTreeLedgerAdapter implements LedgerAdapter {
|
|
|
28
29
|
listForCandidate(candidateId: string): {
|
|
29
30
|
id: string;
|
|
30
31
|
}[];
|
|
32
|
+
/**
|
|
33
|
+
* PRI-917 PR3B Phase 2 — the reuse-side resolution lookup (LedgerAdapter
|
|
34
|
+
* contract, see candidate-intake.ts). Scans `reuseEvidence[]` for the
|
|
35
|
+
* candidate; never touches `derivedFromPainIds` / existsForCandidate.
|
|
36
|
+
*
|
|
37
|
+
* Entries on disk were shape-validated by the append writer; a record that
|
|
38
|
+
* fails even the minimal read-side check cannot be a resolution and is
|
|
39
|
+
* skipped rather than trusted (rc-2).
|
|
40
|
+
*/
|
|
41
|
+
findReuseResolutionForCandidate(candidateId: string): {
|
|
42
|
+
principleId: string;
|
|
43
|
+
evidence: ReuseEvidenceEntry;
|
|
44
|
+
} | null;
|
|
45
|
+
/**
|
|
46
|
+
* PRI-917 PR3B Phase 2 — persist one reuse resolution (LedgerAdapter
|
|
47
|
+
* contract). Thin delegation to the core writer, which owns the lock, the
|
|
48
|
+
* integrity guards, candidateId idempotency, and append-only semantics.
|
|
49
|
+
*/
|
|
50
|
+
appendReuseEvidence(principleId: string, entry: ReuseEvidenceEntry): {
|
|
51
|
+
principleId: string;
|
|
52
|
+
reuseEvidence: ReuseEvidenceEntry[];
|
|
53
|
+
appended: boolean;
|
|
54
|
+
};
|
|
31
55
|
/**
|
|
32
56
|
* Owner Decision Experience v1 Phase A (§9.1): presence check by principle
|
|
33
57
|
* id. A pre-existing artifact binding is only trusted when its target is a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principle-tree-ledger-adapter.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/adapter/principle-tree-ledger-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"principle-tree-ledger-adapter.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/adapter/principle-tree-ledger-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAuCvE;;;;;GAKG;AACH,qBAAa,0BAA2B,YAAW,aAAa;;IAI9D,YAAY,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,EAErC;IAED,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CASrE;IAED,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAuBnE;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAKtD;IAED;;;;;;;;OAQG;IACH,+BAA+B,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,kBAAkB,CAAA;KAAE,GAAG,IAAI,CAejH;IAED;;;;OAIG;IACH,mBAAmB,CACjB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,kBAAkB,GACxB;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,kBAAkB,EAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAEjF;IAED;;;;OAIG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAGzC;IAED;;;;;;;;OAQG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAWnF;CACF"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* Lives in principles-core/runtime-v2 so pd-cli can use the same adapter
|
|
5
5
|
* as openclaw-plugin without depending on openclaw-plugin private code.
|
|
6
6
|
*/
|
|
7
|
-
import { addPrincipleToLedger, loadLedger, updatePrinciple } from '../../principle-tree-ledger.js';
|
|
7
|
+
import { addPrincipleToLedger, appendReuseEvidence as appendReuseEvidenceToLedger, loadLedger, updatePrinciple, } from '../../principle-tree-ledger.js';
|
|
8
|
+
import { isRecord } from '../principle-tree/ledger-codec.js';
|
|
8
9
|
const VALID_EVALUABILITIES = ['deterministic', 'weak_heuristic', 'manual_only'];
|
|
9
10
|
function extractCandidateIdStatic(sourceRef) {
|
|
10
11
|
if (sourceRef.startsWith('candidate://')) {
|
|
@@ -93,6 +94,40 @@ export class PrincipleTreeLedgerAdapter {
|
|
|
93
94
|
.filter((p) => p.derivedFromPainIds.includes(candidateId))
|
|
94
95
|
.map((p) => ({ id: p.id }));
|
|
95
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* PRI-917 PR3B Phase 2 — the reuse-side resolution lookup (LedgerAdapter
|
|
99
|
+
* contract, see candidate-intake.ts). Scans `reuseEvidence[]` for the
|
|
100
|
+
* candidate; never touches `derivedFromPainIds` / existsForCandidate.
|
|
101
|
+
*
|
|
102
|
+
* Entries on disk were shape-validated by the append writer; a record that
|
|
103
|
+
* fails even the minimal read-side check cannot be a resolution and is
|
|
104
|
+
* skipped rather than trusted (rc-2).
|
|
105
|
+
*/
|
|
106
|
+
findReuseResolutionForCandidate(candidateId) {
|
|
107
|
+
const ledger = loadLedger(this.#stateDir);
|
|
108
|
+
for (const principle of Object.values(ledger.tree.principles)) {
|
|
109
|
+
// rc-1/rc-3/rc-9: read-side defense — the writer validates, but the reader
|
|
110
|
+
// must also guard against externally-modified ledger files. A non-array
|
|
111
|
+
// reuseEvidence field (e.g. number, object) would cause for...of to throw
|
|
112
|
+
// TypeError, which is not a structured error. Skip such entries.
|
|
113
|
+
if (!Array.isArray(principle.reuseEvidence))
|
|
114
|
+
continue;
|
|
115
|
+
for (const entry of principle.reuseEvidence) {
|
|
116
|
+
if (isRecord(entry) && entry.candidateId === candidateId) {
|
|
117
|
+
return { principleId: principle.id, evidence: entry };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* PRI-917 PR3B Phase 2 — persist one reuse resolution (LedgerAdapter
|
|
125
|
+
* contract). Thin delegation to the core writer, which owns the lock, the
|
|
126
|
+
* integrity guards, candidateId idempotency, and append-only semantics.
|
|
127
|
+
*/
|
|
128
|
+
appendReuseEvidence(principleId, entry) {
|
|
129
|
+
return appendReuseEvidenceToLedger(this.#stateDir, principleId, entry);
|
|
130
|
+
}
|
|
96
131
|
/**
|
|
97
132
|
* Owner Decision Experience v1 Phase A (§9.1): presence check by principle
|
|
98
133
|
* id. A pre-existing artifact binding is only trusted when its target is a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principle-tree-ledger-adapter.js","sourceRoot":"","sources":["../../../src/runtime-v2/adapter/principle-tree-ledger-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"principle-tree-ledger-adapter.js","sourceRoot":"","sources":["../../../src/runtime-v2/adapter/principle-tree-ledger-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,20 @@
|
|
|
4
4
|
* Workflow:
|
|
5
5
|
* 1. Validate input
|
|
6
6
|
* 2. Check idempotency (existsForCandidate) — O(1) lookup
|
|
7
|
+
* 2b. Check durable reuse resolution replay (PRI-917 PR3B Phase 2) —
|
|
8
|
+
* a candidate already resolved into an existing Principle returns that
|
|
9
|
+
* resolution; no decision is re-asked, no Principle is created
|
|
7
10
|
* 3. Load candidate from DB (RuntimeStateManager)
|
|
8
11
|
* 3b. ★ Principle Ledger write boundary (Phase 1 / PR1) — see below
|
|
9
12
|
* 4. Load artifact from DB and parse recommendation
|
|
10
13
|
* 5. Build 11-field LedgerPrincipleEntry
|
|
11
14
|
* 6. Write via adapter.writeProbationEntry()
|
|
12
15
|
*
|
|
16
|
+
* 4d (PRI-917 Slice 2 + PR3B Phase 2) — the reuse gate sits between 4c and 5:
|
|
17
|
+
* a credible proposal + a `reuse` verdict is materialised as durable evidence
|
|
18
|
+
* on the selected Principle (appendReuseEvidence) and reported as a
|
|
19
|
+
* `reuse_selected` refusal; a `create` verdict proceeds exactly as before.
|
|
20
|
+
*
|
|
13
21
|
* ── Principle Ledger write boundary (Phase 1 / PR1) ─────────────────────────
|
|
14
22
|
* This service is the single shared chokepoint through which EVERY
|
|
15
23
|
* candidate-origin write to the Principle Ledger flows (pd-cli `candidate
|
|
@@ -33,8 +41,11 @@
|
|
|
33
41
|
* - No promotion to active principle (M8+)
|
|
34
42
|
* - No pain signal bridge
|
|
35
43
|
*/
|
|
36
|
-
import type { LedgerAdapter, LedgerPrincipleEntry } from './candidate-intake.js';
|
|
44
|
+
import type { LedgerAdapter, LedgerPrincipleEntry, Recommendation } from './candidate-intake.js';
|
|
45
|
+
import { CandidateIntakeError } from './candidate-intake.js';
|
|
37
46
|
import type { RuntimeStateManager } from './store/runtime-state-manager.js';
|
|
47
|
+
import type { ReuseDecision, ReuseProposal } from './principle-reuse/reuse-proposal.js';
|
|
48
|
+
import type { ReuseEvidenceEntry } from './types/principle-schema.js';
|
|
38
49
|
/**
|
|
39
50
|
* Why the Principle Ledger write boundary refused a candidate (Phase 1 / PR1).
|
|
40
51
|
*
|
|
@@ -43,8 +54,26 @@ import type { RuntimeStateManager } from './store/runtime-state-manager.js';
|
|
|
43
54
|
* candidate keeps flowing through its existing route / defer handling.
|
|
44
55
|
* - `unknown_kind` — no usable kind at all (missing / non-string / not in the
|
|
45
56
|
* known set). This is the case that previously FAILED OPEN into a principle.
|
|
57
|
+
* - `reuse_selected` (PRI-917 Slice 2) — the reuse gate produced a credible
|
|
58
|
+
* proposal and the injected decision function answered `reuse`, so no new
|
|
59
|
+
* Principle was written. Encoded as a refusal rather than a new result
|
|
60
|
+
* variant, which keeps the result-union shape stable for every consumer.
|
|
61
|
+
* PRI-917 PR3B Phase 2: the verdict is now ALSO materialised as durable
|
|
62
|
+
* evidence on the selected Principle (`reuseEvidence[]`) before this
|
|
63
|
+
* disposition is returned, and this reason doubles as the replay
|
|
64
|
+
* disposition when a candidate's resolution already exists (no new decision
|
|
65
|
+
* is asked, no Principle is created — INV-R07).
|
|
66
|
+
*
|
|
67
|
+
* ⚠ That is shape compatibility ONLY, not message compatibility. Known
|
|
68
|
+
* counter-example (verified, not fixed here): `pd candidate` presents ANY
|
|
69
|
+
* refusal as "this candidate kind does not target the Principle Ledger" and
|
|
70
|
+
* re-throws it as INPUT_INVALID — both wrong for a reuse decision, which
|
|
71
|
+
* DOES target the Ledger. No production caller injects `reuseDecision`
|
|
72
|
+
* yet, so this cannot surface today; but any consumer that renders
|
|
73
|
+
* refusal-specific operator messages MUST branch on
|
|
74
|
+
* `reason === 'reuse_selected'` BEFORE production reuse is enabled.
|
|
46
75
|
*/
|
|
47
|
-
export type LedgerRefusalReason = 'non_principle_kind' | 'unknown_kind';
|
|
76
|
+
export type LedgerRefusalReason = 'non_principle_kind' | 'unknown_kind' | 'reuse_selected';
|
|
48
77
|
/**
|
|
49
78
|
* Explicit disposition returned by {@link CandidateIntakeService.intake}.
|
|
50
79
|
*
|
|
@@ -57,18 +86,88 @@ export type CandidateIntakeResult = {
|
|
|
57
86
|
/** `true` when THIS call wrote a new entry; `false` for the idempotent no-op. */
|
|
58
87
|
readonly written: boolean;
|
|
59
88
|
readonly entry: LedgerPrincipleEntry;
|
|
89
|
+
/**
|
|
90
|
+
* PRI-917 Slice 2 — what the reuse gate did, for observability.
|
|
91
|
+
* Optional so every existing producer of this variant stays valid.
|
|
92
|
+
*/
|
|
93
|
+
readonly reuseCheck?: ReuseCheckOutcome;
|
|
60
94
|
} | {
|
|
61
95
|
readonly outcome: 'refused';
|
|
62
96
|
readonly reason: LedgerRefusalReason;
|
|
63
97
|
readonly candidateId: string;
|
|
64
|
-
/** The raw persisted kind, or `null` when it was absent / not a string. */
|
|
98
|
+
/** The raw persisted kind, or `null` when it was absent / not a string / not loaded. */
|
|
65
99
|
readonly rawRecommendationKind: string | null;
|
|
66
100
|
readonly message: string;
|
|
101
|
+
/** PRI-917 Slice 2 — present only when `reason === 'reuse_selected'`. */
|
|
102
|
+
readonly reuseProposal?: ReuseProposal;
|
|
103
|
+
/** The Principle the decision function selected, when it chose reuse. */
|
|
104
|
+
readonly selectedPrincipleId?: string;
|
|
105
|
+
/**
|
|
106
|
+
* PRI-917 PR3B Phase 2 — present only when `reason === 'reuse_selected'`:
|
|
107
|
+
* the evidence entry just written (fresh decision), or the pre-existing
|
|
108
|
+
* resolution (replay). This is the durable record that the candidate was
|
|
109
|
+
* resolved into `selectedPrincipleId` instead of creating a Principle.
|
|
110
|
+
*/
|
|
111
|
+
readonly reuseEvidence?: ReuseEvidenceEntry;
|
|
67
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* PRI-917 Slice 2 — what the reuse gate did before a ledger write.
|
|
115
|
+
*
|
|
116
|
+
* - `not_configured` — no decision function was injected, so no gate ran. This
|
|
117
|
+
* is the current production shape; it is reported rather than assumed, so a
|
|
118
|
+
* caller can never mistake "gate absent" for "gate found nothing".
|
|
119
|
+
* - `no_candidates` — the gate ran and found nothing credible.
|
|
120
|
+
* - `create_decided` — the gate found candidates and the decision function
|
|
121
|
+
* answered `create`; the write proceeded exactly as before.
|
|
122
|
+
*/
|
|
123
|
+
export type ReuseCheckOutcome = 'not_configured' | 'no_candidates' | 'create_decided';
|
|
68
124
|
export interface CandidateIntakeServiceOptions {
|
|
69
125
|
stateManager: RuntimeStateManager;
|
|
70
126
|
ledgerAdapter: LedgerAdapter;
|
|
127
|
+
/**
|
|
128
|
+
* PRI-917 Slice 2 — optional reuse decision function.
|
|
129
|
+
*
|
|
130
|
+
* When omitted (the current production shape) the reuse gate does not run
|
|
131
|
+
* and intake behaves exactly as before; the result still reports
|
|
132
|
+
* `reuseCheck: 'not_configured'` so "no gate" is never mistaken for "no
|
|
133
|
+
* duplicate found".
|
|
134
|
+
*
|
|
135
|
+
* When provided, it receives the bounded proposal and MUST answer `reuse`
|
|
136
|
+
* or `create` — there is no automatic option and no default.
|
|
137
|
+
*/
|
|
138
|
+
reuseDecision?: (proposal: ReuseProposal) => ReuseDecision;
|
|
139
|
+
/** Workspace state dir used for read-only reuse retrieval. */
|
|
140
|
+
reuseStateDir?: string;
|
|
71
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* PRI-917 PR3A (surface audit C4): the candidate-semantics extraction shared
|
|
144
|
+
* by BOTH the intake flow (steps 4b/4c) and the `pd candidate review`
|
|
145
|
+
* surface — one implementation, so the retrieval input shown to the Owner can
|
|
146
|
+
* never drift from what intake actually consumes.
|
|
147
|
+
*
|
|
148
|
+
* Resolution order (identical to intake steps 4b→4c):
|
|
149
|
+
* 1. candidate.sourceRecommendationJson — validated directly, then via the
|
|
150
|
+
* diagnostician description→text normalization; malformed JSON warns and
|
|
151
|
+
* falls through (rc-9 observable degradation);
|
|
152
|
+
* 2. artifact.contentJson — the three historical shapes.
|
|
153
|
+
*
|
|
154
|
+
* Pure apart from the rc-9 warn; never throws — failures come back as
|
|
155
|
+
* `{ ok: false, error }` carrying the exact CandidateIntakeError intake
|
|
156
|
+
* itself would throw.
|
|
157
|
+
*/
|
|
158
|
+
export type CandidateRecommendationExtraction = {
|
|
159
|
+
ok: true;
|
|
160
|
+
recommendation: Recommendation;
|
|
161
|
+
} | {
|
|
162
|
+
ok: false;
|
|
163
|
+
error: CandidateIntakeError;
|
|
164
|
+
};
|
|
165
|
+
export declare function extractIntakeRecommendation(candidate: {
|
|
166
|
+
candidateId: string;
|
|
167
|
+
sourceRecommendationJson?: string | null;
|
|
168
|
+
}, artifact: {
|
|
169
|
+
contentJson: string;
|
|
170
|
+
} | null): CandidateRecommendationExtraction;
|
|
72
171
|
export declare class CandidateIntakeService {
|
|
73
172
|
#private;
|
|
74
173
|
constructor(opts: CandidateIntakeServiceOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidate-intake-service.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/candidate-intake-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"candidate-intake-service.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/candidate-intake-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAwD,MAAM,uBAAuB,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAQ5E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IACE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;CACzC,GACD;IACE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wFAAwF;IACxF,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,yEAAyE;IACzE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC;CAC7C,CAAC;AAEN;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAGtF,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,aAAa,CAAC;IAC3D,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAyDD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,iCAAiC,GACzC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,cAAc,CAAA;CAAE,GAC5C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAE/C,wBAAgB,2BAA2B,CACzC,SAAS,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC5E,QAAQ,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACvC,iCAAiC,CAgEnC;AAED,qBAAa,sBAAsB;;IAMjC,YAAY,IAAI,EAAE,6BAA6B,EAK9C;IAED;;;;;;;;;;;;;;;;OAgBG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA0ShE;CAuDF"}
|