@principles/core 1.284.17 → 1.284.18

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 (291) hide show
  1. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js +101 -14
  2. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.js +113 -1
  4. package/dist/runtime-v2/__tests__/evidence-sanitizer.test.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js +0 -1
  6. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js.map +1 -1
  7. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js +211 -0
  8. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js.map +1 -1
  9. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.js +23 -1
  10. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.js.map +1 -1
  11. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.js +25 -0
  12. package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.js.map +1 -1
  13. package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.d.ts.map +1 -1
  14. package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js +38 -7
  15. package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js.map +1 -1
  16. package/dist/runtime-v2/adapter/output-schema-registry.d.ts.map +1 -1
  17. package/dist/runtime-v2/adapter/output-schema-registry.js +0 -2
  18. package/dist/runtime-v2/adapter/output-schema-registry.js.map +1 -1
  19. package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.d.ts +16 -0
  20. package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.d.ts.map +1 -1
  21. package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.js +22 -0
  22. package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.js.map +1 -1
  23. package/dist/runtime-v2/agent-spec.d.ts +0 -1
  24. package/dist/runtime-v2/agent-spec.d.ts.map +1 -1
  25. package/dist/runtime-v2/agent-spec.js +3 -1
  26. package/dist/runtime-v2/agent-spec.js.map +1 -1
  27. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.js +3 -1
  28. package/dist/runtime-v2/config/__tests__/internal-agent-names.test.js.map +1 -1
  29. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js +0 -7
  30. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js.map +1 -1
  31. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.js +0 -1
  32. package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.js.map +1 -1
  33. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +0 -1
  34. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
  35. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js +0 -1
  36. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js.map +1 -1
  37. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.js +0 -1
  38. package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.js.map +1 -1
  39. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js +0 -1
  40. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js.map +1 -1
  41. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js +61 -1
  42. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js.map +1 -1
  43. package/dist/runtime-v2/config/pd-config-defaults.d.ts.map +1 -1
  44. package/dist/runtime-v2/config/pd-config-defaults.js +0 -1
  45. package/dist/runtime-v2/config/pd-config-defaults.js.map +1 -1
  46. package/dist/runtime-v2/config/pd-config-types.d.ts +1 -1
  47. package/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
  48. package/dist/runtime-v2/config/pd-config-types.js +0 -1
  49. package/dist/runtime-v2/config/pd-config-types.js.map +1 -1
  50. package/dist/runtime-v2/config/pd-config-validate.d.ts.map +1 -1
  51. package/dist/runtime-v2/config/pd-config-validate.js +20 -1
  52. package/dist/runtime-v2/config/pd-config-validate.js.map +1 -1
  53. package/dist/runtime-v2/evidence-sanitizer.d.ts +17 -2
  54. package/dist/runtime-v2/evidence-sanitizer.d.ts.map +1 -1
  55. package/dist/runtime-v2/evidence-sanitizer.js +80 -11
  56. package/dist/runtime-v2/evidence-sanitizer.js.map +1 -1
  57. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +3 -3
  58. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
  59. package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  60. package/dist/runtime-v2/feature-flags/feature-flag-contract.js +11 -40
  61. package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  62. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.d.ts.map +1 -1
  63. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js +6 -40
  64. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js.map +1 -1
  65. package/dist/runtime-v2/index.d.ts +9 -6
  66. package/dist/runtime-v2/index.d.ts.map +1 -1
  67. package/dist/runtime-v2/index.js +12 -5
  68. package/dist/runtime-v2/index.js.map +1 -1
  69. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +61 -29
  70. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
  71. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +0 -1
  72. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
  73. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js +2 -2
  74. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js.map +1 -1
  75. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js +2 -13
  76. package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js.map +1 -1
  77. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js +1 -5
  78. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js.map +1 -1
  79. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.js +1 -5
  80. package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.js.map +1 -1
  81. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js +1 -1
  82. package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js.map +1 -1
  83. package/dist/runtime-v2/internalization/__tests__/formation-context.test.d.ts +2 -0
  84. package/dist/runtime-v2/internalization/__tests__/formation-context.test.d.ts.map +1 -0
  85. package/dist/runtime-v2/internalization/__tests__/formation-context.test.js +428 -0
  86. package/dist/runtime-v2/internalization/__tests__/formation-context.test.js.map +1 -0
  87. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js +97 -0
  88. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js.map +1 -1
  89. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js +61 -0
  90. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js.map +1 -1
  91. package/dist/runtime-v2/internalization/artifact-summary.d.ts +11 -0
  92. package/dist/runtime-v2/internalization/artifact-summary.d.ts.map +1 -1
  93. package/dist/runtime-v2/internalization/artifact-summary.js.map +1 -1
  94. package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +48 -14
  95. package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
  96. package/dist/runtime-v2/internalization/artificer-prompt-builder.js +32 -1
  97. package/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
  98. package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
  99. package/dist/runtime-v2/internalization/artificer-runner.js +60 -156
  100. package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
  101. package/dist/runtime-v2/internalization/diag-distiller-runner.d.ts +1 -1
  102. package/dist/runtime-v2/internalization/diag-distiller-runner.d.ts.map +1 -1
  103. package/dist/runtime-v2/internalization/diag-distiller-runner.js +2 -19
  104. package/dist/runtime-v2/internalization/diag-distiller-runner.js.map +1 -1
  105. package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts.map +1 -1
  106. package/dist/runtime-v2/internalization/diag-rootcause-runner.js +1 -5
  107. package/dist/runtime-v2/internalization/diag-rootcause-runner.js.map +1 -1
  108. package/dist/runtime-v2/internalization/diag-router-runner.d.ts +1 -1
  109. package/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -1
  110. package/dist/runtime-v2/internalization/diag-router-runner.js +9 -32
  111. package/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -1
  112. package/dist/runtime-v2/internalization/dreamer-runner.d.ts +1 -9
  113. package/dist/runtime-v2/internalization/dreamer-runner.d.ts.map +1 -1
  114. package/dist/runtime-v2/internalization/dreamer-runner.js +4 -35
  115. package/dist/runtime-v2/internalization/dreamer-runner.js.map +1 -1
  116. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +3 -54
  117. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  118. package/dist/runtime-v2/internalization/evaluator-runner.js +18 -230
  119. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  120. package/dist/runtime-v2/internalization/formation-context.d.ts +208 -0
  121. package/dist/runtime-v2/internalization/formation-context.d.ts.map +1 -0
  122. package/dist/runtime-v2/internalization/formation-context.js +621 -0
  123. package/dist/runtime-v2/internalization/formation-context.js.map +1 -0
  124. package/dist/runtime-v2/internalization/index.d.ts +0 -2
  125. package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  126. package/dist/runtime-v2/internalization/index.js +0 -2
  127. package/dist/runtime-v2/internalization/index.js.map +1 -1
  128. package/dist/runtime-v2/internalization/philosopher-runner.d.ts.map +1 -1
  129. package/dist/runtime-v2/internalization/philosopher-runner.js +1 -25
  130. package/dist/runtime-v2/internalization/philosopher-runner.js.map +1 -1
  131. package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts +53 -1
  132. package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts.map +1 -1
  133. package/dist/runtime-v2/internalization/scribe-prompt-builder.js +65 -3
  134. package/dist/runtime-v2/internalization/scribe-prompt-builder.js.map +1 -1
  135. package/dist/runtime-v2/internalization/scribe-runner.d.ts +17 -0
  136. package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
  137. package/dist/runtime-v2/internalization/scribe-runner.js +58 -40
  138. package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
  139. package/dist/runtime-v2/internalization/split-diagnostician-runner.d.ts.map +1 -1
  140. package/dist/runtime-v2/internalization/split-diagnostician-runner.js +13 -2
  141. package/dist/runtime-v2/internalization/split-diagnostician-runner.js.map +1 -1
  142. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.js +31 -21
  143. package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.js.map +1 -1
  144. package/dist/runtime-v2/observer/agent-scheduler.d.ts +0 -5
  145. package/dist/runtime-v2/observer/agent-scheduler.d.ts.map +1 -1
  146. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.d.ts +2 -0
  147. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.d.ts.map +1 -0
  148. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js +559 -0
  149. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js.map +1 -0
  150. package/dist/runtime-v2/owner-decision/owner-decision-view-contract.d.ts +7868 -0
  151. package/dist/runtime-v2/owner-decision/owner-decision-view-contract.d.ts.map +1 -0
  152. package/dist/runtime-v2/owner-decision/owner-decision-view-contract.js +367 -0
  153. package/dist/runtime-v2/owner-decision/owner-decision-view-contract.js.map +1 -0
  154. package/dist/runtime-v2/owner-decision/owner-decision-view.d.ts +415 -0
  155. package/dist/runtime-v2/owner-decision/owner-decision-view.d.ts.map +1 -0
  156. package/dist/runtime-v2/owner-decision/owner-decision-view.js +856 -0
  157. package/dist/runtime-v2/owner-decision/owner-decision-view.js.map +1 -0
  158. package/dist/runtime-v2/owner-decision/semantic-selector.d.ts +72 -0
  159. package/dist/runtime-v2/owner-decision/semantic-selector.d.ts.map +1 -0
  160. package/dist/runtime-v2/owner-decision/semantic-selector.js +176 -0
  161. package/dist/runtime-v2/owner-decision/semantic-selector.js.map +1 -0
  162. package/dist/runtime-v2/runner/base-peer-runner.d.ts +0 -125
  163. package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  164. package/dist/runtime-v2/runner/base-peer-runner.js +0 -323
  165. package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  166. package/dist/runtime-v2/runner/peer-runner-types.d.ts +0 -12
  167. package/dist/runtime-v2/runner/peer-runner-types.d.ts.map +1 -1
  168. package/dist/runtime-v2/signal-collector/types.d.ts +0 -12
  169. package/dist/runtime-v2/signal-collector/types.d.ts.map +1 -1
  170. package/dist/runtime-v2/signal-collector/types.js.map +1 -1
  171. package/dist/runtime-v2/types/event-types.d.ts +9 -0
  172. package/dist/runtime-v2/types/event-types.d.ts.map +1 -1
  173. package/dist/runtime-v2/types/event-types.js +12 -0
  174. package/dist/runtime-v2/types/event-types.js.map +1 -1
  175. package/dist/telemetry-event.d.ts +2 -2
  176. package/dist/telemetry-event.d.ts.map +1 -1
  177. package/dist/telemetry-event.js +7 -84
  178. package/dist/telemetry-event.js.map +1 -1
  179. package/package.json +1 -1
  180. package/dist/runtime-v2/feature-flags/__tests__/artifact-summary-redundancy-flag.test.d.ts +0 -15
  181. package/dist/runtime-v2/feature-flags/__tests__/artifact-summary-redundancy-flag.test.d.ts.map +0 -1
  182. package/dist/runtime-v2/feature-flags/__tests__/artifact-summary-redundancy-flag.test.js +0 -90
  183. package/dist/runtime-v2/feature-flags/__tests__/artifact-summary-redundancy-flag.test.js.map +0 -1
  184. package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.d.ts +0 -12
  185. package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.d.ts.map +0 -1
  186. package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.js +0 -117
  187. package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.js.map +0 -1
  188. package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.d.ts +0 -8
  189. package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.d.ts.map +0 -1
  190. package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.js +0 -56
  191. package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.js.map +0 -1
  192. package/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.d.ts +0 -26
  193. package/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.d.ts.map +0 -1
  194. package/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.js +0 -420
  195. package/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.js.map +0 -1
  196. package/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.d.ts +0 -15
  197. package/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.d.ts.map +0 -1
  198. package/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.js +0 -306
  199. package/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.js.map +0 -1
  200. package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.d.ts +0 -12
  201. package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.d.ts.map +0 -1
  202. package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.js +0 -176
  203. package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.js.map +0 -1
  204. package/dist/runtime-v2/internalization/__tests__/context-resolution.test.d.ts +0 -2
  205. package/dist/runtime-v2/internalization/__tests__/context-resolution.test.d.ts.map +0 -1
  206. package/dist/runtime-v2/internalization/__tests__/context-resolution.test.js +0 -377
  207. package/dist/runtime-v2/internalization/__tests__/context-resolution.test.js.map +0 -1
  208. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-scope-regression.test.d.ts +0 -22
  209. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-scope-regression.test.d.ts.map +0 -1
  210. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-scope-regression.test.js +0 -92
  211. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-scope-regression.test.js.map +0 -1
  212. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.d.ts +0 -2
  213. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.d.ts.map +0 -1
  214. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.js +0 -1039
  215. package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.js.map +0 -1
  216. package/dist/runtime-v2/internalization/__tests__/progressive-evaluator-stage-isolation.property.test.d.ts +0 -13
  217. package/dist/runtime-v2/internalization/__tests__/progressive-evaluator-stage-isolation.property.test.d.ts.map +0 -1
  218. package/dist/runtime-v2/internalization/__tests__/progressive-evaluator-stage-isolation.property.test.js +0 -257
  219. package/dist/runtime-v2/internalization/__tests__/progressive-evaluator-stage-isolation.property.test.js.map +0 -1
  220. package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.d.ts +0 -11
  221. package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.d.ts.map +0 -1
  222. package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.js +0 -154
  223. package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.js.map +0 -1
  224. package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.d.ts +0 -12
  225. package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.d.ts.map +0 -1
  226. package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.js +0 -254
  227. package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.js.map +0 -1
  228. package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.d.ts +0 -15
  229. package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.d.ts.map +0 -1
  230. package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.js +0 -150
  231. package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.js.map +0 -1
  232. package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.d.ts +0 -2
  233. package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.d.ts.map +0 -1
  234. package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.js +0 -773
  235. package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.js.map +0 -1
  236. package/dist/runtime-v2/internalization/__tests__/summary-chain-flow.property.test.d.ts +0 -22
  237. package/dist/runtime-v2/internalization/__tests__/summary-chain-flow.property.test.d.ts.map +0 -1
  238. package/dist/runtime-v2/internalization/__tests__/summary-chain-flow.property.test.js +0 -280
  239. package/dist/runtime-v2/internalization/__tests__/summary-chain-flow.property.test.js.map +0 -1
  240. package/dist/runtime-v2/internalization/__tests__/summary-envelope-writer.property.test.d.ts +0 -25
  241. package/dist/runtime-v2/internalization/__tests__/summary-envelope-writer.property.test.d.ts.map +0 -1
  242. package/dist/runtime-v2/internalization/__tests__/summary-envelope-writer.property.test.js +0 -413
  243. package/dist/runtime-v2/internalization/__tests__/summary-envelope-writer.property.test.js.map +0 -1
  244. package/dist/runtime-v2/internalization/attach-summary-envelope.d.ts +0 -60
  245. package/dist/runtime-v2/internalization/attach-summary-envelope.d.ts.map +0 -1
  246. package/dist/runtime-v2/internalization/attach-summary-envelope.js +0 -126
  247. package/dist/runtime-v2/internalization/attach-summary-envelope.js.map +0 -1
  248. package/dist/runtime-v2/internalization/candidate-lineage.d.ts +0 -185
  249. package/dist/runtime-v2/internalization/candidate-lineage.d.ts.map +0 -1
  250. package/dist/runtime-v2/internalization/candidate-lineage.js +0 -357
  251. package/dist/runtime-v2/internalization/candidate-lineage.js.map +0 -1
  252. package/dist/runtime-v2/internalization/context-manifest.d.ts +0 -117
  253. package/dist/runtime-v2/internalization/context-manifest.d.ts.map +0 -1
  254. package/dist/runtime-v2/internalization/context-manifest.js +0 -156
  255. package/dist/runtime-v2/internalization/context-manifest.js.map +0 -1
  256. package/dist/runtime-v2/internalization/context-manifests.d.ts +0 -148
  257. package/dist/runtime-v2/internalization/context-manifests.d.ts.map +0 -1
  258. package/dist/runtime-v2/internalization/context-manifests.js +0 -323
  259. package/dist/runtime-v2/internalization/context-manifests.js.map +0 -1
  260. package/dist/runtime-v2/internalization/context-resolution.d.ts +0 -189
  261. package/dist/runtime-v2/internalization/context-resolution.d.ts.map +0 -1
  262. package/dist/runtime-v2/internalization/context-resolution.js +0 -317
  263. package/dist/runtime-v2/internalization/context-resolution.js.map +0 -1
  264. package/dist/runtime-v2/internalization/progressive-evaluator.d.ts +0 -115
  265. package/dist/runtime-v2/internalization/progressive-evaluator.d.ts.map +0 -1
  266. package/dist/runtime-v2/internalization/progressive-evaluator.js +0 -248
  267. package/dist/runtime-v2/internalization/progressive-evaluator.js.map +0 -1
  268. package/dist/runtime-v2/internalization/prompt-budget-manager.d.ts +0 -90
  269. package/dist/runtime-v2/internalization/prompt-budget-manager.d.ts.map +0 -1
  270. package/dist/runtime-v2/internalization/prompt-budget-manager.js +0 -149
  271. package/dist/runtime-v2/internalization/prompt-budget-manager.js.map +0 -1
  272. package/dist/runtime-v2/internalization/resolve-injection.d.ts +0 -62
  273. package/dist/runtime-v2/internalization/resolve-injection.d.ts.map +0 -1
  274. package/dist/runtime-v2/internalization/resolve-injection.js +0 -78
  275. package/dist/runtime-v2/internalization/resolve-injection.js.map +0 -1
  276. package/dist/runtime-v2/internalization/summary-field-reader.d.ts +0 -38
  277. package/dist/runtime-v2/internalization/summary-field-reader.d.ts.map +0 -1
  278. package/dist/runtime-v2/internalization/summary-field-reader.js +0 -108
  279. package/dist/runtime-v2/internalization/summary-field-reader.js.map +0 -1
  280. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.d.ts +0 -2
  281. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.d.ts.map +0 -1
  282. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js +0 -74
  283. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js.map +0 -1
  284. package/dist/runtime-v2/observer/__tests__/empathy-observer.test.d.ts +0 -2
  285. package/dist/runtime-v2/observer/__tests__/empathy-observer.test.d.ts.map +0 -1
  286. package/dist/runtime-v2/observer/__tests__/empathy-observer.test.js +0 -85
  287. package/dist/runtime-v2/observer/__tests__/empathy-observer.test.js.map +0 -1
  288. package/dist/runtime-v2/observer/empathy-observer.d.ts +0 -41
  289. package/dist/runtime-v2/observer/empathy-observer.d.ts.map +0 -1
  290. package/dist/runtime-v2/observer/empathy-observer.js +0 -104
  291. package/dist/runtime-v2/observer/empathy-observer.js.map +0 -1
