create-principles-disciple 1.82.0 → 1.83.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 (494) hide show
  1. package/console/dist/server/config/pd-config-store.d.ts +135 -0
  2. package/console/dist/server/config/pd-config-store.js +660 -0
  3. package/console/dist/server/index.js +40 -389
  4. package/console/dist/server/models/ActivationsConsoleModel.d.ts +33 -0
  5. package/console/dist/server/models/ActivationsConsoleModel.js +112 -0
  6. package/console/dist/server/models/ApprovalsConsoleModel.d.ts +5 -0
  7. package/console/dist/server/models/ApprovalsConsoleModel.js +14 -0
  8. package/console/dist/server/models/ApprovalsGroupedConsoleModel.d.ts +25 -0
  9. package/console/dist/server/models/ApprovalsGroupedConsoleModel.js +126 -0
  10. package/console/dist/server/models/ConsoleLifecycleDatasource.d.ts +13 -0
  11. package/console/dist/server/models/ConsoleLifecycleDatasource.js +73 -0
  12. package/console/dist/server/models/EvidenceChainConsoleModel.d.ts +58 -0
  13. package/console/dist/server/models/EvidenceChainConsoleModel.js +493 -0
  14. package/console/dist/server/models/GovernanceConsoleModel.d.ts +74 -0
  15. package/console/dist/server/models/GovernanceConsoleModel.js +246 -0
  16. package/console/dist/server/models/HealthCheckModel.d.ts +0 -4
  17. package/console/dist/server/models/HealthCheckModel.js +49 -80
  18. package/console/dist/server/models/LifecycleConsoleModel.d.ts +19 -0
  19. package/console/dist/server/models/LifecycleConsoleModel.js +55 -0
  20. package/console/dist/server/models/PrincipleClassifier.d.ts +41 -0
  21. package/console/dist/server/models/PrincipleClassifier.js +100 -0
  22. package/console/dist/server/models/PrinciplesConsoleModel.d.ts +12 -1
  23. package/console/dist/server/models/PrinciplesConsoleModel.js +53 -6
  24. package/console/dist/server/models/WorkspaceService.d.ts +2 -1
  25. package/console/dist/server/models/WorkspaceService.js +51 -23
  26. package/console/dist/server/routes/activations.d.ts +3 -0
  27. package/console/dist/server/routes/activations.js +111 -0
  28. package/console/dist/server/routes/approvals-grouped.d.ts +3 -0
  29. package/console/dist/server/routes/approvals-grouped.js +32 -0
  30. package/console/dist/server/routes/approvals.js +28 -4
  31. package/console/dist/server/routes/config.d.ts +27 -0
  32. package/console/dist/server/routes/config.js +213 -0
  33. package/console/dist/server/routes/evidence-chain.d.ts +9 -0
  34. package/console/dist/server/routes/evidence-chain.js +32 -0
  35. package/console/dist/server/routes/governance.d.ts +3 -0
  36. package/console/dist/server/routes/governance.js +32 -0
  37. package/console/dist/server/routes/{evolution.d.ts → lifecycle.d.ts} +2 -2
  38. package/console/dist/server/routes/lifecycle.js +48 -0
  39. package/console/dist/server/routes/principles.js +74 -1
  40. package/console/dist/server/routes/workspaces.js +8 -1
  41. package/console/dist/server/utils/response.d.ts +1 -1
  42. package/console/dist/server/utils/response.js +6 -2
  43. package/console/dist/types.d.ts +1 -0
  44. package/console/dist/ui/App.js +116 -40
  45. package/console/dist/ui/api.d.ts +88 -501
  46. package/console/dist/ui/api.js +139 -162
  47. package/console/dist/ui/components/approval-card.js +1 -1
  48. package/console/dist/ui/components/approval-detail-dialog.js +1 -1
  49. package/console/dist/ui/components/auth/login-form.d.ts +3 -0
  50. package/console/dist/ui/components/auth/login-form.js +36 -0
  51. package/console/dist/ui/components/auth/splash-screen.d.ts +8 -0
  52. package/console/dist/ui/components/auth/splash-screen.js +22 -0
  53. package/console/dist/ui/components/layout/app-sidebar.d.ts +1 -0
  54. package/console/dist/ui/components/layout/app-sidebar.js +56 -0
  55. package/console/dist/ui/components/layout/page-shell.d.ts +11 -0
  56. package/console/dist/ui/components/layout/page-shell.js +10 -0
  57. package/console/dist/ui/components/layout/section-title.d.ts +10 -0
  58. package/console/dist/ui/components/layout/section-title.js +9 -0
  59. package/console/dist/ui/components/theme-provider.d.ts +1 -1
  60. package/console/dist/ui/components/theme-provider.js +13 -8
  61. package/console/dist/ui/components/theme-toggle.js +2 -21
  62. package/console/dist/ui/components/ui/badge.d.ts +1 -1
  63. package/console/dist/ui/components/ui/badge.js +7 -5
  64. package/console/dist/ui/components/ui/button.d.ts +2 -2
  65. package/console/dist/ui/components/ui/button.js +12 -11
  66. package/console/dist/ui/components/ui/card.js +6 -6
  67. package/console/dist/ui/components/ui/sheet.d.ts +1 -1
  68. package/console/dist/ui/i18n/en.json +401 -343
  69. package/console/dist/ui/i18n/index.js +2 -2
  70. package/console/dist/ui/i18n/zh-CN.json +406 -348
  71. package/console/dist/ui/main.d.ts +1 -1
  72. package/console/dist/ui/main.js +1 -0
  73. package/console/dist/ui/pages/activation/ActivationPage.d.ts +1 -0
  74. package/console/dist/ui/pages/activation/ActivationPage.js +150 -0
  75. package/console/dist/ui/pages/activation/ActivationValidators.d.ts +20 -0
  76. package/console/dist/ui/pages/activation/ActivationValidators.js +156 -0
  77. package/console/dist/ui/pages/control-center/ControlCenterPage.d.ts +1 -0
  78. package/console/dist/ui/pages/control-center/ControlCenterPage.js +447 -0
  79. package/console/dist/ui/pages/debt/DebtPage.d.ts +1 -0
  80. package/console/dist/ui/pages/debt/DebtPage.js +5 -0
  81. package/console/dist/ui/pages/design-system/DesignSystemPage.d.ts +1 -0
  82. package/console/dist/ui/pages/design-system/DesignSystemPage.js +30 -0
  83. package/console/dist/ui/pages/focus/FocusPage.d.ts +1 -0
  84. package/console/dist/ui/pages/focus/FocusPage.js +265 -0
  85. package/console/dist/ui/pages/pain/PainEvidenceValidators.d.ts +59 -0
  86. package/console/dist/ui/pages/pain/PainEvidenceValidators.js +125 -0
  87. package/console/dist/ui/pages/pain/PainPage.js +136 -0
  88. package/console/dist/ui/pages/principles/PrincipleDetailPage.js +264 -0
  89. package/console/dist/ui/pages/principles/PrinciplesPage.js +244 -0
  90. package/console/dist/ui/pages/report-problem/ReportProblemPage.js +245 -0
  91. package/console/dist/ui/pages/settings/SettingsPage.d.ts +4 -0
  92. package/console/dist/ui/pages/settings/SettingsPage.js +202 -0
  93. package/console/dist/ui/pages/settings/UpdatePage.d.ts +5 -0
  94. package/console/dist/ui/pages/settings/UpdatePage.js +168 -0
  95. package/console/dist/ui/utils/control-center-helpers.d.ts +58 -0
  96. package/console/dist/ui/utils/control-center-helpers.js +152 -0
  97. package/console/dist/ui/utils/validators.d.ts +350 -0
  98. package/console/dist/ui/utils/validators.js +995 -0
  99. package/console/dist/web/assets/app.css +672 -902
  100. package/console/dist/web/assets/app.js +6404 -15347
  101. package/console/dist/web/assets/jetbrains-mono-cyrillic-400-normal-C5JECUCT.woff2 +0 -0
  102. package/console/dist/web/assets/jetbrains-mono-cyrillic-400-normal-FGCZYWMY.woff +0 -0
  103. package/console/dist/web/assets/jetbrains-mono-cyrillic-ext-400-normal-C7IFWGF6.woff2 +0 -0
  104. package/console/dist/web/assets/jetbrains-mono-cyrillic-ext-400-normal-PWXUA557.woff +0 -0
  105. package/console/dist/web/assets/jetbrains-mono-greek-400-normal-JJNQZMPZ.woff +0 -0
  106. package/console/dist/web/assets/jetbrains-mono-greek-400-normal-O7JTTR3P.woff2 +0 -0
  107. package/console/dist/web/assets/jetbrains-mono-latin-400-normal-3OOWLGQ2.woff2 +0 -0
  108. package/console/dist/web/assets/jetbrains-mono-latin-400-normal-WDD34GPP.woff +0 -0
  109. package/console/dist/web/assets/jetbrains-mono-latin-ext-400-normal-55RNMRQS.woff +0 -0
  110. package/console/dist/web/assets/jetbrains-mono-latin-ext-400-normal-JVR3IR4Z.woff2 +0 -0
  111. package/console/dist/web/assets/jetbrains-mono-vietnamese-400-normal-7ULXAK72.woff +0 -0
  112. package/console/dist/web/assets/jetbrains-mono-vietnamese-400-normal-KU7YLUPA.woff2 +0 -0
  113. package/console/package.json +2 -1
  114. package/core/dist/runtime-v2/__tests__/admission-gate.test.js +49 -0
  115. package/core/dist/runtime-v2/__tests__/admission-gate.test.js.map +1 -1
  116. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js +16 -1
  117. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  118. package/core/dist/runtime-v2/__tests__/evidence-sanitizer.test.d.ts +21 -0
  119. package/core/dist/runtime-v2/__tests__/evidence-sanitizer.test.d.ts.map +1 -0
  120. package/core/dist/runtime-v2/__tests__/evidence-sanitizer.test.js +354 -0
  121. package/core/dist/runtime-v2/__tests__/evidence-sanitizer.test.js.map +1 -0
  122. package/core/dist/runtime-v2/__tests__/language-directive.test.d.ts +12 -0
  123. package/core/dist/runtime-v2/__tests__/language-directive.test.d.ts.map +1 -0
  124. package/core/dist/runtime-v2/__tests__/language-directive.test.js +162 -0
  125. package/core/dist/runtime-v2/__tests__/language-directive.test.js.map +1 -0
  126. package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js +23 -1
  127. package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js.map +1 -1
  128. package/core/dist/runtime-v2/__tests__/pain-to-principle-service.test.js +48 -3
  129. package/core/dist/runtime-v2/__tests__/pain-to-principle-service.test.js.map +1 -1
  130. package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +13 -1
  131. package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +1 -1
  132. package/core/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.d.ts +12 -0
  133. package/core/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.d.ts.map +1 -0
  134. package/core/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.js +194 -0
  135. package/core/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.js.map +1 -0
  136. package/core/dist/runtime-v2/__tests__/runtime-config-boundary.test.js +5 -3
  137. package/core/dist/runtime-v2/__tests__/runtime-config-boundary.test.js.map +1 -1
  138. package/core/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +1 -0
  139. package/core/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
  140. package/core/dist/runtime-v2/activation/__tests__/approval-queue.test.js +54 -0
  141. package/core/dist/runtime-v2/activation/__tests__/approval-queue.test.js.map +1 -1
  142. package/core/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.js +15 -2
  143. package/core/dist/runtime-v2/activation/__tests__/memory-activation-state-store.test.js.map +1 -1
  144. package/core/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.js +10 -0
  145. package/core/dist/runtime-v2/activation/__tests__/prompt-activation-reader-contract.test.js.map +1 -1
  146. package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js +17 -2
  147. package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js.map +1 -1
  148. package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js +36 -0
  149. package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js.map +1 -1
  150. package/core/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
  151. package/core/dist/runtime-v2/activation/activation-dispatcher.js +1 -1
  152. package/core/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
  153. package/core/dist/runtime-v2/activation/activation-types.d.ts +10 -0
  154. package/core/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
  155. package/core/dist/runtime-v2/activation/activation-types.js.map +1 -1
  156. package/core/dist/runtime-v2/activation/approval-queue.d.ts +6 -0
  157. package/core/dist/runtime-v2/activation/approval-queue.d.ts.map +1 -1
  158. package/core/dist/runtime-v2/activation/approval-queue.js +3 -0
  159. package/core/dist/runtime-v2/activation/approval-queue.js.map +1 -1
  160. package/core/dist/runtime-v2/activation/memory-activation-state-store.d.ts +2 -0
  161. package/core/dist/runtime-v2/activation/memory-activation-state-store.d.ts.map +1 -1
  162. package/core/dist/runtime-v2/activation/memory-activation-state-store.js +17 -1
  163. package/core/dist/runtime-v2/activation/memory-activation-state-store.js.map +1 -1
  164. package/core/dist/runtime-v2/activation/memory-approval-store.d.ts +6 -0
  165. package/core/dist/runtime-v2/activation/memory-approval-store.d.ts.map +1 -1
  166. package/core/dist/runtime-v2/activation/memory-approval-store.js +16 -0
  167. package/core/dist/runtime-v2/activation/memory-approval-store.js.map +1 -1
  168. package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.js +1 -1
  169. package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.js.map +1 -1
  170. package/core/dist/runtime-v2/activation/sqlite-activation-state-store.d.ts +2 -0
  171. package/core/dist/runtime-v2/activation/sqlite-activation-state-store.d.ts.map +1 -1
  172. package/core/dist/runtime-v2/activation/sqlite-activation-state-store.js +34 -6
  173. package/core/dist/runtime-v2/activation/sqlite-activation-state-store.js.map +1 -1
  174. package/core/dist/runtime-v2/activation/sqlite-approval-store.d.ts +6 -0
  175. package/core/dist/runtime-v2/activation/sqlite-approval-store.d.ts.map +1 -1
  176. package/core/dist/runtime-v2/activation/sqlite-approval-store.js +10 -0
  177. package/core/dist/runtime-v2/activation/sqlite-approval-store.js.map +1 -1
  178. package/core/dist/runtime-v2/adapter/__tests__/json-extractor.test.js +51 -1
  179. package/core/dist/runtime-v2/adapter/__tests__/json-extractor.test.js.map +1 -1
  180. package/core/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.js +145 -0
  181. package/core/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter.test.js.map +1 -1
  182. package/core/dist/runtime-v2/adapter/json-extractor.d.ts +13 -0
  183. package/core/dist/runtime-v2/adapter/json-extractor.d.ts.map +1 -1
  184. package/core/dist/runtime-v2/adapter/json-extractor.js +103 -0
  185. package/core/dist/runtime-v2/adapter/json-extractor.js.map +1 -1
  186. package/core/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.d.ts +4 -2
  187. package/core/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.d.ts.map +1 -1
  188. package/core/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js +57 -5
  189. package/core/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js.map +1 -1
  190. package/core/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.d.ts +18 -0
  191. package/core/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.d.ts.map +1 -0
  192. package/core/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js +633 -0
  193. package/core/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js.map +1 -0
  194. package/core/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js +92 -0
  195. package/core/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js.map +1 -1
  196. package/core/dist/runtime-v2/config/index.d.ts +3 -1
  197. package/core/dist/runtime-v2/config/index.d.ts.map +1 -1
  198. package/core/dist/runtime-v2/config/index.js +1 -0
  199. package/core/dist/runtime-v2/config/index.js.map +1 -1
  200. package/core/dist/runtime-v2/config/pd-config-agent-binding.d.ts +93 -0
  201. package/core/dist/runtime-v2/config/pd-config-agent-binding.d.ts.map +1 -0
  202. package/core/dist/runtime-v2/config/pd-config-agent-binding.js +184 -0
  203. package/core/dist/runtime-v2/config/pd-config-agent-binding.js.map +1 -0
  204. package/core/dist/runtime-v2/config/pd-config-defaults.d.ts.map +1 -1
  205. package/core/dist/runtime-v2/config/pd-config-defaults.js +2 -0
  206. package/core/dist/runtime-v2/config/pd-config-defaults.js.map +1 -1
  207. package/core/dist/runtime-v2/config/pd-config-effective.d.ts.map +1 -1
  208. package/core/dist/runtime-v2/config/pd-config-effective.js +3 -0
  209. package/core/dist/runtime-v2/config/pd-config-effective.js.map +1 -1
  210. package/core/dist/runtime-v2/config/pd-config-types.d.ts +8 -0
  211. package/core/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
  212. package/core/dist/runtime-v2/config/pd-config-types.js.map +1 -1
  213. package/core/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.d.ts +13 -0
  214. package/core/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.d.ts.map +1 -0
  215. package/core/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.js +97 -0
  216. package/core/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.js.map +1 -0
  217. package/core/dist/runtime-v2/diagnostician-prompt-builder.d.ts +3 -2
  218. package/core/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
  219. package/core/dist/runtime-v2/diagnostician-prompt-builder.js +6 -4
  220. package/core/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
  221. package/core/dist/runtime-v2/evidence-sanitizer.d.ts +57 -0
  222. package/core/dist/runtime-v2/evidence-sanitizer.d.ts.map +1 -0
  223. package/core/dist/runtime-v2/evidence-sanitizer.js +213 -0
  224. package/core/dist/runtime-v2/evidence-sanitizer.js.map +1 -0
  225. package/core/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.d.ts +7 -0
  226. package/core/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.d.ts.map +1 -0
  227. package/core/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.js +170 -0
  228. package/core/dist/runtime-v2/evidence-triage/__tests__/admission-events.test.js.map +1 -0
  229. package/core/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.d.ts +18 -0
  230. package/core/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.d.ts.map +1 -0
  231. package/core/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.js +277 -0
  232. package/core/dist/runtime-v2/evidence-triage/__tests__/source-descriptors.test.js.map +1 -0
  233. package/core/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.d.ts +13 -0
  234. package/core/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.d.ts.map +1 -0
  235. package/core/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js +264 -0
  236. package/core/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js.map +1 -0
  237. package/core/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.d.ts +16 -0
  238. package/core/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.d.ts.map +1 -0
  239. package/core/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.js +316 -0
  240. package/core/dist/runtime-v2/evidence-triage/__tests__/trigger-controller.test.js.map +1 -0
  241. package/core/dist/runtime-v2/evidence-triage/admission-events.d.ts +126 -0
  242. package/core/dist/runtime-v2/evidence-triage/admission-events.d.ts.map +1 -0
  243. package/core/dist/runtime-v2/evidence-triage/admission-events.js +159 -0
  244. package/core/dist/runtime-v2/evidence-triage/admission-events.js.map +1 -0
  245. package/core/dist/runtime-v2/evidence-triage/index.d.ts +16 -0
  246. package/core/dist/runtime-v2/evidence-triage/index.d.ts.map +1 -0
  247. package/core/dist/runtime-v2/evidence-triage/index.js +13 -0
  248. package/core/dist/runtime-v2/evidence-triage/index.js.map +1 -0
  249. package/core/dist/runtime-v2/evidence-triage/source-descriptors.d.ts +48 -0
  250. package/core/dist/runtime-v2/evidence-triage/source-descriptors.d.ts.map +1 -0
  251. package/core/dist/runtime-v2/evidence-triage/source-descriptors.js +131 -0
  252. package/core/dist/runtime-v2/evidence-triage/source-descriptors.js.map +1 -0
  253. package/core/dist/runtime-v2/evidence-triage/triage-policy.d.ts +32 -0
  254. package/core/dist/runtime-v2/evidence-triage/triage-policy.d.ts.map +1 -0
  255. package/core/dist/runtime-v2/evidence-triage/triage-policy.js +95 -0
  256. package/core/dist/runtime-v2/evidence-triage/triage-policy.js.map +1 -0
  257. package/core/dist/runtime-v2/evidence-triage/trigger-controller.d.ts +116 -0
  258. package/core/dist/runtime-v2/evidence-triage/trigger-controller.d.ts.map +1 -0
  259. package/core/dist/runtime-v2/evidence-triage/trigger-controller.js +218 -0
  260. package/core/dist/runtime-v2/evidence-triage/trigger-controller.js.map +1 -0
  261. package/core/dist/runtime-v2/evidence-triage/types.d.ts +65 -0
  262. package/core/dist/runtime-v2/evidence-triage/types.d.ts.map +1 -0
  263. package/core/dist/runtime-v2/evidence-triage/types.js +38 -0
  264. package/core/dist/runtime-v2/evidence-triage/types.js.map +1 -0
  265. package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +10 -0
  266. package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
  267. package/core/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  268. package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js +1 -0
  269. package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  270. package/core/dist/runtime-v2/index.d.ts +8 -1
  271. package/core/dist/runtime-v2/index.d.ts.map +1 -1
  272. package/core/dist/runtime-v2/index.js +7 -1
  273. package/core/dist/runtime-v2/index.js.map +1 -1
  274. package/core/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.d.ts +12 -0
  275. package/core/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.d.ts.map +1 -0
  276. package/core/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js +83 -0
  277. package/core/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js.map +1 -0
  278. package/core/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts +10 -0
  279. package/core/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts.map +1 -1
  280. package/core/dist/runtime-v2/internalization/scribe-prompt-builder.js +13 -1
  281. package/core/dist/runtime-v2/internalization/scribe-prompt-builder.js.map +1 -1
  282. package/core/dist/runtime-v2/internalization/scribe-runner.d.ts +3 -0
  283. package/core/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
  284. package/core/dist/runtime-v2/internalization/scribe-runner.js +2 -0
  285. package/core/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
  286. package/core/dist/runtime-v2/internalization-chain-integrity-read-model.js +1 -1
  287. package/core/dist/runtime-v2/internalization-chain-integrity-read-model.js.map +1 -1
  288. package/core/dist/runtime-v2/language-directive.d.ts +80 -0
  289. package/core/dist/runtime-v2/language-directive.d.ts.map +1 -0
  290. package/core/dist/runtime-v2/language-directive.js +108 -0
  291. package/core/dist/runtime-v2/language-directive.js.map +1 -0
  292. package/core/dist/runtime-v2/pain-signal-observability.d.ts.map +1 -1
  293. package/core/dist/runtime-v2/pain-signal-observability.js +24 -11
  294. package/core/dist/runtime-v2/pain-signal-observability.js.map +1 -1
  295. package/core/dist/runtime-v2/pain-signal-runtime-factory.d.ts +16 -0
  296. package/core/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
  297. package/core/dist/runtime-v2/pain-signal-runtime-factory.js +97 -6
  298. package/core/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
  299. package/core/dist/runtime-v2/pain-to-principle-service.d.ts +7 -0
  300. package/core/dist/runtime-v2/pain-to-principle-service.d.ts.map +1 -1
  301. package/core/dist/runtime-v2/pain-to-principle-service.js +2 -0
  302. package/core/dist/runtime-v2/pain-to-principle-service.js.map +1 -1
  303. package/core/dist/runtime-v2/proven-channel-baseline.d.ts.map +1 -1
  304. package/core/dist/runtime-v2/proven-channel-baseline.js +14 -0
  305. package/core/dist/runtime-v2/proven-channel-baseline.js.map +1 -1
  306. package/core/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.js +40 -0
  307. package/core/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.js.map +1 -1
  308. package/core/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  309. package/core/dist/runtime-v2/runner/base-peer-runner.js +1 -0
  310. package/core/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  311. package/core/dist/runtime-v2/runner/diagnostician-runner-options.d.ts +10 -0
  312. package/core/dist/runtime-v2/runner/diagnostician-runner-options.d.ts.map +1 -1
  313. package/core/dist/runtime-v2/runner/diagnostician-runner-options.js +1 -0
  314. package/core/dist/runtime-v2/runner/diagnostician-runner-options.js.map +1 -1
  315. package/core/dist/runtime-v2/runner/diagnostician-runner.d.ts.map +1 -1
  316. package/core/dist/runtime-v2/runner/diagnostician-runner.js +28 -4
  317. package/core/dist/runtime-v2/runner/diagnostician-runner.js.map +1 -1
  318. package/core/dist/runtime-v2/runner/peer-runner-types.d.ts +9 -0
  319. package/core/dist/runtime-v2/runner/peer-runner-types.d.ts.map +1 -1
  320. package/core/dist/runtime-v2/store/runtime-state-manager.d.ts.map +1 -1
  321. package/core/dist/runtime-v2/store/runtime-state-manager.integration.test.js +34 -1
  322. package/core/dist/runtime-v2/store/runtime-state-manager.integration.test.js.map +1 -1
  323. package/core/dist/runtime-v2/store/runtime-state-manager.js +1 -0
  324. package/core/dist/runtime-v2/store/runtime-state-manager.js.map +1 -1
  325. package/core/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
  326. package/core/dist/runtime-v2/store/sqlite-connection.js +9 -1
  327. package/core/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
  328. package/core/dist/runtime-v2/store/task/sqlite-task-store.js +1 -1
  329. package/core/dist/runtime-v2/store/task/sqlite-task-store.js.map +1 -1
  330. package/core/dist/runtime-v2/task-status.d.ts +4 -4
  331. package/core/dist/runtime-v2/task-status.d.ts.map +1 -1
  332. package/core/dist/runtime-v2/task-status.js +2 -2
  333. package/core/dist/runtime-v2/task-status.js.map +1 -1
  334. package/core/package.json +1 -1
  335. package/package.json +2 -2
  336. package/pd-cli/dist/commands/console.d.ts +2 -0
  337. package/pd-cli/dist/commands/console.d.ts.map +1 -1
  338. package/pd-cli/dist/commands/console.js +6 -1
  339. package/pd-cli/dist/commands/console.js.map +1 -1
  340. package/pd-cli/dist/commands/diagnose.d.ts.map +1 -1
  341. package/pd-cli/dist/commands/diagnose.js +18 -1
  342. package/pd-cli/dist/commands/diagnose.js.map +1 -1
  343. package/pd-cli/dist/commands/pain-evidence.d.ts +41 -0
  344. package/pd-cli/dist/commands/pain-evidence.d.ts.map +1 -0
  345. package/pd-cli/dist/commands/pain-evidence.js +177 -0
  346. package/pd-cli/dist/commands/pain-evidence.js.map +1 -0
  347. package/pd-cli/dist/commands/pain-record.d.ts.map +1 -1
  348. package/pd-cli/dist/commands/pain-record.js +24 -9
  349. package/pd-cli/dist/commands/pain-record.js.map +1 -1
  350. package/pd-cli/dist/commands/pain-retry.d.ts +19 -0
  351. package/pd-cli/dist/commands/pain-retry.d.ts.map +1 -0
  352. package/pd-cli/dist/commands/pain-retry.js +485 -0
  353. package/pd-cli/dist/commands/pain-retry.js.map +1 -0
  354. package/pd-cli/dist/commands/runtime-internalization-run-once.d.ts.map +1 -1
  355. package/pd-cli/dist/commands/runtime-internalization-run-once.js +59 -9
  356. package/pd-cli/dist/commands/runtime-internalization-run-once.js.map +1 -1
  357. package/pd-cli/dist/commands/runtime-uat.d.ts +1 -0
  358. package/pd-cli/dist/commands/runtime-uat.d.ts.map +1 -1
  359. package/pd-cli/dist/commands/runtime-uat.guard.test.d.ts +2 -0
  360. package/pd-cli/dist/commands/runtime-uat.guard.test.d.ts.map +1 -0
  361. package/pd-cli/dist/commands/runtime-uat.guard.test.js +155 -0
  362. package/pd-cli/dist/commands/runtime-uat.guard.test.js.map +1 -0
  363. package/pd-cli/dist/commands/runtime-uat.js +29 -3
  364. package/pd-cli/dist/commands/runtime-uat.js.map +1 -1
  365. package/pd-cli/dist/config-reader.d.ts +25 -0
  366. package/pd-cli/dist/config-reader.d.ts.map +1 -0
  367. package/pd-cli/dist/config-reader.js +109 -0
  368. package/pd-cli/dist/config-reader.js.map +1 -0
  369. package/pd-cli/dist/index.js +40 -5
  370. package/pd-cli/dist/index.js.map +1 -1
  371. package/pd-cli/dist/services/console-launcher.d.ts.map +1 -1
  372. package/pd-cli/dist/services/console-launcher.js +29 -15
  373. package/pd-cli/dist/services/console-launcher.js.map +1 -1
  374. package/pd-cli/dist/services/demo-story-a-runner.d.ts.map +1 -1
  375. package/pd-cli/dist/services/demo-story-a-runner.js +1 -0
  376. package/pd-cli/dist/services/demo-story-a-runner.js.map +1 -1
  377. package/pd-cli/dist/utils/production-workspace-guard.d.ts +77 -0
  378. package/pd-cli/dist/utils/production-workspace-guard.d.ts.map +1 -0
  379. package/pd-cli/dist/utils/production-workspace-guard.js +170 -0
  380. package/pd-cli/dist/utils/production-workspace-guard.js.map +1 -0
  381. package/pd-cli/dist/utils/production-workspace-guard.test.d.ts +2 -0
  382. package/pd-cli/dist/utils/production-workspace-guard.test.d.ts.map +1 -0
  383. package/pd-cli/dist/utils/production-workspace-guard.test.js +95 -0
  384. package/pd-cli/dist/utils/production-workspace-guard.test.js.map +1 -0
  385. package/pd-cli/package.json +1 -1
  386. package/plugin/dist/commands/pain.js +27 -2
  387. package/plugin/dist/core/pain-diagnostic-gate.d.ts +6 -0
  388. package/plugin/dist/core/pain-diagnostic-gate.js +9 -0
  389. package/plugin/dist/hooks/after-tool-call-helpers.d.ts +90 -0
  390. package/plugin/dist/hooks/after-tool-call-helpers.js +486 -0
  391. package/plugin/dist/hooks/after-tool-call-types.d.ts +92 -0
  392. package/plugin/dist/hooks/after-tool-call-types.js +13 -0
  393. package/plugin/dist/hooks/gate-block-helper.js +73 -29
  394. package/plugin/dist/hooks/llm.js +49 -29
  395. package/plugin/dist/hooks/message-sanitize.d.ts +21 -0
  396. package/plugin/dist/hooks/message-sanitize.js +30 -0
  397. package/plugin/dist/hooks/pain.d.ts +26 -3
  398. package/plugin/dist/hooks/pain.js +165 -425
  399. package/plugin/dist/hooks/prompt.js +3 -2
  400. package/plugin/dist/hooks/trajectory-evidence.d.ts +11 -0
  401. package/plugin/dist/hooks/trajectory-evidence.js +65 -0
  402. package/plugin/dist/hooks/triage-adapter.d.ts +82 -0
  403. package/plugin/dist/hooks/triage-adapter.js +121 -0
  404. package/console/dist/server/models/EventLogReadModel.d.ts +0 -33
  405. package/console/dist/server/models/EventLogReadModel.js +0 -218
  406. package/console/dist/server/models/EvolutionConsoleModel.d.ts +0 -79
  407. package/console/dist/server/models/EvolutionConsoleModel.js +0 -179
  408. package/console/dist/server/models/FeedbackConsoleModel.d.ts +0 -38
  409. package/console/dist/server/models/FeedbackConsoleModel.js +0 -129
  410. package/console/dist/server/models/GateConsoleModel.d.ts +0 -50
  411. package/console/dist/server/models/GateConsoleModel.js +0 -151
  412. package/console/dist/server/models/OverviewConsoleModel.d.ts +0 -22
  413. package/console/dist/server/models/OverviewConsoleModel.js +0 -202
  414. package/console/dist/server/models/PipelineStatsModel.d.ts +0 -35
  415. package/console/dist/server/models/PipelineStatsModel.js +0 -129
  416. package/console/dist/server/models/SampleConsoleModel.d.ts +0 -21
  417. package/console/dist/server/models/SampleConsoleModel.js +0 -188
  418. package/console/dist/server/models/ThinkingModelsConsoleModel.d.ts +0 -22
  419. package/console/dist/server/models/ThinkingModelsConsoleModel.js +0 -75
  420. package/console/dist/server/routes/agents.d.ts +0 -3
  421. package/console/dist/server/routes/agents.js +0 -442
  422. package/console/dist/server/routes/central.d.ts +0 -5
  423. package/console/dist/server/routes/central.js +0 -31
  424. package/console/dist/server/routes/events.d.ts +0 -10
  425. package/console/dist/server/routes/events.js +0 -99
  426. package/console/dist/server/routes/evolution.js +0 -73
  427. package/console/dist/server/routes/feedback.d.ts +0 -3
  428. package/console/dist/server/routes/feedback.js +0 -65
  429. package/console/dist/server/routes/gates.d.ts +0 -3
  430. package/console/dist/server/routes/gates.js +0 -52
  431. package/console/dist/server/routes/overview.d.ts +0 -3
  432. package/console/dist/server/routes/overview.js +0 -49
  433. package/console/dist/server/routes/pipeline.d.ts +0 -3
  434. package/console/dist/server/routes/pipeline.js +0 -33
  435. package/console/dist/server/routes/samples.d.ts +0 -3
  436. package/console/dist/server/routes/samples.js +0 -101
  437. package/console/dist/server/routes/thinking-models.d.ts +0 -3
  438. package/console/dist/server/routes/thinking-models.js +0 -54
  439. package/console/dist/ui/components/app-sidebar.d.ts +0 -7
  440. package/console/dist/ui/components/app-sidebar.js +0 -75
  441. package/console/dist/ui/components/compare-view.d.ts +0 -7
  442. package/console/dist/ui/components/compare-view.js +0 -32
  443. package/console/dist/ui/components/data-freshness-indicator.d.ts +0 -10
  444. package/console/dist/ui/components/data-freshness-indicator.js +0 -63
  445. package/console/dist/ui/components/health-diagnostic-card.d.ts +0 -15
  446. package/console/dist/ui/components/health-diagnostic-card.js +0 -42
  447. package/console/dist/ui/components/page-header.d.ts +0 -10
  448. package/console/dist/ui/components/page-header.js +0 -37
  449. package/console/dist/ui/hooks/useAutoRefresh.d.ts +0 -13
  450. package/console/dist/ui/hooks/useAutoRefresh.js +0 -64
  451. package/console/dist/ui/hooks/useBookmarks.d.ts +0 -6
  452. package/console/dist/ui/hooks/useBookmarks.js +0 -43
  453. package/console/dist/ui/hooks/useDebounce.d.ts +0 -2
  454. package/console/dist/ui/hooks/useDebounce.js +0 -32
  455. package/console/dist/ui/hooks/useKeyboardNavigation.d.ts +0 -14
  456. package/console/dist/ui/hooks/useKeyboardNavigation.js +0 -75
  457. package/console/dist/ui/pages/AgentsPage.d.ts +0 -1
  458. package/console/dist/ui/pages/AgentsPage.js +0 -167
  459. package/console/dist/ui/pages/ApprovalsPage.d.ts +0 -1
  460. package/console/dist/ui/pages/ApprovalsPage.js +0 -123
  461. package/console/dist/ui/pages/CentralPage.d.ts +0 -1
  462. package/console/dist/ui/pages/CentralPage.js +0 -57
  463. package/console/dist/ui/pages/DataFlowPage.d.ts +0 -1
  464. package/console/dist/ui/pages/DataFlowPage.js +0 -158
  465. package/console/dist/ui/pages/EventLogPage.d.ts +0 -1
  466. package/console/dist/ui/pages/EventLogPage.js +0 -176
  467. package/console/dist/ui/pages/EvolutionPage.d.ts +0 -1
  468. package/console/dist/ui/pages/EvolutionPage.js +0 -118
  469. package/console/dist/ui/pages/FeedbackPage.d.ts +0 -1
  470. package/console/dist/ui/pages/FeedbackPage.js +0 -46
  471. package/console/dist/ui/pages/GatesPage.d.ts +0 -1
  472. package/console/dist/ui/pages/GatesPage.js +0 -31
  473. package/console/dist/ui/pages/LoginPage.d.ts +0 -5
  474. package/console/dist/ui/pages/LoginPage.js +0 -39
  475. package/console/dist/ui/pages/OverviewPage.d.ts +0 -1
  476. package/console/dist/ui/pages/OverviewPage.js +0 -50
  477. package/console/dist/ui/pages/PainPage.js +0 -50
  478. package/console/dist/ui/pages/PrincipleDetailPage.js +0 -145
  479. package/console/dist/ui/pages/PrinciplesPage.js +0 -322
  480. package/console/dist/ui/pages/ReportProblemPage.js +0 -186
  481. package/console/dist/ui/pages/SamplesPage.d.ts +0 -1
  482. package/console/dist/ui/pages/SamplesPage.js +0 -105
  483. package/console/dist/ui/pages/SettingsPage.d.ts +0 -1
  484. package/console/dist/ui/pages/SettingsPage.js +0 -86
  485. package/console/dist/ui/pages/TasksPage.d.ts +0 -1
  486. package/console/dist/ui/pages/TasksPage.js +0 -373
  487. package/console/dist/ui/pages/ThinkingModelsPage.d.ts +0 -1
  488. package/console/dist/ui/pages/ThinkingModelsPage.js +0 -32
  489. package/console/dist/ui/pages/UpdatePage.d.ts +0 -1
  490. package/console/dist/ui/pages/UpdatePage.js +0 -142
  491. /package/console/dist/ui/pages/{PainPage.d.ts → pain/PainPage.d.ts} +0 -0
  492. /package/console/dist/ui/pages/{PrincipleDetailPage.d.ts → principles/PrincipleDetailPage.d.ts} +0 -0
  493. /package/console/dist/ui/pages/{PrinciplesPage.d.ts → principles/PrinciplesPage.d.ts} +0 -0
  494. /package/console/dist/ui/pages/{ReportProblemPage.d.ts → report-problem/ReportProblemPage.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"pd-config-effective.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-effective.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAQL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,UAAU,EACV,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAuC;IAC9E,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO;YACL,MAAM,EAAE,kBAAkB,EAAE;YAC5B,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,uEAAuE;IACvE,MAAM,QAAQ,GAAqC,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC3E,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;gBACvC,SAAS;YACX,CAAC;YACD,qCAAqC;YACrC,IAAI,YAAY,CAAC,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,YAAY,MAAM,mCAAmC,CAAC,CAAC;gBACrE,SAAS;YACX,CAAC;YACD,mCAAmC;YACnC,IAAI,YAAY,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC3D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,YAAY,MAAM,iCAAiC,CAAC,CAAC;gBACnE,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACrC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,YAAY,MAAM,gCAAgC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,MAAM,eAAe,GAAmC,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9E,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAC5C,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC9C,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC,EAAE,CAAC;QAChE,eAAe,CAAC,0BAA0B,CAAC,GAAG,EAAE,GAAG,uBAAuB,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,oBAAoB,0BAA0B,sCAAsC,CAAC,CAAC;IACtG,CAAC;IAED,sDAAsD;IACtD,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAC;IACjD,MAAM,MAAM,GAAyC,EAAE,CAAC;IAExD,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,2DAA2D;YAC3D,MAAM,CAAC,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,cAAc,EAAE,WAAW,CAAC,cAAc,IAAI,UAAU,CAAC,cAAc,CAAC,cAAc;aACvF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,wFAAwF;YACxF,MAAM,CAAC,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,cAAc,CAAC,OAAO;gBAC/B,cAAc,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc;aACzD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACpH,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,uBAAuB,OAAO,CAAC,cAAc,gCAAgC,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAyB;QAC3C,cAAc,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc;QACxD,MAAM,EAAE,MAAyD;KAClE,CAAC;IAEF,iCAAiC;IACjC,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;IAE9C,MAAM,MAAM,GAAa;QACvB,OAAO,EAAE,iBAAiB;QAC1B,QAAQ;QACR,eAAe;QACf,cAAc;QACd,EAAE;KACH,CAAC;IAEF,OAAO;QACL,MAAM;QACN,MAAM,EAAE,aAAa;QACrB,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pd-config-effective.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-effective.ts"],"names":[],"mappings":"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"}
