@principles/core 1.287.1 → 1.287.3

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 (1613) hide show
  1. package/dist/runtime-v2/activation/index.d.ts +2 -2
  2. package/dist/runtime-v2/activation/index.d.ts.map +1 -1
  3. package/dist/runtime-v2/activation/index.js +1 -1
  4. package/dist/runtime-v2/activation/index.js.map +1 -1
  5. package/dist/runtime-v2/activation/production-gate-deps.d.ts +9 -5
  6. package/dist/runtime-v2/activation/production-gate-deps.d.ts.map +1 -1
  7. package/dist/runtime-v2/activation/production-gate-deps.js +50 -10
  8. package/dist/runtime-v2/activation/production-gate-deps.js.map +1 -1
  9. package/dist/runtime-v2/activation/promotion-evidence-snapshot.d.ts +34 -0
  10. package/dist/runtime-v2/activation/promotion-evidence-snapshot.d.ts.map +1 -1
  11. package/dist/runtime-v2/activation/promotion-evidence-snapshot.js +57 -0
  12. package/dist/runtime-v2/activation/promotion-evidence-snapshot.js.map +1 -1
  13. package/dist/runtime-v2/{internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.d.ts → adapter/split-pipeline-fixtures.d.ts} +8 -4
  14. package/dist/runtime-v2/adapter/split-pipeline-fixtures.d.ts.map +1 -0
  15. package/dist/runtime-v2/{internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.js → adapter/split-pipeline-fixtures.js} +5 -1
  16. package/dist/runtime-v2/adapter/split-pipeline-fixtures.js.map +1 -0
  17. package/dist/runtime-v2/adapter/test-double-runtime-adapter.d.ts +1 -1
  18. package/dist/runtime-v2/adapter/test-double-runtime-adapter.js +2 -2
  19. package/dist/runtime-v2/adapter/test-double-runtime-adapter.js.map +1 -1
  20. package/dist/runtime-v2/bridge-result-shaper.d.ts +12 -0
  21. package/dist/runtime-v2/bridge-result-shaper.d.ts.map +1 -1
  22. package/dist/runtime-v2/bridge-result-shaper.js +8 -4
  23. package/dist/runtime-v2/bridge-result-shaper.js.map +1 -1
  24. package/dist/runtime-v2/candidate-intake-service.d.ts +54 -3
  25. package/dist/runtime-v2/candidate-intake-service.d.ts.map +1 -1
  26. package/dist/runtime-v2/candidate-intake-service.js +56 -4
  27. package/dist/runtime-v2/candidate-intake-service.js.map +1 -1
  28. package/dist/runtime-v2/index.d.ts +4 -3
  29. package/dist/runtime-v2/index.d.ts.map +1 -1
  30. package/dist/runtime-v2/index.js +2 -2
  31. package/dist/runtime-v2/index.js.map +1 -1
  32. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts +8 -5
  33. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts.map +1 -1
  34. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js +22 -5
  35. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js.map +1 -1
  36. package/dist/runtime-v2/pain-signal-bridge.d.ts.map +1 -1
  37. package/dist/runtime-v2/pain-signal-bridge.js +22 -2
  38. package/dist/runtime-v2/pain-signal-bridge.js.map +1 -1
  39. package/dist/runtime-v2/runner/diagnostician-validator.d.ts +5 -11
  40. package/dist/runtime-v2/runner/diagnostician-validator.d.ts.map +1 -1
  41. package/dist/runtime-v2/runner/diagnostician-validator.js +1 -10
  42. package/dist/runtime-v2/runner/diagnostician-validator.js.map +1 -1
  43. package/dist/runtime-v2/store/artifact/sqlite-artifact-store.d.ts.map +1 -1
  44. package/dist/runtime-v2/store/artifact/sqlite-artifact-store.js +4 -0
  45. package/dist/runtime-v2/store/artifact/sqlite-artifact-store.js.map +1 -1
  46. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.d.ts +22 -0
  47. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.d.ts.map +1 -1
  48. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js +13 -4
  49. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js.map +1 -1
  50. package/dist/runtime-v2/store/candidate/candidate-store.d.ts +19 -0
  51. package/dist/runtime-v2/store/candidate/candidate-store.d.ts.map +1 -1
  52. package/dist/runtime-v2/store/candidate/recommendation-kind-resolver.d.ts +39 -0
  53. package/dist/runtime-v2/store/candidate/recommendation-kind-resolver.d.ts.map +1 -1
  54. package/dist/runtime-v2/store/candidate/recommendation-kind-resolver.js +46 -0
  55. package/dist/runtime-v2/store/candidate/recommendation-kind-resolver.js.map +1 -1
  56. package/dist/runtime-v2/store/candidate/sqlite-candidate-store.d.ts.map +1 -1
  57. package/dist/runtime-v2/store/candidate/sqlite-candidate-store.js +4 -0
  58. package/dist/runtime-v2/store/candidate/sqlite-candidate-store.js.map +1 -1
  59. package/package.json +37 -3
  60. package/dist/evolution-store.test.d.ts +0 -2
  61. package/dist/evolution-store.test.d.ts.map +0 -1
  62. package/dist/evolution-store.test.js +0 -294
  63. package/dist/evolution-store.test.js.map +0 -1
  64. package/dist/host/__tests__/host-adapter.test.d.ts +0 -2
  65. package/dist/host/__tests__/host-adapter.test.d.ts.map +0 -1
  66. package/dist/host/__tests__/host-adapter.test.js +0 -108
  67. package/dist/host/__tests__/host-adapter.test.js.map +0 -1
  68. package/dist/principle-tree-ledger-lifecycle.test.d.ts +0 -2
  69. package/dist/principle-tree-ledger-lifecycle.test.d.ts.map +0 -1
  70. package/dist/principle-tree-ledger-lifecycle.test.js +0 -530
  71. package/dist/principle-tree-ledger-lifecycle.test.js.map +0 -1
  72. package/dist/prompt-builder/__tests__/attitude-directive.test.d.ts +0 -2
  73. package/dist/prompt-builder/__tests__/attitude-directive.test.d.ts.map +0 -1
  74. package/dist/prompt-builder/__tests__/attitude-directive.test.js +0 -49
  75. package/dist/prompt-builder/__tests__/attitude-directive.test.js.map +0 -1
  76. package/dist/prompt-builder/__tests__/correction-cue.test.d.ts +0 -2
  77. package/dist/prompt-builder/__tests__/correction-cue.test.d.ts.map +0 -1
  78. package/dist/prompt-builder/__tests__/correction-cue.test.js +0 -61
  79. package/dist/prompt-builder/__tests__/correction-cue.test.js.map +0 -1
  80. package/dist/prompt-builder/__tests__/empathy-keyword-matching.test.d.ts +0 -2
  81. package/dist/prompt-builder/__tests__/empathy-keyword-matching.test.d.ts.map +0 -1
  82. package/dist/prompt-builder/__tests__/empathy-keyword-matching.test.js +0 -380
  83. package/dist/prompt-builder/__tests__/empathy-keyword-matching.test.js.map +0 -1
  84. package/dist/prompt-builder/__tests__/focus-compression.test.d.ts +0 -2
  85. package/dist/prompt-builder/__tests__/focus-compression.test.d.ts.map +0 -1
  86. package/dist/prompt-builder/__tests__/focus-compression.test.js +0 -265
  87. package/dist/prompt-builder/__tests__/focus-compression.test.js.map +0 -1
  88. package/dist/prompt-builder/__tests__/message-extraction.test.d.ts +0 -2
  89. package/dist/prompt-builder/__tests__/message-extraction.test.d.ts.map +0 -1
  90. package/dist/prompt-builder/__tests__/message-extraction.test.js +0 -90
  91. package/dist/prompt-builder/__tests__/message-extraction.test.js.map +0 -1
  92. package/dist/prompt-builder/__tests__/minimal-trigger.test.d.ts +0 -2
  93. package/dist/prompt-builder/__tests__/minimal-trigger.test.d.ts.map +0 -1
  94. package/dist/prompt-builder/__tests__/minimal-trigger.test.js +0 -45
  95. package/dist/prompt-builder/__tests__/minimal-trigger.test.js.map +0 -1
  96. package/dist/prompt-builder/__tests__/model-config.test.d.ts +0 -2
  97. package/dist/prompt-builder/__tests__/model-config.test.d.ts.map +0 -1
  98. package/dist/prompt-builder/__tests__/model-config.test.js +0 -158
  99. package/dist/prompt-builder/__tests__/model-config.test.js.map +0 -1
  100. package/dist/prompt-builder/__tests__/principle-selection.test.d.ts +0 -7
  101. package/dist/prompt-builder/__tests__/principle-selection.test.d.ts.map +0 -1
  102. package/dist/prompt-builder/__tests__/principle-selection.test.js +0 -214
  103. package/dist/prompt-builder/__tests__/principle-selection.test.js.map +0 -1
  104. package/dist/prompt-builder/__tests__/prompt-builder-core.test.d.ts +0 -7
  105. package/dist/prompt-builder/__tests__/prompt-builder-core.test.d.ts.map +0 -1
  106. package/dist/prompt-builder/__tests__/prompt-builder-core.test.js +0 -341
  107. package/dist/prompt-builder/__tests__/prompt-builder-core.test.js.map +0 -1
  108. package/dist/prompt-builder/__tests__/routing-guidance.test.d.ts +0 -10
  109. package/dist/prompt-builder/__tests__/routing-guidance.test.d.ts.map +0 -1
  110. package/dist/prompt-builder/__tests__/routing-guidance.test.js +0 -304
  111. package/dist/prompt-builder/__tests__/routing-guidance.test.js.map +0 -1
  112. package/dist/prompt-builder/__tests__/xml-escape.test.d.ts +0 -2
  113. package/dist/prompt-builder/__tests__/xml-escape.test.d.ts.map +0 -1
  114. package/dist/prompt-builder/__tests__/xml-escape.test.js +0 -42
  115. package/dist/prompt-builder/__tests__/xml-escape.test.js.map +0 -1
  116. package/dist/quality-scorecard/__tests__/quality-scorecard.test.d.ts +0 -2
  117. package/dist/quality-scorecard/__tests__/quality-scorecard.test.d.ts.map +0 -1
  118. package/dist/quality-scorecard/__tests__/quality-scorecard.test.js +0 -929
  119. package/dist/quality-scorecard/__tests__/quality-scorecard.test.js.map +0 -1
  120. package/dist/quality-scorecard/__tests__/report-generator.test.d.ts +0 -2
  121. package/dist/quality-scorecard/__tests__/report-generator.test.d.ts.map +0 -1
  122. package/dist/quality-scorecard/__tests__/report-generator.test.js +0 -627
  123. package/dist/quality-scorecard/__tests__/report-generator.test.js.map +0 -1
  124. package/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.d.ts +0 -2
  125. package/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.d.ts.map +0 -1
  126. package/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.js +0 -148
  127. package/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.js.map +0 -1
  128. package/dist/runtime-v2/__tests__/activation-types-helpers.test.d.ts +0 -20
  129. package/dist/runtime-v2/__tests__/activation-types-helpers.test.d.ts.map +0 -1
  130. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js +0 -215
  131. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js.map +0 -1
  132. package/dist/runtime-v2/__tests__/admission-gate.test.d.ts +0 -2
  133. package/dist/runtime-v2/__tests__/admission-gate.test.d.ts.map +0 -1
  134. package/dist/runtime-v2/__tests__/admission-gate.test.js +0 -307
  135. package/dist/runtime-v2/__tests__/admission-gate.test.js.map +0 -1
  136. package/dist/runtime-v2/__tests__/adversarial-loop.test.d.ts +0 -2
  137. package/dist/runtime-v2/__tests__/adversarial-loop.test.d.ts.map +0 -1
  138. package/dist/runtime-v2/__tests__/adversarial-loop.test.js +0 -446
  139. package/dist/runtime-v2/__tests__/adversarial-loop.test.js.map +0 -1
  140. package/dist/runtime-v2/__tests__/append-event-log-line.test.d.ts +0 -2
  141. package/dist/runtime-v2/__tests__/append-event-log-line.test.d.ts.map +0 -1
  142. package/dist/runtime-v2/__tests__/append-event-log-line.test.js +0 -47
  143. package/dist/runtime-v2/__tests__/append-event-log-line.test.js.map +0 -1
  144. package/dist/runtime-v2/__tests__/architecture-regression.test.d.ts +0 -2
  145. package/dist/runtime-v2/__tests__/architecture-regression.test.d.ts.map +0 -1
  146. package/dist/runtime-v2/__tests__/architecture-regression.test.js +0 -3845
  147. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +0 -1
  148. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.d.ts +0 -2
  149. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.d.ts.map +0 -1
  150. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js +0 -1923
  151. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js.map +0 -1
  152. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.d.ts +0 -20
  153. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.d.ts.map +0 -1
  154. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js +0 -578
  155. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js.map +0 -1
  156. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.d.ts +0 -12
  157. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.d.ts.map +0 -1
  158. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.js +0 -46
  159. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.js.map +0 -1
  160. package/dist/runtime-v2/__tests__/bridge-result-shaper.test.d.ts +0 -26
  161. package/dist/runtime-v2/__tests__/bridge-result-shaper.test.d.ts.map +0 -1
  162. package/dist/runtime-v2/__tests__/bridge-result-shaper.test.js +0 -450
  163. package/dist/runtime-v2/__tests__/bridge-result-shaper.test.js.map +0 -1
  164. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.d.ts +0 -2
  165. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.d.ts.map +0 -1
  166. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.js +0 -169
  167. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.js.map +0 -1
  168. package/dist/runtime-v2/__tests__/build-l2-principle-reader.test.d.ts +0 -2
  169. package/dist/runtime-v2/__tests__/build-l2-principle-reader.test.d.ts.map +0 -1
  170. package/dist/runtime-v2/__tests__/build-l2-principle-reader.test.js +0 -200
  171. package/dist/runtime-v2/__tests__/build-l2-principle-reader.test.js.map +0 -1
  172. package/dist/runtime-v2/__tests__/candidate-audit.test.d.ts +0 -2
  173. package/dist/runtime-v2/__tests__/candidate-audit.test.d.ts.map +0 -1
  174. package/dist/runtime-v2/__tests__/candidate-audit.test.js +0 -100
  175. package/dist/runtime-v2/__tests__/candidate-audit.test.js.map +0 -1
  176. package/dist/runtime-v2/__tests__/chain-integrity-attack.test.d.ts +0 -2
  177. package/dist/runtime-v2/__tests__/chain-integrity-attack.test.d.ts.map +0 -1
  178. package/dist/runtime-v2/__tests__/chain-integrity-attack.test.js +0 -293
  179. package/dist/runtime-v2/__tests__/chain-integrity-attack.test.js.map +0 -1
  180. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.d.ts +0 -2
  181. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.d.ts.map +0 -1
  182. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.js +0 -590
  183. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.js.map +0 -1
  184. package/dist/runtime-v2/__tests__/context-payload-validation.test.d.ts +0 -11
  185. package/dist/runtime-v2/__tests__/context-payload-validation.test.d.ts.map +0 -1
  186. package/dist/runtime-v2/__tests__/context-payload-validation.test.js +0 -309
  187. package/dist/runtime-v2/__tests__/context-payload-validation.test.js.map +0 -1
  188. package/dist/runtime-v2/__tests__/control-plane-triage.test.d.ts +0 -2
  189. package/dist/runtime-v2/__tests__/control-plane-triage.test.d.ts.map +0 -1
  190. package/dist/runtime-v2/__tests__/control-plane-triage.test.js +0 -107
  191. package/dist/runtime-v2/__tests__/control-plane-triage.test.js.map +0 -1
  192. package/dist/runtime-v2/__tests__/correction-proposal.test.d.ts +0 -2
  193. package/dist/runtime-v2/__tests__/correction-proposal.test.d.ts.map +0 -1
  194. package/dist/runtime-v2/__tests__/correction-proposal.test.js +0 -486
  195. package/dist/runtime-v2/__tests__/correction-proposal.test.js.map +0 -1
  196. package/dist/runtime-v2/__tests__/diagnostician-output-schema.test.d.ts +0 -25
  197. package/dist/runtime-v2/__tests__/diagnostician-output-schema.test.d.ts.map +0 -1
  198. package/dist/runtime-v2/__tests__/diagnostician-output-schema.test.js +0 -405
  199. package/dist/runtime-v2/__tests__/diagnostician-output-schema.test.js.map +0 -1
  200. package/dist/runtime-v2/__tests__/dreamer-output-validator.test.d.ts +0 -2
  201. package/dist/runtime-v2/__tests__/dreamer-output-validator.test.d.ts.map +0 -1
  202. package/dist/runtime-v2/__tests__/dreamer-output-validator.test.js +0 -171
  203. package/dist/runtime-v2/__tests__/dreamer-output-validator.test.js.map +0 -1
  204. package/dist/runtime-v2/__tests__/dreamer-runner-real-llm.test.d.ts +0 -2
  205. package/dist/runtime-v2/__tests__/dreamer-runner-real-llm.test.d.ts.map +0 -1
  206. package/dist/runtime-v2/__tests__/dreamer-runner-real-llm.test.js +0 -155
  207. package/dist/runtime-v2/__tests__/dreamer-runner-real-llm.test.js.map +0 -1
  208. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.d.ts +0 -2
  209. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.d.ts.map +0 -1
  210. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.js +0 -539
  211. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.js.map +0 -1
  212. package/dist/runtime-v2/__tests__/dreamer-runner.test.d.ts +0 -2
  213. package/dist/runtime-v2/__tests__/dreamer-runner.test.d.ts.map +0 -1
  214. package/dist/runtime-v2/__tests__/dreamer-runner.test.js +0 -366
  215. package/dist/runtime-v2/__tests__/dreamer-runner.test.js.map +0 -1
  216. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.d.ts +0 -2
  217. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.d.ts.map +0 -1
  218. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.js +0 -208
  219. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.js.map +0 -1
  220. package/dist/runtime-v2/__tests__/error-categories.test.d.ts +0 -2
  221. package/dist/runtime-v2/__tests__/error-categories.test.d.ts.map +0 -1
  222. package/dist/runtime-v2/__tests__/error-categories.test.js +0 -150
  223. package/dist/runtime-v2/__tests__/error-categories.test.js.map +0 -1
  224. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.d.ts +0 -2
  225. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.d.ts.map +0 -1
  226. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.js +0 -675
  227. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.js.map +0 -1
  228. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.d.ts +0 -2
  229. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.d.ts.map +0 -1
  230. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js +0 -1000
  231. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js.map +0 -1
  232. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.d.ts +0 -2
  233. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.d.ts.map +0 -1
  234. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js +0 -1330
  235. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js.map +0 -1
  236. package/dist/runtime-v2/__tests__/event-types-runid.test.d.ts +0 -2
  237. package/dist/runtime-v2/__tests__/event-types-runid.test.d.ts.map +0 -1
  238. package/dist/runtime-v2/__tests__/event-types-runid.test.js +0 -28
  239. package/dist/runtime-v2/__tests__/event-types-runid.test.js.map +0 -1
  240. package/dist/runtime-v2/__tests__/evidence-chain-contract.test.d.ts +0 -2
  241. package/dist/runtime-v2/__tests__/evidence-chain-contract.test.d.ts.map +0 -1
  242. package/dist/runtime-v2/__tests__/evidence-chain-contract.test.js +0 -344
  243. package/dist/runtime-v2/__tests__/evidence-chain-contract.test.js.map +0 -1
  244. package/dist/runtime-v2/__tests__/evidence-chain-host-kind.test.d.ts +0 -2
  245. package/dist/runtime-v2/__tests__/evidence-chain-host-kind.test.d.ts.map +0 -1
  246. package/dist/runtime-v2/__tests__/evidence-chain-host-kind.test.js +0 -49
  247. package/dist/runtime-v2/__tests__/evidence-chain-host-kind.test.js.map +0 -1
  248. package/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.d.ts +0 -2
  249. package/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.d.ts.map +0 -1
  250. package/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.js +0 -284
  251. package/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.js.map +0 -1
  252. package/dist/runtime-v2/__tests__/evidence-guards.test.d.ts +0 -18
  253. package/dist/runtime-v2/__tests__/evidence-guards.test.d.ts.map +0 -1
  254. package/dist/runtime-v2/__tests__/evidence-guards.test.js +0 -155
  255. package/dist/runtime-v2/__tests__/evidence-guards.test.js.map +0 -1
  256. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.d.ts +0 -21
  257. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.d.ts.map +0 -1
  258. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.js +0 -581
  259. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.js.map +0 -1
  260. package/dist/runtime-v2/__tests__/feedback/create-report.test.d.ts +0 -2
  261. package/dist/runtime-v2/__tests__/feedback/create-report.test.d.ts.map +0 -1
  262. package/dist/runtime-v2/__tests__/feedback/create-report.test.js +0 -453
  263. package/dist/runtime-v2/__tests__/feedback/create-report.test.js.map +0 -1
  264. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.d.ts +0 -2
  265. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.d.ts.map +0 -1
  266. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js +0 -128
  267. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js.map +0 -1
  268. package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.d.ts +0 -2
  269. package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.d.ts.map +0 -1
  270. package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.js +0 -361
  271. package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.js.map +0 -1
  272. package/dist/runtime-v2/__tests__/feedback/render-github-url.test.d.ts +0 -2
  273. package/dist/runtime-v2/__tests__/feedback/render-github-url.test.d.ts.map +0 -1
  274. package/dist/runtime-v2/__tests__/feedback/render-github-url.test.js +0 -102
  275. package/dist/runtime-v2/__tests__/feedback/render-github-url.test.js.map +0 -1
  276. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.d.ts +0 -2
  277. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.d.ts.map +0 -1
  278. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js +0 -130
  279. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js.map +0 -1
  280. package/dist/runtime-v2/__tests__/fixtures/index.d.ts +0 -4
  281. package/dist/runtime-v2/__tests__/fixtures/index.d.ts.map +0 -1
  282. package/dist/runtime-v2/__tests__/fixtures/index.js +0 -3
  283. package/dist/runtime-v2/__tests__/fixtures/index.js.map +0 -1
  284. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.d.ts +0 -20
  285. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.d.ts.map +0 -1
  286. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.js +0 -42
  287. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.js.map +0 -1
  288. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.test.d.ts +0 -2
  289. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.test.d.ts.map +0 -1
  290. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.test.js +0 -101
  291. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.test.js.map +0 -1
  292. package/dist/runtime-v2/__tests__/fixtures/test-helpers.d.ts +0 -20
  293. package/dist/runtime-v2/__tests__/fixtures/test-helpers.d.ts.map +0 -1
  294. package/dist/runtime-v2/__tests__/fixtures/test-helpers.js +0 -37
  295. package/dist/runtime-v2/__tests__/fixtures/test-helpers.js.map +0 -1
  296. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.d.ts +0 -2
  297. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.d.ts.map +0 -1
  298. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.js +0 -152
  299. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.js.map +0 -1
  300. package/dist/runtime-v2/__tests__/full-trace-contract.test.d.ts +0 -2
  301. package/dist/runtime-v2/__tests__/full-trace-contract.test.d.ts.map +0 -1
  302. package/dist/runtime-v2/__tests__/full-trace-contract.test.js +0 -552
  303. package/dist/runtime-v2/__tests__/full-trace-contract.test.js.map +0 -1
  304. package/dist/runtime-v2/__tests__/gfi-workspace-health.test.d.ts +0 -2
  305. package/dist/runtime-v2/__tests__/gfi-workspace-health.test.d.ts.map +0 -1
  306. package/dist/runtime-v2/__tests__/gfi-workspace-health.test.js +0 -128
  307. package/dist/runtime-v2/__tests__/gfi-workspace-health.test.js.map +0 -1
  308. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.d.ts +0 -2
  309. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.d.ts.map +0 -1
  310. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js +0 -372
  311. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js.map +0 -1
  312. package/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.d.ts +0 -2
  313. package/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.d.ts.map +0 -1
  314. package/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js +0 -301
  315. package/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js.map +0 -1
  316. package/dist/runtime-v2/__tests__/golden-trace.test.d.ts +0 -2
  317. package/dist/runtime-v2/__tests__/golden-trace.test.d.ts.map +0 -1
  318. package/dist/runtime-v2/__tests__/golden-trace.test.js +0 -470
  319. package/dist/runtime-v2/__tests__/golden-trace.test.js.map +0 -1
  320. package/dist/runtime-v2/__tests__/governance-experience.test.d.ts +0 -2
  321. package/dist/runtime-v2/__tests__/governance-experience.test.d.ts.map +0 -1
  322. package/dist/runtime-v2/__tests__/governance-experience.test.js +0 -319
  323. package/dist/runtime-v2/__tests__/governance-experience.test.js.map +0 -1
  324. package/dist/runtime-v2/__tests__/governance-projection-contract.test.d.ts +0 -2
  325. package/dist/runtime-v2/__tests__/governance-projection-contract.test.d.ts.map +0 -1
  326. package/dist/runtime-v2/__tests__/governance-projection-contract.test.js +0 -78
  327. package/dist/runtime-v2/__tests__/governance-projection-contract.test.js.map +0 -1
  328. package/dist/runtime-v2/__tests__/governance-projection.test.d.ts +0 -2
  329. package/dist/runtime-v2/__tests__/governance-projection.test.d.ts.map +0 -1
  330. package/dist/runtime-v2/__tests__/governance-projection.test.js +0 -154
  331. package/dist/runtime-v2/__tests__/governance-projection.test.js.map +0 -1
  332. package/dist/runtime-v2/__tests__/governance-timestamp-schema.test.d.ts +0 -2
  333. package/dist/runtime-v2/__tests__/governance-timestamp-schema.test.d.ts.map +0 -1
  334. package/dist/runtime-v2/__tests__/governance-timestamp-schema.test.js +0 -81
  335. package/dist/runtime-v2/__tests__/governance-timestamp-schema.test.js.map +0 -1
  336. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.d.ts +0 -2
  337. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.d.ts.map +0 -1
  338. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.js +0 -540
  339. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.js.map +0 -1
  340. package/dist/runtime-v2/__tests__/internalization-chain-integrity-read-model.test.d.ts +0 -2
  341. package/dist/runtime-v2/__tests__/internalization-chain-integrity-read-model.test.d.ts.map +0 -1
  342. package/dist/runtime-v2/__tests__/internalization-chain-integrity-read-model.test.js +0 -531
  343. package/dist/runtime-v2/__tests__/internalization-chain-integrity-read-model.test.js.map +0 -1
  344. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.d.ts +0 -2
  345. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.d.ts.map +0 -1
  346. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.js +0 -226
  347. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.js.map +0 -1
  348. package/dist/runtime-v2/__tests__/internalization-contracts.test.d.ts +0 -2
  349. package/dist/runtime-v2/__tests__/internalization-contracts.test.d.ts.map +0 -1
  350. package/dist/runtime-v2/__tests__/internalization-contracts.test.js +0 -76
  351. package/dist/runtime-v2/__tests__/internalization-contracts.test.js.map +0 -1
  352. package/dist/runtime-v2/__tests__/internalization-failure-persistence.test.d.ts +0 -2
  353. package/dist/runtime-v2/__tests__/internalization-failure-persistence.test.d.ts.map +0 -1
  354. package/dist/runtime-v2/__tests__/internalization-failure-persistence.test.js +0 -153
  355. package/dist/runtime-v2/__tests__/internalization-failure-persistence.test.js.map +0 -1
  356. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.d.ts +0 -2
  357. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.d.ts.map +0 -1
  358. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.js +0 -738
  359. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.js.map +0 -1
  360. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.d.ts +0 -2
  361. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.d.ts.map +0 -1
  362. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.js +0 -651
  363. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.js.map +0 -1
  364. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.d.ts +0 -2
  365. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.d.ts.map +0 -1
  366. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js +0 -419
  367. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js.map +0 -1
  368. package/dist/runtime-v2/__tests__/internalization-queue-read-model.test.d.ts +0 -2
  369. package/dist/runtime-v2/__tests__/internalization-queue-read-model.test.d.ts.map +0 -1
  370. package/dist/runtime-v2/__tests__/internalization-queue-read-model.test.js +0 -414
  371. package/dist/runtime-v2/__tests__/internalization-queue-read-model.test.js.map +0 -1
  372. package/dist/runtime-v2/__tests__/internalization-route.test.d.ts +0 -2
  373. package/dist/runtime-v2/__tests__/internalization-route.test.d.ts.map +0 -1
  374. package/dist/runtime-v2/__tests__/internalization-route.test.js +0 -136
  375. package/dist/runtime-v2/__tests__/internalization-route.test.js.map +0 -1
  376. package/dist/runtime-v2/__tests__/internalization-state-machine.test.d.ts +0 -2
  377. package/dist/runtime-v2/__tests__/internalization-state-machine.test.d.ts.map +0 -1
  378. package/dist/runtime-v2/__tests__/internalization-state-machine.test.js +0 -585
  379. package/dist/runtime-v2/__tests__/internalization-state-machine.test.js.map +0 -1
  380. package/dist/runtime-v2/__tests__/io-deletion.test.d.ts +0 -12
  381. package/dist/runtime-v2/__tests__/io-deletion.test.d.ts.map +0 -1
  382. package/dist/runtime-v2/__tests__/io-deletion.test.js +0 -92
  383. package/dist/runtime-v2/__tests__/io-deletion.test.js.map +0 -1
  384. package/dist/runtime-v2/__tests__/l1-hard-cap.test.d.ts +0 -2
  385. package/dist/runtime-v2/__tests__/l1-hard-cap.test.d.ts.map +0 -1
  386. package/dist/runtime-v2/__tests__/l1-hard-cap.test.js +0 -157
  387. package/dist/runtime-v2/__tests__/l1-hard-cap.test.js.map +0 -1
  388. package/dist/runtime-v2/__tests__/language-directive.test.d.ts +0 -12
  389. package/dist/runtime-v2/__tests__/language-directive.test.d.ts.map +0 -1
  390. package/dist/runtime-v2/__tests__/language-directive.test.js +0 -162
  391. package/dist/runtime-v2/__tests__/language-directive.test.js.map +0 -1
  392. package/dist/runtime-v2/__tests__/ledger-codec.test.d.ts +0 -2
  393. package/dist/runtime-v2/__tests__/ledger-codec.test.d.ts.map +0 -1
  394. package/dist/runtime-v2/__tests__/ledger-codec.test.js +0 -429
  395. package/dist/runtime-v2/__tests__/ledger-codec.test.js.map +0 -1
  396. package/dist/runtime-v2/__tests__/ledger-store.test.d.ts +0 -2
  397. package/dist/runtime-v2/__tests__/ledger-store.test.d.ts.map +0 -1
  398. package/dist/runtime-v2/__tests__/ledger-store.test.js +0 -65
  399. package/dist/runtime-v2/__tests__/ledger-store.test.js.map +0 -1
  400. package/dist/runtime-v2/__tests__/mainline-contract.test.d.ts +0 -2
  401. package/dist/runtime-v2/__tests__/mainline-contract.test.d.ts.map +0 -1
  402. package/dist/runtime-v2/__tests__/mainline-contract.test.js +0 -194
  403. package/dist/runtime-v2/__tests__/mainline-contract.test.js.map +0 -1
  404. package/dist/runtime-v2/__tests__/mainline-product-path.test.d.ts +0 -2
  405. package/dist/runtime-v2/__tests__/mainline-product-path.test.d.ts.map +0 -1
  406. package/dist/runtime-v2/__tests__/mainline-product-path.test.js +0 -429
  407. package/dist/runtime-v2/__tests__/mainline-product-path.test.js.map +0 -1
  408. package/dist/runtime-v2/__tests__/operator-health-cold-start-guard.test.d.ts +0 -2
  409. package/dist/runtime-v2/__tests__/operator-health-cold-start-guard.test.d.ts.map +0 -1
  410. package/dist/runtime-v2/__tests__/operator-health-cold-start-guard.test.js +0 -102
  411. package/dist/runtime-v2/__tests__/operator-health-cold-start-guard.test.js.map +0 -1
  412. package/dist/runtime-v2/__tests__/operator-health-gfi-degraded.test.d.ts +0 -2
  413. package/dist/runtime-v2/__tests__/operator-health-gfi-degraded.test.d.ts.map +0 -1
  414. package/dist/runtime-v2/__tests__/operator-health-gfi-degraded.test.js +0 -148
  415. package/dist/runtime-v2/__tests__/operator-health-gfi-degraded.test.js.map +0 -1
  416. package/dist/runtime-v2/__tests__/operator-health-gfi.test.d.ts +0 -2
  417. package/dist/runtime-v2/__tests__/operator-health-gfi.test.d.ts.map +0 -1
  418. package/dist/runtime-v2/__tests__/operator-health-gfi.test.js +0 -113
  419. package/dist/runtime-v2/__tests__/operator-health-gfi.test.js.map +0 -1
  420. package/dist/runtime-v2/__tests__/operator-health-read-model.test.d.ts +0 -2
  421. package/dist/runtime-v2/__tests__/operator-health-read-model.test.d.ts.map +0 -1
  422. package/dist/runtime-v2/__tests__/operator-health-read-model.test.js +0 -136
  423. package/dist/runtime-v2/__tests__/operator-health-read-model.test.js.map +0 -1
  424. package/dist/runtime-v2/__tests__/owner-identity.test.d.ts +0 -2
  425. package/dist/runtime-v2/__tests__/owner-identity.test.d.ts.map +0 -1
  426. package/dist/runtime-v2/__tests__/owner-identity.test.js +0 -147
  427. package/dist/runtime-v2/__tests__/owner-identity.test.js.map +0 -1
  428. package/dist/runtime-v2/__tests__/owner-retry.test.d.ts +0 -2
  429. package/dist/runtime-v2/__tests__/owner-retry.test.d.ts.map +0 -1
  430. package/dist/runtime-v2/__tests__/owner-retry.test.js +0 -144
  431. package/dist/runtime-v2/__tests__/owner-retry.test.js.map +0 -1
  432. package/dist/runtime-v2/__tests__/pain-chain-read-model.test.d.ts +0 -2
  433. package/dist/runtime-v2/__tests__/pain-chain-read-model.test.d.ts.map +0 -1
  434. package/dist/runtime-v2/__tests__/pain-chain-read-model.test.js +0 -247
  435. package/dist/runtime-v2/__tests__/pain-chain-read-model.test.js.map +0 -1
  436. package/dist/runtime-v2/__tests__/pain-correction-evidence.test.d.ts +0 -2
  437. package/dist/runtime-v2/__tests__/pain-correction-evidence.test.d.ts.map +0 -1
  438. package/dist/runtime-v2/__tests__/pain-correction-evidence.test.js +0 -37
  439. package/dist/runtime-v2/__tests__/pain-correction-evidence.test.js.map +0 -1
  440. package/dist/runtime-v2/__tests__/pain-diagnosis-persistence.test.d.ts +0 -2
  441. package/dist/runtime-v2/__tests__/pain-diagnosis-persistence.test.d.ts.map +0 -1
  442. package/dist/runtime-v2/__tests__/pain-diagnosis-persistence.test.js +0 -293
  443. package/dist/runtime-v2/__tests__/pain-diagnosis-persistence.test.js.map +0 -1
  444. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.d.ts +0 -2
  445. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.d.ts.map +0 -1
  446. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js +0 -331
  447. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js.map +0 -1
  448. package/dist/runtime-v2/__tests__/pain-flood-simulation.test.d.ts +0 -2
  449. package/dist/runtime-v2/__tests__/pain-flood-simulation.test.d.ts.map +0 -1
  450. package/dist/runtime-v2/__tests__/pain-flood-simulation.test.js +0 -267
  451. package/dist/runtime-v2/__tests__/pain-flood-simulation.test.js.map +0 -1
  452. package/dist/runtime-v2/__tests__/pain-ingress-persistence.test.d.ts +0 -2
  453. package/dist/runtime-v2/__tests__/pain-ingress-persistence.test.d.ts.map +0 -1
  454. package/dist/runtime-v2/__tests__/pain-ingress-persistence.test.js +0 -276
  455. package/dist/runtime-v2/__tests__/pain-ingress-persistence.test.js.map +0 -1
  456. package/dist/runtime-v2/__tests__/pain-ingress-shared-semantics.test.d.ts +0 -2
  457. package/dist/runtime-v2/__tests__/pain-ingress-shared-semantics.test.d.ts.map +0 -1
  458. package/dist/runtime-v2/__tests__/pain-ingress-shared-semantics.test.js +0 -131
  459. package/dist/runtime-v2/__tests__/pain-ingress-shared-semantics.test.js.map +0 -1
  460. package/dist/runtime-v2/__tests__/pain-outcome-convergence.test.d.ts +0 -2
  461. package/dist/runtime-v2/__tests__/pain-outcome-convergence.test.d.ts.map +0 -1
  462. package/dist/runtime-v2/__tests__/pain-outcome-convergence.test.js +0 -126
  463. package/dist/runtime-v2/__tests__/pain-outcome-convergence.test.js.map +0 -1
  464. package/dist/runtime-v2/__tests__/pain-signal-bridge-execute-pending.test.d.ts +0 -2
  465. package/dist/runtime-v2/__tests__/pain-signal-bridge-execute-pending.test.d.ts.map +0 -1
  466. package/dist/runtime-v2/__tests__/pain-signal-bridge-execute-pending.test.js +0 -201
  467. package/dist/runtime-v2/__tests__/pain-signal-bridge-execute-pending.test.js.map +0 -1
  468. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.d.ts +0 -2
  469. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.d.ts.map +0 -1
  470. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js +0 -500
  471. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js.map +0 -1
  472. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.d.ts +0 -2
  473. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.d.ts.map +0 -1
  474. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js +0 -151
  475. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js.map +0 -1
  476. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.d.ts +0 -2
  477. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.d.ts.map +0 -1
  478. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.js +0 -211
  479. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.js.map +0 -1
  480. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.d.ts +0 -2
  481. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.d.ts.map +0 -1
  482. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.js +0 -182
  483. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.js.map +0 -1
  484. package/dist/runtime-v2/__tests__/pain-signal-observability.test.d.ts +0 -2
  485. package/dist/runtime-v2/__tests__/pain-signal-observability.test.d.ts.map +0 -1
  486. package/dist/runtime-v2/__tests__/pain-signal-observability.test.js +0 -556
  487. package/dist/runtime-v2/__tests__/pain-signal-observability.test.js.map +0 -1
  488. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-edge-cases.test.d.ts +0 -8
  489. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-edge-cases.test.d.ts.map +0 -1
  490. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-edge-cases.test.js +0 -171
  491. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-edge-cases.test.js.map +0 -1
  492. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-effectiveconfig-wiring.test.d.ts +0 -2
  493. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-effectiveconfig-wiring.test.d.ts.map +0 -1
  494. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-effectiveconfig-wiring.test.js +0 -109
  495. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-effectiveconfig-wiring.test.js.map +0 -1
  496. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.d.ts +0 -2
  497. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.d.ts.map +0 -1
  498. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js +0 -317
  499. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js.map +0 -1
  500. package/dist/runtime-v2/__tests__/philosopher-runner-real-llm.test.d.ts +0 -2
  501. package/dist/runtime-v2/__tests__/philosopher-runner-real-llm.test.d.ts.map +0 -1
  502. package/dist/runtime-v2/__tests__/philosopher-runner-real-llm.test.js +0 -167
  503. package/dist/runtime-v2/__tests__/philosopher-runner-real-llm.test.js.map +0 -1
  504. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.d.ts +0 -2
  505. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.d.ts.map +0 -1
  506. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.js +0 -342
  507. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.js.map +0 -1
  508. package/dist/runtime-v2/__tests__/pi-artifact-store.test.d.ts +0 -2
  509. package/dist/runtime-v2/__tests__/pi-artifact-store.test.d.ts.map +0 -1
  510. package/dist/runtime-v2/__tests__/pi-artifact-store.test.js +0 -258
  511. package/dist/runtime-v2/__tests__/pi-artifact-store.test.js.map +0 -1
  512. package/dist/runtime-v2/__tests__/pitask-metadata.test.d.ts +0 -8
  513. package/dist/runtime-v2/__tests__/pitask-metadata.test.d.ts.map +0 -1
  514. package/dist/runtime-v2/__tests__/pitask-metadata.test.js +0 -514
  515. package/dist/runtime-v2/__tests__/pitask-metadata.test.js.map +0 -1
  516. package/dist/runtime-v2/__tests__/pri638-diagnostician-capability-characterization.test.d.ts +0 -27
  517. package/dist/runtime-v2/__tests__/pri638-diagnostician-capability-characterization.test.d.ts.map +0 -1
  518. package/dist/runtime-v2/__tests__/pri638-diagnostician-capability-characterization.test.js +0 -449
  519. package/dist/runtime-v2/__tests__/pri638-diagnostician-capability-characterization.test.js.map +0 -1
  520. package/dist/runtime-v2/__tests__/pri638-p1d-error-classification.test.d.ts +0 -2
  521. package/dist/runtime-v2/__tests__/pri638-p1d-error-classification.test.d.ts.map +0 -1
  522. package/dist/runtime-v2/__tests__/pri638-p1d-error-classification.test.js +0 -116
  523. package/dist/runtime-v2/__tests__/pri638-p1d-error-classification.test.js.map +0 -1
  524. package/dist/runtime-v2/__tests__/principle-compiler-core.test.d.ts +0 -2
  525. package/dist/runtime-v2/__tests__/principle-compiler-core.test.d.ts.map +0 -1
  526. package/dist/runtime-v2/__tests__/principle-compiler-core.test.js +0 -219
  527. package/dist/runtime-v2/__tests__/principle-compiler-core.test.js.map +0 -1
  528. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.d.ts +0 -18
  529. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.d.ts.map +0 -1
  530. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.js +0 -303
  531. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.js.map +0 -1
  532. package/dist/runtime-v2/__tests__/production-canary-fixture-gate.test.d.ts +0 -2
  533. package/dist/runtime-v2/__tests__/production-canary-fixture-gate.test.d.ts.map +0 -1
  534. package/dist/runtime-v2/__tests__/production-canary-fixture-gate.test.js +0 -524
  535. package/dist/runtime-v2/__tests__/production-canary-fixture-gate.test.js.map +0 -1
  536. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.d.ts +0 -2
  537. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.d.ts.map +0 -1
  538. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +0 -452
  539. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +0 -1
  540. package/dist/runtime-v2/__tests__/pruning-mask.test.d.ts +0 -25
  541. package/dist/runtime-v2/__tests__/pruning-mask.test.d.ts.map +0 -1
  542. package/dist/runtime-v2/__tests__/pruning-mask.test.js +0 -281
  543. package/dist/runtime-v2/__tests__/pruning-mask.test.js.map +0 -1
  544. package/dist/runtime-v2/__tests__/pruning-read-model.test.d.ts +0 -2
  545. package/dist/runtime-v2/__tests__/pruning-read-model.test.d.ts.map +0 -1
  546. package/dist/runtime-v2/__tests__/pruning-read-model.test.js +0 -788
  547. package/dist/runtime-v2/__tests__/pruning-read-model.test.js.map +0 -1
  548. package/dist/runtime-v2/__tests__/pruning-review-log.test.d.ts +0 -2
  549. package/dist/runtime-v2/__tests__/pruning-review-log.test.d.ts.map +0 -1
  550. package/dist/runtime-v2/__tests__/pruning-review-log.test.js +0 -159
  551. package/dist/runtime-v2/__tests__/pruning-review-log.test.js.map +0 -1
  552. package/dist/runtime-v2/__tests__/recovery-actions-log.test.d.ts +0 -2
  553. package/dist/runtime-v2/__tests__/recovery-actions-log.test.d.ts.map +0 -1
  554. package/dist/runtime-v2/__tests__/recovery-actions-log.test.js +0 -152
  555. package/dist/runtime-v2/__tests__/recovery-actions-log.test.js.map +0 -1
  556. package/dist/runtime-v2/__tests__/recovery-sweep-service.test.d.ts +0 -2
  557. package/dist/runtime-v2/__tests__/recovery-sweep-service.test.d.ts.map +0 -1
  558. package/dist/runtime-v2/__tests__/recovery-sweep-service.test.js +0 -213
  559. package/dist/runtime-v2/__tests__/recovery-sweep-service.test.js.map +0 -1
  560. package/dist/runtime-v2/__tests__/remediation-contract.test.d.ts +0 -2
  561. package/dist/runtime-v2/__tests__/remediation-contract.test.d.ts.map +0 -1
  562. package/dist/runtime-v2/__tests__/remediation-contract.test.js +0 -39
  563. package/dist/runtime-v2/__tests__/remediation-contract.test.js.map +0 -1
  564. package/dist/runtime-v2/__tests__/replay-production-parity.test.d.ts +0 -13
  565. package/dist/runtime-v2/__tests__/replay-production-parity.test.d.ts.map +0 -1
  566. package/dist/runtime-v2/__tests__/replay-production-parity.test.js +0 -133
  567. package/dist/runtime-v2/__tests__/replay-production-parity.test.js.map +0 -1
  568. package/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.d.ts +0 -12
  569. package/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.d.ts.map +0 -1
  570. package/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.js +0 -298
  571. package/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.js.map +0 -1
  572. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.d.ts +0 -2
  573. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.d.ts.map +0 -1
  574. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.js +0 -791
  575. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.js.map +0 -1
  576. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.d.ts +0 -2
  577. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.d.ts.map +0 -1
  578. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.js +0 -255
  579. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.js.map +0 -1
  580. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.d.ts +0 -2
  581. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.d.ts.map +0 -1
  582. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.js +0 -243
  583. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.js.map +0 -1
  584. package/dist/runtime-v2/__tests__/rule-host-evaluator.test.d.ts +0 -2
  585. package/dist/runtime-v2/__tests__/rule-host-evaluator.test.d.ts.map +0 -1
  586. package/dist/runtime-v2/__tests__/rule-host-evaluator.test.js +0 -509
  587. package/dist/runtime-v2/__tests__/rule-host-evaluator.test.js.map +0 -1
  588. package/dist/runtime-v2/__tests__/rulehost-oob-defense-simulation.test.d.ts +0 -2
  589. package/dist/runtime-v2/__tests__/rulehost-oob-defense-simulation.test.d.ts.map +0 -1
  590. package/dist/runtime-v2/__tests__/rulehost-oob-defense-simulation.test.js +0 -535
  591. package/dist/runtime-v2/__tests__/rulehost-oob-defense-simulation.test.js.map +0 -1
  592. package/dist/runtime-v2/__tests__/runtime-config-boundary.test.d.ts +0 -2
  593. package/dist/runtime-v2/__tests__/runtime-config-boundary.test.d.ts.map +0 -1
  594. package/dist/runtime-v2/__tests__/runtime-config-boundary.test.js +0 -258
  595. package/dist/runtime-v2/__tests__/runtime-config-boundary.test.js.map +0 -1
  596. package/dist/runtime-v2/__tests__/runtime-state-handle.test.d.ts +0 -2
  597. package/dist/runtime-v2/__tests__/runtime-state-handle.test.d.ts.map +0 -1
  598. package/dist/runtime-v2/__tests__/runtime-state-handle.test.js +0 -76
  599. package/dist/runtime-v2/__tests__/runtime-state-handle.test.js.map +0 -1
  600. package/dist/runtime-v2/__tests__/schema-conformance-read-model.test.d.ts +0 -2
  601. package/dist/runtime-v2/__tests__/schema-conformance-read-model.test.d.ts.map +0 -1
  602. package/dist/runtime-v2/__tests__/schema-conformance-read-model.test.js +0 -208
  603. package/dist/runtime-v2/__tests__/schema-conformance-read-model.test.js.map +0 -1
  604. package/dist/runtime-v2/__tests__/schema-float-precision.test.d.ts +0 -2
  605. package/dist/runtime-v2/__tests__/schema-float-precision.test.d.ts.map +0 -1
  606. package/dist/runtime-v2/__tests__/schema-float-precision.test.js +0 -290
  607. package/dist/runtime-v2/__tests__/schema-float-precision.test.js.map +0 -1
  608. package/dist/runtime-v2/__tests__/schema-orphan-detection.test.d.ts +0 -2
  609. package/dist/runtime-v2/__tests__/schema-orphan-detection.test.d.ts.map +0 -1
  610. package/dist/runtime-v2/__tests__/schema-orphan-detection.test.js +0 -158
  611. package/dist/runtime-v2/__tests__/schema-orphan-detection.test.js.map +0 -1
  612. package/dist/runtime-v2/__tests__/schema-version.test.d.ts +0 -19
  613. package/dist/runtime-v2/__tests__/schema-version.test.d.ts.map +0 -1
  614. package/dist/runtime-v2/__tests__/schema-version.test.js +0 -176
  615. package/dist/runtime-v2/__tests__/schema-version.test.js.map +0 -1
  616. package/dist/runtime-v2/__tests__/scribe-runner-real-llm.test.d.ts +0 -2
  617. package/dist/runtime-v2/__tests__/scribe-runner-real-llm.test.d.ts.map +0 -1
  618. package/dist/runtime-v2/__tests__/scribe-runner-real-llm.test.js +0 -156
  619. package/dist/runtime-v2/__tests__/scribe-runner-real-llm.test.js.map +0 -1
  620. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.d.ts +0 -2
  621. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.d.ts.map +0 -1
  622. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js +0 -1086
  623. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js.map +0 -1
  624. package/dist/runtime-v2/__tests__/sqlite-connection-readonly.test.d.ts +0 -2
  625. package/dist/runtime-v2/__tests__/sqlite-connection-readonly.test.d.ts.map +0 -1
  626. package/dist/runtime-v2/__tests__/sqlite-connection-readonly.test.js +0 -113
  627. package/dist/runtime-v2/__tests__/sqlite-connection-readonly.test.js.map +0 -1
  628. package/dist/runtime-v2/__tests__/stalled-diagnostician-task.test.d.ts +0 -2
  629. package/dist/runtime-v2/__tests__/stalled-diagnostician-task.test.d.ts.map +0 -1
  630. package/dist/runtime-v2/__tests__/stalled-diagnostician-task.test.js +0 -168
  631. package/dist/runtime-v2/__tests__/stalled-diagnostician-task.test.js.map +0 -1
  632. package/dist/runtime-v2/__tests__/status-contract.test.d.ts +0 -2
  633. package/dist/runtime-v2/__tests__/status-contract.test.d.ts.map +0 -1
  634. package/dist/runtime-v2/__tests__/status-contract.test.js +0 -78
  635. package/dist/runtime-v2/__tests__/status-contract.test.js.map +0 -1
  636. package/dist/runtime-v2/__tests__/story-a-demo.test.d.ts +0 -2
  637. package/dist/runtime-v2/__tests__/story-a-demo.test.d.ts.map +0 -1
  638. package/dist/runtime-v2/__tests__/story-a-demo.test.js +0 -274
  639. package/dist/runtime-v2/__tests__/story-a-demo.test.js.map +0 -1
  640. package/dist/runtime-v2/__tests__/synthetic-baseline.test.d.ts +0 -2
  641. package/dist/runtime-v2/__tests__/synthetic-baseline.test.d.ts.map +0 -1
  642. package/dist/runtime-v2/__tests__/synthetic-baseline.test.js +0 -155
  643. package/dist/runtime-v2/__tests__/synthetic-baseline.test.js.map +0 -1
  644. package/dist/runtime-v2/__tests__/system-prompt-merge.test.d.ts +0 -2
  645. package/dist/runtime-v2/__tests__/system-prompt-merge.test.d.ts.map +0 -1
  646. package/dist/runtime-v2/__tests__/system-prompt-merge.test.js +0 -24
  647. package/dist/runtime-v2/__tests__/system-prompt-merge.test.js.map +0 -1
  648. package/dist/runtime-v2/__tests__/task-state-semantics.test.d.ts +0 -2
  649. package/dist/runtime-v2/__tests__/task-state-semantics.test.d.ts.map +0 -1
  650. package/dist/runtime-v2/__tests__/task-state-semantics.test.js +0 -145
  651. package/dist/runtime-v2/__tests__/task-state-semantics.test.js.map +0 -1
  652. package/dist/runtime-v2/__tests__/task-three-strikes.test.d.ts +0 -2
  653. package/dist/runtime-v2/__tests__/task-three-strikes.test.d.ts.map +0 -1
  654. package/dist/runtime-v2/__tests__/task-three-strikes.test.js +0 -268
  655. package/dist/runtime-v2/__tests__/task-three-strikes.test.js.map +0 -1
  656. package/dist/runtime-v2/__tests__/telemetry-event.test.d.ts +0 -2
  657. package/dist/runtime-v2/__tests__/telemetry-event.test.d.ts.map +0 -1
  658. package/dist/runtime-v2/__tests__/telemetry-event.test.js +0 -69
  659. package/dist/runtime-v2/__tests__/telemetry-event.test.js.map +0 -1
  660. package/dist/runtime-v2/__tests__/trajectory-schema.test.d.ts +0 -2
  661. package/dist/runtime-v2/__tests__/trajectory-schema.test.d.ts.map +0 -1
  662. package/dist/runtime-v2/__tests__/trajectory-schema.test.js +0 -85
  663. package/dist/runtime-v2/__tests__/trajectory-schema.test.js.map +0 -1
  664. package/dist/runtime-v2/__tests__/trajectory-store.test.d.ts +0 -2
  665. package/dist/runtime-v2/__tests__/trajectory-store.test.d.ts.map +0 -1
  666. package/dist/runtime-v2/__tests__/trajectory-store.test.js +0 -143
  667. package/dist/runtime-v2/__tests__/trajectory-store.test.js.map +0 -1
  668. package/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts +0 -2
  669. package/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts.map +0 -1
  670. package/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js +0 -211
  671. package/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js.map +0 -1
  672. package/dist/runtime-v2/__tests__/workflow-funnel-loader.test.d.ts +0 -29
  673. package/dist/runtime-v2/__tests__/workflow-funnel-loader.test.d.ts.map +0 -1
  674. package/dist/runtime-v2/__tests__/workflow-funnel-loader.test.js +0 -432
  675. package/dist/runtime-v2/__tests__/workflow-funnel-loader.test.js.map +0 -1
  676. package/dist/runtime-v2/__tests__/workspace-leak-guard.test.d.ts +0 -2
  677. package/dist/runtime-v2/__tests__/workspace-leak-guard.test.d.ts.map +0 -1
  678. package/dist/runtime-v2/__tests__/workspace-leak-guard.test.js +0 -110
  679. package/dist/runtime-v2/__tests__/workspace-leak-guard.test.js.map +0 -1
  680. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.d.ts +0 -2
  681. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.d.ts.map +0 -1
  682. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +0 -786
  683. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +0 -1
  684. package/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.d.ts +0 -2
  685. package/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.d.ts.map +0 -1
  686. package/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js +0 -165
  687. package/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js.map +0 -1
  688. package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.d.ts +0 -21
  689. package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.d.ts.map +0 -1
  690. package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.js +0 -363
  691. package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.js.map +0 -1
  692. package/dist/runtime-v2/activation/__tests__/approval-context-types.test.d.ts +0 -2
  693. package/dist/runtime-v2/activation/__tests__/approval-context-types.test.d.ts.map +0 -1
  694. package/dist/runtime-v2/activation/__tests__/approval-context-types.test.js +0 -117
  695. package/dist/runtime-v2/activation/__tests__/approval-context-types.test.js.map +0 -1
  696. package/dist/runtime-v2/activation/__tests__/approval-queue.test.d.ts +0 -17
  697. package/dist/runtime-v2/activation/__tests__/approval-queue.test.d.ts.map +0 -1
  698. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js +0 -406
  699. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js.map +0 -1
  700. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.d.ts +0 -2
  701. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.d.ts.map +0 -1
  702. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js +0 -187
  703. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js.map +0 -1
  704. package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.d.ts +0 -20
  705. package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.d.ts.map +0 -1
  706. package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.js +0 -145
  707. package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.js.map +0 -1
  708. package/dist/runtime-v2/activation/__tests__/helpers.d.ts +0 -21
  709. package/dist/runtime-v2/activation/__tests__/helpers.d.ts.map +0 -1
  710. package/dist/runtime-v2/activation/__tests__/helpers.js +0 -132
  711. package/dist/runtime-v2/activation/__tests__/helpers.js.map +0 -1
  712. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.d.ts +0 -21
  713. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.d.ts.map +0 -1
  714. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.js +0 -468
  715. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.js.map +0 -1
  716. package/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.d.ts +0 -2
  717. package/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.d.ts.map +0 -1
  718. package/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.js +0 -257
  719. package/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.js.map +0 -1
  720. package/dist/runtime-v2/activation/__tests__/openclaw-promotion-checks.test.d.ts +0 -2
  721. package/dist/runtime-v2/activation/__tests__/openclaw-promotion-checks.test.d.ts.map +0 -1
  722. package/dist/runtime-v2/activation/__tests__/openclaw-promotion-checks.test.js +0 -91
  723. package/dist/runtime-v2/activation/__tests__/openclaw-promotion-checks.test.js.map +0 -1
  724. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.d.ts +0 -15
  725. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.d.ts.map +0 -1
  726. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js +0 -503
  727. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js.map +0 -1
  728. package/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.d.ts +0 -2
  729. package/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.d.ts.map +0 -1
  730. package/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.js +0 -104
  731. package/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.js.map +0 -1
  732. package/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.d.ts +0 -2
  733. package/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.d.ts.map +0 -1
  734. package/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.js +0 -102
  735. package/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.js.map +0 -1
  736. package/dist/runtime-v2/activation/__tests__/promotion-readiness-reader.test.d.ts +0 -2
  737. package/dist/runtime-v2/activation/__tests__/promotion-readiness-reader.test.d.ts.map +0 -1
  738. package/dist/runtime-v2/activation/__tests__/promotion-readiness-reader.test.js +0 -48
  739. package/dist/runtime-v2/activation/__tests__/promotion-readiness-reader.test.js.map +0 -1
  740. package/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.d.ts +0 -2
  741. package/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.d.ts.map +0 -1
  742. package/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.js +0 -407
  743. package/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.js.map +0 -1
  744. package/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.d.ts +0 -2
  745. package/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.d.ts.map +0 -1
  746. package/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.js +0 -161
  747. package/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.js.map +0 -1
  748. package/dist/runtime-v2/activation/__tests__/rulecode-safety-circuit-breaker.test.d.ts +0 -2
  749. package/dist/runtime-v2/activation/__tests__/rulecode-safety-circuit-breaker.test.d.ts.map +0 -1
  750. package/dist/runtime-v2/activation/__tests__/rulecode-safety-circuit-breaker.test.js +0 -31
  751. package/dist/runtime-v2/activation/__tests__/rulecode-safety-circuit-breaker.test.js.map +0 -1
  752. package/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.d.ts +0 -2
  753. package/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.d.ts.map +0 -1
  754. package/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.js +0 -351
  755. package/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.js.map +0 -1
  756. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts +0 -2
  757. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts.map +0 -1
  758. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js +0 -62
  759. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js.map +0 -1
  760. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.d.ts +0 -2
  761. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.d.ts.map +0 -1
  762. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js +0 -257
  763. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js.map +0 -1
  764. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts +0 -2
  765. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts.map +0 -1
  766. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js +0 -56
  767. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js.map +0 -1
  768. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.d.ts +0 -2
  769. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.d.ts.map +0 -1
  770. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js +0 -168
  771. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js.map +0 -1
  772. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.d.ts +0 -35
  773. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.d.ts.map +0 -1
  774. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js +0 -416
  775. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js.map +0 -1
  776. package/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.d.ts +0 -2
  777. package/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.d.ts.map +0 -1
  778. package/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js +0 -1144
  779. package/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js.map +0 -1
  780. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.d.ts +0 -2
  781. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.d.ts.map +0 -1
  782. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js +0 -651
  783. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js.map +0 -1
  784. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.d.ts +0 -2
  785. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.d.ts.map +0 -1
  786. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.js +0 -553
  787. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.js.map +0 -1
  788. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.d.ts +0 -2
  789. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.d.ts.map +0 -1
  790. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.js +0 -288
  791. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.js.map +0 -1
  792. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.d.ts +0 -2
  793. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.d.ts.map +0 -1
  794. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js +0 -454
  795. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js.map +0 -1
  796. package/dist/runtime-v2/adapter/__tests__/l2-resolve-model-compat.test.d.ts +0 -2
  797. package/dist/runtime-v2/adapter/__tests__/l2-resolve-model-compat.test.d.ts.map +0 -1
  798. package/dist/runtime-v2/adapter/__tests__/l2-resolve-model-compat.test.js +0 -147
  799. package/dist/runtime-v2/adapter/__tests__/l2-resolve-model-compat.test.js.map +0 -1
  800. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.d.ts +0 -19
  801. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.d.ts.map +0 -1
  802. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.js +0 -210
  803. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.js.map +0 -1
  804. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.d.ts +0 -13
  805. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.d.ts.map +0 -1
  806. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.js +0 -86
  807. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.js.map +0 -1
  808. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.d.ts +0 -2
  809. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.d.ts.map +0 -1
  810. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.js +0 -803
  811. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.js.map +0 -1
  812. package/dist/runtime-v2/adapter/__tests__/output-repair-contract.test.d.ts +0 -2
  813. package/dist/runtime-v2/adapter/__tests__/output-repair-contract.test.d.ts.map +0 -1
  814. package/dist/runtime-v2/adapter/__tests__/output-repair-contract.test.js +0 -305
  815. package/dist/runtime-v2/adapter/__tests__/output-repair-contract.test.js.map +0 -1
  816. package/dist/runtime-v2/adapter/__tests__/pd-stream-simple.test.d.ts +0 -2
  817. package/dist/runtime-v2/adapter/__tests__/pd-stream-simple.test.d.ts.map +0 -1
  818. package/dist/runtime-v2/adapter/__tests__/pd-stream-simple.test.js +0 -71
  819. package/dist/runtime-v2/adapter/__tests__/pd-stream-simple.test.js.map +0 -1
  820. package/dist/runtime-v2/adapter/__tests__/pi-ai-http-transport.test.d.ts +0 -2
  821. package/dist/runtime-v2/adapter/__tests__/pi-ai-http-transport.test.d.ts.map +0 -1
  822. package/dist/runtime-v2/adapter/__tests__/pi-ai-http-transport.test.js +0 -219
  823. package/dist/runtime-v2/adapter/__tests__/pi-ai-http-transport.test.js.map +0 -1
  824. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.d.ts +0 -2
  825. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.d.ts.map +0 -1
  826. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js +0 -2128
  827. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js.map +0 -1
  828. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.d.ts +0 -2
  829. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.d.ts.map +0 -1
  830. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.js +0 -159
  831. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.js.map +0 -1
  832. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.d.ts +0 -2
  833. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.d.ts.map +0 -1
  834. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.js +0 -246
  835. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.js.map +0 -1
  836. package/dist/runtime-v2/adapter/__tests__/schema-json-converter.test.d.ts +0 -2
  837. package/dist/runtime-v2/adapter/__tests__/schema-json-converter.test.d.ts.map +0 -1
  838. package/dist/runtime-v2/adapter/__tests__/schema-json-converter.test.js +0 -101
  839. package/dist/runtime-v2/adapter/__tests__/schema-json-converter.test.js.map +0 -1
  840. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter-semantic.test.d.ts +0 -2
  841. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter-semantic.test.d.ts.map +0 -1
  842. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter-semantic.test.js +0 -94
  843. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter-semantic.test.js.map +0 -1
  844. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.d.ts +0 -2
  845. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.d.ts.map +0 -1
  846. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.js +0 -286
  847. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.js.map +0 -1
  848. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.d.ts +0 -2
  849. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.d.ts.map +0 -1
  850. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.js +0 -544
  851. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.js.map +0 -1
  852. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.d.ts +0 -2
  853. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.d.ts.map +0 -1
  854. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.js +0 -543
  855. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.js.map +0 -1
  856. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.d.ts +0 -2
  857. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.d.ts.map +0 -1
  858. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.js +0 -17
  859. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.js.map +0 -1
  860. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.d.ts +0 -18
  861. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.d.ts.map +0 -1
  862. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js +0 -678
  863. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js.map +0 -1
  864. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.d.ts +0 -2
  865. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.d.ts.map +0 -1
  866. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.js +0 -205
  867. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.js.map +0 -1
  868. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.d.ts +0 -15
  869. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.d.ts.map +0 -1
  870. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +0 -801
  871. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +0 -1
  872. package/dist/runtime-v2/config/__tests__/pd-config-pri638-cutover.test.d.ts +0 -2
  873. package/dist/runtime-v2/config/__tests__/pd-config-pri638-cutover.test.d.ts.map +0 -1
  874. package/dist/runtime-v2/config/__tests__/pd-config-pri638-cutover.test.js +0 -99
  875. package/dist/runtime-v2/config/__tests__/pd-config-pri638-cutover.test.js.map +0 -1
  876. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.d.ts +0 -11
  877. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.d.ts.map +0 -1
  878. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js +0 -92
  879. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js.map +0 -1
  880. package/dist/runtime-v2/config/__tests__/pd-config-provenance.test.d.ts +0 -24
  881. package/dist/runtime-v2/config/__tests__/pd-config-provenance.test.d.ts.map +0 -1
  882. package/dist/runtime-v2/config/__tests__/pd-config-provenance.test.js +0 -188
  883. package/dist/runtime-v2/config/__tests__/pd-config-provenance.test.js.map +0 -1
  884. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.d.ts +0 -2
  885. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.d.ts.map +0 -1
  886. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.js +0 -98
  887. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.js.map +0 -1
  888. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.d.ts +0 -13
  889. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.d.ts.map +0 -1
  890. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js +0 -446
  891. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js.map +0 -1
  892. package/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.d.ts +0 -2
  893. package/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.d.ts.map +0 -1
  894. package/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.js +0 -143
  895. package/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.js.map +0 -1
  896. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.d.ts +0 -12
  897. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.d.ts.map +0 -1
  898. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js +0 -649
  899. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js.map +0 -1
  900. package/dist/runtime-v2/config/__tests__/pd-config-workspace.test.d.ts +0 -2
  901. package/dist/runtime-v2/config/__tests__/pd-config-workspace.test.d.ts.map +0 -1
  902. package/dist/runtime-v2/config/__tests__/pd-config-workspace.test.js +0 -195
  903. package/dist/runtime-v2/config/__tests__/pd-config-workspace.test.js.map +0 -1
  904. package/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.d.ts +0 -13
  905. package/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.d.ts.map +0 -1
  906. package/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.js +0 -73
  907. package/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.js.map +0 -1
  908. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.d.ts +0 -5
  909. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.d.ts.map +0 -1
  910. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.js +0 -119
  911. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.js.map +0 -1
  912. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.d.ts +0 -2
  913. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.d.ts.map +0 -1
  914. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.js +0 -95
  915. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.js.map +0 -1
  916. package/dist/runtime-v2/core-principles/__tests__/strip-fabricated-ids.test.d.ts +0 -2
  917. package/dist/runtime-v2/core-principles/__tests__/strip-fabricated-ids.test.d.ts.map +0 -1
  918. package/dist/runtime-v2/core-principles/__tests__/strip-fabricated-ids.test.js +0 -78
  919. package/dist/runtime-v2/core-principles/__tests__/strip-fabricated-ids.test.js.map +0 -1
  920. package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.d.ts +0 -13
  921. package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.d.ts.map +0 -1
  922. package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.js +0 -111
  923. package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.js.map +0 -1
  924. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.d.ts +0 -2
  925. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.d.ts.map +0 -1
  926. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.js +0 -91
  927. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.js.map +0 -1
  928. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.d.ts +0 -2
  929. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.d.ts.map +0 -1
  930. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js +0 -366
  931. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js.map +0 -1
  932. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.d.ts +0 -2
  933. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.d.ts.map +0 -1
  934. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.js +0 -39
  935. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.js.map +0 -1
  936. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts +0 -18
  937. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts.map +0 -1
  938. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js +0 -251
  939. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js.map +0 -1
  940. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.d.ts +0 -2
  941. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.d.ts.map +0 -1
  942. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +0 -235
  943. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +0 -1
  944. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.d.ts +0 -2
  945. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.d.ts.map +0 -1
  946. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.js +0 -57
  947. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.js.map +0 -1
  948. package/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.d.ts +0 -7
  949. package/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.d.ts.map +0 -1
  950. package/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.js +0 -170
  951. package/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.js.map +0 -1
  952. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.d.ts +0 -12
  953. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.d.ts.map +0 -1
  954. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js +0 -181
  955. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js.map +0 -1
  956. package/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.d.ts +0 -18
  957. package/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.d.ts.map +0 -1
  958. package/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.js +0 -277
  959. package/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.js.map +0 -1
  960. package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.d.ts +0 -13
  961. package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.d.ts.map +0 -1
  962. package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js +0 -367
  963. package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js.map +0 -1
  964. package/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.d.ts +0 -16
  965. package/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.d.ts.map +0 -1
  966. package/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.js +0 -316
  967. package/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.js.map +0 -1
  968. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.d.ts +0 -2
  969. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.d.ts.map +0 -1
  970. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.js +0 -48
  971. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.js.map +0 -1
  972. package/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.d.ts +0 -2
  973. package/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.d.ts.map +0 -1
  974. package/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.js +0 -46
  975. package/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.js.map +0 -1
  976. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.d.ts +0 -2
  977. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.d.ts.map +0 -1
  978. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +0 -691
  979. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +0 -1
  980. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.d.ts +0 -2
  981. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.d.ts.map +0 -1
  982. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.js +0 -420
  983. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.js.map +0 -1
  984. package/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.d.ts +0 -2
  985. package/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.d.ts.map +0 -1
  986. package/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js +0 -86
  987. package/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js.map +0 -1
  988. package/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.d.ts +0 -2
  989. package/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.d.ts.map +0 -1
  990. package/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.js +0 -30
  991. package/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.js.map +0 -1
  992. package/dist/runtime-v2/feature-flags/__tests__/pain-diagnosis-persistence-flag.test.d.ts +0 -2
  993. package/dist/runtime-v2/feature-flags/__tests__/pain-diagnosis-persistence-flag.test.d.ts.map +0 -1
  994. package/dist/runtime-v2/feature-flags/__tests__/pain-diagnosis-persistence-flag.test.js +0 -44
  995. package/dist/runtime-v2/feature-flags/__tests__/pain-diagnosis-persistence-flag.test.js.map +0 -1
  996. package/dist/runtime-v2/feature-flags/__tests__/plugin-surface-registry.test.d.ts +0 -2
  997. package/dist/runtime-v2/feature-flags/__tests__/plugin-surface-registry.test.d.ts.map +0 -1
  998. package/dist/runtime-v2/feature-flags/__tests__/plugin-surface-registry.test.js +0 -152
  999. package/dist/runtime-v2/feature-flags/__tests__/plugin-surface-registry.test.js.map +0 -1
  1000. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-block-copy-flag.test.d.ts +0 -2
  1001. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-block-copy-flag.test.d.ts.map +0 -1
  1002. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-block-copy-flag.test.js +0 -42
  1003. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-block-copy-flag.test.js.map +0 -1
  1004. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-ledger-flag.test.d.ts +0 -2
  1005. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-ledger-flag.test.d.ts.map +0 -1
  1006. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-ledger-flag.test.js +0 -42
  1007. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-ledger-flag.test.js.map +0 -1
  1008. package/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts +0 -2
  1009. package/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts.map +0 -1
  1010. package/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js +0 -74
  1011. package/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js.map +0 -1
  1012. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts +0 -2
  1013. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts.map +0 -1
  1014. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js +0 -246
  1015. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js.map +0 -1
  1016. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.d.ts +0 -2
  1017. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.d.ts.map +0 -1
  1018. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.js +0 -221
  1019. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.js.map +0 -1
  1020. package/dist/runtime-v2/feedback/__tests__/fingerprint.test.d.ts +0 -2
  1021. package/dist/runtime-v2/feedback/__tests__/fingerprint.test.d.ts.map +0 -1
  1022. package/dist/runtime-v2/feedback/__tests__/fingerprint.test.js +0 -126
  1023. package/dist/runtime-v2/feedback/__tests__/fingerprint.test.js.map +0 -1
  1024. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.d.ts +0 -11
  1025. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.d.ts.map +0 -1
  1026. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.js +0 -160
  1027. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.js.map +0 -1
  1028. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.d.ts +0 -2
  1029. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.d.ts.map +0 -1
  1030. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.js +0 -342
  1031. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.js.map +0 -1
  1032. package/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.d.ts +0 -15
  1033. package/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.d.ts.map +0 -1
  1034. package/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.js +0 -450
  1035. package/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.js.map +0 -1
  1036. package/dist/runtime-v2/feedback/__tests__/render-github-url.test.d.ts +0 -13
  1037. package/dist/runtime-v2/feedback/__tests__/render-github-url.test.d.ts.map +0 -1
  1038. package/dist/runtime-v2/feedback/__tests__/render-github-url.test.js +0 -243
  1039. package/dist/runtime-v2/feedback/__tests__/render-github-url.test.js.map +0 -1
  1040. package/dist/runtime-v2/feedback/__tests__/safe-stringify.test.d.ts +0 -12
  1041. package/dist/runtime-v2/feedback/__tests__/safe-stringify.test.d.ts.map +0 -1
  1042. package/dist/runtime-v2/feedback/__tests__/safe-stringify.test.js +0 -172
  1043. package/dist/runtime-v2/feedback/__tests__/safe-stringify.test.js.map +0 -1
  1044. package/dist/runtime-v2/feedback/__tests__/slice1-typed-fields.test.d.ts +0 -2
  1045. package/dist/runtime-v2/feedback/__tests__/slice1-typed-fields.test.d.ts.map +0 -1
  1046. package/dist/runtime-v2/feedback/__tests__/slice1-typed-fields.test.js +0 -278
  1047. package/dist/runtime-v2/feedback/__tests__/slice1-typed-fields.test.js.map +0 -1
  1048. package/dist/runtime-v2/gfi/__tests__/gfi-kernel.test.d.ts +0 -2
  1049. package/dist/runtime-v2/gfi/__tests__/gfi-kernel.test.d.ts.map +0 -1
  1050. package/dist/runtime-v2/gfi/__tests__/gfi-kernel.test.js +0 -626
  1051. package/dist/runtime-v2/gfi/__tests__/gfi-kernel.test.js.map +0 -1
  1052. package/dist/runtime-v2/gfi/__tests__/gfi-read-model.test.d.ts +0 -2
  1053. package/dist/runtime-v2/gfi/__tests__/gfi-read-model.test.d.ts.map +0 -1
  1054. package/dist/runtime-v2/gfi/__tests__/gfi-read-model.test.js +0 -212
  1055. package/dist/runtime-v2/gfi/__tests__/gfi-read-model.test.js.map +0 -1
  1056. package/dist/runtime-v2/intent/__tests__/intent-browser.test.d.ts +0 -2
  1057. package/dist/runtime-v2/intent/__tests__/intent-browser.test.d.ts.map +0 -1
  1058. package/dist/runtime-v2/intent/__tests__/intent-browser.test.js +0 -93
  1059. package/dist/runtime-v2/intent/__tests__/intent-browser.test.js.map +0 -1
  1060. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts +0 -2
  1061. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts.map +0 -1
  1062. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js +0 -185
  1063. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js.map +0 -1
  1064. package/dist/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.d.ts +0 -2
  1065. package/dist/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.d.ts.map +0 -1
  1066. package/dist/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.js +0 -182
  1067. package/dist/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.js.map +0 -1
  1068. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts +0 -2
  1069. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts.map +0 -1
  1070. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js +0 -88
  1071. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js.map +0 -1
  1072. package/dist/runtime-v2/intent/__tests__/intent-doc.test.d.ts +0 -2
  1073. package/dist/runtime-v2/intent/__tests__/intent-doc.test.d.ts.map +0 -1
  1074. package/dist/runtime-v2/intent/__tests__/intent-doc.test.js +0 -181
  1075. package/dist/runtime-v2/intent/__tests__/intent-doc.test.js.map +0 -1
  1076. package/dist/runtime-v2/intent/__tests__/intent-friction-block.test.d.ts +0 -2
  1077. package/dist/runtime-v2/intent/__tests__/intent-friction-block.test.d.ts.map +0 -1
  1078. package/dist/runtime-v2/intent/__tests__/intent-friction-block.test.js +0 -168
  1079. package/dist/runtime-v2/intent/__tests__/intent-friction-block.test.js.map +0 -1
  1080. package/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.d.ts +0 -2
  1081. package/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.d.ts.map +0 -1
  1082. package/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.js +0 -121
  1083. package/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.js.map +0 -1
  1084. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts +0 -54
  1085. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts.map +0 -1
  1086. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js +0 -219
  1087. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js.map +0 -1
  1088. package/dist/runtime-v2/internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.d.ts.map +0 -1
  1089. package/dist/runtime-v2/internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.js.map +0 -1
  1090. package/dist/runtime-v2/internalization/__tests__/a-liveness-reconciliation.test.d.ts +0 -2
  1091. package/dist/runtime-v2/internalization/__tests__/a-liveness-reconciliation.test.d.ts.map +0 -1
  1092. package/dist/runtime-v2/internalization/__tests__/a-liveness-reconciliation.test.js +0 -158
  1093. package/dist/runtime-v2/internalization/__tests__/a-liveness-reconciliation.test.js.map +0 -1
  1094. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.d.ts +0 -2
  1095. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.d.ts.map +0 -1
  1096. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.js +0 -139
  1097. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.js.map +0 -1
  1098. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.d.ts +0 -2
  1099. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.d.ts.map +0 -1
  1100. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.js +0 -71
  1101. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.js.map +0 -1
  1102. package/dist/runtime-v2/internalization/__tests__/artifact-content-hash.property.test.d.ts +0 -11
  1103. package/dist/runtime-v2/internalization/__tests__/artifact-content-hash.property.test.d.ts.map +0 -1
  1104. package/dist/runtime-v2/internalization/__tests__/artifact-content-hash.property.test.js +0 -124
  1105. package/dist/runtime-v2/internalization/__tests__/artifact-content-hash.property.test.js.map +0 -1
  1106. package/dist/runtime-v2/internalization/__tests__/artifact-summary.property.test.d.ts +0 -12
  1107. package/dist/runtime-v2/internalization/__tests__/artifact-summary.property.test.d.ts.map +0 -1
  1108. package/dist/runtime-v2/internalization/__tests__/artifact-summary.property.test.js +0 -253
  1109. package/dist/runtime-v2/internalization/__tests__/artifact-summary.property.test.js.map +0 -1
  1110. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.d.ts +0 -2
  1111. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.d.ts.map +0 -1
  1112. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.js +0 -114
  1113. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.js.map +0 -1
  1114. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.d.ts +0 -2
  1115. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.d.ts.map +0 -1
  1116. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.js +0 -112
  1117. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.js.map +0 -1
  1118. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.d.ts +0 -2
  1119. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.d.ts.map +0 -1
  1120. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js +0 -116
  1121. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js.map +0 -1
  1122. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.d.ts +0 -2
  1123. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.d.ts.map +0 -1
  1124. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +0 -455
  1125. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +0 -1
  1126. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.d.ts +0 -2
  1127. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.d.ts.map +0 -1
  1128. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js +0 -522
  1129. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js.map +0 -1
  1130. package/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts +0 -2
  1131. package/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts.map +0 -1
  1132. package/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js +0 -228
  1133. package/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js.map +0 -1
  1134. package/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.d.ts +0 -2
  1135. package/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.d.ts.map +0 -1
  1136. package/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.js +0 -450
  1137. package/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.js.map +0 -1
  1138. package/dist/runtime-v2/internalization/__tests__/crash-liveness-regressions.test.d.ts +0 -2
  1139. package/dist/runtime-v2/internalization/__tests__/crash-liveness-regressions.test.d.ts.map +0 -1
  1140. package/dist/runtime-v2/internalization/__tests__/crash-liveness-regressions.test.js +0 -311
  1141. package/dist/runtime-v2/internalization/__tests__/crash-liveness-regressions.test.js.map +0 -1
  1142. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.d.ts +0 -2
  1143. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.d.ts.map +0 -1
  1144. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +0 -862
  1145. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +0 -1
  1146. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.d.ts +0 -2
  1147. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.d.ts.map +0 -1
  1148. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js +0 -441
  1149. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js.map +0 -1
  1150. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts +0 -2
  1151. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts.map +0 -1
  1152. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js +0 -369
  1153. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js.map +0 -1
  1154. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.d.ts +0 -2
  1155. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.d.ts.map +0 -1
  1156. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js +0 -362
  1157. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js.map +0 -1
  1158. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts +0 -2
  1159. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts.map +0 -1
  1160. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js +0 -333
  1161. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js.map +0 -1
  1162. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.d.ts +0 -2
  1163. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.d.ts.map +0 -1
  1164. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js +0 -484
  1165. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js.map +0 -1
  1166. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.d.ts +0 -2
  1167. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.d.ts.map +0 -1
  1168. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js +0 -193
  1169. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js.map +0 -1
  1170. package/dist/runtime-v2/internalization/__tests__/evaluator-approved-replay-failed-repair.test.d.ts +0 -2
  1171. package/dist/runtime-v2/internalization/__tests__/evaluator-approved-replay-failed-repair.test.d.ts.map +0 -1
  1172. package/dist/runtime-v2/internalization/__tests__/evaluator-approved-replay-failed-repair.test.js +0 -247
  1173. package/dist/runtime-v2/internalization/__tests__/evaluator-approved-replay-failed-repair.test.js.map +0 -1
  1174. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.d.ts +0 -2
  1175. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.d.ts.map +0 -1
  1176. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js +0 -419
  1177. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js.map +0 -1
  1178. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.d.ts +0 -2
  1179. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.d.ts.map +0 -1
  1180. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js +0 -311
  1181. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js.map +0 -1
  1182. package/dist/runtime-v2/internalization/__tests__/evaluator-formation-context.test.d.ts +0 -2
  1183. package/dist/runtime-v2/internalization/__tests__/evaluator-formation-context.test.d.ts.map +0 -1
  1184. package/dist/runtime-v2/internalization/__tests__/evaluator-formation-context.test.js +0 -531
  1185. package/dist/runtime-v2/internalization/__tests__/evaluator-formation-context.test.js.map +0 -1
  1186. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.d.ts +0 -2
  1187. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.d.ts.map +0 -1
  1188. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js +0 -606
  1189. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js.map +0 -1
  1190. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.d.ts +0 -2
  1191. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.d.ts.map +0 -1
  1192. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.js +0 -279
  1193. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.js.map +0 -1
  1194. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.d.ts +0 -2
  1195. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.d.ts.map +0 -1
  1196. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.js +0 -309
  1197. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.js.map +0 -1
  1198. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.d.ts +0 -2
  1199. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.d.ts.map +0 -1
  1200. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.js +0 -209
  1201. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.js.map +0 -1
  1202. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.d.ts +0 -2
  1203. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.d.ts.map +0 -1
  1204. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.js +0 -328
  1205. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.js.map +0 -1
  1206. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.d.ts +0 -2
  1207. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.d.ts.map +0 -1
  1208. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.js +0 -125
  1209. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.js.map +0 -1
  1210. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.d.ts +0 -2
  1211. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.d.ts.map +0 -1
  1212. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js +0 -114
  1213. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js.map +0 -1
  1214. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.d.ts +0 -2
  1215. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.d.ts.map +0 -1
  1216. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.js +0 -433
  1217. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.js.map +0 -1
  1218. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.d.ts +0 -18
  1219. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.d.ts.map +0 -1
  1220. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.js +0 -470
  1221. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.js.map +0 -1
  1222. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.d.ts +0 -2
  1223. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.d.ts.map +0 -1
  1224. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js +0 -195
  1225. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js.map +0 -1
  1226. package/dist/runtime-v2/internalization/__tests__/formation-context.test.d.ts +0 -2
  1227. package/dist/runtime-v2/internalization/__tests__/formation-context.test.d.ts.map +0 -1
  1228. package/dist/runtime-v2/internalization/__tests__/formation-context.test.js +0 -428
  1229. package/dist/runtime-v2/internalization/__tests__/formation-context.test.js.map +0 -1
  1230. package/dist/runtime-v2/internalization/__tests__/intake-bridge-channel-admission.test.d.ts +0 -2
  1231. package/dist/runtime-v2/internalization/__tests__/intake-bridge-channel-admission.test.d.ts.map +0 -1
  1232. package/dist/runtime-v2/internalization/__tests__/intake-bridge-channel-admission.test.js +0 -128
  1233. package/dist/runtime-v2/internalization/__tests__/intake-bridge-channel-admission.test.js.map +0 -1
  1234. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts +0 -2
  1235. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts.map +0 -1
  1236. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js +0 -113
  1237. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js.map +0 -1
  1238. package/dist/runtime-v2/internalization/__tests__/internalization-consumer-decision.test.d.ts +0 -2
  1239. package/dist/runtime-v2/internalization/__tests__/internalization-consumer-decision.test.d.ts.map +0 -1
  1240. package/dist/runtime-v2/internalization/__tests__/internalization-consumer-decision.test.js +0 -251
  1241. package/dist/runtime-v2/internalization/__tests__/internalization-consumer-decision.test.js.map +0 -1
  1242. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.d.ts +0 -2
  1243. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.d.ts.map +0 -1
  1244. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.js +0 -144
  1245. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.js.map +0 -1
  1246. package/dist/runtime-v2/internalization/__tests__/internalization-task-guards.test.d.ts +0 -2
  1247. package/dist/runtime-v2/internalization/__tests__/internalization-task-guards.test.d.ts.map +0 -1
  1248. package/dist/runtime-v2/internalization/__tests__/internalization-task-guards.test.js +0 -306
  1249. package/dist/runtime-v2/internalization/__tests__/internalization-task-guards.test.js.map +0 -1
  1250. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.d.ts +0 -2
  1251. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.d.ts.map +0 -1
  1252. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.js +0 -338
  1253. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.js.map +0 -1
  1254. package/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.d.ts +0 -2
  1255. package/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.d.ts.map +0 -1
  1256. package/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.js +0 -120
  1257. package/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.js.map +0 -1
  1258. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.d.ts +0 -2
  1259. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.d.ts.map +0 -1
  1260. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js +0 -581
  1261. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js.map +0 -1
  1262. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.d.ts +0 -2
  1263. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.d.ts.map +0 -1
  1264. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.js +0 -56
  1265. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.js.map +0 -1
  1266. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.d.ts +0 -2
  1267. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.d.ts.map +0 -1
  1268. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js +0 -518
  1269. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js.map +0 -1
  1270. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.d.ts +0 -2
  1271. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.d.ts.map +0 -1
  1272. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.js +0 -1247
  1273. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.js.map +0 -1
  1274. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.d.ts +0 -2
  1275. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.d.ts.map +0 -1
  1276. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.js +0 -410
  1277. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.js.map +0 -1
  1278. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.d.ts +0 -21
  1279. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.d.ts.map +0 -1
  1280. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.js +0 -288
  1281. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.js.map +0 -1
  1282. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.d.ts +0 -2
  1283. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.d.ts.map +0 -1
  1284. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.js +0 -181
  1285. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.js.map +0 -1
  1286. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.d.ts +0 -2
  1287. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.d.ts.map +0 -1
  1288. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.js +0 -150
  1289. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.js.map +0 -1
  1290. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.d.ts +0 -2
  1291. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.d.ts.map +0 -1
  1292. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js +0 -431
  1293. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js.map +0 -1
  1294. package/dist/runtime-v2/internalization/__tests__/philosopher-toggle-characterization.test.d.ts +0 -2
  1295. package/dist/runtime-v2/internalization/__tests__/philosopher-toggle-characterization.test.d.ts.map +0 -1
  1296. package/dist/runtime-v2/internalization/__tests__/philosopher-toggle-characterization.test.js +0 -279
  1297. package/dist/runtime-v2/internalization/__tests__/philosopher-toggle-characterization.test.js.map +0 -1
  1298. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.d.ts +0 -165
  1299. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.d.ts.map +0 -1
  1300. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.js +0 -659
  1301. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.js.map +0 -1
  1302. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.test.d.ts +0 -22
  1303. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.test.d.ts.map +0 -1
  1304. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.test.js +0 -229
  1305. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.test.js.map +0 -1
  1306. package/dist/runtime-v2/internalization/__tests__/prompt-serializer.test.d.ts +0 -2
  1307. package/dist/runtime-v2/internalization/__tests__/prompt-serializer.test.d.ts.map +0 -1
  1308. package/dist/runtime-v2/internalization/__tests__/prompt-serializer.test.js +0 -91
  1309. package/dist/runtime-v2/internalization/__tests__/prompt-serializer.test.js.map +0 -1
  1310. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.d.ts +0 -2
  1311. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.d.ts.map +0 -1
  1312. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.js +0 -86
  1313. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.js.map +0 -1
  1314. package/dist/runtime-v2/internalization/__tests__/refiner-rulehost-gate.test.d.ts +0 -2
  1315. package/dist/runtime-v2/internalization/__tests__/refiner-rulehost-gate.test.d.ts.map +0 -1
  1316. package/dist/runtime-v2/internalization/__tests__/refiner-rulehost-gate.test.js +0 -431
  1317. package/dist/runtime-v2/internalization/__tests__/refiner-rulehost-gate.test.js.map +0 -1
  1318. package/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.d.ts +0 -2
  1319. package/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.d.ts.map +0 -1
  1320. package/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js +0 -898
  1321. package/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js.map +0 -1
  1322. package/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.d.ts +0 -2
  1323. package/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.d.ts.map +0 -1
  1324. package/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.js +0 -340
  1325. package/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.js.map +0 -1
  1326. package/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.d.ts +0 -2
  1327. package/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.d.ts.map +0 -1
  1328. package/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js +0 -169
  1329. package/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js.map +0 -1
  1330. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-principle-semantic.test.d.ts +0 -2
  1331. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-principle-semantic.test.d.ts.map +0 -1
  1332. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-principle-semantic.test.js +0 -328
  1333. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-principle-semantic.test.js.map +0 -1
  1334. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.d.ts +0 -2
  1335. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.d.ts.map +0 -1
  1336. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.js +0 -75
  1337. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.js.map +0 -1
  1338. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.d.ts +0 -2
  1339. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.d.ts.map +0 -1
  1340. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.js +0 -187
  1341. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.js.map +0 -1
  1342. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.d.ts +0 -2
  1343. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.d.ts.map +0 -1
  1344. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js +0 -320
  1345. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js.map +0 -1
  1346. package/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts +0 -2
  1347. package/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts.map +0 -1
  1348. package/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js +0 -449
  1349. package/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js.map +0 -1
  1350. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.d.ts +0 -2
  1351. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.d.ts.map +0 -1
  1352. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.js +0 -203
  1353. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.js.map +0 -1
  1354. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.d.ts +0 -12
  1355. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.d.ts.map +0 -1
  1356. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.js +0 -256
  1357. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.js.map +0 -1
  1358. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.d.ts +0 -2
  1359. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.d.ts.map +0 -1
  1360. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js +0 -224
  1361. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js.map +0 -1
  1362. package/dist/runtime-v2/internalization/__tests__/scribe-intent-contract-normalization.test.d.ts +0 -2
  1363. package/dist/runtime-v2/internalization/__tests__/scribe-intent-contract-normalization.test.d.ts.map +0 -1
  1364. package/dist/runtime-v2/internalization/__tests__/scribe-intent-contract-normalization.test.js +0 -78
  1365. package/dist/runtime-v2/internalization/__tests__/scribe-intent-contract-normalization.test.js.map +0 -1
  1366. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.d.ts +0 -2
  1367. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.d.ts.map +0 -1
  1368. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js +0 -180
  1369. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js.map +0 -1
  1370. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.d.ts +0 -12
  1371. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.d.ts.map +0 -1
  1372. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js +0 -85
  1373. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js.map +0 -1
  1374. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.d.ts +0 -2
  1375. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.d.ts.map +0 -1
  1376. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js +0 -752
  1377. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js.map +0 -1
  1378. package/dist/runtime-v2/internalization/__tests__/summary-freshness.property.test.d.ts +0 -12
  1379. package/dist/runtime-v2/internalization/__tests__/summary-freshness.property.test.d.ts.map +0 -1
  1380. package/dist/runtime-v2/internalization/__tests__/summary-freshness.property.test.js +0 -176
  1381. package/dist/runtime-v2/internalization/__tests__/summary-freshness.property.test.js.map +0 -1
  1382. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.d.ts +0 -11
  1383. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.d.ts.map +0 -1
  1384. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js +0 -176
  1385. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js.map +0 -1
  1386. package/dist/runtime-v2/internalization/__tests__/verdict-drift-regressions.test.d.ts +0 -2
  1387. package/dist/runtime-v2/internalization/__tests__/verdict-drift-regressions.test.d.ts.map +0 -1
  1388. package/dist/runtime-v2/internalization/__tests__/verdict-drift-regressions.test.js +0 -602
  1389. package/dist/runtime-v2/internalization/__tests__/verdict-drift-regressions.test.js.map +0 -1
  1390. package/dist/runtime-v2/internalization/deprecated-readiness.test.d.ts +0 -2
  1391. package/dist/runtime-v2/internalization/deprecated-readiness.test.d.ts.map +0 -1
  1392. package/dist/runtime-v2/internalization/deprecated-readiness.test.js +0 -127
  1393. package/dist/runtime-v2/internalization/deprecated-readiness.test.js.map +0 -1
  1394. package/dist/runtime-v2/internalization/lifecycle-metrics.test.d.ts +0 -2
  1395. package/dist/runtime-v2/internalization/lifecycle-metrics.test.d.ts.map +0 -1
  1396. package/dist/runtime-v2/internalization/lifecycle-metrics.test.js +0 -201
  1397. package/dist/runtime-v2/internalization/lifecycle-metrics.test.js.map +0 -1
  1398. package/dist/runtime-v2/internalization/lifecycle-read-model.test.d.ts +0 -2
  1399. package/dist/runtime-v2/internalization/lifecycle-read-model.test.d.ts.map +0 -1
  1400. package/dist/runtime-v2/internalization/lifecycle-read-model.test.js +0 -408
  1401. package/dist/runtime-v2/internalization/lifecycle-read-model.test.js.map +0 -1
  1402. package/dist/runtime-v2/internalization/routing-policy.test.d.ts +0 -2
  1403. package/dist/runtime-v2/internalization/routing-policy.test.d.ts.map +0 -1
  1404. package/dist/runtime-v2/internalization/routing-policy.test.js +0 -286
  1405. package/dist/runtime-v2/internalization/routing-policy.test.js.map +0 -1
  1406. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.d.ts +0 -2
  1407. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.d.ts.map +0 -1
  1408. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.js +0 -59
  1409. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.js.map +0 -1
  1410. package/dist/runtime-v2/observer/__tests__/correction-observer.test.d.ts +0 -2
  1411. package/dist/runtime-v2/observer/__tests__/correction-observer.test.d.ts.map +0 -1
  1412. package/dist/runtime-v2/observer/__tests__/correction-observer.test.js +0 -145
  1413. package/dist/runtime-v2/observer/__tests__/correction-observer.test.js.map +0 -1
  1414. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.d.ts +0 -2
  1415. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.d.ts.map +0 -1
  1416. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js +0 -615
  1417. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js.map +0 -1
  1418. package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.d.ts +0 -15
  1419. package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.d.ts.map +0 -1
  1420. package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.js +0 -179
  1421. package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.js.map +0 -1
  1422. package/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts +0 -2
  1423. package/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts.map +0 -1
  1424. package/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js +0 -95
  1425. package/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js.map +0 -1
  1426. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.d.ts +0 -2
  1427. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.d.ts.map +0 -1
  1428. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js +0 -493
  1429. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js.map +0 -1
  1430. package/dist/runtime-v2/runner/__tests__/base-peer-runner-failure-details.test.d.ts +0 -2
  1431. package/dist/runtime-v2/runner/__tests__/base-peer-runner-failure-details.test.d.ts.map +0 -1
  1432. package/dist/runtime-v2/runner/__tests__/base-peer-runner-failure-details.test.js +0 -199
  1433. package/dist/runtime-v2/runner/__tests__/base-peer-runner-failure-details.test.js.map +0 -1
  1434. package/dist/runtime-v2/runner/__tests__/base-peer-runner-rate-limit-degradation.test.d.ts +0 -2
  1435. package/dist/runtime-v2/runner/__tests__/base-peer-runner-rate-limit-degradation.test.d.ts.map +0 -1
  1436. package/dist/runtime-v2/runner/__tests__/base-peer-runner-rate-limit-degradation.test.js +0 -319
  1437. package/dist/runtime-v2/runner/__tests__/base-peer-runner-rate-limit-degradation.test.js.map +0 -1
  1438. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.d.ts +0 -2
  1439. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.d.ts.map +0 -1
  1440. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js +0 -388
  1441. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js.map +0 -1
  1442. package/dist/runtime-v2/runner/__tests__/default-validator.test.d.ts +0 -2
  1443. package/dist/runtime-v2/runner/__tests__/default-validator.test.d.ts.map +0 -1
  1444. package/dist/runtime-v2/runner/__tests__/default-validator.test.js +0 -589
  1445. package/dist/runtime-v2/runner/__tests__/default-validator.test.js.map +0 -1
  1446. package/dist/runtime-v2/runner/__tests__/diagnose.test.d.ts +0 -2
  1447. package/dist/runtime-v2/runner/__tests__/diagnose.test.d.ts.map +0 -1
  1448. package/dist/runtime-v2/runner/__tests__/diagnose.test.js +0 -171
  1449. package/dist/runtime-v2/runner/__tests__/diagnose.test.js.map +0 -1
  1450. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.d.ts +0 -2
  1451. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.d.ts.map +0 -1
  1452. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.js +0 -477
  1453. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.js.map +0 -1
  1454. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge.test.d.ts +0 -2
  1455. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge.test.d.ts.map +0 -1
  1456. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge.test.js +0 -160
  1457. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge.test.js.map +0 -1
  1458. package/dist/runtime-v2/signal-collector/__tests__/keyword-stage.test.d.ts +0 -2
  1459. package/dist/runtime-v2/signal-collector/__tests__/keyword-stage.test.d.ts.map +0 -1
  1460. package/dist/runtime-v2/signal-collector/__tests__/keyword-stage.test.js +0 -39
  1461. package/dist/runtime-v2/signal-collector/__tests__/keyword-stage.test.js.map +0 -1
  1462. package/dist/runtime-v2/signal-collector/__tests__/llm-payload-contract.test.d.ts +0 -2
  1463. package/dist/runtime-v2/signal-collector/__tests__/llm-payload-contract.test.d.ts.map +0 -1
  1464. package/dist/runtime-v2/signal-collector/__tests__/llm-payload-contract.test.js +0 -130
  1465. package/dist/runtime-v2/signal-collector/__tests__/llm-payload-contract.test.js.map +0 -1
  1466. package/dist/runtime-v2/signal-collector/__tests__/llm-stage.test.d.ts +0 -2
  1467. package/dist/runtime-v2/signal-collector/__tests__/llm-stage.test.d.ts.map +0 -1
  1468. package/dist/runtime-v2/signal-collector/__tests__/llm-stage.test.js +0 -34
  1469. package/dist/runtime-v2/signal-collector/__tests__/llm-stage.test.js.map +0 -1
  1470. package/dist/runtime-v2/signal-collector/__tests__/signal-collector.test.d.ts +0 -2
  1471. package/dist/runtime-v2/signal-collector/__tests__/signal-collector.test.d.ts.map +0 -1
  1472. package/dist/runtime-v2/signal-collector/__tests__/signal-collector.test.js +0 -222
  1473. package/dist/runtime-v2/signal-collector/__tests__/signal-collector.test.js.map +0 -1
  1474. package/dist/runtime-v2/signal-collector/__tests__/types.test.d.ts +0 -2
  1475. package/dist/runtime-v2/signal-collector/__tests__/types.test.d.ts.map +0 -1
  1476. package/dist/runtime-v2/signal-collector/__tests__/types.test.js +0 -35
  1477. package/dist/runtime-v2/signal-collector/__tests__/types.test.js.map +0 -1
  1478. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts +0 -2
  1479. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts.map +0 -1
  1480. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js +0 -55
  1481. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js.map +0 -1
  1482. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.d.ts +0 -2
  1483. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.d.ts.map +0 -1
  1484. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.js +0 -34
  1485. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.js.map +0 -1
  1486. package/dist/runtime-v2/store/concurrent-lease.test.d.ts +0 -2
  1487. package/dist/runtime-v2/store/concurrent-lease.test.d.ts.map +0 -1
  1488. package/dist/runtime-v2/store/concurrent-lease.test.js +0 -129
  1489. package/dist/runtime-v2/store/concurrent-lease.test.js.map +0 -1
  1490. package/dist/runtime-v2/store/context/resilient-context-assembler.test.d.ts +0 -2
  1491. package/dist/runtime-v2/store/context/resilient-context-assembler.test.d.ts.map +0 -1
  1492. package/dist/runtime-v2/store/context/resilient-context-assembler.test.js +0 -113
  1493. package/dist/runtime-v2/store/context/resilient-context-assembler.test.js.map +0 -1
  1494. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.d.ts +0 -2
  1495. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.d.ts.map +0 -1
  1496. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.js +0 -1681
  1497. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.js.map +0 -1
  1498. package/dist/runtime-v2/store/diagnostician-committer.test.d.ts +0 -2
  1499. package/dist/runtime-v2/store/diagnostician-committer.test.d.ts.map +0 -1
  1500. package/dist/runtime-v2/store/diagnostician-committer.test.js +0 -360
  1501. package/dist/runtime-v2/store/diagnostician-committer.test.js.map +0 -1
  1502. package/dist/runtime-v2/store/history/resilient-history-query.test.d.ts +0 -2
  1503. package/dist/runtime-v2/store/history/resilient-history-query.test.d.ts.map +0 -1
  1504. package/dist/runtime-v2/store/history/resilient-history-query.test.js +0 -128
  1505. package/dist/runtime-v2/store/history/resilient-history-query.test.js.map +0 -1
  1506. package/dist/runtime-v2/store/history/sqlite-history-query.test.d.ts +0 -2
  1507. package/dist/runtime-v2/store/history/sqlite-history-query.test.d.ts.map +0 -1
  1508. package/dist/runtime-v2/store/history/sqlite-history-query.test.js +0 -536
  1509. package/dist/runtime-v2/store/history/sqlite-history-query.test.js.map +0 -1
  1510. package/dist/runtime-v2/store/idempotent-transitions.test.d.ts +0 -2
  1511. package/dist/runtime-v2/store/idempotent-transitions.test.d.ts.map +0 -1
  1512. package/dist/runtime-v2/store/idempotent-transitions.test.js +0 -163
  1513. package/dist/runtime-v2/store/idempotent-transitions.test.js.map +0 -1
  1514. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts +0 -2
  1515. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts.map +0 -1
  1516. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js +0 -272
  1517. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js.map +0 -1
  1518. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts +0 -2
  1519. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts.map +0 -1
  1520. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js +0 -83
  1521. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js.map +0 -1
  1522. package/dist/runtime-v2/store/lifecycle/lease-manager.test.d.ts +0 -2
  1523. package/dist/runtime-v2/store/lifecycle/lease-manager.test.d.ts.map +0 -1
  1524. package/dist/runtime-v2/store/lifecycle/lease-manager.test.js +0 -241
  1525. package/dist/runtime-v2/store/lifecycle/lease-manager.test.js.map +0 -1
  1526. package/dist/runtime-v2/store/lifecycle/recovery-sweep.test.d.ts +0 -2
  1527. package/dist/runtime-v2/store/lifecycle/recovery-sweep.test.d.ts.map +0 -1
  1528. package/dist/runtime-v2/store/lifecycle/recovery-sweep.test.js +0 -316
  1529. package/dist/runtime-v2/store/lifecycle/recovery-sweep.test.js.map +0 -1
  1530. package/dist/runtime-v2/store/lifecycle/retry-policy.test.d.ts +0 -2
  1531. package/dist/runtime-v2/store/lifecycle/retry-policy.test.d.ts.map +0 -1
  1532. package/dist/runtime-v2/store/lifecycle/retry-policy.test.js +0 -86
  1533. package/dist/runtime-v2/store/lifecycle/retry-policy.test.js.map +0 -1
  1534. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.d.ts +0 -2
  1535. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.d.ts.map +0 -1
  1536. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.js +0 -225
  1537. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.js.map +0 -1
  1538. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.d.ts +0 -2
  1539. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.d.ts.map +0 -1
  1540. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.js +0 -160
  1541. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.js.map +0 -1
  1542. package/dist/runtime-v2/store/runtime-state-manager.integration.test.d.ts +0 -2
  1543. package/dist/runtime-v2/store/runtime-state-manager.integration.test.d.ts.map +0 -1
  1544. package/dist/runtime-v2/store/runtime-state-manager.integration.test.js +0 -220
  1545. package/dist/runtime-v2/store/runtime-state-manager.integration.test.js.map +0 -1
  1546. package/dist/runtime-v2/store/schema-conformance.test.d.ts +0 -2
  1547. package/dist/runtime-v2/store/schema-conformance.test.d.ts.map +0 -1
  1548. package/dist/runtime-v2/store/schema-conformance.test.js +0 -670
  1549. package/dist/runtime-v2/store/schema-conformance.test.js.map +0 -1
  1550. package/dist/runtime-v2/store/sqlite-connection-close.test.d.ts +0 -2
  1551. package/dist/runtime-v2/store/sqlite-connection-close.test.d.ts.map +0 -1
  1552. package/dist/runtime-v2/store/sqlite-connection-close.test.js +0 -57
  1553. package/dist/runtime-v2/store/sqlite-connection-close.test.js.map +0 -1
  1554. package/dist/runtime-v2/store/sqlite-connection-pragma.test.d.ts +0 -2
  1555. package/dist/runtime-v2/store/sqlite-connection-pragma.test.d.ts.map +0 -1
  1556. package/dist/runtime-v2/store/sqlite-connection-pragma.test.js +0 -272
  1557. package/dist/runtime-v2/store/sqlite-connection-pragma.test.js.map +0 -1
  1558. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts +0 -2
  1559. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts.map +0 -1
  1560. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.js +0 -106
  1561. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.js.map +0 -1
  1562. package/dist/runtime-v2/store/sqlite-run-store.test.d.ts +0 -2
  1563. package/dist/runtime-v2/store/sqlite-run-store.test.d.ts.map +0 -1
  1564. package/dist/runtime-v2/store/sqlite-run-store.test.js +0 -322
  1565. package/dist/runtime-v2/store/sqlite-run-store.test.js.map +0 -1
  1566. package/dist/runtime-v2/store/sqlite-task-store.test.d.ts +0 -2
  1567. package/dist/runtime-v2/store/sqlite-task-store.test.d.ts.map +0 -1
  1568. package/dist/runtime-v2/store/sqlite-task-store.test.js +0 -164
  1569. package/dist/runtime-v2/store/sqlite-task-store.test.js.map +0 -1
  1570. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.d.ts +0 -2
  1571. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.d.ts.map +0 -1
  1572. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.js +0 -114
  1573. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.js.map +0 -1
  1574. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.d.ts +0 -2
  1575. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.d.ts.map +0 -1
  1576. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js +0 -485
  1577. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js.map +0 -1
  1578. package/dist/runtime-v2/store/trajectory/source-trace-locator.test.d.ts +0 -2
  1579. package/dist/runtime-v2/store/trajectory/source-trace-locator.test.d.ts.map +0 -1
  1580. package/dist/runtime-v2/store/trajectory/source-trace-locator.test.js +0 -319
  1581. package/dist/runtime-v2/store/trajectory/source-trace-locator.test.js.map +0 -1
  1582. package/dist/runtime-v2/store/trajectory/sqlite-trajectory-locator.test.d.ts +0 -2
  1583. package/dist/runtime-v2/store/trajectory/sqlite-trajectory-locator.test.d.ts.map +0 -1
  1584. package/dist/runtime-v2/store/trajectory/sqlite-trajectory-locator.test.js +0 -328
  1585. package/dist/runtime-v2/store/trajectory/sqlite-trajectory-locator.test.js.map +0 -1
  1586. package/dist/runtime-v2/store/workspace-isolation.test.d.ts +0 -2
  1587. package/dist/runtime-v2/store/workspace-isolation.test.d.ts.map +0 -1
  1588. package/dist/runtime-v2/store/workspace-isolation.test.js +0 -138
  1589. package/dist/runtime-v2/store/workspace-isolation.test.js.map +0 -1
  1590. package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.d.ts +0 -2
  1591. package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.d.ts.map +0 -1
  1592. package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.js +0 -171
  1593. package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.js.map +0 -1
  1594. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.d.ts +0 -2
  1595. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.d.ts.map +0 -1
  1596. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js +0 -369
  1597. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js.map +0 -1
  1598. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.d.ts +0 -2
  1599. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.d.ts.map +0 -1
  1600. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.js +0 -163
  1601. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.js.map +0 -1
  1602. package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.d.ts +0 -2
  1603. package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.d.ts.map +0 -1
  1604. package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.js +0 -109
  1605. package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.js.map +0 -1
  1606. package/dist/runtime-v2/utils/cli-process-runner.test.d.ts +0 -2
  1607. package/dist/runtime-v2/utils/cli-process-runner.test.d.ts.map +0 -1
  1608. package/dist/runtime-v2/utils/cli-process-runner.test.js +0 -113
  1609. package/dist/runtime-v2/utils/cli-process-runner.test.js.map +0 -1
  1610. package/dist/trajectory-store.test.d.ts +0 -2
  1611. package/dist/trajectory-store.test.d.ts.map +0 -1
  1612. package/dist/trajectory-store.test.js +0 -261
  1613. package/dist/trajectory-store.test.js.map +0 -1
