@principles/core 1.296.0 → 1.296.2
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 +24 -4
- package/dist/principle-tree-ledger.d.ts.map +1 -1
- package/dist/principle-tree-ledger.js +201 -24
- package/dist/principle-tree-ledger.js.map +1 -1
- package/dist/runtime-v2/activation/ledger-identity.d.ts +4 -22
- package/dist/runtime-v2/activation/ledger-identity.d.ts.map +1 -1
- package/dist/runtime-v2/activation/ledger-identity.js +54 -0
- package/dist/runtime-v2/activation/ledger-identity.js.map +1 -1
- package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/artificer-l2-adapter.js +18 -0
- package/dist/runtime-v2/adapter/artificer-l2-adapter.js.map +1 -1
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.d.ts +11 -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 +67 -1
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +2 -0
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +1 -0
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/internalization/artificer-intent-preflight.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-intent-preflight.js +10 -0
- package/dist/runtime-v2/internalization/artificer-intent-preflight.js.map +1 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.js +3 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/artificer-runner.d.ts +3 -0
- package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-runner.js +23 -3
- package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/candidate-identity.d.ts +17 -0
- package/dist/runtime-v2/internalization/candidate-identity.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/candidate-identity.js +56 -0
- package/dist/runtime-v2/internalization/candidate-identity.js.map +1 -0
- package/dist/runtime-v2/internalization/evaluator-output.d.ts +2 -0
- package/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-output.js +3 -0
- package/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts +2 -2
- package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-prompt-builder.js +90 -38
- package/dist/runtime-v2/internalization/evaluator-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts +2 -0
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.js +158 -41
- package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts +4 -0
- package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/peer-runner-contracts.js +13 -0
- package/dist/runtime-v2/internalization/peer-runner-contracts.js.map +1 -1
- package/dist/runtime-v2/internalization/pitask-metadata.d.ts +2 -0
- package/dist/runtime-v2/internalization/pitask-metadata.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/pitask-metadata.js +8 -0
- package/dist/runtime-v2/internalization/pitask-metadata.js.map +1 -1
- package/dist/runtime-v2/internalization/rule-binding-revision.d.ts +28 -0
- package/dist/runtime-v2/internalization/rule-binding-revision.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/rule-binding-revision.js +92 -0
- package/dist/runtime-v2/internalization/rule-binding-revision.js.map +1 -0
- package/dist/runtime-v2/internalization/rulecode-verification-obligations.d.ts +66 -0
- package/dist/runtime-v2/internalization/rulecode-verification-obligations.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/rulecode-verification-obligations.js +150 -0
- package/dist/runtime-v2/internalization/rulecode-verification-obligations.js.map +1 -0
- package/dist/runtime-v2/internalization/scribe-runner.d.ts +7 -1
- package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/scribe-runner.js +67 -3
- package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
- package/dist/runtime-v2/principle-tree/ledger-codec.d.ts.map +1 -1
- package/dist/runtime-v2/principle-tree/ledger-codec.js +3 -6
- package/dist/runtime-v2/principle-tree/ledger-codec.js.map +1 -1
- package/dist/runtime-v2/principle-tree/rule-candidate-binding.d.ts +12 -0
- package/dist/runtime-v2/principle-tree/rule-candidate-binding.d.ts.map +1 -0
- package/dist/runtime-v2/principle-tree/rule-candidate-binding.js +129 -0
- package/dist/runtime-v2/principle-tree/rule-candidate-binding.js.map +1 -0
- package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.d.ts.map +1 -1
- package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js +70 -6
- package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js.map +1 -1
- package/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
- package/dist/runtime-v2/store/sqlite-connection.js +15 -1
- package/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
- package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts +10 -0
- package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -1
- package/dist/runtime-v2/tools/artificer-l2-tool-contract.js +55 -5
- package/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -1
- package/dist/runtime-v2/types/ledger-store.d.ts +3 -0
- package/dist/runtime-v2/types/ledger-store.d.ts.map +1 -1
- package/dist/runtime-v2/types/ledger-store.js.map +1 -1
- package/dist/runtime-v2/types/rule-candidate-binding.d.ts +98 -0
- package/dist/runtime-v2/types/rule-candidate-binding.d.ts.map +1 -0
- package/dist/runtime-v2/types/rule-candidate-binding.js +2 -0
- package/dist/runtime-v2/types/rule-candidate-binding.js.map +1 -0
- package/dist/telemetry-event.d.ts +2 -2
- package/dist/telemetry-event.d.ts.map +1 -1
- package/dist/telemetry-event.js +1 -0
- package/dist/telemetry-event.js.map +1 -1
- package/package.json +1 -1
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
* @see docs/adr/0003-peer-agent-state-machine-orchestration.md
|
|
26
26
|
* @see BasePeerRunner in runner/base-peer-runner.ts
|
|
27
27
|
*/
|
|
28
|
+
import type { CandidatePrincipleIdentityResolution } from '../adapter/principle-tree-ledger-adapter.js';
|
|
29
|
+
import type { CandidateIdentityPort } from './candidate-identity.js';
|
|
28
30
|
import type { RunHandle } from '../runtime-protocol.js';
|
|
29
31
|
import type { ScribeOutputV1, ScribeValidator } from './scribe-output.js';
|
|
30
32
|
import type { TaskRecord } from '../task-status.js';
|
|
@@ -35,6 +37,7 @@ import type { PeerRunnerOptions, PeerRunnerDeps, PeerRunnerResult, PeerRunnerVal
|
|
|
35
37
|
import type { OutputLanguage } from '../language-directive.js';
|
|
36
38
|
/** Context built by ScribeRunner.buildContext() and consumed by invokeRuntime(). */
|
|
37
39
|
interface ScribeContext {
|
|
40
|
+
readonly identityAtStart?: CandidatePrincipleIdentityResolution;
|
|
38
41
|
readonly contextHash: string;
|
|
39
42
|
readonly philosopherArtifact: string;
|
|
40
43
|
readonly sourcePhilosopherArtifactId: string;
|
|
@@ -100,7 +103,7 @@ export interface ScribeRunnerDeps extends PeerRunnerDeps {
|
|
|
100
103
|
* PRI-915: `isAvailable` separates an unreadable ledger (transient outage,
|
|
101
104
|
* surfaced in the skip event reason) from a genuinely unresolved chain.
|
|
102
105
|
*/
|
|
103
|
-
readonly ledgerIdentity?: {
|
|
106
|
+
readonly ledgerIdentity?: Partial<CandidateIdentityPort> & {
|
|
104
107
|
readonly isAvailable: () => boolean;
|
|
105
108
|
readonly listForCandidate: (candidateId: string) => readonly {
|
|
106
109
|
readonly id: string;
|
|
@@ -111,6 +114,9 @@ export declare class ScribeRunner extends BasePeerRunner<ScribeContext, ScribeOu
|
|
|
111
114
|
private readonly validator;
|
|
112
115
|
private readonly ledgerIdentity?;
|
|
113
116
|
constructor(deps: ScribeRunnerDeps, options: PeerRunnerOptions);
|
|
117
|
+
/** Identity absence awaits Owner action and consumes no model attempt. */
|
|
118
|
+
run(taskId: string): Promise<PeerRunnerResult<ScribeOutputV1>>;
|
|
119
|
+
private resolveCurrentIdentity;
|
|
114
120
|
get permanentErrorCategories(): ReadonlySet<PDErrorCategory>;
|
|
115
121
|
buildContext(taskId: string): Promise<ScribeContext>;
|
|
116
122
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scribe-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAkB,KAAK,eAAe,EAAqB,MAAM,wBAAwB,CAAC;AAIjG,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"scribe-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { resolveFormationContext } from './formation-context.js';
|
|
|
6
6
|
import { reconcileLineageEcho } from './peer-runner-contracts.js';
|
|
7
7
|
import { BasePeerRunner } from '../runner/base-peer-runner.js';
|
|
8
8
|
import { candidateIdFromDreamerSeed, candidateIdFromDreamerTaskId, } from '../activation/ledger-identity.js';
|
|
9
|
+
import { validateCandidateIdentityReceipt } from '../principle-tree/rule-candidate-binding.js';
|
|
9
10
|
/**
|
|
10
11
|
* PRI-816 (R-01): extract the authoritative dreamer artifact id from the
|
|
11
12
|
* philosopher artifact content (rc-1: content is untrusted). Access uses
|
|
@@ -63,6 +64,45 @@ export class ScribeRunner extends BasePeerRunner {
|
|
|
63
64
|
this.validator = deps.validator;
|
|
64
65
|
this.ledgerIdentity = deps.ledgerIdentity;
|
|
65
66
|
}
|
|
67
|
+
/** Identity absence awaits Owner action and consumes no model attempt. */
|
|
68
|
+
async run(taskId) {
|
|
69
|
+
if (this.ledgerIdentity?.resolveForCandidate) {
|
|
70
|
+
const task = await this.stateManager.getTask(taskId);
|
|
71
|
+
if (task && (task.status === 'pending' || task.status === 'retry_wait') && hydratePITaskRecord(task)?.channel === 'code_tool_hook') {
|
|
72
|
+
let identity;
|
|
73
|
+
try {
|
|
74
|
+
// buildContext already resolves identityAtStart for this port;
|
|
75
|
+
// reusing it avoids a second artifact/task/ledger resolution pass.
|
|
76
|
+
identity = (await this.buildContext(taskId)).identityAtStart;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// Context problems belong to the base runner's state machine, which
|
|
80
|
+
// owns lease acquisition and failure/retry transitions.
|
|
81
|
+
return super.run(taskId);
|
|
82
|
+
}
|
|
83
|
+
if (identity && identity.status !== 'resolved') {
|
|
84
|
+
const reason = identity.reason === 'ledger_unavailable' ? 'identity_source_unavailable' : 'awaiting_owner_binding';
|
|
85
|
+
const diagnostic = task.diagnosticJson ? JSON.parse(task.diagnosticJson) : {};
|
|
86
|
+
const metadata = diagnostic !== null && typeof diagnostic === 'object' && !Array.isArray(diagnostic) ? diagnostic : {};
|
|
87
|
+
await this.stateManager.updateTaskIfDiagnosticJsonUnchanged(taskId, task.diagnosticJson ?? null, {
|
|
88
|
+
status: 'needs_human_review',
|
|
89
|
+
diagnosticJson: JSON.stringify({ ...metadata, identityPreflight: { reason, detail: identity.reason, nextAction: identity.nextAction } }),
|
|
90
|
+
}, { expectedStatus: task.status, expectedLeaseOwner: null, expectedLeaseExpiresAt: null });
|
|
91
|
+
this.emitEvent('identity_preflight_blocked', taskId, { reason, detail: identity.reason, modelRequests: 0 });
|
|
92
|
+
return { status: 'failed', taskId, errorCategory: 'input_invalid', failureReason: `${reason}:${identity.reason}`, attemptCount: task.attemptCount };
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return super.run(taskId);
|
|
97
|
+
}
|
|
98
|
+
async resolveCurrentIdentity(context) {
|
|
99
|
+
const dreamer = context.sourceDreamerArtifactId ? await this.artifactStore.getArtifactById(context.sourceDreamerArtifactId) : null;
|
|
100
|
+
const task = dreamer?.sourceTaskId ? await this.stateManager.getTask(dreamer.sourceTaskId) : null;
|
|
101
|
+
const candidateId = candidateIdFromDreamerSeed(task?.diagnosticJson) ?? candidateIdFromDreamerTaskId(dreamer?.sourceTaskId);
|
|
102
|
+
if (!candidateId || !this.ledgerIdentity?.resolveForCandidate)
|
|
103
|
+
return { status: 'unresolved', reason: 'candidate_missing', nextAction: 'Inspect the persisted dreamer lineage.' };
|
|
104
|
+
return this.ledgerIdentity.resolveForCandidate(candidateId);
|
|
105
|
+
}
|
|
66
106
|
// ── Abstract implementations ───────────────────────────────────────────────
|
|
67
107
|
// eslint-disable-next-line @typescript-eslint/class-methods-use-this
|
|
68
108
|
get permanentErrorCategories() {
|
|
@@ -130,13 +170,15 @@ export class ScribeRunner extends BasePeerRunner {
|
|
|
130
170
|
]
|
|
131
171
|
: []),
|
|
132
172
|
];
|
|
133
|
-
|
|
173
|
+
const context = {
|
|
134
174
|
contextHash: BasePeerRunner.hashContextRefs(contextRefs),
|
|
135
175
|
philosopherArtifact: firstArtifact.contentJson,
|
|
136
176
|
sourcePhilosopherArtifactId: firstArtifact.artifactId,
|
|
137
177
|
sourceDreamerArtifactId,
|
|
138
178
|
...(formationContext !== undefined ? { formationContext } : {}),
|
|
139
179
|
};
|
|
180
|
+
return this.ledgerIdentity?.resolveForCandidate
|
|
181
|
+
? { ...context, identityAtStart: await this.resolveCurrentIdentity(context) } : context;
|
|
140
182
|
}
|
|
141
183
|
}
|
|
142
184
|
throw new PDRuntimeError('input_invalid', 'Philosopher dependency artifact not found');
|
|
@@ -283,9 +325,31 @@ export class ScribeRunner extends BasePeerRunner {
|
|
|
283
325
|
// write the artifact unstamped with an observable event — the activation
|
|
284
326
|
// boundary then refuses or resolves from lineage; never a guess.
|
|
285
327
|
let stampedPrincipleId = null;
|
|
328
|
+
const identity = this.ledgerIdentity?.resolveForCandidate ? await this.resolveCurrentIdentity(context) : null;
|
|
329
|
+
// These terminal identity refusals bypass the base runner's mark-failed
|
|
330
|
+
// path, so the attempt lease must be released here: a lingering lease
|
|
331
|
+
// would keep the Owner's bounded binding revision (reviseRuleBindingOnce)
|
|
332
|
+
// refused with task_lease_present forever.
|
|
333
|
+
const parkForOwnerIdentityAction = async (reason, nextAction) => {
|
|
334
|
+
await this.stateManager.updateTask(taskId, { status: 'needs_human_review', leaseOwner: null, leaseExpiresAt: null });
|
|
335
|
+
this.emitEvent('identity_preflight_blocked', taskId, { reason, nextAction });
|
|
336
|
+
return { status: 'failed', taskId, errorCategory: 'input_invalid', failureReason: reason, attemptCount: task.attemptCount };
|
|
337
|
+
};
|
|
338
|
+
if (identity?.status === 'resolved' && hydratePITaskRecord(task)?.channel === 'code_tool_hook'
|
|
339
|
+
&& !validateCandidateIdentityReceipt(context.identityAtStart, identity)) {
|
|
340
|
+
return parkForOwnerIdentityAction('identity_changed_during_generation', 'review_binding_and_preserve_the_current_revision_budget');
|
|
341
|
+
}
|
|
342
|
+
if (identity && identity.status !== 'resolved' && hydratePITaskRecord(task)?.channel === 'code_tool_hook') {
|
|
343
|
+
return parkForOwnerIdentityAction(identity.reason, identity.nextAction);
|
|
344
|
+
}
|
|
345
|
+
const receipt = identity?.status === 'resolved' ? {
|
|
346
|
+
candidateId: identity.candidateId, basis: identity.basis, principleId: identity.principleId,
|
|
347
|
+
...(identity.bindingRevision !== undefined ? { bindingRevision: identity.bindingRevision } : {}),
|
|
348
|
+
...(identity.decisionId !== undefined ? { decisionId: identity.decisionId } : {}),
|
|
349
|
+
} : undefined;
|
|
286
350
|
if (this.ledgerIdentity) {
|
|
287
351
|
try {
|
|
288
|
-
stampedPrincipleId = await this.resolveLedgerStampPrincipleId(context);
|
|
352
|
+
stampedPrincipleId = identity?.status === 'resolved' ? identity.principleId : await this.resolveLedgerStampPrincipleId(context);
|
|
289
353
|
}
|
|
290
354
|
catch (stampErr) {
|
|
291
355
|
this.emitEvent('identity_stamp_failed', taskId, {
|
|
@@ -317,7 +381,7 @@ export class ScribeRunner extends BasePeerRunner {
|
|
|
317
381
|
lineageArtifactIds,
|
|
318
382
|
validationStatus: 'pending',
|
|
319
383
|
...(stampedPrincipleId !== null ? { sourcePrincipleId: stampedPrincipleId } : {}),
|
|
320
|
-
contentJson: JSON.stringify(output),
|
|
384
|
+
contentJson: JSON.stringify({ ...output, ...(receipt ? { identityResolution: receipt } : {}) }),
|
|
321
385
|
createdAt: now,
|
|
322
386
|
updatedAt: now,
|
|
323
387
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scribe-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scribe-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger-codec.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/ledger-codec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ledger-codec.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/ledger-codec.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,4BAA4B,EAE5B,eAAe,EACf,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAEpD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGvG;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGrG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAExD;AAID,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,4BAA4B,CA6BnF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAc7E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAanE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAQjF;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAQhF;AAID,wBAAgB,eAAe,IAAI,eAAe,CAEjD;AAID,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAWvD;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAQjE;AAID,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAKhE"}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Ledger codec — pure parse/serialize functions, zero I/O.
|
|
3
|
-
*
|
|
4
|
-
* Extracted from principle-tree-ledger.ts (PRI-443) to separate pure logic
|
|
5
|
-
* from filesystem operations. This module has zero fs/path imports.
|
|
6
|
-
*/
|
|
1
|
+
import { parseRuleCandidateBindings } from './rule-candidate-binding.js';
|
|
7
2
|
import { TREE_NAMESPACE } from '../types/ledger-store.js';
|
|
8
3
|
const VALID_EVALUABILITIES = ['deterministic', 'weak_heuristic', 'manual_only'];
|
|
9
4
|
const VALID_INTERNALIZATION_STATUSES = [
|
|
@@ -126,6 +121,8 @@ export function parseTree(raw) {
|
|
|
126
121
|
if (!isRecord(raw))
|
|
127
122
|
return createEmptyTree();
|
|
128
123
|
return {
|
|
124
|
+
...raw,
|
|
125
|
+
...(Object.hasOwn(raw, 'ruleCandidateBindings') ? { ruleCandidateBindings: parseRuleCandidateBindings(raw.ruleCandidateBindings) } : {}),
|
|
129
126
|
principles: parsePrinciples(raw.principles),
|
|
130
127
|
rules: parseRules(raw.rules),
|
|
131
128
|
implementations: parseImplementations(raw.implementations),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger-codec.js","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/ledger-codec.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ledger-codec.js","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/ledger-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RuleCandidateBinding, RuleCandidateMaterial, CandidatePrincipleIdentityResolution } from '../types/rule-candidate-binding.js';
|
|
2
|
+
export declare class RuleCandidateBindingCorruptionError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare function parseRuleCandidateBindings(raw: unknown): Record<string, RuleCandidateBinding>;
|
|
6
|
+
/** Stable digest of JSON-compatible server snapshots; object ordering does not affect review CAS. */
|
|
7
|
+
export declare function computeRuleCandidateReviewDigest(value: unknown): string;
|
|
8
|
+
export declare function isRuleCandidateMaterial(material: unknown, candidateId: string, kind: 'rule' | 'principle'): material is RuleCandidateMaterial;
|
|
9
|
+
export declare function validateCandidateIdentityReceipt(receipt: unknown, current: CandidatePrincipleIdentityResolution): boolean;
|
|
10
|
+
export declare function isCanonicalBindingPrincipleId(value: unknown): value is string;
|
|
11
|
+
export declare function isBindingDigest(value: unknown): value is string;
|
|
12
|
+
//# sourceMappingURL=rule-candidate-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-candidate-binding.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/rule-candidate-binding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAgC,qBAAqB,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAM1K,qBAAa,mCAAoC,SAAQ,KAAK;IAC5D,YAAY,OAAO,EAAE,MAAM,EAAwE;CACpG;AACD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CA+B7F;AACD,qGAAqG;AACrG,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA2BvE;AACD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,IAAI,qBAAqB,CA6B7I;AACD,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAIzH;AACD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAA0D;AACxI,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAA4D"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { Value } from '@sinclair/typebox/value';
|
|
3
|
+
import { DiagnosticianOutputV1Schema, DiagnosticianRecommendationSchema } from '../diagnostician-output.js';
|
|
4
|
+
const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
5
|
+
const DIGEST = /^sha256:[0-9a-f]{64}$/;
|
|
6
|
+
function record(value) { return typeof value === 'object' && value !== null && !Array.isArray(value); }
|
|
7
|
+
function text(value) { return typeof value === 'string' && value.trim().length > 0; }
|
|
8
|
+
export class RuleCandidateBindingCorruptionError extends Error {
|
|
9
|
+
constructor(message) { super(message); this.name = 'RuleCandidateBindingCorruptionError'; }
|
|
10
|
+
}
|
|
11
|
+
export function parseRuleCandidateBindings(raw) {
|
|
12
|
+
const fail = () => { throw new RuleCandidateBindingCorruptionError('Malformed ruleCandidateBindings; preserve the ledger and repair from audited evidence.'); };
|
|
13
|
+
if (!record(raw))
|
|
14
|
+
return fail();
|
|
15
|
+
const bindings = Object.create(null);
|
|
16
|
+
const decisions = new Set();
|
|
17
|
+
const requests = new Set();
|
|
18
|
+
for (const [candidateId, value] of Object.entries(raw)) {
|
|
19
|
+
if (!text(candidateId) || !record(value) || value.candidateId !== candidateId || !Array.isArray(value.revisions) || value.revisions.length === 0)
|
|
20
|
+
return fail();
|
|
21
|
+
const revisions = [];
|
|
22
|
+
for (const [index, entry] of value.revisions.entries()) {
|
|
23
|
+
if (!record(entry) || entry.revision !== index + 1 || !text(entry.decisionId) || !UUID.test(entry.decisionId) || decisions.has(entry.decisionId)
|
|
24
|
+
|| !text(entry.requestId) || entry.requestId.length > 200 || !['bind', 'revoke'].includes(String(entry.action))
|
|
25
|
+
|| !text(entry.principleId) || !UUID.test(entry.principleId) || !text(entry.reason) || entry.reason.length > 2000
|
|
26
|
+
|| !text(entry.decidedAt) || !Number.isFinite(Date.parse(entry.decidedAt)) || new Date(entry.decidedAt).toISOString() !== entry.decidedAt
|
|
27
|
+
|| !record(entry.owner) || !text(entry.owner.actorId) || entry.owner.source !== 'authenticated_console'
|
|
28
|
+
|| typeof entry.reviewedCandidateDigest !== 'string' || !DIGEST.test(entry.reviewedCandidateDigest)
|
|
29
|
+
|| typeof entry.reviewedPrincipleDigest !== 'string' || !DIGEST.test(entry.reviewedPrincipleDigest))
|
|
30
|
+
return fail();
|
|
31
|
+
const requestKey = JSON.stringify([entry.owner.actorId, entry.requestId]);
|
|
32
|
+
if (requests.has(requestKey))
|
|
33
|
+
return fail();
|
|
34
|
+
const previous = revisions.at(-1);
|
|
35
|
+
if ((entry.action === 'revoke' && (!previous || previous.action !== 'bind' || previous.principleId !== entry.principleId))
|
|
36
|
+
|| (entry.action === 'bind' && previous?.action === 'bind'))
|
|
37
|
+
return fail();
|
|
38
|
+
requests.add(requestKey);
|
|
39
|
+
decisions.add(entry.decisionId);
|
|
40
|
+
revisions.push({ ...entry, revision: index + 1, decisionId: entry.decisionId, requestId: entry.requestId,
|
|
41
|
+
action: entry.action === 'bind' ? 'bind' : 'revoke', principleId: entry.principleId, reason: entry.reason,
|
|
42
|
+
decidedAt: entry.decidedAt, owner: { ...entry.owner, actorId: entry.owner.actorId, source: 'authenticated_console' },
|
|
43
|
+
reviewedCandidateDigest: entry.reviewedCandidateDigest, reviewedPrincipleDigest: entry.reviewedPrincipleDigest });
|
|
44
|
+
}
|
|
45
|
+
bindings[candidateId] = { ...value, candidateId, revisions };
|
|
46
|
+
}
|
|
47
|
+
return bindings;
|
|
48
|
+
}
|
|
49
|
+
/** Stable digest of JSON-compatible server snapshots; object ordering does not affect review CAS. */
|
|
50
|
+
export function computeRuleCandidateReviewDigest(value) {
|
|
51
|
+
const seen = new Set();
|
|
52
|
+
const canonical = (input) => {
|
|
53
|
+
const kind = typeof input;
|
|
54
|
+
if (kind === 'boolean' || kind === 'string')
|
|
55
|
+
return JSON.stringify(input);
|
|
56
|
+
if (kind === 'number') {
|
|
57
|
+
if (!Number.isFinite(input))
|
|
58
|
+
throw new Error('Review snapshot is not finite JSON data.');
|
|
59
|
+
return JSON.stringify(input);
|
|
60
|
+
}
|
|
61
|
+
if (kind !== 'object')
|
|
62
|
+
throw new Error('Review snapshot is not finite JSON data.');
|
|
63
|
+
// null is the only falsy value whose typeof is 'object'; it serializes as "null".
|
|
64
|
+
if (!input)
|
|
65
|
+
return JSON.stringify(input);
|
|
66
|
+
if (seen.has(input))
|
|
67
|
+
throw new Error('Review snapshot is not finite JSON data.');
|
|
68
|
+
seen.add(input);
|
|
69
|
+
let result;
|
|
70
|
+
if (Array.isArray(input)) {
|
|
71
|
+
result = '[' + input.map(canonical).join(',') + ']';
|
|
72
|
+
}
|
|
73
|
+
else if (record(input)) {
|
|
74
|
+
const obj = input;
|
|
75
|
+
result = '{' + Object.keys(obj).sort().filter(key => obj[key] !== undefined).map(key => JSON.stringify(key) + ':' + canonical(obj[key])).join(',') + '}';
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
throw new Error('Review snapshot is not finite JSON data.');
|
|
79
|
+
}
|
|
80
|
+
seen.delete(input);
|
|
81
|
+
return result;
|
|
82
|
+
};
|
|
83
|
+
return 'sha256:' + createHash('sha256').update(canonical(value)).digest('hex');
|
|
84
|
+
}
|
|
85
|
+
export function isRuleCandidateMaterial(material, candidateId, kind) {
|
|
86
|
+
if (!record(material) || !record(material.candidate) || !record(material.task) || !record(material.run) || !record(material.artifact))
|
|
87
|
+
return false;
|
|
88
|
+
const { candidate, task, run, artifact } = material;
|
|
89
|
+
// Split diagnoses commit recommendations on the router's own run/artifact.
|
|
90
|
+
// Its inputRef identifies the parent diagnosis, whose inputRef is the pain.
|
|
91
|
+
const parent = material.parentTask;
|
|
92
|
+
const diagnosisLineage = task.taskKind === 'diagnostician'
|
|
93
|
+
? text(task.inputRef)
|
|
94
|
+
: task.taskKind === 'diag_router' && record(parent) && text(task.inputRef)
|
|
95
|
+
&& parent.taskId === task.inputRef && parent.taskKind === 'diagnostician'
|
|
96
|
+
&& parent.status === 'succeeded' && text(parent.inputRef);
|
|
97
|
+
const linked = candidate.candidateId === candidateId && candidate.rawRecommendationKind === kind
|
|
98
|
+
&& text(candidate.taskId) && candidate.taskId === task.taskId && candidate.taskId === run.taskId && candidate.taskId === artifact.taskId
|
|
99
|
+
&& text(candidate.sourceRunId) && candidate.sourceRunId === run.runId && candidate.sourceRunId === artifact.runId
|
|
100
|
+
&& text(candidate.artifactId) && candidate.artifactId === artifact.artifactId
|
|
101
|
+
&& diagnosisLineage && run.executionStatus === 'succeeded'
|
|
102
|
+
&& text(candidate.sourceRecommendationJson) && text(artifact.contentJson) && text(run.outputPayload);
|
|
103
|
+
if (!linked || typeof candidate.sourceRecommendationJson !== 'string' || typeof artifact.contentJson !== 'string' || typeof run.outputPayload !== 'string')
|
|
104
|
+
return false;
|
|
105
|
+
try {
|
|
106
|
+
const recommendation = JSON.parse(candidate.sourceRecommendationJson);
|
|
107
|
+
const output = JSON.parse(run.outputPayload);
|
|
108
|
+
const committed = JSON.parse(artifact.contentJson);
|
|
109
|
+
if (!Value.Check(DiagnosticianRecommendationSchema, recommendation) || recommendation.kind !== kind
|
|
110
|
+
|| !Value.Check(DiagnosticianOutputV1Schema, output) || !output.valid
|
|
111
|
+
|| !Value.Check(DiagnosticianOutputV1Schema, committed) || !committed.valid)
|
|
112
|
+
return false;
|
|
113
|
+
const expected = computeRuleCandidateReviewDigest(recommendation);
|
|
114
|
+
return output.recommendations.some(rec => computeRuleCandidateReviewDigest(rec) === expected)
|
|
115
|
+
&& committed.recommendations.some(rec => computeRuleCandidateReviewDigest(rec) === expected);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export function validateCandidateIdentityReceipt(receipt, current) {
|
|
122
|
+
if (!record(receipt) || current.status !== 'resolved')
|
|
123
|
+
return false;
|
|
124
|
+
return receipt.candidateId === current.candidateId && receipt.basis === current.basis && receipt.principleId === current.principleId
|
|
125
|
+
&& receipt.bindingRevision === current.bindingRevision && receipt.decisionId === current.decisionId;
|
|
126
|
+
}
|
|
127
|
+
export function isCanonicalBindingPrincipleId(value) { return typeof value === 'string' && UUID.test(value); }
|
|
128
|
+
export function isBindingDigest(value) { return typeof value === 'string' && DIGEST.test(value); }
|
|
129
|
+
//# sourceMappingURL=rule-candidate-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-candidate-binding.js","sourceRoot":"","sources":["../../../src/runtime-v2/principle-tree/rule-candidate-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-pi-artifact-store.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/store/artifact/sqlite-pi-artifact-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-pi-artifact-store.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/store/artifact/sqlite-pi-artifact-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAG9F,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,gBAAgB,CAarE;AAsBD,qBAAa,qBAAsB,YAAW,eAAe;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAvC,YAA6B,UAAU,EAAE,gBAAgB,EAAI;IAEvD,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsCxE;IAEK,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiDxE;IAEK,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAQ1E;IAEK,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAqB1E;IAEK,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAajE;IAEK,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQzH;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parsePITaskMetadata, PI_METADATA_KEY } from '../../internalization/pitask-metadata.js';
|
|
1
2
|
/**
|
|
2
3
|
* The ONE pi_artifacts row -> PIArtifactRecord mapping. Exported so
|
|
3
4
|
* enforcement-time consumers (host-runtime production gate, OpenClaw plugin
|
|
@@ -21,6 +22,32 @@ export function mapPiArtifactRow(row) {
|
|
|
21
22
|
updatedAt: row.updated_at,
|
|
22
23
|
};
|
|
23
24
|
}
|
|
25
|
+
function isPiArtifactRow(value) {
|
|
26
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
27
|
+
return false;
|
|
28
|
+
const fields = ['artifact_id', 'artifact_kind', 'source_task_id', 'lineage_artifact_ids', 'validation_status', 'content_json', 'created_at', 'updated_at'];
|
|
29
|
+
if (!fields.every(key => typeof Reflect.get(value, key) === 'string'))
|
|
30
|
+
return false;
|
|
31
|
+
if (!['source_principle_id', 'source_rule_id'].every(key => Reflect.get(value, key) === null || typeof Reflect.get(value, key) === 'string'))
|
|
32
|
+
return false;
|
|
33
|
+
const raw = Reflect.get(value, 'lineage_artifact_ids');
|
|
34
|
+
if (typeof raw !== 'string')
|
|
35
|
+
return false;
|
|
36
|
+
try {
|
|
37
|
+
const lineage = JSON.parse(raw);
|
|
38
|
+
return Array.isArray(lineage) && lineage.every(id => typeof id === 'string');
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function mapValidatedPiArtifactRows(rows) {
|
|
45
|
+
return rows.map(row => {
|
|
46
|
+
if (!isPiArtifactRow(row))
|
|
47
|
+
throw new Error('pi_artifact_row_invalid');
|
|
48
|
+
return mapPiArtifactRow(row);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
24
51
|
export class SqlitePIArtifactStore {
|
|
25
52
|
connection;
|
|
26
53
|
constructor(connection) {
|
|
@@ -52,11 +79,35 @@ export class SqlitePIArtifactStore {
|
|
|
52
79
|
}
|
|
53
80
|
async upsertArtifact(record) {
|
|
54
81
|
const db = this.connection.getDb();
|
|
82
|
+
const source = db.prepare('SELECT diagnostic_json FROM tasks WHERE task_id = ?').get(record.sourceTaskId);
|
|
83
|
+
const diagnostic = source !== null && typeof source === 'object' ? Reflect.get(source, 'diagnostic_json') : null;
|
|
84
|
+
const metadata = typeof diagnostic === 'string' ? parsePITaskMetadata(diagnostic) : null;
|
|
85
|
+
if (typeof diagnostic === 'string' && !metadata) {
|
|
86
|
+
// Unparseable diagnostic JSON must fail with the structured reason, not
|
|
87
|
+
// a raw SyntaxError (rc-3/rc-9).
|
|
88
|
+
let parsed;
|
|
89
|
+
try {
|
|
90
|
+
parsed = JSON.parse(diagnostic);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
throw new Error('artifact_revision_metadata_invalid');
|
|
94
|
+
}
|
|
95
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed) || Object.hasOwn(parsed, PI_METADATA_KEY)) {
|
|
96
|
+
throw new Error('artifact_revision_metadata_invalid');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const revisionEpoch = metadata?.revisionCount ?? 0;
|
|
100
|
+
if (!Number.isSafeInteger(revisionEpoch) || revisionEpoch < 0)
|
|
101
|
+
throw new Error('invalid_artifact_revision_epoch');
|
|
102
|
+
const latest = db.prepare('SELECT MAX(revision_epoch) AS epoch FROM pi_artifacts WHERE source_task_id = ?').get(record.sourceTaskId);
|
|
103
|
+
const latestEpoch = latest !== null && typeof latest === 'object' ? Reflect.get(latest, 'epoch') : null;
|
|
104
|
+
if (typeof latestEpoch === 'number' && latestEpoch > revisionEpoch)
|
|
105
|
+
throw new Error('artifact_revision_epoch_regressed');
|
|
55
106
|
const lineageJson = JSON.stringify(record.lineageArtifactIds);
|
|
56
107
|
db.prepare(`
|
|
57
|
-
INSERT INTO pi_artifacts (artifact_id, artifact_kind, source_task_id, source_principle_id, source_rule_id, lineage_artifact_ids, validation_status, content_json, created_at, updated_at)
|
|
58
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
59
|
-
ON CONFLICT(source_task_id, artifact_kind) DO UPDATE SET
|
|
108
|
+
INSERT INTO pi_artifacts (artifact_id, artifact_kind, source_task_id, source_principle_id, source_rule_id, lineage_artifact_ids, validation_status, content_json, created_at, updated_at, revision_epoch)
|
|
109
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
110
|
+
ON CONFLICT(source_task_id, artifact_kind, revision_epoch) DO UPDATE SET
|
|
60
111
|
artifact_id = excluded.artifact_id,
|
|
61
112
|
source_principle_id = excluded.source_principle_id,
|
|
62
113
|
source_rule_id = excluded.source_rule_id,
|
|
@@ -64,7 +115,7 @@ export class SqlitePIArtifactStore {
|
|
|
64
115
|
validation_status = excluded.validation_status,
|
|
65
116
|
content_json = excluded.content_json,
|
|
66
117
|
updated_at = excluded.updated_at
|
|
67
|
-
`).run(record.artifactId, record.artifactKind, record.sourceTaskId, record.sourcePrincipleId ?? null, record.sourceRuleId ?? null, lineageJson, record.validationStatus, record.contentJson, record.createdAt, record.updatedAt);
|
|
118
|
+
`).run(record.artifactId, record.artifactKind, record.sourceTaskId, record.sourcePrincipleId ?? null, record.sourceRuleId ?? null, lineageJson, record.validationStatus, record.contentJson, record.createdAt, record.updatedAt, revisionEpoch);
|
|
68
119
|
return record;
|
|
69
120
|
}
|
|
70
121
|
async getArtifactById(artifactId) {
|
|
@@ -79,12 +130,25 @@ export class SqlitePIArtifactStore {
|
|
|
79
130
|
}
|
|
80
131
|
async listBySourceTaskId(sourceTaskId) {
|
|
81
132
|
const db = this.connection.getDb();
|
|
133
|
+
const columns = db.prepare('PRAGMA table_info(pi_artifacts)').all();
|
|
134
|
+
const hasEpoch = columns.some(column => column !== null && typeof column === 'object' && Reflect.get(column, 'name') === 'revision_epoch');
|
|
135
|
+
// Readonly inspection must work before a normal writer upgrades an older database.
|
|
136
|
+
if (!hasEpoch) {
|
|
137
|
+
const legacy = db.prepare(`
|
|
138
|
+
SELECT artifact_id, artifact_kind, source_task_id, source_principle_id, source_rule_id, lineage_artifact_ids, validation_status, content_json, created_at, updated_at
|
|
139
|
+
FROM pi_artifacts WHERE source_task_id = ? ORDER BY created_at ASC
|
|
140
|
+
`).all(sourceTaskId);
|
|
141
|
+
return mapValidatedPiArtifactRows(legacy);
|
|
142
|
+
}
|
|
143
|
+
// Preserve the established current-output view; historical approval/lineage refs
|
|
144
|
+
// continue to resolve by artifactId without mixing epochs into current prompts.
|
|
82
145
|
const rows = db.prepare(`
|
|
83
146
|
SELECT artifact_id, artifact_kind, source_task_id, source_principle_id, source_rule_id, lineage_artifact_ids, validation_status, content_json, created_at, updated_at
|
|
84
147
|
FROM pi_artifacts WHERE source_task_id = ?
|
|
148
|
+
AND revision_epoch = (SELECT MAX(revision_epoch) FROM pi_artifacts WHERE source_task_id = ?)
|
|
85
149
|
ORDER BY created_at ASC
|
|
86
|
-
`).all(sourceTaskId);
|
|
87
|
-
return rows
|
|
150
|
+
`).all(sourceTaskId, sourceTaskId);
|
|
151
|
+
return mapValidatedPiArtifactRows(rows);
|
|
88
152
|
}
|
|
89
153
|
async listLineage(artifactId) {
|
|
90
154
|
const db = this.connection.getDb();
|