@@ -62,12 +62,20 @@ export interface UiConfig {
62
62
  mode: DiagnosticsMode;
63
63
  };
64
64
  }
65
+ import type { OutputLanguage } from '../language-directive.js';
66
+ /** Configuration for principle generation behavior. */
67
+ export interface PrinciplesConfig {
68
+ /** Preferred language for generated principle text. Source of truth for generation. */
69
+ outputLanguage?: OutputLanguage;
70
+ }
65
71
  export interface PdConfig {
66
72
  version: PdConfigVersion;
67
73
  features: Record<string, FeatureFlagEntry>;
68
74
  runtimeProfiles: Record<string, RuntimeProfile>;
69
75
  internalAgents: InternalAgentsConfig;
70
76
  ui: UiConfig;
77
+ /** Principle generation preferences (PRI-336). */
78
+ principles?: PrinciplesConfig;
71
79
  }
72
80
  export interface PdConfigValidationError {
73
81
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pd-config-types.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pd-config-types.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pd-config-types.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAGnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAU3E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAU,CAAC;AA6BlE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,eAAe;IACf,SAAS;IACT,aAAa;IACb,QAAQ;IACR,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,SAAS;IACT,oBAAoB;IACpB,iBAAiB;CACT,CAAC;AAqBX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAuFvE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"pd-config-types.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAGnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAU3E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAU,CAAC;AA6BlE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,eAAe;IACf,SAAS;IACT,aAAa;IACb,QAAQ;IACR,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,SAAS;IACT,oBAAoB;IACpB,iBAAiB;CACT,CAAC;AAqBX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAmGvE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Tests for outputLanguage integration into DiagnosticianPromptBuilder (PRI-336).
3
+ *
4
+ * Validates:
5
+ * - config → diagnostician prompt contains language directive
6
+ * - zh-CN: prompt explicitly requests Chinese principle text
7
+ * - en: prompt explicitly requests English principle text
8
+ * - technical identifiers not translated instruction exists
9
+ * - undefined outputLanguage: no language directive (backward compatible)
10
+ * - lineage fields are not translated
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=diagnostician-prompt-language.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostician-prompt-language.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Tests for outputLanguage integration into DiagnosticianPromptBuilder (PRI-336).
3
+ *
4
+ * Validates:
5
+ * - config → diagnostician prompt contains language directive
6
+ * - zh-CN: prompt explicitly requests Chinese principle text
7
+ * - en: prompt explicitly requests English principle text
8
+ * - technical identifiers not translated instruction exists
9
+ * - undefined outputLanguage: no language directive (backward compatible)
10
+ * - lineage fields are not translated
11
+ */
12
+ import { describe, it, expect } from 'vitest';
13
+ import { DiagnosticianPromptBuilder, buildDiagnosticProtocolInstruction } from '../../diagnostician-prompt-builder.js';
14
+ /** Trust-boundary helper: validate parsed prompt JSON before property access. */
15
+ function parsePromptJson(raw) {
16
+ const parsed = JSON.parse(raw);
17
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
18
+ throw new Error(`parsePromptJson: expected object, got ${typeof parsed}`);
19
+ }
20
+ return parsed;
21
+ }
22
+ const MINIMAL_PAYLOAD = {
23
+ contextId: 'ctx-1',
24
+ contextHash: 'hash-abc123',
25
+ taskId: 'task-xyz',
26
+ workspaceDir: 'D:/work',
27
+ sourceRefs: ['ref-1'],
28
+ diagnosisTarget: {
29
+ painId: 'pain-1',
30
+ reasonSummary: 'Agent failed to use tool',
31
+ },
32
+ conversationWindow: [],
33
+ };
34
+ describe('DiagnosticianPromptBuilder — outputLanguage (PRI-336)', () => {
35
+ it('includes Chinese language directive when outputLanguage is zh-CN', () => {
36
+ const builder = new DiagnosticianPromptBuilder();
37
+ const result = builder.buildPrompt(MINIMAL_PAYLOAD, undefined, 'zh-CN');
38
+ const parsed = parsePromptJson(result.message);
39
+ expect(parsed.diagnosticInstruction).toContain('Simplified Chinese');
40
+ expect(parsed.diagnosticInstruction).toContain('简体中文');
41
+ expect(parsed.diagnosticInstruction).toContain('LANGUAGE DIRECTIVE');
42
+ });
43
+ it('includes English language directive when outputLanguage is en', () => {
44
+ const builder = new DiagnosticianPromptBuilder();
45
+ const result = builder.buildPrompt(MINIMAL_PAYLOAD, undefined, 'en');
46
+ const parsed = parsePromptJson(result.message);
47
+ expect(parsed.diagnosticInstruction).toContain('English');
48
+ expect(parsed.diagnosticInstruction).toContain('PRI-336');
49
+ });
50
+ it('does NOT include language directive when outputLanguage is undefined', () => {
51
+ const builder = new DiagnosticianPromptBuilder();
52
+ const result = builder.buildPrompt(MINIMAL_PAYLOAD, undefined, undefined);
53
+ const parsed = parsePromptJson(result.message);
54
+ expect(parsed.diagnosticInstruction).not.toContain('LANGUAGE DIRECTIVE');
55
+ expect(parsed.diagnosticInstruction).not.toContain('PRI-336');
56
+ });
57
+ it('includes technical identifiers not translated instruction', () => {
58
+ const builder = new DiagnosticianPromptBuilder();
59
+ const result = builder.buildPrompt(MINIMAL_PAYLOAD, undefined, 'zh-CN');
60
+ const parsed = parsePromptJson(result.message);
61
+ expect(parsed.diagnosticInstruction).toContain('taskId');
62
+ expect(parsed.diagnosticInstruction).toContain('sourcePainId');
63
+ expect(parsed.diagnosticInstruction).toContain('MUST NOT be translated');
64
+ });
65
+ it('includes lineage fields not translated instruction', () => {
66
+ const builder = new DiagnosticianPromptBuilder();
67
+ const result = builder.buildPrompt(MINIMAL_PAYLOAD, undefined, 'en');
68
+ const parsed = parsePromptJson(result.message);
69
+ expect(parsed.diagnosticInstruction).toContain('Lineage and evidence fields MUST NOT be translated');
70
+ });
71
+ it('preserves all other prompt fields when outputLanguage is provided', () => {
72
+ const builder = new DiagnosticianPromptBuilder();
73
+ const resultWithout = builder.buildPrompt(MINIMAL_PAYLOAD, undefined, undefined);
74
+ const resultWith = builder.buildPrompt(MINIMAL_PAYLOAD, undefined, 'zh-CN');
75
+ const parsedWithout = parsePromptJson(resultWithout.message);
76
+ const parsedWith = parsePromptJson(resultWith.message);
77
+ // Same fields except diagnosticInstruction
78
+ expect(parsedWith.taskId).toBe(parsedWithout.taskId);
79
+ expect(parsedWith.contextHash).toBe(parsedWithout.contextHash);
80
+ expect(parsedWith.diagnosisTarget).toEqual(parsedWithout.diagnosisTarget);
81
+ expect(parsedWith.conversationWindow).toEqual(parsedWithout.conversationWindow);
82
+ expect(parsedWith.sourceRefs).toEqual(parsedWithout.sourceRefs);
83
+ expect(parsedWith.context).toEqual(parsedWithout.context);
84
+ });
85
+ });
86
+ describe('buildDiagnosticProtocolInstruction — outputLanguage (PRI-336)', () => {
87
+ it('includes language directive when outputLanguage is provided', () => {
88
+ const instruction = buildDiagnosticProtocolInstruction(undefined, undefined, 'zh-CN');
89
+ expect(instruction).toContain('LANGUAGE DIRECTIVE');
90
+ expect(instruction).toContain('Simplified Chinese');
91
+ });
92
+ it('does not include language directive when outputLanguage is undefined', () => {
93
+ const instruction = buildDiagnosticProtocolInstruction(undefined, undefined, undefined);
94
+ expect(instruction).not.toContain('LANGUAGE DIRECTIVE');
95
+ });
96
+ });
97
+ //# sourceMappingURL=diagnostician-prompt-language.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostician-prompt-language.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@
30
30
  import type { DiagnosticianContextPayload, HistoryQueryEntry, DiagnosisTarget } from './context-payload.js';
