create-principles-disciple 1.92.0 → 1.94.0

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 (335) hide show
  1. package/console/dist/server/config/AuthConfig.js +6 -0
  2. package/console/dist/server/config/pd-config-store.d.ts +7 -1
  3. package/console/dist/server/config/pd-config-store.js +11 -1
  4. package/console/dist/server/index.js +41 -22
  5. package/console/dist/server/models/ApprovalsConsoleModel.js +4 -12
  6. package/console/dist/server/models/ApprovalsGroupedConsoleModel.js +6 -3
  7. package/console/dist/server/models/ConsoleLifecycleDatasource.js +1 -1
  8. package/console/dist/server/routes/activations.js +4 -0
  9. package/console/dist/server/routes/approvals.js +24 -4
  10. package/console/dist/server/routes/feedback-reports.js +7 -5
  11. package/console/dist/server/routes/lifecycle.js +6 -1
  12. package/console/dist/server/routes/principles.js +10 -2
  13. package/console/dist/server/routes/workspaces.js +4 -0
  14. package/console/dist/ui/components/ui/charts.js +4 -1
  15. package/console/dist/ui/components/ui/markdown.js +9 -5
  16. package/console/dist/ui/utils/enum-labels.js +4 -1
  17. package/console/dist/web/assets/app.js +5 -2
  18. package/core/dist/index.d.ts +2 -3
  19. package/core/dist/index.d.ts.map +1 -1
  20. package/core/dist/index.js +1 -3
  21. package/core/dist/index.js.map +1 -1
  22. package/core/dist/pain-signal.d.ts +11 -71
  23. package/core/dist/pain-signal.d.ts.map +1 -1
  24. package/core/dist/pain-signal.js +10 -120
  25. package/core/dist/pain-signal.js.map +1 -1
  26. package/core/dist/principle-tree-ledger.d.ts +4 -87
  27. package/core/dist/principle-tree-ledger.d.ts.map +1 -1
  28. package/core/dist/principle-tree-ledger.js +51 -148
  29. package/core/dist/principle-tree-ledger.js.map +1 -1
  30. package/core/dist/prompt-builder/__tests__/model-config.test.d.ts +2 -0
  31. package/core/dist/prompt-builder/__tests__/model-config.test.d.ts.map +1 -0
  32. package/core/dist/prompt-builder/__tests__/model-config.test.js +158 -0
  33. package/core/dist/prompt-builder/__tests__/model-config.test.js.map +1 -0
  34. package/core/dist/prompt-builder/__tests__/xml-escape.test.d.ts +2 -0
  35. package/core/dist/prompt-builder/__tests__/xml-escape.test.d.ts.map +1 -0
  36. package/core/dist/prompt-builder/__tests__/xml-escape.test.js +42 -0
  37. package/core/dist/prompt-builder/__tests__/xml-escape.test.js.map +1 -0
  38. package/core/dist/prompt-builder/index.d.ts +3 -0
  39. package/core/dist/prompt-builder/index.d.ts.map +1 -1
  40. package/core/dist/prompt-builder/index.js +2 -0
  41. package/core/dist/prompt-builder/index.js.map +1 -1
  42. package/core/dist/prompt-builder/model-config.d.ts +42 -0
  43. package/core/dist/prompt-builder/model-config.d.ts.map +1 -0
  44. package/core/dist/prompt-builder/model-config.js +84 -0
  45. package/core/dist/prompt-builder/model-config.js.map +1 -0
  46. package/core/dist/prompt-builder/xml-escape.d.ts +12 -0
  47. package/core/dist/prompt-builder/xml-escape.d.ts.map +1 -0
  48. package/core/dist/prompt-builder/xml-escape.js +19 -0
  49. package/core/dist/prompt-builder/xml-escape.js.map +1 -0
  50. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js +265 -20
  51. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  52. package/core/dist/runtime-v2/__tests__/barrel-io-cleanup.test.d.ts +12 -0
  53. package/core/dist/runtime-v2/__tests__/barrel-io-cleanup.test.d.ts.map +1 -0
  54. package/core/dist/runtime-v2/__tests__/barrel-io-cleanup.test.js +46 -0
  55. package/core/dist/runtime-v2/__tests__/barrel-io-cleanup.test.js.map +1 -0
  56. package/core/dist/runtime-v2/__tests__/io-deletion.test.d.ts +12 -0
  57. package/core/dist/runtime-v2/__tests__/io-deletion.test.d.ts.map +1 -0
  58. package/core/dist/runtime-v2/__tests__/io-deletion.test.js +92 -0
  59. package/core/dist/runtime-v2/__tests__/io-deletion.test.js.map +1 -0
  60. package/core/dist/runtime-v2/__tests__/ledger-codec.test.d.ts +2 -0
  61. package/core/dist/runtime-v2/__tests__/ledger-codec.test.d.ts.map +1 -0
  62. package/core/dist/runtime-v2/__tests__/ledger-codec.test.js +429 -0
  63. package/core/dist/runtime-v2/__tests__/ledger-codec.test.js.map +1 -0
  64. package/core/dist/runtime-v2/__tests__/ledger-store.test.d.ts +2 -0
  65. package/core/dist/runtime-v2/__tests__/ledger-store.test.d.ts.map +1 -0
  66. package/core/dist/runtime-v2/__tests__/ledger-store.test.js +65 -0
  67. package/core/dist/runtime-v2/__tests__/ledger-store.test.js.map +1 -0
  68. package/core/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.d.ts +2 -0
  69. package/core/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.d.ts.map +1 -0
  70. package/core/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js +395 -0
  71. package/core/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js.map +1 -0
  72. package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js +146 -0
  73. package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js.map +1 -1
  74. package/core/dist/runtime-v2/__tests__/pain-signal-unification.test.d.ts +2 -0
  75. package/core/dist/runtime-v2/__tests__/pain-signal-unification.test.d.ts.map +1 -0
  76. package/core/dist/runtime-v2/__tests__/pain-signal-unification.test.js +150 -0
  77. package/core/dist/runtime-v2/__tests__/pain-signal-unification.test.js.map +1 -0
  78. package/core/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.js +199 -0
  79. package/core/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.js.map +1 -1
  80. package/core/dist/runtime-v2/bridge-result-shaper.d.ts +53 -0
  81. package/core/dist/runtime-v2/bridge-result-shaper.d.ts.map +1 -0
  82. package/core/dist/runtime-v2/bridge-result-shaper.js +117 -0
  83. package/core/dist/runtime-v2/bridge-result-shaper.js.map +1 -0
  84. package/core/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.d.ts +13 -0
  85. package/core/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.d.ts.map +1 -0
  86. package/core/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.js +111 -0
  87. package/core/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.js.map +1 -0
  88. package/core/dist/runtime-v2/detection/detection-funnel-policy.d.ts +103 -0
  89. package/core/dist/runtime-v2/detection/detection-funnel-policy.d.ts.map +1 -0
  90. package/core/dist/runtime-v2/detection/detection-funnel-policy.js +135 -0
  91. package/core/dist/runtime-v2/detection/detection-funnel-policy.js.map +1 -0
  92. package/core/dist/runtime-v2/detection/index.d.ts +10 -0
  93. package/core/dist/runtime-v2/detection/index.d.ts.map +1 -0
  94. package/core/dist/runtime-v2/detection/index.js +9 -0
  95. package/core/dist/runtime-v2/detection/index.js.map +1 -0
  96. package/core/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js +156 -0
  97. package/core/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js.map +1 -1
  98. package/core/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.d.ts +12 -0
  99. package/core/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.d.ts.map +1 -0
  100. package/core/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js +181 -0
  101. package/core/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js.map +1 -0
  102. package/core/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js +104 -1
  103. package/core/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js.map +1 -1
  104. package/core/dist/runtime-v2/evidence-triage/index.d.ts +3 -0
  105. package/core/dist/runtime-v2/evidence-triage/index.d.ts.map +1 -1
  106. package/core/dist/runtime-v2/evidence-triage/index.js +3 -0
  107. package/core/dist/runtime-v2/evidence-triage/index.js.map +1 -1
  108. package/core/dist/runtime-v2/evidence-triage/observation-resolver.d.ts +128 -0
  109. package/core/dist/runtime-v2/evidence-triage/observation-resolver.d.ts.map +1 -0
  110. package/core/dist/runtime-v2/evidence-triage/observation-resolver.js +203 -0
  111. package/core/dist/runtime-v2/evidence-triage/observation-resolver.js.map +1 -0
  112. package/core/dist/runtime-v2/evidence-triage/triage-policy.d.ts +4 -0
  113. package/core/dist/runtime-v2/evidence-triage/triage-policy.d.ts.map +1 -1
  114. package/core/dist/runtime-v2/evidence-triage/triage-policy.js +66 -9
  115. package/core/dist/runtime-v2/evidence-triage/triage-policy.js.map +1 -1
  116. package/core/dist/runtime-v2/evidence-triage/types.d.ts +14 -0
  117. package/core/dist/runtime-v2/evidence-triage/types.d.ts.map +1 -1
  118. package/core/dist/runtime-v2/evidence-triage/types.js.map +1 -1
  119. package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +33 -4
  120. package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
  121. package/core/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  122. package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js +9 -2
  123. package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  124. package/core/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.d.ts +15 -0
  125. package/core/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.d.ts.map +1 -0
  126. package/core/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.js +450 -0
  127. package/core/dist/runtime-v2/feedback/__tests__/redact-sensitive.test.js.map +1 -0
  128. package/core/dist/runtime-v2/feedback/__tests__/render-github-url.test.d.ts +13 -0
  129. package/core/dist/runtime-v2/feedback/__tests__/render-github-url.test.d.ts.map +1 -0
  130. package/core/dist/runtime-v2/feedback/__tests__/render-github-url.test.js +243 -0
  131. package/core/dist/runtime-v2/feedback/__tests__/render-github-url.test.js.map +1 -0
  132. package/core/dist/runtime-v2/feedback/__tests__/safe-stringify.test.d.ts +12 -0
  133. package/core/dist/runtime-v2/feedback/__tests__/safe-stringify.test.d.ts.map +1 -0
  134. package/core/dist/runtime-v2/feedback/__tests__/safe-stringify.test.js +172 -0
  135. package/core/dist/runtime-v2/feedback/__tests__/safe-stringify.test.js.map +1 -0
  136. package/core/dist/runtime-v2/index.d.ts +9 -6
  137. package/core/dist/runtime-v2/index.d.ts.map +1 -1
  138. package/core/dist/runtime-v2/index.js +8 -4
  139. package/core/dist/runtime-v2/index.js.map +1 -1
  140. package/core/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.d.ts +2 -0
  141. package/core/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.d.ts.map +1 -0
  142. package/core/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.js +306 -0
  143. package/core/dist/runtime-v2/internalization/__tests__/c2-live-runner-chain.test.js.map +1 -0
  144. package/core/dist/runtime-v2/internalization/index.d.ts +0 -16
  145. package/core/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  146. package/core/dist/runtime-v2/internalization/index.js +0 -8
  147. package/core/dist/runtime-v2/internalization/index.js.map +1 -1
  148. package/core/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.d.ts +15 -0
  149. package/core/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.d.ts.map +1 -0
  150. package/core/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.js +179 -0
  151. package/core/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.js.map +1 -0
  152. package/core/dist/runtime-v2/pain-gate/index.d.ts +10 -0
  153. package/core/dist/runtime-v2/pain-gate/index.d.ts.map +1 -0
  154. package/core/dist/runtime-v2/pain-gate/index.js +9 -0
  155. package/core/dist/runtime-v2/pain-gate/index.js.map +1 -0
  156. package/core/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.d.ts +121 -0
  157. package/core/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.d.ts.map +1 -0
  158. package/core/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.js +157 -0
  159. package/core/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.js.map +1 -0
  160. package/core/dist/runtime-v2/pain-signal-bridge.d.ts.map +1 -1
  161. package/core/dist/runtime-v2/pain-signal-bridge.js +14 -88
  162. package/core/dist/runtime-v2/pain-signal-bridge.js.map +1 -1
  163. package/core/dist/runtime-v2/pain-signal-observability.d.ts.map +1 -1
  164. package/core/dist/runtime-v2/pain-signal-observability.js +15 -5
  165. package/core/dist/runtime-v2/pain-signal-observability.js.map +1 -1
  166. package/core/dist/runtime-v2/principle-tree/ledger-codec.d.ts +30 -0
  167. package/core/dist/runtime-v2/principle-tree/ledger-codec.d.ts.map +1 -0
  168. package/core/dist/runtime-v2/principle-tree/ledger-codec.js +154 -0
  169. package/core/dist/runtime-v2/principle-tree/ledger-codec.js.map +1 -0
  170. package/core/dist/runtime-v2/types/event-types.d.ts +0 -27
  171. package/core/dist/runtime-v2/types/event-types.d.ts.map +1 -1
  172. package/core/dist/runtime-v2/types/event-types.js +2 -17
  173. package/core/dist/runtime-v2/types/event-types.js.map +1 -1
  174. package/core/dist/runtime-v2/types/index.d.ts +4 -2
  175. package/core/dist/runtime-v2/types/index.d.ts.map +1 -1
  176. package/core/dist/runtime-v2/types/index.js +4 -1
  177. package/core/dist/runtime-v2/types/index.js.map +1 -1
  178. package/core/dist/runtime-v2/types/ledger-store.d.ts +101 -0
  179. package/core/dist/runtime-v2/types/ledger-store.d.ts.map +1 -0
  180. package/core/dist/runtime-v2/types/ledger-store.js +15 -0
  181. package/core/dist/runtime-v2/types/ledger-store.js.map +1 -0
  182. package/core/dist/runtime-v2/types/pain-signal.d.ts +7 -5
  183. package/core/dist/runtime-v2/types/pain-signal.d.ts.map +1 -1
  184. package/core/dist/runtime-v2/types/pain-signal.js +25 -5
  185. package/core/dist/runtime-v2/types/pain-signal.js.map +1 -1
  186. package/core/package.json +3 -3
  187. package/dist/installer.d.ts.map +1 -1
  188. package/dist/installer.js +9 -3
  189. package/dist/installer.js.map +1 -1
  190. package/dist/mvp-config.d.ts +0 -10
  191. package/dist/mvp-config.d.ts.map +1 -1
  192. package/dist/mvp-config.js +0 -64
  193. package/dist/mvp-config.js.map +1 -1
  194. package/dist/utils/env.d.ts.map +1 -1
  195. package/dist/utils/env.js +10 -4
  196. package/dist/utils/env.js.map +1 -1
  197. package/package.json +1 -1
  198. package/pd-cli/dist/commands/__tests__/legacy-cleanup.test.js +11 -3
  199. package/pd-cli/dist/commands/__tests__/legacy-cleanup.test.js.map +1 -1
  200. package/pd-cli/dist/commands/candidate.d.ts.map +1 -1
  201. package/pd-cli/dist/commands/candidate.js +2 -1
  202. package/pd-cli/dist/commands/candidate.js.map +1 -1
  203. package/pd-cli/dist/commands/health.d.ts.map +1 -1
  204. package/pd-cli/dist/commands/health.js +2 -1
  205. package/pd-cli/dist/commands/health.js.map +1 -1
  206. package/pd-cli/dist/commands/mvp-smoke.js +1 -1
  207. package/pd-cli/dist/commands/mvp-smoke.js.map +1 -1
  208. package/pd-cli/dist/commands/rulecode.js +1 -1
  209. package/pd-cli/dist/commands/rulecode.js.map +1 -1
  210. package/pd-cli/dist/commands/runtime-canary.d.ts.map +1 -1
  211. package/pd-cli/dist/commands/runtime-canary.js +10 -11
  212. package/pd-cli/dist/commands/runtime-canary.js.map +1 -1
  213. package/pd-cli/dist/commands/runtime-internalization-integrity.d.ts.map +1 -1
  214. package/pd-cli/dist/commands/runtime-internalization-integrity.js +3 -1
  215. package/pd-cli/dist/commands/runtime-internalization-integrity.js.map +1 -1
  216. package/pd-cli/dist/commands/runtime-internalization-queue.d.ts.map +1 -1
  217. package/pd-cli/dist/commands/runtime-internalization-queue.js +13 -16
  218. package/pd-cli/dist/commands/runtime-internalization-queue.js.map +1 -1
  219. package/pd-cli/dist/commands/runtime-internalization-run-once.d.ts.map +1 -1
  220. package/pd-cli/dist/commands/runtime-internalization-run-once.js +3 -0
  221. package/pd-cli/dist/commands/runtime-internalization-run-once.js.map +1 -1
  222. package/pd-cli/dist/commands/runtime-internalization-run-rulehost.d.ts.map +1 -1
  223. package/pd-cli/dist/commands/runtime-internalization-run-rulehost.js +61 -7
  224. package/pd-cli/dist/commands/runtime-internalization-run-rulehost.js.map +1 -1
  225. package/pd-cli/dist/commands/runtime-uat.d.ts.map +1 -1
  226. package/pd-cli/dist/commands/runtime-uat.js +4 -1
  227. package/pd-cli/dist/commands/runtime-uat.js.map +1 -1
  228. package/pd-cli/dist/commands/runtime.js +1 -1
  229. package/pd-cli/dist/commands/runtime.js.map +1 -1
  230. package/pd-cli/dist/index.js +67 -34
  231. package/pd-cli/dist/index.js.map +1 -1
  232. package/pd-cli/dist/legacy/session-history-import.js +7 -5
  233. package/pd-cli/dist/legacy/session-history-import.js.map +1 -1
  234. package/pd-cli/dist/services/__tests__/rulehost-readiness.test.d.ts +2 -0
  235. package/pd-cli/dist/services/__tests__/rulehost-readiness.test.d.ts.map +1 -0
  236. package/pd-cli/dist/services/__tests__/rulehost-readiness.test.js +314 -0
  237. package/pd-cli/dist/services/__tests__/rulehost-readiness.test.js.map +1 -0
  238. package/pd-cli/dist/services/__tests__/runtime-adapter-resolver.test.js +33 -14
  239. package/pd-cli/dist/services/__tests__/runtime-adapter-resolver.test.js.map +1 -1
  240. package/pd-cli/dist/services/pain-flood-simulation-runner.d.ts.map +1 -1
  241. package/pd-cli/dist/services/pain-flood-simulation-runner.js +6 -2
  242. package/pd-cli/dist/services/pain-flood-simulation-runner.js.map +1 -1
  243. package/pd-cli/dist/services/rulehost-readiness.d.ts +62 -0
  244. package/pd-cli/dist/services/rulehost-readiness.d.ts.map +1 -0
  245. package/pd-cli/dist/services/rulehost-readiness.js +214 -0
  246. package/pd-cli/dist/services/rulehost-readiness.js.map +1 -0
  247. package/pd-cli/dist/services/runtime-adapter-resolver.d.ts +1 -1
  248. package/pd-cli/dist/services/runtime-adapter-resolver.d.ts.map +1 -1
  249. package/pd-cli/dist/services/runtime-adapter-resolver.js +9 -7
  250. package/pd-cli/dist/services/runtime-adapter-resolver.js.map +1 -1
  251. package/plugin/dist/commands/capabilities.js +3 -2
  252. package/plugin/dist/commands/disable-impl.js +1 -1
  253. package/plugin/dist/commands/evolution-status.js +0 -2
  254. package/plugin/dist/commands/focus.js +10 -2
  255. package/plugin/dist/commands/rollback-impl.js +1 -1
  256. package/plugin/dist/commands/thinking-os.js +5 -1
  257. package/plugin/dist/core/correction-cue-learner.js +2 -0
  258. package/plugin/dist/core/detection-funnel.d.ts +25 -11
  259. package/plugin/dist/core/detection-funnel.js +32 -80
  260. package/plugin/dist/core/event-log.d.ts +1 -3
  261. package/plugin/dist/core/event-log.js +27 -31
  262. package/plugin/dist/core/evolution-reducer.d.ts +0 -8
  263. package/plugin/dist/core/evolution-reducer.js +9 -19
  264. package/plugin/dist/core/focus-history.js +1 -1
  265. package/plugin/dist/core/hygiene/tracker.js +3 -3
  266. package/plugin/dist/core/pain-diagnostic-gate.d.ts +37 -28
  267. package/plugin/dist/core/pain-diagnostic-gate.js +53 -89
  268. package/plugin/dist/core/pain.d.ts +0 -63
  269. package/plugin/dist/core/pain.js +0 -167
  270. package/plugin/dist/core/paths.d.ts +0 -1
  271. package/plugin/dist/core/paths.js +2 -1
  272. package/plugin/dist/core/principle-compiler/compiler.js +2 -0
  273. package/plugin/dist/core/replay-engine.js +1 -1
  274. package/plugin/dist/core/rule-host.js +3 -1
  275. package/plugin/dist/core/schema/migrations/001-init-trajectory.js +3 -6
  276. package/plugin/dist/core/schema/schema-definitions.js +4 -9
  277. package/plugin/dist/core/thinking-os-parser.js +13 -4
  278. package/plugin/dist/core/trajectory.d.ts +0 -16
  279. package/plugin/dist/core/trajectory.js +9 -60
  280. package/plugin/dist/hooks/after-tool-call-helpers.d.ts +4 -1
  281. package/plugin/dist/hooks/after-tool-call-helpers.js +13 -17
  282. package/plugin/dist/hooks/gate-block-helper.js +57 -17
  283. package/plugin/dist/hooks/lifecycle.js +3 -6
  284. package/plugin/dist/hooks/llm.js +66 -26
  285. package/plugin/dist/hooks/pain.d.ts +3 -1
  286. package/plugin/dist/hooks/pain.js +119 -49
  287. package/plugin/dist/hooks/prompt-helpers.d.ts +87 -0
  288. package/plugin/dist/hooks/prompt-helpers.js +251 -0
  289. package/plugin/dist/hooks/prompt-types.d.ts +66 -0
  290. package/plugin/dist/hooks/prompt-types.js +12 -0
  291. package/plugin/dist/hooks/prompt.d.ts +7 -38
  292. package/plugin/dist/hooks/prompt.js +361 -325
  293. package/plugin/dist/hooks/raw-observation-adapter.d.ts +9 -50
  294. package/plugin/dist/hooks/raw-observation-adapter.js +9 -164
  295. package/plugin/dist/hooks/raw-observation-types.d.ts +6 -57
  296. package/plugin/dist/hooks/raw-observation-types.js +5 -9
  297. package/plugin/dist/hooks/trajectory-collector.d.ts +20 -4
  298. package/plugin/dist/hooks/trajectory-collector.js +95 -156
  299. package/plugin/dist/hooks/triage-adapter.js +6 -26
  300. package/plugin/dist/hooks/trigger-cooldown-tracker.d.ts +12 -0
  301. package/plugin/dist/hooks/trigger-cooldown-tracker.js +25 -0
  302. package/plugin/dist/index.js +7 -2
  303. package/plugin/dist/openclaw-sdk.d.ts +4 -1
  304. package/plugin/dist/service/evolution-worker.js +8 -62
  305. package/plugin/dist/service/internalization-auto-consumer-service.js +2 -1
  306. package/plugin/dist/service/runtime-summary-service.d.ts +0 -2
  307. package/plugin/dist/service/runtime-summary-service.js +8 -5
  308. package/plugin/dist/service/workflow-watchdog.js +2 -1
  309. package/plugin/dist/types/event-types.d.ts +1 -1
  310. package/plugin/dist/utils/retry.js +7 -2
  311. package/plugin/dist/utils/session-key.js +4 -1
  312. package/plugin/scripts/sync-plugin.mjs +33 -22
  313. package/plugin/scripts/validate-live-path.ts +0 -18
  314. package/plugin/templates/langs/en/skills/pd-cli-operator/SKILL.md +20 -11
  315. package/plugin/templates/langs/en/skills/pd-runtime-v2/SKILL.md +10 -0
  316. package/plugin/templates/langs/zh/skills/pd-cli-operator/SKILL.md +20 -11
  317. package/plugin/templates/langs/zh/skills/pd-runtime-v2/SKILL.md +10 -0
  318. package/console/dist/server/config/feature-flags.d.ts +0 -25
  319. package/console/dist/server/config/feature-flags.js +0 -101
  320. package/core/dist/io.d.ts +0 -35
  321. package/core/dist/io.d.ts.map +0 -1
  322. package/core/dist/io.js +0 -95
  323. package/core/dist/io.js.map +0 -1
  324. package/pd-cli/dist/commands/central-sync.d.ts +0 -10
  325. package/pd-cli/dist/commands/central-sync.d.ts.map +0 -1
  326. package/pd-cli/dist/commands/central-sync.js +0 -32
  327. package/pd-cli/dist/commands/central-sync.js.map +0 -1
  328. package/pd-cli/dist/services/feature-flag-loader.d.ts +0 -6
  329. package/pd-cli/dist/services/feature-flag-loader.d.ts.map +0 -1
  330. package/pd-cli/dist/services/feature-flag-loader.js +0 -53
  331. package/pd-cli/dist/services/feature-flag-loader.js.map +0 -1
  332. package/plugin/dist/core/observability.d.ts +0 -40
  333. package/plugin/dist/core/observability.js +0 -164
  334. package/plugin/dist/hooks/subagent.d.ts +0 -9
  335. package/plugin/dist/hooks/subagent.js +0 -122
