@principles/core 1.297.3 → 1.297.5

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 (63) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/prompt-builder/index.d.ts +1 -3
  5. package/dist/prompt-builder/index.d.ts.map +1 -1
  6. package/dist/prompt-builder/index.js +0 -1
  7. package/dist/prompt-builder/index.js.map +1 -1
  8. package/dist/prompt-builder/size-guard.d.ts +3 -4
  9. package/dist/prompt-builder/size-guard.d.ts.map +1 -1
  10. package/dist/prompt-builder/size-guard.js +7 -25
  11. package/dist/prompt-builder/size-guard.js.map +1 -1
  12. package/dist/prompt-builder/types.d.ts +1 -7
  13. package/dist/prompt-builder/types.d.ts.map +1 -1
  14. package/dist/runtime-v2/activation/index.d.ts +6 -0
  15. package/dist/runtime-v2/activation/index.d.ts.map +1 -1
  16. package/dist/runtime-v2/activation/index.js +3 -0
  17. package/dist/runtime-v2/activation/index.js.map +1 -1
  18. package/dist/runtime-v2/activation/openclaw-promotion-checks.d.ts +75 -0
  19. package/dist/runtime-v2/activation/openclaw-promotion-checks.d.ts.map +1 -1
  20. package/dist/runtime-v2/activation/openclaw-promotion-checks.js +131 -37
  21. package/dist/runtime-v2/activation/openclaw-promotion-checks.js.map +1 -1
  22. package/dist/runtime-v2/activation/production-gate-deps.d.ts.map +1 -1
  23. package/dist/runtime-v2/activation/production-gate-deps.js +7 -3
  24. package/dist/runtime-v2/activation/production-gate-deps.js.map +1 -1
  25. package/dist/runtime-v2/activation/recovery-composition.d.ts +54 -0
  26. package/dist/runtime-v2/activation/recovery-composition.d.ts.map +1 -0
  27. package/dist/runtime-v2/activation/recovery-composition.js +129 -0
  28. package/dist/runtime-v2/activation/recovery-composition.js.map +1 -0
  29. package/dist/runtime-v2/activation/recovery-control-surfaces.d.ts +62 -0
  30. package/dist/runtime-v2/activation/recovery-control-surfaces.d.ts.map +1 -0
  31. package/dist/runtime-v2/activation/recovery-control-surfaces.js +84 -0
  32. package/dist/runtime-v2/activation/recovery-control-surfaces.js.map +1 -0
  33. package/dist/runtime-v2/activation/rulecode-shadow-summary.d.ts +13 -1
  34. package/dist/runtime-v2/activation/rulecode-shadow-summary.d.ts.map +1 -1
  35. package/dist/runtime-v2/activation/rulecode-shadow-summary.js +24 -1
  36. package/dist/runtime-v2/activation/rulecode-shadow-summary.js.map +1 -1
  37. package/dist/runtime-v2/index.d.ts +2 -5
  38. package/dist/runtime-v2/index.d.ts.map +1 -1
  39. package/dist/runtime-v2/index.js +1 -5
  40. package/dist/runtime-v2/index.js.map +1 -1
  41. package/dist/runtime-v2/recovery-actions-log.d.ts.map +1 -1
  42. package/dist/runtime-v2/recovery-actions-log.js +2 -3
  43. package/dist/runtime-v2/recovery-actions-log.js.map +1 -1
  44. package/dist/runtime-v2/trajectory-schema.d.ts.map +1 -1
  45. package/dist/runtime-v2/trajectory-schema.js +12 -1
  46. package/dist/runtime-v2/trajectory-schema.js.map +1 -1
  47. package/dist/runtime-v2/types/event-types.d.ts +10 -0
  48. package/dist/runtime-v2/types/event-types.d.ts.map +1 -1
  49. package/dist/runtime-v2/types/event-types.js +1 -0
  50. package/dist/runtime-v2/types/event-types.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/prompt-builder/principle-selection.d.ts +0 -68
  53. package/dist/prompt-builder/principle-selection.d.ts.map +0 -1
  54. package/dist/prompt-builder/principle-selection.js +0 -140
  55. package/dist/prompt-builder/principle-selection.js.map +0 -1
  56. package/dist/runtime-v2/pruning-mask.d.ts +0 -27
  57. package/dist/runtime-v2/pruning-mask.d.ts.map +0 -1
  58. package/dist/runtime-v2/pruning-mask.js +0 -59
  59. package/dist/runtime-v2/pruning-mask.js.map +0 -1
  60. package/dist/runtime-v2/pruning-review-log.d.ts +0 -41
  61. package/dist/runtime-v2/pruning-review-log.d.ts.map +0 -1
  62. package/dist/runtime-v2/pruning-review-log.js +0 -106
  63. package/dist/runtime-v2/pruning-review-log.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw-promotion-checks.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/openclaw-promotion-checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openclaw-promotion-checks.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/openclaw-promotion-checks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"production-gate-deps.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/production-gate-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,KAAK,EACV,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AA4EzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,CA8EhG;AAED,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,yBAA8B,GAAG,uBAAuB,CAwFzG"}
