@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":"resolve-injection.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/resolve-injection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,eAAe,GAGhB,MAAM,4BAA4B,CAAC;AAEpC,sDAAsD;AACtD,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AA8BnD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAyB,EACzB,SAAuC,EACvC,IAA2C;IAE3C,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5C,6EAA6E;IAC7E,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,WAAW,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,GAAwC,EAAE,CAAC,CAAC;QAChE,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,WAAW;QACX,aAAa;QACb,WAAW;QACX,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IAEH,gEAAgE;IAChE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClG,CAAC;IACD,4EAA4E;IAC5E,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,cAAc,GAClB,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClG,CAAC;IACD,0DAA0D;IAC1D,IAAI,WAAW,GAAG,+BAA+B,EAAE,CAAC;QAClD,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,CAAC;IACvG,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACzD,CAAC"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Layer 1 — summary field reader (design §6.6 read-side convention).
3
- *
4
- * Pure logic only (Core vs Plugin boundary). Builds the `available` map that
5
- * `allocateContext` / `resolveInjection` consume, from a runner's loaded
6
- * predecessor contentJson (which carries the Layer 0 `summary` /
7
- * `predecessorSummary` envelope).
8
- *
9
- * Path convention (design §6.6):
10
- * `<stage>.summary.headline` → contentJson.summary.headline
11
- * `<stage>.summary.<key>` → contentJson.summary.fields[key]
12
- * `<stage>.predecessorSummary.headline` → contentJson.predecessorSummary.summary.headline
13
- * `<stage>.predecessorSummary.<key>` → contentJson.predecessorSummary.summary.fields[key]
14
- *
15
- * The leading `<stage>.` segment is a logical namespace (pain / dreamer /
16
- * philosopher / scribe / artificer / diagnosis); the reader does NOT look up
17
- * the stage by name — it resolves `summary.*` / `predecessorSummary.*` against
18
- * whatever predecessor contentJson the caller loaded. This is correct because
19
- * each runner's manifest only references paths whose stage maps to that
20
- * runner's actual loaded predecessor (e.g. dreamer's manifest references
21
- * pain.summary.* / diagnosis.summary.* which arrive via the diag_router
22
- * predecessor's summary + its forwarded predecessorSummary).
23
- *
24
- * rc-1 / rc-5: contentJson is `unknown`; all reads use `Object.hasOwn` and
25
- * typeof guards, never `as` casts.
26
- */
27
- /** Read a value nested under `summary` or `predecessorSummary` from contentJson. */
28
- export declare function readSummaryField(fieldPath: string, predecessorContentJson: unknown): unknown | undefined;
29
- /**
30
- * Build the `available` map for allocateContext/resolveInjection from the
31
- * manifest's declared paths and a single loaded predecessor contentJson.
32
- *
33
- * Paths not resolvable from this predecessor (including tier2 `raw.*` and
34
- * stages not represented in the loaded object) are simply omitted from the
35
- * map — allocateContext then records them in `absent`.
36
- */
37
- export declare function buildAvailableMap(manifestPaths: readonly string[], predecessorContentJson: unknown): ReadonlyMap<string, unknown>;
38
- //# sourceMappingURL=summary-field-reader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"summary-field-reader.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/summary-field-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAuCH,oFAAoF;AACpF,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,sBAAsB,EAAE,OAAO,GAC9B,OAAO,GAAG,SAAS,CA0BrB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,sBAAsB,EAAE,OAAO,GAC9B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAS9B"}
@@ -1,108 +0,0 @@
1
- /**
2
- * Layer 1 — summary field reader (design §6.6 read-side convention).
3
- *
4
- * Pure logic only (Core vs Plugin boundary). Builds the `available` map that
5
- * `allocateContext` / `resolveInjection` consume, from a runner's loaded
6
- * predecessor contentJson (which carries the Layer 0 `summary` /
7
- * `predecessorSummary` envelope).
8
- *
9
- * Path convention (design §6.6):
10
- * `<stage>.summary.headline` → contentJson.summary.headline
11
- * `<stage>.summary.<key>` → contentJson.summary.fields[key]
12
- * `<stage>.predecessorSummary.headline` → contentJson.predecessorSummary.summary.headline
13
- * `<stage>.predecessorSummary.<key>` → contentJson.predecessorSummary.summary.fields[key]
14
- *
15
- * The leading `<stage>.` segment is a logical namespace (pain / dreamer /
16
- * philosopher / scribe / artificer / diagnosis); the reader does NOT look up
17
- * the stage by name — it resolves `summary.*` / `predecessorSummary.*` against
18
- * whatever predecessor contentJson the caller loaded. This is correct because
19
- * each runner's manifest only references paths whose stage maps to that
20
- * runner's actual loaded predecessor (e.g. dreamer's manifest references
21
- * pain.summary.* / diagnosis.summary.* which arrive via the diag_router
22
- * predecessor's summary + its forwarded predecessorSummary).
23
- *
24
- * rc-1 / rc-5: contentJson is `unknown`; all reads use `Object.hasOwn` and
25
- * typeof guards, never `as` casts.
26
- */
27
- function isRecord(value) {
28
- return value !== null && typeof value === 'object' && !Array.isArray(value);
29
- }
30
- /** Read `headline` or `<key>` from contentJson.summary. */
31
- function readFromSummary(contentJson, subPath) {
32
- if (!isRecord(contentJson) || !Object.hasOwn(contentJson, 'summary'))
33
- return undefined;
34
- const { summary } = contentJson;
35
- if (!isRecord(summary))
36
- return undefined;
37
- // subPath is a bare field key (e.g. 'riskLevel') or 'headline'. The summary
38
- // envelope (Layer 0 ArtifactSummary) stores structured fields on `summary.fields`
39
- // and headline on `summary.headline`. Manifest paths use `<stage>.summary.<key>`
40
- // WITHOUT a `fields.` prefix (design §6.6), so read `fields.<subPath>` first,
41
- // then fall back to `summary.<subPath>` (covers headline + any flat values).
42
- if (subPath === 'headline') {
43
- return Object.hasOwn(summary, 'headline') ? summary.headline : undefined;
44
- }
45
- const fields = Object.hasOwn(summary, 'fields') ? summary.fields : undefined;
46
- if (isRecord(fields) && Object.hasOwn(fields, subPath)) {
47
- return fields[subPath];
48
- }
49
- if (Object.hasOwn(summary, subPath)) {
50
- return summary[subPath];
51
- }
52
- return undefined;
53
- }
54
- /** Read `headline` or `<key>` from contentJson.predecessorSummary.summary. */
55
- function readFromPredecessorSummary(contentJson, subPath) {
56
- if (!isRecord(contentJson) || !Object.hasOwn(contentJson, 'predecessorSummary'))
57
- return undefined;
58
- const { predecessorSummary: pred } = contentJson;
59
- if (!isRecord(pred) || !Object.hasOwn(pred, 'summary'))
60
- return undefined;
61
- // Delegate to readFromSummary on the predecessorSummary's own summary.
62
- return readFromSummary(pred, subPath);
63
- }
64
- /** Read a value nested under `summary` or `predecessorSummary` from contentJson. */
65
- export function readSummaryField(fieldPath, predecessorContentJson) {
66
- // Strip the leading `<stage>.` namespace segment(s). A path like
67
- // `pain.summary.rootSymptom` becomes `summary.rootSymptom`; a path like
68
- // `philosopher.predecessorSummary.betterDecision` becomes
69
- // `predecessorSummary.betterDecision`. The namespace can be multi-segment
70
- // (e.g. `dreamer.raw.candidates`), so strip everything up to and including
71
- // the first occurrence of `summary.` or `predecessorSummary.` or `raw.`.
72
- const summaryIdx = fieldPath.indexOf('summary.');
73
- const predIdx = fieldPath.indexOf('predecessorSummary.');
74
- const rawIdx = fieldPath.indexOf('raw.');
75
- // tier2 raw.* paths are NOT resolvable at Layer 1 (they need Layer 2
76
- // CandidateLineage). Return undefined → the path enters `absent`.
77
- if (rawIdx >= 0 && (summaryIdx < 0 || rawIdx < summaryIdx) && (predIdx < 0 || rawIdx < predIdx)) {
78
- return undefined;
79
- }
80
- if (predIdx >= 0 && (summaryIdx < 0 || predIdx < summaryIdx)) {
81
- const subPath = fieldPath.slice(predIdx + 'predecessorSummary.'.length);
82
- return readFromPredecessorSummary(predecessorContentJson, subPath);
83
- }
84
- if (summaryIdx >= 0) {
85
- const subPath = fieldPath.slice(summaryIdx + 'summary.'.length);
86
- return readFromSummary(predecessorContentJson, subPath);
87
- }
88
- return undefined;
89
- }
90
- /**
91
- * Build the `available` map for allocateContext/resolveInjection from the
92
- * manifest's declared paths and a single loaded predecessor contentJson.
93
- *
94
- * Paths not resolvable from this predecessor (including tier2 `raw.*` and
95
- * stages not represented in the loaded object) are simply omitted from the
96
- * map — allocateContext then records them in `absent`.
97
- */
98
- export function buildAvailableMap(manifestPaths, predecessorContentJson) {
99
- const map = new Map();
100
- for (const path of manifestPaths) {
101
- const value = readSummaryField(path, predecessorContentJson);
102
- if (value !== undefined) {
103
- map.set(path, value);
104
- }
105
- }
106
- return map;
107
- }
108
- //# sourceMappingURL=summary-field-reader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"summary-field-reader.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/summary-field-reader.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=empathy-observer.real-e2e.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empathy-observer.real-e2e.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.ts"],"names":[],"mappings":""}
@@ -1,74 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { EmpathyObserver } from '../empathy-observer.js';
3
- import { PiAiRuntimeAdapter } from '../../adapter/pi-ai-runtime-adapter.js';
4
- import { TestDoubleRuntimeAdapter } from '../../adapter/test-double-runtime-adapter.js';
5
- import { getLlmE2eConfig } from '../../__tests__/fixtures/llm-e2e-config.js';
6
- const llmConfig = getLlmE2eConfig();
7
- // Local LM Studio probe — only attempted when LLM_E2E_ENABLED=true
8
- const LM_STUDIO_BASE_URL = process.env.PD_EMPATHY_BASE_URL || 'http://localhost:12341/v1';
9
- describe('EmpathyObserver Real E2E & Mock Fallback', () => {
10
- it('runs E2E against local LM Studio if available, otherwise falls back to stable mock validation', async () => {
11
- const apiKeyEnv = 'LM_STUDIO_API_KEY';
12
- // Temporary set key if absent
13
- if (!process.env[apiKeyEnv]) {
14
- process.env[apiKeyEnv] = 'lm-studio-dummy-key';
15
- }
16
- // Initialize with stable mock adapter to satisfy ESLint constraints
17
- let adapter = new TestDoubleRuntimeAdapter({
18
- onFetchOutput: (runId) => ({
19
- runId,
20
- payload: {
21
- damageDetected: true,
22
- severity: 'moderate',
23
- confidence: 0.85,
24
- reason: 'Frustration detected via stable mock fallback',
25
- },
26
- }),
27
- });
28
- let isRealLlm = false;
29
- // Only probe LM Studio when LLM_E2E_ENABLED=true (same gate as other real-LLM tests)
30
- if (llmConfig) {
31
- try {
32
- const response = await fetch(`${LM_STUDIO_BASE_URL}/models`, { method: 'GET', signal: AbortSignal.timeout(2000) });
33
- if (response.ok) {
34
- const provider = process.env.PD_EMPATHY_PROVIDER || 'lm-studio';
35
- const model = process.env.PD_EMPATHY_MODEL || 'qwen3.6-27b-mtp';
36
- adapter = new PiAiRuntimeAdapter({
37
- provider,
38
- model,
39
- apiKeyEnv,
40
- baseUrl: LM_STUDIO_BASE_URL,
41
- timeoutMs: 60000,
42
- });
43
- isRealLlm = true;
44
- console.log(`[E2E Test] LM Studio detected at ${LM_STUDIO_BASE_URL}. Running E2E test with real model: ${model}`);
45
- }
46
- else {
47
- console.log(`[E2E Test] LM Studio not running at ${LM_STUDIO_BASE_URL}. Falling back to stable mock validation.`);
48
- }
49
- }
50
- catch {
51
- console.log(`[E2E Test] LM Studio not running at ${LM_STUDIO_BASE_URL}. Falling back to stable mock validation.`);
52
- }
53
- }
54
- else {
55
- console.log('[E2E Test] LLM_E2E_ENABLED is not true. Skipping LM Studio probe, using stable mock.');
56
- }
57
- const observer = new EmpathyObserver({ runtimeAdapter: adapter });
58
- const result = await observer.run({ userMessage: 'I am extremely frustrated! This is not working!' });
59
- // Assert structured schema shape and type bounds to tolerate LLM output variance
60
- expect(typeof result.damageDetected).toBe('boolean');
61
- expect(['mild', 'moderate', 'severe']).toContain(result.severity);
62
- expect(result.confidence).toBeGreaterThanOrEqual(0);
63
- expect(result.confidence).toBeLessThanOrEqual(1);
64
- expect(typeof result.reason).toBe('string');
65
- if (isRealLlm) {
66
- console.log(`[E2E Test] Real LLM result:`, JSON.stringify(result, null, 2));
67
- }
68
- else {
69
- expect(result.damageDetected).toBe(true);
70
- expect(result.reason).toBe('Frustration detected via stable mock fallback');
71
- }
72
- }, 120000);
73
- });
74
- //# sourceMappingURL=empathy-observer.real-e2e.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empathy-observer.real-e2e.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=empathy-observer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empathy-observer.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.test.ts"],"names":[],"mappings":""}
@@ -1,85 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { EmpathyObserver } from '../empathy-observer.js';
3
- import { TestDoubleRuntimeAdapter } from '../../adapter/test-double-runtime-adapter.js';
4
- describe('EmpathyObserver', () => {
5
- it('correctly builds prompt (role declaration moved to SYSTEM_PROMPT, PRI-633)', () => {
6
- const prompt = EmpathyObserver.buildPrompt('I am frustrated');
7
- expect(prompt).not.toContain('You are an empathy observer.');
8
- expect(EmpathyObserver.SYSTEM_PROMPT).toBe('You are an empathy observer.');
9
- expect(prompt).toContain('I am frustrated');
10
- });
11
- it('runs successfully with valid output', async () => {
12
- const adapter = new TestDoubleRuntimeAdapter({
13
- onFetchOutput: (runId) => ({
14
- runId,
15
- payload: {
16
- damageDetected: true,
17
- severity: 'moderate',
18
- confidence: 0.9,
19
- reason: 'Frustration detected',
20
- },
21
- }),
22
- });
23
- const observer = new EmpathyObserver({ runtimeAdapter: adapter });
24
- const result = await observer.run({ userMessage: 'I am frustrated' });
25
- expect(result.damageDetected).toBe(true);
26
- expect(result.severity).toBe('moderate');
27
- expect(result.confidence).toBe(0.9);
28
- expect(result.reason).toBe('Frustration detected');
29
- });
30
- it('throws error when output schema validation fails', async () => {
31
- const adapter = new TestDoubleRuntimeAdapter({
32
- onFetchOutput: (runId) => ({
33
- runId,
34
- payload: {
35
- damageDetected: 'not-a-boolean', // Should fail schema check
36
- severity: 'unknown-severity',
37
- confidence: 1.5,
38
- reason: 123,
39
- },
40
- }),
41
- });
42
- const observer = new EmpathyObserver({ runtimeAdapter: adapter });
43
- await expect(observer.run({ userMessage: 'I am frustrated' })).rejects.toThrow('EmpathyObserver output validation failed');
44
- });
45
- it('throws error when adapter run fails', async () => {
46
- const adapter = new TestDoubleRuntimeAdapter({
47
- onPollRun: (runId) => ({
48
- runId,
49
- status: 'failed',
50
- startedAt: new Date().toISOString(),
51
- endedAt: new Date().toISOString(),
52
- reason: 'LLM crashed',
53
- }),
54
- });
55
- const observer = new EmpathyObserver({ runtimeAdapter: adapter });
56
- await expect(observer.run({ userMessage: 'I am frustrated' })).rejects.toThrow('EmpathyObserver run failed: failed');
57
- });
58
- it('throws error when run times out', async () => {
59
- const adapter = new TestDoubleRuntimeAdapter({
60
- onPollRun: (runId) => ({
61
- runId,
62
- status: 'running',
63
- startedAt: new Date().toISOString(),
64
- }),
65
- });
66
- const observer = new EmpathyObserver({ runtimeAdapter: adapter }, { timeoutMs: 50 });
67
- await expect(observer.run({ userMessage: 'I am frustrated' })).rejects.toThrow('EmpathyObserver run timed out after 50ms');
68
- });
69
- it('throws error when confidence is out of range', async () => {
70
- const adapter = new TestDoubleRuntimeAdapter({
71
- onFetchOutput: (runId) => ({
72
- runId,
73
- payload: {
74
- damageDetected: true,
75
- severity: 'moderate',
76
- confidence: 5.0,
77
- reason: 'Out of range confidence',
78
- },
79
- }),
80
- });
81
- const observer = new EmpathyObserver({ runtimeAdapter: adapter });
82
- await expect(observer.run({ userMessage: 'I am frustrated' })).rejects.toThrow('EmpathyObserver output validation failed');
83
- });
84
- });
85
- //# sourceMappingURL=empathy-observer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empathy-observer.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.test.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import { type Static } from '@sinclair/typebox';
2
- import type { PDRuntimeAdapter } from '../runtime-protocol.js';
3
- export declare const EmpathyObserverInputSchema: import("@sinclair/typebox").TObject<{
4
- userMessage: import("@sinclair/typebox").TString;
5
- }>;
6
- export type EmpathyObserverInput = Static<typeof EmpathyObserverInputSchema>;
7
- export declare const EmpathyObserverOutputV1Schema: import("@sinclair/typebox").TObject<{
8
- damageDetected: import("@sinclair/typebox").TBoolean;
9
- severity: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"mild">, import("@sinclair/typebox").TLiteral<"moderate">, import("@sinclair/typebox").TLiteral<"severe">]>;
10
- confidence: import("@sinclair/typebox").TNumber;
11
- reason: import("@sinclair/typebox").TString;
12
- }>;
13
- export type EmpathyObserverOutputV1 = Static<typeof EmpathyObserverOutputV1Schema>;
14
- export interface EmpathyObserverDeps {
15
- readonly runtimeAdapter: PDRuntimeAdapter;
16
- }
17
- export interface EmpathyObserverOptions {
18
- readonly timeoutMs?: number;
19
- readonly agentId?: string;
20
- }
21
- export declare class EmpathyObserver {
22
- /**
23
- * PRI-633: base-layer system prompt (role declaration). Previously the
24
- * first line of buildPrompt's message; now delivered via the system channel.
25
- */
26
- static readonly SYSTEM_PROMPT = "You are an empathy observer.";
27
- private readonly runtimeAdapter;
28
- private readonly timeoutMs;
29
- private readonly agentId;
30
- constructor(deps: EmpathyObserverDeps, options?: EmpathyObserverOptions);
31
- /**
32
- * Builds the prompt exactly replicating the legacy empathyObserverWorkflowSpec
33
- * (PRI-633: the role declaration moved to SYSTEM_PROMPT / the system channel).
34
- */
35
- static buildPrompt(userMessage: string): string;
36
- /**
37
- * Run the simplified one-shot Empathy Observer.
38
- */
39
- run(input: EmpathyObserverInput): Promise<EmpathyObserverOutputV1>;
40
- }
41
- //# sourceMappingURL=empathy-observer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empathy-observer.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/observer/empathy-observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,eAAO,MAAM,0BAA0B;;EAErC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE7E,eAAO,MAAM,6BAA6B;;;;;EASxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAInF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC;CAC3C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,aAAa,kCAAkC;IAE/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,YAAY,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,sBAAsB,EAItE;IAED;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM9C;IAED;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmEvE;CACF"}
@@ -1,104 +0,0 @@
1
- import { Type } from '@sinclair/typebox';
2
- // ── Schemas ──────────────────────────────────────────────────────────────────
3
- export const EmpathyObserverInputSchema = Type.Object({
4
- userMessage: Type.String({ minLength: 1 }),
5
- });
6
- export const EmpathyObserverOutputV1Schema = Type.Object({
7
- damageDetected: Type.Boolean(),
8
- severity: Type.Union([
9
- Type.Literal('mild'),
10
- Type.Literal('moderate'),
11
- Type.Literal('severe'),
12
- ]),
13
- confidence: Type.Number({ minimum: 0, maximum: 1 }),
14
- reason: Type.String(),
15
- });
16
- export class EmpathyObserver {
17
- /**
18
- * PRI-633: base-layer system prompt (role declaration). Previously the
19
- * first line of buildPrompt's message; now delivered via the system channel.
20
- */
21
- static SYSTEM_PROMPT = 'You are an empathy observer.';
22
- runtimeAdapter;
23
- timeoutMs;
24
- agentId;
25
- constructor(deps, options) {
26
- this.runtimeAdapter = deps.runtimeAdapter;
27
- this.timeoutMs = options?.timeoutMs ?? 120_000;
28
- this.agentId = options?.agentId ?? 'empathy-observer';
29
- }
30
- /**
31
- * Builds the prompt exactly replicating the legacy empathyObserverWorkflowSpec
32
- * (PRI-633: the role declaration moved to SYSTEM_PROMPT / the system channel).
33
- */
34
- static buildPrompt(userMessage) {
35
- return [
36
- 'Analyze ONLY the user message and return strict JSON (no markdown):',
37
- '{"damageDetected": boolean, "severity": "mild|moderate|severe", "confidence": number, "reason": string}',
38
- `User message: ${JSON.stringify(userMessage.trim())}`,
39
- ].join('\n');
40
- }
41
- /**
42
- * Run the simplified one-shot Empathy Observer.
43
- */
44
- async run(input) {
45
- const prompt = EmpathyObserver.buildPrompt(input.userMessage);
46
- // One-shot start run
47
- const runHandle = await this.runtimeAdapter.startRun({
48
- agentSpec: { agentId: this.agentId, schemaVersion: 'v1' },
49
- taskRef: { taskId: `emp_obs_${Date.now()}` },
50
- inputPayload: prompt,
51
- contextItems: [],
52
- outputSchemaRef: 'empathy-observer-output-v1',
53
- timeoutMs: this.timeoutMs,
54
- systemPrompt: EmpathyObserver.SYSTEM_PROMPT,
55
- });
56
- // Poll until terminal
57
- const deadline = Date.now() + this.timeoutMs;
58
- const pollIntervalMs = 500;
59
- let terminal = false;
60
- while (Date.now() < deadline) {
61
- const status = await this.runtimeAdapter.pollRun(runHandle.runId);
62
- if (status.status === 'succeeded') {
63
- terminal = true;
64
- break;
65
- }
66
- if (status.status === 'failed' || status.status === 'timed_out' || status.status === 'cancelled') {
67
- throw new Error(`EmpathyObserver run failed: ${status.status} | reason: ${status.reason ?? 'unknown'}`);
68
- }
69
- await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
70
- }
71
- if (!terminal) {
72
- let cancelReason = '';
73
- try {
74
- await this.runtimeAdapter.cancelRun(runHandle.runId);
75
- }
76
- catch (cancelErr) {
77
- cancelReason = ` | cancelFailed: ${String(cancelErr)}`;
78
- }
79
- throw new Error(`EmpathyObserver run timed out after ${this.timeoutMs}ms${cancelReason}`);
80
- }
81
- // Fetch and parse output
82
- const outputResult = await this.runtimeAdapter.fetchOutput(runHandle.runId);
83
- if (!outputResult?.payload) {
84
- throw new Error(`EmpathyObserver run yielded empty output`);
85
- }
86
- const payload = outputResult.payload;
87
- // Strict runtime schema verification
88
- if (typeof payload.damageDetected !== 'boolean' ||
89
- !['mild', 'moderate', 'severe'].includes(payload.severity) ||
90
- typeof payload.confidence !== 'number' ||
91
- payload.confidence < 0 ||
92
- payload.confidence > 1 ||
93
- typeof payload.reason !== 'string') {
94
- throw new Error(`EmpathyObserver output validation failed: ${JSON.stringify(payload).substring(0, 200)}`);
95
- }
96
- return {
97
- damageDetected: payload.damageDetected,
98
- severity: payload.severity,
99
- confidence: payload.confidence,
100
- reason: payload.reason,
101
- };
102
- }
103
- }
104
- //# sourceMappingURL=empathy-observer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empathy-observer.js","sourceRoot":"","sources":["../../../src/runtime-v2/observer/empathy-observer.ts"],"names":[],"mappings":"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"}