@principles/core 1.287.0 → 1.287.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1590) 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/index.d.ts +5 -4
  21. package/dist/runtime-v2/index.d.ts.map +1 -1
  22. package/dist/runtime-v2/index.js +3 -3
  23. package/dist/runtime-v2/index.js.map +1 -1
  24. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts +8 -5
  25. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts.map +1 -1
  26. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js +22 -5
  27. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js.map +1 -1
  28. package/dist/runtime-v2/runner/diagnostician-validator.d.ts +5 -11
  29. package/dist/runtime-v2/runner/diagnostician-validator.d.ts.map +1 -1
  30. package/dist/runtime-v2/runner/diagnostician-validator.js +1 -10
  31. package/dist/runtime-v2/runner/diagnostician-validator.js.map +1 -1
  32. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.d.ts +22 -0
  33. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.d.ts.map +1 -1
  34. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js +13 -4
  35. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js.map +1 -1
  36. package/package.json +5 -3
  37. package/dist/evolution-store.test.d.ts +0 -2
  38. package/dist/evolution-store.test.d.ts.map +0 -1
  39. package/dist/evolution-store.test.js +0 -294
  40. package/dist/evolution-store.test.js.map +0 -1
  41. package/dist/host/__tests__/host-adapter.test.d.ts +0 -2
  42. package/dist/host/__tests__/host-adapter.test.d.ts.map +0 -1
  43. package/dist/host/__tests__/host-adapter.test.js +0 -108
  44. package/dist/host/__tests__/host-adapter.test.js.map +0 -1
  45. package/dist/principle-tree-ledger-lifecycle.test.d.ts +0 -2
  46. package/dist/principle-tree-ledger-lifecycle.test.d.ts.map +0 -1
  47. package/dist/principle-tree-ledger-lifecycle.test.js +0 -530
  48. package/dist/principle-tree-ledger-lifecycle.test.js.map +0 -1
  49. package/dist/prompt-builder/__tests__/attitude-directive.test.d.ts +0 -2
  50. package/dist/prompt-builder/__tests__/attitude-directive.test.d.ts.map +0 -1
  51. package/dist/prompt-builder/__tests__/attitude-directive.test.js +0 -49
  52. package/dist/prompt-builder/__tests__/attitude-directive.test.js.map +0 -1
  53. package/dist/prompt-builder/__tests__/correction-cue.test.d.ts +0 -2
  54. package/dist/prompt-builder/__tests__/correction-cue.test.d.ts.map +0 -1
  55. package/dist/prompt-builder/__tests__/correction-cue.test.js +0 -61
  56. package/dist/prompt-builder/__tests__/correction-cue.test.js.map +0 -1
  57. package/dist/prompt-builder/__tests__/empathy-keyword-matching.test.d.ts +0 -2
  58. package/dist/prompt-builder/__tests__/empathy-keyword-matching.test.d.ts.map +0 -1
  59. package/dist/prompt-builder/__tests__/empathy-keyword-matching.test.js +0 -380
  60. package/dist/prompt-builder/__tests__/empathy-keyword-matching.test.js.map +0 -1
  61. package/dist/prompt-builder/__tests__/focus-compression.test.d.ts +0 -2
  62. package/dist/prompt-builder/__tests__/focus-compression.test.d.ts.map +0 -1
  63. package/dist/prompt-builder/__tests__/focus-compression.test.js +0 -265
  64. package/dist/prompt-builder/__tests__/focus-compression.test.js.map +0 -1
  65. package/dist/prompt-builder/__tests__/message-extraction.test.d.ts +0 -2
  66. package/dist/prompt-builder/__tests__/message-extraction.test.d.ts.map +0 -1
  67. package/dist/prompt-builder/__tests__/message-extraction.test.js +0 -90
  68. package/dist/prompt-builder/__tests__/message-extraction.test.js.map +0 -1
  69. package/dist/prompt-builder/__tests__/minimal-trigger.test.d.ts +0 -2
  70. package/dist/prompt-builder/__tests__/minimal-trigger.test.d.ts.map +0 -1
  71. package/dist/prompt-builder/__tests__/minimal-trigger.test.js +0 -45
  72. package/dist/prompt-builder/__tests__/minimal-trigger.test.js.map +0 -1
  73. package/dist/prompt-builder/__tests__/model-config.test.d.ts +0 -2
  74. package/dist/prompt-builder/__tests__/model-config.test.d.ts.map +0 -1
  75. package/dist/prompt-builder/__tests__/model-config.test.js +0 -158
  76. package/dist/prompt-builder/__tests__/model-config.test.js.map +0 -1
  77. package/dist/prompt-builder/__tests__/principle-selection.test.d.ts +0 -7
  78. package/dist/prompt-builder/__tests__/principle-selection.test.d.ts.map +0 -1
  79. package/dist/prompt-builder/__tests__/principle-selection.test.js +0 -214
  80. package/dist/prompt-builder/__tests__/principle-selection.test.js.map +0 -1
  81. package/dist/prompt-builder/__tests__/prompt-builder-core.test.d.ts +0 -7
  82. package/dist/prompt-builder/__tests__/prompt-builder-core.test.d.ts.map +0 -1
  83. package/dist/prompt-builder/__tests__/prompt-builder-core.test.js +0 -341
  84. package/dist/prompt-builder/__tests__/prompt-builder-core.test.js.map +0 -1
  85. package/dist/prompt-builder/__tests__/routing-guidance.test.d.ts +0 -10
  86. package/dist/prompt-builder/__tests__/routing-guidance.test.d.ts.map +0 -1
  87. package/dist/prompt-builder/__tests__/routing-guidance.test.js +0 -304
  88. package/dist/prompt-builder/__tests__/routing-guidance.test.js.map +0 -1
  89. package/dist/prompt-builder/__tests__/xml-escape.test.d.ts +0 -2
  90. package/dist/prompt-builder/__tests__/xml-escape.test.d.ts.map +0 -1
  91. package/dist/prompt-builder/__tests__/xml-escape.test.js +0 -42
  92. package/dist/prompt-builder/__tests__/xml-escape.test.js.map +0 -1
  93. package/dist/quality-scorecard/__tests__/quality-scorecard.test.d.ts +0 -2
  94. package/dist/quality-scorecard/__tests__/quality-scorecard.test.d.ts.map +0 -1
  95. package/dist/quality-scorecard/__tests__/quality-scorecard.test.js +0 -929
  96. package/dist/quality-scorecard/__tests__/quality-scorecard.test.js.map +0 -1
  97. package/dist/quality-scorecard/__tests__/report-generator.test.d.ts +0 -2
  98. package/dist/quality-scorecard/__tests__/report-generator.test.d.ts.map +0 -1
  99. package/dist/quality-scorecard/__tests__/report-generator.test.js +0 -627
  100. package/dist/quality-scorecard/__tests__/report-generator.test.js.map +0 -1
  101. package/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.d.ts +0 -2
  102. package/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.d.ts.map +0 -1
  103. package/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.js +0 -148
  104. package/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.js.map +0 -1
  105. package/dist/runtime-v2/__tests__/activation-types-helpers.test.d.ts +0 -20
  106. package/dist/runtime-v2/__tests__/activation-types-helpers.test.d.ts.map +0 -1
  107. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js +0 -215
  108. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js.map +0 -1
  109. package/dist/runtime-v2/__tests__/admission-gate.test.d.ts +0 -2
  110. package/dist/runtime-v2/__tests__/admission-gate.test.d.ts.map +0 -1
  111. package/dist/runtime-v2/__tests__/admission-gate.test.js +0 -307
  112. package/dist/runtime-v2/__tests__/admission-gate.test.js.map +0 -1
  113. package/dist/runtime-v2/__tests__/adversarial-loop.test.d.ts +0 -2
  114. package/dist/runtime-v2/__tests__/adversarial-loop.test.d.ts.map +0 -1
  115. package/dist/runtime-v2/__tests__/adversarial-loop.test.js +0 -446
  116. package/dist/runtime-v2/__tests__/adversarial-loop.test.js.map +0 -1
  117. package/dist/runtime-v2/__tests__/append-event-log-line.test.d.ts +0 -2
  118. package/dist/runtime-v2/__tests__/append-event-log-line.test.d.ts.map +0 -1
  119. package/dist/runtime-v2/__tests__/append-event-log-line.test.js +0 -47
  120. package/dist/runtime-v2/__tests__/append-event-log-line.test.js.map +0 -1
  121. package/dist/runtime-v2/__tests__/architecture-regression.test.d.ts +0 -2
  122. package/dist/runtime-v2/__tests__/architecture-regression.test.d.ts.map +0 -1
  123. package/dist/runtime-v2/__tests__/architecture-regression.test.js +0 -3845
  124. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +0 -1
  125. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.d.ts +0 -2
  126. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.d.ts.map +0 -1
  127. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js +0 -1923
  128. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js.map +0 -1
  129. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.d.ts +0 -20
  130. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.d.ts.map +0 -1
  131. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js +0 -578
  132. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js.map +0 -1
  133. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.d.ts +0 -12
  134. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.d.ts.map +0 -1
  135. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.js +0 -46
  136. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.js.map +0 -1
  137. package/dist/runtime-v2/__tests__/bridge-result-shaper.test.d.ts +0 -26
  138. package/dist/runtime-v2/__tests__/bridge-result-shaper.test.d.ts.map +0 -1
  139. package/dist/runtime-v2/__tests__/bridge-result-shaper.test.js +0 -450
  140. package/dist/runtime-v2/__tests__/bridge-result-shaper.test.js.map +0 -1
  141. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.d.ts +0 -2
  142. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.d.ts.map +0 -1
  143. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.js +0 -169
  144. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.js.map +0 -1
  145. package/dist/runtime-v2/__tests__/build-l2-principle-reader.test.d.ts +0 -2
  146. package/dist/runtime-v2/__tests__/build-l2-principle-reader.test.d.ts.map +0 -1
  147. package/dist/runtime-v2/__tests__/build-l2-principle-reader.test.js +0 -200
  148. package/dist/runtime-v2/__tests__/build-l2-principle-reader.test.js.map +0 -1
  149. package/dist/runtime-v2/__tests__/candidate-audit.test.d.ts +0 -2
  150. package/dist/runtime-v2/__tests__/candidate-audit.test.d.ts.map +0 -1
  151. package/dist/runtime-v2/__tests__/candidate-audit.test.js +0 -100
  152. package/dist/runtime-v2/__tests__/candidate-audit.test.js.map +0 -1
  153. package/dist/runtime-v2/__tests__/chain-integrity-attack.test.d.ts +0 -2
  154. package/dist/runtime-v2/__tests__/chain-integrity-attack.test.d.ts.map +0 -1
  155. package/dist/runtime-v2/__tests__/chain-integrity-attack.test.js +0 -293
  156. package/dist/runtime-v2/__tests__/chain-integrity-attack.test.js.map +0 -1
  157. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.d.ts +0 -2
  158. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.d.ts.map +0 -1
  159. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.js +0 -590
  160. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.js.map +0 -1
  161. package/dist/runtime-v2/__tests__/context-payload-validation.test.d.ts +0 -11
  162. package/dist/runtime-v2/__tests__/context-payload-validation.test.d.ts.map +0 -1
  163. package/dist/runtime-v2/__tests__/context-payload-validation.test.js +0 -309
  164. package/dist/runtime-v2/__tests__/context-payload-validation.test.js.map +0 -1
  165. package/dist/runtime-v2/__tests__/control-plane-triage.test.d.ts +0 -2
  166. package/dist/runtime-v2/__tests__/control-plane-triage.test.d.ts.map +0 -1
  167. package/dist/runtime-v2/__tests__/control-plane-triage.test.js +0 -107
  168. package/dist/runtime-v2/__tests__/control-plane-triage.test.js.map +0 -1
  169. package/dist/runtime-v2/__tests__/correction-proposal.test.d.ts +0 -2
  170. package/dist/runtime-v2/__tests__/correction-proposal.test.d.ts.map +0 -1
  171. package/dist/runtime-v2/__tests__/correction-proposal.test.js +0 -486
  172. package/dist/runtime-v2/__tests__/correction-proposal.test.js.map +0 -1
  173. package/dist/runtime-v2/__tests__/diagnostician-output-schema.test.d.ts +0 -25
  174. package/dist/runtime-v2/__tests__/diagnostician-output-schema.test.d.ts.map +0 -1
  175. package/dist/runtime-v2/__tests__/diagnostician-output-schema.test.js +0 -405
  176. package/dist/runtime-v2/__tests__/diagnostician-output-schema.test.js.map +0 -1
  177. package/dist/runtime-v2/__tests__/dreamer-output-validator.test.d.ts +0 -2
  178. package/dist/runtime-v2/__tests__/dreamer-output-validator.test.d.ts.map +0 -1
  179. package/dist/runtime-v2/__tests__/dreamer-output-validator.test.js +0 -171
  180. package/dist/runtime-v2/__tests__/dreamer-output-validator.test.js.map +0 -1
  181. package/dist/runtime-v2/__tests__/dreamer-runner-real-llm.test.d.ts +0 -2
  182. package/dist/runtime-v2/__tests__/dreamer-runner-real-llm.test.d.ts.map +0 -1
  183. package/dist/runtime-v2/__tests__/dreamer-runner-real-llm.test.js +0 -155
  184. package/dist/runtime-v2/__tests__/dreamer-runner-real-llm.test.js.map +0 -1
  185. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.d.ts +0 -2
  186. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.d.ts.map +0 -1
  187. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.js +0 -539
  188. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.js.map +0 -1
  189. package/dist/runtime-v2/__tests__/dreamer-runner.test.d.ts +0 -2
  190. package/dist/runtime-v2/__tests__/dreamer-runner.test.d.ts.map +0 -1
  191. package/dist/runtime-v2/__tests__/dreamer-runner.test.js +0 -366
  192. package/dist/runtime-v2/__tests__/dreamer-runner.test.js.map +0 -1
  193. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.d.ts +0 -2
  194. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.d.ts.map +0 -1
  195. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.js +0 -208
  196. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.js.map +0 -1
  197. package/dist/runtime-v2/__tests__/error-categories.test.d.ts +0 -2
  198. package/dist/runtime-v2/__tests__/error-categories.test.d.ts.map +0 -1
  199. package/dist/runtime-v2/__tests__/error-categories.test.js +0 -150
  200. package/dist/runtime-v2/__tests__/error-categories.test.js.map +0 -1
  201. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.d.ts +0 -2
  202. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.d.ts.map +0 -1
  203. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.js +0 -675
  204. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.js.map +0 -1
  205. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.d.ts +0 -2
  206. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.d.ts.map +0 -1
  207. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js +0 -1000
  208. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js.map +0 -1
  209. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.d.ts +0 -2
  210. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.d.ts.map +0 -1
  211. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js +0 -1330
  212. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js.map +0 -1
  213. package/dist/runtime-v2/__tests__/event-types-runid.test.d.ts +0 -2
  214. package/dist/runtime-v2/__tests__/event-types-runid.test.d.ts.map +0 -1
  215. package/dist/runtime-v2/__tests__/event-types-runid.test.js +0 -28
  216. package/dist/runtime-v2/__tests__/event-types-runid.test.js.map +0 -1
  217. package/dist/runtime-v2/__tests__/evidence-chain-contract.test.d.ts +0 -2
  218. package/dist/runtime-v2/__tests__/evidence-chain-contract.test.d.ts.map +0 -1
  219. package/dist/runtime-v2/__tests__/evidence-chain-contract.test.js +0 -344
  220. package/dist/runtime-v2/__tests__/evidence-chain-contract.test.js.map +0 -1
  221. package/dist/runtime-v2/__tests__/evidence-chain-host-kind.test.d.ts +0 -2
  222. package/dist/runtime-v2/__tests__/evidence-chain-host-kind.test.d.ts.map +0 -1
  223. package/dist/runtime-v2/__tests__/evidence-chain-host-kind.test.js +0 -49
  224. package/dist/runtime-v2/__tests__/evidence-chain-host-kind.test.js.map +0 -1
  225. package/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.d.ts +0 -2
  226. package/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.d.ts.map +0 -1
  227. package/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.js +0 -284
  228. package/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.js.map +0 -1
  229. package/dist/runtime-v2/__tests__/evidence-guards.test.d.ts +0 -18
  230. package/dist/runtime-v2/__tests__/evidence-guards.test.d.ts.map +0 -1
  231. package/dist/runtime-v2/__tests__/evidence-guards.test.js +0 -155
  232. package/dist/runtime-v2/__tests__/evidence-guards.test.js.map +0 -1
  233. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.d.ts +0 -21
  234. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.d.ts.map +0 -1
  235. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.js +0 -581
  236. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.js.map +0 -1
  237. package/dist/runtime-v2/__tests__/feedback/create-report.test.d.ts +0 -2
  238. package/dist/runtime-v2/__tests__/feedback/create-report.test.d.ts.map +0 -1
  239. package/dist/runtime-v2/__tests__/feedback/create-report.test.js +0 -453
  240. package/dist/runtime-v2/__tests__/feedback/create-report.test.js.map +0 -1
  241. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.d.ts +0 -2
  242. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.d.ts.map +0 -1
  243. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js +0 -128
  244. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js.map +0 -1
  245. package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.d.ts +0 -2
  246. package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.d.ts.map +0 -1
  247. package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.js +0 -361
  248. package/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.js.map +0 -1
  249. package/dist/runtime-v2/__tests__/feedback/render-github-url.test.d.ts +0 -2
  250. package/dist/runtime-v2/__tests__/feedback/render-github-url.test.d.ts.map +0 -1
  251. package/dist/runtime-v2/__tests__/feedback/render-github-url.test.js +0 -102
  252. package/dist/runtime-v2/__tests__/feedback/render-github-url.test.js.map +0 -1
  253. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.d.ts +0 -2
  254. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.d.ts.map +0 -1
  255. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js +0 -130
  256. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js.map +0 -1
  257. package/dist/runtime-v2/__tests__/fixtures/index.d.ts +0 -4
  258. package/dist/runtime-v2/__tests__/fixtures/index.d.ts.map +0 -1
  259. package/dist/runtime-v2/__tests__/fixtures/index.js +0 -3
  260. package/dist/runtime-v2/__tests__/fixtures/index.js.map +0 -1
  261. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.d.ts +0 -20
  262. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.d.ts.map +0 -1
  263. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.js +0 -42
  264. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.js.map +0 -1
  265. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.test.d.ts +0 -2
  266. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.test.d.ts.map +0 -1
  267. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.test.js +0 -101
  268. package/dist/runtime-v2/__tests__/fixtures/llm-e2e-config.test.js.map +0 -1
  269. package/dist/runtime-v2/__tests__/fixtures/test-helpers.d.ts +0 -20
  270. package/dist/runtime-v2/__tests__/fixtures/test-helpers.d.ts.map +0 -1
  271. package/dist/runtime-v2/__tests__/fixtures/test-helpers.js +0 -37
  272. package/dist/runtime-v2/__tests__/fixtures/test-helpers.js.map +0 -1
  273. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.d.ts +0 -2
  274. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.d.ts.map +0 -1
  275. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.js +0 -152
  276. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.js.map +0 -1
  277. package/dist/runtime-v2/__tests__/full-trace-contract.test.d.ts +0 -2
  278. package/dist/runtime-v2/__tests__/full-trace-contract.test.d.ts.map +0 -1
  279. package/dist/runtime-v2/__tests__/full-trace-contract.test.js +0 -552
  280. package/dist/runtime-v2/__tests__/full-trace-contract.test.js.map +0 -1
  281. package/dist/runtime-v2/__tests__/gfi-workspace-health.test.d.ts +0 -2
  282. package/dist/runtime-v2/__tests__/gfi-workspace-health.test.d.ts.map +0 -1
  283. package/dist/runtime-v2/__tests__/gfi-workspace-health.test.js +0 -128
  284. package/dist/runtime-v2/__tests__/gfi-workspace-health.test.js.map +0 -1
  285. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.d.ts +0 -2
  286. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.d.ts.map +0 -1
  287. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js +0 -372
  288. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js.map +0 -1
  289. package/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.d.ts +0 -2
  290. package/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.d.ts.map +0 -1
  291. package/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js +0 -301
  292. package/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js.map +0 -1
  293. package/dist/runtime-v2/__tests__/golden-trace.test.d.ts +0 -2
  294. package/dist/runtime-v2/__tests__/golden-trace.test.d.ts.map +0 -1
  295. package/dist/runtime-v2/__tests__/golden-trace.test.js +0 -470
  296. package/dist/runtime-v2/__tests__/golden-trace.test.js.map +0 -1
  297. package/dist/runtime-v2/__tests__/governance-experience.test.d.ts +0 -2
  298. package/dist/runtime-v2/__tests__/governance-experience.test.d.ts.map +0 -1
  299. package/dist/runtime-v2/__tests__/governance-experience.test.js +0 -319
  300. package/dist/runtime-v2/__tests__/governance-experience.test.js.map +0 -1
  301. package/dist/runtime-v2/__tests__/governance-projection-contract.test.d.ts +0 -2
  302. package/dist/runtime-v2/__tests__/governance-projection-contract.test.d.ts.map +0 -1
  303. package/dist/runtime-v2/__tests__/governance-projection-contract.test.js +0 -78
  304. package/dist/runtime-v2/__tests__/governance-projection-contract.test.js.map +0 -1
  305. package/dist/runtime-v2/__tests__/governance-projection.test.d.ts +0 -2
  306. package/dist/runtime-v2/__tests__/governance-projection.test.d.ts.map +0 -1
  307. package/dist/runtime-v2/__tests__/governance-projection.test.js +0 -154
  308. package/dist/runtime-v2/__tests__/governance-projection.test.js.map +0 -1
  309. package/dist/runtime-v2/__tests__/governance-timestamp-schema.test.d.ts +0 -2
  310. package/dist/runtime-v2/__tests__/governance-timestamp-schema.test.d.ts.map +0 -1
  311. package/dist/runtime-v2/__tests__/governance-timestamp-schema.test.js +0 -81
  312. package/dist/runtime-v2/__tests__/governance-timestamp-schema.test.js.map +0 -1
  313. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.d.ts +0 -2
  314. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.d.ts.map +0 -1
  315. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.js +0 -540
  316. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.js.map +0 -1
  317. package/dist/runtime-v2/__tests__/internalization-chain-integrity-read-model.test.d.ts +0 -2
  318. package/dist/runtime-v2/__tests__/internalization-chain-integrity-read-model.test.d.ts.map +0 -1
  319. package/dist/runtime-v2/__tests__/internalization-chain-integrity-read-model.test.js +0 -531
  320. package/dist/runtime-v2/__tests__/internalization-chain-integrity-read-model.test.js.map +0 -1
  321. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.d.ts +0 -2
  322. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.d.ts.map +0 -1
  323. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.js +0 -226
  324. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.js.map +0 -1
  325. package/dist/runtime-v2/__tests__/internalization-contracts.test.d.ts +0 -2
  326. package/dist/runtime-v2/__tests__/internalization-contracts.test.d.ts.map +0 -1
  327. package/dist/runtime-v2/__tests__/internalization-contracts.test.js +0 -76
  328. package/dist/runtime-v2/__tests__/internalization-contracts.test.js.map +0 -1
  329. package/dist/runtime-v2/__tests__/internalization-failure-persistence.test.d.ts +0 -2
  330. package/dist/runtime-v2/__tests__/internalization-failure-persistence.test.d.ts.map +0 -1
  331. package/dist/runtime-v2/__tests__/internalization-failure-persistence.test.js +0 -153
  332. package/dist/runtime-v2/__tests__/internalization-failure-persistence.test.js.map +0 -1
  333. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.d.ts +0 -2
  334. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.d.ts.map +0 -1
  335. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.js +0 -738
  336. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.js.map +0 -1
  337. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.d.ts +0 -2
  338. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.d.ts.map +0 -1
  339. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.js +0 -651
  340. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.js.map +0 -1
  341. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.d.ts +0 -2
  342. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.d.ts.map +0 -1
  343. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js +0 -419
  344. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js.map +0 -1
  345. package/dist/runtime-v2/__tests__/internalization-queue-read-model.test.d.ts +0 -2
  346. package/dist/runtime-v2/__tests__/internalization-queue-read-model.test.d.ts.map +0 -1
  347. package/dist/runtime-v2/__tests__/internalization-queue-read-model.test.js +0 -414
  348. package/dist/runtime-v2/__tests__/internalization-queue-read-model.test.js.map +0 -1
  349. package/dist/runtime-v2/__tests__/internalization-route.test.d.ts +0 -2
  350. package/dist/runtime-v2/__tests__/internalization-route.test.d.ts.map +0 -1
  351. package/dist/runtime-v2/__tests__/internalization-route.test.js +0 -136
  352. package/dist/runtime-v2/__tests__/internalization-route.test.js.map +0 -1
  353. package/dist/runtime-v2/__tests__/internalization-state-machine.test.d.ts +0 -2
  354. package/dist/runtime-v2/__tests__/internalization-state-machine.test.d.ts.map +0 -1
  355. package/dist/runtime-v2/__tests__/internalization-state-machine.test.js +0 -585
  356. package/dist/runtime-v2/__tests__/internalization-state-machine.test.js.map +0 -1
  357. package/dist/runtime-v2/__tests__/io-deletion.test.d.ts +0 -12
  358. package/dist/runtime-v2/__tests__/io-deletion.test.d.ts.map +0 -1
  359. package/dist/runtime-v2/__tests__/io-deletion.test.js +0 -92
  360. package/dist/runtime-v2/__tests__/io-deletion.test.js.map +0 -1
  361. package/dist/runtime-v2/__tests__/l1-hard-cap.test.d.ts +0 -2
  362. package/dist/runtime-v2/__tests__/l1-hard-cap.test.d.ts.map +0 -1
  363. package/dist/runtime-v2/__tests__/l1-hard-cap.test.js +0 -157
  364. package/dist/runtime-v2/__tests__/l1-hard-cap.test.js.map +0 -1
  365. package/dist/runtime-v2/__tests__/language-directive.test.d.ts +0 -12
  366. package/dist/runtime-v2/__tests__/language-directive.test.d.ts.map +0 -1
  367. package/dist/runtime-v2/__tests__/language-directive.test.js +0 -162
  368. package/dist/runtime-v2/__tests__/language-directive.test.js.map +0 -1
  369. package/dist/runtime-v2/__tests__/ledger-codec.test.d.ts +0 -2
  370. package/dist/runtime-v2/__tests__/ledger-codec.test.d.ts.map +0 -1
  371. package/dist/runtime-v2/__tests__/ledger-codec.test.js +0 -429
  372. package/dist/runtime-v2/__tests__/ledger-codec.test.js.map +0 -1
  373. package/dist/runtime-v2/__tests__/ledger-store.test.d.ts +0 -2
  374. package/dist/runtime-v2/__tests__/ledger-store.test.d.ts.map +0 -1
  375. package/dist/runtime-v2/__tests__/ledger-store.test.js +0 -65
  376. package/dist/runtime-v2/__tests__/ledger-store.test.js.map +0 -1
  377. package/dist/runtime-v2/__tests__/mainline-contract.test.d.ts +0 -2
  378. package/dist/runtime-v2/__tests__/mainline-contract.test.d.ts.map +0 -1
  379. package/dist/runtime-v2/__tests__/mainline-contract.test.js +0 -194
  380. package/dist/runtime-v2/__tests__/mainline-contract.test.js.map +0 -1
  381. package/dist/runtime-v2/__tests__/mainline-product-path.test.d.ts +0 -2
  382. package/dist/runtime-v2/__tests__/mainline-product-path.test.d.ts.map +0 -1
  383. package/dist/runtime-v2/__tests__/mainline-product-path.test.js +0 -429
  384. package/dist/runtime-v2/__tests__/mainline-product-path.test.js.map +0 -1
  385. package/dist/runtime-v2/__tests__/operator-health-cold-start-guard.test.d.ts +0 -2
  386. package/dist/runtime-v2/__tests__/operator-health-cold-start-guard.test.d.ts.map +0 -1
  387. package/dist/runtime-v2/__tests__/operator-health-cold-start-guard.test.js +0 -102
  388. package/dist/runtime-v2/__tests__/operator-health-cold-start-guard.test.js.map +0 -1
  389. package/dist/runtime-v2/__tests__/operator-health-gfi-degraded.test.d.ts +0 -2
  390. package/dist/runtime-v2/__tests__/operator-health-gfi-degraded.test.d.ts.map +0 -1
  391. package/dist/runtime-v2/__tests__/operator-health-gfi-degraded.test.js +0 -148
  392. package/dist/runtime-v2/__tests__/operator-health-gfi-degraded.test.js.map +0 -1
  393. package/dist/runtime-v2/__tests__/operator-health-gfi.test.d.ts +0 -2
  394. package/dist/runtime-v2/__tests__/operator-health-gfi.test.d.ts.map +0 -1
  395. package/dist/runtime-v2/__tests__/operator-health-gfi.test.js +0 -113
  396. package/dist/runtime-v2/__tests__/operator-health-gfi.test.js.map +0 -1
  397. package/dist/runtime-v2/__tests__/operator-health-read-model.test.d.ts +0 -2
  398. package/dist/runtime-v2/__tests__/operator-health-read-model.test.d.ts.map +0 -1
  399. package/dist/runtime-v2/__tests__/operator-health-read-model.test.js +0 -136
  400. package/dist/runtime-v2/__tests__/operator-health-read-model.test.js.map +0 -1
  401. package/dist/runtime-v2/__tests__/owner-identity.test.d.ts +0 -2
  402. package/dist/runtime-v2/__tests__/owner-identity.test.d.ts.map +0 -1
  403. package/dist/runtime-v2/__tests__/owner-identity.test.js +0 -147
  404. package/dist/runtime-v2/__tests__/owner-identity.test.js.map +0 -1
  405. package/dist/runtime-v2/__tests__/owner-retry.test.d.ts +0 -2
  406. package/dist/runtime-v2/__tests__/owner-retry.test.d.ts.map +0 -1
  407. package/dist/runtime-v2/__tests__/owner-retry.test.js +0 -144
  408. package/dist/runtime-v2/__tests__/owner-retry.test.js.map +0 -1
  409. package/dist/runtime-v2/__tests__/pain-chain-read-model.test.d.ts +0 -2
  410. package/dist/runtime-v2/__tests__/pain-chain-read-model.test.d.ts.map +0 -1
  411. package/dist/runtime-v2/__tests__/pain-chain-read-model.test.js +0 -247
  412. package/dist/runtime-v2/__tests__/pain-chain-read-model.test.js.map +0 -1
  413. package/dist/runtime-v2/__tests__/pain-correction-evidence.test.d.ts +0 -2
  414. package/dist/runtime-v2/__tests__/pain-correction-evidence.test.d.ts.map +0 -1
  415. package/dist/runtime-v2/__tests__/pain-correction-evidence.test.js +0 -37
  416. package/dist/runtime-v2/__tests__/pain-correction-evidence.test.js.map +0 -1
  417. package/dist/runtime-v2/__tests__/pain-diagnosis-persistence.test.d.ts +0 -2
  418. package/dist/runtime-v2/__tests__/pain-diagnosis-persistence.test.d.ts.map +0 -1
  419. package/dist/runtime-v2/__tests__/pain-diagnosis-persistence.test.js +0 -293
  420. package/dist/runtime-v2/__tests__/pain-diagnosis-persistence.test.js.map +0 -1
  421. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.d.ts +0 -2
  422. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.d.ts.map +0 -1
  423. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js +0 -331
  424. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js.map +0 -1
  425. package/dist/runtime-v2/__tests__/pain-flood-simulation.test.d.ts +0 -2
  426. package/dist/runtime-v2/__tests__/pain-flood-simulation.test.d.ts.map +0 -1
  427. package/dist/runtime-v2/__tests__/pain-flood-simulation.test.js +0 -267
  428. package/dist/runtime-v2/__tests__/pain-flood-simulation.test.js.map +0 -1
  429. package/dist/runtime-v2/__tests__/pain-ingress-persistence.test.d.ts +0 -2
  430. package/dist/runtime-v2/__tests__/pain-ingress-persistence.test.d.ts.map +0 -1
  431. package/dist/runtime-v2/__tests__/pain-ingress-persistence.test.js +0 -276
  432. package/dist/runtime-v2/__tests__/pain-ingress-persistence.test.js.map +0 -1
  433. package/dist/runtime-v2/__tests__/pain-ingress-shared-semantics.test.d.ts +0 -2
  434. package/dist/runtime-v2/__tests__/pain-ingress-shared-semantics.test.d.ts.map +0 -1
  435. package/dist/runtime-v2/__tests__/pain-ingress-shared-semantics.test.js +0 -131
  436. package/dist/runtime-v2/__tests__/pain-ingress-shared-semantics.test.js.map +0 -1
  437. package/dist/runtime-v2/__tests__/pain-outcome-convergence.test.d.ts +0 -2
  438. package/dist/runtime-v2/__tests__/pain-outcome-convergence.test.d.ts.map +0 -1
  439. package/dist/runtime-v2/__tests__/pain-outcome-convergence.test.js +0 -126
  440. package/dist/runtime-v2/__tests__/pain-outcome-convergence.test.js.map +0 -1
  441. package/dist/runtime-v2/__tests__/pain-signal-bridge-execute-pending.test.d.ts +0 -2
  442. package/dist/runtime-v2/__tests__/pain-signal-bridge-execute-pending.test.d.ts.map +0 -1
  443. package/dist/runtime-v2/__tests__/pain-signal-bridge-execute-pending.test.js +0 -201
  444. package/dist/runtime-v2/__tests__/pain-signal-bridge-execute-pending.test.js.map +0 -1
  445. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.d.ts +0 -2
  446. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.d.ts.map +0 -1
  447. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js +0 -500
  448. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js.map +0 -1
  449. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.d.ts +0 -2
  450. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.d.ts.map +0 -1
  451. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js +0 -151
  452. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js.map +0 -1
  453. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.d.ts +0 -2
  454. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.d.ts.map +0 -1
  455. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.js +0 -211
  456. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.js.map +0 -1
  457. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.d.ts +0 -2
  458. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.d.ts.map +0 -1
  459. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.js +0 -182
  460. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.js.map +0 -1
  461. package/dist/runtime-v2/__tests__/pain-signal-observability.test.d.ts +0 -2
  462. package/dist/runtime-v2/__tests__/pain-signal-observability.test.d.ts.map +0 -1
  463. package/dist/runtime-v2/__tests__/pain-signal-observability.test.js +0 -556
  464. package/dist/runtime-v2/__tests__/pain-signal-observability.test.js.map +0 -1
  465. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-edge-cases.test.d.ts +0 -8
  466. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-edge-cases.test.d.ts.map +0 -1
  467. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-edge-cases.test.js +0 -171
  468. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-edge-cases.test.js.map +0 -1
  469. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-effectiveconfig-wiring.test.d.ts +0 -2
  470. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-effectiveconfig-wiring.test.d.ts.map +0 -1
  471. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-effectiveconfig-wiring.test.js +0 -109
  472. package/dist/runtime-v2/__tests__/pain-signal-runtime-factory-effectiveconfig-wiring.test.js.map +0 -1
  473. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.d.ts +0 -2
  474. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.d.ts.map +0 -1
  475. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js +0 -317
  476. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js.map +0 -1
  477. package/dist/runtime-v2/__tests__/philosopher-runner-real-llm.test.d.ts +0 -2
  478. package/dist/runtime-v2/__tests__/philosopher-runner-real-llm.test.d.ts.map +0 -1
  479. package/dist/runtime-v2/__tests__/philosopher-runner-real-llm.test.js +0 -167
  480. package/dist/runtime-v2/__tests__/philosopher-runner-real-llm.test.js.map +0 -1
  481. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.d.ts +0 -2
  482. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.d.ts.map +0 -1
  483. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.js +0 -342
  484. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.js.map +0 -1
  485. package/dist/runtime-v2/__tests__/pi-artifact-store.test.d.ts +0 -2
  486. package/dist/runtime-v2/__tests__/pi-artifact-store.test.d.ts.map +0 -1
  487. package/dist/runtime-v2/__tests__/pi-artifact-store.test.js +0 -258
  488. package/dist/runtime-v2/__tests__/pi-artifact-store.test.js.map +0 -1
  489. package/dist/runtime-v2/__tests__/pitask-metadata.test.d.ts +0 -8
  490. package/dist/runtime-v2/__tests__/pitask-metadata.test.d.ts.map +0 -1
  491. package/dist/runtime-v2/__tests__/pitask-metadata.test.js +0 -514
  492. package/dist/runtime-v2/__tests__/pitask-metadata.test.js.map +0 -1
  493. package/dist/runtime-v2/__tests__/pri638-diagnostician-capability-characterization.test.d.ts +0 -27
  494. package/dist/runtime-v2/__tests__/pri638-diagnostician-capability-characterization.test.d.ts.map +0 -1
  495. package/dist/runtime-v2/__tests__/pri638-diagnostician-capability-characterization.test.js +0 -449
  496. package/dist/runtime-v2/__tests__/pri638-diagnostician-capability-characterization.test.js.map +0 -1
  497. package/dist/runtime-v2/__tests__/pri638-p1d-error-classification.test.d.ts +0 -2
  498. package/dist/runtime-v2/__tests__/pri638-p1d-error-classification.test.d.ts.map +0 -1
  499. package/dist/runtime-v2/__tests__/pri638-p1d-error-classification.test.js +0 -116
  500. package/dist/runtime-v2/__tests__/pri638-p1d-error-classification.test.js.map +0 -1
  501. package/dist/runtime-v2/__tests__/principle-compiler-core.test.d.ts +0 -2
  502. package/dist/runtime-v2/__tests__/principle-compiler-core.test.d.ts.map +0 -1
  503. package/dist/runtime-v2/__tests__/principle-compiler-core.test.js +0 -219
  504. package/dist/runtime-v2/__tests__/principle-compiler-core.test.js.map +0 -1
  505. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.d.ts +0 -18
  506. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.d.ts.map +0 -1
  507. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.js +0 -303
  508. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.js.map +0 -1
  509. package/dist/runtime-v2/__tests__/production-canary-fixture-gate.test.d.ts +0 -2
  510. package/dist/runtime-v2/__tests__/production-canary-fixture-gate.test.d.ts.map +0 -1
  511. package/dist/runtime-v2/__tests__/production-canary-fixture-gate.test.js +0 -524
  512. package/dist/runtime-v2/__tests__/production-canary-fixture-gate.test.js.map +0 -1
  513. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.d.ts +0 -2
  514. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.d.ts.map +0 -1
  515. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +0 -452
  516. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +0 -1
  517. package/dist/runtime-v2/__tests__/pruning-mask.test.d.ts +0 -25
  518. package/dist/runtime-v2/__tests__/pruning-mask.test.d.ts.map +0 -1
  519. package/dist/runtime-v2/__tests__/pruning-mask.test.js +0 -281
  520. package/dist/runtime-v2/__tests__/pruning-mask.test.js.map +0 -1
  521. package/dist/runtime-v2/__tests__/pruning-read-model.test.d.ts +0 -2
  522. package/dist/runtime-v2/__tests__/pruning-read-model.test.d.ts.map +0 -1
  523. package/dist/runtime-v2/__tests__/pruning-read-model.test.js +0 -788
  524. package/dist/runtime-v2/__tests__/pruning-read-model.test.js.map +0 -1
  525. package/dist/runtime-v2/__tests__/pruning-review-log.test.d.ts +0 -2
  526. package/dist/runtime-v2/__tests__/pruning-review-log.test.d.ts.map +0 -1
  527. package/dist/runtime-v2/__tests__/pruning-review-log.test.js +0 -159
  528. package/dist/runtime-v2/__tests__/pruning-review-log.test.js.map +0 -1
  529. package/dist/runtime-v2/__tests__/recovery-actions-log.test.d.ts +0 -2
  530. package/dist/runtime-v2/__tests__/recovery-actions-log.test.d.ts.map +0 -1
  531. package/dist/runtime-v2/__tests__/recovery-actions-log.test.js +0 -152
  532. package/dist/runtime-v2/__tests__/recovery-actions-log.test.js.map +0 -1
  533. package/dist/runtime-v2/__tests__/recovery-sweep-service.test.d.ts +0 -2
  534. package/dist/runtime-v2/__tests__/recovery-sweep-service.test.d.ts.map +0 -1
  535. package/dist/runtime-v2/__tests__/recovery-sweep-service.test.js +0 -213
  536. package/dist/runtime-v2/__tests__/recovery-sweep-service.test.js.map +0 -1
  537. package/dist/runtime-v2/__tests__/remediation-contract.test.d.ts +0 -2
  538. package/dist/runtime-v2/__tests__/remediation-contract.test.d.ts.map +0 -1
  539. package/dist/runtime-v2/__tests__/remediation-contract.test.js +0 -39
  540. package/dist/runtime-v2/__tests__/remediation-contract.test.js.map +0 -1
  541. package/dist/runtime-v2/__tests__/replay-production-parity.test.d.ts +0 -13
  542. package/dist/runtime-v2/__tests__/replay-production-parity.test.d.ts.map +0 -1
  543. package/dist/runtime-v2/__tests__/replay-production-parity.test.js +0 -133
  544. package/dist/runtime-v2/__tests__/replay-production-parity.test.js.map +0 -1
  545. package/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.d.ts +0 -12
  546. package/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.d.ts.map +0 -1
  547. package/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.js +0 -298
  548. package/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.js.map +0 -1
  549. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.d.ts +0 -2
  550. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.d.ts.map +0 -1
  551. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.js +0 -791
  552. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.js.map +0 -1
  553. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.d.ts +0 -2
  554. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.d.ts.map +0 -1
  555. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.js +0 -255
  556. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.js.map +0 -1
  557. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.d.ts +0 -2
  558. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.d.ts.map +0 -1
  559. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.js +0 -243
  560. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.js.map +0 -1
  561. package/dist/runtime-v2/__tests__/rule-host-evaluator.test.d.ts +0 -2
  562. package/dist/runtime-v2/__tests__/rule-host-evaluator.test.d.ts.map +0 -1
  563. package/dist/runtime-v2/__tests__/rule-host-evaluator.test.js +0 -509
  564. package/dist/runtime-v2/__tests__/rule-host-evaluator.test.js.map +0 -1
  565. package/dist/runtime-v2/__tests__/rulehost-oob-defense-simulation.test.d.ts +0 -2
  566. package/dist/runtime-v2/__tests__/rulehost-oob-defense-simulation.test.d.ts.map +0 -1
  567. package/dist/runtime-v2/__tests__/rulehost-oob-defense-simulation.test.js +0 -535
  568. package/dist/runtime-v2/__tests__/rulehost-oob-defense-simulation.test.js.map +0 -1
  569. package/dist/runtime-v2/__tests__/runtime-config-boundary.test.d.ts +0 -2
  570. package/dist/runtime-v2/__tests__/runtime-config-boundary.test.d.ts.map +0 -1
  571. package/dist/runtime-v2/__tests__/runtime-config-boundary.test.js +0 -258
  572. package/dist/runtime-v2/__tests__/runtime-config-boundary.test.js.map +0 -1
  573. package/dist/runtime-v2/__tests__/runtime-state-handle.test.d.ts +0 -2
  574. package/dist/runtime-v2/__tests__/runtime-state-handle.test.d.ts.map +0 -1
  575. package/dist/runtime-v2/__tests__/runtime-state-handle.test.js +0 -76
  576. package/dist/runtime-v2/__tests__/runtime-state-handle.test.js.map +0 -1
  577. package/dist/runtime-v2/__tests__/schema-conformance-read-model.test.d.ts +0 -2
  578. package/dist/runtime-v2/__tests__/schema-conformance-read-model.test.d.ts.map +0 -1
  579. package/dist/runtime-v2/__tests__/schema-conformance-read-model.test.js +0 -208
  580. package/dist/runtime-v2/__tests__/schema-conformance-read-model.test.js.map +0 -1
  581. package/dist/runtime-v2/__tests__/schema-float-precision.test.d.ts +0 -2
  582. package/dist/runtime-v2/__tests__/schema-float-precision.test.d.ts.map +0 -1
  583. package/dist/runtime-v2/__tests__/schema-float-precision.test.js +0 -290
  584. package/dist/runtime-v2/__tests__/schema-float-precision.test.js.map +0 -1
  585. package/dist/runtime-v2/__tests__/schema-orphan-detection.test.d.ts +0 -2
  586. package/dist/runtime-v2/__tests__/schema-orphan-detection.test.d.ts.map +0 -1
  587. package/dist/runtime-v2/__tests__/schema-orphan-detection.test.js +0 -158
  588. package/dist/runtime-v2/__tests__/schema-orphan-detection.test.js.map +0 -1
  589. package/dist/runtime-v2/__tests__/schema-version.test.d.ts +0 -19
  590. package/dist/runtime-v2/__tests__/schema-version.test.d.ts.map +0 -1
  591. package/dist/runtime-v2/__tests__/schema-version.test.js +0 -176
  592. package/dist/runtime-v2/__tests__/schema-version.test.js.map +0 -1
  593. package/dist/runtime-v2/__tests__/scribe-runner-real-llm.test.d.ts +0 -2
  594. package/dist/runtime-v2/__tests__/scribe-runner-real-llm.test.d.ts.map +0 -1
  595. package/dist/runtime-v2/__tests__/scribe-runner-real-llm.test.js +0 -156
  596. package/dist/runtime-v2/__tests__/scribe-runner-real-llm.test.js.map +0 -1
  597. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.d.ts +0 -2
  598. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.d.ts.map +0 -1
  599. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js +0 -1086
  600. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js.map +0 -1
  601. package/dist/runtime-v2/__tests__/sqlite-connection-readonly.test.d.ts +0 -2
  602. package/dist/runtime-v2/__tests__/sqlite-connection-readonly.test.d.ts.map +0 -1
  603. package/dist/runtime-v2/__tests__/sqlite-connection-readonly.test.js +0 -113
  604. package/dist/runtime-v2/__tests__/sqlite-connection-readonly.test.js.map +0 -1
  605. package/dist/runtime-v2/__tests__/stalled-diagnostician-task.test.d.ts +0 -2
  606. package/dist/runtime-v2/__tests__/stalled-diagnostician-task.test.d.ts.map +0 -1
  607. package/dist/runtime-v2/__tests__/stalled-diagnostician-task.test.js +0 -168
  608. package/dist/runtime-v2/__tests__/stalled-diagnostician-task.test.js.map +0 -1
  609. package/dist/runtime-v2/__tests__/status-contract.test.d.ts +0 -2
  610. package/dist/runtime-v2/__tests__/status-contract.test.d.ts.map +0 -1
  611. package/dist/runtime-v2/__tests__/status-contract.test.js +0 -78
  612. package/dist/runtime-v2/__tests__/status-contract.test.js.map +0 -1
  613. package/dist/runtime-v2/__tests__/story-a-demo.test.d.ts +0 -2
  614. package/dist/runtime-v2/__tests__/story-a-demo.test.d.ts.map +0 -1
  615. package/dist/runtime-v2/__tests__/story-a-demo.test.js +0 -274
  616. package/dist/runtime-v2/__tests__/story-a-demo.test.js.map +0 -1
  617. package/dist/runtime-v2/__tests__/synthetic-baseline.test.d.ts +0 -2
  618. package/dist/runtime-v2/__tests__/synthetic-baseline.test.d.ts.map +0 -1
  619. package/dist/runtime-v2/__tests__/synthetic-baseline.test.js +0 -155
  620. package/dist/runtime-v2/__tests__/synthetic-baseline.test.js.map +0 -1
  621. package/dist/runtime-v2/__tests__/system-prompt-merge.test.d.ts +0 -2
  622. package/dist/runtime-v2/__tests__/system-prompt-merge.test.d.ts.map +0 -1
  623. package/dist/runtime-v2/__tests__/system-prompt-merge.test.js +0 -24
  624. package/dist/runtime-v2/__tests__/system-prompt-merge.test.js.map +0 -1
  625. package/dist/runtime-v2/__tests__/task-state-semantics.test.d.ts +0 -2
  626. package/dist/runtime-v2/__tests__/task-state-semantics.test.d.ts.map +0 -1
  627. package/dist/runtime-v2/__tests__/task-state-semantics.test.js +0 -145
  628. package/dist/runtime-v2/__tests__/task-state-semantics.test.js.map +0 -1
  629. package/dist/runtime-v2/__tests__/task-three-strikes.test.d.ts +0 -2
  630. package/dist/runtime-v2/__tests__/task-three-strikes.test.d.ts.map +0 -1
  631. package/dist/runtime-v2/__tests__/task-three-strikes.test.js +0 -268
  632. package/dist/runtime-v2/__tests__/task-three-strikes.test.js.map +0 -1
  633. package/dist/runtime-v2/__tests__/telemetry-event.test.d.ts +0 -2
  634. package/dist/runtime-v2/__tests__/telemetry-event.test.d.ts.map +0 -1
  635. package/dist/runtime-v2/__tests__/telemetry-event.test.js +0 -69
  636. package/dist/runtime-v2/__tests__/telemetry-event.test.js.map +0 -1
  637. package/dist/runtime-v2/__tests__/trajectory-schema.test.d.ts +0 -2
  638. package/dist/runtime-v2/__tests__/trajectory-schema.test.d.ts.map +0 -1
  639. package/dist/runtime-v2/__tests__/trajectory-schema.test.js +0 -85
  640. package/dist/runtime-v2/__tests__/trajectory-schema.test.js.map +0 -1
  641. package/dist/runtime-v2/__tests__/trajectory-store.test.d.ts +0 -2
  642. package/dist/runtime-v2/__tests__/trajectory-store.test.d.ts.map +0 -1
  643. package/dist/runtime-v2/__tests__/trajectory-store.test.js +0 -143
  644. package/dist/runtime-v2/__tests__/trajectory-store.test.js.map +0 -1
  645. package/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts +0 -2
  646. package/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts.map +0 -1
  647. package/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js +0 -211
  648. package/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js.map +0 -1
  649. package/dist/runtime-v2/__tests__/workflow-funnel-loader.test.d.ts +0 -29
  650. package/dist/runtime-v2/__tests__/workflow-funnel-loader.test.d.ts.map +0 -1
  651. package/dist/runtime-v2/__tests__/workflow-funnel-loader.test.js +0 -432
  652. package/dist/runtime-v2/__tests__/workflow-funnel-loader.test.js.map +0 -1
  653. package/dist/runtime-v2/__tests__/workspace-leak-guard.test.d.ts +0 -2
  654. package/dist/runtime-v2/__tests__/workspace-leak-guard.test.d.ts.map +0 -1
  655. package/dist/runtime-v2/__tests__/workspace-leak-guard.test.js +0 -110
  656. package/dist/runtime-v2/__tests__/workspace-leak-guard.test.js.map +0 -1
  657. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.d.ts +0 -2
  658. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.d.ts.map +0 -1
  659. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +0 -786
  660. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +0 -1
  661. package/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.d.ts +0 -2
  662. package/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.d.ts.map +0 -1
  663. package/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js +0 -165
  664. package/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js.map +0 -1
  665. package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.d.ts +0 -21
  666. package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.d.ts.map +0 -1
  667. package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.js +0 -363
  668. package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.js.map +0 -1
  669. package/dist/runtime-v2/activation/__tests__/approval-context-types.test.d.ts +0 -2
  670. package/dist/runtime-v2/activation/__tests__/approval-context-types.test.d.ts.map +0 -1
  671. package/dist/runtime-v2/activation/__tests__/approval-context-types.test.js +0 -117
  672. package/dist/runtime-v2/activation/__tests__/approval-context-types.test.js.map +0 -1
  673. package/dist/runtime-v2/activation/__tests__/approval-queue.test.d.ts +0 -17
  674. package/dist/runtime-v2/activation/__tests__/approval-queue.test.d.ts.map +0 -1
  675. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js +0 -406
  676. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js.map +0 -1
  677. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.d.ts +0 -2
  678. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.d.ts.map +0 -1
  679. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js +0 -187
  680. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js.map +0 -1
  681. package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.d.ts +0 -20
  682. package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.d.ts.map +0 -1
  683. package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.js +0 -145
  684. package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.js.map +0 -1
  685. package/dist/runtime-v2/activation/__tests__/helpers.d.ts +0 -21
  686. package/dist/runtime-v2/activation/__tests__/helpers.d.ts.map +0 -1
  687. package/dist/runtime-v2/activation/__tests__/helpers.js +0 -132
  688. package/dist/runtime-v2/activation/__tests__/helpers.js.map +0 -1
  689. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.d.ts +0 -21
  690. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.d.ts.map +0 -1
  691. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.js +0 -468
  692. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.js.map +0 -1
  693. package/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.d.ts +0 -2
  694. package/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.d.ts.map +0 -1
  695. package/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.js +0 -257
  696. package/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.js.map +0 -1
  697. package/dist/runtime-v2/activation/__tests__/openclaw-promotion-checks.test.d.ts +0 -2
  698. package/dist/runtime-v2/activation/__tests__/openclaw-promotion-checks.test.d.ts.map +0 -1
  699. package/dist/runtime-v2/activation/__tests__/openclaw-promotion-checks.test.js +0 -91
  700. package/dist/runtime-v2/activation/__tests__/openclaw-promotion-checks.test.js.map +0 -1
  701. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.d.ts +0 -15
  702. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.d.ts.map +0 -1
  703. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js +0 -503
  704. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js.map +0 -1
  705. package/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.d.ts +0 -2
  706. package/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.d.ts.map +0 -1
  707. package/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.js +0 -104
  708. package/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.js.map +0 -1
  709. package/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.d.ts +0 -2
  710. package/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.d.ts.map +0 -1
  711. package/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.js +0 -102
  712. package/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.js.map +0 -1
  713. package/dist/runtime-v2/activation/__tests__/promotion-readiness-reader.test.d.ts +0 -2
  714. package/dist/runtime-v2/activation/__tests__/promotion-readiness-reader.test.d.ts.map +0 -1
  715. package/dist/runtime-v2/activation/__tests__/promotion-readiness-reader.test.js +0 -48
  716. package/dist/runtime-v2/activation/__tests__/promotion-readiness-reader.test.js.map +0 -1
  717. package/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.d.ts +0 -2
  718. package/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.d.ts.map +0 -1
  719. package/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.js +0 -407
  720. package/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.js.map +0 -1
  721. package/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.d.ts +0 -2
  722. package/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.d.ts.map +0 -1
  723. package/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.js +0 -161
  724. package/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.js.map +0 -1
  725. package/dist/runtime-v2/activation/__tests__/rulecode-safety-circuit-breaker.test.d.ts +0 -2
  726. package/dist/runtime-v2/activation/__tests__/rulecode-safety-circuit-breaker.test.d.ts.map +0 -1
  727. package/dist/runtime-v2/activation/__tests__/rulecode-safety-circuit-breaker.test.js +0 -31
  728. package/dist/runtime-v2/activation/__tests__/rulecode-safety-circuit-breaker.test.js.map +0 -1
  729. package/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.d.ts +0 -2
  730. package/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.d.ts.map +0 -1
  731. package/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.js +0 -351
  732. package/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.js.map +0 -1
  733. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts +0 -2
  734. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts.map +0 -1
  735. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js +0 -62
  736. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js.map +0 -1
  737. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.d.ts +0 -2
  738. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.d.ts.map +0 -1
  739. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js +0 -257
  740. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js.map +0 -1
  741. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts +0 -2
  742. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts.map +0 -1
  743. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js +0 -56
  744. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js.map +0 -1
  745. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.d.ts +0 -2
  746. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.d.ts.map +0 -1
  747. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js +0 -168
  748. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js.map +0 -1
  749. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.d.ts +0 -35
  750. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.d.ts.map +0 -1
  751. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js +0 -416
  752. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js.map +0 -1
  753. package/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.d.ts +0 -2
  754. package/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.d.ts.map +0 -1
  755. package/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js +0 -1144
  756. package/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js.map +0 -1
  757. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.d.ts +0 -2
  758. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.d.ts.map +0 -1
  759. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js +0 -651
  760. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js.map +0 -1
  761. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.d.ts +0 -2
  762. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.d.ts.map +0 -1
  763. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.js +0 -553
  764. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.js.map +0 -1
  765. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.d.ts +0 -2
  766. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.d.ts.map +0 -1
  767. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.js +0 -288
  768. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.js.map +0 -1
  769. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.d.ts +0 -2
  770. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.d.ts.map +0 -1
  771. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js +0 -454
  772. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js.map +0 -1
  773. package/dist/runtime-v2/adapter/__tests__/l2-resolve-model-compat.test.d.ts +0 -2
  774. package/dist/runtime-v2/adapter/__tests__/l2-resolve-model-compat.test.d.ts.map +0 -1
  775. package/dist/runtime-v2/adapter/__tests__/l2-resolve-model-compat.test.js +0 -147
  776. package/dist/runtime-v2/adapter/__tests__/l2-resolve-model-compat.test.js.map +0 -1
  777. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.d.ts +0 -19
  778. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.d.ts.map +0 -1
  779. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.js +0 -210
  780. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.js.map +0 -1
  781. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.d.ts +0 -13
  782. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.d.ts.map +0 -1
  783. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.js +0 -86
  784. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.js.map +0 -1
  785. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.d.ts +0 -2
  786. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.d.ts.map +0 -1
  787. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.js +0 -803
  788. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.js.map +0 -1
  789. package/dist/runtime-v2/adapter/__tests__/output-repair-contract.test.d.ts +0 -2
  790. package/dist/runtime-v2/adapter/__tests__/output-repair-contract.test.d.ts.map +0 -1
  791. package/dist/runtime-v2/adapter/__tests__/output-repair-contract.test.js +0 -305
  792. package/dist/runtime-v2/adapter/__tests__/output-repair-contract.test.js.map +0 -1
  793. package/dist/runtime-v2/adapter/__tests__/pd-stream-simple.test.d.ts +0 -2
  794. package/dist/runtime-v2/adapter/__tests__/pd-stream-simple.test.d.ts.map +0 -1
  795. package/dist/runtime-v2/adapter/__tests__/pd-stream-simple.test.js +0 -71
  796. package/dist/runtime-v2/adapter/__tests__/pd-stream-simple.test.js.map +0 -1
  797. package/dist/runtime-v2/adapter/__tests__/pi-ai-http-transport.test.d.ts +0 -2
  798. package/dist/runtime-v2/adapter/__tests__/pi-ai-http-transport.test.d.ts.map +0 -1
  799. package/dist/runtime-v2/adapter/__tests__/pi-ai-http-transport.test.js +0 -219
  800. package/dist/runtime-v2/adapter/__tests__/pi-ai-http-transport.test.js.map +0 -1
  801. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.d.ts +0 -2
  802. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.d.ts.map +0 -1
  803. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js +0 -2128
  804. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js.map +0 -1
  805. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.d.ts +0 -2
  806. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.d.ts.map +0 -1
  807. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.js +0 -159
  808. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.js.map +0 -1
  809. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.d.ts +0 -2
  810. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.d.ts.map +0 -1
  811. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.js +0 -246
  812. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.js.map +0 -1
  813. package/dist/runtime-v2/adapter/__tests__/schema-json-converter.test.d.ts +0 -2
  814. package/dist/runtime-v2/adapter/__tests__/schema-json-converter.test.d.ts.map +0 -1
  815. package/dist/runtime-v2/adapter/__tests__/schema-json-converter.test.js +0 -101
  816. package/dist/runtime-v2/adapter/__tests__/schema-json-converter.test.js.map +0 -1
  817. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter-semantic.test.d.ts +0 -2
  818. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter-semantic.test.d.ts.map +0 -1
  819. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter-semantic.test.js +0 -94
  820. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter-semantic.test.js.map +0 -1
  821. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.d.ts +0 -2
  822. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.d.ts.map +0 -1
  823. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.js +0 -286
  824. package/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.js.map +0 -1
  825. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.d.ts +0 -2
  826. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.d.ts.map +0 -1
  827. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.js +0 -544
  828. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.js.map +0 -1
  829. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.d.ts +0 -2
  830. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.d.ts.map +0 -1
  831. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.js +0 -543
  832. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.js.map +0 -1
  833. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.d.ts +0 -2
  834. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.d.ts.map +0 -1
  835. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.js +0 -17
  836. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.js.map +0 -1
  837. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.d.ts +0 -18
  838. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.d.ts.map +0 -1
  839. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js +0 -678
  840. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js.map +0 -1
  841. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.d.ts +0 -2
  842. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.d.ts.map +0 -1
  843. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.js +0 -205
  844. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.js.map +0 -1
  845. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.d.ts +0 -15
  846. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.d.ts.map +0 -1
  847. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +0 -801
  848. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +0 -1
  849. package/dist/runtime-v2/config/__tests__/pd-config-pri638-cutover.test.d.ts +0 -2
  850. package/dist/runtime-v2/config/__tests__/pd-config-pri638-cutover.test.d.ts.map +0 -1
  851. package/dist/runtime-v2/config/__tests__/pd-config-pri638-cutover.test.js +0 -99
  852. package/dist/runtime-v2/config/__tests__/pd-config-pri638-cutover.test.js.map +0 -1
  853. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.d.ts +0 -11
  854. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.d.ts.map +0 -1
  855. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js +0 -92
  856. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js.map +0 -1
  857. package/dist/runtime-v2/config/__tests__/pd-config-provenance.test.d.ts +0 -24
  858. package/dist/runtime-v2/config/__tests__/pd-config-provenance.test.d.ts.map +0 -1
  859. package/dist/runtime-v2/config/__tests__/pd-config-provenance.test.js +0 -188
  860. package/dist/runtime-v2/config/__tests__/pd-config-provenance.test.js.map +0 -1
  861. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.d.ts +0 -2
  862. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.d.ts.map +0 -1
  863. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.js +0 -98
  864. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.js.map +0 -1
  865. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.d.ts +0 -13
  866. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.d.ts.map +0 -1
  867. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js +0 -446
  868. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js.map +0 -1
  869. package/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.d.ts +0 -2
  870. package/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.d.ts.map +0 -1
  871. package/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.js +0 -143
  872. package/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.js.map +0 -1
  873. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.d.ts +0 -12
  874. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.d.ts.map +0 -1
  875. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js +0 -649
  876. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js.map +0 -1
  877. package/dist/runtime-v2/config/__tests__/pd-config-workspace.test.d.ts +0 -2
  878. package/dist/runtime-v2/config/__tests__/pd-config-workspace.test.d.ts.map +0 -1
  879. package/dist/runtime-v2/config/__tests__/pd-config-workspace.test.js +0 -195
  880. package/dist/runtime-v2/config/__tests__/pd-config-workspace.test.js.map +0 -1
  881. package/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.d.ts +0 -13
  882. package/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.d.ts.map +0 -1
  883. package/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.js +0 -73
  884. package/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.js.map +0 -1
  885. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.d.ts +0 -5
  886. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.d.ts.map +0 -1
  887. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.js +0 -119
  888. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.js.map +0 -1
  889. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.d.ts +0 -2
  890. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.d.ts.map +0 -1
  891. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.js +0 -95
  892. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.js.map +0 -1
  893. package/dist/runtime-v2/core-principles/__tests__/strip-fabricated-ids.test.d.ts +0 -2
  894. package/dist/runtime-v2/core-principles/__tests__/strip-fabricated-ids.test.d.ts.map +0 -1
  895. package/dist/runtime-v2/core-principles/__tests__/strip-fabricated-ids.test.js +0 -78
  896. package/dist/runtime-v2/core-principles/__tests__/strip-fabricated-ids.test.js.map +0 -1
  897. package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.d.ts +0 -13
  898. package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.d.ts.map +0 -1
  899. package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.js +0 -111
  900. package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.js.map +0 -1
  901. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.d.ts +0 -2
  902. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.d.ts.map +0 -1
  903. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.js +0 -91
  904. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.js.map +0 -1
  905. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.d.ts +0 -2
  906. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.d.ts.map +0 -1
  907. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js +0 -366
  908. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js.map +0 -1
  909. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.d.ts +0 -2
  910. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.d.ts.map +0 -1
  911. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.js +0 -39
  912. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.js.map +0 -1
  913. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts +0 -18
  914. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts.map +0 -1
  915. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js +0 -251
  916. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js.map +0 -1
  917. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.d.ts +0 -2
  918. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.d.ts.map +0 -1
  919. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +0 -235
  920. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +0 -1
  921. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.d.ts +0 -2
  922. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.d.ts.map +0 -1
  923. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.js +0 -57
  924. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.js.map +0 -1
  925. package/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.d.ts +0 -7
  926. package/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.d.ts.map +0 -1
  927. package/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.js +0 -170
  928. package/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.js.map +0 -1
  929. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.d.ts +0 -12
  930. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.d.ts.map +0 -1
  931. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js +0 -181
  932. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js.map +0 -1
  933. package/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.d.ts +0 -18
  934. package/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.d.ts.map +0 -1
  935. package/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.js +0 -277
  936. package/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.js.map +0 -1
  937. package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.d.ts +0 -13
  938. package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.d.ts.map +0 -1
  939. package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js +0 -367
  940. package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js.map +0 -1
  941. package/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.d.ts +0 -16
  942. package/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.d.ts.map +0 -1
  943. package/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.js +0 -316
  944. package/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.js.map +0 -1
  945. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.d.ts +0 -2
  946. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.d.ts.map +0 -1
  947. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.js +0 -48
  948. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.js.map +0 -1
  949. package/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.d.ts +0 -2
  950. package/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.d.ts.map +0 -1
  951. package/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.js +0 -46
  952. package/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.js.map +0 -1
  953. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.d.ts +0 -2
  954. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.d.ts.map +0 -1
  955. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +0 -691
  956. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +0 -1
  957. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.d.ts +0 -2
  958. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.d.ts.map +0 -1
  959. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.js +0 -420
  960. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.js.map +0 -1
  961. package/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.d.ts +0 -2
  962. package/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.d.ts.map +0 -1
  963. package/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js +0 -86
  964. package/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js.map +0 -1
  965. package/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.d.ts +0 -2
  966. package/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.d.ts.map +0 -1
  967. package/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.js +0 -30
  968. package/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.js.map +0 -1
  969. package/dist/runtime-v2/feature-flags/__tests__/pain-diagnosis-persistence-flag.test.d.ts +0 -2
  970. package/dist/runtime-v2/feature-flags/__tests__/pain-diagnosis-persistence-flag.test.d.ts.map +0 -1
  971. package/dist/runtime-v2/feature-flags/__tests__/pain-diagnosis-persistence-flag.test.js +0 -44
  972. package/dist/runtime-v2/feature-flags/__tests__/pain-diagnosis-persistence-flag.test.js.map +0 -1
  973. package/dist/runtime-v2/feature-flags/__tests__/plugin-surface-registry.test.d.ts +0 -2
  974. package/dist/runtime-v2/feature-flags/__tests__/plugin-surface-registry.test.d.ts.map +0 -1
  975. package/dist/runtime-v2/feature-flags/__tests__/plugin-surface-registry.test.js +0 -152
  976. package/dist/runtime-v2/feature-flags/__tests__/plugin-surface-registry.test.js.map +0 -1
  977. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-block-copy-flag.test.d.ts +0 -2
  978. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-block-copy-flag.test.d.ts.map +0 -1
  979. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-block-copy-flag.test.js +0 -42
  980. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-block-copy-flag.test.js.map +0 -1
  981. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-ledger-flag.test.d.ts +0 -2
  982. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-ledger-flag.test.d.ts.map +0 -1
  983. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-ledger-flag.test.js +0 -42
  984. package/dist/runtime-v2/feature-flags/__tests__/principle-receipt-ledger-flag.test.js.map +0 -1
  985. package/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts +0 -2
  986. package/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts.map +0 -1
  987. package/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js +0 -74
  988. package/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js.map +0 -1
  989. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts +0 -2
  990. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts.map +0 -1
  991. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js +0 -246
  992. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js.map +0 -1
  993. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.d.ts +0 -2
  994. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.d.ts.map +0 -1
  995. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.js +0 -221
  996. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.js.map +0 -1
  997. package/dist/runtime-v2/feedback/__tests__/fingerprint.test.d.ts +0 -2
  998. package/dist/runtime-v2/feedback/__tests__/fingerprint.test.d.ts.map +0 -1
  999. package/dist/runtime-v2/feedback/__tests__/fingerprint.test.js +0 -126
  1000. package/dist/runtime-v2/feedback/__tests__/fingerprint.test.js.map +0 -1
  1001. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.d.ts +0 -11
  1002. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.d.ts.map +0 -1
  1003. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.js +0 -160
  1004. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.js.map +0 -1
  1005. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.d.ts +0 -2
  1006. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.d.ts.map +0 -1
  1007. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.js +0 -342
  1008. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.js.map +0 -1
  1009. package/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.d.ts +0 -15
  1010. package/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.d.ts.map +0 -1
  1011. package/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.js +0 -450
  1012. package/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.js.map +0 -1
  1013. package/dist/runtime-v2/feedback/__tests__/render-github-url.test.d.ts +0 -13
  1014. package/dist/runtime-v2/feedback/__tests__/render-github-url.test.d.ts.map +0 -1
  1015. package/dist/runtime-v2/feedback/__tests__/render-github-url.test.js +0 -243
  1016. package/dist/runtime-v2/feedback/__tests__/render-github-url.test.js.map +0 -1
  1017. package/dist/runtime-v2/feedback/__tests__/safe-stringify.test.d.ts +0 -12
  1018. package/dist/runtime-v2/feedback/__tests__/safe-stringify.test.d.ts.map +0 -1
  1019. package/dist/runtime-v2/feedback/__tests__/safe-stringify.test.js +0 -172
  1020. package/dist/runtime-v2/feedback/__tests__/safe-stringify.test.js.map +0 -1
  1021. package/dist/runtime-v2/feedback/__tests__/slice1-typed-fields.test.d.ts +0 -2
  1022. package/dist/runtime-v2/feedback/__tests__/slice1-typed-fields.test.d.ts.map +0 -1
  1023. package/dist/runtime-v2/feedback/__tests__/slice1-typed-fields.test.js +0 -278
  1024. package/dist/runtime-v2/feedback/__tests__/slice1-typed-fields.test.js.map +0 -1
  1025. package/dist/runtime-v2/gfi/__tests__/gfi-kernel.test.d.ts +0 -2
  1026. package/dist/runtime-v2/gfi/__tests__/gfi-kernel.test.d.ts.map +0 -1
  1027. package/dist/runtime-v2/gfi/__tests__/gfi-kernel.test.js +0 -626
  1028. package/dist/runtime-v2/gfi/__tests__/gfi-kernel.test.js.map +0 -1
  1029. package/dist/runtime-v2/gfi/__tests__/gfi-read-model.test.d.ts +0 -2
  1030. package/dist/runtime-v2/gfi/__tests__/gfi-read-model.test.d.ts.map +0 -1
  1031. package/dist/runtime-v2/gfi/__tests__/gfi-read-model.test.js +0 -212
  1032. package/dist/runtime-v2/gfi/__tests__/gfi-read-model.test.js.map +0 -1
  1033. package/dist/runtime-v2/intent/__tests__/intent-browser.test.d.ts +0 -2
  1034. package/dist/runtime-v2/intent/__tests__/intent-browser.test.d.ts.map +0 -1
  1035. package/dist/runtime-v2/intent/__tests__/intent-browser.test.js +0 -93
  1036. package/dist/runtime-v2/intent/__tests__/intent-browser.test.js.map +0 -1
  1037. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts +0 -2
  1038. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts.map +0 -1
  1039. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js +0 -185
  1040. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js.map +0 -1
  1041. package/dist/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.d.ts +0 -2
  1042. package/dist/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.d.ts.map +0 -1
  1043. package/dist/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.js +0 -182
  1044. package/dist/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.js.map +0 -1
  1045. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts +0 -2
  1046. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts.map +0 -1
  1047. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js +0 -88
  1048. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js.map +0 -1
  1049. package/dist/runtime-v2/intent/__tests__/intent-doc.test.d.ts +0 -2
  1050. package/dist/runtime-v2/intent/__tests__/intent-doc.test.d.ts.map +0 -1
  1051. package/dist/runtime-v2/intent/__tests__/intent-doc.test.js +0 -181
  1052. package/dist/runtime-v2/intent/__tests__/intent-doc.test.js.map +0 -1
  1053. package/dist/runtime-v2/intent/__tests__/intent-friction-block.test.d.ts +0 -2
  1054. package/dist/runtime-v2/intent/__tests__/intent-friction-block.test.d.ts.map +0 -1
  1055. package/dist/runtime-v2/intent/__tests__/intent-friction-block.test.js +0 -168
  1056. package/dist/runtime-v2/intent/__tests__/intent-friction-block.test.js.map +0 -1
  1057. package/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.d.ts +0 -2
  1058. package/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.d.ts.map +0 -1
  1059. package/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.js +0 -121
  1060. package/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.js.map +0 -1
  1061. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts +0 -54
  1062. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts.map +0 -1
  1063. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js +0 -219
  1064. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js.map +0 -1
  1065. package/dist/runtime-v2/internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.d.ts.map +0 -1
  1066. package/dist/runtime-v2/internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.js.map +0 -1
  1067. package/dist/runtime-v2/internalization/__tests__/a-liveness-reconciliation.test.d.ts +0 -2
  1068. package/dist/runtime-v2/internalization/__tests__/a-liveness-reconciliation.test.d.ts.map +0 -1
  1069. package/dist/runtime-v2/internalization/__tests__/a-liveness-reconciliation.test.js +0 -158
  1070. package/dist/runtime-v2/internalization/__tests__/a-liveness-reconciliation.test.js.map +0 -1
  1071. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.d.ts +0 -2
  1072. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.d.ts.map +0 -1
  1073. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.js +0 -139
  1074. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.js.map +0 -1
  1075. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.d.ts +0 -2
  1076. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.d.ts.map +0 -1
  1077. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.js +0 -71
  1078. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.js.map +0 -1
  1079. package/dist/runtime-v2/internalization/__tests__/artifact-content-hash.property.test.d.ts +0 -11
  1080. package/dist/runtime-v2/internalization/__tests__/artifact-content-hash.property.test.d.ts.map +0 -1
  1081. package/dist/runtime-v2/internalization/__tests__/artifact-content-hash.property.test.js +0 -124
  1082. package/dist/runtime-v2/internalization/__tests__/artifact-content-hash.property.test.js.map +0 -1
  1083. package/dist/runtime-v2/internalization/__tests__/artifact-summary.property.test.d.ts +0 -12
  1084. package/dist/runtime-v2/internalization/__tests__/artifact-summary.property.test.d.ts.map +0 -1
  1085. package/dist/runtime-v2/internalization/__tests__/artifact-summary.property.test.js +0 -253
  1086. package/dist/runtime-v2/internalization/__tests__/artifact-summary.property.test.js.map +0 -1
  1087. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.d.ts +0 -2
  1088. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.d.ts.map +0 -1
  1089. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.js +0 -114
  1090. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.js.map +0 -1
  1091. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.d.ts +0 -2
  1092. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.d.ts.map +0 -1
  1093. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.js +0 -112
  1094. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.js.map +0 -1
  1095. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.d.ts +0 -2
  1096. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.d.ts.map +0 -1
  1097. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js +0 -116
  1098. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js.map +0 -1
  1099. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.d.ts +0 -2
  1100. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.d.ts.map +0 -1
  1101. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +0 -455
  1102. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +0 -1
  1103. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.d.ts +0 -2
  1104. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.d.ts.map +0 -1
  1105. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js +0 -522
  1106. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js.map +0 -1
  1107. package/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts +0 -2
  1108. package/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts.map +0 -1
  1109. package/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js +0 -228
  1110. package/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js.map +0 -1
  1111. package/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.d.ts +0 -2
  1112. package/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.d.ts.map +0 -1
  1113. package/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.js +0 -450
  1114. package/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.js.map +0 -1
  1115. package/dist/runtime-v2/internalization/__tests__/crash-liveness-regressions.test.d.ts +0 -2
  1116. package/dist/runtime-v2/internalization/__tests__/crash-liveness-regressions.test.d.ts.map +0 -1
  1117. package/dist/runtime-v2/internalization/__tests__/crash-liveness-regressions.test.js +0 -311
  1118. package/dist/runtime-v2/internalization/__tests__/crash-liveness-regressions.test.js.map +0 -1
  1119. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.d.ts +0 -2
  1120. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.d.ts.map +0 -1
  1121. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +0 -862
  1122. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +0 -1
  1123. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.d.ts +0 -2
  1124. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.d.ts.map +0 -1
  1125. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js +0 -441
  1126. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js.map +0 -1
  1127. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts +0 -2
  1128. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts.map +0 -1
  1129. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js +0 -369
  1130. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js.map +0 -1
  1131. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.d.ts +0 -2
  1132. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.d.ts.map +0 -1
  1133. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js +0 -362
  1134. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js.map +0 -1
  1135. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts +0 -2
  1136. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts.map +0 -1
  1137. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js +0 -333
  1138. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js.map +0 -1
  1139. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.d.ts +0 -2
  1140. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.d.ts.map +0 -1
  1141. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js +0 -484
  1142. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js.map +0 -1
  1143. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.d.ts +0 -2
  1144. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.d.ts.map +0 -1
  1145. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js +0 -193
  1146. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js.map +0 -1
  1147. package/dist/runtime-v2/internalization/__tests__/evaluator-approved-replay-failed-repair.test.d.ts +0 -2
  1148. package/dist/runtime-v2/internalization/__tests__/evaluator-approved-replay-failed-repair.test.d.ts.map +0 -1
  1149. package/dist/runtime-v2/internalization/__tests__/evaluator-approved-replay-failed-repair.test.js +0 -247
  1150. package/dist/runtime-v2/internalization/__tests__/evaluator-approved-replay-failed-repair.test.js.map +0 -1
  1151. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.d.ts +0 -2
  1152. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.d.ts.map +0 -1
  1153. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js +0 -419
  1154. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js.map +0 -1
  1155. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.d.ts +0 -2
  1156. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.d.ts.map +0 -1
  1157. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js +0 -311
  1158. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js.map +0 -1
  1159. package/dist/runtime-v2/internalization/__tests__/evaluator-formation-context.test.d.ts +0 -2
  1160. package/dist/runtime-v2/internalization/__tests__/evaluator-formation-context.test.d.ts.map +0 -1
  1161. package/dist/runtime-v2/internalization/__tests__/evaluator-formation-context.test.js +0 -531
  1162. package/dist/runtime-v2/internalization/__tests__/evaluator-formation-context.test.js.map +0 -1
  1163. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.d.ts +0 -2
  1164. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.d.ts.map +0 -1
  1165. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js +0 -606
  1166. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js.map +0 -1
  1167. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.d.ts +0 -2
  1168. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.d.ts.map +0 -1
  1169. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.js +0 -279
  1170. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.js.map +0 -1
  1171. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.d.ts +0 -2
  1172. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.d.ts.map +0 -1
  1173. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.js +0 -309
  1174. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.js.map +0 -1
  1175. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.d.ts +0 -2
  1176. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.d.ts.map +0 -1
  1177. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.js +0 -209
  1178. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.js.map +0 -1
  1179. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.d.ts +0 -2
  1180. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.d.ts.map +0 -1
  1181. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.js +0 -328
  1182. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.js.map +0 -1
  1183. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.d.ts +0 -2
  1184. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.d.ts.map +0 -1
  1185. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.js +0 -125
  1186. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.js.map +0 -1
  1187. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.d.ts +0 -2
  1188. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.d.ts.map +0 -1
  1189. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js +0 -114
  1190. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js.map +0 -1
  1191. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.d.ts +0 -2
  1192. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.d.ts.map +0 -1
  1193. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.js +0 -433
  1194. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.js.map +0 -1
  1195. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.d.ts +0 -18
  1196. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.d.ts.map +0 -1
  1197. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.js +0 -470
  1198. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.js.map +0 -1
  1199. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.d.ts +0 -2
  1200. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.d.ts.map +0 -1
  1201. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js +0 -195
  1202. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js.map +0 -1
  1203. package/dist/runtime-v2/internalization/__tests__/formation-context.test.d.ts +0 -2
  1204. package/dist/runtime-v2/internalization/__tests__/formation-context.test.d.ts.map +0 -1
  1205. package/dist/runtime-v2/internalization/__tests__/formation-context.test.js +0 -428
  1206. package/dist/runtime-v2/internalization/__tests__/formation-context.test.js.map +0 -1
  1207. package/dist/runtime-v2/internalization/__tests__/intake-bridge-channel-admission.test.d.ts +0 -2
  1208. package/dist/runtime-v2/internalization/__tests__/intake-bridge-channel-admission.test.d.ts.map +0 -1
  1209. package/dist/runtime-v2/internalization/__tests__/intake-bridge-channel-admission.test.js +0 -128
  1210. package/dist/runtime-v2/internalization/__tests__/intake-bridge-channel-admission.test.js.map +0 -1
  1211. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts +0 -2
  1212. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts.map +0 -1
  1213. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js +0 -113
  1214. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js.map +0 -1
  1215. package/dist/runtime-v2/internalization/__tests__/internalization-consumer-decision.test.d.ts +0 -2
  1216. package/dist/runtime-v2/internalization/__tests__/internalization-consumer-decision.test.d.ts.map +0 -1
  1217. package/dist/runtime-v2/internalization/__tests__/internalization-consumer-decision.test.js +0 -251
  1218. package/dist/runtime-v2/internalization/__tests__/internalization-consumer-decision.test.js.map +0 -1
  1219. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.d.ts +0 -2
  1220. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.d.ts.map +0 -1
  1221. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.js +0 -144
  1222. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.js.map +0 -1
  1223. package/dist/runtime-v2/internalization/__tests__/internalization-task-guards.test.d.ts +0 -2
  1224. package/dist/runtime-v2/internalization/__tests__/internalization-task-guards.test.d.ts.map +0 -1
  1225. package/dist/runtime-v2/internalization/__tests__/internalization-task-guards.test.js +0 -306
  1226. package/dist/runtime-v2/internalization/__tests__/internalization-task-guards.test.js.map +0 -1
  1227. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.d.ts +0 -2
  1228. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.d.ts.map +0 -1
  1229. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.js +0 -338
  1230. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.js.map +0 -1
  1231. package/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.d.ts +0 -2
  1232. package/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.d.ts.map +0 -1
  1233. package/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.js +0 -120
  1234. package/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.js.map +0 -1
  1235. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.d.ts +0 -2
  1236. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.d.ts.map +0 -1
  1237. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js +0 -581
  1238. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js.map +0 -1
  1239. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.d.ts +0 -2
  1240. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.d.ts.map +0 -1
  1241. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.js +0 -56
  1242. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.js.map +0 -1
  1243. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.d.ts +0 -2
  1244. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.d.ts.map +0 -1
  1245. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js +0 -518
  1246. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js.map +0 -1
  1247. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.d.ts +0 -2
  1248. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.d.ts.map +0 -1
  1249. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.js +0 -1247
  1250. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.js.map +0 -1
  1251. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.d.ts +0 -2
  1252. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.d.ts.map +0 -1
  1253. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.js +0 -410
  1254. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.js.map +0 -1
  1255. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.d.ts +0 -21
  1256. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.d.ts.map +0 -1
  1257. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.js +0 -288
  1258. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.js.map +0 -1
  1259. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.d.ts +0 -2
  1260. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.d.ts.map +0 -1
  1261. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.js +0 -181
  1262. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.js.map +0 -1
  1263. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.d.ts +0 -2
  1264. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.d.ts.map +0 -1
  1265. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.js +0 -150
  1266. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.js.map +0 -1
  1267. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.d.ts +0 -2
  1268. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.d.ts.map +0 -1
  1269. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js +0 -431
  1270. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js.map +0 -1
  1271. package/dist/runtime-v2/internalization/__tests__/philosopher-toggle-characterization.test.d.ts +0 -2
  1272. package/dist/runtime-v2/internalization/__tests__/philosopher-toggle-characterization.test.d.ts.map +0 -1
  1273. package/dist/runtime-v2/internalization/__tests__/philosopher-toggle-characterization.test.js +0 -279
  1274. package/dist/runtime-v2/internalization/__tests__/philosopher-toggle-characterization.test.js.map +0 -1
  1275. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.d.ts +0 -165
  1276. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.d.ts.map +0 -1
  1277. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.js +0 -659
  1278. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.js.map +0 -1
  1279. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.test.d.ts +0 -22
  1280. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.test.d.ts.map +0 -1
  1281. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.test.js +0 -229
  1282. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike-fixtures.test.js.map +0 -1
  1283. package/dist/runtime-v2/internalization/__tests__/prompt-serializer.test.d.ts +0 -2
  1284. package/dist/runtime-v2/internalization/__tests__/prompt-serializer.test.d.ts.map +0 -1
  1285. package/dist/runtime-v2/internalization/__tests__/prompt-serializer.test.js +0 -91
  1286. package/dist/runtime-v2/internalization/__tests__/prompt-serializer.test.js.map +0 -1
  1287. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.d.ts +0 -2
  1288. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.d.ts.map +0 -1
  1289. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.js +0 -86
  1290. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.js.map +0 -1
  1291. package/dist/runtime-v2/internalization/__tests__/refiner-rulehost-gate.test.d.ts +0 -2
  1292. package/dist/runtime-v2/internalization/__tests__/refiner-rulehost-gate.test.d.ts.map +0 -1
  1293. package/dist/runtime-v2/internalization/__tests__/refiner-rulehost-gate.test.js +0 -431
  1294. package/dist/runtime-v2/internalization/__tests__/refiner-rulehost-gate.test.js.map +0 -1
  1295. package/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.d.ts +0 -2
  1296. package/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.d.ts.map +0 -1
  1297. package/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js +0 -898
  1298. package/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js.map +0 -1
  1299. package/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.d.ts +0 -2
  1300. package/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.d.ts.map +0 -1
  1301. package/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.js +0 -340
  1302. package/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.js.map +0 -1
  1303. package/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.d.ts +0 -2
  1304. package/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.d.ts.map +0 -1
  1305. package/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js +0 -169
  1306. package/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js.map +0 -1
  1307. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-principle-semantic.test.d.ts +0 -2
  1308. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-principle-semantic.test.d.ts.map +0 -1
  1309. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-principle-semantic.test.js +0 -328
  1310. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-principle-semantic.test.js.map +0 -1
  1311. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.d.ts +0 -2
  1312. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.d.ts.map +0 -1
  1313. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.js +0 -75
  1314. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.js.map +0 -1
  1315. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.d.ts +0 -2
  1316. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.d.ts.map +0 -1
  1317. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.js +0 -187
  1318. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.js.map +0 -1
  1319. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.d.ts +0 -2
  1320. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.d.ts.map +0 -1
  1321. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js +0 -320
  1322. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js.map +0 -1
  1323. package/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts +0 -2
  1324. package/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts.map +0 -1
  1325. package/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js +0 -449
  1326. package/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js.map +0 -1
  1327. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.d.ts +0 -2
  1328. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.d.ts.map +0 -1
  1329. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.js +0 -203
  1330. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.js.map +0 -1
  1331. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.d.ts +0 -12
  1332. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.d.ts.map +0 -1
  1333. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.js +0 -256
  1334. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.js.map +0 -1
  1335. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.d.ts +0 -2
  1336. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.d.ts.map +0 -1
  1337. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js +0 -224
  1338. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js.map +0 -1
  1339. package/dist/runtime-v2/internalization/__tests__/scribe-intent-contract-normalization.test.d.ts +0 -2
  1340. package/dist/runtime-v2/internalization/__tests__/scribe-intent-contract-normalization.test.d.ts.map +0 -1
  1341. package/dist/runtime-v2/internalization/__tests__/scribe-intent-contract-normalization.test.js +0 -78
  1342. package/dist/runtime-v2/internalization/__tests__/scribe-intent-contract-normalization.test.js.map +0 -1
  1343. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.d.ts +0 -2
  1344. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.d.ts.map +0 -1
  1345. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js +0 -180
  1346. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js.map +0 -1
  1347. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.d.ts +0 -12
  1348. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.d.ts.map +0 -1
  1349. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js +0 -85
  1350. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js.map +0 -1
  1351. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.d.ts +0 -2
  1352. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.d.ts.map +0 -1
  1353. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js +0 -752
  1354. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js.map +0 -1
  1355. package/dist/runtime-v2/internalization/__tests__/summary-freshness.property.test.d.ts +0 -12
  1356. package/dist/runtime-v2/internalization/__tests__/summary-freshness.property.test.d.ts.map +0 -1
  1357. package/dist/runtime-v2/internalization/__tests__/summary-freshness.property.test.js +0 -176
  1358. package/dist/runtime-v2/internalization/__tests__/summary-freshness.property.test.js.map +0 -1
  1359. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.d.ts +0 -11
  1360. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.d.ts.map +0 -1
  1361. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js +0 -176
  1362. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js.map +0 -1
  1363. package/dist/runtime-v2/internalization/__tests__/verdict-drift-regressions.test.d.ts +0 -2
  1364. package/dist/runtime-v2/internalization/__tests__/verdict-drift-regressions.test.d.ts.map +0 -1
  1365. package/dist/runtime-v2/internalization/__tests__/verdict-drift-regressions.test.js +0 -602
  1366. package/dist/runtime-v2/internalization/__tests__/verdict-drift-regressions.test.js.map +0 -1
  1367. package/dist/runtime-v2/internalization/deprecated-readiness.test.d.ts +0 -2
  1368. package/dist/runtime-v2/internalization/deprecated-readiness.test.d.ts.map +0 -1
  1369. package/dist/runtime-v2/internalization/deprecated-readiness.test.js +0 -127
  1370. package/dist/runtime-v2/internalization/deprecated-readiness.test.js.map +0 -1
  1371. package/dist/runtime-v2/internalization/lifecycle-metrics.test.d.ts +0 -2
  1372. package/dist/runtime-v2/internalization/lifecycle-metrics.test.d.ts.map +0 -1
  1373. package/dist/runtime-v2/internalization/lifecycle-metrics.test.js +0 -201
  1374. package/dist/runtime-v2/internalization/lifecycle-metrics.test.js.map +0 -1
  1375. package/dist/runtime-v2/internalization/lifecycle-read-model.test.d.ts +0 -2
  1376. package/dist/runtime-v2/internalization/lifecycle-read-model.test.d.ts.map +0 -1
  1377. package/dist/runtime-v2/internalization/lifecycle-read-model.test.js +0 -408
  1378. package/dist/runtime-v2/internalization/lifecycle-read-model.test.js.map +0 -1
  1379. package/dist/runtime-v2/internalization/routing-policy.test.d.ts +0 -2
  1380. package/dist/runtime-v2/internalization/routing-policy.test.d.ts.map +0 -1
  1381. package/dist/runtime-v2/internalization/routing-policy.test.js +0 -286
  1382. package/dist/runtime-v2/internalization/routing-policy.test.js.map +0 -1
  1383. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.d.ts +0 -2
  1384. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.d.ts.map +0 -1
  1385. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.js +0 -59
  1386. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.js.map +0 -1
  1387. package/dist/runtime-v2/observer/__tests__/correction-observer.test.d.ts +0 -2
  1388. package/dist/runtime-v2/observer/__tests__/correction-observer.test.d.ts.map +0 -1
  1389. package/dist/runtime-v2/observer/__tests__/correction-observer.test.js +0 -145
  1390. package/dist/runtime-v2/observer/__tests__/correction-observer.test.js.map +0 -1
  1391. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.d.ts +0 -2
  1392. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.d.ts.map +0 -1
  1393. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js +0 -615
  1394. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js.map +0 -1
  1395. package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.d.ts +0 -15
  1396. package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.d.ts.map +0 -1
  1397. package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.js +0 -179
  1398. package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.js.map +0 -1
  1399. package/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts +0 -2
  1400. package/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts.map +0 -1
  1401. package/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js +0 -95
  1402. package/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js.map +0 -1
  1403. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.d.ts +0 -2
  1404. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.d.ts.map +0 -1
  1405. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js +0 -493
  1406. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js.map +0 -1
  1407. package/dist/runtime-v2/runner/__tests__/base-peer-runner-failure-details.test.d.ts +0 -2
  1408. package/dist/runtime-v2/runner/__tests__/base-peer-runner-failure-details.test.d.ts.map +0 -1
  1409. package/dist/runtime-v2/runner/__tests__/base-peer-runner-failure-details.test.js +0 -199
  1410. package/dist/runtime-v2/runner/__tests__/base-peer-runner-failure-details.test.js.map +0 -1
  1411. package/dist/runtime-v2/runner/__tests__/base-peer-runner-rate-limit-degradation.test.d.ts +0 -2
  1412. package/dist/runtime-v2/runner/__tests__/base-peer-runner-rate-limit-degradation.test.d.ts.map +0 -1
  1413. package/dist/runtime-v2/runner/__tests__/base-peer-runner-rate-limit-degradation.test.js +0 -319
  1414. package/dist/runtime-v2/runner/__tests__/base-peer-runner-rate-limit-degradation.test.js.map +0 -1
  1415. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.d.ts +0 -2
  1416. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.d.ts.map +0 -1
  1417. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js +0 -388
  1418. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js.map +0 -1
  1419. package/dist/runtime-v2/runner/__tests__/default-validator.test.d.ts +0 -2
  1420. package/dist/runtime-v2/runner/__tests__/default-validator.test.d.ts.map +0 -1
  1421. package/dist/runtime-v2/runner/__tests__/default-validator.test.js +0 -589
  1422. package/dist/runtime-v2/runner/__tests__/default-validator.test.js.map +0 -1
  1423. package/dist/runtime-v2/runner/__tests__/diagnose.test.d.ts +0 -2
  1424. package/dist/runtime-v2/runner/__tests__/diagnose.test.d.ts.map +0 -1
  1425. package/dist/runtime-v2/runner/__tests__/diagnose.test.js +0 -171
  1426. package/dist/runtime-v2/runner/__tests__/diagnose.test.js.map +0 -1
  1427. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.d.ts +0 -2
  1428. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.d.ts.map +0 -1
  1429. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.js +0 -477
  1430. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.js.map +0 -1
  1431. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge.test.d.ts +0 -2
  1432. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge.test.d.ts.map +0 -1
  1433. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge.test.js +0 -160
  1434. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge.test.js.map +0 -1
  1435. package/dist/runtime-v2/signal-collector/__tests__/keyword-stage.test.d.ts +0 -2
  1436. package/dist/runtime-v2/signal-collector/__tests__/keyword-stage.test.d.ts.map +0 -1
  1437. package/dist/runtime-v2/signal-collector/__tests__/keyword-stage.test.js +0 -39
  1438. package/dist/runtime-v2/signal-collector/__tests__/keyword-stage.test.js.map +0 -1
  1439. package/dist/runtime-v2/signal-collector/__tests__/llm-payload-contract.test.d.ts +0 -2
  1440. package/dist/runtime-v2/signal-collector/__tests__/llm-payload-contract.test.d.ts.map +0 -1
  1441. package/dist/runtime-v2/signal-collector/__tests__/llm-payload-contract.test.js +0 -130
  1442. package/dist/runtime-v2/signal-collector/__tests__/llm-payload-contract.test.js.map +0 -1
  1443. package/dist/runtime-v2/signal-collector/__tests__/llm-stage.test.d.ts +0 -2
  1444. package/dist/runtime-v2/signal-collector/__tests__/llm-stage.test.d.ts.map +0 -1
  1445. package/dist/runtime-v2/signal-collector/__tests__/llm-stage.test.js +0 -34
  1446. package/dist/runtime-v2/signal-collector/__tests__/llm-stage.test.js.map +0 -1
  1447. package/dist/runtime-v2/signal-collector/__tests__/signal-collector.test.d.ts +0 -2
  1448. package/dist/runtime-v2/signal-collector/__tests__/signal-collector.test.d.ts.map +0 -1
  1449. package/dist/runtime-v2/signal-collector/__tests__/signal-collector.test.js +0 -222
  1450. package/dist/runtime-v2/signal-collector/__tests__/signal-collector.test.js.map +0 -1
  1451. package/dist/runtime-v2/signal-collector/__tests__/types.test.d.ts +0 -2
  1452. package/dist/runtime-v2/signal-collector/__tests__/types.test.d.ts.map +0 -1
  1453. package/dist/runtime-v2/signal-collector/__tests__/types.test.js +0 -35
  1454. package/dist/runtime-v2/signal-collector/__tests__/types.test.js.map +0 -1
  1455. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts +0 -2
  1456. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts.map +0 -1
  1457. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js +0 -55
  1458. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js.map +0 -1
  1459. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.d.ts +0 -2
  1460. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.d.ts.map +0 -1
  1461. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.js +0 -34
  1462. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.js.map +0 -1
  1463. package/dist/runtime-v2/store/concurrent-lease.test.d.ts +0 -2
  1464. package/dist/runtime-v2/store/concurrent-lease.test.d.ts.map +0 -1
  1465. package/dist/runtime-v2/store/concurrent-lease.test.js +0 -129
  1466. package/dist/runtime-v2/store/concurrent-lease.test.js.map +0 -1
  1467. package/dist/runtime-v2/store/context/resilient-context-assembler.test.d.ts +0 -2
  1468. package/dist/runtime-v2/store/context/resilient-context-assembler.test.d.ts.map +0 -1
  1469. package/dist/runtime-v2/store/context/resilient-context-assembler.test.js +0 -113
  1470. package/dist/runtime-v2/store/context/resilient-context-assembler.test.js.map +0 -1
  1471. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.d.ts +0 -2
  1472. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.d.ts.map +0 -1
  1473. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.js +0 -1681
  1474. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.js.map +0 -1
  1475. package/dist/runtime-v2/store/diagnostician-committer.test.d.ts +0 -2
  1476. package/dist/runtime-v2/store/diagnostician-committer.test.d.ts.map +0 -1
  1477. package/dist/runtime-v2/store/diagnostician-committer.test.js +0 -360
  1478. package/dist/runtime-v2/store/diagnostician-committer.test.js.map +0 -1
  1479. package/dist/runtime-v2/store/history/resilient-history-query.test.d.ts +0 -2
  1480. package/dist/runtime-v2/store/history/resilient-history-query.test.d.ts.map +0 -1
  1481. package/dist/runtime-v2/store/history/resilient-history-query.test.js +0 -128
  1482. package/dist/runtime-v2/store/history/resilient-history-query.test.js.map +0 -1
  1483. package/dist/runtime-v2/store/history/sqlite-history-query.test.d.ts +0 -2
  1484. package/dist/runtime-v2/store/history/sqlite-history-query.test.d.ts.map +0 -1
  1485. package/dist/runtime-v2/store/history/sqlite-history-query.test.js +0 -536
  1486. package/dist/runtime-v2/store/history/sqlite-history-query.test.js.map +0 -1
  1487. package/dist/runtime-v2/store/idempotent-transitions.test.d.ts +0 -2
  1488. package/dist/runtime-v2/store/idempotent-transitions.test.d.ts.map +0 -1
  1489. package/dist/runtime-v2/store/idempotent-transitions.test.js +0 -163
  1490. package/dist/runtime-v2/store/idempotent-transitions.test.js.map +0 -1
  1491. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts +0 -2
  1492. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts.map +0 -1
  1493. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js +0 -272
  1494. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js.map +0 -1
  1495. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts +0 -2
  1496. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts.map +0 -1
  1497. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js +0 -83
  1498. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js.map +0 -1
  1499. package/dist/runtime-v2/store/lifecycle/lease-manager.test.d.ts +0 -2
  1500. package/dist/runtime-v2/store/lifecycle/lease-manager.test.d.ts.map +0 -1
  1501. package/dist/runtime-v2/store/lifecycle/lease-manager.test.js +0 -241
  1502. package/dist/runtime-v2/store/lifecycle/lease-manager.test.js.map +0 -1
  1503. package/dist/runtime-v2/store/lifecycle/recovery-sweep.test.d.ts +0 -2
  1504. package/dist/runtime-v2/store/lifecycle/recovery-sweep.test.d.ts.map +0 -1
  1505. package/dist/runtime-v2/store/lifecycle/recovery-sweep.test.js +0 -316
  1506. package/dist/runtime-v2/store/lifecycle/recovery-sweep.test.js.map +0 -1
  1507. package/dist/runtime-v2/store/lifecycle/retry-policy.test.d.ts +0 -2
  1508. package/dist/runtime-v2/store/lifecycle/retry-policy.test.d.ts.map +0 -1
  1509. package/dist/runtime-v2/store/lifecycle/retry-policy.test.js +0 -86
  1510. package/dist/runtime-v2/store/lifecycle/retry-policy.test.js.map +0 -1
  1511. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.d.ts +0 -2
  1512. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.d.ts.map +0 -1
  1513. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.js +0 -225
  1514. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.js.map +0 -1
  1515. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.d.ts +0 -2
  1516. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.d.ts.map +0 -1
  1517. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.js +0 -160
  1518. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.js.map +0 -1
  1519. package/dist/runtime-v2/store/runtime-state-manager.integration.test.d.ts +0 -2
  1520. package/dist/runtime-v2/store/runtime-state-manager.integration.test.d.ts.map +0 -1
  1521. package/dist/runtime-v2/store/runtime-state-manager.integration.test.js +0 -220
  1522. package/dist/runtime-v2/store/runtime-state-manager.integration.test.js.map +0 -1
  1523. package/dist/runtime-v2/store/schema-conformance.test.d.ts +0 -2
  1524. package/dist/runtime-v2/store/schema-conformance.test.d.ts.map +0 -1
  1525. package/dist/runtime-v2/store/schema-conformance.test.js +0 -670
  1526. package/dist/runtime-v2/store/schema-conformance.test.js.map +0 -1
  1527. package/dist/runtime-v2/store/sqlite-connection-close.test.d.ts +0 -2
  1528. package/dist/runtime-v2/store/sqlite-connection-close.test.d.ts.map +0 -1
  1529. package/dist/runtime-v2/store/sqlite-connection-close.test.js +0 -57
  1530. package/dist/runtime-v2/store/sqlite-connection-close.test.js.map +0 -1
  1531. package/dist/runtime-v2/store/sqlite-connection-pragma.test.d.ts +0 -2
  1532. package/dist/runtime-v2/store/sqlite-connection-pragma.test.d.ts.map +0 -1
  1533. package/dist/runtime-v2/store/sqlite-connection-pragma.test.js +0 -272
  1534. package/dist/runtime-v2/store/sqlite-connection-pragma.test.js.map +0 -1
  1535. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts +0 -2
  1536. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts.map +0 -1
  1537. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.js +0 -106
  1538. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.js.map +0 -1
  1539. package/dist/runtime-v2/store/sqlite-run-store.test.d.ts +0 -2
  1540. package/dist/runtime-v2/store/sqlite-run-store.test.d.ts.map +0 -1
  1541. package/dist/runtime-v2/store/sqlite-run-store.test.js +0 -322
  1542. package/dist/runtime-v2/store/sqlite-run-store.test.js.map +0 -1
  1543. package/dist/runtime-v2/store/sqlite-task-store.test.d.ts +0 -2
  1544. package/dist/runtime-v2/store/sqlite-task-store.test.d.ts.map +0 -1
  1545. package/dist/runtime-v2/store/sqlite-task-store.test.js +0 -164
  1546. package/dist/runtime-v2/store/sqlite-task-store.test.js.map +0 -1
  1547. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.d.ts +0 -2
  1548. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.d.ts.map +0 -1
  1549. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.js +0 -114
  1550. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.js.map +0 -1
  1551. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.d.ts +0 -2
  1552. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.d.ts.map +0 -1
  1553. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js +0 -485
  1554. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js.map +0 -1
  1555. package/dist/runtime-v2/store/trajectory/source-trace-locator.test.d.ts +0 -2
  1556. package/dist/runtime-v2/store/trajectory/source-trace-locator.test.d.ts.map +0 -1
  1557. package/dist/runtime-v2/store/trajectory/source-trace-locator.test.js +0 -319
  1558. package/dist/runtime-v2/store/trajectory/source-trace-locator.test.js.map +0 -1
  1559. package/dist/runtime-v2/store/trajectory/sqlite-trajectory-locator.test.d.ts +0 -2
  1560. package/dist/runtime-v2/store/trajectory/sqlite-trajectory-locator.test.d.ts.map +0 -1
  1561. package/dist/runtime-v2/store/trajectory/sqlite-trajectory-locator.test.js +0 -328
  1562. package/dist/runtime-v2/store/trajectory/sqlite-trajectory-locator.test.js.map +0 -1
  1563. package/dist/runtime-v2/store/workspace-isolation.test.d.ts +0 -2
  1564. package/dist/runtime-v2/store/workspace-isolation.test.d.ts.map +0 -1
  1565. package/dist/runtime-v2/store/workspace-isolation.test.js +0 -138
  1566. package/dist/runtime-v2/store/workspace-isolation.test.js.map +0 -1
  1567. package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.d.ts +0 -2
  1568. package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.d.ts.map +0 -1
  1569. package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.js +0 -171
  1570. package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.js.map +0 -1
  1571. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.d.ts +0 -2
  1572. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.d.ts.map +0 -1
  1573. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js +0 -369
  1574. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js.map +0 -1
  1575. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.d.ts +0 -2
  1576. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.d.ts.map +0 -1
  1577. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.js +0 -163
  1578. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.js.map +0 -1
  1579. package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.d.ts +0 -2
  1580. package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.d.ts.map +0 -1
  1581. package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.js +0 -109
  1582. package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.js.map +0 -1
  1583. package/dist/runtime-v2/utils/cli-process-runner.test.d.ts +0 -2
  1584. package/dist/runtime-v2/utils/cli-process-runner.test.d.ts.map +0 -1
  1585. package/dist/runtime-v2/utils/cli-process-runner.test.js +0 -113
  1586. package/dist/runtime-v2/utils/cli-process-runner.test.js.map +0 -1
  1587. package/dist/trajectory-store.test.d.ts +0 -2
  1588. package/dist/trajectory-store.test.d.ts.map +0 -1
  1589. package/dist/trajectory-store.test.js +0 -261
  1590. 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