@@ -0,0 +1,621 @@
1
+ /**
2
+ * Formation Context — bounded projection of ALREADY-PERSISTED formation
3
+ * evidence into a peer runner's prompt payload (PRI-838 / PRI-839).
4
+ *
5
+ * PRI-835 (Formation Context Connectivity Audit) established the gap this
6
+ * module closes: the identifiers that link a formation back to its evidence —
7
+ * `scribe.sourceTrace.dreamerArtifactId`, the dreamer artifact's
8
+ * `lineageArtifactIds` — are ALREADY persisted and ALREADY reach the runner.
9
+ * They were simply never resolved into prompt *content*.
10
+ *
11
+ * ⇒ This is a CONNECTION fix, not a capability addition:
12
+ * no new artifact kind, no new storage, no new authority, no feature flag,
13
+ * no change to any output schema or validator.
14
+ *
15
+ * `ArtifactSummary / deriveArtifactSummary` (artifact-summary.ts) is the only
16
+ * bounded-projection implementation that survived PRI-819 R-06 in this layer,
17
+ * and this module deliberately mirrors its contracts rather than inventing a
18
+ * second idiom:
19
+ * - pure projection over structured output that is already persisted;
20
+ * - untrusted JSON is read with `Object.hasOwn` + `typeof` / `Array.isArray`
21
+ * guards — never an `as` cast (rc-1 / rc-2 / rc-5 / ERR-013);
22
+ * - every emitted value is clamped, and every value dropped by the bound is
23
+ * accounted for in `truncationNotes` or `omittedFields` (rc-9 — degradation
24
+ * must be observable, never silent);
25
+ * - deterministic: identical input yields byte-identical output.
26
+ *
27
+ * Deliberately NOT restored: the retired PRI-634 Layer 0/1/2 plane
28
+ * (`ContextManifest` / `PromptBudgetManager` / `CandidateLineage`). PRI-819 R-06
29
+ * removed it for never graduating, and PRI-835 explicitly rules out reviving
30
+ * it. The budget below is a small, local, explicit cap — not a budget manager.
31
+ *
32
+ * Consumers (2, materially different → not a speculative seam):
33
+ * - Scribe (PRI-838): dreamer proposals + source diagnosis + provenance;
34
+ * - Artificer(PRI-839): bounded, priority-ranked candidate set + differences.
35
+ *
36
+ * @see docs/audit/PRI-835-formation-context-connectivity-audit.md (§DC-1, §DC-3, §6.1 C1/C2)
37
+ */
38
+ // ── Budget contract ──────────────────────────────────────────────────────────
39
+ export const FORMATION_CONTEXT_VERSION = 'formation-context.v1';
40
+ /** `DreamerOutputV1Schema` allows 1..5 candidates — the bound matches the schema. */
41
+ export const FORMATION_CANDIDATE_LIMIT = 5;
42
+ /** Per-field clamp. Mirrors `SUMMARY_FIELD_MAX_CHARS` (artifact-summary.ts). */
43
+ export const FORMATION_FIELD_MAX_CHARS = 400;
44
+ export const FORMATION_DIAGNOSIS_EVIDENCE_LIMIT = 8;
45
+ export const FORMATION_DIAGNOSIS_VIOLATED_LIMIT = 8;
46
+ export const FORMATION_DIAGNOSIS_RECOMMENDATION_LIMIT = 5;
47
+ export const FORMATION_DREAMER_CONTEXT_REF_LIMIT = 8;
48
+ /**
49
+ * Hard cap on the SERIALIZED formation block. The projection is trimmed to fit
50
+ * it — never truncated mid-JSON — and every dropped item is recorded in
51
+ * `truncationNotes`.
52
+ *
53
+ * PRI-815 Phase A measured the cost of this information channel at +24.9%
54
+ * tokens for the frozen three-block payload; 8000 chars ≈ 2000 tokens keeps
55
+ * that proportion for a smaller real-world field mix.
56
+ */
57
+ export const FORMATION_TOTAL_MAX_CHARS = 8000;
58
+ /**
59
+ * Per-section caps. They exist so the degradation ORDER is sensible: without
60
+ * them a single oversized diagnosis could only be satisfied by dropping every
61
+ * candidate, which is the wrong trade (the proposals are the unique content).
62
+ */
63
+ export const FORMATION_PROPOSALS_MAX_CHARS = 4000;
64
+ export const FORMATION_DIAGNOSIS_MAX_CHARS = 3500;
65
+ /** Lineage ids are identity, not content — capped last, and only as a last resort. */
66
+ export const FORMATION_LINEAGE_ID_LIMIT = 16;
67
+ /**
68
+ * Diagnostic stage task kinds that can carry the source diagnosis, in
69
+ * descending authority. `diag_router` emits the canonical
70
+ * `DiagnosticianOutputV1`; the earlier stages emit narrower schemas handled by
71
+ * the tolerant readers below.
72
+ */
73
+ export const FORMATION_DIAGNOSIS_TASK_KINDS = ['diag_router', 'diag_distiller', 'diag_rootcause'];
74
+ // ── Runtime guards (rc-1 / rc-2 / rc-5, mirroring artifact-summary.ts) ──────
75
+ function isRecord(value) {
76
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
77
+ }
78
+ /** Reads a non-empty string by OWN property key. Empty/whitespace-only counts as absent. */
79
+ function readString(source, key) {
80
+ if (!isRecord(source) || !Object.hasOwn(source, key))
81
+ return null;
82
+ const value = source[key];
83
+ if (typeof value !== 'string')
84
+ return null;
85
+ return value.trim() === '' ? null : value;
86
+ }
87
+ function readArray(source, key) {
88
+ if (!isRecord(source) || !Object.hasOwn(source, key))
89
+ return null;
90
+ const value = source[key];
91
+ return Array.isArray(value) ? value : null;
92
+ }
93
+ /** rc-1: no blind `as number` — a finite number or nothing. */
94
+ function readNumber(source, key) {
95
+ if (!isRecord(source) || !Object.hasOwn(source, key))
96
+ return null;
97
+ const value = source[key];
98
+ return typeof value === 'number' && Number.isFinite(value) ? value : null;
99
+ }
100
+ /**
101
+ * Clamp one field to the per-field budget.
102
+ *
103
+ * Intentionally module-private: `artifact-summary.ts` (`clamp`) and
104
+ * `quality-scorecard/validation.ts` (`truncate`) already carry two private
105
+ * copies of this three-line helper. Consolidating all three is a tidy-up outside
106
+ * this ticket's change surface (AGENTS.md §1) — recorded as a follow-up rather
107
+ * than widened into this PR.
108
+ */
109
+ function clamp(text, max = FORMATION_FIELD_MAX_CHARS) {
110
+ return text.length <= max ? text : `${text.slice(0, max - 1)}…`;
111
+ }
112
+ /** Parses untrusted contentJson. Returns null when it is not a JSON object. */
113
+ function parseContentJson(contentJson) {
114
+ let parsed;
115
+ try {
116
+ parsed = JSON.parse(contentJson);
117
+ }
118
+ catch {
119
+ return null;
120
+ }
121
+ return isRecord(parsed) ? parsed : null;
122
+ }
123
+ // ── Candidate priority (PRI-839) ─────────────────────────────────────────────
124
+ const RISK_ORDER = { low: 0, medium: 1, high: 2 };
125
+ /**
126
+ * `DreamerOutput` carries NO explicit priority field, so priority is DERIVED
127
+ * deterministically from the signals the Dreamer did author:
128
+ *
129
+ * 1. `confidence` DESC — the Dreamer's own confidence in the proposal;
130
+ * 2. `riskLevel` ASC (low < medium < high) — least risky first on a tie;
131
+ * 3. `candidateIndex` ASC — authored order as the final tiebreak.
132
+ *
133
+ * This is a READING AID over Dreamer-authored evidence, **not a new
134
+ * authority**. The Philosopher critique remains the sole authority on which
135
+ * proposals were rejected — which is exactly why the prompt contract that
136
+ * consumes this projection states "do NOT revive a proposal the critique
137
+ * explicitly rejected".
138
+ */
139
+ function rankCandidates(candidates) {
140
+ const ordered = [...candidates].sort((a, b) => {
141
+ const confidenceDelta = (b.confidence ?? -1) - (a.confidence ?? -1);
142
+ if (confidenceDelta !== 0)
143
+ return confidenceDelta;
144
+ const riskDelta = (RISK_ORDER[a.riskLevel ?? ''] ?? 3) - (RISK_ORDER[b.riskLevel ?? ''] ?? 3);
145
+ if (riskDelta !== 0)
146
+ return riskDelta;
147
+ return a.candidateIndex - b.candidateIndex;
148
+ });
149
+ return ordered.map((candidate, index) => ({ ...candidate, priorityRank: index + 1 }));
150
+ }
151
+ /**
152
+ * Deterministic, factual summary of how the proposals differ — a bounded
153
+ * alternative to dumping every candidate verbatim. States only what the
154
+ * evidence actually shows (count, risk spread, distinct better-decisions);
155
+ * it never editorialises about which proposal is "best".
156
+ */
157
+ export function summarizeCandidateDifferences(candidates) {
158
+ if (candidates.length === 0)
159
+ return 'No dreamer proposals were available.';
160
+ if (candidates.length === 1) {
161
+ return `1 proposal available (candidateIndex ${candidates[0]?.candidateIndex ?? 0}); no alternatives were proposed.`;
162
+ }
163
+ const riskCounts = new Map();
164
+ for (const candidate of candidates) {
165
+ const risk = candidate.riskLevel ?? 'unspecified';
166
+ riskCounts.set(risk, (riskCounts.get(risk) ?? 0) + 1);
167
+ }
168
+ const riskSpread = [...riskCounts.entries()]
169
+ .map(([risk, count]) => `${risk}=${count}`)
170
+ .join(', ');
171
+ const distinctBetterDecisions = new Set(candidates.map((candidate) => candidate.betterDecision)).size;
172
+ const confidences = candidates
173
+ .map((candidate) => candidate.confidence)
174
+ .filter((confidence) => confidence !== null);
175
+ const confidenceRange = confidences.length === 0
176
+ ? 'unspecified'
177
+ : `${Math.min(...confidences)}..${Math.max(...confidences)}`;
178
+ return [
179
+ `${candidates.length} mutually distinct proposals (this is a bounded top-${candidates.length} view, not necessarily the full set).`,
180
+ `risk spread: ${riskSpread}`,
181
+ `distinct better-decisions: ${distinctBetterDecisions}`,
182
+ `dreamer confidence range: ${confidenceRange}`,
183
+ ].join(' ');
184
+ }
185
+ /**
186
+ * Project a Dreamer artifact's contentJson into a bounded candidate set.
187
+ *
188
+ * Never throws. A malformed candidate is SKIPPED and recorded, so one bad
189
+ * element cannot discard the whole formation's alternatives.
190
+ */
191
+ export function projectDreamerProposals(dreamerContent) {
192
+ const truncationNotes = [];
193
+ const rawContextRefs = readArray(dreamerContent, 'contextRefs') ?? [];
194
+ const contextRefStrings = rawContextRefs.filter((entry) => typeof entry === 'string' && entry.trim() !== '');
195
+ if (contextRefStrings.length > FORMATION_DREAMER_CONTEXT_REF_LIMIT) {
196
+ truncationNotes.push(`dreamer contextRefs truncated: ${contextRefStrings.length} -> ${FORMATION_DREAMER_CONTEXT_REF_LIMIT}`);
197
+ }
198
+ const contextRefs = contextRefStrings
199
+ .slice(0, FORMATION_DREAMER_CONTEXT_REF_LIMIT)
200
+ .map((ref) => clamp(ref));
201
+ const rawCandidates = readArray(dreamerContent, 'candidates') ?? [];
202
+ const projected = [];
203
+ let malformed = 0;
204
+ for (let index = 0; index < rawCandidates.length; index += 1) {
205
+ const entry = rawCandidates[index];
206
+ const badDecision = readString(entry, 'badDecision');
207
+ const betterDecision = readString(entry, 'betterDecision');
208
+ const rationale = readString(entry, 'rationale');
209
+ if (badDecision === null || betterDecision === null || rationale === null) {
210
+ // rc-9: a malformed candidate is an observable loss, never a silent one.
211
+ malformed += 1;
212
+ continue;
213
+ }
214
+ const authoredIndex = readNumber(entry, 'candidateIndex');
215
+ const strategicPerspective = readString(entry, 'strategicPerspective');
216
+ projected.push({
217
+ candidateIndex: authoredIndex ?? index,
218
+ priorityRank: 0, // assigned by rankCandidates below
219
+ badDecision: clamp(badDecision),
220
+ betterDecision: clamp(betterDecision),
221
+ rationale: clamp(rationale),
222
+ confidence: readNumber(entry, 'confidence'),
223
+ riskLevel: readString(entry, 'riskLevel'),
224
+ strategicPerspective: strategicPerspective === null ? null : clamp(strategicPerspective),
225
+ });
226
+ }
227
+ if (malformed > 0) {
228
+ truncationNotes.push(`dreamer candidates skipped as malformed: ${malformed}`);
229
+ }
230
+ const withinBound = projected.slice(0, FORMATION_CANDIDATE_LIMIT);
231
+ if (projected.length > withinBound.length) {
232
+ truncationNotes.push(`dreamer candidates truncated: ${projected.length} -> ${withinBound.length} (bounded projection)`);
233
+ }
234
+ return {
235
+ candidates: rankCandidates(withinBound),
236
+ contextRefs,
237
+ sourcePainId: readString(dreamerContent, 'sourcePainId'),
238
+ omittedCandidateCount: projected.length - withinBound.length,
239
+ truncationNotes,
240
+ };
241
+ }
242
+ // ── Diagnosis projection ─────────────────────────────────────────────────────
243
+ /**
244
+ * Tolerant projection over a diagnostic stage artifact. `diag_router` emits the
245
+ * canonical `DiagnosticianOutputV1`; earlier stages expose a narrower schema,
246
+ * so unresolvable fields are recorded in `omittedFields` instead of failing.
247
+ */
248
+ export function projectDiagnosisOutput(diagnosisContent, identity) {
249
+ const omittedFields = [];
250
+ const rootCause = readString(diagnosisContent, 'rootCause');
251
+ if (rootCause === null)
252
+ omittedFields.push('rootCause');
253
+ const summary = readString(diagnosisContent, 'summary');
254
+ if (summary === null)
255
+ omittedFields.push('summary');
256
+ const rawViolated = readArray(diagnosisContent, 'violatedPrinciples') ?? [];
257
+ if (rawViolated.length === 0)
258
+ omittedFields.push('violatedPrinciples');
259
+ const violatedPrinciples = rawViolated
260
+ .slice(0, FORMATION_DIAGNOSIS_VIOLATED_LIMIT)
261
+ .map((entry) => {
262
+ const rationale = readString(entry, 'rationale');
263
+ if (rationale === null)
264
+ return null;
265
+ const principleId = readString(entry, 'principleId');
266
+ const title = readString(entry, 'title');
267
+ return {
268
+ principleId,
269
+ title: title === null ? null : clamp(title),
270
+ rationale: clamp(rationale),
271
+ };
272
+ })
273
+ .filter((entry) => entry !== null);
274
+ if (rawViolated.length > FORMATION_DIAGNOSIS_VIOLATED_LIMIT) {
275
+ omittedFields.push(`violatedPrinciples[${FORMATION_DIAGNOSIS_VIOLATED_LIMIT}..${rawViolated.length - 1}]`);
276
+ }
277
+ const rawEvidence = readArray(diagnosisContent, 'evidence') ?? [];
278
+ if (rawEvidence.length === 0)
279
+ omittedFields.push('evidence');
280
+ const evidence = rawEvidence
281
+ .slice(0, FORMATION_DIAGNOSIS_EVIDENCE_LIMIT)
282
+ .map((entry) => {
283
+ const sourceRef = readString(entry, 'sourceRef');
284
+ const note = readString(entry, 'note');
285
+ if (sourceRef === null || note === null)
286
+ return null;
287
+ return { sourceRef: clamp(sourceRef), note: clamp(note) };
288
+ })
289
+ .filter((entry) => entry !== null);
290
+ if (rawEvidence.length > FORMATION_DIAGNOSIS_EVIDENCE_LIMIT) {
291
+ omittedFields.push(`evidence[${FORMATION_DIAGNOSIS_EVIDENCE_LIMIT}..${rawEvidence.length - 1}]`);
292
+ }
293
+ const rawRecommendations = readArray(diagnosisContent, 'recommendations') ?? [];
294
+ if (rawRecommendations.length === 0)
295
+ omittedFields.push('recommendations');
296
+ const recommendations = rawRecommendations
297
+ .slice(0, FORMATION_DIAGNOSIS_RECOMMENDATION_LIMIT)
298
+ .map((entry) => {
299
+ const description = readString(entry, 'description');
300
+ if (description === null)
301
+ return null;
302
+ const kind = readString(entry, 'kind');
303
+ return clamp(kind === null ? description : `[${kind}] ${description}`);
304
+ })
305
+ .filter((entry) => entry !== null);
306
+ if (rawRecommendations.length > FORMATION_DIAGNOSIS_RECOMMENDATION_LIMIT) {
307
+ omittedFields.push(`recommendations[${FORMATION_DIAGNOSIS_RECOMMENDATION_LIMIT}..${rawRecommendations.length - 1}]`);
308
+ }
309
+ const confidence = readNumber(diagnosisContent, 'confidence');
310
+ if (confidence === null)
311
+ omittedFields.push('confidence');
312
+ return {
313
+ artifactId: identity.artifactId,
314
+ taskId: identity.taskId,
315
+ stage: identity.stage,
316
+ rootCause: rootCause === null ? null : clamp(rootCause),
317
+ summary: summary === null ? null : clamp(summary),
318
+ violatedPrinciples,
319
+ evidence,
320
+ recommendations,
321
+ confidence,
322
+ omittedFields,
323
+ };
324
+ }
325
+ /**
326
+ * Drops items from the TAIL until `render(kept)` serializes within `maxChars`,
327
+ * recording every drop in `notes`. Never slices a string mid-value and never
328
+ * emits partial JSON — the unit of degradation is a whole item (rc-9).
329
+ */
330
+ function trimSection(params) {
331
+ const { items, maxChars, render, describe, notes } = params;
332
+ let kept = items;
333
+ while (kept.length > 0 && JSON.stringify(render(kept)).length > maxChars) {
334
+ const dropped = kept[kept.length - 1];
335
+ kept = kept.slice(0, -1);
336
+ if (dropped !== undefined)
337
+ notes.push(describe(dropped));
338
+ }
339
+ return kept;
340
+ }
341
+ /**
342
+ * Reduces the remaining unbounded terms until the WHOLE serialized context fits
343
+ * `FORMATION_TOTAL_MAX_CHARS`, recording each step. Order — identity and
344
+ * bookkeeping before content, content last:
345
+ *
346
+ * 1. `lineageArtifactIds` below the per-id limit,
347
+ * 2. `dreamerContextRefs` (references, not content) dropped entirely,
348
+ * 3. `truncationNotes` collapsed to a bounded summary — the notes describe the
349
+ * degradation, so they are the correct sacrifice once degradation is the
350
+ * only thing keeping the block over budget,
351
+ * 4. whole `dreamerProposals` items dropped from the tail as the last resort.
352
+ *
353
+ * Never truncates mid-value and never emits partial JSON (rc-9): every step drops
354
+ * a whole item and records it. Terminates because each branch strictly shrinks a
355
+ * finite array.
356
+ */
357
+ function enforceTotalBudget(params) {
358
+ const { context: initialContext, notes: initialNotes } = params;
359
+ let context = initialContext;
360
+ const notes = [...initialNotes];
361
+ const size = (candidate) => JSON.stringify(candidate).length;
362
+ if (size(context) <= FORMATION_TOTAL_MAX_CHARS)
363
+ return context;
364
+ // 1. Lineage ids: identity, not content — cap to the last-resort limit.
365
+ if (context.provenance.lineageArtifactIds.length > FORMATION_LINEAGE_ID_LIMIT) {
366
+ notes.push(`lineageArtifactIds truncated to ${FORMATION_LINEAGE_ID_LIMIT} to satisfy FORMATION_TOTAL_MAX_CHARS=${FORMATION_TOTAL_MAX_CHARS}`);
367
+ context = {
368
+ ...context,
369
+ provenance: {
370
+ ...context.provenance,
371
+ lineageArtifactIds: context.provenance.lineageArtifactIds.slice(0, FORMATION_LINEAGE_ID_LIMIT),
372
+ },
373
+ truncationNotes: notes,
374
+ };
375
+ }
376
+ // 2. Dreamer contextRefs are references to evidence the prompt cannot read
377
+ // anyway — cheaper to lose than any projected proposal.
378
+ if (context.dreamerContextRefs.length > 0 && size(context) > FORMATION_TOTAL_MAX_CHARS) {
379
+ notes.push(`dreamerContextRefs dropped (${context.dreamerContextRefs.length} refs) to satisfy FORMATION_TOTAL_MAX_CHARS=${FORMATION_TOTAL_MAX_CHARS}`);
380
+ context = { ...context, dreamerContextRefs: [], truncationNotes: notes };
381
+ }
382
+ // 3. Collapse the notes themselves. Keeping raw notes here would be circular:
383
+ // they exist to explain the drops, and they are the term keeping us over.
384
+ if (size(context) > FORMATION_TOTAL_MAX_CHARS && context.truncationNotes.length > 1) {
385
+ const collapsed = [
386
+ ...context.truncationNotes.slice(0, 1),
387
+ `… ${context.truncationNotes.length - 1} further truncation note(s) collapsed to satisfy FORMATION_TOTAL_MAX_CHARS=${FORMATION_TOTAL_MAX_CHARS}`,
388
+ ];
389
+ context = { ...context, truncationNotes: collapsed };
390
+ }
391
+ // 4. Last resort: drop whole trailing proposals. Sections were already sized
392
+ // against their own caps, so reaching here means the aggregate bound is the
393
+ // binding constraint.
394
+ while (context.dreamerProposals.length > 0 && size(context) > FORMATION_TOTAL_MAX_CHARS) {
395
+ const dropped = context.dreamerProposals[context.dreamerProposals.length - 1];
396
+ context = {
397
+ ...context,
398
+ dreamerProposals: context.dreamerProposals.slice(0, -1),
399
+ truncationNotes: [
400
+ ...context.truncationNotes,
401
+ `dreamer candidate dropped to satisfy FORMATION_TOTAL_MAX_CHARS=${FORMATION_TOTAL_MAX_CHARS}: candidateIndex ${dropped?.candidateIndex ?? 'unknown'}`,
402
+ ],
403
+ };
404
+ }
405
+ // 5. Diagnosis block as the final content sacrifice.
406
+ if (context.sourceDiagnosis !== undefined && size(context) > FORMATION_TOTAL_MAX_CHARS) {
407
+ context = {
408
+ ...context,
409
+ truncationNotes: [
410
+ ...context.truncationNotes,
411
+ `diagnosis block dropped entirely to satisfy FORMATION_TOTAL_MAX_CHARS=${FORMATION_TOTAL_MAX_CHARS}`,
412
+ ],
413
+ };
414
+ const { sourceDiagnosis: _dropped, ...rest } = context;
415
+ context = rest;
416
+ }
417
+ // 6. If a pathological note set still exceeds the cap, keep collapsing to the
418
+ // last note. The bound is a hard prompt-boundary contract.
419
+ while (context.truncationNotes.length > 1 && size(context) > FORMATION_TOTAL_MAX_CHARS) {
420
+ context = {
421
+ ...context,
422
+ truncationNotes: context.truncationNotes.slice(0, context.truncationNotes.length - 1),
423
+ };
424
+ }
425
+ return context;
426
+ }
427
+ /**
428
+ * Apply the budget contract. Degradation order — cheapest information loss first:
429
+ * 1. trailing dreamer candidates, then
430
+ * 2. trailing diagnosis evidence, then violatedPrinciples, then recommendations,
431
+ * 3. the diagnosis block as a whole,
432
+ * 4. lineage ids (identity, not content) as the last resort.
433
+ *
434
+ * Every step records a `truncationNote`, so a quality regression can always be
435
+ * traced back to whether the bound — not the evidence — cut the input.
436
+ */
437
+ function applyBudget(context) {
438
+ const notes = [...context.truncationNotes];
439
+ const dreamerProposals = trimSection({
440
+ items: context.dreamerProposals,
441
+ maxChars: FORMATION_PROPOSALS_MAX_CHARS,
442
+ render: (kept) => kept,
443
+ describe: (dropped) => `dreamer candidate dropped to satisfy FORMATION_PROPOSALS_MAX_CHARS=${FORMATION_PROPOSALS_MAX_CHARS}: candidateIndex ${dropped.candidateIndex}`,
444
+ notes,
445
+ });
446
+ let { sourceDiagnosis } = context;
447
+ if (sourceDiagnosis !== undefined) {
448
+ const evidence = trimSection({
449
+ items: sourceDiagnosis.evidence,
450
+ maxChars: FORMATION_DIAGNOSIS_MAX_CHARS,
451
+ render: (kept) => ({ ...sourceDiagnosis, evidence: kept }),
452
+ describe: (dropped) => `diagnosis evidence dropped to satisfy FORMATION_DIAGNOSIS_MAX_CHARS=${FORMATION_DIAGNOSIS_MAX_CHARS}: ${dropped.sourceRef}`,
453
+ notes,
454
+ });
455
+ const violatedPrinciples = trimSection({
456
+ items: sourceDiagnosis.violatedPrinciples,
457
+ maxChars: FORMATION_DIAGNOSIS_MAX_CHARS,
458
+ render: (kept) => ({ ...sourceDiagnosis, evidence, violatedPrinciples: kept }),
459
+ describe: () => `diagnosis violatedPrinciples entry dropped to satisfy FORMATION_DIAGNOSIS_MAX_CHARS=${FORMATION_DIAGNOSIS_MAX_CHARS}`,
460
+ notes,
461
+ });
462
+ const recommendations = trimSection({
463
+ items: sourceDiagnosis.recommendations,
464
+ maxChars: FORMATION_DIAGNOSIS_MAX_CHARS,
465
+ render: (kept) => ({ ...sourceDiagnosis, evidence, violatedPrinciples, recommendations: kept }),
466
+ describe: () => `diagnosis recommendation dropped to satisfy FORMATION_DIAGNOSIS_MAX_CHARS=${FORMATION_DIAGNOSIS_MAX_CHARS}`,
467
+ notes,
468
+ });
469
+ const trimmed = {
470
+ ...sourceDiagnosis,
471
+ evidence,
472
+ violatedPrinciples,
473
+ recommendations,
474
+ };
475
+ if (JSON.stringify(trimmed).length > FORMATION_DIAGNOSIS_MAX_CHARS) {
476
+ notes.push(`diagnosis block dropped entirely: it exceeds FORMATION_DIAGNOSIS_MAX_CHARS=${FORMATION_DIAGNOSIS_MAX_CHARS} even after trimming`);
477
+ sourceDiagnosis = undefined;
478
+ }
479
+ else {
480
+ sourceDiagnosis = trimmed;
481
+ }
482
+ }
483
+ // Built field-by-field (not spread from `context`) so a section that was
484
+ // dropped above is genuinely ABSENT rather than present-and-undefined.
485
+ const bounded = {
486
+ version: context.version,
487
+ dreamerProposals,
488
+ dreamerContextRefs: context.dreamerContextRefs,
489
+ provenance: context.provenance,
490
+ ...(sourceDiagnosis !== undefined ? { sourceDiagnosis } : {}),
491
+ truncationNotes: notes,
492
+ };
493
+ // Final guard: the per-section caps bound the two CONTENT blocks, but three
494
+ // terms remain unbounded above the section level — `provenance.lineageArtifactIds`,
495
+ // `dreamerContextRefs`, and `truncationNotes` itself — and every drop recorded
496
+ // by `trimSection` GROWS the last of those. A single lineage truncation is
497
+ // therefore not sufficient: it must be re-checked and the ladder continued.
498
+ return enforceTotalBudget({ context: bounded, notes });
499
+ }
500
+ /**
501
+ * Picks the diagnostic predecessor of the dreamer task, honouring
502
+ * `FORMATION_DIAGNOSIS_TASK_KINDS` order (most authoritative first) and
503
+ * requiring a succeeded task (an unfinished stage has no artifact to read).
504
+ */
505
+ async function resolveDiagnosisDependency(dreamerTask, lookupTask) {
506
+ const deps = await Promise.all(dreamerTask.dependencyTaskIds.map(async (depId) => ({ depId, task: await lookupTask(depId) })));
507
+ for (const stage of FORMATION_DIAGNOSIS_TASK_KINDS) {
508
+ const match = deps.find((entry) => entry.task !== null && entry.task.taskKind === stage && entry.task.status === 'succeeded');
509
+ if (match)
510
+ return { taskId: match.depId, taskKind: stage };
511
+ }
512
+ return null;
513
+ }
514
+ async function resolveFormationContextUnsafe(params) {
515
+ const { sourceDreamerArtifactId, taskId, emitEvent } = params;
516
+ if (sourceDreamerArtifactId === undefined || sourceDreamerArtifactId.trim() === '') {
517
+ emitEvent('formation_context_skipped', taskId, { reason: 'dreamer_artifact_id_missing' });
518
+ return undefined;
519
+ }
520
+ const dreamerArtifact = await params.artifactStore.getArtifactById(sourceDreamerArtifactId);
521
+ if (!dreamerArtifact) {
522
+ // rc-9: observable — the id was present, so its absence is a real gap.
523
+ emitEvent('formation_dreamer_artifact_missing', taskId, { sourceDreamerArtifactId });
524
+ return undefined;
525
+ }
526
+ const dreamerParsed = parseContentJson(dreamerArtifact.contentJson);
527
+ if (!dreamerParsed) {
528
+ emitEvent('formation_context_invalid', taskId, {
529
+ sourceDreamerArtifactId,
530
+ reason: 'dreamer_content_not_object',
531
+ });
532
+ return undefined;
533
+ }
534
+ const dreamerProjection = projectDreamerProposals(dreamerParsed);
535
+ const truncationNotes = [...dreamerProjection.truncationNotes];
536
+ if (dreamerProjection.candidates.length === 0) {
537
+ // Degrade, do not fail: the diagnosis may still carry the source intent.
538
+ truncationNotes.push('dreamer candidates empty or all malformed — proposals block is empty');
539
+ }
540
+ // ── Diagnosis: walk the dreamer task's predecessors, most-authoritative first.
541
+ let sourceDiagnosis;
542
+ const dreamerTaskId = dreamerArtifact.sourceTaskId;
543
+ const dreamerTask = await params.lookupTask(dreamerTaskId);
544
+ if (!dreamerTask) {
545
+ truncationNotes.push(`dreamer task ${dreamerTaskId} not resolvable — diagnosis not attempted`);
546
+ }
547
+ else {
548
+ const diagnosisDep = await resolveDiagnosisDependency(dreamerTask, params.lookupTask);
549
+ if (!diagnosisDep) {
550
+ truncationNotes.push('no diagnostic stage found among dreamer dependencies — diagnosis omitted');
551
+ }
552
+ else {
553
+ const artifacts = await params.artifactStore.listBySourceTaskId(diagnosisDep.taskId);
554
+ const [diagnosisArtifact] = artifacts;
555
+ const parsed = diagnosisArtifact ? parseContentJson(diagnosisArtifact.contentJson) : null;
556
+ if (!diagnosisArtifact || !parsed) {
557
+ truncationNotes.push(`diagnosis artifact for task ${diagnosisDep.taskId} (${diagnosisDep.taskKind}) unreadable — diagnosis omitted`);
558
+ }
559
+ else {
560
+ sourceDiagnosis = projectDiagnosisOutput(parsed, {
561
+ artifactId: diagnosisArtifact.artifactId,
562
+ taskId: diagnosisDep.taskId,
563
+ stage: diagnosisDep.taskKind,
564
+ });
565
+ }
566
+ }
567
+ }
568
+ const context = {
569
+ version: FORMATION_CONTEXT_VERSION,
570
+ dreamerProposals: dreamerProjection.candidates,
571
+ dreamerContextRefs: dreamerProjection.contextRefs,
572
+ ...(sourceDiagnosis !== undefined ? { sourceDiagnosis } : {}),
573
+ provenance: {
574
+ sourceDreamerArtifactId: dreamerArtifact.artifactId,
575
+ sourceDreamerTaskId: dreamerTaskId,
576
+ sourceDiagnosisArtifactId: sourceDiagnosis?.artifactId ?? null,
577
+ sourceDiagnosisTaskId: sourceDiagnosis?.taskId ?? null,
578
+ sourcePainId: dreamerProjection.sourcePainId,
579
+ lineageArtifactIds: [...dreamerArtifact.lineageArtifactIds],
580
+ },
581
+ truncationNotes,
582
+ };
583
+ const bounded = applyBudget(context);
584
+ emitEvent('formation_context_resolved', taskId, {
585
+ version: bounded.version,
586
+ candidateCount: bounded.dreamerProposals.length,
587
+ hasDiagnosis: bounded.sourceDiagnosis !== undefined,
588
+ diagnosisStage: bounded.sourceDiagnosis?.stage ?? null,
589
+ truncationNoteCount: bounded.truncationNotes.length,
590
+ serializedChars: JSON.stringify(bounded).length,
591
+ });
592
+ return bounded;
593
+ }
594
+ /**
595
+ * Resolve the bounded formation context reachable from a dreamer artifact id.
596
+ *
597
+ * Degradation policy (PRI-838 Phase 4 Case 2 — degrade, never fail):
598
+ * - no dreamer id, or the dreamer artifact cannot be read/parsed
599
+ * ⇒ returns `undefined` (the caller keeps its previous prompt shape) and
600
+ * emits an observable event;
601
+ * - dreamer resolvable but the diagnosis is absent/unreadable
602
+ * ⇒ returns a context WITHOUT `sourceDiagnosis`, plus a truncation note.
603
+ *
604
+ * NEVER throws — including when the artifact store or the task lookup itself
605
+ * fails. Formation evidence is an enrichment: a store error must not fail a
606
+ * formation run, so every escaping failure is converted into an observable
607
+ * event plus `undefined` (rc-9: degradation is never silent).
608
+ */
609
+ export async function resolveFormationContext(params) {
610
+ try {
611
+ return await resolveFormationContextUnsafe(params);
612
+ }
613
+ catch (error) {
614
+ params.emitEvent('formation_context_failed', params.taskId, {
615
+ reason: 'unexpected_error',
616
+ errorMessage: error instanceof Error ? error.message : String(error),
617
+ });
618
+ return undefined;
619
+ }
620
+ }
621
+ //# sourceMappingURL=formation-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formation-context.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/formation-context.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,4 @@ export { ArtificerRuleOutputTypebox, ArtificerSourceTraceTypebox, GoldenTraceCas
79
79
  export { buildArtificerL2Tools, ARTIFICER_L2_TOOL_WHITELIST, RULECODE_SPEC_TEXT, } from '../tools/artificer-l2-tool-contract.js';
80
80
  export type { ArtificerL2ToolContext, ArtificerL2OutputCapture, } from '../tools/artificer-l2-tool-contract.js';
81
81
  export { ROUTE_CHANNEL_MAP, MVP_ENABLED_CHANNELS, CANDIDATE_KIND_TO_ROUTE, computeBridgeDecision, buildDreamerTaskSeed, buildDreamerSeedFromCandidate, dreamerTaskIdsForCandidate, findExistingDreamerTask, seedIntakeTask, } from './intake-to-internalization-bridge.js';
82
- export { CandidateLineage } from './candidate-lineage.js';
83
- export type { LineageTaskReader, LineageNode, LineageNote, LineageResult, LineageChain, LineageError } from './candidate-lineage.js';
84
82
  //# sourceMappingURL=index.d.ts.map