@principles/pd-cli 1.152.5 → 1.152.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/build-trajectory-evidence.d.ts +10 -0
- package/dist/commands/build-trajectory-evidence.d.ts.map +1 -1
- package/dist/commands/build-trajectory-evidence.js +12 -0
- package/dist/commands/build-trajectory-evidence.js.map +1 -1
- package/dist/commands/pain-record.d.ts.map +1 -1
- package/dist/commands/pain-record.js +63 -29
- package/dist/commands/pain-record.js.map +1 -1
- package/dist/commands/runtime-internalization-run-rulehost.d.ts.map +1 -1
- package/dist/commands/runtime-internalization-run-rulehost.js +21 -1
- package/dist/commands/runtime-internalization-run-rulehost.js.map +1 -1
- package/dist/services/demo-rule-compiler.d.ts +9 -11
- package/dist/services/demo-rule-compiler.d.ts.map +1 -1
- package/dist/services/demo-rule-compiler.js +11 -37
- package/dist/services/demo-rule-compiler.js.map +1 -1
- package/dist/services/rulehost-pipeline-runner.d.ts +6 -9
- package/dist/services/rulehost-pipeline-runner.d.ts.map +1 -1
- package/dist/services/rulehost-pipeline-runner.js +6 -9
- package/dist/services/rulehost-pipeline-runner.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/build-trajectory-evidence.ts +22 -0
- package/src/commands/pain-record.ts +64 -29
- package/src/commands/runtime-internalization-run-rulehost.ts +22 -1
- package/src/services/demo-rule-compiler.ts +12 -45
- package/src/services/rulehost-pipeline-runner.ts +6 -9
- package/tests/commands/build-trajectory-evidence.test.ts +106 -0
- package/tests/commands/pain-record-session-parser.test.ts +62 -12
- package/tests/commands/pain-record.test.ts +59 -19
|
@@ -1,51 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Demo Rule Compiler — Minimal bridge for Story A demo runner
|
|
2
|
+
* Demo Rule Compiler — Minimal bridge for Story A demo runner and the
|
|
3
|
+
* rulehost pipeline behavior checks.
|
|
3
4
|
*
|
|
4
5
|
* PURPOSE: Compile rule implementation code strings into typed evaluate
|
|
5
|
-
* functions for use in `evaluateInRefinerSandbox`.
|
|
6
|
-
* to perform REAL canActivate validation instead of always returning success.
|
|
6
|
+
* functions for use in `evaluateInRefinerSandbox`.
|
|
7
7
|
*
|
|
8
|
-
* ARCHITECTURE:
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* `loadRuleImplementationModule` for production code_tool_hook evaluation.
|
|
8
|
+
* ARCHITECTURE (PRI-809): compilation delegates to the canonical hardened
|
|
9
|
+
* replay evaluator in @principles/core — the vm realm with the JSON-string
|
|
10
|
+
* trust-boundary crossing (input + helpers rebuilt inside the realm), the
|
|
11
|
+
* same primitive the production gate uses. The previous local vm duplicate
|
|
12
|
+
* handed host-realm objects to the vm-realm evaluate function, which let
|
|
13
|
+
* unapproved rule code escape via `input.constructor.constructor`.
|
|
15
14
|
*/
|
|
16
|
-
import
|
|
17
|
-
import { safeStringifyPreview, validateRuleHostResult } from '@principles/core/runtime-v2';
|
|
18
|
-
function normalizeSource(sourceCode) {
|
|
19
|
-
const withoutExports = sourceCode
|
|
20
|
-
.replace(/export\s+const\s+meta\s*=/, 'const meta =')
|
|
21
|
-
.replace(/export\s+function\s+evaluate\s*\(/, 'function evaluate(');
|
|
22
|
-
return `${withoutExports}
|
|
23
|
-
globalThis.__pdRuleModule = {
|
|
24
|
-
meta: typeof meta === 'undefined' ? undefined : meta,
|
|
25
|
-
evaluate: typeof evaluate === 'undefined' ? undefined : evaluate,
|
|
26
|
-
};`;
|
|
27
|
-
}
|
|
28
|
-
function isRuleEvaluator(value) {
|
|
29
|
-
return typeof value === 'function';
|
|
30
|
-
}
|
|
15
|
+
import { compileHardenedRuleEvaluator, safeStringifyPreview, validateRuleHostResult } from '@principles/core/runtime-v2';
|
|
31
16
|
/**
|
|
32
17
|
* Compile rule implementation code and return a typed evaluate function.
|
|
33
|
-
* Mirrors `createReplayEvaluateFromCode` in openclaw-plugin.
|
|
34
18
|
*
|
|
35
19
|
* @throws if the code fails to compile or does not define a function evaluate
|
|
36
20
|
*/
|
|
37
21
|
export function compileDemoRule(code, sourceLabel) {
|
|
38
|
-
const
|
|
39
|
-
const script = new vm.Script(normalizeSource(code), {
|
|
40
|
-
filename: sourceLabel,
|
|
41
|
-
});
|
|
42
|
-
script.runInContext(context, { timeout: 1000, displayErrors: true });
|
|
43
|
-
const moduleExports = context.__pdRuleModule;
|
|
44
|
-
delete context.__pdRuleModule;
|
|
45
|
-
if (!moduleExports || !isRuleEvaluator(moduleExports.evaluate)) {
|
|
46
|
-
throw new Error(`[compileDemoRule] ${sourceLabel}: compiled module has no evaluate function`);
|
|
47
|
-
}
|
|
48
|
-
const evaluateFn = moduleExports.evaluate;
|
|
22
|
+
const evaluateFn = compileHardenedRuleEvaluator(code, sourceLabel);
|
|
49
23
|
return (input, helpers) => {
|
|
50
24
|
const result = evaluateFn(input, helpers);
|
|
51
25
|
const validation = validateRuleHostResult(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demo-rule-compiler.js","sourceRoot":"","sources":["../../src/services/demo-rule-compiler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"demo-rule-compiler.js","sourceRoot":"","sources":["../../src/services/demo-rule-compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAEzH;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,WAAmB;IAC/D,MAAM,UAAU,GAAG,4BAA4B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnE,OAAO,CAAC,KAAoB,EAAE,OAAwB,EAAkB,EAAE;QACxE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,IAAI,WAAW,iDAAiD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAC1F,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAC9F,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -17,10 +17,9 @@
|
|
|
17
17
|
* - The artificer↔evaluator stage delegates to `runAdversarialLoop` (PRI-428),
|
|
18
18
|
* which never throws and degrades to { decision: 'rejected' } with a reason.
|
|
19
19
|
* - gateDeps (the sandbox adapter) is built from `compileDemoRule` +
|
|
20
|
-
* `evaluateInRefinerSandbox`.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* openclaw-plugin), not a capability gap.
|
|
20
|
+
* `evaluateInRefinerSandbox`. `compileDemoRule` delegates to the canonical
|
|
21
|
+
* hardened replay evaluator in @principles/core (PRI-809), so pre-activation
|
|
22
|
+
* replay crosses the same vm trust boundary as the production gate.
|
|
24
23
|
*
|
|
25
24
|
* @see docs/plans/rulehost-mvp-activation.md
|
|
26
25
|
* @see runAdversarialLoop in @principles/core/runtime-v2
|
|
@@ -165,11 +164,9 @@ export interface RuleHostPipelineResult {
|
|
|
165
164
|
/**
|
|
166
165
|
* Build the sandbox gate deps for adversarial replay.
|
|
167
166
|
*
|
|
168
|
-
* `compileDemoRule`
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
* boundary), so this duplicate is intentional and capability-identical, not a
|
|
172
|
-
* stripped demo. See demo-rule-compiler.ts header comment.
|
|
167
|
+
* `compileDemoRule` delegates to the canonical hardened replay evaluator in
|
|
168
|
+
* @principles/core (PRI-809) — capability-identical across packages without a
|
|
169
|
+
* duplicate vm implementation. See demo-rule-compiler.ts header comment.
|
|
173
170
|
*/
|
|
174
171
|
export declare function createSandboxGateDeps(): RefinerRuleHostGateDeps;
|
|
175
172
|
export declare function runRuleHostPipeline(opts: RuleHostPipelineOptions): Promise<RuleHostPipelineResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rulehost-pipeline-runner.d.ts","sourceRoot":"","sources":["../../src/services/rulehost-pipeline-runner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rulehost-pipeline-runner.d.ts","sourceRoot":"","sources":["../../src/services/rulehost-pipeline-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,9 @@
|
|
|
17
17
|
* - The artificer↔evaluator stage delegates to `runAdversarialLoop` (PRI-428),
|
|
18
18
|
* which never throws and degrades to { decision: 'rejected' } with a reason.
|
|
19
19
|
* - gateDeps (the sandbox adapter) is built from `compileDemoRule` +
|
|
20
|
-
* `evaluateInRefinerSandbox`.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* openclaw-plugin), not a capability gap.
|
|
20
|
+
* `evaluateInRefinerSandbox`. `compileDemoRule` delegates to the canonical
|
|
21
|
+
* hardened replay evaluator in @principles/core (PRI-809), so pre-activation
|
|
22
|
+
* replay crosses the same vm trust boundary as the production gate.
|
|
24
23
|
*
|
|
25
24
|
* @see docs/plans/rulehost-mvp-activation.md
|
|
26
25
|
* @see runAdversarialLoop in @principles/core/runtime-v2
|
|
@@ -52,11 +51,9 @@ export const contentHashFn = (input) => createHash('sha256').update(input).diges
|
|
|
52
51
|
/**
|
|
53
52
|
* Build the sandbox gate deps for adversarial replay.
|
|
54
53
|
*
|
|
55
|
-
* `compileDemoRule`
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* boundary), so this duplicate is intentional and capability-identical, not a
|
|
59
|
-
* stripped demo. See demo-rule-compiler.ts header comment.
|
|
54
|
+
* `compileDemoRule` delegates to the canonical hardened replay evaluator in
|
|
55
|
+
* @principles/core (PRI-809) — capability-identical across packages without a
|
|
56
|
+
* duplicate vm implementation. See demo-rule-compiler.ts header comment.
|
|
60
57
|
*/
|
|
61
58
|
export function createSandboxGateDeps() {
|
|
62
59
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rulehost-pipeline-runner.js","sourceRoot":"","sources":["../../src/services/rulehost-pipeline-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rulehost-pipeline-runner.js","sourceRoot":"","sources":["../../src/services/rulehost-pipeline-runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -24,6 +24,15 @@ import type { PainEvidenceEntry } from '@principles/core/runtime-v2';
|
|
|
24
24
|
* a distinct reasonCode so `pd pain record --session` can fail/degrade
|
|
25
25
|
* explicitly BEFORE any LLM/task/candidate mutation, without placeholder
|
|
26
26
|
* evidence.
|
|
27
|
+
*
|
|
28
|
+
* `binding` (PRI-783 review P1) is the small separate-axes fact the ingress
|
|
29
|
+
* decision keys on: 'verified' = the sessions table was queried and DID
|
|
30
|
+
* contain the id; 'unverified' = the id could not be validated (DB missing,
|
|
31
|
+
* DB unopenable, id absent, or sessions table unreadable). Only verified
|
|
32
|
+
* bindings may degrade to a bound submission — claiming bound for an
|
|
33
|
+
* unverified id would let the observability writer persist that id into a
|
|
34
|
+
* freshly created trajectory.db, laundering an unverified fact into future
|
|
35
|
+
* "evidence" (self-proving loop).
|
|
27
36
|
*/
|
|
28
37
|
export type TrajectoryEvidenceAcquisition =
|
|
29
38
|
| { status: 'available'; entries: PainEvidenceEntry[] }
|
|
@@ -31,6 +40,7 @@ export type TrajectoryEvidenceAcquisition =
|
|
|
31
40
|
status: 'unavailable';
|
|
32
41
|
reasonCode: 'trajectory_unavailable' | 'session_not_found' | 'empty_trajectory' | 'evidence_read_failed';
|
|
33
42
|
detail: string;
|
|
43
|
+
binding: 'verified' | 'unverified';
|
|
34
44
|
};
|
|
35
45
|
|
|
36
46
|
/** SourceRef markers that carry no real behavior trace (placeholder shapes). */
|
|
@@ -211,6 +221,7 @@ export function acquireTrajectoryEvidenceFromDb(
|
|
|
211
221
|
status: 'unavailable',
|
|
212
222
|
reasonCode: 'session_not_found',
|
|
213
223
|
detail: sessionId ? `sentinel_session_id:${sessionId}` : 'missing_session_id',
|
|
224
|
+
binding: 'unverified',
|
|
214
225
|
};
|
|
215
226
|
}
|
|
216
227
|
|
|
@@ -220,6 +231,7 @@ export function acquireTrajectoryEvidenceFromDb(
|
|
|
220
231
|
status: 'unavailable',
|
|
221
232
|
reasonCode: 'trajectory_unavailable',
|
|
222
233
|
detail: 'trajectory_db_missing',
|
|
234
|
+
binding: 'unverified',
|
|
223
235
|
};
|
|
224
236
|
}
|
|
225
237
|
|
|
@@ -231,6 +243,7 @@ export function acquireTrajectoryEvidenceFromDb(
|
|
|
231
243
|
status: 'unavailable',
|
|
232
244
|
reasonCode: 'evidence_read_failed',
|
|
233
245
|
detail: `trajectory_db_unreadable: ${err instanceof Error ? err.message : String(err)}`,
|
|
246
|
+
binding: 'unverified',
|
|
234
247
|
};
|
|
235
248
|
}
|
|
236
249
|
|
|
@@ -238,19 +251,26 @@ export function acquireTrajectoryEvidenceFromDb(
|
|
|
238
251
|
// Session existence: rows are upserted by every turn/tool-call write, so
|
|
239
252
|
// an absent row means the trajectory never saw this session.
|
|
240
253
|
let sessionExists = false;
|
|
254
|
+
// PRI-783 review P1: only a query that actually RAN and found the row
|
|
255
|
+
// counts as binding verification — the legacy fallback (sessions table
|
|
256
|
+
// missing) leaves the id unverified.
|
|
257
|
+
let sessionVerified = false;
|
|
241
258
|
try {
|
|
242
259
|
const row = db.prepare('SELECT 1 FROM sessions WHERE session_id = ?').get(sessionId);
|
|
243
260
|
sessionExists = row !== undefined;
|
|
261
|
+
sessionVerified = sessionExists;
|
|
244
262
|
} catch {
|
|
245
263
|
// sessions table missing → cannot validate existence; fall through and
|
|
246
264
|
// let the evidence rows decide (legacy DBs may lack the table).
|
|
247
265
|
sessionExists = true;
|
|
266
|
+
sessionVerified = false;
|
|
248
267
|
}
|
|
249
268
|
if (!sessionExists) {
|
|
250
269
|
return {
|
|
251
270
|
status: 'unavailable',
|
|
252
271
|
reasonCode: 'session_not_found',
|
|
253
272
|
detail: 'session_not_present_in_trajectory',
|
|
273
|
+
binding: 'unverified',
|
|
254
274
|
};
|
|
255
275
|
}
|
|
256
276
|
|
|
@@ -263,12 +283,14 @@ export function acquireTrajectoryEvidenceFromDb(
|
|
|
263
283
|
status: 'unavailable',
|
|
264
284
|
reasonCode: 'evidence_read_failed',
|
|
265
285
|
detail: 'trajectory_tables_unreadable',
|
|
286
|
+
binding: sessionVerified ? 'verified' : 'unverified',
|
|
266
287
|
};
|
|
267
288
|
}
|
|
268
289
|
return {
|
|
269
290
|
status: 'unavailable',
|
|
270
291
|
reasonCode: 'empty_trajectory',
|
|
271
292
|
detail: 'session_present_but_no_usable_evidence',
|
|
293
|
+
binding: sessionVerified ? 'verified' : 'unverified',
|
|
272
294
|
};
|
|
273
295
|
} finally {
|
|
274
296
|
db.close();
|
|
@@ -87,18 +87,29 @@ function toIngressEntry(entry: PainEvidenceEntry): IngressEvidenceEntry {
|
|
|
87
87
|
* PRI-642 (SPEC §7.3/§7.4, review blocker 1): build the report from this
|
|
88
88
|
* adapter's host-specific facts and let the SHARED evaluator decide.
|
|
89
89
|
*
|
|
90
|
-
* Per-channel policy (SPEC §7.3 vs OpenClaw):
|
|
90
|
+
* Per-channel policy (SPEC §7.3/§8.2 vs OpenClaw):
|
|
91
91
|
*
|
|
92
92
|
* - explicit `--session` + acquisition available (real session + real entries):
|
|
93
93
|
* → cli_explicit_session + bound → submit with real evidence.
|
|
94
|
-
* - explicit `--session` + acquisition unavailable
|
|
95
|
-
* empty_trajectory /
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
94
|
+
* - explicit `--session` + acquisition unavailable with the binding VERIFIED
|
|
95
|
+
* (empty_trajectory / evidence-table-level evidence_read_failed — the
|
|
96
|
+
* sessions table was queried and DID contain the id; SPEC §8.2: binding
|
|
97
|
+
* failure and evidence failure are separate axes, a real session with
|
|
98
|
+
* unusable evidence is bound + unavailable, not unbound):
|
|
99
|
+
* → cli_explicit_session + bound → shared evaluator DEGRADES (row 4):
|
|
100
|
+
* submit with honest empty evidence; the admission gate owns what
|
|
101
|
+
* empty evidence is worth. PRI-783 Owner directive: a correct current
|
|
102
|
+
* session id is sufficient — empty evidence must not hard-refuse.
|
|
103
|
+
* - explicit `--session` + acquisition unavailable with the binding
|
|
104
|
+
* UNVERIFIED (session_not_found / trajectory_unavailable / DB-open-level
|
|
105
|
+
* evidence_read_failed — SPEC §8.2's "real session" premise does not
|
|
106
|
+
* hold: the CLI verifies session ids against trajectory.db itself, so
|
|
107
|
+
* when that DB is missing or unopenable the id is unproven):
|
|
108
|
+
* → cli_explicit_session + unbound → shared evaluator REFUSES (row 5)
|
|
109
|
+
* before any LLM/task/candidate mutation. Claiming bound here would
|
|
110
|
+
* also let the observability writer persist the unverified id into a
|
|
111
|
+
* freshly created trajectory.db — laundering an unproven fact into
|
|
112
|
+
* future "evidence" (PRI-783 review P1, self-proving loop).
|
|
102
113
|
* - no `--session` → unbound Owner report (matrix row 6) → submit with
|
|
103
114
|
* disclosure; no sentinel session, no placeholder evidence, no trajectory
|
|
104
115
|
* projection (the CLI skips observability when the ingress yields no
|
|
@@ -159,25 +170,38 @@ function resolveIngressDecision(
|
|
|
159
170
|
return { decision, acquisitionDetail: null, acquisitionReason: null };
|
|
160
171
|
}
|
|
161
172
|
|
|
162
|
-
// --session: SPEC §7.3
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
//
|
|
167
|
-
//
|
|
168
|
-
//
|
|
173
|
+
// --session: SPEC §7.3/§8.2. Binding failure and evidence failure are
|
|
174
|
+
// separate axes, and the acquisition result carries the binding fact
|
|
175
|
+
// directly (PRI-783 review): 'verified' = the sessions table was queried
|
|
176
|
+
// and DID contain the id; 'unverified' = missing/unopenable DB or absent
|
|
177
|
+
// id. Only a VERIFIED binding may degrade to a bound submission (row 4);
|
|
178
|
+
// an unverified one is refused (row 5) — claiming bound for an unverified
|
|
179
|
+
// id would let the observability writer persist that id into a freshly
|
|
180
|
+
// created trajectory.db (self-proving loop). Per-channel policy differs;
|
|
181
|
+
// semantic authority is shared.
|
|
169
182
|
const acquisition = acquireTrajectoryEvidenceFromDb(stateDir, opts.session, workspaceDir);
|
|
170
183
|
if (acquisition.status === 'unavailable') {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
184
|
+
const { reasonCode, binding } = acquisition;
|
|
185
|
+
if (binding === 'verified') {
|
|
186
|
+
// empty_trajectory / evidence-table-level evidence_read_failed —
|
|
187
|
+
// bound + unavailable (row 4): degrade to an honest empty-evidence
|
|
188
|
+
// submission; the admission gate decides what empty evidence is worth.
|
|
189
|
+
const decision = evaluatePainIngress({
|
|
190
|
+
...base,
|
|
191
|
+
origin: { kind: 'owner_manual', channel: 'cli_explicit_session' },
|
|
192
|
+
correlation: { status: 'bound', hostKind: 'openclaw', sessionId: opts.session },
|
|
193
|
+
evidence: { status: 'unavailable', reason: reasonCode },
|
|
194
|
+
});
|
|
195
|
+
return { decision, acquisitionDetail: acquisition.detail, acquisitionReason: reasonCode };
|
|
196
|
+
}
|
|
197
|
+
// binding 'unverified' (session_not_found / trajectory_unavailable /
|
|
198
|
+
// DB-open-level evidence_read_failed) — the binding claim could not be
|
|
199
|
+
// validated: refuse (row 5) before any mutation.
|
|
176
200
|
const decision = evaluatePainIngress({
|
|
177
201
|
...base,
|
|
178
202
|
origin: { kind: 'owner_manual', channel: 'cli_explicit_session' },
|
|
179
203
|
correlation: { status: 'unbound', reason: 'external_cli' },
|
|
180
|
-
evidence: { status: 'unavailable', reason:
|
|
204
|
+
evidence: { status: 'unavailable', reason: 'not_applicable_unbound' },
|
|
181
205
|
});
|
|
182
206
|
if (decision.action === 'refuse') {
|
|
183
207
|
return { decision, acquisitionDetail: acquisition.detail, acquisitionReason: reasonCode };
|
|
@@ -202,8 +226,9 @@ function resolveIngressDecision(
|
|
|
202
226
|
}
|
|
203
227
|
|
|
204
228
|
// Exhaustive — acquireTrajectoryEvidenceFromDb returns {available, unavailable}
|
|
205
|
-
// only.
|
|
206
|
-
// future-added reason
|
|
229
|
+
// only. Unavailable either returned above (degrade for verified bindings,
|
|
230
|
+
// refuse for unverified ones); a future-added reason must be classified
|
|
231
|
+
// explicitly here rather than silently degrading.
|
|
207
232
|
const decision = evaluatePainIngress({
|
|
208
233
|
...base,
|
|
209
234
|
origin: { kind: 'owner_manual', channel: 'cli_explicit_session' },
|
|
@@ -315,18 +340,28 @@ export async function handlePainRecord(opts: RecordOptions): Promise<void> {
|
|
|
315
340
|
const { decision, acquisitionDetail, acquisitionReason } = resolveIngressDecision({ opts, stateDir, workspaceDir, painId });
|
|
316
341
|
|
|
317
342
|
if (decision.action === 'refuse') {
|
|
318
|
-
// SPEC §7.3: the CLI must surface the specific acquisition reason
|
|
319
|
-
//
|
|
320
|
-
//
|
|
321
|
-
//
|
|
343
|
+
// SPEC §7.3: the CLI must surface the specific acquisition reason —
|
|
344
|
+
// the shared evaluator produces the refuse decision; we map the
|
|
345
|
+
// acquisition detail to the Operator reason. PRI-783: the evaluator's
|
|
346
|
+
// generic next action suggests `pd pain record --session` — the exact
|
|
347
|
+
// path that just failed — so every CLI acquisition refuse gets honest,
|
|
348
|
+
// reason-specific guidance instead.
|
|
322
349
|
const reason = opts.session !== undefined && acquisitionReason !== null
|
|
323
350
|
? acquisitionReason
|
|
324
351
|
: decision.reasonCode;
|
|
325
352
|
const detailSuffix = acquisitionDetail !== null ? ` (${acquisitionDetail})` : '';
|
|
353
|
+
const nextAction =
|
|
354
|
+
reason === 'session_not_found'
|
|
355
|
+
? 'Check the session id — it is not present in this workspace trajectory — or drop --session to record an unbound Owner report.'
|
|
356
|
+
: reason === 'trajectory_unavailable'
|
|
357
|
+
? 'No trajectory.db exists in this workspace, so the session id could not be verified — point --workspace at the workspace that owns the session, or drop --session to record an unbound Owner report.'
|
|
358
|
+
: reason === 'evidence_read_failed'
|
|
359
|
+
? 'The workspace trajectory could not be read, so the session id could not be verified — resolve access to .state/trajectory.db, or drop --session to record an unbound Owner report.'
|
|
360
|
+
: decision.nextAction;
|
|
326
361
|
emitSessionBindingFailure(opts, {
|
|
327
362
|
reason,
|
|
328
363
|
message: `${decision.warning}${detailSuffix}`,
|
|
329
|
-
nextAction
|
|
364
|
+
nextAction,
|
|
330
365
|
});
|
|
331
366
|
return;
|
|
332
367
|
}
|
|
@@ -39,6 +39,8 @@ import {
|
|
|
39
39
|
} from '@principles/core/runtime-v2';
|
|
40
40
|
import type { EffectivePdConfig, InternalAgentName, PDRuntimeAdapter } from '@principles/core/runtime-v2';
|
|
41
41
|
import type { BehaviorExamplePack } from '@principles/core/runtime-v2';
|
|
42
|
+
import { storeEmitter } from '@principles/core/runtime-v2';
|
|
43
|
+
import { WorkspaceTelemetryEmitter } from '@principles/host-runtime';
|
|
42
44
|
import { resolveRuntimeFromPdConfig } from '../services/resolve-runtime-from-pd-config.js';
|
|
43
45
|
import { resolveRuleHostReadiness } from '../services/rulehost-readiness.js';
|
|
44
46
|
import type { RuleHostReadinessResult } from '../services/rulehost-readiness.js';
|
|
@@ -254,6 +256,16 @@ function resolveRunRuleHostRuntime(
|
|
|
254
256
|
agentRuntimeProfiles.artificer = artificerBinding.profileId;
|
|
255
257
|
agentRuntimeProfiles.evaluator = evaluator.profileId;
|
|
256
258
|
|
|
259
|
+
// PRI-795 review P1: the CLI process is one-shot — without a durable sink
|
|
260
|
+
// the artificer_l2_complete evidence (abortOwner/budget/elapsed/stopReason/
|
|
261
|
+
// tokenUsage) dies with the process, repeating the EP002-R3
|
|
262
|
+
// "nothing recoverable after a failure" investigation gap. Reuse the
|
|
263
|
+
// host-runtime workspace-scoped emitter so completions land in
|
|
264
|
+
// <workspaceDir>/.pd/telemetry/critical-events.jsonl.
|
|
265
|
+
const artificerEmitter = new WorkspaceTelemetryEmitter(storeEmitter, workspaceDir, (detail) => {
|
|
266
|
+
console.error(`[run-rulehost] workspace telemetry persist failed: ${detail}`);
|
|
267
|
+
});
|
|
268
|
+
|
|
257
269
|
const artificerAdapter = new ArtificerL2Adapter({
|
|
258
270
|
provider: artificerProfile.provider,
|
|
259
271
|
model: artificerProfile.model,
|
|
@@ -261,10 +273,19 @@ function resolveRunRuleHostRuntime(
|
|
|
261
273
|
baseUrl: artificerProfile.baseUrl,
|
|
262
274
|
gateDeps: createSandboxGateDeps(),
|
|
263
275
|
validator: new DefaultArtificerValidator(),
|
|
264
|
-
|
|
276
|
+
// PRI-795: fall back to the profile's timeoutMs when --timeout-ms is not
|
|
277
|
+
// given — parity with resolvePiAiAgentAdapter above. Previously the raw
|
|
278
|
+
// CLI option (possibly undefined) was passed, silently dropping the L2
|
|
279
|
+
// loop onto the adapter's 300s default regardless of the profile.
|
|
280
|
+
totalBudgetMs: timeoutMs ?? artificerProfile.timeoutMs,
|
|
265
281
|
// Forward profile maxTokens — parity with the consumer-cycle adapter;
|
|
266
282
|
// omitting it truncates long artificer JSON at the provider's default cap.
|
|
267
283
|
...(artificerProfile.maxTokens !== undefined ? { maxTokens: artificerProfile.maxTokens } : {}),
|
|
284
|
+
// PRI-795: forward profile reasoning so always-thinking models get a
|
|
285
|
+
// bounded thinking level on the L2 loop too — parity with the
|
|
286
|
+
// PiAiRuntimeAdapter wiring (it was previously L2-dropped).
|
|
287
|
+
...(artificerProfile.reasoning !== undefined ? { reasoning: artificerProfile.reasoning } : {}),
|
|
288
|
+
eventEmitter: artificerEmitter,
|
|
268
289
|
});
|
|
269
290
|
|
|
270
291
|
return {
|
|
@@ -1,63 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Demo Rule Compiler — Minimal bridge for Story A demo runner
|
|
2
|
+
* Demo Rule Compiler — Minimal bridge for Story A demo runner and the
|
|
3
|
+
* rulehost pipeline behavior checks.
|
|
3
4
|
*
|
|
4
5
|
* PURPOSE: Compile rule implementation code strings into typed evaluate
|
|
5
|
-
* functions for use in `evaluateInRefinerSandbox`.
|
|
6
|
-
* to perform REAL canActivate validation instead of always returning success.
|
|
6
|
+
* functions for use in `evaluateInRefinerSandbox`.
|
|
7
7
|
*
|
|
8
|
-
* ARCHITECTURE:
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* `loadRuleImplementationModule` for production code_tool_hook evaluation.
|
|
8
|
+
* ARCHITECTURE (PRI-809): compilation delegates to the canonical hardened
|
|
9
|
+
* replay evaluator in @principles/core — the vm realm with the JSON-string
|
|
10
|
+
* trust-boundary crossing (input + helpers rebuilt inside the realm), the
|
|
11
|
+
* same primitive the production gate uses. The previous local vm duplicate
|
|
12
|
+
* handed host-realm objects to the vm-realm evaluate function, which let
|
|
13
|
+
* unapproved rule code escape via `input.constructor.constructor`.
|
|
15
14
|
*/
|
|
16
15
|
|
|
17
|
-
import * as vm from 'node:vm';
|
|
18
16
|
import type { RuleHostInput, RuleHostResult } from '@principles/core/runtime-v2';
|
|
19
17
|
import type { RuleHostHelpers } from '@principles/core/runtime-v2';
|
|
20
18
|
import type { ReplayEvaluateFn } from '@principles/core/runtime-v2';
|
|
21
|
-
import { safeStringifyPreview, validateRuleHostResult } from '@principles/core/runtime-v2';
|
|
22
|
-
|
|
23
|
-
function normalizeSource(sourceCode: string): string {
|
|
24
|
-
const withoutExports = sourceCode
|
|
25
|
-
.replace(/export\s+const\s+meta\s*=/, 'const meta =')
|
|
26
|
-
.replace(/export\s+function\s+evaluate\s*\(/, 'function evaluate(');
|
|
27
|
-
|
|
28
|
-
return `${withoutExports}
|
|
29
|
-
globalThis.__pdRuleModule = {
|
|
30
|
-
meta: typeof meta === 'undefined' ? undefined : meta,
|
|
31
|
-
evaluate: typeof evaluate === 'undefined' ? undefined : evaluate,
|
|
32
|
-
};`;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function isRuleEvaluator(value: unknown): value is (input: RuleHostInput, helpers: RuleHostHelpers) => unknown {
|
|
36
|
-
return typeof value === 'function';
|
|
37
|
-
}
|
|
19
|
+
import { compileHardenedRuleEvaluator, safeStringifyPreview, validateRuleHostResult } from '@principles/core/runtime-v2';
|
|
38
20
|
|
|
39
21
|
/**
|
|
40
22
|
* Compile rule implementation code and return a typed evaluate function.
|
|
41
|
-
* Mirrors `createReplayEvaluateFromCode` in openclaw-plugin.
|
|
42
23
|
*
|
|
43
24
|
* @throws if the code fails to compile or does not define a function evaluate
|
|
44
25
|
*/
|
|
45
26
|
export function compileDemoRule(code: string, sourceLabel: string): ReplayEvaluateFn {
|
|
46
|
-
const
|
|
47
|
-
const script = new vm.Script(normalizeSource(code), {
|
|
48
|
-
filename: sourceLabel,
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
script.runInContext(context, { timeout: 1000, displayErrors: true });
|
|
52
|
-
|
|
53
|
-
const moduleExports = (context as { __pdRuleModule?: { meta?: unknown; evaluate?: unknown } }).__pdRuleModule;
|
|
54
|
-
delete (context as { __pdRuleModule?: unknown }).__pdRuleModule;
|
|
55
|
-
|
|
56
|
-
if (!moduleExports || !isRuleEvaluator(moduleExports.evaluate)) {
|
|
57
|
-
throw new Error(`[compileDemoRule] ${sourceLabel}: compiled module has no evaluate function`);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const evaluateFn = moduleExports.evaluate;
|
|
27
|
+
const evaluateFn = compileHardenedRuleEvaluator(code, sourceLabel);
|
|
61
28
|
return (input: RuleHostInput, helpers: RuleHostHelpers): RuleHostResult => {
|
|
62
29
|
const result = evaluateFn(input, helpers);
|
|
63
30
|
const validation = validateRuleHostResult(result);
|
|
@@ -68,6 +35,6 @@ export function compileDemoRule(code: string, sourceLabel: string): ReplayEvalua
|
|
|
68
35
|
})`,
|
|
69
36
|
);
|
|
70
37
|
}
|
|
71
|
-
return result
|
|
38
|
+
return result;
|
|
72
39
|
};
|
|
73
40
|
}
|