@@ -1,1923 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { ArtificerRunner } from '../internalization/artificer-runner.js';
3
- import { MemoryPIArtifactStore } from '../internalization/pi-artifact-store.js';
4
- import { DefaultArtificerValidator } from '../internalization/artificer-output.js';
5
- import { createPITaskDiagnosticJson, parsePITaskMetadata } from '../internalization/pitask-metadata.js';
6
- import { TestDoubleRuntimeAdapter } from '../adapter/test-double-runtime-adapter.js';
7
- import { FORMATION_CANDIDATE_LIMIT } from '../internalization/formation-context.js';
8
- import { PDRuntimeError } from '../error-categories.js';
9
- const SCRIBE_TASK_ID = 'scribe-001';
10
- const ARTIFICER_TASK_ID = 'artificer-001';
11
- function makeScribeTask(overrides = {}) {
12
- return {
13
- taskId: SCRIBE_TASK_ID,
14
- taskKind: 'scribe',
15
- status: 'succeeded',
16
- attemptCount: 1,
17
- maxAttempts: 3,
18
- resultRef: 'scribe://run-001',
19
- createdAt: new Date().toISOString(),
20
- updatedAt: new Date().toISOString(),
21
- diagnosticJson: createPITaskDiagnosticJson({
22
- dependencyTaskIds: [],
23
- channel: 'prompt',
24
- timeoutMs: 300_000,
25
- inputArtifactRefs: [],
26
- outputArtifactRefs: [{ artifactType: 'principle', ref: 'pi-art-scribe-001-run-001' }],
27
- }),
28
- ...overrides,
29
- };
30
- }
31
- function makeArtificerTask(overrides = {}) {
32
- return {
33
- taskId: ARTIFICER_TASK_ID,
34
- taskKind: 'artificer',
35
- status: 'pending',
36
- attemptCount: 0,
37
- maxAttempts: 3,
38
- createdAt: new Date().toISOString(),
39
- updatedAt: new Date().toISOString(),
40
- diagnosticJson: createPITaskDiagnosticJson({
41
- dependencyTaskIds: [SCRIBE_TASK_ID],
42
- channel: 'prompt',
43
- timeoutMs: 300_000,
44
- inputArtifactRefs: [{ artifactType: 'principle', ref: 'pi-art-scribe-001-run-001' }],
45
- outputArtifactRefs: [],
46
- }),
47
- ...overrides,
48
- };
49
- }
50
- // PRI-780: v2 is the only generation contract — the runner-level fixtures
51
- // carry a valid Owner-labelled pack and v2-aligned outputs.
52
- const V2_RULE_CONTEXT = {
53
- version: 2,
54
- history: { status: 'available', truncated: false, calls: [] },
55
- facts: { priorReadOfTarget: 'unknown', readCount: 0, writeCount: 0, uniqueWritePathCount: 0, sameActionBlockCount: null },
56
- };
57
- const V2_TEST_PACK = {
58
- sourceNegativeCase: {
59
- caseId: 'negative-1',
60
- kind: 'negative',
61
- toolName: 'write_file',
62
- params: { path: '/etc/passwd' },
63
- expectedDecision: 'block',
64
- ruleContext: V2_RULE_CONTEXT,
65
- },
66
- ownerDesiredOutcome: 'block writes outside the workspace',
67
- positiveCounterexamples: [{
68
- caseId: 'positive-1',
69
- kind: 'positive',
70
- toolName: 'write_file',
71
- params: { path: '/project/file.txt' },
72
- expectedDecision: 'allow',
73
- ruleContext: V2_RULE_CONTEXT,
74
- }],
75
- evidenceRefs: ['pain://1'],
76
- redactionNotes: [],
77
- };
78
- function makeArtificerOutput() {
79
- return {
80
- taskId: ARTIFICER_TASK_ID,
81
- sourceScribeArtifactId: 'pi-art-scribe-001-run-001',
82
- requiresContextVersion: 2,
83
- evidenceRefs: ['pain://1'],
84
- implementationCode: 'function evaluate(input, helpers) { return { decision: "allow", matched: false, reason: "ok" }; }',
85
- goldenTraceCases: [
86
- { caseId: 'positive-1', kind: 'positive', toolName: 'write_file', params: { path: '/project/file.txt' }, expectedDecision: 'allow', ruleContext: V2_RULE_CONTEXT },
87
- { caseId: 'negative-1', kind: 'negative', toolName: 'write_file', params: { path: '/etc/passwd' }, expectedDecision: 'block', ruleContext: V2_RULE_CONTEXT },
88
- ],
89
- affectedTools: ['write_file'],
90
- implementationSummary: 'Add input validation to all async operations',
91
- sourceTrace: {
92
- scribeArtifactId: 'pi-art-scribe-001-run-001',
93
- },
94
- risks: ['May add latency from error checking'],
95
- generatedAt: new Date().toISOString(),
96
- };
97
- }
98
- function makeScribeArtifact() {
99
- return {
100
- artifactId: 'pi-art-scribe-001-run-001',
101
- artifactKind: 'principle',
102
- sourceTaskId: SCRIBE_TASK_ID,
103
- lineageArtifactIds: [],
104
- validationStatus: 'pending',
105
- contentJson: JSON.stringify({
106
- taskId: SCRIBE_TASK_ID,
107
- sourcePhilosopherArtifactId: 'pi-art-philosopher-001',
108
- principleDraft: {
109
- title: 'Systematic Error Handling',
110
- statement: 'All async operations must include explicit error handling',
111
- rationale: 'Uncaught errors cascade into system instability',
112
- applicability: ['All async operations'],
113
- antiPatterns: ['Ignoring promise rejections'],
114
- confidence: 0.9,
115
- },
116
- sourceTrace: {
117
- philosopherArtifactId: 'pi-art-philosopher-001',
118
- },
119
- risks: [],
120
- generatedAt: new Date().toISOString(),
121
- }),
122
- createdAt: new Date().toISOString(),
123
- updatedAt: new Date().toISOString(),
124
- };
125
- }
126
- describe('ArtificerRunner (PRI-111)', () => {
127
- let artifactStore = new MemoryPIArtifactStore();
128
- beforeEach(() => {
129
- artifactStore = new MemoryPIArtifactStore();
130
- });
131
- function createMockDeps(overrides = {}) {
132
- const artificerTask = makeArtificerTask();
133
- const scribeTask = makeScribeTask();
134
- const stateManager = {
135
- acquireLease: vi.fn().mockResolvedValue(artificerTask),
136
- getTask: vi.fn().mockImplementation((id) => {
137
- if (id === ARTIFICER_TASK_ID)
138
- return Promise.resolve(artificerTask);
139
- if (id === SCRIBE_TASK_ID)
140
- return Promise.resolve(scribeTask);
141
- return Promise.resolve(null);
142
- }),
143
- getRunsByTask: vi.fn().mockResolvedValue([{
144
- runId: 'run-artificer-001',
145
- taskId: ARTIFICER_TASK_ID,
146
- runtimeKind: 'artificer',
147
- startedAt: new Date().toISOString(),
148
- }]),
149
- getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({
150
- runs: [{ runId: 'run-artificer-001', taskId: ARTIFICER_TASK_ID, runtimeKind: 'artificer', startedAt: new Date().toISOString() }],
151
- degradedRuns: [],
152
- }),
153
- updateRunOutput: vi.fn().mockResolvedValue(undefined),
154
- markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
155
- markTaskFailed: vi.fn().mockResolvedValue(undefined),
156
- markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
157
- getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
158
- };
159
- const runHandle = { runId: 'run-artificer-001', runtimeKind: 'test-double', startedAt: new Date().toISOString() };
160
- const succeededStatus = { status: 'succeeded', runId: 'run-artificer-001' };
161
- const runtimeAdapter = {
162
- startRun: vi.fn().mockResolvedValue(runHandle),
163
- pollRun: vi.fn().mockResolvedValue(succeededStatus),
164
- fetchOutput: vi.fn().mockResolvedValue({
165
- payload: makeArtificerOutput(),
166
- }),
167
- cancelRun: vi.fn().mockResolvedValue(undefined),
168
- };
169
- const eventEmitter = {
170
- emitTelemetry: vi.fn(),
171
- };
172
- const validator = new DefaultArtificerValidator();
173
- return {
174
- stateManager,
175
- runtimeAdapter,
176
- eventEmitter,
177
- validator,
178
- artifactStore,
179
- behaviorExamplePack: V2_TEST_PACK,
180
- ...overrides,
181
- };
182
- }
183
- it('taskKind not artificer fails closed and releases lease', async () => {
184
- const wrongKindTask = makeArtificerTask({ taskKind: 'dreamer' });
185
- const deps = createMockDeps();
186
- deps.stateManager.acquireLease = vi.fn().mockResolvedValue(wrongKindTask);
187
- const runner = new ArtificerRunner(deps, {
188
- owner: 'test',
189
- runtimeKind: 'artificer',
190
- pollIntervalMs: 10,
191
- timeoutMs: 1000,
192
- });
193
- const result = await runner.run(ARTIFICER_TASK_ID);
194
- expect(result.status).toBe('failed');
195
- expect(result.errorCategory).toBe('input_invalid');
196
- expect(result.failureReason).toContain("must be 'artificer'");
197
- expect(deps.stateManager.markTaskFailed).toHaveBeenCalledWith(ARTIFICER_TASK_ID, 'input_invalid');
198
- });
199
- it('lease conflict is non-mutating', async () => {
200
- const deps = createMockDeps();
201
- const leaseError = new PDRuntimeError('lease_conflict', 'Another runner holds the lease');
202
- deps.stateManager.acquireLease = vi.fn().mockRejectedValue(leaseError);
203
- const runner = new ArtificerRunner(deps, {
204
- owner: 'test',
205
- runtimeKind: 'artificer',
206
- pollIntervalMs: 10,
207
- timeoutMs: 1000,
208
- });
209
- const result = await runner.run(ARTIFICER_TASK_ID);
210
- expect(result.status).toBe('failed');
211
- expect(result.errorCategory).toBe('lease_conflict');
212
- expect(deps.stateManager.markTaskFailed).not.toHaveBeenCalled();
213
- expect(deps.stateManager.markTaskRetryWait).not.toHaveBeenCalled();
214
- });
215
- it('missing scribe dependency blocked/failure', async () => {
216
- const noDepTask = makeArtificerTask({
217
- diagnosticJson: createPITaskDiagnosticJson({
218
- dependencyTaskIds: [],
219
- channel: 'prompt',
220
- timeoutMs: 300_000,
221
- inputArtifactRefs: [],
222
- outputArtifactRefs: [],
223
- }),
224
- });
225
- const deps = createMockDeps();
226
- deps.stateManager.acquireLease = vi.fn().mockResolvedValue(noDepTask);
227
- deps.stateManager.getTask = vi.fn().mockResolvedValue(noDepTask);
228
- const runner = new ArtificerRunner(deps, {
229
- owner: 'test',
230
- runtimeKind: 'artificer',
231
- pollIntervalMs: 10,
232
- timeoutMs: 1000,
233
- });
234
- const result = await runner.run(ARTIFICER_TASK_ID);
235
- expect(result.status).toBe('failed');
236
- expect(result.errorCategory).toBe('input_invalid');
237
- });
238
- it('scribe dependency not succeeded cannot execute', async () => {
239
- const pendingScribe = makeScribeTask({ status: 'pending' });
240
- const deps = createMockDeps();
241
- deps.stateManager.getTask = vi.fn().mockImplementation((id) => {
242
- if (id === ARTIFICER_TASK_ID)
243
- return Promise.resolve(makeArtificerTask());
244
- if (id === SCRIBE_TASK_ID)
245
- return Promise.resolve(pendingScribe);
246
- return Promise.resolve(null);
247
- });
248
- const runner = new ArtificerRunner(deps, {
249
- owner: 'test',
250
- runtimeKind: 'artificer',
251
- pollIntervalMs: 10,
252
- timeoutMs: 1000,
253
- });
254
- const result = await runner.run(ARTIFICER_TASK_ID);
255
- expect(result.status).toBe('failed');
256
- expect(result.errorCategory).toBe('input_invalid');
257
- });
258
- it('scribe artifact missing goes to retry/fail', async () => {
259
- const emptyArtifactStore = new MemoryPIArtifactStore();
260
- const deps = createMockDeps({ artifactStore: emptyArtifactStore });
261
- const runner = new ArtificerRunner(deps, {
262
- owner: 'test',
263
- runtimeKind: 'artificer',
264
- pollIntervalMs: 10,
265
- timeoutMs: 1000,
266
- });
267
- const result = await runner.run(ARTIFICER_TASK_ID);
268
- expect(result.status).toBe('failed');
269
- expect(result.errorCategory).toBe('input_invalid');
270
- });
271
- it('valid runtime output writes artificer PIArtifact', async () => {
272
- const store = new MemoryPIArtifactStore();
273
- await store.upsertArtifact(makeScribeArtifact());
274
- const deps = createMockDeps({ artifactStore: store });
275
- const runner = new ArtificerRunner(deps, {
276
- owner: 'test',
277
- runtimeKind: 'artificer',
278
- pollIntervalMs: 10,
279
- timeoutMs: 1000,
280
- });
281
- const result = await runner.run(ARTIFICER_TASK_ID);
282
- expect(result.status).toBe('succeeded');
283
- expect(result.artifactId).toBeDefined();
284
- const artifacts = await store.listBySourceTaskId(ARTIFICER_TASK_ID);
285
- expect(artifacts).toHaveLength(1);
286
- expect(artifacts[0]?.artifactKind).toBe('principle');
287
- });
288
- it('PRI-780 B2: missing BehaviorExamplePack fails the attempt LOUD before any LLM call', async () => {
289
- const store = new MemoryPIArtifactStore();
290
- await store.upsertArtifact(makeScribeArtifact());
291
- // Task-driven constructors (consumer cycle, run-once) have no pack channel:
292
- // the runner must refuse at invokeRuntime (pre-LLM), never degrade to v1.
293
- const deps = createMockDeps({ artifactStore: store, behaviorExamplePack: undefined });
294
- const runner = new ArtificerRunner(deps, {
295
- owner: 'test',
296
- runtimeKind: 'artificer',
297
- pollIntervalMs: 10,
298
- timeoutMs: 1000,
299
- });
300
- const result = await runner.run(ARTIFICER_TASK_ID);
301
- expect(result.status).toBe('failed');
302
- expect(JSON.stringify(result)).toContain('behavior_example_pack_missing');
303
- // Pre-LLM proof: the runtime adapter was never invoked — no token spend.
304
- const { startRun } = deps.runtimeAdapter;
305
- expect(startRun).not.toHaveBeenCalled();
306
- });
307
- it('valid runtime output marks task succeeded', async () => {
308
- const store = new MemoryPIArtifactStore();
309
- await store.upsertArtifact(makeScribeArtifact());
310
- const deps = createMockDeps({ artifactStore: store });
311
- const runner = new ArtificerRunner(deps, {
312
- owner: 'test',
313
- runtimeKind: 'artificer',
314
- pollIntervalMs: 10,
315
- timeoutMs: 1000,
316
- });
317
- const result = await runner.run(ARTIFICER_TASK_ID);
318
- expect(result.status).toBe('succeeded');
319
- expect(deps.stateManager.markTaskSucceeded).toHaveBeenCalledWith(ARTIFICER_TASK_ID, expect.stringContaining('artificer://'));
320
- });
321
- it('invalid output does not write artifact', async () => {
322
- const store = new MemoryPIArtifactStore();
323
- await store.upsertArtifact(makeScribeArtifact());
324
- const deps = createMockDeps({ artifactStore: store });
325
- const invalidOutput = {
326
- taskId: 'wrong-task-id',
327
- sourceScribeArtifactId: '',
328
- implementationCode: '',
329
- goldenTraceCases: [],
330
- affectedTools: [],
331
- implementationSummary: '',
332
- sourceTrace: {
333
- scribeArtifactId: '',
334
- },
335
- risks: 'not-array',
336
- generatedAt: '',
337
- };
338
- deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
339
- payload: invalidOutput,
340
- });
341
- const runner = new ArtificerRunner(deps, {
342
- owner: 'test',
343
- runtimeKind: 'artificer',
344
- pollIntervalMs: 10,
345
- timeoutMs: 1000,
346
- });
347
- const result = await runner.run(ARTIFICER_TASK_ID);
348
- expect(result.status).toBe('failed');
349
- const artifacts = await store.listBySourceTaskId(ARTIFICER_TASK_ID);
350
- expect(artifacts).toHaveLength(0);
351
- });
352
- it('artifact write failure goes to retry/fail, not mark succeeded', async () => {
353
- const failingStore = {
354
- listBySourceTaskId: vi.fn().mockResolvedValue([makeScribeArtifact()]),
355
- upsertArtifact: vi.fn().mockRejectedValue(new Error('Disk full')),
356
- };
357
- const deps = createMockDeps({ artifactStore: failingStore });
358
- const runner = new ArtificerRunner(deps, {
359
- owner: 'test',
360
- runtimeKind: 'artificer',
361
- pollIntervalMs: 10,
362
- timeoutMs: 1000,
363
- });
364
- const result = await runner.run(ARTIFICER_TASK_ID);
365
- expect(result.status).toBe('failed');
366
- expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
367
- });
368
- it('mismatched sourceScribeArtifactId echo is reconciled before artifact commit (PRI-541)', async () => {
369
- const store = new MemoryPIArtifactStore();
370
- await store.upsertArtifact(makeScribeArtifact());
371
- const deps = createMockDeps({ artifactStore: store });
372
- const mismatchedOutput = makeArtificerOutput();
373
- mismatchedOutput.sourceScribeArtifactId = 'wrong-artifact-id';
374
- mismatchedOutput.sourceTrace.scribeArtifactId = 'wrong-artifact-id';
375
- deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
376
- payload: mismatchedOutput,
377
- });
378
- const runner = new ArtificerRunner(deps, {
379
- owner: 'test',
380
- runtimeKind: 'artificer',
381
- pollIntervalMs: 10,
382
- timeoutMs: 1000,
383
- });
384
- const result = await runner.run(ARTIFICER_TASK_ID);
385
- // Lineage is runner-owned (rc-6): the corrupted echo is corrected from the
386
- // task record before validation/commit instead of dead-ending (PRI-541).
387
- expect(result.status).toBe('succeeded');
388
- const artifacts = await store.listBySourceTaskId(ARTIFICER_TASK_ID);
389
- expect(artifacts).toHaveLength(1);
390
- expect(artifacts[0]?.contentJson).toContain('pi-art-scribe-001-run-001');
391
- expect(deps.stateManager.markTaskSucceeded).toHaveBeenCalled();
392
- const telemetryCalls = deps.eventEmitter.emitTelemetry.mock.calls;
393
- const correctedEvent = telemetryCalls
394
- .map((call) => call[0])
395
- .find((evt) => evt.eventType === 'artificer_lineage_echo_corrected');
396
- expect(correctedEvent).toBeDefined();
397
- expect(correctedEvent?.payload.correctedFields).toEqual(expect.arrayContaining(['sourceScribeArtifactId', 'sourceTrace.scribeArtifactId']));
398
- });
399
- });
400
- describe('ArtificerRunner.validateOutput — v2 mode-error errorCategory (CodeRabbit PR2 outside-diff)', () => {
401
- const pack = {
402
- sourceNegativeCase: {
403
- caseId: 'negative-1', kind: 'negative', toolName: 'write_file',
404
- params: { path: '/etc/passwd' }, expectedDecision: 'block',
405
- },
406
- ownerDesiredOutcome: 'block writes outside the workspace',
407
- positiveCounterexamples: [{
408
- caseId: 'positive-1', kind: 'positive', toolName: 'write_file',
409
- params: { path: '/project/file.txt' }, expectedDecision: 'allow',
410
- }],
411
- evidenceRefs: ['pain://1'],
412
- redactionNotes: [],
413
- };
414
- it('classifies modeErrors as output_invalid when base validator passes', async () => {
415
- const deps = {
416
- stateManager: {},
417
- runtimeAdapter: {},
418
- eventEmitter: {},
419
- artifactStore: new MemoryPIArtifactStore(),
420
- validator: new DefaultArtificerValidator(),
421
- behaviorExamplePack: pack,
422
- };
423
- const runner = new ArtificerRunner(deps, {
424
- owner: 'test',
425
- runtimeKind: 'artificer',
426
- pollIntervalMs: 10,
427
- timeoutMs: 1000,
428
- });
429
- // PRI-780: the base validator passes, but an output that omits
430
- // requiresContextVersion: 2 violates the v2-only contract.
431
- const output = { ...makeArtificerOutput(), requiresContextVersion: undefined };
432
- const context = {
433
- contextHash: 'test-hash',
434
- scribeArtifact: null,
435
- sourceScribeArtifactId: null,
436
- adversarialFeedback: null,
437
- repairFeedback: null,
438
- };
439
- const result = await runner.validateOutput(output, ARTIFICER_TASK_ID, context);
440
- expect(result.valid).toBe(false);
441
- expect(result.errorCategory).toBe('output_invalid');
442
- expect(result.errors.some(e => e.includes('requiresContextVersion'))).toBe(true);
443
- });
444
- });
445
- describe('DefaultArtificerValidator (PRI-111)', () => {
446
- const validator = new DefaultArtificerValidator();
447
- it('accepts valid Artificer output', async () => {
448
- const result = await validator.validate(makeArtificerOutput(), ARTIFICER_TASK_ID);
449
- expect(result.valid).toBe(true);
450
- });
451
- it('rejects taskId mismatch', async () => {
452
- const output = makeArtificerOutput();
453
- output.taskId = 'wrong';
454
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
455
- expect(result.valid).toBe(false);
456
- expect(result.errors.some(e => e.includes('taskId mismatch'))).toBe(true);
457
- });
458
- it('rejects missing sourceScribeArtifactId', async () => {
459
- const output = makeArtificerOutput();
460
- output.sourceScribeArtifactId = '';
461
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
462
- expect(result.valid).toBe(false);
463
- expect(result.errors.some(e => e.includes('sourceScribeArtifactId'))).toBe(true);
464
- });
465
- it('rejects mismatched sourceScribeArtifactId when expected is provided', async () => {
466
- const output = makeArtificerOutput();
467
- output.sourceScribeArtifactId = 'wrong-artifact-id';
468
- const result = await validator.validate(output, ARTIFICER_TASK_ID, 'pi-art-scribe-001-run-001');
469
- expect(result.valid).toBe(false);
470
- expect(result.errors.some(e => e.includes('sourceScribeArtifactId mismatch'))).toBe(true);
471
- });
472
- it('rejects mismatched sourceTrace.scribeArtifactId when expected is provided', async () => {
473
- const output = makeArtificerOutput();
474
- output.sourceTrace.scribeArtifactId = 'wrong-artifact-id';
475
- const result = await validator.validate(output, ARTIFICER_TASK_ID, 'pi-art-scribe-001-run-001');
476
- expect(result.valid).toBe(false);
477
- expect(result.errors.some(e => e.includes('sourceTrace.scribeArtifactId mismatch'))).toBe(true);
478
- });
479
- it('rejects null output', async () => {
480
- const result = await validator.validate(null, ARTIFICER_TASK_ID);
481
- expect(result.valid).toBe(false);
482
- });
483
- it('rejects missing implementationCode (unified output requires code)', async () => {
484
- const output = makeArtificerOutput();
485
- output.implementationCode = '';
486
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
487
- expect(result.valid).toBe(false);
488
- expect(result.errors.some(e => e.includes('implementationCode'))).toBe(true);
489
- });
490
- it('rejects missing implementationSummary', async () => {
491
- const output = makeArtificerOutput();
492
- output.implementationSummary = '';
493
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
494
- expect(result.valid).toBe(false);
495
- expect(result.errors.some(e => e.includes('implementationSummary'))).toBe(true);
496
- });
497
- it('rejects empty affectedTools array', async () => {
498
- const output = makeArtificerOutput();
499
- output.affectedTools = [];
500
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
501
- expect(result.valid).toBe(false);
502
- expect(result.errors.some(e => e.includes('affectedTools'))).toBe(true);
503
- });
504
- it('rejects risks with non-string elements', async () => {
505
- const output = makeArtificerOutput();
506
- output.risks = [42];
507
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
508
- expect(result.valid).toBe(false);
509
- expect(result.errors.some(e => e.includes('risks must be an array of strings'))).toBe(true);
510
- });
511
- it('rejects missing sourceTrace.scribeArtifactId', async () => {
512
- const output = makeArtificerOutput();
513
- output.sourceTrace.scribeArtifactId = '';
514
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
515
- expect(result.valid).toBe(false);
516
- expect(result.errors.some(e => e.includes('sourceTrace.scribeArtifactId'))).toBe(true);
517
- });
518
- it('accepts valid output with matching expectedSourceScribeArtifactId', async () => {
519
- const output = makeArtificerOutput();
520
- const result = await validator.validate(output, ARTIFICER_TASK_ID, 'pi-art-scribe-001-run-001');
521
- expect(result.valid).toBe(true);
522
- });
523
- it('rejects non-string philosopherArtifactId in sourceTrace', async () => {
524
- const output = makeArtificerOutput();
525
- output.sourceTrace.philosopherArtifactId = 42;
526
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
527
- expect(result.valid).toBe(false);
528
- expect(result.errors.some(e => e.includes('philosopherArtifactId'))).toBe(true);
529
- });
530
- it('rejects non-string dreamerArtifactId in sourceTrace', async () => {
531
- const output = makeArtificerOutput();
532
- output.sourceTrace.dreamerArtifactId = { evil: true };
533
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
534
- expect(result.valid).toBe(false);
535
- expect(result.errors.some(e => e.includes('dreamerArtifactId'))).toBe(true);
536
- });
537
- it('rejects mismatched sourceScribeArtifactId vs sourceTrace.scribeArtifactId', async () => {
538
- const output = makeArtificerOutput();
539
- output.sourceTrace.scribeArtifactId = 'different-id';
540
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
541
- expect(result.valid).toBe(false);
542
- expect(result.errors.some(e => e.includes('must match'))).toBe(true);
543
- });
544
- it('rejects prototype-inherited taskId (ERR-013)', async () => {
545
- const proto = { taskId: ARTIFICER_TASK_ID };
546
- const output = Object.create(proto);
547
- // Copy all own properties from a valid output except taskId
548
- const valid = makeArtificerOutput();
549
- Object.assign(output, { ...valid, taskId: undefined });
550
- delete output.taskId;
551
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
552
- expect(result.valid).toBe(false);
553
- expect(result.errors.some(e => e.includes('taskId'))).toBe(true);
554
- });
555
- it('rejects prototype-inherited sourceScribeArtifactId (ERR-013)', async () => {
556
- const output = makeArtificerOutput();
557
- const ownValue = output.sourceScribeArtifactId;
558
- delete output.sourceScribeArtifactId;
559
- Object.setPrototypeOf(output, { sourceScribeArtifactId: ownValue });
560
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
561
- expect(result.valid).toBe(false);
562
- expect(result.errors.some(e => e.includes('sourceScribeArtifactId'))).toBe(true);
563
- });
564
- it('rejects prototype-inherited sourceTrace.scribeArtifactId (ERR-013)', async () => {
565
- const output = makeArtificerOutput();
566
- const ownValue = output.sourceTrace.scribeArtifactId;
567
- delete output.sourceTrace.scribeArtifactId;
568
- Object.setPrototypeOf(output.sourceTrace, { scribeArtifactId: ownValue });
569
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
570
- expect(result.valid).toBe(false);
571
- expect(result.errors.some(e => e.includes('sourceTrace.scribeArtifactId'))).toBe(true);
572
- });
573
- it('rejects prototype-inherited implementationSummary (ERR-013)', async () => {
574
- const output = makeArtificerOutput();
575
- const ownValue = output.implementationSummary;
576
- delete output.implementationSummary;
577
- Object.setPrototypeOf(output, { implementationSummary: ownValue });
578
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
579
- expect(result.valid).toBe(false);
580
- expect(result.errors.some(e => e.includes('implementationSummary'))).toBe(true);
581
- });
582
- it('rejects empty string sourceTrace.philosopherArtifactId when present', async () => {
583
- const output = makeArtificerOutput();
584
- output.sourceTrace.philosopherArtifactId = '';
585
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
586
- expect(result.valid).toBe(false);
587
- expect(result.errors.some(e => e.includes('philosopherArtifactId'))).toBe(true);
588
- });
589
- it('rejects empty string sourceTrace.dreamerArtifactId when present', async () => {
590
- const output = makeArtificerOutput();
591
- output.sourceTrace.dreamerArtifactId = '';
592
- const result = await validator.validate(output, ARTIFICER_TASK_ID);
593
- expect(result.valid).toBe(false);
594
- expect(result.errors.some(e => e.includes('dreamerArtifactId'))).toBe(true);
595
- });
596
- });
597
- describe('ArtificerRunner integration: test-double captures sourceScribeArtifactId from prompt', () => {
598
- it('seed scribe artifact -> run artificer with test-double -> succeeded with correct sourceScribeArtifactId', async () => {
599
- const SCRIBE_ART_ID = 'pi-art-scribe-real-001';
600
- const artifactStore = new MemoryPIArtifactStore();
601
- const scribeArtifact = {
602
- artifactId: SCRIBE_ART_ID,
603
- artifactKind: 'principle',
604
- sourceTaskId: SCRIBE_TASK_ID,
605
- lineageArtifactIds: [],
606
- validationStatus: 'pending',
607
- contentJson: JSON.stringify({
608
- taskId: SCRIBE_TASK_ID,
609
- sourcePhilosopherArtifactId: 'pi-art-philosopher-001',
610
- principleDraft: {
611
- title: 'Systematic Error Handling',
612
- statement: 'All async operations must include explicit error handling',
613
- rationale: 'Uncaught errors cascade into system instability',
614
- applicability: ['All async operations'],
615
- antiPatterns: ['Ignoring promise rejections'],
616
- confidence: 0.9,
617
- },
618
- sourceTrace: { philosopherArtifactId: 'pi-art-philosopher-001' },
619
- risks: [],
620
- generatedAt: new Date().toISOString(),
621
- }),
622
- createdAt: new Date().toISOString(),
623
- updatedAt: new Date().toISOString(),
624
- };
625
- await artifactStore.upsertArtifact(scribeArtifact);
626
- const artificerTask = makeArtificerTask();
627
- let capturedSourceScribeArtifactId = SCRIBE_ART_ID;
628
- const runtimeAdapter = new TestDoubleRuntimeAdapter({
629
- onStartRun: (input) => {
630
- try {
631
- const payloadStr = typeof input.inputPayload === 'string' ? input.inputPayload : JSON.stringify(input.inputPayload);
632
- const parsed = JSON.parse(payloadStr);
633
- if (typeof parsed.sourceScribeArtifactId === 'string' && parsed.sourceScribeArtifactId.trim() !== '') {
634
- capturedSourceScribeArtifactId = parsed.sourceScribeArtifactId;
635
- }
636
- }
637
- catch { /* ignore */ }
638
- return { runId: 'run-integration-001', runtimeKind: 'test-double', startedAt: new Date().toISOString() };
639
- },
640
- onPollRun: (_runId) => ({
641
- runId: _runId,
642
- status: 'succeeded',
643
- startedAt: new Date().toISOString(),
644
- endedAt: new Date().toISOString(),
645
- }),
646
- onFetchOutput: (_runId) => ({
647
- runId: _runId,
648
- payload: {
649
- taskId: ARTIFICER_TASK_ID,
650
- sourceScribeArtifactId: capturedSourceScribeArtifactId,
651
- requiresContextVersion: 2,
652
- evidenceRefs: ['pain://1'],
653
- implementationCode: 'function evaluate(input, helpers) { return { decision: "allow", matched: false, reason: "ok" }; }',
654
- goldenTraceCases: [
655
- { caseId: 'positive-1', kind: 'positive', toolName: 'write_file', params: { path: '/project/file.txt' }, expectedDecision: 'allow', ruleContext: V2_RULE_CONTEXT },
656
- { caseId: 'negative-1', kind: 'negative', toolName: 'write_file', params: { path: '/etc/passwd' }, expectedDecision: 'block', ruleContext: V2_RULE_CONTEXT },
657
- ],
658
- affectedTools: ['write_file'],
659
- implementationSummary: 'Add input validation to all async operations',
660
- sourceTrace: {
661
- scribeArtifactId: capturedSourceScribeArtifactId,
662
- },
663
- risks: ['May add latency from error checking'],
664
- generatedAt: new Date().toISOString(),
665
- },
666
- }),
667
- });
668
- const stateManager = {
669
- acquireLease: vi.fn().mockResolvedValue(artificerTask),
670
- getTask: vi.fn().mockImplementation((id) => {
671
- if (id === ARTIFICER_TASK_ID)
672
- return Promise.resolve(artificerTask);
673
- if (id === SCRIBE_TASK_ID)
674
- return Promise.resolve(makeScribeTask());
675
- return Promise.resolve(null);
676
- }),
677
- getRunsByTask: vi.fn().mockResolvedValue([{
678
- runId: 'run-integration-001',
679
- taskId: ARTIFICER_TASK_ID,
680
- runtimeKind: 'artificer',
681
- startedAt: new Date().toISOString(),
682
- }]),
683
- getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({
684
- runs: [{ runId: 'run-integration-001', taskId: ARTIFICER_TASK_ID, runtimeKind: 'artificer', startedAt: new Date().toISOString() }],
685
- degradedRuns: [],
686
- }),
687
- updateRunOutput: vi.fn().mockResolvedValue(undefined),
688
- markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
689
- markTaskFailed: vi.fn().mockResolvedValue(undefined),
690
- markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
691
- getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
692
- };
693
- const eventEmitter = {
694
- emitTelemetry: vi.fn(),
695
- };
696
- const deps = {
697
- stateManager,
698
- runtimeAdapter,
699
- eventEmitter,
700
- validator: new DefaultArtificerValidator(),
701
- artifactStore,
702
- behaviorExamplePack: V2_TEST_PACK,
703
- };
704
- const runner = new ArtificerRunner(deps, {
705
- owner: 'test-integration',
706
- runtimeKind: 'artificer',
707
- pollIntervalMs: 10,
708
- timeoutMs: 5000,
709
- });
710
- const result = await runner.run(ARTIFICER_TASK_ID);
711
- expect(result.status).toBe('succeeded');
712
- expect(capturedSourceScribeArtifactId).toBe(SCRIBE_ART_ID);
713
- expect(result.output?.sourceScribeArtifactId).toBe(SCRIBE_ART_ID);
714
- expect(result.output?.sourceTrace.scribeArtifactId).toBe(SCRIBE_ART_ID);
715
- const artifacts = await artifactStore.listBySourceTaskId(ARTIFICER_TASK_ID);
716
- expect(artifacts).toHaveLength(1);
717
- expect(artifacts[0]?.artifactKind).toBe('principle');
718
- const [storedArtifact] = artifacts;
719
- expect(storedArtifact).toBeDefined();
720
- if (!storedArtifact)
721
- return;
722
- const storedOutput = JSON.parse(storedArtifact.contentJson);
723
- expect(storedOutput.sourceScribeArtifactId).toBe(SCRIBE_ART_ID);
724
- expect(storedOutput.sourceTrace.scribeArtifactId).toBe(SCRIBE_ART_ID);
725
- });
726
- });
727
- describe('PRI-508: ArtificerRunner.buildContext reads dreamer artifact via scribe.sourceTrace.dreamerArtifactId', () => {
728
- // Vertical slice 4: end-to-end — dreamer artifact in store → prompt contains dreamerContext 5维字段
729
- const SCRIBE_ART_ID = 'pi-art-scribe-pri508';
730
- const DREAMER_ART_ID = 'pi-art-dreamer-pri508';
731
- const SCRIBE_TASK_ID_PRI508 = 'scribe-pri508';
732
- const ARTIFICER_TASK_ID_PRI508 = 'artificer-pri508';
733
- function makeScribeArtifactWithDreamer() {
734
- return {
735
- artifactId: SCRIBE_ART_ID,
736
- artifactKind: 'principle',
737
- sourceTaskId: SCRIBE_TASK_ID_PRI508,
738
- lineageArtifactIds: [DREAMER_ART_ID],
739
- validationStatus: 'pending',
740
- contentJson: JSON.stringify({
741
- taskId: SCRIBE_TASK_ID_PRI508,
742
- sourcePhilosopherArtifactId: 'pi-art-philosopher-pri508',
743
- principleDraft: {
744
- title: 'Path Traversal Guard',
745
- statement: 'Validate parent path before write_file',
746
- rationale: 'Unchecked parent path enables path traversal',
747
- applicability: ['write_file'],
748
- antiPatterns: ['Trusting raw user input path'],
749
- confidence: 0.9,
750
- },
751
- sourceTrace: {
752
- philosopherArtifactId: 'pi-art-philosopher-pri508',
753
- dreamerArtifactId: DREAMER_ART_ID,
754
- },
755
- risks: [],
756
- generatedAt: new Date().toISOString(),
757
- }),
758
- createdAt: new Date().toISOString(),
759
- updatedAt: new Date().toISOString(),
760
- };
761
- }
762
- function makeDreamerArtifact() {
763
- return {
764
- artifactId: DREAMER_ART_ID,
765
- artifactKind: 'principle',
766
- sourceTaskId: 'dreamer-task-pri508',
767
- lineageArtifactIds: [],
768
- validationStatus: 'pending',
769
- contentJson: JSON.stringify({
770
- valid: true,
771
- taskId: 'dreamer-task-pri508',
772
- candidates: [
773
- {
774
- candidateIndex: 0,
775
- badDecision: 'agent called write_file without resolving parent path',
776
- betterDecision: 'agent must resolve and validate parent path before write_file',
777
- rationale: 'parent path resolution prevents path traversal exploits',
778
- confidence: 0.85,
779
- riskLevel: 'medium',
780
- strategicPerspective: 'proactive validation beats reactive cleanup',
781
- },
782
- ],
783
- contextRefs: [],
784
- generatedAt: new Date().toISOString(),
785
- }),
786
- createdAt: new Date().toISOString(),
787
- updatedAt: new Date().toISOString(),
788
- };
789
- }
790
- function makeScribeTaskPri508() {
791
- return {
792
- taskId: SCRIBE_TASK_ID_PRI508,
793
- taskKind: 'scribe',
794
- status: 'succeeded',
795
- attemptCount: 1,
796
- maxAttempts: 3,
797
- resultRef: 'scribe://run-pri508',
798
- createdAt: new Date().toISOString(),
799
- updatedAt: new Date().toISOString(),
800
- diagnosticJson: createPITaskDiagnosticJson({
801
- dependencyTaskIds: [],
802
- channel: 'prompt',
803
- timeoutMs: 300_000,
804
- inputArtifactRefs: [],
805
- outputArtifactRefs: [{ artifactType: 'principle', ref: SCRIBE_ART_ID }],
806
- }),
807
- };
808
- }
809
- function makeArtificerTaskPri508() {
810
- return {
811
- taskId: ARTIFICER_TASK_ID_PRI508,
812
- taskKind: 'artificer',
813
- status: 'pending',
814
- attemptCount: 0,
815
- maxAttempts: 3,
816
- createdAt: new Date().toISOString(),
817
- updatedAt: new Date().toISOString(),
818
- diagnosticJson: createPITaskDiagnosticJson({
819
- dependencyTaskIds: [SCRIBE_TASK_ID_PRI508],
820
- channel: 'prompt',
821
- timeoutMs: 300_000,
822
- inputArtifactRefs: [{ artifactType: 'principle', ref: SCRIBE_ART_ID }],
823
- outputArtifactRefs: [],
824
- }),
825
- };
826
- }
827
- function makeArtificerOutputPri508() {
828
- return {
829
- taskId: ARTIFICER_TASK_ID_PRI508,
830
- sourceScribeArtifactId: SCRIBE_ART_ID,
831
- requiresContextVersion: 2,
832
- evidenceRefs: ['pain://1'],
833
- implementationCode: 'function evaluate(input, helpers) { return { decision: "allow", matched: false, reason: "ok" }; }',
834
- goldenTraceCases: [
835
- { caseId: 'positive-1', kind: 'positive', toolName: 'write_file', params: { path: '/project/file.txt' }, expectedDecision: 'allow', ruleContext: V2_RULE_CONTEXT },
836
- { caseId: 'negative-1', kind: 'negative', toolName: 'write_file', params: { path: '/etc/passwd' }, expectedDecision: 'block', ruleContext: V2_RULE_CONTEXT },
837
- ],
838
- affectedTools: ['write_file'],
839
- implementationSummary: 'Validate parent path before write',
840
- sourceTrace: {
841
- scribeArtifactId: SCRIBE_ART_ID,
842
- },
843
- risks: [],
844
- generatedAt: new Date().toISOString(),
845
- };
846
- }
847
- it('dreamerContext 5维字段透传到 artificer prompt (end-to-end)', async () => {
848
- const artifactStore = new MemoryPIArtifactStore();
849
- await artifactStore.upsertArtifact(makeScribeArtifactWithDreamer());
850
- await artifactStore.upsertArtifact(makeDreamerArtifact());
851
- const artificerTask = makeArtificerTaskPri508();
852
- const scribeTask = makeScribeTaskPri508();
853
- const stateManager = {
854
- acquireLease: vi.fn().mockResolvedValue(artificerTask),
855
- getTask: vi.fn().mockImplementation((id) => {
856
- if (id === ARTIFICER_TASK_ID_PRI508)
857
- return Promise.resolve(artificerTask);
858
- if (id === SCRIBE_TASK_ID_PRI508)
859
- return Promise.resolve(scribeTask);
860
- return Promise.resolve(null);
861
- }),
862
- getRunsByTask: vi.fn().mockResolvedValue([{
863
- runId: 'run-pri508',
864
- taskId: ARTIFICER_TASK_ID_PRI508,
865
- runtimeKind: 'artificer',
866
- startedAt: new Date().toISOString(),
867
- }]),
868
- getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({
869
- runs: [{ runId: 'run-pri508', taskId: ARTIFICER_TASK_ID_PRI508, runtimeKind: 'artificer', startedAt: new Date().toISOString() }],
870
- degradedRuns: [],
871
- }),
872
- updateRunOutput: vi.fn().mockResolvedValue(undefined),
873
- markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
874
- markTaskFailed: vi.fn().mockResolvedValue(undefined),
875
- markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
876
- getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
877
- };
878
- let capturedPrompt;
879
- const runtimeAdapter = {
880
- startRun: vi.fn().mockImplementation((input) => {
881
- capturedPrompt = typeof input.inputPayload === 'string' ? input.inputPayload : JSON.stringify(input.inputPayload);
882
- return Promise.resolve({ runId: 'run-pri508', runtimeKind: 'test-double', startedAt: new Date().toISOString() });
883
- }),
884
- pollRun: vi.fn().mockResolvedValue({ status: 'succeeded', runId: 'run-pri508' }),
885
- fetchOutput: vi.fn().mockResolvedValue({ payload: makeArtificerOutputPri508() }),
886
- cancelRun: vi.fn().mockResolvedValue(undefined),
887
- };
888
- const eventEmitter = { emitTelemetry: vi.fn() };
889
- const validator = new DefaultArtificerValidator();
890
- const deps = {
891
- stateManager,
892
- runtimeAdapter,
893
- eventEmitter,
894
- artifactStore,
895
- validator,
896
- behaviorExamplePack: V2_TEST_PACK,
897
- };
898
- const runner = new ArtificerRunner(deps, {
899
- owner: 'test',
900
- runtimeKind: 'artificer',
901
- pollIntervalMs: 10,
902
- timeoutMs: 1000,
903
- });
904
- const result = await runner.run(ARTIFICER_TASK_ID_PRI508);
905
- expect(result.status).toBe('succeeded');
906
- // Assert the prompt captured at startRun contains the dreamer candidate set
907
- expect(capturedPrompt).toBeDefined();
908
- const parsed = JSON.parse(capturedPrompt);
909
- expect(parsed.dreamerContext).toBeDefined();
910
- expect(parsed.dreamerContext.candidates).toHaveLength(1);
911
- expect(parsed.dreamerContext.candidates[0].badDecision).toBe('agent called write_file without resolving parent path');
912
- expect(parsed.dreamerContext.candidates[0].betterDecision).toBe('agent must resolve and validate parent path before write_file');
913
- expect(parsed.dreamerContext.candidates[0].rationale).toBe('parent path resolution prevents path traversal exploits');
914
- expect(parsed.dreamerContext.candidates[0].riskLevel).toBe('medium');
915
- expect(parsed.dreamerContext.candidates[0].strategicPerspective).toBe('proactive validation beats reactive cleanup');
916
- expect(parsed.dreamerContext.omittedCandidateCount).toBe(0);
917
- });
918
- it('dreamerArtifactId 缺失时 dreamerContext undefined (向后兼容)', async () => {
919
- // scribe artifact 不带 sourceTrace.dreamerArtifactId → dreamerContext 不出现在 prompt
920
- const artifactStore = new MemoryPIArtifactStore();
921
- const scribeArtifactNoDreamer = {
922
- artifactId: SCRIBE_ART_ID,
923
- artifactKind: 'principle',
924
- sourceTaskId: SCRIBE_TASK_ID_PRI508,
925
- lineageArtifactIds: [],
926
- validationStatus: 'pending',
927
- contentJson: JSON.stringify({
928
- taskId: SCRIBE_TASK_ID_PRI508,
929
- sourcePhilosopherArtifactId: 'pi-art-philosopher-pri508',
930
- principleDraft: {
931
- title: 'Path Traversal Guard',
932
- statement: 'Validate parent path before write_file',
933
- rationale: 'Unchecked parent path enables path traversal',
934
- applicability: ['write_file'],
935
- antiPatterns: ['Trusting raw user input path'],
936
- confidence: 0.9,
937
- },
938
- sourceTrace: {
939
- philosopherArtifactId: 'pi-art-philosopher-pri508',
940
- // dreamerArtifactId 刻意缺失
941
- },
942
- risks: [],
943
- generatedAt: new Date().toISOString(),
944
- }),
945
- createdAt: new Date().toISOString(),
946
- updatedAt: new Date().toISOString(),
947
- };
948
- await artifactStore.upsertArtifact(scribeArtifactNoDreamer);
949
- const artificerTask = makeArtificerTaskPri508();
950
- const scribeTask = makeScribeTaskPri508();
951
- const stateManager = {
952
- acquireLease: vi.fn().mockResolvedValue(artificerTask),
953
- getTask: vi.fn().mockImplementation((id) => {
954
- if (id === ARTIFICER_TASK_ID_PRI508)
955
- return Promise.resolve(artificerTask);
956
- if (id === SCRIBE_TASK_ID_PRI508)
957
- return Promise.resolve(scribeTask);
958
- return Promise.resolve(null);
959
- }),
960
- getRunsByTask: vi.fn().mockResolvedValue([{ runId: 'run-pri508-nodreamer', taskId: ARTIFICER_TASK_ID_PRI508, runtimeKind: 'artificer', startedAt: new Date().toISOString() }]),
961
- getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({ runs: [{ runId: 'run-pri508-nodreamer', taskId: ARTIFICER_TASK_ID_PRI508, runtimeKind: 'artificer', startedAt: new Date().toISOString() }], degradedRuns: [] }),
962
- updateRunOutput: vi.fn().mockResolvedValue(undefined),
963
- markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
964
- markTaskFailed: vi.fn().mockResolvedValue(undefined),
965
- markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
966
- getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
967
- };
968
- let capturedPrompt;
969
- const runtimeAdapter = {
970
- startRun: vi.fn().mockImplementation((input) => {
971
- capturedPrompt = typeof input.inputPayload === 'string' ? input.inputPayload : JSON.stringify(input.inputPayload);
972
- return Promise.resolve({ runId: 'run-pri508-nodreamer', runtimeKind: 'test-double', startedAt: new Date().toISOString() });
973
- }),
974
- pollRun: vi.fn().mockResolvedValue({ status: 'succeeded', runId: 'run-pri508-nodreamer' }),
975
- fetchOutput: vi.fn().mockResolvedValue({ payload: makeArtificerOutputPri508() }),
976
- cancelRun: vi.fn().mockResolvedValue(undefined),
977
- };
978
- const eventEmitter = { emitTelemetry: vi.fn() };
979
- const validator = new DefaultArtificerValidator();
980
- const deps = {
981
- stateManager,
982
- runtimeAdapter,
983
- eventEmitter,
984
- artifactStore,
985
- validator,
986
- behaviorExamplePack: V2_TEST_PACK,
987
- };
988
- const runner = new ArtificerRunner(deps, {
989
- owner: 'test',
990
- runtimeKind: 'artificer',
991
- pollIntervalMs: 10,
992
- timeoutMs: 1000,
993
- });
994
- const result = await runner.run(ARTIFICER_TASK_ID_PRI508);
995
- expect(result.status).toBe('succeeded');
996
- expect(capturedPrompt).toBeDefined();
997
- const parsed = JSON.parse(capturedPrompt);
998
- expect(parsed.dreamerContext).toBeUndefined();
999
- });
1000
- it('dreamerArtifactId 存在但 artifact 查不到时 emit event + dreamerContext undefined (rc-9)', async () => {
1001
- // scribe 带 dreamerArtifactId 但 store 里没有 dreamer artifact → 不能静默成功,要有可观察事件
1002
- const artifactStore = new MemoryPIArtifactStore();
1003
- await artifactStore.upsertArtifact(makeScribeArtifactWithDreamer());
1004
- // 故意不 upsert dreamer artifact
1005
- const artificerTask = makeArtificerTaskPri508();
1006
- const scribeTask = makeScribeTaskPri508();
1007
- const stateManager = {
1008
- acquireLease: vi.fn().mockResolvedValue(artificerTask),
1009
- getTask: vi.fn().mockImplementation((id) => {
1010
- if (id === ARTIFICER_TASK_ID_PRI508)
1011
- return Promise.resolve(artificerTask);
1012
- if (id === SCRIBE_TASK_ID_PRI508)
1013
- return Promise.resolve(scribeTask);
1014
- return Promise.resolve(null);
1015
- }),
1016
- getRunsByTask: vi.fn().mockResolvedValue([{ runId: 'run-pri508-missing', taskId: ARTIFICER_TASK_ID_PRI508, runtimeKind: 'artificer', startedAt: new Date().toISOString() }]),
1017
- getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({ runs: [{ runId: 'run-pri508-missing', taskId: ARTIFICER_TASK_ID_PRI508, runtimeKind: 'artificer', startedAt: new Date().toISOString() }], degradedRuns: [] }),
1018
- updateRunOutput: vi.fn().mockResolvedValue(undefined),
1019
- markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
1020
- markTaskFailed: vi.fn().mockResolvedValue(undefined),
1021
- markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
1022
- getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
1023
- };
1024
- let capturedPrompt;
1025
- const runtimeAdapter = {
1026
- startRun: vi.fn().mockImplementation((input) => {
1027
- capturedPrompt = typeof input.inputPayload === 'string' ? input.inputPayload : JSON.stringify(input.inputPayload);
1028
- return Promise.resolve({ runId: 'run-pri508-missing', runtimeKind: 'test-double', startedAt: new Date().toISOString() });
1029
- }),
1030
- pollRun: vi.fn().mockResolvedValue({ status: 'succeeded', runId: 'run-pri508-missing' }),
1031
- fetchOutput: vi.fn().mockResolvedValue({ payload: makeArtificerOutputPri508() }),
1032
- cancelRun: vi.fn().mockResolvedValue(undefined),
1033
- };
1034
- const emitTelemetry = vi.fn();
1035
- const eventEmitter = { emitTelemetry };
1036
- const validator = new DefaultArtificerValidator();
1037
- const deps = {
1038
- stateManager,
1039
- runtimeAdapter,
1040
- eventEmitter,
1041
- artifactStore,
1042
- validator,
1043
- behaviorExamplePack: V2_TEST_PACK,
1044
- };
1045
- const runner = new ArtificerRunner(deps, {
1046
- owner: 'test',
1047
- runtimeKind: 'artificer',
1048
- pollIntervalMs: 10,
1049
- timeoutMs: 1000,
1050
- });
1051
- const result = await runner.run(ARTIFICER_TASK_ID_PRI508);
1052
- // 仍应成功(dreamerContext 是 best-effort,不阻塞主流程)
1053
- expect(result.status).toBe('succeeded');
1054
- // rc-9: 不能静默 — 必须有可观察事件
1055
- // emitTelemetry 接收单个结构化对象 (eventType + traceId + payload + ...)
1056
- expect(emitTelemetry).toHaveBeenCalledWith(expect.objectContaining({
1057
- eventType: expect.stringContaining('dreamer'),
1058
- traceId: ARTIFICER_TASK_ID_PRI508,
1059
- }));
1060
- expect(capturedPrompt).toBeDefined();
1061
- const parsed = JSON.parse(capturedPrompt);
1062
- expect(parsed.dreamerContext).toBeUndefined();
1063
- });
1064
- // ── PRI-508 edge cases: cover resolveDreamerContext() failure branches (rc-9) ──
1065
- // Each case asserts: (a) runner still succeeds (best-effort, non-blocking),
1066
- // (b) dreamerContext undefined in prompt, (c) emitTelemetry called with the
1067
- // expected observable event name so the gap is not silent.
1068
- /**
1069
- * Shared harness for PRI-508 edge-case tests. Accepts a custom scribe artifact
1070
- * and optional dreamer artifact, runs the artificer end-to-end, and returns
1071
- * the captured prompt + telemetry spy so each case can assert behavior.
1072
- */
1073
- async function runPri508EdgeCase(params) {
1074
- const artifactStore = new MemoryPIArtifactStore();
1075
- await artifactStore.upsertArtifact(params.scribeArtifact);
1076
- if (params.dreamerArtifact) {
1077
- await artifactStore.upsertArtifact(params.dreamerArtifact);
1078
- }
1079
- const artificerTask = makeArtificerTaskPri508();
1080
- const scribeTask = makeScribeTaskPri508();
1081
- const stateManager = {
1082
- acquireLease: vi.fn().mockResolvedValue(artificerTask),
1083
- getTask: vi.fn().mockImplementation((id) => {
1084
- if (id === ARTIFICER_TASK_ID_PRI508)
1085
- return Promise.resolve(artificerTask);
1086
- if (id === SCRIBE_TASK_ID_PRI508)
1087
- return Promise.resolve(scribeTask);
1088
- return Promise.resolve(null);
1089
- }),
1090
- getRunsByTask: vi.fn().mockResolvedValue([{ runId: 'run-pri508-edge', taskId: ARTIFICER_TASK_ID_PRI508, runtimeKind: 'artificer', startedAt: new Date().toISOString() }]),
1091
- getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({ runs: [{ runId: 'run-pri508-edge', taskId: ARTIFICER_TASK_ID_PRI508, runtimeKind: 'artificer', startedAt: new Date().toISOString() }], degradedRuns: [] }),
1092
- updateRunOutput: vi.fn().mockResolvedValue(undefined),
1093
- markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
1094
- markTaskFailed: vi.fn().mockResolvedValue(undefined),
1095
- markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
1096
- getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
1097
- };
1098
- let capturedPrompt;
1099
- const runtimeAdapter = {
1100
- startRun: vi.fn().mockImplementation((input) => {
1101
- capturedPrompt = typeof input.inputPayload === 'string' ? input.inputPayload : JSON.stringify(input.inputPayload);
1102
- return Promise.resolve({ runId: 'run-pri508-edge', runtimeKind: 'test-double', startedAt: new Date().toISOString() });
1103
- }),
1104
- pollRun: vi.fn().mockResolvedValue({ status: 'succeeded', runId: 'run-pri508-edge' }),
1105
- fetchOutput: vi.fn().mockResolvedValue({ payload: makeArtificerOutputPri508() }),
1106
- cancelRun: vi.fn().mockResolvedValue(undefined),
1107
- };
1108
- const emitTelemetry = vi.fn();
1109
- const eventEmitter = { emitTelemetry };
1110
- const validator = new DefaultArtificerValidator();
1111
- const deps = {
1112
- stateManager,
1113
- runtimeAdapter,
1114
- eventEmitter,
1115
- artifactStore,
1116
- validator,
1117
- behaviorExamplePack: V2_TEST_PACK,
1118
- };
1119
- const runner = new ArtificerRunner(deps, {
1120
- owner: 'test',
1121
- runtimeKind: 'artificer',
1122
- pollIntervalMs: 10,
1123
- timeoutMs: 1000,
1124
- });
1125
- const result = await runner.run(ARTIFICER_TASK_ID_PRI508);
1126
- return { result, capturedPrompt, emitTelemetry };
1127
- }
1128
- /** Build a scribe artifact with a custom contentJson string. */
1129
- function makeScribeWithContentJson(contentJson) {
1130
- return {
1131
- artifactId: SCRIBE_ART_ID,
1132
- artifactKind: 'principle',
1133
- sourceTaskId: SCRIBE_TASK_ID_PRI508,
1134
- lineageArtifactIds: [],
1135
- validationStatus: 'pending',
1136
- contentJson,
1137
- createdAt: new Date().toISOString(),
1138
- updatedAt: new Date().toISOString(),
1139
- };
1140
- }
1141
- /** Build a scribe artifact whose sourceTrace.dreamerArtifactId points to DREAMER_ART_ID. */
1142
- function makeScribeWithDreamerRef() {
1143
- return makeScribeWithContentJson(JSON.stringify({
1144
- taskId: SCRIBE_TASK_ID_PRI508,
1145
- sourcePhilosopherArtifactId: 'pi-art-philosopher-pri508',
1146
- principleDraft: { title: 'T', statement: 'S', rationale: 'R', applicability: [], antiPatterns: [], confidence: 0.5 },
1147
- sourceTrace: { philosopherArtifactId: 'pi-art-philosopher-pri508', dreamerArtifactId: DREAMER_ART_ID },
1148
- risks: [],
1149
- generatedAt: new Date().toISOString(),
1150
- }));
1151
- }
1152
- /** Build a dreamer artifact with a custom contentJson string. */
1153
- function makeDreamerWithContentJson(contentJson) {
1154
- return {
1155
- artifactId: DREAMER_ART_ID,
1156
- artifactKind: 'principle',
1157
- sourceTaskId: 'dreamer-task-pri508',
1158
- lineageArtifactIds: [],
1159
- validationStatus: 'pending',
1160
- contentJson,
1161
- createdAt: new Date().toISOString(),
1162
- updatedAt: new Date().toISOString(),
1163
- };
1164
- }
1165
- it.each([
1166
- {
1167
- name: 'scribe contentJson unparseable → emit dreamer_context_skipped',
1168
- scribeContentJson: '{not valid json',
1169
- expectedEvent: 'dreamer_context_skipped',
1170
- },
1171
- {
1172
- name: 'scribe contentJson not a record (array) → emit dreamer_context_skipped (PRI-816 rc-9)',
1173
- scribeContentJson: JSON.stringify(['not', 'a', 'record']),
1174
- expectedEvent: 'dreamer_context_skipped',
1175
- },
1176
- {
1177
- name: 'scribe.sourceTrace missing → emit dreamer_context_skipped (PRI-816 rc-9; backward-compat skip is now observable)',
1178
- scribeContentJson: JSON.stringify({ taskId: SCRIBE_TASK_ID_PRI508, principleDraft: { statement: 'S' } }),
1179
- expectedEvent: 'dreamer_context_skipped',
1180
- },
1181
- {
1182
- name: 'scribe.sourceTrace not a record (string) → emit dreamer_context_skipped (PRI-816 rc-9)',
1183
- scribeContentJson: JSON.stringify({ sourceTrace: 'not-a-record' }),
1184
- expectedEvent: 'dreamer_context_skipped',
1185
- },
1186
- {
1187
- name: 'sourceTrace.dreamerArtifactId missing → emit dreamer_context_skipped (PRI-816 rc-9)',
1188
- scribeContentJson: JSON.stringify({ sourceTrace: { philosopherArtifactId: 'pi-art-philosopher-pri508' } }),
1189
- expectedEvent: 'dreamer_context_skipped',
1190
- },
1191
- {
1192
- name: 'sourceTrace.dreamerArtifactId is undefined → emit dreamer_context_skipped (PRI-816 rc-9)',
1193
- scribeContentJson: JSON.stringify({ sourceTrace: { dreamerArtifactId: undefined } }),
1194
- expectedEvent: 'dreamer_context_skipped',
1195
- },
1196
- {
1197
- name: 'sourceTrace.dreamerArtifactId not a string (object) → emit dreamer_context_skipped',
1198
- scribeContentJson: JSON.stringify({ sourceTrace: { dreamerArtifactId: { evil: true } } }),
1199
- expectedEvent: 'dreamer_context_skipped',
1200
- },
1201
- {
1202
- name: 'sourceTrace.dreamerArtifactId empty string → emit dreamer_context_skipped',
1203
- scribeContentJson: JSON.stringify({ sourceTrace: { dreamerArtifactId: '' } }),
1204
- expectedEvent: 'dreamer_context_skipped',
1205
- },
1206
- ])('edge: $name', async ({ scribeContentJson, expectedEvent }) => {
1207
- const { result, capturedPrompt, emitTelemetry } = await runPri508EdgeCase({
1208
- scribeArtifact: makeScribeWithContentJson(scribeContentJson),
1209
- });
1210
- // Best-effort: runner still succeeds even when dreamer context cannot be resolved.
1211
- expect(result.status).toBe('succeeded');
1212
- expect(capturedPrompt).toBeDefined();
1213
- const parsed = JSON.parse(capturedPrompt);
1214
- expect(parsed.dreamerContext).toBeUndefined();
1215
- if (expectedEvent !== null) {
1216
- // rc-9: failure must be observable, not silent.
1217
- expect(emitTelemetry).toHaveBeenCalledWith(expect.objectContaining({
1218
- eventType: expect.stringContaining(expectedEvent),
1219
- traceId: ARTIFICER_TASK_ID_PRI508,
1220
- }));
1221
- }
1222
- });
1223
- it.each([
1224
- {
1225
- name: 'dreamer contentJson unparseable → emit dreamer_context_invalid',
1226
- dreamerContentJson: '{broken json',
1227
- expectedEvent: 'dreamer_context_invalid',
1228
- },
1229
- {
1230
- name: 'dreamer contentJson not a record (array) → emit dreamer_context_invalid',
1231
- dreamerContentJson: JSON.stringify(['not', 'a', 'record']),
1232
- expectedEvent: 'dreamer_context_invalid',
1233
- },
1234
- {
1235
- name: 'dreamer candidates missing → emit dreamer_context_invalid',
1236
- dreamerContentJson: JSON.stringify({ valid: true, taskId: 'dreamer-task-pri508' }),
1237
- expectedEvent: 'dreamer_context_invalid',
1238
- },
1239
- {
1240
- name: 'dreamer candidates not an array (string) → emit dreamer_context_invalid',
1241
- dreamerContentJson: JSON.stringify({ candidates: 'not-an-array' }),
1242
- expectedEvent: 'dreamer_context_invalid',
1243
- },
1244
- {
1245
- name: 'dreamer candidates empty array → emit dreamer_context_invalid',
1246
- dreamerContentJson: JSON.stringify({ candidates: [] }),
1247
- expectedEvent: 'dreamer_context_invalid',
1248
- },
1249
- {
1250
- name: 'dreamer candidates[0] not a record (string) → emit dreamer_context_invalid',
1251
- dreamerContentJson: JSON.stringify({ candidates: ['not-a-record'] }),
1252
- expectedEvent: 'dreamer_context_invalid',
1253
- },
1254
- {
1255
- name: 'dreamer candidates[0] missing badDecision → emit dreamer_context_invalid',
1256
- dreamerContentJson: JSON.stringify({ candidates: [{ betterDecision: 'b', rationale: 'r' }] }),
1257
- expectedEvent: 'dreamer_context_invalid',
1258
- },
1259
- {
1260
- name: 'dreamer candidates[0] missing betterDecision → emit dreamer_context_invalid',
1261
- dreamerContentJson: JSON.stringify({ candidates: [{ badDecision: 'a', rationale: 'r' }] }),
1262
- expectedEvent: 'dreamer_context_invalid',
1263
- },
1264
- {
1265
- name: 'dreamer candidates[0] missing rationale → emit dreamer_context_invalid',
1266
- dreamerContentJson: JSON.stringify({ candidates: [{ badDecision: 'a', betterDecision: 'b' }] }),
1267
- expectedEvent: 'dreamer_context_invalid',
1268
- },
1269
- {
1270
- name: 'dreamer candidates[0] badDecision empty string → emit dreamer_context_invalid',
1271
- dreamerContentJson: JSON.stringify({ candidates: [{ badDecision: ' ', betterDecision: 'b', rationale: 'r' }] }),
1272
- expectedEvent: 'dreamer_context_invalid',
1273
- },
1274
- {
1275
- name: 'dreamer candidates[0] badDecision not a string (number) → emit dreamer_context_invalid',
1276
- dreamerContentJson: JSON.stringify({ candidates: [{ badDecision: 42, betterDecision: 'b', rationale: 'r' }] }),
1277
- expectedEvent: 'dreamer_context_invalid',
1278
- },
1279
- ])('edge: $name', async ({ dreamerContentJson, expectedEvent }) => {
1280
- const { result, capturedPrompt, emitTelemetry } = await runPri508EdgeCase({
1281
- scribeArtifact: makeScribeWithDreamerRef(),
1282
- dreamerArtifact: makeDreamerWithContentJson(dreamerContentJson),
1283
- });
1284
- // Best-effort: runner still succeeds even when dreamer context validation fails.
1285
- expect(result.status).toBe('succeeded');
1286
- expect(capturedPrompt).toBeDefined();
1287
- const parsed = JSON.parse(capturedPrompt);
1288
- expect(parsed.dreamerContext).toBeUndefined();
1289
- // rc-9: failure must be observable, not silent.
1290
- expect(emitTelemetry).toHaveBeenCalledWith(expect.objectContaining({
1291
- eventType: expect.stringContaining(expectedEvent),
1292
- traceId: ARTIFICER_TASK_ID_PRI508,
1293
- }));
1294
- });
1295
- it('edge: dreamer proposal with only required 3 fields + no optional → dreamerContext resolved (explicit nulls)', async () => {
1296
- // Validates the optional-field path: riskLevel/strategicPerspective/confidence
1297
- // absent should still yield a valid candidate, with the unresolvable signals
1298
- // carried as explicit nulls rather than silently dropped (rc-9).
1299
- const dreamerArtifact = makeDreamerWithContentJson(JSON.stringify({
1300
- candidates: [{
1301
- badDecision: 'bad',
1302
- betterDecision: 'better',
1303
- rationale: 'why',
1304
- // riskLevel and strategicPerspective intentionally absent
1305
- }],
1306
- }));
1307
- const { result, capturedPrompt } = await runPri508EdgeCase({
1308
- scribeArtifact: makeScribeWithDreamerRef(),
1309
- dreamerArtifact,
1310
- });
1311
- expect(result.status).toBe('succeeded');
1312
- expect(capturedPrompt).toBeDefined();
1313
- const parsed = JSON.parse(capturedPrompt);
1314
- expect(parsed.dreamerContext).toBeDefined();
1315
- const [candidate] = parsed.dreamerContext.candidates;
1316
- expect(candidate.badDecision).toBe('bad');
1317
- expect(candidate.betterDecision).toBe('better');
1318
- expect(candidate.rationale).toBe('why');
1319
- expect(candidate.riskLevel).toBeNull();
1320
- expect(candidate.strategicPerspective).toBeNull();
1321
- expect(candidate.confidence).toBeNull();
1322
- expect(parsed.dreamerContext.omittedCandidateCount).toBe(0);
1323
- });
1324
- // ── PRI-839: bounded candidate set (was candidates[0]-only) ──────────────
1325
- it('PRI-839: EVERY dreamer candidate reaches the prompt, priority-ranked by confidence', async () => {
1326
- const dreamerArtifact = makeDreamerWithContentJson(JSON.stringify({
1327
- candidates: [
1328
- { candidateIndex: 0, badDecision: 'bad-0', betterDecision: 'better-0', rationale: 'why-0', confidence: 0.4, riskLevel: 'high', strategicPerspective: 'lens-0' },
1329
- { candidateIndex: 1, badDecision: 'bad-1', betterDecision: 'better-1', rationale: 'why-1', confidence: 0.9, riskLevel: 'low', strategicPerspective: 'lens-1' },
1330
- { candidateIndex: 2, badDecision: 'bad-2', betterDecision: 'better-2', rationale: 'why-2', confidence: 0.6, riskLevel: 'medium', strategicPerspective: 'lens-2' },
1331
- ],
1332
- }));
1333
- const { result, capturedPrompt } = await runPri508EdgeCase({
1334
- scribeArtifact: makeScribeWithDreamerRef(),
1335
- dreamerArtifact,
1336
- });
1337
- expect(result.status).toBe('succeeded');
1338
- const parsed = JSON.parse(capturedPrompt);
1339
- expect(parsed.dreamerContext).toBeDefined();
1340
- // The DC-3 fix: all three alternatives survive — not just candidates[0].
1341
- expect(parsed.dreamerContext.candidates).toHaveLength(3);
1342
- // Deterministic priority: confidence DESC, then authored index.
1343
- expect(parsed.dreamerContext.candidates.map((c) => c.candidateIndex)).toEqual([1, 2, 0]);
1344
- expect(parsed.dreamerContext.candidates.map((c) => c.priorityRank)).toEqual([1, 2, 3]);
1345
- expect(parsed.dreamerContext.omittedCandidateCount).toBe(0);
1346
- expect(parsed.dreamerContext.differenceSummary).toContain('3 mutually distinct proposals');
1347
- expect(parsed.dreamerContext.differenceSummary).toContain('risk spread');
1348
- });
1349
- it('PRI-839: candidates beyond the bound are dropped, counted, and announced', async () => {
1350
- const candidates = Array.from({ length: FORMATION_CANDIDATE_LIMIT + 2 }, (_, index) => ({
1351
- candidateIndex: index,
1352
- badDecision: `bad-${index}`,
1353
- betterDecision: `better-${index}`,
1354
- rationale: `why-${index}`,
1355
- confidence: 0.5,
1356
- riskLevel: 'low',
1357
- strategicPerspective: `lens-${index}`,
1358
- }));
1359
- const { result, capturedPrompt, emitTelemetry } = await runPri508EdgeCase({
1360
- scribeArtifact: makeScribeWithDreamerRef(),
1361
- dreamerArtifact: makeDreamerWithContentJson(JSON.stringify({ candidates })),
1362
- });
1363
- expect(result.status).toBe('succeeded');
1364
- const parsed = JSON.parse(capturedPrompt);
1365
- expect(parsed.dreamerContext.candidates).toHaveLength(FORMATION_CANDIDATE_LIMIT);
1366
- expect(parsed.dreamerContext.omittedCandidateCount).toBe(2);
1367
- // rc-9: the truncation is observable, not silent.
1368
- expect(emitTelemetry).toHaveBeenCalledWith(expect.objectContaining({
1369
- eventType: expect.stringContaining('dreamer_context_partial'),
1370
- traceId: ARTIFICER_TASK_ID_PRI508,
1371
- }));
1372
- });
1373
- it('PRI-839 legacy: a malformed candidate is skipped without discarding the valid ones', async () => {
1374
- const dreamerArtifact = makeDreamerWithContentJson(JSON.stringify({
1375
- candidates: [
1376
- { badDecision: 'bad-0', betterDecision: 'better-0', rationale: 'why-0' },
1377
- { betterDecision: 'b', rationale: 'r' }, // malformed: no badDecision
1378
- 'not-a-record', // malformed: not an object
1379
- { badDecision: 'bad-3', betterDecision: 'better-3', rationale: 'why-3' },
1380
- ],
1381
- }));
1382
- const { result, capturedPrompt } = await runPri508EdgeCase({
1383
- scribeArtifact: makeScribeWithDreamerRef(),
1384
- dreamerArtifact,
1385
- });
1386
- expect(result.status).toBe('succeeded');
1387
- const parsed = JSON.parse(capturedPrompt);
1388
- expect(parsed.dreamerContext.candidates).toHaveLength(2);
1389
- expect(parsed.dreamerContext.candidates.map((c) => c.candidateIndex)).toEqual([0, 3]);
1390
- });
1391
- it('PRI-839: single candidate still resolves (no behaviour change from the old path)', async () => {
1392
- const { result, capturedPrompt } = await runPri508EdgeCase({
1393
- scribeArtifact: makeScribeWithDreamerRef(),
1394
- dreamerArtifact: makeDreamerWithContentJson(JSON.stringify({
1395
- candidates: [{ badDecision: 'only-bad', betterDecision: 'only-better', rationale: 'only-why', confidence: 0.7, riskLevel: 'medium', strategicPerspective: 'lens' }],
1396
- })),
1397
- });
1398
- expect(result.status).toBe('succeeded');
1399
- const parsed = JSON.parse(capturedPrompt);
1400
- expect(parsed.dreamerContext.candidates).toHaveLength(1);
1401
- expect(parsed.dreamerContext.candidates[0].badDecision).toBe('only-bad');
1402
- expect(parsed.dreamerContext.differenceSummary).toContain('no alternatives were proposed');
1403
- });
1404
- });
1405
- // ── PRI-509 Slice 3: ArtificerRunner.buildContext reads repairPayload ────────
1406
- // When evaluator returns needs_revision, it seeds an artificer repair task
1407
- // whose diagnosticJson contains a repairPayload. The artificer-runner must
1408
- // detect this payload, format it as a repairFeedback string, and forward it
1409
- // to the prompt builder so the LLM addresses each requiredChange instead of
1410
- // regenerating blind. Trust boundary (rc-1, rc-2): repairPayload originates
1411
- // from evaluator LLM output persisted in diagnosticJson — already validated
1412
- // by isValidRepairPayload in pitask-metadata.ts, but the runner must still
1413
- // treat the hydrated value as opaque text when formatting the prompt.
1414
- describe('PRI-509: ArtificerRunner.buildContext reads repairPayload → repairFeedback', () => {
1415
- const SCRIBE_ART_ID_PRI509 = 'pi-art-scribe-pri509';
1416
- const SCRIBE_TASK_ID_PRI509 = 'scribe-pri509';
1417
- const ARTIFICER_TASK_ID_PRI509 = 'artificer-repair-r1';
1418
- function makeScribeArtifactPri509() {
1419
- return {
1420
- artifactId: SCRIBE_ART_ID_PRI509,
1421
- artifactKind: 'principle',
1422
- sourceTaskId: SCRIBE_TASK_ID_PRI509,
1423
- lineageArtifactIds: [],
1424
- validationStatus: 'pending',
1425
- contentJson: JSON.stringify({
1426
- taskId: SCRIBE_TASK_ID_PRI509,
1427
- sourcePhilosopherArtifactId: 'pi-art-philosopher-pri509',
1428
- principleDraft: {
1429
- title: 'Input Validation Discipline',
1430
- statement: 'Validate tool inputs before execution',
1431
- rationale: 'Unvalidated inputs cause downstream failures',
1432
- applicability: ['all tools'],
1433
- antiPatterns: ['Trusting raw input'],
1434
- confidence: 0.85,
1435
- },
1436
- sourceTrace: { philosopherArtifactId: 'pi-art-philosopher-pri509' },
1437
- risks: [],
1438
- generatedAt: new Date().toISOString(),
1439
- }),
1440
- createdAt: new Date().toISOString(),
1441
- updatedAt: new Date().toISOString(),
1442
- };
1443
- }
1444
- function makeMetadata(overrides) {
1445
- return {
1446
- dependencyTaskIds: overrides?.dependencyTaskIds ?? [],
1447
- channel: overrides?.channel ?? 'prompt',
1448
- timeoutMs: overrides?.timeoutMs ?? 300_000,
1449
- inputArtifactRefs: overrides?.inputArtifactRefs ?? [],
1450
- outputArtifactRefs: overrides?.outputArtifactRefs ?? [],
1451
- parentTaskId: overrides?.parentTaskId,
1452
- correlationId: overrides?.correlationId,
1453
- rejectionCount: overrides?.rejectionCount,
1454
- adversarialFeedback: overrides?.adversarialFeedback,
1455
- repairPayload: overrides?.repairPayload,
1456
- };
1457
- }
1458
- function makeArtificerTaskPri509(repairPayload) {
1459
- const meta = makeMetadata({
1460
- dependencyTaskIds: [SCRIBE_TASK_ID_PRI509],
1461
- channel: 'prompt',
1462
- timeoutMs: 300_000,
1463
- inputArtifactRefs: [{ artifactType: 'principle', ref: SCRIBE_ART_ID_PRI509 }],
1464
- outputArtifactRefs: [],
1465
- });
1466
- if (repairPayload) {
1467
- meta.repairPayload = repairPayload;
1468
- }
1469
- return {
1470
- taskId: ARTIFICER_TASK_ID_PRI509,
1471
- taskKind: 'artificer',
1472
- status: 'pending',
1473
- attemptCount: 0,
1474
- maxAttempts: 3,
1475
- createdAt: new Date().toISOString(),
1476
- updatedAt: new Date().toISOString(),
1477
- diagnosticJson: createPITaskDiagnosticJson(meta),
1478
- };
1479
- }
1480
- function makeArtificerOutputPri509() {
1481
- return {
1482
- taskId: ARTIFICER_TASK_ID_PRI509,
1483
- sourceScribeArtifactId: SCRIBE_ART_ID_PRI509,
1484
- requiresContextVersion: 2,
1485
- evidenceRefs: ['pain://1'],
1486
- implementationCode: 'function evaluate(input, helpers) { return { decision: "allow", matched: false, reason: "ok" }; }',
1487
- goldenTraceCases: [
1488
- { caseId: 'positive-1', kind: 'positive', toolName: 'write_file', params: { path: '/project/file.txt' }, expectedDecision: 'allow', ruleContext: V2_RULE_CONTEXT },
1489
- { caseId: 'negative-1', kind: 'negative', toolName: 'write_file', params: { path: '/etc/passwd' }, expectedDecision: 'block', ruleContext: V2_RULE_CONTEXT },
1490
- ],
1491
- affectedTools: ['write_file'],
1492
- implementationSummary: 'Validate parent path before write',
1493
- sourceTrace: { scribeArtifactId: SCRIBE_ART_ID_PRI509 },
1494
- risks: [],
1495
- generatedAt: new Date().toISOString(),
1496
- };
1497
- }
1498
- function makeScribeTaskPri509() {
1499
- return {
1500
- taskId: SCRIBE_TASK_ID_PRI509,
1501
- taskKind: 'scribe',
1502
- status: 'succeeded',
1503
- attemptCount: 1,
1504
- maxAttempts: 3,
1505
- resultRef: 'scribe://run-pri509',
1506
- createdAt: new Date().toISOString(),
1507
- updatedAt: new Date().toISOString(),
1508
- diagnosticJson: createPITaskDiagnosticJson({
1509
- dependencyTaskIds: [],
1510
- channel: 'prompt',
1511
- timeoutMs: 300_000,
1512
- inputArtifactRefs: [],
1513
- outputArtifactRefs: [{ artifactType: 'principle', ref: SCRIBE_ART_ID_PRI509 }],
1514
- }),
1515
- };
1516
- }
1517
- async function runPri509RepairLoop(artificerTask) {
1518
- const store = new MemoryPIArtifactStore();
1519
- await store.upsertArtifact(makeScribeArtifactPri509());
1520
- const scribeTask = makeScribeTaskPri509();
1521
- const stateManager = {
1522
- acquireLease: vi.fn().mockResolvedValue(artificerTask),
1523
- getTask: vi.fn().mockImplementation((id) => {
1524
- if (id === ARTIFICER_TASK_ID_PRI509)
1525
- return Promise.resolve(artificerTask);
1526
- if (id === SCRIBE_TASK_ID_PRI509)
1527
- return Promise.resolve(scribeTask);
1528
- return Promise.resolve(null);
1529
- }),
1530
- getRunsByTask: vi.fn().mockResolvedValue([{ runId: 'run-pri509', taskId: ARTIFICER_TASK_ID_PRI509, runtimeKind: 'artificer', startedAt: new Date().toISOString() }]),
1531
- getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({ runs: [{ runId: 'run-pri509', taskId: ARTIFICER_TASK_ID_PRI509, runtimeKind: 'artificer', startedAt: new Date().toISOString() }], degradedRuns: [] }),
1532
- updateRunOutput: vi.fn().mockResolvedValue(undefined),
1533
- markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
1534
- markTaskFailed: vi.fn().mockResolvedValue(undefined),
1535
- markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
1536
- getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
1537
- };
1538
- let capturedPrompt;
1539
- const runtimeAdapter = {
1540
- startRun: vi.fn().mockImplementation((input) => {
1541
- capturedPrompt = typeof input.inputPayload === 'string' ? input.inputPayload : JSON.stringify(input.inputPayload);
1542
- return Promise.resolve({ runId: 'run-pri509', runtimeKind: 'test-double', startedAt: new Date().toISOString() });
1543
- }),
1544
- pollRun: vi.fn().mockResolvedValue({ status: 'succeeded', runId: 'run-pri509' }),
1545
- fetchOutput: vi.fn().mockResolvedValue({ payload: makeArtificerOutputPri509() }),
1546
- cancelRun: vi.fn().mockResolvedValue(undefined),
1547
- };
1548
- const eventEmitter = { emitTelemetry: vi.fn() };
1549
- const validator = new DefaultArtificerValidator();
1550
- const deps = {
1551
- stateManager,
1552
- runtimeAdapter,
1553
- eventEmitter,
1554
- artifactStore: store,
1555
- validator,
1556
- behaviorExamplePack: V2_TEST_PACK,
1557
- };
1558
- const runner = new ArtificerRunner(deps, {
1559
- owner: 'test',
1560
- runtimeKind: 'artificer',
1561
- pollIntervalMs: 10,
1562
- timeoutMs: 1000,
1563
- });
1564
- const result = await runner.run(ARTIFICER_TASK_ID_PRI509);
1565
- return { result, capturedPrompt };
1566
- }
1567
- it('repairPayload present → repairFeedback serialized into prompt message (with requiredChanges text + previousScore)', async () => {
1568
- const artificerTask = makeArtificerTaskPri509({
1569
- requiredChanges: ['add path validation', 'fix case sensitivity'],
1570
- concerns: ['code quality is poor', 'missing error handling'],
1571
- previousScore: 0.65,
1572
- repairIteration: 1,
1573
- sourceArtificerArtifactId: 'pi-art-artificer-original',
1574
- sourceEvaluatorTaskId: 'evaluator-r0',
1575
- });
1576
- const { result, capturedPrompt } = await runPri509RepairLoop(artificerTask);
1577
- expect(result.status).toBe('succeeded');
1578
- expect(capturedPrompt).toBeDefined();
1579
- const parsed = JSON.parse(capturedPrompt);
1580
- expect(parsed.repairFeedback).toBeDefined();
1581
- // requiredChanges text must be present so artificer can address each one
1582
- expect(parsed.repairFeedback).toContain('add path validation');
1583
- expect(parsed.repairFeedback).toContain('fix case sensitivity');
1584
- // previousScore must be present so artificer knows the prior score
1585
- expect(parsed.repairFeedback).toContain('0.65');
1586
- // concerns text must be present (PoC-validated format)
1587
- expect(parsed.repairFeedback).toContain('code quality is poor');
1588
- // Must signal this is a needs_revision retry (not a fresh attempt)
1589
- expect(parsed.repairFeedback).toMatch(/needs_revision|prior attempt/i);
1590
- });
1591
- it('repairPayload absent → repairFeedback undefined in prompt (backward compat)', async () => {
1592
- // Round-1 artificer task without repairPayload — repairFeedback must NOT
1593
- // appear in the prompt (backward compatible with pre-PRI-509 flows).
1594
- const artificerTask = makeArtificerTaskPri509(); // no repairPayload
1595
- const { result, capturedPrompt } = await runPri509RepairLoop(artificerTask);
1596
- expect(result.status).toBe('succeeded');
1597
- expect(capturedPrompt).toBeDefined();
1598
- const parsed = JSON.parse(capturedPrompt);
1599
- expect(parsed.repairFeedback).toBeUndefined();
1600
- });
1601
- it('repairPayload present → repairFeedback appears in promptInput (typed surface)', async () => {
1602
- const artificerTask = makeArtificerTaskPri509({
1603
- requiredChanges: ['add input validation'],
1604
- concerns: [],
1605
- previousScore: 0.55,
1606
- repairIteration: 2,
1607
- sourceArtificerArtifactId: 'pi-art-artificer-r1',
1608
- sourceEvaluatorTaskId: 'evaluator-r1',
1609
- });
1610
- const { result } = await runPri509RepairLoop(artificerTask);
1611
- expect(result.status).toBe('succeeded');
1612
- // The typed promptInput surface must also carry repairFeedback ( Slice 2 contract).
1613
- // We can't directly inspect promptInput here — it's internal to the runner.
1614
- // The prompt message assertion above already covers the e2e path. This test
1615
- // exists to assert the runner doesn't throw when repairIteration=2.
1616
- });
1617
- it('repairPayload + adversarialFeedback both present → both forwarded (orthogonal)', async () => {
1618
- // PRI-428 (adversarialFeedback) and PRI-509 (repairPayload) are orthogonal
1619
- // signals — adversarialFeedback comes from RuleHost probe failures, while
1620
- // repairPayload comes from evaluator needs_revision. Both can be present on
1621
- // the same task and must both reach the prompt.
1622
- const meta = makeMetadata({
1623
- dependencyTaskIds: [SCRIBE_TASK_ID_PRI509],
1624
- channel: 'prompt',
1625
- timeoutMs: 300_000,
1626
- inputArtifactRefs: [{ artifactType: 'principle', ref: SCRIBE_ART_ID_PRI509 }],
1627
- outputArtifactRefs: [],
1628
- });
1629
- meta.adversarialFeedback = 'Adversarial probe failed: tool=test_tool, case=neg-1, expected=block, got=allow';
1630
- meta.repairPayload = {
1631
- requiredChanges: ['add input validation'],
1632
- concerns: ['missing error handling'],
1633
- previousScore: 0.6,
1634
- repairIteration: 1,
1635
- sourceArtificerArtifactId: 'pi-art-artificer-original',
1636
- sourceEvaluatorTaskId: 'evaluator-r0',
1637
- };
1638
- const artificerTask = {
1639
- taskId: ARTIFICER_TASK_ID_PRI509,
1640
- taskKind: 'artificer',
1641
- status: 'pending',
1642
- attemptCount: 0,
1643
- maxAttempts: 3,
1644
- createdAt: new Date().toISOString(),
1645
- updatedAt: new Date().toISOString(),
1646
- diagnosticJson: createPITaskDiagnosticJson(meta),
1647
- };
1648
- const { result, capturedPrompt } = await runPri509RepairLoop(artificerTask);
1649
- expect(result.status).toBe('succeeded');
1650
- expect(capturedPrompt).toBeDefined();
1651
- const parsed = JSON.parse(capturedPrompt);
1652
- // Both signals must be present
1653
- expect(parsed.adversarialFeedback).toBeDefined();
1654
- expect(parsed.adversarialFeedback).toContain('Adversarial probe failed');
1655
- expect(parsed.repairFeedback).toBeDefined();
1656
- expect(parsed.repairFeedback).toContain('add input validation');
1657
- expect(parsed.repairFeedback).toContain('0.6');
1658
- });
1659
- it('repairPayload with diagnosticReplay → replay evidence rendered in repairFeedback (PRI-634 R4 P1-2)', async () => {
1660
- // The evaluator's needs_revision round ran the diagnostic adversarial
1661
- // replay; its evidence must reach the next Artificer via repairFeedback.
1662
- const artificerTask = makeArtificerTaskPri509({
1663
- requiredChanges: ['fix matcher semantics'],
1664
- concerns: ['intent mismatch'],
1665
- previousScore: 0.5,
1666
- repairIteration: 1,
1667
- sourceArtificerArtifactId: 'pi-art-artificer-original',
1668
- sourceEvaluatorTaskId: 'evaluator-r0',
1669
- diagnosticReplay: { ran: true, passed: true, failedCaseCount: 0 },
1670
- });
1671
- const { result, capturedPrompt } = await runPri509RepairLoop(artificerTask);
1672
- expect(result.status).toBe('succeeded');
1673
- expect(capturedPrompt).toBeDefined();
1674
- const parsed = JSON.parse(capturedPrompt);
1675
- expect(parsed.repairFeedback).toBeDefined();
1676
- expect(parsed.repairFeedback).toContain('Deterministic adversarial replay');
1677
- expect(parsed.repairFeedback).toContain('PASSED');
1678
- // The diagnostic note must be explicit that it does NOT change the verdict
1679
- expect(parsed.repairFeedback).toContain('needs_revision');
1680
- });
1681
- it('isValidRepairPayload rejects malformed diagnosticReplay (fail-closed hydrate, PRI-634 R4)', () => {
1682
- // diagnosticJson round-trip: a repairPayload whose diagnosticReplay has a
1683
- // non-boolean `ran` must be rejected at the trust boundary (rc-1/rc-3) —
1684
- // hydrate yields repairPayload=undefined rather than trusting the shape.
1685
- const base = {
1686
- requiredChanges: ['fix matcher'],
1687
- concerns: [],
1688
- previousScore: 0.5,
1689
- repairIteration: 1,
1690
- sourceArtificerArtifactId: 'pi-art-artificer-original',
1691
- sourceEvaluatorTaskId: 'evaluator-r0',
1692
- };
1693
- const malformed = [
1694
- { ran: 'yes', passed: true, failedCaseCount: 0 }, // ran not boolean
1695
- { ran: true, passed: 1, failedCaseCount: 0 }, // passed not boolean
1696
- { ran: true, passed: true, failedCaseCount: -1 }, // negative count
1697
- { ran: true, passed: true, failedCaseCount: 1.5 }, // non-integer count
1698
- 'not-an-object', // whole field wrong type
1699
- ];
1700
- for (const bad of malformed) {
1701
- const meta = makeMetadata({ dependencyTaskIds: [SCRIBE_TASK_ID_PRI509] });
1702
- meta.repairPayload = { ...base, diagnosticReplay: bad };
1703
- const taskJson = createPITaskDiagnosticJson(meta);
1704
- const hydrated = parsePITaskMetadata(taskJson);
1705
- expect(hydrated?.repairPayload, `expected rejection for ${JSON.stringify(bad)}`).toBeUndefined();
1706
- }
1707
- // Valid diagnosticReplay passes the trust boundary
1708
- const metaOk = makeMetadata({ dependencyTaskIds: [SCRIBE_TASK_ID_PRI509] });
1709
- metaOk.repairPayload = { ...base, diagnosticReplay: { ran: true, passed: false, failedCaseCount: 2 } };
1710
- const hydratedOk = parsePITaskMetadata(createPITaskDiagnosticJson(metaOk));
1711
- expect(hydratedOk?.repairPayload?.diagnosticReplay).toEqual({ ran: true, passed: false, failedCaseCount: 2 });
1712
- });
1713
- });
1714
- // ── PRI-859 (CIL-001): contextHash covers the dreamer candidate lineage ─────
1715
- describe('PRI-859: Artificer contextHash covers the dreamer candidate lineage', () => {
1716
- const SCRIBE_TASK_859 = 'scribe-pri859';
1717
- const ARTIFICER_TASK_859 = 'artificer-pri859';
1718
- const SCRIBE_ART_859 = 'pi-art-scribe-pri859';
1719
- const DREAMER_ART_A = 'pi-art-dreamer-pri859-A';
1720
- const DREAMER_ART_B = 'pi-art-dreamer-pri859-B';
1721
- function scribeTask859() {
1722
- return {
1723
- taskId: SCRIBE_TASK_859,
1724
- taskKind: 'scribe',
1725
- status: 'succeeded',
1726
- attemptCount: 1,
1727
- maxAttempts: 3,
1728
- resultRef: 'scribe://run-pri859',
1729
- createdAt: new Date().toISOString(),
1730
- updatedAt: new Date().toISOString(),
1731
- diagnosticJson: createPITaskDiagnosticJson({
1732
- dependencyTaskIds: [],
1733
- channel: 'prompt',
1734
- timeoutMs: 300_000,
1735
- inputArtifactRefs: [],
1736
- outputArtifactRefs: [{ artifactType: 'principle', ref: SCRIBE_ART_859 }],
1737
- }),
1738
- };
1739
- }
1740
- function artificerTask859() {
1741
- return {
1742
- taskId: ARTIFICER_TASK_859,
1743
- taskKind: 'artificer',
1744
- status: 'pending',
1745
- attemptCount: 0,
1746
- maxAttempts: 3,
1747
- createdAt: new Date().toISOString(),
1748
- updatedAt: new Date().toISOString(),
1749
- diagnosticJson: createPITaskDiagnosticJson({
1750
- dependencyTaskIds: [SCRIBE_TASK_859],
1751
- channel: 'prompt',
1752
- timeoutMs: 300_000,
1753
- inputArtifactRefs: [{ artifactType: 'principle', ref: SCRIBE_ART_859 }],
1754
- outputArtifactRefs: [],
1755
- }),
1756
- };
1757
- }
1758
- /** Scribe artifact whose sourceTrace optionally points at a dreamer artifact. */
1759
- function scribeArtifact859(dreamerArtifactId) {
1760
- return {
1761
- artifactId: SCRIBE_ART_859,
1762
- artifactKind: 'principle',
1763
- sourceTaskId: SCRIBE_TASK_859,
1764
- lineageArtifactIds: dreamerArtifactId ? [dreamerArtifactId] : [],
1765
- validationStatus: 'pending',
1766
- contentJson: JSON.stringify({
1767
- taskId: SCRIBE_TASK_859,
1768
- sourcePhilosopherArtifactId: 'pi-art-philosopher-pri859',
1769
- principleDraft: { title: 'T', statement: 'S', rationale: 'R', applicability: [], antiPatterns: [], confidence: 0.5 },
1770
- sourceTrace: {
1771
- philosopherArtifactId: 'pi-art-philosopher-pri859',
1772
- ...(dreamerArtifactId !== undefined ? { dreamerArtifactId } : {}),
1773
- },
1774
- risks: [],
1775
- generatedAt: new Date().toISOString(),
1776
- }),
1777
- createdAt: new Date().toISOString(),
1778
- updatedAt: new Date().toISOString(),
1779
- };
1780
- }
1781
- function dreamerArtifact859(artifactId, marker) {
1782
- return {
1783
- artifactId,
1784
- artifactKind: 'principle',
1785
- sourceTaskId: `dreamer-task-${marker}`,
1786
- lineageArtifactIds: [],
1787
- validationStatus: 'pending',
1788
- contentJson: JSON.stringify({
1789
- valid: true,
1790
- taskId: `dreamer-task-${marker}`,
1791
- candidates: [{
1792
- candidateIndex: 0,
1793
- badDecision: `bad decision ${marker}`,
1794
- betterDecision: `better decision ${marker}`,
1795
- rationale: `rationale ${marker}`,
1796
- confidence: 0.8,
1797
- riskLevel: 'medium',
1798
- strategicPerspective: `strategy ${marker}`,
1799
- }],
1800
- contextRefs: [],
1801
- generatedAt: new Date().toISOString(),
1802
- }),
1803
- createdAt: new Date().toISOString(),
1804
- updatedAt: new Date().toISOString(),
1805
- };
1806
- }
1807
- function runner859(artifactStore) {
1808
- const scribeTask = scribeTask859();
1809
- const artificerTask = artificerTask859();
1810
- const stateManager = {
1811
- getTask: vi.fn().mockImplementation((id) => {
1812
- if (id === ARTIFICER_TASK_859)
1813
- return Promise.resolve(artificerTask);
1814
- if (id === SCRIBE_TASK_859)
1815
- return Promise.resolve(scribeTask);
1816
- return Promise.resolve(null);
1817
- }),
1818
- };
1819
- let capturedInputPayload;
1820
- const runtimeAdapter = {
1821
- startRun: vi.fn().mockImplementation((input) => {
1822
- capturedInputPayload = input.inputPayload;
1823
- return Promise.resolve({ runId: 'run-pri859', runtimeKind: 'test-double', startedAt: new Date().toISOString() });
1824
- }),
1825
- };
1826
- const eventEmitter = { emitTelemetry: vi.fn() };
1827
- const runner = new ArtificerRunner({
1828
- stateManager,
1829
- runtimeAdapter,
1830
- eventEmitter,
1831
- artifactStore,
1832
- validator: new DefaultArtificerValidator(),
1833
- behaviorExamplePack: V2_TEST_PACK,
1834
- }, {
1835
- owner: 'test',
1836
- runtimeKind: 'artificer',
1837
- pollIntervalMs: 10,
1838
- timeoutMs: 1000,
1839
- });
1840
- return { runner, captured: () => capturedInputPayload };
1841
- }
1842
- it('same semantic input ⇒ same contextHash (deterministic identity)', async () => {
1843
- const store = new MemoryPIArtifactStore();
1844
- await store.upsertArtifact(scribeArtifact859(DREAMER_ART_A));
1845
- await store.upsertArtifact(dreamerArtifact859(DREAMER_ART_A, 'A'));
1846
- const { runner } = runner859(store);
1847
- const first = await runner.buildContext(ARTIFICER_TASK_859);
1848
- const second = await runner.buildContext(ARTIFICER_TASK_859);
1849
- expect(first.dreamerContext).toBeDefined();
1850
- expect(first.contextHash).toMatch(/^ctx-/);
1851
- expect(second.contextHash).toBe(first.contextHash);
1852
- });
1853
- it('different candidate context ⇒ different contextHash (CIL-001 core bug; pre-fix both worlds shared one identity)', async () => {
1854
- const storeA = new MemoryPIArtifactStore();
1855
- await storeA.upsertArtifact(scribeArtifact859(DREAMER_ART_A));
1856
- await storeA.upsertArtifact(dreamerArtifact859(DREAMER_ART_A, 'A'));
1857
- const storeB = new MemoryPIArtifactStore();
1858
- await storeB.upsertArtifact(scribeArtifact859(DREAMER_ART_B));
1859
- await storeB.upsertArtifact(dreamerArtifact859(DREAMER_ART_B, 'B'));
1860
- const ctxA = await runner859(storeA).runner.buildContext(ARTIFICER_TASK_859);
1861
- const ctxB = await runner859(storeB).runner.buildContext(ARTIFICER_TASK_859);
1862
- // Same scribe artifact id in both worlds — the ONLY difference is the
1863
- // dreamer candidate lineage the prompt visibly carries.
1864
- expect(ctxA.sourceScribeArtifactId).toBe(ctxB.sourceScribeArtifactId);
1865
- expect(ctxA.dreamerContext).toBeDefined();
1866
- expect(ctxB.dreamerContext).toBeDefined();
1867
- expect(ctxA.contextHash).not.toBe(ctxB.contextHash);
1868
- });
1869
- it('candidate content change with the SAME ids (dreamer re-upsert) still shifts identity when the lineage id moves', async () => {
1870
- // The impact scenario from CIL-001: a re-run writes a new dreamer artifact
1871
- // (fresh artifact id, upsert semantics). The identity that the prompt's
1872
- // candidate set is derived from must not stay on the stale hash.
1873
- const store = new MemoryPIArtifactStore();
1874
- await store.upsertArtifact(scribeArtifact859(DREAMER_ART_A));
1875
- await store.upsertArtifact(dreamerArtifact859(DREAMER_ART_A, 'A'));
1876
- const before = await runner859(store).runner.buildContext(ARTIFICER_TASK_859);
1877
- // Re-point the scribe lineage at a different dreamer artifact carrying a
1878
- // different candidate set (as a re-run + upsert produces).
1879
- await store.upsertArtifact(scribeArtifact859(DREAMER_ART_B));
1880
- await store.upsertArtifact(dreamerArtifact859(DREAMER_ART_B, 'B'));
1881
- const after = await runner859(store).runner.buildContext(ARTIFICER_TASK_859);
1882
- expect(after.contextHash).not.toBe(before.contextHash);
1883
- });
1884
- it('missing optional dreamer context preserves the fallback identity (refs = [scribeArtifactId] only)', async () => {
1885
- // No sourceTrace.dreamerArtifactId at all...
1886
- const storeNoRef = new MemoryPIArtifactStore();
1887
- await storeNoRef.upsertArtifact(scribeArtifact859(undefined));
1888
- const ctxNoRef = await runner859(storeNoRef).runner.buildContext(ARTIFICER_TASK_859);
1889
- expect(ctxNoRef.dreamerContext).toBeUndefined();
1890
- // ...and dreamer ref present but unresolvable (degraded, rc-9 observable).
1891
- const storeMissing = new MemoryPIArtifactStore();
1892
- await storeMissing.upsertArtifact(scribeArtifact859(DREAMER_ART_A));
1893
- const ctxMissing = await runner859(storeMissing).runner.buildContext(ARTIFICER_TASK_859);
1894
- expect(ctxMissing.dreamerContext).toBeUndefined();
1895
- // Both degrade to the pre-PRI-859 identity shape: hash of [artifactRef]
1896
- // only — backward compatible, and distinct from the dreamer-covered hash.
1897
- const storeWithDreamer = new MemoryPIArtifactStore();
1898
- await storeWithDreamer.upsertArtifact(scribeArtifact859(DREAMER_ART_A));
1899
- await storeWithDreamer.upsertArtifact(dreamerArtifact859(DREAMER_ART_A, 'A'));
1900
- const ctxWithDreamer = await runner859(storeWithDreamer).runner.buildContext(ARTIFICER_TASK_859);
1901
- expect(ctxNoRef.contextHash).toBe(ctxMissing.contextHash);
1902
- expect(ctxNoRef.contextHash).not.toBe(ctxWithDreamer.contextHash);
1903
- });
1904
- it('identity fix does NOT change the model-visible prompt shape (no lineage field leaks into dreamerContext)', async () => {
1905
- const store = new MemoryPIArtifactStore();
1906
- await store.upsertArtifact(scribeArtifact859(DREAMER_ART_A));
1907
- await store.upsertArtifact(dreamerArtifact859(DREAMER_ART_A, 'A'));
1908
- const { runner, captured } = runner859(store);
1909
- const ctx = await runner.buildContext(ARTIFICER_TASK_859);
1910
- await runner.invokeRuntime(ARTIFICER_TASK_859, ctx);
1911
- expect(captured()).toBeDefined();
1912
- const parsed = JSON.parse(captured());
1913
- expect(parsed.dreamerContext).toBeDefined();
1914
- // Exactly the pre-PRI-859 three-field projection — sourceDreamerArtifactId
1915
- // is hash input only and must never reach the model.
1916
- expect(Object.keys(parsed.dreamerContext).sort()).toEqual(['candidates', 'differenceSummary', 'omittedCandidateCount']);
1917
- expect(parsed.dreamerContext.sourceDreamerArtifactId).toBeUndefined();
1918
- expect(parsed.dreamerContext.dreamerArtifactId).toBeUndefined();
1919
- // The contextHash field itself is prompt-visible and carries the new identity.
1920
- expect(parsed.contextHash).toBe(ctx.contextHash);
1921
- });
1922
- });
1923
- //# sourceMappingURL=artificer-runner-vslice.test.js.map