@@ -1,57 +1,16 @@
1
1
  /**
2
- * Raw Observation Adapter — PRI-362
2
+ * Raw Observation Adapter — PRI-362 / PRI-446
3
3
  *
4
- * Unified source-kind resolution from RawObservation.
4
+ * The source-kind resolution logic and RawObservation builders have been
5
+ * migrated to principles-core (runtime-v2/evidence-triage/observation-resolver.ts).
5
6
  *
6
- * Replaces scattered resolveSourceKindFrom* functions with a single
7
- * field-driven adapter that maps observation fields to SourceKind.
8
- *
9
- * Field precedence (highest to lowest):
10
- * 1. isManualEntry → owner_reported
11
- * 2. isGateBlock → rulehost_block
12
- * 3. isSubagentError → subagent_error
13
- * 4. isRateLimit → rate_limit (if true)
14
- * 5. toolName === 'pain' / 'skill:pain' → agent_on_owner_request (with openclaw_context_bound) / owner_reported
15
- * 6. failureSource → tool_failure / dispatch_error
16
- * 7. isGfiTriggered → gfi_threshold
17
- * 8. detectionSource → llm_paralysis / semantic / empathy_inferred / unknown
18
- * 9. Fallback → unknown
7
+ * This file is now a thin re-export adapter. It preserves the original export
8
+ * names (resolveSourceKind, buildToolFailureObservation, buildLlmDetectionObservation,
9
+ * RawObservation) so all existing import sites and the source-string
10
+ * characterization tests keep working without changes.
19
11
  *
20
12
  * ERR checklist:
21
- * - ERR-001: Source kind resolved from runtime values, no `as` casts.
22
- * - ERR-002: Every path returns a valid SourceKind (fallback to 'unknown').
23
- * - EP-01: Runtime values validated before use.
13
+ * - ERR-011: re-export adapter, not a local re-definition of migrated logic.
24
14
  */