31
31
  import type { TSchema } from '@sinclair/typebox';
32
32
  import type { SchemaPromptAdapter } from './adapter/schema-prompt-adapter.js';
33
+ import type { OutputLanguage } from './language-directive.js';
33
34
  /**
34
35
  * PromptInput — the JSON message sent to openclaw agent via --message flag.
35
36
  *
@@ -99,7 +100,7 @@ export interface PromptBuildResult {
99
100
  * The 5-phase protocol is embedded directly in the prompt so the LLM follows it
100
101
  * regardless of whether OpenClaw loads SKILL.md as the agent system prompt.
101
102
  */
102
- export declare function buildDiagnosticProtocolInstruction(adapter?: SchemaPromptAdapter, schema?: TSchema): string;
103
+ export declare function buildDiagnosticProtocolInstruction(adapter?: SchemaPromptAdapter, schema?: TSchema, outputLanguage?: OutputLanguage): string;
103
104
  /**
104
105
  * Summarizes a conversation window for inclusion in the prompt.
105
106
  * DPB-04: Prompt includes conversationWindow summary.
@@ -125,6 +126,6 @@ export declare class DiagnosticianPromptBuilder {
125
126
  *
126
127
  * Per DPB-07: NO extraSystemPrompt is added — agent profile is the source of truth.
127
128
  */
