@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.
Files changed (27) hide show
  1. package/dist/commands/build-trajectory-evidence.d.ts +10 -0
  2. package/dist/commands/build-trajectory-evidence.d.ts.map +1 -1
  3. package/dist/commands/build-trajectory-evidence.js +12 -0
  4. package/dist/commands/build-trajectory-evidence.js.map +1 -1
  5. package/dist/commands/pain-record.d.ts.map +1 -1
  6. package/dist/commands/pain-record.js +63 -29
  7. package/dist/commands/pain-record.js.map +1 -1
  8. package/dist/commands/runtime-internalization-run-rulehost.d.ts.map +1 -1
  9. package/dist/commands/runtime-internalization-run-rulehost.js +21 -1
  10. package/dist/commands/runtime-internalization-run-rulehost.js.map +1 -1
  11. package/dist/services/demo-rule-compiler.d.ts +9 -11
  12. package/dist/services/demo-rule-compiler.d.ts.map +1 -1
  13. package/dist/services/demo-rule-compiler.js +11 -37
  14. package/dist/services/demo-rule-compiler.js.map +1 -1
  15. package/dist/services/rulehost-pipeline-runner.d.ts +6 -9
  16. package/dist/services/rulehost-pipeline-runner.d.ts.map +1 -1
  17. package/dist/services/rulehost-pipeline-runner.js +6 -9
  18. package/dist/services/rulehost-pipeline-runner.js.map +1 -1
  19. package/package.json +1 -1
  20. package/src/commands/build-trajectory-evidence.ts +22 -0
  21. package/src/commands/pain-record.ts +64 -29
  22. package/src/commands/runtime-internalization-run-rulehost.ts +22 -1
  23. package/src/services/demo-rule-compiler.ts +12 -45
  24. package/src/services/rulehost-pipeline-runner.ts +6 -9
  25. package/tests/commands/build-trajectory-evidence.test.ts +106 -0
  26. package/tests/commands/pain-record-session-parser.test.ts +62 -12
  27. 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`. This allows the demo
6
- * to perform REAL canActivate validation instead of always returning success.
6
+ * functions for use in `evaluateInRefinerSandbox`.
7
7
  *
8
- * ARCHITECTURE: This intentionally duplicates the compilation logic from
9
- * `openclaw-plugin/src/core/rule-implementation-runtime.ts` because pd-cli
10
- * cannot depend on the bundled openclaw-plugin package. The compilation
11
- * logic is identical: normalize exports → vm compile → extract evaluate.
12
- *
13
- * NOT for production use — the openclaw-plugin's RuleHost uses its own
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 * as vm from 'node:vm';
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 context = vm.createContext(Object.create(null));
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;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE3F,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,cAAc,GAAG,UAAU;SAC9B,OAAO,CAAC,2BAA2B,EAAE,cAAc,CAAC;SACpD,OAAO,CAAC,mCAAmC,EAAE,oBAAoB,CAAC,CAAC;IAEtE,OAAO,GAAG,cAAc;;;;GAIvB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,WAAmB;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QAClD,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAErE,MAAM,aAAa,GAAI,OAAuE,CAAC,cAAc,CAAC;IAC9G,OAAQ,OAAwC,CAAC,cAAc,CAAC;IAEhE,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,qBAAqB,WAAW,4CAA4C,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IAC1C,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,MAAwB,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
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`. Per the Explore finding, `compileDemoRule` is
21
- * byte-equivalent to openclaw-plugin's `loadRuleImplementationModule`; the
22
- * duplication is a package-boundary necessity (pd-cli cannot import
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` is byte-equivalent to openclaw-plugin's
169
- * `loadRuleImplementationModule` (same vm.createContext, same normalize, same
170
- * evaluate-shape check). pd-cli cannot import openclaw-plugin (package
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":"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"}
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`. Per the Explore finding, `compileDemoRule` is
21
- * byte-equivalent to openclaw-plugin's `loadRuleImplementationModule`; the
22
- * duplication is a package-boundary necessity (pd-cli cannot import
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` is byte-equivalent to openclaw-plugin's
56
- * `loadRuleImplementationModule` (same vm.createContext, same normalize, same
57
- * evaluate-shape check). pd-cli cannot import openclaw-plugin (package
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/pd-cli",
3
- "version": "1.152.5",
3
+ "version": "1.152.6",
4
4
  "description": "PD CLI — Pain recording, sample management, and governance tasks for Principles Disciple",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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 (session_not_found /
95
- * empty_trajectory / trajectory_unavailable / evidence_read_failed):
96
- * → cli_explicit_session + unbound → shared evaluator REFUSES
97
- * (row 5) before any LLM/task/candidate mutation.
98
- * The CLI does NOT share the OpenClaw funnel's "degrade" semantics
99
- * because the CLI does not own the session identity the way the host
100
- * command context does (Evidence Over Assumption — an unverified
101
- * session claimed as bound would be a PRI-642 recurrence).
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 demands a fail-loud refusal whenever the CLI
163
- // cannot actually verify the claimed binding. We do not share the
164
- // OpenClaw funnel's "degrade" semantics here because the CLI does
165
- // not own the session identity the way the host command context does
166
- // (Evidence Over Assumption): an unverified session that we still
167
- // claimed as bound would be a PRI-642 recurrence in a different
168
- // shape. Per-channel policy differs; semantic authority is shared.
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
- // session_not_found / empty_trajectory / trajectory_unavailable /
172
- // evidence_read_failed — refuse (row 5) before any LLM/task/candidate
173
- // mutation. The CLI surfaces the reasonCode with a SPEC §7.3 next
174
- // action; the evaluator produces the refuse decision.
175
- const {reasonCode} = acquisition;
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: reasonCode === 'session_not_found' ? 'not_applicable_unbound' : reasonCode },
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. The empty-trajectory branch was collapsed to refuse above; a
206
- // future-added reason would land here and must also refuse.
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
- // (session_not_found / empty_trajectory / trajectory_unavailable /
320
- // evidence_read_failed) — the shared evaluator produces the refuse
321
- // decision; we map the acquisition detail to the Operator reason.
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: decision.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
- totalBudgetMs: timeoutMs,
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`. This allows the demo
6
- * to perform REAL canActivate validation instead of always returning success.
6
+ * functions for use in `evaluateInRefinerSandbox`.
7
7
  *
8
- * ARCHITECTURE: This intentionally duplicates the compilation logic from
9
- * `openclaw-plugin/src/core/rule-implementation-runtime.ts` because pd-cli
10
- * cannot depend on the bundled openclaw-plugin package. The compilation
11
- * logic is identical: normalize exports → vm compile → extract evaluate.
12
- *
13
- * NOT for production use — the openclaw-plugin's RuleHost uses its own
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 context = vm.createContext(Object.create(null));
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 as RuleHostResult;
38
+ return result;
72
39
  };
73
40
  }