25
- import type { SourceKind } from '@principles/core/runtime-v2';
26
- import type { RawObservation } from './raw-observation-types.js';
15
+ export { resolveSourceKind, buildToolFailureObservation, buildLlmDetectionObservation, buildEmpathyObservation, buildManualPainObservation, } from '@principles/core/runtime-v2';
27
16
  export type { RawObservation } from './raw-observation-types.js';
28
- /**
29
- * Resolve SourceKind from a unified RawObservation.
30
- *
31
- * This function replaces the scattered resolveSourceKindFrom* functions
32
- * and provides a single entry point for source-kind classification.
33
- *
34
- * Field precedence is explicitly defined in the function body to ensure
35
- * deterministic behavior and make the logic easy to understand and test.
36
- */
37
- export declare function resolveSourceKind(observation: RawObservation): SourceKind;
38
- /**
39
- * Build a RawObservation for a tool failure context.
40
- *
41
- * This replaces classifyToolFailureSource and the inline classification
42
- * in after-tool-call-helpers. All tool error → dispatch/tool_failure
43
- * classification is centralized here.
44
- */
45
- export declare function buildToolFailureObservation(options: {
46
- toolName: string | undefined;
47
- error: unknown;
48
- exitCode?: number;
49
- provenance?: RawObservation['provenance'];
50
- }): RawObservation;
51
- /**
52
- * Build a RawObservation for an LLM detection context.
53
- */
54
- export declare function buildLlmDetectionObservation(options: {
55
- detectionSource: string;
56
- isGfiTriggered: boolean;
57
- }): RawObservation;
@@ -1,170 +1,15 @@
1
1
  /**
2
- * Raw Observation Adapter — PRI-362
2
+ * Raw Observation Adapter — PRI-362 / PRI-446
3
3
  *
4
- * Unified source-kind resolution from RawObservation.
4
+ * The source-kind resolution logic and RawObservation builders have been
5
+ * migrated to principles-core (runtime-v2/evidence-triage/observation-resolver.ts).
5
6
  *
6
- * Replaces scattered resolveSourceKindFrom* functions with a single
7
- * field-driven adapter that maps observation fields to SourceKind.
8
- *
9
- * Field precedence (highest to lowest):
10
- * 1. isManualEntry → owner_reported
11
- * 2. isGateBlock → rulehost_block
12
- * 3. isSubagentError → subagent_error
13
- * 4. isRateLimit → rate_limit (if true)
14
- * 5. toolName === 'pain' / 'skill:pain' → agent_on_owner_request (with openclaw_context_bound) / owner_reported
15
- * 6. failureSource → tool_failure / dispatch_error
16
- * 7. isGfiTriggered → gfi_threshold
17
- * 8. detectionSource → llm_paralysis / semantic / empathy_inferred / unknown
18
- * 9. Fallback → unknown
7
+ * This file is now a thin re-export adapter. It preserves the original export
8
+ * names (resolveSourceKind, buildToolFailureObservation, buildLlmDetectionObservation,
9
+ * RawObservation) so all existing import sites and the source-string
10
+ * characterization tests keep working without changes.
19
11
  *
20
12
  * ERR checklist:
21
- * - ERR-001: Source kind resolved from runtime values, no `as` casts.
22
- * - ERR-002: Every path returns a valid SourceKind (fallback to 'unknown').
23
- * - EP-01: Runtime values validated before use.
24
- */
25
- /**
26
- * Resolve SourceKind from a unified RawObservation.
27
- *
28
- * This function replaces the scattered resolveSourceKindFrom* functions
29
- * and provides a single entry point for source-kind classification.
30
- *
31
- * Field precedence is explicitly defined in the function body to ensure
32
- * deterministic behavior and make the logic easy to understand and test.
33
- */
34
- export function resolveSourceKind(observation) {
35
- const { isManualEntry, isGateBlock, isSubagentError, isRateLimit, toolName, failureSource, isGfiTriggered, detectionSource, nonZeroExit, timedOut, toolNotFound, } = observation;
36
- // Priority 1: Manual entry (CLI, owner-reported)
37
- if (isManualEntry) {
38
- return 'owner_reported';
39
- }
40
- // Priority 2: Gate block
41
- if (isGateBlock) {
42
- return 'rulehost_block';
43
- }
44
- // Priority 3: Subagent error
45
- if (isSubagentError) {
46
- return 'subagent_error';
47
- }
48
- // Priority 4: Provider rate limit (explicit true/false)
49
- if (isRateLimit === true) {
50
- return 'rate_limit';
51
- }
52
- if (isRateLimit === false) {
53
- return 'provider_failure';
54
- }
55
- // Priority 5: Manual pain tool
56
- if (toolName === 'pain' || toolName === 'skill:pain') {
57
- // Match resolveSourceKindFromToolFailure behavior:
58
- // openclaw_context_bound → agent_on_owner_request
59
- // other provenance or undefined → owner_reported
60
- if (observation.provenance === 'openclaw_context_bound') {
61
- return 'agent_on_owner_request';
62
- }
63
- return 'owner_reported';
64
- }
65
- // Priority 6: GFI threshold (must check before failure source for LLM detection path)
66
- if (isGfiTriggered) {
67
- return 'gfi_threshold';
68
- }
69
- // Priority 7: Tool failure / dispatch error
70
- if (failureSource) {
71
- // Match resolveSourceKindFromToolFailure behavior:
72
- // dispatch_error → dispatch_error, anything else → tool_failure
73
- if (failureSource === 'dispatch_error') {
74
- return 'dispatch_error';
75
- }
76
- return 'tool_failure';
77
- }
78
- // Infer failureSource from tool failure indicators if not explicitly set
79
- if (toolNotFound) {
80
- return 'dispatch_error';
81
- }
82
- // Match classifyToolFailureSource behavior: unknown tool name → dispatch_error
83
- // BUT only if this looks like a tool failure context (has other tool fields)
84
- // Otherwise, this is likely a non-tool observation (e.g., LLM detection)
85
- const hasToolContext = toolName !== undefined || nonZeroExit || timedOut || toolNotFound;
86
- if (hasToolContext && (!toolName || toolName.trim() === '')) {
87
- return 'dispatch_error';
88
- }
89
- // Exit code-based detection: non-zero exit or timeout → tool_failure
90
- if (nonZeroExit || timedOut) {
91
- return 'tool_failure';
92
- }
93
- // Priority 8: LLM detection source
94
- if (detectionSource) {
95
- // Match resolveSourceKindFromLlmDetection behavior:
96
- if (detectionSource === 'llm_paralysis') {
97
- return 'llm_paralysis';
98
- }
99
- if (detectionSource.startsWith('llm_')) {
100
- return 'semantic';
101
- }
102
- if (detectionSource === 'user_empathy') {
103
- return 'empathy_inferred';
104
- }
105
- }
106
- // Fallback: unknown
107
- return 'unknown';
108
- }
109
- // ── Builder Functions ──────────────────────────────────────────────────────
110
- //
111
- // PRI-360 S1: These builders construct RawObservation from specific contexts,
112
- // centralizing source classification rules in the adapter layer.
113
- // Hooks should NOT hold source classification logic — use these builders.
114
- /**
115
- * Classify error message as dispatch_error vs tool_failure.
116
- *
117
- * This centralizes the regex-based classification that was previously
118
- * scattered in classifyToolFailureSource and after-tool-call-helpers.
119
- * Now hooks call this builder + resolveSourceKind instead of holding rules.
120
- */
121
- function classifyErrorForDispatch(error) {
122
- if (!error)
123
- return 'tool_failure';
124
- const msg = String(error);
125
- if (/\btool\s+(?:\S+\s+)?not\s+found\b/i.test(msg) || /\bunknown\s+tool\b/i.test(msg)) {
126
- return 'dispatch_error';
127
- }
128
- return 'tool_failure';
129
- }
130
- /**
131
- * Build a RawObservation for a tool failure context.
132
- *
133
- * This replaces classifyToolFailureSource and the inline classification
134
- * in after-tool-call-helpers. All tool error → dispatch/tool_failure
135
- * classification is centralized here.
136
- */
137
- export function buildToolFailureObservation(options) {
138
- const { toolName, error, provenance } = options;
139
- const nonZeroExit = typeof options.exitCode === 'number' && options.exitCode !== 0;
140
- // Classify dispatch vs tool_failure centrally
141
- let failureSource;
142
- if (!toolName || toolName.trim() === '') {
143
- // Empty/whitespace tool name → dispatch error
144
- failureSource = 'dispatch_error';
145
- }
146
- else {
147
- failureSource = classifyErrorForDispatch(error);
148
- }
149
- // If neither error nor non-zero exit, this is not a failure context
150
- if (!error && !nonZeroExit) {
151
- failureSource = undefined;
152
- }
153
- return {
154
- observedAt: new Date().toISOString(),
155
- toolName,
156
- failureSource,
157
- nonZeroExit,
158
- provenance,
159
- };
160
- }
161
- /**
162
- * Build a RawObservation for an LLM detection context.
13
+ * - ERR-011: re-export adapter, not a local re-definition of migrated logic.
163
14
  */