1
+ {"version":3,"file":"production-gate-deps.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/production-gate-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,KAAK,EACV,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AA8EzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAgFhG;AAED,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,yBAA8B,GAAG,uBAAuB,CAwFzG"}
@@ -58,10 +58,13 @@ function isValidRuleHostResult(value) {
58
58
  * Untrusted input crosses as DATA (a string), never as code or objects.
59
59
  */
60
60
  function normalizeSource(sourceCode) {
61
- const withoutExports = sourceCode
61
+ return sourceCode
62
62
  .replace(/export\s+const\s+meta\s*=/, 'const meta =')
63
63
  .replace(/export\s+function\s+evaluate\s*\(/, 'function evaluate(');
64
- return `${withoutExports}
64
+ }
65
+ // Compile the intentionally executable RuleCode separately from this fixed
66
+ // data bridge. Untrusted source never becomes part of the bridge's code text.
67
+ const RULE_MODULE_BRIDGE = `
65
68
  globalThis.__pdRuleModule = {
66
69
  meta: typeof meta === 'undefined' ? undefined : meta,
67
70
  evaluate: typeof evaluate === 'undefined' ? undefined : function (__pdJsonBridge) {
@@ -76,7 +79,6 @@ globalThis.__pdRuleModule = {
76
79
  return evaluate(__pdCallInput, __pdCallHelpers);
77
80
  },
78
81
  };`;
79
- }
80
82
  /**
81
83
  * Type guard: validate that a value from the untrusted vm sandbox has the
82
84
  * expected CompiledModuleExports shape. Treats all sandbox output as unknown.
@@ -131,6 +133,8 @@ export function compileHardenedRuleEvaluator(code, sourceLabel) {
131
133
  const context = vm.createContext(Object.create(null), { microtaskMode: 'afterEvaluate' });
132
134
  const script = new vm.Script(normalizeSource(code), { filename: sourceLabel });
133
135
  script.runInContext(context, { timeout: 1000, displayErrors: true });
136
+ new vm.Script(RULE_MODULE_BRIDGE, { filename: `${sourceLabel}#bridge` })
137
+ .runInContext(context, { timeout: 1000, displayErrors: true });
134
138
  // Treat sandbox output as untrusted — use Reflect.get + type guard, not `as`.
135
139
  const moduleExportsUnknown = Reflect.get(context, '__pdRuleModule');
136
140
  if (!isCompiledModuleExports(moduleExportsUnknown)) {
@@ -1 +1 @@
1
- {"version":3,"file":"production-gate-deps.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/production-gate-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"production-gate-deps.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/production-gate-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAU9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACnJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAE9C;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,eAAe,CAAC,UAAkB;IACzC,OAAO,UAAU;SACd,OAAO,CAAC,2BAA2B,EAAE,cAAc,CAAC;SACpD,OAAO,CAAC,mCAAmC,EAAE,oBAAoB,CAAC,CAAC;AACxE,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;GAcxB,CAAC;AAOJ;;;GAGG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAY,EAAE,WAAmB;IAC5E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,IAAI,WAAW,sCAAsC,CAAC,CAAC;IACzE,CAAC;IAED,6EAA6E;IAC7E,uEAAuE;IACvE,6EAA6E;IAC7E,6EAA6E;IAC7E,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAE/E,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,IAAI,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,GAAG,WAAW,SAAS,EAAE,CAAC;SACrE,YAAY,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjE,8EAA8E;IAC9E,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAEpE,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,IAAI,WAAW,2CAA2C,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,OAAO,oBAAoB,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,IAAI,WAAW,4CAA4C,CAC5D,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,wEAAwE;IACxE,oEAAoE;IACpE,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,oEAAoE;IACpE,0EAA0E;IAC1E,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,uCAAuC,EAAE;QAChF,QAAQ,EAAE,GAAG,WAAW,WAAW;KACpC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAoB,EAAE,QAAyB,EAAkB,EAAE;QACzE,uEAAuE;QACvE,gEAAgE;QAChE,sEAAsE;QACtE,wEAAwE;QACxE,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,IAAI,WAAW,0FAA0F,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC3J,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;QACjC,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE;gBAChD,OAAO,EAAE,+BAA+B;gBACxC,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC;QACD,0EAA0E;QAC1E,mEAAmE;QACnE,2DAA2D;QAC3D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,IAAI,WAAW,gDAAgD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAC3L,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAmBD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAO,GAA8B,EAAE;IAC9E,OAAO;QACL,iBAAiB,EAAE,CACjB,IAAY,EACZ,WAAwB,EACxB,IAA4B,EACN,EAAE;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,oEAAoE;YACpE,4EAA4E;YAC5E,0EAA0E;YAC1E,uEAAuE;YACvE,oEAAoE;YACpE,2BAA2B;YAC3B,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,EAAE;oBACf,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACvC,0BAA0B,EAAE,mBAAmB;iBAChD,CAAC;YACJ,CAAC;YAED,wEAAwE;YACxE,uEAAuE;YACvE,qEAAqE;YACrE,oEAAoE;YACpE,MAAM,qBAAqB,GAAG,kCAAkC,CAAC,IAAI,CAAC,CAAC;YACvE,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAC/C,MAAM,EAAE,kBAAkB;wBAC1B,SAAS,EAAE,mBAA4B;wBACvC,OAAO,EAAE,GAAG;qBACb,CAAC,CAAC;oBACH,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACvC,0BAA0B,EAAE,EAAE;iBAC/B,CAAC;YACJ,CAAC;YAED,gEAAgE;YAChE,qEAAqE;YACrE,sEAAsE;YACtE,mDAAmD;YACnD,MAAM,sBAAsB,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;YAChE,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAChD,MAAM,EAAE,4BAA4B;wBACpC,SAAS,EAAE,mBAA4B;wBACvC,OAAO,EAAE,GAAG;qBACb,CAAC,CAAC;oBACH,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACvC,0BAA0B,EAAE,EAAE;iBAC/B,CAAC;YACJ,CAAC;YAED,IAAI,YAA8B,CAAC;YACnC,IAAI,CAAC;gBACH,YAAY,GAAG,4BAA4B,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;YAC5E,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,CAAC;4BACZ,MAAM,EAAE,aAAa;4BACrB,SAAS,EAAE,cAAc;4BACzB,OAAO;yBACR,CAAC;oBACF,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACvC,0BAA0B,EAAE,EAAE;iBAC/B,CAAC;YACJ,CAAC;YAED,OAAO,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE;gBACjD,YAAY;gBACZ,GAAG,IAAI;gBACP,uEAAuE;gBACvE,6EAA6E;gBAC7E,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,OAAO,CAAC,aAAa;gBAC3D,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU;aACnD,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { ToolSemanticRegistry } from '../internalization/tool-semantic-registry.js';
2
+ /**
3
+ * SPEC-RULECODE-HOST-PROMOTION-001 review round 3 (P1): "composition
4
+ * verification" must execute through the PRODUCTION composition boundary —
5
+ * every rule of the composed set (candidate + existing live) compiled by the
6
+ * same hardened evaluator production replay uses, evaluated against the same
7
+ * synthetic-input builder, and merged by the same `mergeDecisions` the
8
+ * shared gate uses at runtime (any block / requireApproval / auto_correct
9
+ * from ANY rule wins over allow). The previous approximation appended probe
10
+ * cases to each artifact's own golden trace and validated artifacts one by
11
+ * one — decision-equivalent for blockers, but it never exercised a merged
12
+ * multi-rule execution; this module does.
13
+ *
14
+ * Evidence-layer boundary (do not blur): this is RULE-side verification for
15
+ * the rule-interceptable (CLI/shell-channel) recovery probes ONLY. Console-
16
+ * channel recovery controls never pass through the RuleHost gate — their
17
+ * independence is structural and their real-world reachability is supplied
18
+ * separately as target-environment evidence by the readiness caller.
19
+ */
20
+ export interface RecoveryCompositionArtifact {
21
+ artifactId: string;
22
+ /** Direct source when the caller already parsed the artifact content. */
23
+ implementationCode?: string;
24
+ /** Raw artifact content; parsed here when implementationCode is absent. */
25
+ contentJson?: string;
26
+ }
27
+ export interface RecoveryCompositionProbe {
28
+ probeId: string;
29
+ toolName: string;
30
+ params: Readonly<Record<string, unknown>>;
31
+ }
32
+ export interface RecoveryCompositionInput {
33
+ /** Candidate first, then existing live artifacts, in activation order. */
34
+ artifacts: readonly RecoveryCompositionArtifact[];
35
+ probes: readonly RecoveryCompositionProbe[];
36
+ projectDir: string;
37
+ toolSemantics?: ToolSemanticRegistry;
38
+ }
39
+ export type RecoveryCompositionResult = {
40
+ ok: true;
41
+ } | {
42
+ ok: false;
43
+ probeId: string;
44
+ blockerArtifactId?: string;
45
+ reason: string;
46
+ };
47
+ /**
48
+ * Verify that the COMPOSED rule set (candidate + existing live) allows every
49
+ * rule-interceptable recovery probe. Any rule that blocks (or escalates) a
50
+ * probe fails the check with the blocking artifact identified — a rule
51
+ * combination that blocks an official recovery entry can never be promoted.
52
+ */
53
+ export declare function verifyRecoveryProbeComposition(input: RecoveryCompositionInput): RecoveryCompositionResult;
54
+ //# sourceMappingURL=recovery-composition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-composition.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/recovery-composition.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAEzF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,SAAS,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAClD,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA2D/E;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,wBAAwB,GAAG,yBAAyB,CA6DzG"}
@@ -0,0 +1,129 @@
1
+ import { compileHardenedRuleEvaluator } from './production-gate-deps.js';
2
+ import { createSyntheticRuleHostInput } from '../golden-trace.js';
3
+ import { mergeDecisions } from '../internalization/rule-host-evaluator.js';
4
+ import { validateRuleHostResult } from '../internalization/rule-host-validator.js';
5
+ import { createRuleHostHelpers } from '../internalization/rule-host-helpers.js';
6
+ import { computeBehaviorFacts, UNAVAILABLE_RULE_CONTEXT } from '../internalization/rule-context-v2.js';
7
+ function isRecord(value) {
8
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
9
+ }
10
+ function parseImplementationCode(artifact) {
11
+ if (typeof artifact.implementationCode === 'string' && artifact.implementationCode.trim().length > 0)
12
+ return artifact.implementationCode;
13
+ if (typeof artifact.contentJson === 'string') {
14
+ try {
15
+ const parsed = JSON.parse(artifact.contentJson);
16
+ if (isRecord(parsed) && typeof parsed.implementationCode === 'string') {
17
+ return parsed.implementationCode;
18
+ }
19
+ }
20
+ catch {
21
+ return null;
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ /** Synthetic control-safety scenarios, never production or historical approvals. */
27
+ function recoveryContexts(probeInput) {
28
+ const target = probeInput.action.normalizedPath;
29
+ const histories = [
30
+ { name: 'empty', history: { status: 'available', truncated: false, calls: [] } },
31
+ { name: 'observed', history: { status: 'available', truncated: false, calls: [
32
+ { sequenceId: 1, toolName: 'read_file', canonicalKind: 'read', normalizedPath: target, paramsSummary: {}, outcome: 'success' },
33
+ { sequenceId: 2, toolName: 'write_file', canonicalKind: 'write', normalizedPath: target, paramsSummary: {}, outcome: 'success' },
34
+ { sequenceId: 3, toolName: probeInput.action.toolName, canonicalKind: probeInput.action.canonicalKind ?? 'other', normalizedPath: target, paramsSummary: {}, outcome: 'blocked' },
35
+ ] } },
36
+ { name: 'unavailable', history: UNAVAILABLE_RULE_CONTEXT.history },
37
+ ];
38
+ const base = {
39
+ version: 1, sourceRef: 'system-counterfactual:recovery-control', revision: 1,
40
+ requiresApproval: true, taskRef: 'recovery-task', specDigest: 'recovery-spec', scopeRef: 'recovery-scope',
41
+ decisionTaskRef: 'recovery-task', decisionSpecDigest: 'recovery-spec', decisionScopeRef: 'recovery-scope',
42
+ resolution: 'not_approved', revoked: false,
43
+ };
44
+ const facts = [
45
+ { name: 'missing' },
46
+ { name: 'unknown', fact: { ...base, resolution: 'unknown', invalidationReason: 'source_unavailable' } },
47
+ { name: 'not-approved', fact: base },
48
+ { name: 'approved', fact: { ...base, resolution: 'approved' } },
49
+ { name: 'not-required', fact: { ...base, requiresApproval: false, resolution: 'not_required' } },
50
+ { name: 'revoked', fact: { ...base, revoked: true, invalidationReason: 'declaration_revoked' } },
51
+ ];
52
+ return [
53
+ { name: 'no-context' },
54
+ ...histories.flatMap(({ name, history }) => facts.map(variant => ({
55
+ name: `${name}:${variant.name}`,
56
+ context: {
57
+ version: 2, history,
58
+ facts: { ...computeBehaviorFacts(history, target, history.status === 'unavailable' ? null : name === 'observed' ? 1 : 0), ...(variant.fact ? { designGate: variant.fact } : {}) },
59
+ },
60
+ }))),
61
+ ];
62
+ }
63
+ /**
64
+ * Verify that the COMPOSED rule set (candidate + existing live) allows every
65
+ * rule-interceptable recovery probe. Any rule that blocks (or escalates) a
66
+ * probe fails the check with the blocking artifact identified — a rule
67
+ * combination that blocks an official recovery entry can never be promoted.
68
+ */
69
+ export function verifyRecoveryProbeComposition(input) {
70
+ const compiled = [];
71
+ for (const artifact of input.artifacts) {
72
+ const code = parseImplementationCode(artifact);
73
+ if (code === null || code.trim().length === 0) {
74
+ return { ok: false, probeId: '__compile__', blockerArtifactId: artifact.artifactId, reason: `artifact ${artifact.artifactId} carries no implementationCode` };
75
+ }
76
+ try {
77
+ const evaluator = compileHardenedRuleEvaluator(code, `recovery-composition:${artifact.artifactId}`);
78
+ compiled.push({ artifactId: artifact.artifactId, implId: artifact.artifactId, evaluate: probeInput => evaluator(probeInput, createRuleHostHelpers(probeInput)) });
79
+ }
80
+ catch (error) {
81
+ return { ok: false, probeId: '__compile__', blockerArtifactId: artifact.artifactId, reason: `artifact ${artifact.artifactId} failed to compile: ${error instanceof Error ? error.message : String(error)}` };
82
+ }
83
+ }
84
+ if (compiled.length === 0)
85
+ return { ok: true };
86
+ for (const probe of input.probes) {
87
+ const baseInput = createSyntheticRuleHostInput({ toolName: probe.toolName, params: { ...probe.params } }, {}, { projectDir: input.projectDir, ...(input.toolSemantics !== undefined ? { toolSemantics: input.toolSemantics } : {}) });
88
+ // A missing context alone exercises only neutral passthrough in V2 rules.
89
+ // Recovery must remain usable under actionable facts and observed history too.
90
+ for (const variant of recoveryContexts(baseInput)) {
91
+ const probeInput = { ...baseInput, ...(variant.context ? { context: variant.context } : {}) };
92
+ const results = [];
93
+ for (const entry of compiled) {
94
+ let result;
95
+ try {
96
+ result = entry.evaluate(probeInput);
97
+ }
98
+ catch (error) {
99
+ return { ok: false, probeId: probe.probeId, blockerArtifactId: entry.artifactId, reason: `rule threw during recovery probe ${probe.probeId}: ${error instanceof Error ? error.message : String(error)}` };
100
+ }
101
+ const validation = validateRuleHostResult(result);
102
+ if (!validation.valid) {
103
+ return { ok: false, probeId: probe.probeId, blockerArtifactId: entry.artifactId, reason: `rule returned an invalid result on recovery probe ${probe.probeId}: ${validation.errors.join('; ')}` };
104
+ }
105
+ results.push({ artifactId: entry.artifactId, result });
106
+ }
107
+ const implementations = results.map((entry) => ({
108
+ implId: entry.artifactId,
109
+ ruleId: entry.artifactId,
110
+ meta: { name: entry.artifactId, version: '1', ruleId: entry.artifactId, coversCondition: 'all' },
111
+ evaluate: () => entry.result,
112
+ }));
113
+ const merged = mergeDecisions(implementations, probeInput);
114
+ if (merged !== undefined && merged.decision !== 'allow') {
115
+ // Attribute the winning decision back to its artifact by reference
116
+ // identity (the merge returns the winning rule's own result object).
117
+ const winner = results.find(entry => entry.result === merged);
118
+ return {
119
+ ok: false,
120
+ probeId: probe.probeId,
121
+ ...(winner !== undefined ? { blockerArtifactId: winner.artifactId } : {}),
122
+ reason: `recovery probe ${probe.probeId} would be ${merged.decision === 'block' ? 'blocked' : merged.decision} under the composed rule set (${variant.name})`,
123
+ };
124
+ }
125
+ }
126
+ }
127
+ return { ok: true };
128
+ }
129
+ //# sourceMappingURL=recovery-composition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-composition.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/recovery-composition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { HostLivenessContract } from './openclaw-promotion-checks.js';
2
+ /**
3
+ * SPEC-RULECODE-HOST-PROMOTION-001 review finding 1 (P1): a capability
4
+ * CONTRACT declares mappings; it must never by itself certify that the
5
+ * out-of-band recovery controls are REAL. This registry is the core-owned
6
+ * inventory of each recovery control's ACTUAL, currently-registered entry
7
+ * surface — verified against the real command/route registrations by the
8
+ * cross-package contract tests that import it (pd-cli proves every `cli`
9
+ * entry parses against the real Commander tree; pd-console proves every
10
+ * `console` entry dispatches to its model handler). Readiness validates
11
+ * every host contract's probes against THIS table before
12
+ * `emergency_controls` may pass: a probe naming a command or route that is
13
+ * not registered here (or anywhere) is a fabricated recovery entry and
14
+ * fails the check.
15
+ *
16
+ * Inventory basis (2026-10-29 audit of this repository):
17
+ * - `pd activation list --json` — registered (pd-cli runtime-activation.ts,
18
+ * read-only RuleCode status surface);
19
+ * - `pd activation deactivate --activation-id <id>` — registered
20
+ * (pd-cli runtime-activation.ts, idempotent rollback);
21
+ * - global emergency pause — NO pd CLI command exists; the real surface is
22
+ * the authenticated Owner Console route POST /api/v1/activations/
23
+ * emergency-pause (server/routes/activations.ts → pauseAllRuleCode →
24
+ * SqliteActivationSafetyStore.pauseAllLive, honored by the shared gate's
25
+ * global_rulecode_pauses read);
26
+ * - Owner review — Console owner-review route (e2e-proven).
27
+ * A capability whose real surface is missing from this registry must stay
28
+ * unsupported — never papered over with a constant or a stub probe.
29
+ */
30
+ export type RecoveryControlCapability = 'pd_status' | 'rulecode_deactivate' | 'rulecode_global_pause' | 'owner_review_access';
31
+ export interface RecoveryControlSurface {
32
+ readonly capabilityId: RecoveryControlCapability;
33
+ readonly channel: 'cli' | 'console';
34
+ /** channel 'cli': the exact canonical probe command (never executed by readiness — replay-only). */
35
+ readonly cliCommand?: string;
36
+ /** channel 'console': the console route backing the control. */
37
+ readonly consoleRoute?: string;
38
+ }
39
+ export declare const RECOVERY_CONTROL_SURFACES: readonly RecoveryControlSurface[];
40
+ export type RecoveryControlValidation = {
41
+ ok: true;
42
+ } | {
43
+ ok: false;
44
+ reason: 'recovery_control_surface_unregistered' | 'recovery_control_probe_mismatch';
45
+ capabilityId: string;
46
+ nextAction: string;
47
+ };
48
+ /**
49
+ * Validate a host contract's recovery-control declaration against the real
50
+ * surface registry:
51
+ * - every registry capability must be declared as a protected capability;
52
+ * - every neutral probe for a CLI-channel capability must replay EXACTLY the
53
+ * registry's canonical command (no invented `pd status`,
54
+ * no non-existent `pd activation emergency-pause`);
55
+ * - console-channel capabilities must carry NO probe: their recovery path
56
+ * never passes through the RuleHost gate, so a virtual-tool allow replay
57
+ * would misrepresent rule-side verification as control verification
58
+ * (review R3/P1 — their independence is structural and their real-world
59
+ * reachability is supplied as target-environment evidence instead).
60
+ */
61
+ export declare function validateRecoveryControlSurfaces(contract: HostLivenessContract): RecoveryControlValidation;
62
+ //# sourceMappingURL=recovery-control-surfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-control-surfaces.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/recovery-control-surfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,yBAAyB,GACjC,WAAW,GACX,qBAAqB,GACrB,uBAAuB,GACvB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IACpC,oGAAoG;IACpG,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,yBAAyB,EAAE,SAAS,sBAAsB,EAqBrE,CAAC;AAEH,MAAM,MAAM,yBAAyB,GACjC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,uCAAuC,GAAG,iCAAiC,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAMjJ;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,oBAAoB,GAAG,yBAAyB,CA2CzG"}
@@ -0,0 +1,84 @@
1
+ export const RECOVERY_CONTROL_SURFACES = Object.freeze([
2
+ Object.freeze({
3
+ capabilityId: 'pd_status',
4
+ channel: 'cli',
5
+ cliCommand: 'pd activation list --json',
6
+ }),
7
+ Object.freeze({
8
+ capabilityId: 'rulecode_deactivate',
9
+ channel: 'cli',
10
+ cliCommand: 'pd activation deactivate --activation-id recovery-probe',
11
+ }),
12
+ Object.freeze({
13
+ capabilityId: 'rulecode_global_pause',
14
+ channel: 'console',
15
+ consoleRoute: '/api/v1/activations/emergency-pause',
16
+ }),
17
+ Object.freeze({
18
+ capabilityId: 'owner_review_access',
19
+ channel: 'console',
20
+ consoleRoute: '/api/v1/activations/{activationId}/owner-review',
21
+ }),
22
+ ]);
23
+ function isRecord(value) {
24
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
25
+ }
26
+ /**
27
+ * Validate a host contract's recovery-control declaration against the real
28
+ * surface registry:
29
+ * - every registry capability must be declared as a protected capability;
30
+ * - every neutral probe for a CLI-channel capability must replay EXACTLY the
31
+ * registry's canonical command (no invented `pd status`,
32
+ * no non-existent `pd activation emergency-pause`);
33
+ * - console-channel capabilities must carry NO probe: their recovery path
34
+ * never passes through the RuleHost gate, so a virtual-tool allow replay
35
+ * would misrepresent rule-side verification as control verification
36
+ * (review R3/P1 — their independence is structural and their real-world
37
+ * reachability is supplied as target-environment evidence instead).
38
+ */
39
+ export function validateRecoveryControlSurfaces(contract) {
40
+ const protectedIds = new Set(contract.protectedCapabilities.map((capability) => capability.capabilityId));
41
+ for (const surface of RECOVERY_CONTROL_SURFACES) {
42
+ if (!protectedIds.has(surface.capabilityId)) {
43
+ return {
44
+ ok: false,
45
+ reason: 'recovery_control_surface_unregistered',
46
+ capabilityId: surface.capabilityId,
47
+ nextAction: `the contract must declare the ${surface.capabilityId} recovery capability with its real ${surface.channel} surface`,
48
+ };
49
+ }
50
+ }
51
+ const byCapability = new Map(contract.neutralProbes.map((probe) => [probe.capabilityId, probe]));
52
+ for (const surface of RECOVERY_CONTROL_SURFACES) {
53
+ const probe = byCapability.get(surface.capabilityId);
54
+ if (surface.channel === 'cli') {
55
+ if (probe === undefined) {
56
+ return {
57
+ ok: false,
58
+ reason: 'recovery_control_probe_mismatch',
59
+ capabilityId: surface.capabilityId,
60
+ nextAction: `the contract must carry a neutral probe for ${surface.capabilityId}`,
61
+ };
62
+ }
63
+ const command = isRecord(probe.params) && typeof probe.params.command === 'string' ? probe.params.command : undefined;
64
+ if (command !== surface.cliCommand) {
65
+ return {
66
+ ok: false,
67
+ reason: 'recovery_control_probe_mismatch',
68
+ capabilityId: surface.capabilityId,
69
+ nextAction: `the ${surface.capabilityId} probe must replay the registered command "${surface.cliCommand}" — a command that is not registered is a fabricated recovery entry`,
70
+ };
71
+ }
72
+ }
73
+ else if (probe !== undefined) {
74
+ return {
75
+ ok: false,
76
+ reason: 'recovery_control_probe_mismatch',
77
+ capabilityId: surface.capabilityId,
78
+ nextAction: `the ${surface.capabilityId} control never passes through the RuleHost gate; a virtual-tool probe would misrepresent its verification — remove the probe (real surface: ${surface.consoleRoute})`,
79
+ };
80
+ }
81
+ }
82
+ return { ok: true };
83
+ }
84
+ //# sourceMappingURL=recovery-control-surfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-control-surfaces.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/recovery-control-surfaces.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,17 @@ export interface RuleCodeShadowSummary {
10
10
  firstObservedAt: string | null;
11
11
  lastObservedAt: string | null;
12
12
  }
13
- export declare function summarizeRuleCodeShadowEvents(entries: readonly unknown[], activationId: string): RuleCodeShadowSummary;
13
+ /**
14
+ * Aggregate the shadow evidence for one activation.
15
+ *
16
+ * SPEC-RULECODE-HOST-PROMOTION-001 B3: promotion shadow thresholds are
17
+ * PER-HOST. When `targetHostKind` is supplied, only events whose
18
+ * `data.hostKind` equals it are counted — a sample produced by another host
19
+ * (e.g. OpenClaw rows in a workspace later governed by Codex) can never
20
+ * satisfy this host's threshold, and rows persisted before the attribution
21
+ * field existed count toward NO host (unattributed ≠ this host). Callers
22
+ * that pass no target keep the historical unfiltered aggregate (exact
23
+ * pre-SPEC behavior for surfaces that have not resolved a promotion host).
24
+ */
25
+ export declare function summarizeRuleCodeShadowEvents(entries: readonly unknown[], activationId: string, targetHostKind?: string): RuleCodeShadowSummary;
14
26
  //# sourceMappingURL=rulecode-shadow-summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rulecode-shadow-summary.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/rulecode-shadow-summary.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAGD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,qBAAqB,CA2CtH"}
1
+ {"version":3,"file":"rulecode-shadow-summary.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/rulecode-shadow-summary.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAGD;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,qBAAqB,CAoDvB"}
@@ -1,5 +1,17 @@
1
1
  function isRecord(value) { return typeof value === 'object' && value !== null && !Array.isArray(value); }
2
- export function summarizeRuleCodeShadowEvents(entries, activationId) {
2
+ /**
3
+ * Aggregate the shadow evidence for one activation.
4
+ *
5
+ * SPEC-RULECODE-HOST-PROMOTION-001 B3: promotion shadow thresholds are
6
+ * PER-HOST. When `targetHostKind` is supplied, only events whose
7
+ * `data.hostKind` equals it are counted — a sample produced by another host
8
+ * (e.g. OpenClaw rows in a workspace later governed by Codex) can never
9
+ * satisfy this host's threshold, and rows persisted before the attribution
10
+ * field existed count toward NO host (unattributed ≠ this host). Callers
11
+ * that pass no target keep the historical unfiltered aggregate (exact
12
+ * pre-SPEC behavior for surfaces that have not resolved a promotion host).
13
+ */
14
+ export function summarizeRuleCodeShadowEvents(entries, activationId, targetHostKind) {
3
15
  let observed = 0;
4
16
  let matched = 0;
5
17
  let wouldBlock = 0;
@@ -13,12 +25,23 @@ export function summarizeRuleCodeShadowEvents(entries, activationId) {
13
25
  for (const entry of entries) {
14
26
  if (!isRecord(entry) || !isRecord(entry.data) || entry.data.activationId !== activationId)
15
27
  continue;
28
+ // Review R3: host attribution gates EVERY event class that feeds this
29
+ // summary — including `rulehost_unhealthy`. The unhealthy branch used to
30
+ // run before the host filter, so a foreign host's anomaly inflated the
31
+ // target host's error count (errors > 0 fails runtime_shadow_evidence)
32
+ // and an unattributed legacy anomaly poisoned every host's threshold.
33
+ // The target host's OWN anomalies still count (never silenced wholesale);
34
+ // the no-target aggregate keeps its historical semantics.
35
+ if (targetHostKind !== undefined && entry.data.hostKind !== targetHostKind)
36
+ continue;
16
37
  if (entry.type === 'rulehost_unhealthy') {
17
38
  errors += 1;
18
39
  continue;
19
40
  }
20
41
  if (entry.type !== 'rulehost_evaluated' || entry.data.activationMode !== 'shadow')
21
42
  continue;
43
+ if (targetHostKind !== undefined && entry.data.hostKind !== targetHostKind)
44
+ continue;
22
45
  observed += 1;
23
46
  if (entry.data.matched === true)
24
47
  matched += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"rulecode-shadow-summary.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/rulecode-shadow-summary.ts"],"names":[],"mappings":"AAYA,SAAS,QAAQ,CAAC,KAAc,IAAsC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEpJ,MAAM,UAAU,6BAA6B,CAAC,OAA2B,EAAE,YAAoB;IAC7F,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,YAAY;YAAE,SAAS;QACpG,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,QAAQ;YAAE,SAAS;QAC5F,QAAQ,IAAI,CAAC,CAAC;QACd,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO;YAAE,UAAU,IAAI,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO;YAAE,UAAU,IAAI,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,iBAAiB;YAAE,eAAe,IAAI,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,cAAc;YAAE,WAAW,IAAI,CAAC,CAAC;QAC7D,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO;YAAE,cAAc,IAAI,CAAC,CAAC;QACzF,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1E,IAAI,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBAAE,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC;YAC/G,IAAI,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;gBAAE,cAAc,GAAG,KAAK,CAAC,EAAE,CAAC;QAC9G,CAAC;IACH,CAAC;IACD,OAAO;QACL,QAAQ;QACR,OAAO;QACP,UAAU;QACV,UAAU;QACV,eAAe;QACf,WAAW;QACX,MAAM;QACN,cAAc;QACd,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"rulecode-shadow-summary.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/rulecode-shadow-summary.ts"],"names":[],"mappings":"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"}
@@ -187,8 +187,6 @@ export { PainChainReadModel } from './pain-chain-read-model.js';
187
187
  export type { PainChainTrace, PainChainTraceLatencyMs, PainChainReadModelOptions } from './pain-chain-read-model.js';
188
188
  export { PruningReadModel, removeOrphanReferencesFromLedger } from './pruning-read-model.js';
189
189
  export type { PrinciplePruningSignal, PruningHealthSummary, PruningReadModelOptions, PruningRiskLevel, OrphanDerivedCandidate, OrphanDetectionResult, RemovedOrphanReference } from './pruning-read-model.js';
190
- export { appendPruningReview, listPruningReviews } from './pruning-review-log.js';
191
- export type { PruningReviewDecision, PruningReviewRecord, AppendPruningReviewInput } from './pruning-review-log.js';
192
190
  export { appendRecoveryAction, listRecoveryActions } from './recovery-actions-log.js';
193
191
  export type { RecoveryActionRecord, RecoveryActionKind, RecoveryActionResult, AppendRecoveryActionInput, } from './recovery-actions-log.js';
194
192
  export { auditCandidateLedgerConsistency } from './candidate-audit.js';
@@ -253,7 +251,6 @@ export { generateFromTemplate } from './internalization/template-generator.js';
253
251
  export type { ValidationResult } from './internalization/rule-code-validator.js';
254
252
  export { checkForbiddenPatterns, checkReturnStatementsMissingFields, checkMatchedFalseDecisions } from './internalization/rule-code-validator.js';
255
253
  export type { CompileResult } from './internalization/compile-result.js';
256
- export { buildMaskedPrincipleSet, getCachedMaskedPrincipleSet, clearPruningMaskCache } from './pruning-mask.js';
257
254
  export { enforceL1HardCap, validateL1CapConfig, DEFAULT_L1_HARD_CAP, MAX_L1_HARD_CAP } from './l1-hard-cap.js';
258
255
  export type { L1CapConfig, L1EvictionCandidate, L1EvictionResult } from './l1-hard-cap.js';
259
256
  export type { DecisionMergeLogger, RuleHostLogger } from './internalization/rule-host-evaluator.js';
@@ -360,8 +357,8 @@ export { reopenTaskForRevision, resolveRolloutRevisionTarget, buildRepairRevisio
360
357
  export type { ReopenRevisionOptions, RolloutRevisionTarget } from './internalization/revision-reopen.js';
361
358
  export { createRuntimeStateHandle } from './runtime-state-handle.js';
362
359
  export type { RuntimeStateHandle } from './runtime-state-handle.js';
363
- export type { ActivationRiskLevel, ActivationActor, RolloutActivationDecision, DispatchInput, ActivationDecision, PIArtifactSnapshot, ActivationArtifactReadModel, ActivationStatusRecord, ActivationStateReadModel, ActivationDecisionRecord, ActivationDecisionSubject, ActivationDecisionKind, ActivationControlState, GlobalRuleCodePause, PromotionEvidenceSnapshot, PromotionFailedCheck, PromotionReadinessResult, OwnerPromotionActor, OwnerPromotionRequest, PromotionCommitInput, OwnerPromotionResult, RuleCodeOwnerDecisionServiceDeps, PromotionCheckId, PromotionReadinessCheck, PromotionReadinessEvaluationInput, PromotionReadinessReaderDeps, RuleCodeSafetySample, RuleCodeSafetyCircuitState, RuleCodeSafetyTripReason, HostLivenessContract, WriterInput, WriterResult, CanActivateResult, ChannelWriter, ApprovalStatus, ApprovalRecord, ApprovalEnqueueInput, ApprovalFilter, ApprovalDecisionResult, ApprovalQueueStore, ApprovalListFilter, ApprovalStats, ApprovalListResult, ArtifactLineageIdentity, ApprovalWithContext, ConfidenceLabel, BuildPromotionEvidenceSnapshotInput, PromotionEvidenceOwnerIdentity, LedgerIdentityChecker, LedgerIdentityLookupDeps, LedgerActivationResolution, } from './activation/index.js';
364
- export { LOW_RISK_CHANNELS, isArtifactRevisionOf, HIGH_RISK_CHANNEL_MAP, makeIdempotencyKey, isLowRiskChannel, getChannelRiskLevel, ActivationDispatcher, resolveLedgerActivationId, candidateIdFromDreamerTaskId, candidateIdFromDreamerSeed, PromptWriter, DeferArchiveWriter, RuleHostWriter, extractEvidenceRefs, extractPrincipleId, MemoryActivationStateStore, MemoryArtifactReadModel, SqliteActivationStateStore, SqliteActivationSafetyStore, RuleCodeOwnerDecisionService, REQUIRED_PROMOTION_CHECK_IDS, evaluateRuleCodePromotionReadiness, PromotionReadinessReader, evaluateRuleCodeSafetyCircuit, initialRuleCodeSafetyCircuitState, collectOpenClawPromotionChecks, summarizeRuleCodeShadowEvents, AUTO_PROMOTION_CONFIDENCE_THRESHOLD, AUTO_PROMOTABLE_CHANNELS, ApprovalQueue, decideAutoPromotion, MemoryApprovalQueueStore, SqliteApprovalQueueStore, mapConfidenceToLabel, RUNTIME_V2_PRINCIPLE_BUDGET, isArtifactRecord, filterPromptActivations, resolvePrincipleFromArtifact, trimToBudget, listEntryLine, renderPrinciplesToDirectives, PROMPT_BUDGET_POLICY_VERSION, PROMPT_BUDGET_BASE_CHARS, PROMPT_BUDGET_REFERENCE_CONTEXT_WINDOW_TOKENS, PROMPT_BUDGET_MIN_CHARS, PROMPT_BUDGET_MAX_CHARS, PROMPT_BUDGET_FALLBACK_CHARS, MIN_PLAUSIBLE_CONTEXT_WINDOW_TOKENS, MAX_PLAUSIBLE_CONTEXT_WINDOW_TOKENS, TRUSTED_HOST_CONTEXT_WINDOW_SOURCES, isValidContextWindowTokens, promptBudgetCharsForContextWindow, classifySingleItemBudgetTier, resolvePromptBudget, createProductionGateDeps, compileHardenedRuleEvaluator, ApprovalCompletionService, detectPromptReplacementTarget, buildOwnerRevisionArtifact, revisionDigest, buildPromotionEvidenceSnapshot, computeArtifactDigest, normalizeOwnerIdentity, verifyPiArtifactRowDigest, } from './activation/index.js';
360
+ export type { ActivationRiskLevel, ActivationActor, RolloutActivationDecision, DispatchInput, ActivationDecision, PIArtifactSnapshot, ActivationArtifactReadModel, ActivationStatusRecord, ActivationStateReadModel, ActivationDecisionRecord, ActivationDecisionSubject, ActivationDecisionKind, ActivationControlState, GlobalRuleCodePause, PromotionEvidenceSnapshot, PromotionFailedCheck, PromotionReadinessResult, OwnerPromotionActor, OwnerPromotionRequest, PromotionCommitInput, OwnerPromotionResult, RuleCodeOwnerDecisionServiceDeps, PromotionCheckId, PromotionReadinessCheck, PromotionReadinessEvaluationInput, PromotionReadinessReaderDeps, RuleCodeSafetySample, RuleCodeSafetyCircuitState, RuleCodeSafetyTripReason, HostLivenessContract, RecoveryReachabilityEvidence, RecoveryCapabilityEvidence, RecoveryCapabilityCoverage, RecoveryControlCapability, RecoveryControlSurface, RecoveryControlValidation, RecoveryCompositionArtifact, RecoveryCompositionInput, RecoveryCompositionProbe, RecoveryCompositionResult, WriterInput, WriterResult, CanActivateResult, ChannelWriter, ApprovalStatus, ApprovalRecord, ApprovalEnqueueInput, ApprovalFilter, ApprovalDecisionResult, ApprovalQueueStore, ApprovalListFilter, ApprovalStats, ApprovalListResult, ArtifactLineageIdentity, ApprovalWithContext, ConfidenceLabel, BuildPromotionEvidenceSnapshotInput, PromotionEvidenceOwnerIdentity, LedgerIdentityChecker, LedgerIdentityLookupDeps, LedgerActivationResolution, } from './activation/index.js';
361
+ export { LOW_RISK_CHANNELS, isArtifactRevisionOf, HIGH_RISK_CHANNEL_MAP, makeIdempotencyKey, isLowRiskChannel, getChannelRiskLevel, ActivationDispatcher, resolveLedgerActivationId, candidateIdFromDreamerTaskId, candidateIdFromDreamerSeed, PromptWriter, DeferArchiveWriter, RuleHostWriter, extractEvidenceRefs, extractPrincipleId, MemoryActivationStateStore, MemoryArtifactReadModel, SqliteActivationStateStore, SqliteActivationSafetyStore, RuleCodeOwnerDecisionService, REQUIRED_PROMOTION_CHECK_IDS, evaluateRuleCodePromotionReadiness, PromotionReadinessReader, evaluateRuleCodeSafetyCircuit, initialRuleCodeSafetyCircuitState, collectOpenClawPromotionChecks, RECOVERY_CONTROL_SURFACES, validateRecoveryControlSurfaces, validateRecoveryCapabilityCoverage, verifyRecoveryProbeComposition, summarizeRuleCodeShadowEvents, AUTO_PROMOTION_CONFIDENCE_THRESHOLD, AUTO_PROMOTABLE_CHANNELS, ApprovalQueue, decideAutoPromotion, MemoryApprovalQueueStore, SqliteApprovalQueueStore, mapConfidenceToLabel, RUNTIME_V2_PRINCIPLE_BUDGET, isArtifactRecord, filterPromptActivations, resolvePrincipleFromArtifact, trimToBudget, listEntryLine, renderPrinciplesToDirectives, PROMPT_BUDGET_POLICY_VERSION, PROMPT_BUDGET_BASE_CHARS, PROMPT_BUDGET_REFERENCE_CONTEXT_WINDOW_TOKENS, PROMPT_BUDGET_MIN_CHARS, PROMPT_BUDGET_MAX_CHARS, PROMPT_BUDGET_FALLBACK_CHARS, MIN_PLAUSIBLE_CONTEXT_WINDOW_TOKENS, MAX_PLAUSIBLE_CONTEXT_WINDOW_TOKENS, TRUSTED_HOST_CONTEXT_WINDOW_SOURCES, isValidContextWindowTokens, promptBudgetCharsForContextWindow, classifySingleItemBudgetTier, resolvePromptBudget, createProductionGateDeps, compileHardenedRuleEvaluator, ApprovalCompletionService, detectPromptReplacementTarget, buildOwnerRevisionArtifact, revisionDigest, buildPromotionEvidenceSnapshot, computeArtifactDigest, normalizeOwnerIdentity, verifyPiArtifactRowDigest, } from './activation/index.js';
365
362
  export type { ActivatedPrinciple, PromptActivationReaderResult, PromptSelectionPolicy, TrimToBudgetResult, PromptBudgetCapacitySource, PromptBudgetCapacityStatus, PromptBudgetFallbackReason, PromptBudgetResolution, PromptBudgetTierFit, PromptModelCatalog, PromptModelCatalogEntry, PromptBudgetHostCapacityFact, ResolvePromptBudgetInput, ApprovalCompletionInput, ApprovalCompletionResult, ArtifactDigestCheck, } from './activation/index.js';
366
363
  export { DEFAULT_GFI_POLICY, applyFriction, applyDecay, applyRelief, classifyGfiStage, createGfiSnapshot, } from './gfi/index.js';
367
364
  export type { GfiState, GfiEvent, GfiPolicy, GfiStage, GfiSource, GfiSnapshot, } from './gfi/index.js';