128
- buildPrompt(payload: DiagnosticianContextPayload, limits?: PromptBuilderLimits): PromptBuildResult;
129
+ buildPrompt(payload: DiagnosticianContextPayload, limits?: PromptBuilderLimits, outputLanguage?: OutputLanguage): PromptBuildResult;
129
130
  }
130
131
  //# sourceMappingURL=diagnostician-prompt-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostician-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAI9E;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kEAAkE;IAClE,OAAO,EAAE,2BAA2B,CAAC;IACrC;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,6BAA6B,EAAE,mBAIlC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,GAAE,mBAAsD,EAC/D,MAAM,GAAE,OAAqC,GAC5C,MAAM,CAwDR;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,iBAAiB,EAAE,GAC3B,iBAAiB,EAAE,CAErB;AAED,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAG/B,OAAO,GAAE,mBAAsD,EAC/D,MAAM,GAAE,OAAqC;IAM/C;;;;;;;;;;;;OAYG;IACH,WAAW,CACT,OAAO,EAAE,2BAA2B,EACpC,MAAM,GAAE,mBAAmD,GAC1D,iBAAiB;CAkErB"}
1
+ {"version":3,"file":"diagnostician-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAG9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kEAAkE;IAClE,OAAO,EAAE,2BAA2B,CAAC;IACrC;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,6BAA6B,EAAE,mBAIlC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,GAAE,mBAAsD,EAC/D,MAAM,GAAE,OAAqC,EAC7C,cAAc,CAAC,EAAE,cAAc,GAC9B,MAAM,CAyDR;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,iBAAiB,EAAE,GAC3B,iBAAiB,EAAE,CAErB;AAED,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAG/B,OAAO,GAAE,mBAAsD,EAC/D,MAAM,GAAE,OAAqC;IAM/C;;;;;;;;;;;;OAYG;IACH,WAAW,CACT,OAAO,EAAE,2BAA2B,EACpC,MAAM,GAAE,mBAAmD,EAC3D,cAAc,CAAC,EAAE,cAAc,GAC9B,iBAAiB;CAkErB"}
@@ -1,5 +1,6 @@
1
1
  import { DefaultSchemaPromptAdapter } from './adapter/schema-prompt-adapter.js';