164
- export function buildLlmDetectionObservation(options) {
165
- return {
166
- observedAt: new Date().toISOString(),
167
- detectionSource: options.detectionSource,
168
- isGfiTriggered: options.isGfiTriggered,
169
- };
170
- }
15
+ export { resolveSourceKind, buildToolFailureObservation, buildLlmDetectionObservation, buildEmpathyObservation, buildManualPainObservation, } from '@principles/core/runtime-v2';
@@ -1,62 +1,11 @@
1
1
  /**
2
- * Raw Observation Types — PRI-362
2
+ * Raw Observation Types — PRI-362 / PRI-446
3
3
  *
4
- * Source adapter layer that normalizes diverse hook contexts into a unified
5
- * observation model before mapping to SourceKind.
6
- *
7
- * This replaces scattered resolveSourceKindFrom* functions with a single
8
- * field-driven adapter.
4
+ * The RawObservation type has been migrated to principles-core
5
+ * (runtime-v2/evidence-triage/observation-resolver.ts). This file re-exports it
6
+ * so existing plugin import sites keep working unchanged.
9
7
  *
10
8
  * ERR checklist:
11
- * - ERR-001: No `as` casts; validate unknown payload field-by-field.
12
- * - ERR-002: Every decision carries reason + nextAction.
13
- * - EP-01: Source adapter validates before use.
14
- */
15
- /**
16
- * Raw observation from a source adapter.
17
- *
18
- * This is the input to resolveSourceKind. It contains all possible
19
- * context fields that different sources may provide. The adapter
20
- * reads only the fields it needs based on the observation source.
9
+ * - ERR-011: this is a re-export adapter, not a local re-definition.
21
10
  */
