@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"attach-summary-envelope.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/attach-summary-envelope.ts"],"names":[],"mappings":"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"}
@@ -1,185 +0,0 @@
1
- /**
2
- * Layer 2 — CandidateLineage: on-demand ancestry traversal (design §6.4).
3
- *
4
- * Pure logic with **injected** I/O (artifact store + task reader). Walks an
5
- * artifact's ancestry via `lineageArtifactIds`, determining each node's stage
6
- * by the two-hop `artifact.sourceTaskId → task.taskKind` (F1 — never by
7
- * `artifactKind`, which is ambiguous: all internalization artifacts are
8
- * `principle`).
9
- *
10
- * Result contract (rc-9, design §6.4 error table):
11
- * - data corruption (unparseable / shape-invalid / store-throw) → `ok: false`
12
- * + a `LineageError`; the caller MUST surface it as an explicit failure or
13
- * structured degradation — never silently fall through.
14
- * - expected absence (no lineage ids / ancestor pruned / task missing / depth
15
- * limit / cycle) → `ok: true` with a partial chain + notes; `complete` is
16
- * false and `notes` is non-empty.
17
- *
18
- * Stale-instance rebind (PRI-717): a lineage edge whose artifact id no longer
19
- * resolves is first checked against the producer-task convention
20
- * (`pi-art-<taskId>-run_<taskId>_<seq>`); when the producing task still has a
21
- * current durable artifact, the edge resolves to it and a
22
- * `lineage_edge_rebound` event is emitted. Everything else stays fail-closed
23
- * `ancestor_pruned`.
24
- *
25
- * Request-scoped cache: a single `CandidateLineage` instance lives for one
26
- * `buildContext`; repeated `getArtifactById` calls for the same id hit the
27
- * cache, not the store (CP-18).
28
- *
29
- * rc-1: every `contentJson` stays `unknown` — it is never narrowed or cast.
30
- */
31
- import type { PIArtifactStore } from './pi-artifact.js';
32
- import type { ArtifactSummary, SummaryRunnerKind } from './artifact-summary.js';
33
- export interface LineageNode {
34
- readonly artifactId: string;
35
- readonly taskId: string;
36
- /** Stage determined by the two-hop sourceTaskId → task.taskKind (F1). */
37
- readonly taskKind: string;
38
- readonly runnerKind: SummaryRunnerKind | 'unknown';
39
- /** rc-1: remains `unknown`; the caller narrows it. */
40
- readonly contentJson: unknown;
41
- readonly summary?: ArtifactSummary;
42
- }
43
- export type LineageNoteCode = 'source_trace_missing' | 'ancestor_pruned' | 'task_missing' | 'depth_limit_reached' | 'cycle_detected';
44
- export interface LineageNote {
45
- readonly code: LineageNoteCode;
46
- readonly artifactId: string;
47
- readonly detail: string;
48
- }
49
- export interface LineageChain {
50
- /** From start node upstream, in traversal order. */
51
- readonly nodes: readonly LineageNode[];
52
- /** false when notes is non-empty (partial chain). */
53
- readonly complete: boolean;
54
- readonly notes: readonly LineageNote[];
55
- }
56
- export type LineageError = {
57
- readonly kind: 'content_json_unparseable';
58
- readonly artifactId: string;
59
- readonly detail: string;
60
- } | {
61
- readonly kind: 'artifact_shape_invalid';
62
- readonly artifactId: string;
63
- readonly detail: string;
64
- } | {
65
- readonly kind: 'store_failure';
66
- readonly detail: string;
67
- };
68
- export type LineageResult = {
69
- readonly ok: true;
70
- readonly value: LineageChain;
71
- } | {
72
- readonly ok: false;
73
- readonly error: LineageError;
74
- };
75
- /** Lineage telemetry event (forwarded to the caller's emit, if provided). */
76
- export type LineageEvent = {
77
- readonly type: 'lineage_data_corrupt';
78
- readonly artifactId: string;
79
- readonly detail: string;
80
- readonly errorKind: LineageError['kind'];
81
- } | {
82
- readonly type: 'lineage_store_failure';
83
- readonly detail: string;
84
- } | {
85
- readonly type: 'lineage_partial';
86
- readonly artifactId: string;
87
- readonly noteCode: LineageNoteCode;
88
- readonly detail: string;
89
- }
90
- /**
91
- * A lineage edge referenced a superseded artifact INSTANCE id and was
92
- * resolved to the producer task's CURRENT artifact (PRI-717). Durable
93
- * artifact ids embed the producing run (`pi-art-<taskId>-run_<taskId>_<seq>`)
94
- * and the upsert rewrites the id on every re-run of the same task, so edges
95
- * captured before an upstream revision dangle even though the logical
96
- * artifact (UNIQUE(source_task_id, artifact_kind)) still exists. Emitted so
97
- * the rebind stays observable (rc-9) — it is not a partial-chain note.
98
- */
99
- | {
100
- readonly type: 'lineage_edge_rebound';
101
- readonly staleArtifactId: string;
102
- readonly resolvedArtifactId: string;
103
- readonly taskId: string;
104
- };
105
- /** Two-hop task reader (F1) — resolves taskKind from a taskId. */
106
- export interface LineageTaskReader {
107
- getTaskById(taskId: string): Promise<{
108
- readonly taskId: string;
109
- readonly taskKind: string;
110
- } | null>;
111
- }
112
- export interface CandidateLineageDeps {
113
- readonly artifacts: Pick<PIArtifactStore, 'getArtifactById' | 'listBySourceTaskId'>;
114
- readonly tasks: LineageTaskReader;
115
- /** Default 6 (longest pipeline chain + 1). */
116
- readonly maxDepth?: number;
117
- readonly emit?: (event: LineageEvent) => void;
118
- }
119
- export declare class CandidateLineage {
120
- private readonly artifacts;
121
- private readonly tasks;
122
- private readonly maxDepth;
123
- private readonly emit;
124
- /** request-scoped: artifactId → resolved record (or null if known-absent). */
125
- private readonly cache;
126
- /** request-scoped: taskId → resolved taskKind (or null). */
127
- private readonly taskCache;
128
- constructor(deps: CandidateLineageDeps);
129
- /**
130
- * Resolve the full ancestry chain starting from `startArtifactId`.
131
- * Walks `lineageArtifactIds` upstream, building an ordered node list.
132
- */
133
- resolve(startArtifactId: string): Promise<LineageResult>;
134
- /**
135
- * Find the nearest ancestor node with a given `taskKind` (F1 — never by
136
- * `artifactKind`). Returns `{ ok: true, node: null }` when no ancestor
137
- * matches (a valid result, not an error).
138
- */
139
- findAncestorByTaskKind(startArtifactId: string, taskKind: string): Promise<{
140
- readonly ok: true;
141
- readonly node: LineageNode | null;
142
- readonly notes: readonly LineageNote[];
143
- } | {
144
- readonly ok: false;
145
- readonly error: LineageError;
146
- }>;
147
- /**
148
- * Iterative BFS resolution with cycle detection (via `visited`) and depth
149
- * limiting. `visited` carries artifactIds already resolved (prevents cycles
150
- * and redundant fetches across the whole traversal, not just one path).
151
- *
152
- * Depth counts BFS LEVELS (start = level 0), matching the documented
153
- * `maxDepth = longest pipeline chain + 1` invariant — not the number of
154
- * nodes processed. A node-counting loop would stop mid-level on wide chains
155
- * (the split-diagnostician router fans out to two artifacts per level) and
156
- * starve deep ancestors of resolution (PRI-717).
157
- */
158
- private resolveChain;
159
- /**
160
- * PRI-717: attempt to resolve a dangling lineage edge to the producer
161
- * task's CURRENT artifact. Only fires when the edge id follows the
162
- * producer convention AND that task still has a durable artifact of the
163
- * SAME id family; any other outcome keeps the fail-closed
164
- * `ancestor_pruned` handling in the caller.
165
- *
166
- * Review fix (rebind identity): the durable logical identity is
167
- * (sourceTaskId, artifactKind) — an evaluator task may carry BOTH a
168
- * `pi-art-…` principle row and a `pi-rule-…` rule row. The stale edge
169
- * names a `pi-art-` instance of the task, so only the CURRENT instance of
170
- * the SAME id family is a rebound candidate — never another kind's row
171
- * and never array order. `matches.length !== 1` (0 = no current instance
172
- * of this family, >1 = data anomaly against UNIQUE(source_task_id,
173
- * artifact_kind)) stays fail-closed, with the ambiguity reported back so
174
- * the caller's note says why — never a silent pick.
175
- *
176
- * The rebind result is cached under the STALE id so repeated edges to the
177
- * same superseded instance stay idempotent within one request (CP-18).
178
- */
179
- private tryReboundInstance;
180
- /** Cached artifact fetch. Returns `ok:false` on store failure or corruption. */
181
- private getArtifactCached;
182
- /** Cached task fetch (two-hop). Returns `ok:false` only on reader failure (treated as store_failure). */
183
- private getTaskCached;
184
- }
185
- //# sourceMappingURL=candidate-lineage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"candidate-lineage.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/candidate-lineage.ts"],"names":[],"mappings":"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"}
@@ -1,357 +0,0 @@
1
- /**
2
- * Layer 2 — CandidateLineage: on-demand ancestry traversal (design §6.4).
3
- *
4
- * Pure logic with **injected** I/O (artifact store + task reader). Walks an
5
- * artifact's ancestry via `lineageArtifactIds`, determining each node's stage
6
- * by the two-hop `artifact.sourceTaskId → task.taskKind` (F1 — never by
7
- * `artifactKind`, which is ambiguous: all internalization artifacts are
8
- * `principle`).
9
- *
10
- * Result contract (rc-9, design §6.4 error table):
11
- * - data corruption (unparseable / shape-invalid / store-throw) → `ok: false`
12
- * + a `LineageError`; the caller MUST surface it as an explicit failure or
13
- * structured degradation — never silently fall through.
14
- * - expected absence (no lineage ids / ancestor pruned / task missing / depth
15
- * limit / cycle) → `ok: true` with a partial chain + notes; `complete` is
16
- * false and `notes` is non-empty.
17
- *
18
- * Stale-instance rebind (PRI-717): a lineage edge whose artifact id no longer
19
- * resolves is first checked against the producer-task convention
20
- * (`pi-art-<taskId>-run_<taskId>_<seq>`); when the producing task still has a
21
- * current durable artifact, the edge resolves to it and a
22
- * `lineage_edge_rebound` event is emitted. Everything else stays fail-closed
23
- * `ancestor_pruned`.
24
- *
25
- * Request-scoped cache: a single `CandidateLineage` instance lives for one
26
- * `buildContext`; repeated `getArtifactById` calls for the same id hit the
27
- * cache, not the store (CP-18).
28
- *
29
- * rc-1: every `contentJson` stays `unknown` — it is never narrowed or cast.
30
- */
31
- import { SUMMARY_RUNNER_KINDS } from './artifact-summary.js';
32
- // ── Helpers ──────────────────────────────────────────────────────────────────
33
- const DEFAULT_MAX_DEPTH = 6;
34
- const ARTIFACT_ID_PREFIX = 'pi-art-';
35
- const RUN_MARKER = '-run_';
36
- /**
37
- * Recover the producing task id from a durable artifact INSTANCE id
38
- * (`pi-art-<taskId>-run_<taskId>_<seq>` — the run id embeds its own task id).
39
- *
40
- * Returns null when the id does not follow the producer convention (foreign
41
- * shape, mismatched run segment, non-numeric sequence); the caller then keeps
42
- * the fail-closed `ancestor_pruned` path — a non-parseable edge is never
43
- * silently rebound to a guessed task.
44
- */
45
- function parseArtifactInstanceTaskId(artifactId) {
46
- if (!artifactId.startsWith(ARTIFACT_ID_PREFIX))
47
- return null;
48
- const markerIdx = artifactId.lastIndexOf(RUN_MARKER);
49
- if (markerIdx <= ARTIFACT_ID_PREFIX.length)
50
- return null;
51
- const taskId = artifactId.slice(ARTIFACT_ID_PREFIX.length, markerIdx);
52
- if (taskId === '')
53
- return null;
54
- // The run segment after the marker must be `run_<taskId>_<digits>` for the
55
- // same taskId — a mismatch means the id is not a producer-convention id.
56
- const runSegment = artifactId.slice(markerIdx + 1 + 'run_'.length);
57
- const expectedRunPrefix = `${taskId}_`;
58
- if (!runSegment.startsWith(expectedRunPrefix))
59
- return null;
60
- const seq = runSegment.slice(expectedRunPrefix.length);
61
- return /^(0|[1-9][0-9]*)$/.test(seq) ? taskId : null;
62
- }
63
- function isRecord(value) {
64
- return value !== null && typeof value === 'object' && !Array.isArray(value);
65
- }
66
- /**
67
- * Read an existing ArtifactSummary off a contentJson (Layer 0 envelope), with
68
- * full value-type validation (rc-2). Returns null when absent or malformed —
69
- * the node simply carries no `summary`, which is a valid partial state.
70
- */
71
- function readSummary(contentJson) {
72
- if (!isRecord(contentJson) || !Object.hasOwn(contentJson, 'summary'))
73
- return undefined;
74
- const { summary } = contentJson;
75
- if (!isRecord(summary))
76
- return undefined;
77
- // rc-2: full value-type validation, then construct a typed object (no as cast).
78
- if (Object.hasOwn(summary, 'schemaVersion') && summary.schemaVersion === 1
79
- && Object.hasOwn(summary, 'runnerKind') && typeof summary.runnerKind === 'string'
80
- && SUMMARY_RUNNER_KINDS.includes(summary.runnerKind)
81
- && Object.hasOwn(summary, 'headline') && typeof summary.headline === 'string'
82
- && Object.hasOwn(summary, 'fields') && isRecord(summary.fields)
83
- && Object.values(summary.fields).every((v) => typeof v === 'string')
84
- && Object.hasOwn(summary, 'derivedFrom') && summary.derivedFrom === 'structured_output'
85
- && Object.hasOwn(summary, 'omittedFields') && Array.isArray(summary.omittedFields)
86
- && summary.omittedFields.every((v) => typeof v === 'string')) {
87
- // runtime-contract-exempt: ERR-001 narrowing after full value-type validation: runnerKind checked against SUMMARY_RUNNER_KINDS, fields checked via Object.values().every(typeof string), omittedFields checked via Array.isArray + every. The casts are type-only — the values are already validated at runtime above.
88
- return {
89
- schemaVersion: 1,
90
- runnerKind: summary.runnerKind, // runtime-contract-exempt: ERR-001 validated via SUMMARY_RUNNER_KINDS.includes above
91
- headline: summary.headline,
92
- fields: summary.fields, // runtime-contract-exempt: ERR-001 validated via Object.values().every(typeof===string) above
93
- derivedFrom: 'structured_output',
94
- omittedFields: summary.omittedFields, // runtime-contract-exempt: ERR-001 validated via Array.isArray + every(typeof===string) above
95
- };
96
- }
97
- return undefined;
98
- }
99
- // ── CandidateLineage ─────────────────────────────────────────────────────────
100
- export class CandidateLineage {
101
- artifacts;
102
- tasks;
103
- maxDepth;
104
- emit;
105
- /** request-scoped: artifactId → resolved record (or null if known-absent). */
106
- cache = new Map();
107
- /** request-scoped: taskId → resolved taskKind (or null). */
108
- taskCache = new Map();
109
- constructor(deps) {
110
- this.artifacts = deps.artifacts;
111
- this.tasks = deps.tasks;
112
- this.maxDepth = deps.maxDepth ?? DEFAULT_MAX_DEPTH;
113
- this.emit = deps.emit ?? (() => undefined);
114
- }
115
- /**
116
- * Resolve the full ancestry chain starting from `startArtifactId`.
117
- * Walks `lineageArtifactIds` upstream, building an ordered node list.
118
- */
119
- async resolve(startArtifactId) {
120
- return this.resolveChain(startArtifactId, new Set());
121
- }
122
- /**
123
- * Find the nearest ancestor node with a given `taskKind` (F1 — never by
124
- * `artifactKind`). Returns `{ ok: true, node: null }` when no ancestor
125
- * matches (a valid result, not an error).
126
- */
127
- async findAncestorByTaskKind(startArtifactId, taskKind) {
128
- const result = await this.resolve(startArtifactId);
129
- if (!result.ok)
130
- return { ok: false, error: result.error };
131
- const node = result.value.nodes.find((n) => n.taskKind === taskKind) ?? null;
132
- return { ok: true, node, notes: result.value.notes };
133
- }
134
- // ── Internal traversal ─────────────────────────────────────────────────────
135
- /**
136
- * Iterative BFS resolution with cycle detection (via `visited`) and depth
137
- * limiting. `visited` carries artifactIds already resolved (prevents cycles
138
- * and redundant fetches across the whole traversal, not just one path).
139
- *
140
- * Depth counts BFS LEVELS (start = level 0), matching the documented
141
- * `maxDepth = longest pipeline chain + 1` invariant — not the number of
142
- * nodes processed. A node-counting loop would stop mid-level on wide chains
143
- * (the split-diagnostician router fans out to two artifacts per level) and
144
- * starve deep ancestors of resolution (PRI-717).
145
- */
146
- async resolveChain(startArtifactId, visited) {
147
- const nodes = [];
148
- const notes = [];
149
- // Resolved (post-rebind) artifact ids already emitted as nodes. Distinct
150
- // edge ids — one stale instance, one current — can resolve to the SAME
151
- // logical artifact when siblings were written across an upstream
152
- // revision; the second resolution must be a silent skip, not a duplicate
153
- // node or a spurious cycle note.
154
- const seenResolvedIds = new Set();
155
- // BFS-style frontier of artifact ids to resolve, seeded with the start.
156
- // Each iteration drains one full LEVEL, then the frontier's next level is
157
- // the artifacts discovered by that drain.
158
- const queue = [startArtifactId];
159
- let level = 0;
160
- while (queue.length > 0) {
161
- // NOTE: a re-queued already-visited id (fan-in diamond — the EP002
162
- // router topology) is diagnosed as `cycle_detected` when popped. That
163
- // is the pre-existing diagnostic contract (a true lineage cycle is
164
- // indistinguishable from a diamond without creation-time ordering);
165
- // `complete` is advisory only — production consumers gate on `ok` and
166
- // node reachability, not on `complete`.
167
- if (level >= this.maxDepth) {
168
- const [last] = queue;
169
- notes.push({ code: 'depth_limit_reached', artifactId: last ?? startArtifactId, detail: `maxDepth (${this.maxDepth}) reached; remaining ${queue.length} ancestor(s) not traversed` });
170
- this.emit({ type: 'lineage_partial', artifactId: last ?? startArtifactId, noteCode: 'depth_limit_reached', detail: `maxDepth ${this.maxDepth}` });
171
- break;
172
- }
173
- const levelSize = queue.length;
174
- for (let i = 0; i < levelSize; i++) {
175
- const artifactId = queue.shift();
176
- if (artifactId === undefined)
177
- break;
178
- // Cycle detection.
179
- if (visited.has(artifactId)) {
180
- notes.push({ code: 'cycle_detected', artifactId, detail: `artifact ${artifactId} already on the resolution path` });
181
- this.emit({ type: 'lineage_partial', artifactId, noteCode: 'cycle_detected', detail: 'cycle detected' });
182
- continue;
183
- }
184
- visited.add(artifactId);
185
- // Fetch artifact (cached).
186
- const artifactResult = await this.getArtifactCached(artifactId);
187
- if (!artifactResult.ok)
188
- return artifactResult; // propagate corruption / store failure
189
- let artifact = artifactResult.value;
190
- if (artifact === null) {
191
- // Ancestor referenced but pruned — expected, partial. PRI-717: the
192
- // edge may reference a superseded INSTANCE id of a task whose
193
- // logical artifact still exists (id embeds the run; upsert rewrites
194
- // it on re-run). Attempt one observable rebind before giving up.
195
- const rebound = await this.tryReboundInstance(artifactId);
196
- if (!rebound.ok)
197
- return rebound;
198
- artifact = rebound.value;
199
- if (artifact === null) {
200
- notes.push({
201
- code: 'ancestor_pruned',
202
- artifactId,
203
- detail: rebound.ambiguousCandidates !== undefined
204
- ? `ancestor artifact ${artifactId} not rebound: ambiguous current artifacts for source task (${rebound.ambiguousCandidates} same-family candidates) — refusing to pick by array order`
205
- : `ancestor artifact ${artifactId} not found (pruned)`,
206
- });
207
- this.emit({ type: 'lineage_partial', artifactId, noteCode: 'ancestor_pruned', detail: 'artifact not found' });
208
- continue;
209
- }
210
- }
211
- if (seenResolvedIds.has(artifact.artifactId))
212
- continue;
213
- seenResolvedIds.add(artifact.artifactId);
214
- // Parse contentJson (rc-1: stays unknown on success; unparseable = corruption).
215
- let contentJson;
216
- try {
217
- contentJson = JSON.parse(artifact.contentJson);
218
- }
219
- catch {
220
- const err = { kind: 'content_json_unparseable', artifactId, detail: `contentJson of ${artifactId} is not valid JSON` };
221
- this.emit({ type: 'lineage_data_corrupt', artifactId, detail: err.detail, errorKind: 'content_json_unparseable' });
222
- return { ok: false, error: err };
223
- }
224
- // Shape check: must have sourceTaskId (rc-3 fail loud on corruption).
225
- if (typeof artifact.sourceTaskId !== 'string' || artifact.sourceTaskId === '') {
226
- const err = { kind: 'artifact_shape_invalid', artifactId, detail: `artifact ${artifactId} missing required sourceTaskId` };
227
- this.emit({ type: 'lineage_data_corrupt', artifactId, detail: err.detail, errorKind: 'artifact_shape_invalid' });
228
- return { ok: false, error: err };
229
- }
230
- // Two-hop: sourceTaskId → task.taskKind (F1).
231
- const taskResult = await this.getTaskCached(artifact.sourceTaskId);
232
- if (!taskResult.ok)
233
- return taskResult;
234
- const task = taskResult.value;
235
- let taskKind;
236
- let runnerKind;
237
- if (task === null) {
238
- taskKind = 'unknown';
239
- runnerKind = 'unknown';
240
- notes.push({ code: 'task_missing', artifactId, detail: `task ${artifact.sourceTaskId} not found; cannot determine stage via two-hop` });
241
- this.emit({ type: 'lineage_partial', artifactId, noteCode: 'task_missing', detail: `task ${artifact.sourceTaskId} missing` });
242
- }
243
- else {
244
- ({ taskKind } = task);
245
- runnerKind = SUMMARY_RUNNER_KINDS.includes(taskKind)
246
- ? taskKind
247
- : 'unknown';
248
- }
249
- const node = {
250
- // On a rebind the node carries the RESOLVED artifact's identity, not
251
- // the superseded edge id — downstream stage attribution reads these.
252
- artifactId: artifact.artifactId,
253
- taskId: artifact.sourceTaskId,
254
- taskKind,
255
- runnerKind,
256
- contentJson,
257
- summary: readSummary(contentJson),
258
- };
259
- nodes.push(node);
260
- // Extend frontier with lineage ids (ancestry).
261
- const lineageIds = Array.isArray(artifact.lineageArtifactIds) ? artifact.lineageArtifactIds : [];
262
- if (lineageIds.length === 0 && nodes.length === 1) {
263
- // The start node has no ancestry — not an error, just a short chain.
264
- }
265
- for (const id of lineageIds) {
266
- if (typeof id === 'string' && id !== '') {
267
- queue.push(id);
268
- }
269
- }
270
- }
271
- level++;
272
- }
273
- return { ok: true, value: { nodes, complete: notes.length === 0, notes } };
274
- }
275
- /**
276
- * PRI-717: attempt to resolve a dangling lineage edge to the producer
277
- * task's CURRENT artifact. Only fires when the edge id follows the
278
- * producer convention AND that task still has a durable artifact of the
279
- * SAME id family; any other outcome keeps the fail-closed
280
- * `ancestor_pruned` handling in the caller.
281
- *
282
- * Review fix (rebind identity): the durable logical identity is
283
- * (sourceTaskId, artifactKind) — an evaluator task may carry BOTH a
284
- * `pi-art-…` principle row and a `pi-rule-…` rule row. The stale edge
285
- * names a `pi-art-` instance of the task, so only the CURRENT instance of
286
- * the SAME id family is a rebound candidate — never another kind's row
287
- * and never array order. `matches.length !== 1` (0 = no current instance
288
- * of this family, >1 = data anomaly against UNIQUE(source_task_id,
289
- * artifact_kind)) stays fail-closed, with the ambiguity reported back so
290
- * the caller's note says why — never a silent pick.
291
- *
292
- * The rebind result is cached under the STALE id so repeated edges to the
293
- * same superseded instance stay idempotent within one request (CP-18).
294
- */
295
- async tryReboundInstance(staleArtifactId) {
296
- const taskId = parseArtifactInstanceTaskId(staleArtifactId);
297
- if (taskId === null)
298
- return { ok: true, value: null };
299
- try {
300
- const candidates = await this.artifacts.listBySourceTaskId(taskId);
301
- const instancePrefix = `${ARTIFACT_ID_PREFIX}${taskId}-run_`;
302
- const matches = candidates.filter((candidate) => candidate.artifactId.startsWith(instancePrefix));
303
- if (matches.length !== 1) {
304
- return { ok: true, value: null, ...(matches.length > 1 ? { ambiguousCandidates: matches.length } : {}) };
305
- }
306
- const [resolved] = matches;
307
- if (resolved === undefined)
308
- return { ok: true, value: null };
309
- this.cache.set(staleArtifactId, resolved);
310
- this.emit({
311
- type: 'lineage_edge_rebound',
312
- staleArtifactId,
313
- resolvedArtifactId: resolved.artifactId,
314
- taskId,
315
- });
316
- return { ok: true, value: resolved };
317
- }
318
- catch (storeErr) {
319
- const err = { kind: 'store_failure', detail: storeErr instanceof Error ? storeErr.message : String(storeErr) };
320
- this.emit({ type: 'lineage_store_failure', detail: err.detail });
321
- return { ok: false, error: err };
322
- }
323
- }
324
- /** Cached artifact fetch. Returns `ok:false` on store failure or corruption. */
325
- async getArtifactCached(artifactId) {
326
- if (this.cache.has(artifactId)) {
327
- return { ok: true, value: this.cache.get(artifactId) ?? null };
328
- }
329
- try {
330
- const record = await this.artifacts.getArtifactById(artifactId);
331
- this.cache.set(artifactId, record);
332
- return { ok: true, value: record };
333
- }
334
- catch (storeErr) {
335
- const err = { kind: 'store_failure', detail: storeErr instanceof Error ? storeErr.message : String(storeErr) };
336
- this.emit({ type: 'lineage_store_failure', detail: err.detail });
337
- return { ok: false, error: err };
338
- }
339
- }
340
- /** Cached task fetch (two-hop). Returns `ok:false` only on reader failure (treated as store_failure). */
341
- async getTaskCached(taskId) {
342
- if (this.taskCache.has(taskId)) {
343
- return { ok: true, value: this.taskCache.get(taskId) ?? null };
344
- }
345
- try {
346
- const task = await this.tasks.getTaskById(taskId);
347
- this.taskCache.set(taskId, task);
348
- return { ok: true, value: task };
349
- }
350
- catch (readerErr) {
351
- const err = { kind: 'store_failure', detail: readerErr instanceof Error ? readerErr.message : String(readerErr) };
352
- this.emit({ type: 'lineage_store_failure', detail: err.detail });
353
- return { ok: false, error: err };
354
- }
355
- }
356
- }
357
- //# sourceMappingURL=candidate-lineage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"candidate-lineage.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/candidate-lineage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AA0E7D,gFAAgF;AAEhF,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,kBAAkB,GAAG,SAAS,CAAC;AACrC,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B;;;;;;;;GAQG;AACH,SAAS,2BAA2B,CAAC,UAAkB;IACrD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,SAAS,IAAI,kBAAkB,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtE,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC/B,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,GAAG,MAAM,GAAG,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,WAAoB;IACvC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACvF,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,gFAAgF;IAChF,IACE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,OAAO,CAAC,aAAa,KAAK,CAAC;WACnE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;WAC7E,oBAA0C,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;WACxE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;WAC1E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;WAC5D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;WACjE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,OAAO,CAAC,WAAW,KAAK,mBAAmB;WACpF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;WAC9E,OAAO,CAAC,aAAoC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EACpF,CAAC;QACD,uTAAuT;QACvT,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,OAAO,CAAC,UAA+B,EAAE,qFAAqF;YAC1I,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAgC,EAAE,8FAA8F;YAChJ,WAAW,EAAE,mBAAmB;YAChC,aAAa,EAAE,OAAO,CAAC,aAAkC,EAAE,8FAA8F;SAC1J,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gFAAgF;AAEhF,MAAM,OAAO,gBAAgB;IACV,SAAS,CAAoC;IAC7C,KAAK,CAAoB;IACzB,QAAQ,CAAS;IACjB,IAAI,CAAgC;IACrD,8EAA8E;IAC7D,KAAK,GAAyC,IAAI,GAAG,EAAE,CAAC;IACzE,4DAA4D;IAC3C,SAAS,GAA+E,IAAI,GAAG,EAAE,CAAC;IAEnH,YAAY,IAA0B;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,eAAuB;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,sBAAsB,CAC1B,eAAuB,EACvB,QAAgB;QAKhB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC;QAC7E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC;IAED,8EAA8E;IAE9E;;;;;;;;;;OAUG;IACK,KAAK,CAAC,YAAY,CACxB,eAAuB,EACvB,OAAoB;QAEpB,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,yEAAyE;QACzE,uEAAuE;QACvE,iEAAiE;QACjE,yEAAyE;QACzE,iCAAiC;QACjC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,wEAAwE;QACxE,0EAA0E;QAC1E,0CAA0C;QAC1C,MAAM,KAAK,GAAa,CAAC,eAAe,CAAC,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,mEAAmE;YACnE,sEAAsE;YACtE,mEAAmE;YACnE,oEAAoE;YACpE,sEAAsE;YACtE,wCAAwC;YACxC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,EAAE,aAAa,IAAI,CAAC,QAAQ,wBAAwB,KAAK,CAAC,MAAM,4BAA4B,EAAE,CAAC,CAAC;gBACrL,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,IAAI,eAAe,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAClJ,MAAM;YACR,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjC,IAAI,UAAU,KAAK,SAAS;oBAAE,MAAM;gBAEpC,mBAAmB;gBACnB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,UAAU,iCAAiC,EAAE,CAAC,CAAC;oBACpH,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;oBACzG,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAExB,2BAA2B;gBAC3B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAChE,IAAI,CAAC,cAAc,CAAC,EAAE;oBAAE,OAAO,cAAc,CAAC,CAAC,uCAAuC;gBACtF,IAAI,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC;gBACpC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,mEAAmE;oBACnE,8DAA8D;oBAC9D,oEAAoE;oBACpE,iEAAiE;oBACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBAC1D,IAAI,CAAC,OAAO,CAAC,EAAE;wBAAE,OAAO,OAAO,CAAC;oBAChC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;oBACzB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;wBACtB,KAAK,CAAC,IAAI,CAAC;4BACT,IAAI,EAAE,iBAAiB;4BACvB,UAAU;4BACV,MAAM,EAAE,OAAO,CAAC,mBAAmB,KAAK,SAAS;gCAC/C,CAAC,CAAC,qBAAqB,UAAU,8DAA8D,OAAO,CAAC,mBAAmB,4DAA4D;gCACtL,CAAC,CAAC,qBAAqB,UAAU,qBAAqB;yBACzD,CAAC,CAAC;wBACH,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;wBAC9G,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAAE,SAAS;gBACvD,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEzC,gFAAgF;gBAChF,IAAI,WAAoB,CAAC;gBACzB,IAAI,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,GAAG,GAAiB,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,UAAU,oBAAoB,EAAE,CAAC;oBACrI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,CAAC;oBACnH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;gBACnC,CAAC;gBAED,sEAAsE;gBACtE,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,IAAI,QAAQ,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;oBAC9E,MAAM,GAAG,GAAiB,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,UAAU,gCAAgC,EAAE,CAAC;oBACzI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC,CAAC;oBACjH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;gBACnC,CAAC;gBAED,8CAA8C;gBAC9C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACnE,IAAI,CAAC,UAAU,CAAC,EAAE;oBAAE,OAAO,UAAU,CAAC;gBACtC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC9B,IAAI,QAAgB,CAAC;gBACrB,IAAI,UAAyC,CAAC;gBAC9C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,QAAQ,GAAG,SAAS,CAAC;oBACrB,UAAU,GAAG,SAAS,CAAC;oBACvB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,QAAQ,CAAC,YAAY,gDAAgD,EAAE,CAAC,CAAC;oBACxI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,QAAQ,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;gBAChI,CAAC;qBAAM,CAAC;oBACN,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;oBACtB,UAAU,GAAI,oBAA0C,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBACzE,CAAC,CAAE,QAA8B;wBACjC,CAAC,CAAC,SAAS,CAAC;gBAChB,CAAC;gBAED,MAAM,IAAI,GAAgB;oBACxB,qEAAqE;oBACrE,qEAAqE;oBACrE,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,MAAM,EAAE,QAAQ,CAAC,YAAY;oBAC7B,QAAQ;oBACR,UAAU;oBACV,WAAW;oBACX,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;iBAClC,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEjB,+CAA+C;gBAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClD,qEAAqE;gBACvE,CAAC;gBACD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;oBAC5B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;wBACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACK,KAAK,CAAC,kBAAkB,CAC9B,eAAuB;QAKvB,MAAM,MAAM,GAAG,2BAA2B,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACnE,MAAM,cAAc,GAAG,GAAG,kBAAkB,GAAG,MAAM,OAAO,CAAC;YAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YAClG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3G,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;YAC3B,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,sBAAsB;gBAC5B,eAAe;gBACf,kBAAkB,EAAE,QAAQ,CAAC,UAAU;gBACvC,MAAM;aACP,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,MAAM,GAAG,GAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7H,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,gFAAgF;IACxE,KAAK,CAAC,iBAAiB,CAC7B,UAAkB;QAElB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,MAAM,GAAG,GAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7H,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,yGAAyG;IACjG,KAAK,CAAC,aAAa,CACzB,MAAc;QAEd,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,MAAM,GAAG,GAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAChI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;CACF"}