2
2
  import { DiagnosticianOutputV1Schema } from './diagnostician-output.js';
3
+ import { buildLanguageDirective } from './language-directive.js';
3
4
  export const DEFAULT_PROMPT_BUILDER_LIMITS = {
4
5
  maxConversationEntries: 30,
5
6
  maxEntryTextChars: 2000,
@@ -16,9 +17,10 @@ export const DEFAULT_PROMPT_BUILDER_LIMITS = {
16
17
  * The 5-phase protocol is embedded directly in the prompt so the LLM follows it
17
18
  * regardless of whether OpenClaw loads SKILL.md as the agent system prompt.
18
19
  */
19
- export function buildDiagnosticProtocolInstruction(adapter = new DefaultSchemaPromptAdapter(), schema = DiagnosticianOutputV1Schema) {
20
+ export function buildDiagnosticProtocolInstruction(adapter = new DefaultSchemaPromptAdapter(), schema = DiagnosticianOutputV1Schema, outputLanguage) {
20
21
  const example = adapter.generateExample(schema);
21
22
  const constraints = adapter.generateConstraints(schema);
23
+ const languageDirective = buildLanguageDirective(outputLanguage);
22
24
  return `You are a root cause analysis expert. Follow this protocol:
23
25
 
24
26
  PHASE 1 — Evidence Review:
@@ -70,7 +72,7 @@ IMPORTANT: The example above is ILLUSTRATIVE ONLY. Your recommendations MUST be
70
72
  CONSTRAINTS:
71
73
  - Output ONLY valid JSON — no markdown, no explanatory text, no code fences, no prose before or after
72
74
  - Do NOT read files, call tools, or write to any database
73
- ${constraints}`;
75
+ ${constraints}${languageDirective}`;
74
76
  }
75
77
  /**
76
78
  * Summarizes a conversation window for inclusion in the prompt.
@@ -102,7 +104,7 @@ export class DiagnosticianPromptBuilder {
102
104
  *
103
105
  * Per DPB-07: NO extraSystemPrompt is added — agent profile is the source of truth.
104
106
  */
105
- buildPrompt(payload, limits = DEFAULT_PROMPT_BUILDER_LIMITS) {
107
+ buildPrompt(payload, limits = DEFAULT_PROMPT_BUILDER_LIMITS, outputLanguage) {
106
108
  const truncationWarnings = [];
107
109
  // DPB-04: Apply truncation to conversationWindow to prevent token overflow
108
110
  const rawWindow = summarizeConversationWindow(payload.conversationWindow);
@@ -126,7 +128,7 @@ export class DiagnosticianPromptBuilder {
126
128
  ...payload,
127
129
  conversationWindow,
128
130
  };
129
- const diagnosticInstruction = buildDiagnosticProtocolInstruction(this.adapter, this.schema);
131
+ const diagnosticInstruction = buildDiagnosticProtocolInstruction(this.adapter, this.schema, outputLanguage);
130
132
  // DPB-04: Explicit top-level fields at the prompt level
131
133
  const promptInput = {
132
134
  taskId: payload.taskId,
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostician-prompt-builder.js","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-prompt-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostician-prompt-builder.js","sourceRoot":"","sources":["../../src/runtime-v2/diagnostician-prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Shared evidence sanitizer for durable pain signal storage.
3
+ *
4
+ * Used by:
5
+ * - pain-signal-observability.ts (core package)
6
+ * - message-sanitize.ts (openclaw-plugin package)
7
+ *
8
+ * Design contract (EP-08 Security Boundary Placement):
9
+ * - Sanitization happens at the PERSISTENCE boundary, not at evaluation boundary
10
+ * - Enforcement input (raw params, error text) stays available for gate/score computation
11
+ * - All strings are token-redacted and bounded before durable storage
12
+ * - Unknown-first: never throws on malformed input; returns {} or bounded preview
13
+ * - Recursive with depth/key/array limits to prevent infinite traversal
14
+ *
15
+ * ERR checklist:
16
+ * - ERR-001: no `as` casts — input is `unknown`, narrowed with typeof guards
17
+ * - ERR-055: ANY-segment sensitive field matching, not ALL-segment
18
+ * - ERR-056: token redaction runs on ALL strings, not just truncation
19
+ * - ERR-051: redaction is at persistence output path, not evaluation input path
20
+ * - EP-08: platform-agnostic path basename — uses split on both `\\` and `/`,
21
+ * never relies on nodePath.basename which only splits on the host OS separator.
22
+ */
23
+ export declare const MAX_EVIDENCE_VALUE_CHARS = 200;
24
+ /**
25
+ * Converges a single absolute path to a safe representation.
26
+ * - Under workspaceDir → repo-relative
27
+ * - Other absolute → basename only (platform-agnostic)
28
+ * - Relative paths → kept as-is
29
+ */
30
+ export declare function convergePath(value: string, workspaceDir?: string): string;
31
+ /**
32
+ * Sanitize a single string value:
33
+ * 1. Strip internal PD tags
34
+ * 2. Redact token-like patterns
35
+ * 3. Replace absolute paths embedded in the string
36
+ * 4. Bound length
37
+ */
38
+ export declare function sanitizeString(value: string, workspaceDir?: string): string;
39
+ /**
40
+ * Recursively sanitize any value for durable evidence storage.
41
+ * - Primitives: string → redact+bound; number/boolean → pass-through
42
+ * - Objects: recurse with key limit
43
+ * - Arrays: recurse with item limit
44
+ * - Depth limit prevents infinite traversal
45
+ *
46
+ * ERR-001: input is `unknown`, narrowed with typeof guards (no `as` casts)
47
+ */
48
+ export declare function sanitizeValue(value: unknown, depth?: number, workspaceDir?: string): unknown;
49
+ /**
50
+ * Sanitize tool-call params for evidence/trajectory storage.
51
+ *
52
+ * ERR-001: accepts `unknown`, not `Record<string, unknown>`. Runtime guards only.
53
+ * ERR-055: ANY-segment sensitive field matching.
54
+ * ERR-056: token redaction runs on ALL strings via sanitizeValue recursion.
55
+ */
56
+ export declare function sanitizeToolParams(params: unknown, workspaceDir?: string): Record<string, unknown>;
57
+ //# sourceMappingURL=evidence-sanitizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-sanitizer.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/evidence-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAuD5C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBzE;AAqBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAyB3E;AAID;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,KAAK,SAAI,EACT,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CA+BT;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BzB"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Shared evidence sanitizer for durable pain signal storage.
3
+ *
4
+ * Used by:
5
+ * - pain-signal-observability.ts (core package)
6
+ * - message-sanitize.ts (openclaw-plugin package)
7
+ *
8
+ * Design contract (EP-08 Security Boundary Placement):
9
+ * - Sanitization happens at the PERSISTENCE boundary, not at evaluation boundary
10
+ * - Enforcement input (raw params, error text) stays available for gate/score computation
11
+ * - All strings are token-redacted and bounded before durable storage
12
+ * - Unknown-first: never throws on malformed input; returns {} or bounded preview
13
+ * - Recursive with depth/key/array limits to prevent infinite traversal
14
+ *
15
+ * ERR checklist:
16
+ * - ERR-001: no `as` casts — input is `unknown`, narrowed with typeof guards
17
+ * - ERR-055: ANY-segment sensitive field matching, not ALL-segment
18
+ * - ERR-056: token redaction runs on ALL strings, not just truncation
19
+ * - ERR-051: redaction is at persistence output path, not evaluation input path
20
+ * - EP-08: platform-agnostic path basename — uses split on both `\\` and `/`,
21
+ * never relies on nodePath.basename which only splits on the host OS separator.
22
+ */
23
+ // ── Limits ──
24
+ export const MAX_EVIDENCE_VALUE_CHARS = 200;
25
+ const MAX_DEPTH = 4;
26
+ const MAX_KEYS = 50;
27
+ const MAX_ARRAY_ITEMS = 20;
28
+ // ── Token patterns ──
29
+ const TOKEN_LIKE_PATTERNS = [
30
+ /[A-Za-z0-9+/=]{40,}/g,
31
+ /sk-[A-Za-z0-9_-]{20,}/g,
32
+ /ghp_[A-Za-z0-9]{36,}/g,
33
+ /gho_[A-Za-z0-9]{36,}/g,
34
+ /xox[bpras]-[A-Za-z0-9-]{20,}/g,
35
+ /eyJ[A-Za-z0-9_-]{20,}\./g,
36
+ ];
37
+ // ── PD tag patterns ──
38
+ const PD_TAG_PATTERNS = [
39
+ /\[EMOTIONAL_DAMAGE_DETECTED(?::(?:mild|moderate|severe))?\]/gi,
40
+ /\[EMPATHY_ROLLBACK_REQUEST\]/gi,
41
+ /<empathy[^>]*\/?>(?:<\/empathy>)?/gi,
42
+ ];
43
+ // ── Path detection ──
44
+ const ABSOLUTE_PATH_RE = /^(?:[A-Za-z]:[\\/]|\/|\\\\)/;
45
+ const WINDOWS_DRIVE_RE = /^[A-Za-z]:\\/;
46
+ /**
47
+ * Matches absolute paths embedded anywhere inside a string.
48
+ * Windows drive, POSIX root, UNC paths.
49
+ */
50
+ const ABSOLUTE_PATH_IN_STRING_RE = /(?:^|[\s"'=])([A-Za-z]:\\[^\s"'&|<>]+|[A-Za-z]:\/[^\s"'&|<>]+|\\\\[^\s"'&|<>]+|(?:\/[\w.-]+){2,}(?:\/[^\s"'&|<>]*)?)/gm;
51
+ // ── Helpers ──
52
+ function isPlainRecord(value) {
53
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
54
+ }
55
+ /**
56
+ * Platform-agnostic basename that handles both `\` and `/` separators.
57
+ *
58
+ * EP-08: nodePath.basename on Linux does not split on backslash.
59
+ * This helper splits on both separator families so that Windows paths
60
+ * like `D:\Code\principles` produce `principles` even when running on
61
+ * a POSIX CI runner.
62
+ */
63
+ function platformAgnosticBasename(p) {
64
+ const parts = p.split(/[\\/]/);
65
+ return parts[parts.length - 1] || p;
66
+ }
67
+ /**
68
+ * Converges a single absolute path to a safe representation.
69
+ * - Under workspaceDir → repo-relative
70
+ * - Other absolute → basename only (platform-agnostic)
71
+ * - Relative paths → kept as-is
72
+ */
73
+ export function convergePath(value, workspaceDir) {
74
+ if (!ABSOLUTE_PATH_RE.test(value))
75
+ return value;
76
+ // Try repo-relative
77
+ if (workspaceDir) {
78
+ const normalizedWorkspace = workspaceDir.replace(/[\\/]+$/, '');
79
+ const normalizedValue = value.replace(/[\\/]+$/, '');
80
+ // Case-insensitive comparison on Windows
81
+ const compare = WINDOWS_DRIVE_RE.test(value)
82
+ ? (a, b) => a.toLowerCase() === b.toLowerCase()
83
+ : (a, b) => a === b;
84
+ if (compare(normalizedValue.slice(0, normalizedWorkspace.length), normalizedWorkspace)) {
85
+ const relative = normalizedValue.slice(normalizedWorkspace.length).replace(/^[/\\]/, '');
86
+ return relative || platformAgnosticBasename(value);
87
+ }
88
+ }
89
+ // Absolute, not under workspace → basename
90
+ return platformAgnosticBasename(value);
91
+ }
92
+ /**
93
+ * Replace absolute paths embedded inside a longer string.
94
+ * e.g. "cd D:\Code\principles && git status" → "cd <path:principles> && git status"
95
+ * e.g. "error in /home/user/project/src/file.ts" → "error in <path:file.ts>"
96
+ */
97
+ function replacePathsInString(value, workspaceDir) {
98
+ return value.replace(ABSOLUTE_PATH_IN_STRING_RE, (fullMatch, capturedPath) => {
99
+ const leading = fullMatch.slice(0, fullMatch.length - capturedPath.length);
100
+ const converged = convergePath(capturedPath, workspaceDir);
101
+ // Wrap outside-workspace absolute paths in angle brackets
102
+ if (ABSOLUTE_PATH_RE.test(capturedPath) && converged === platformAgnosticBasename(capturedPath)) {
103
+ return `${leading}<path:${converged}>`;
104
+ }
105
+ return `${leading}${converged}`;
106
+ });
107
+ }
108
+ // ── String sanitization ──
109
+ /**
110
+ * Sanitize a single string value:
111
+ * 1. Strip internal PD tags
112
+ * 2. Redact token-like patterns
113
+ * 3. Replace absolute paths embedded in the string
114
+ * 4. Bound length
115
+ */
116
+ export function sanitizeString(value, workspaceDir) {
117
+ let result = value;
118
+ // 1. Strip PD tags
119
+ for (const p of PD_TAG_PATTERNS) {
120
+ result = result.replace(p, '');
121
+ }
122
+ // 2. Redact tokens
123
+ for (const pattern of TOKEN_LIKE_PATTERNS) {
124
+ result = result.replace(pattern, (match) => {
125
+ const prefix = match.length > 50 ? match.slice(0, 8) : match.slice(0, 4);
126
+ return `${prefix}___REDACTED___${match.length}`;
127
+ });
128
+ }
129
+ // 3. Replace absolute paths embedded in the string
130
+ result = replacePathsInString(result, workspaceDir);
131
+ // 4. Bound length
132
+ if (result.length > MAX_EVIDENCE_VALUE_CHARS) {
133
+ result = result.slice(0, MAX_EVIDENCE_VALUE_CHARS) + '___TRUNCATED___';
134
+ }
135
+ return result.trim();
136
+ }
137
+ // ── Recursive value sanitization ──
138
+ /**
139
+ * Recursively sanitize any value for durable evidence storage.
140
+ * - Primitives: string → redact+bound; number/boolean → pass-through
141
+ * - Objects: recurse with key limit
142
+ * - Arrays: recurse with item limit
143
+ * - Depth limit prevents infinite traversal
144
+ *
145
+ * ERR-001: input is `unknown`, narrowed with typeof guards (no `as` casts)
146
+ */
147
+ export function sanitizeValue(value, depth = 0, workspaceDir) {
148
+ if (depth > MAX_DEPTH)
149
+ return '<max-depth>';
150
+ if (value === null || value === undefined)
151
+ return value;
152
+ if (typeof value === 'string')
153
+ return sanitizeString(value, workspaceDir);
154
+ if (typeof value === 'number' || typeof value === 'boolean')
155
+ return value;
156
+ if (Array.isArray(value)) {
157
+ const items = value.slice(0, MAX_ARRAY_ITEMS);
158
+ const mapped = items.map((item) => sanitizeValue(item, depth + 1, workspaceDir));
159
+ if (value.length > MAX_ARRAY_ITEMS) {
160
+ mapped.push(`<${value.length - MAX_ARRAY_ITEMS} more items>`);
161
+ }
162
+ return mapped;
163
+ }
164
+ // ERR-001: runtime guard instead of `as Record`
165
+ if (isPlainRecord(value)) {
166
+ const result = {};
167
+ let count = 0;
168
+ for (const [k, v] of Object.entries(value)) {
169
+ if (count >= MAX_KEYS) {
170
+ result['<truncated>'] = `${Object.keys(value).length - count} more keys`;
171
+ break;
172
+ }
173
+ result[k] = sanitizeValue(v, depth + 1, workspaceDir);
174
+ count++;
175
+ }
176
+ return result;
177
+ }
178
+ return '<unsupported-type>';
179
+ }
180
+ /**
181
+ * Sanitize tool-call params for evidence/trajectory storage.
182
+ *
183
+ * ERR-001: accepts `unknown`, not `Record<string, unknown>`. Runtime guards only.
184
+ * ERR-055: ANY-segment sensitive field matching.
185
+ * ERR-056: token redaction runs on ALL strings via sanitizeValue recursion.
186
+ */
187
+ export function sanitizeToolParams(params, workspaceDir) {
188
+ if (params === null || params === undefined) {
189
+ return {};
190
+ }
191
+ if (typeof params === 'string') {
192
+ return { '<string-input>': sanitizeString(params.slice(0, MAX_EVIDENCE_VALUE_CHARS), workspaceDir) };
193
+ }
194
+ if (typeof params === 'number' || typeof params === 'boolean') {
195
+ return {};
196
+ }
197
+ if (Array.isArray(params)) {
198
+ const sanitized = sanitizeValue(params, 0, workspaceDir);
199
+ if (Array.isArray(sanitized)) {
200
+ return { '<array-input>': sanitized.join(', ').slice(0, MAX_EVIDENCE_VALUE_CHARS) };
201
+ }
202
+ return { '<array-input>': '<sanitization-error>' };
203
+ }
204
+ if (isPlainRecord(params)) {
205
+ const sanitized = sanitizeValue(params, 0, workspaceDir);
206
+ if (isPlainRecord(sanitized)) {
207
+ return sanitized;
208
+ }
209
+ return {};
210
+ }
211
+ return {};
212
+ }
213
+ //# sourceMappingURL=evidence-sanitizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-sanitizer.js","sourceRoot":"","sources":["../../src/runtime-v2/evidence-sanitizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Admission Events Tests — PEAT-B2
3
+ *
4
+ * Tests for admission event creation, serialization, and privacy validation.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=admission-events.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admission-events.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/evidence-triage/__tests__/admission-events.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}