22
- export interface RawObservation {
23
- /** When the observation was made (ISO timestamp) */
24
- readonly observedAt: string;
25
- /** Workspace identifier */
26
- readonly workspaceId?: string;
27
- /** Session identifier */
28
- readonly sessionId?: string;
29
- /** Trace identifier for correlation */
30
- readonly traceId?: string;
31
- /** Tool name (for after_tool_call hook) */
32
- readonly toolName?: string;
33
- /** Failure source classification */
34
- readonly failureSource?: 'tool_failure' | 'dispatch_error';
35
- /** Whether the tool call exited with non-zero code */
36
- readonly nonZeroExit?: boolean;
37
- /** Whether the tool call timed out */
38
- readonly timedOut?: boolean;
39
- /** Whether the tool does not exist */
40
- readonly toolNotFound?: boolean;
41
- /** Detection source identifier */
42
- readonly detectionSource?: string;
43
- /** Whether GFI threshold was crossed */
44
- readonly isGfiTriggered?: boolean;
45
- /** Whether the failure was a rate limit (429) */
46
- readonly isRateLimit?: boolean;
47
- /** Whether this observation came from a gate block */
48
- readonly isGateBlock?: boolean;
49
- /** Whether this was a manual CLI entry */
50
- readonly isManualEntry?: boolean;
51
- /** Provenance: how trustworthy and context-bound is the observation */
52
- readonly provenance?: 'openclaw_context_bound' | 'owner_reported_no_host_trace' | 'automatic_hook';
53
- /** Whether this observation came from a subagent error */
54
- readonly isSubagentError?: boolean;
55
- /**
56
- * Raw payload from the source.
57
- *
58
- * This is always `unknown` (ERR-005). Source adapters validate only
59
- * enough to identify the source and capture bounded context.
60
- */
61
- readonly payload?: unknown;
62
- }
11
+ export type { RawObservation } from '@principles/core/runtime-v2';
@@ -1,15 +1,11 @@
1
1
  /**
2
- * Raw Observation Types — PRI-362
2
+ * Raw Observation Types — PRI-362 / PRI-446
3
3
  *
4
- * Source adapter layer that normalizes diverse hook contexts into a unified
5
- * observation model before mapping to SourceKind.
6
- *
7
- * This replaces scattered resolveSourceKindFrom* functions with a single
8
- * field-driven adapter.
4
+ * The RawObservation type has been migrated to principles-core
5
+ * (runtime-v2/evidence-triage/observation-resolver.ts). This file re-exports it
6
+ * so existing plugin import sites keep working unchanged.
9
7
  *
10
8
  * ERR checklist:
11
- * - ERR-001: No `as` casts; validate unknown payload field-by-field.
12
- * - ERR-002: Every decision carries reason + nextAction.
13
- * - EP-01: Source adapter validates before use.
9
+ * - ERR-011: this is a re-export adapter, not a local re-definition.
14
10
  */
15
11
  export {};
@@ -1,9 +1,23 @@
1
1
  /**
2
2
  * Trajectory Collector - message write trajectory recording
3
3
  *
4
- * Records message data to memory/trajectories/ JSONL files.
5
- * PRI-347 removed tool_call and llm_output JSONL writers (no consumers).
6
- * PRI-346 will repurpose handleBeforeMessageWrite for SQLite collection.
4
+ * Fallback trajectory collection when llm_output is blocked by missing
5
+ * allowConversationAccess. before_message_write is NOT in
6
+ * CONVERSATION_HOOK_NAMES so OpenClaw always delivers it.
7
+ *
8
+ * SQLite writes are enqueued to an async queue because before_message_write is
9
+ * a SYNCHRONOUS OpenClaw hook — the handler must return immediately. better-sqlite3
10
+ * is synchronous, so calling it directly would block the message-write main path.
11
+ * Trade-off: in degradation mode the last few queued writes may be lost on
12
+ * process exit; this is acceptable because degradation mode is already caused
13
+ * by a config problem (missing allowConversationAccess), and the primary
14
+ * llm_output path is authoritative when authorized.
15
+ *
16
+ * JSONL writing was removed (no consumers — verified zero readers across the
17
+ * codebase; PRI-347 already removed tool_call/llm_output JSONL writers).
18
+ *
19
+ * ERR-002: fallback errors are logged, never silent.
20
+ * ERR-001/005: content is sanitized before persisting.
7
21
  */
8
22
  import type { PluginHookAgentContext, PluginHookBeforeMessageWriteEvent } from '../openclaw-sdk.js';
9
23
  /**
@@ -14,7 +28,9 @@ import type { PluginHookAgentContext, PluginHookBeforeMessageWriteEvent } from '
14
28
  * CONVERSATION_HOOK_NAMES, so it always fires — making it the natural fallback.
15
29
  *
16
30
  * De-duplication: only writes to SQLite when llm_output is blocked (unauthorized).
17
- * When llm_output is working (authorized), this hook degrades to JSONL-only.
31
+ * When llm_output is working (authorized), this hook is a no-op.
32
+ *
33
+ * SQLite writes are async-queued (see file header) to avoid blocking the sync hook.
18
34
  *
19
35
  * ERR-002: structured observability when fallback fires.
20
36
  * ERR-001/005: content is sanitized before persisting.