principles-disciple 1.8.0 → 1.8.2

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 (460) hide show
  1. package/ADVANCED_CONFIG_ZH.md +97 -0
  2. package/AGENT_INSTALL.md +173 -0
  3. package/AGENT_INSTALL_EN.md +173 -0
  4. package/INSTALL.md +256 -0
  5. package/SKILL.md +63 -0
  6. package/docs/COMMAND_REFERENCE.md +76 -0
  7. package/docs/COMMAND_REFERENCE_EN.md +79 -0
  8. package/esbuild.config.js +75 -0
  9. package/openclaw.plugin.json +6 -1
  10. package/package.json +13 -15
  11. package/scripts/build-web.mjs +46 -0
  12. package/scripts/install-dependencies.cjs +47 -0
  13. package/scripts/sync-plugin.mjs +802 -0
  14. package/scripts/verify-build.mjs +109 -0
  15. package/src/agents/nocturnal-dreamer.md +152 -0
  16. package/src/agents/nocturnal-philosopher.md +138 -0
  17. package/src/agents/nocturnal-reflector.md +126 -0
  18. package/src/agents/nocturnal-scribe.md +164 -0
  19. package/src/commands/capabilities.ts +85 -0
  20. package/{dist/commands/context.js → src/commands/context.ts} +78 -38
  21. package/src/commands/evolution-status.ts +146 -0
  22. package/src/commands/export.ts +111 -0
  23. package/src/commands/focus.ts +533 -0
  24. package/src/commands/nocturnal-review.ts +311 -0
  25. package/src/commands/nocturnal-rollout.ts +763 -0
  26. package/src/commands/nocturnal-train.ts +1002 -0
  27. package/{dist/commands/pain.js → src/commands/pain.ts} +68 -49
  28. package/src/commands/principle-rollback.ts +27 -0
  29. package/{dist/commands/rollback.js → src/commands/rollback.ts} +44 -12
  30. package/src/commands/samples.ts +60 -0
  31. package/src/commands/strategy.ts +38 -0
  32. package/{dist/commands/thinking-os.js → src/commands/thinking-os.ts} +59 -36
  33. package/src/commands/workflow-debug.ts +128 -0
  34. package/{dist/config/defaults/runtime.js → src/config/defaults/runtime.ts} +12 -5
  35. package/src/config/errors.ts +163 -0
  36. package/{dist/config/index.d.ts → src/config/index.ts} +2 -1
  37. package/src/constants/diagnostician.ts +66 -0
  38. package/src/constants/tools.ts +62 -0
  39. package/src/core/adaptive-thresholds.ts +476 -0
  40. package/{dist/core/config-service.js → src/core/config-service.ts} +7 -4
  41. package/{dist/core/config.js → src/core/config.ts} +158 -46
  42. package/src/core/control-ui-db.ts +435 -0
  43. package/{dist/core/detection-funnel.js → src/core/detection-funnel.ts} +36 -21
  44. package/{dist/core/detection-service.js → src/core/detection-service.ts} +7 -4
  45. package/{dist/core/dictionary-service.js → src/core/dictionary-service.ts} +7 -4
  46. package/{dist/core/dictionary.js → src/core/dictionary.ts} +57 -34
  47. package/src/core/empathy-keyword-matcher.ts +327 -0
  48. package/src/core/empathy-types.ts +218 -0
  49. package/src/core/event-log.ts +544 -0
  50. package/src/core/evolution-engine.ts +612 -0
  51. package/src/core/evolution-logger.ts +353 -0
  52. package/src/core/evolution-migration.ts +77 -0
  53. package/src/core/evolution-reducer.ts +731 -0
  54. package/src/core/evolution-types.ts +456 -0
  55. package/src/core/external-training-contract.ts +527 -0
  56. package/src/core/focus-history.ts +1458 -0
  57. package/src/core/hygiene/tracker.ts +117 -0
  58. package/{dist/core/init.js → src/core/init.ts} +39 -26
  59. package/src/core/local-worker-routing.ts +617 -0
  60. package/{dist/core/migration.js → src/core/migration.ts} +18 -11
  61. package/src/core/model-deployment-registry.ts +722 -0
  62. package/src/core/model-training-registry.ts +813 -0
  63. package/src/core/nocturnal-arbiter.ts +706 -0
  64. package/src/core/nocturnal-candidate-scoring.ts +392 -0
  65. package/src/core/nocturnal-compliance.ts +1075 -0
  66. package/src/core/nocturnal-dataset.ts +668 -0
  67. package/src/core/nocturnal-executability.ts +428 -0
  68. package/src/core/nocturnal-export.ts +390 -0
  69. package/{dist/core/nocturnal-paths.js → src/core/nocturnal-paths.ts} +49 -23
  70. package/src/core/nocturnal-trajectory-extractor.ts +484 -0
  71. package/src/core/nocturnal-trinity.ts +1384 -0
  72. package/src/core/pain.ts +122 -0
  73. package/{dist/core/path-resolver.js → src/core/path-resolver.ts} +157 -36
  74. package/{dist/core/paths.js → src/core/paths.ts} +13 -4
  75. package/src/core/principle-training-state.ts +450 -0
  76. package/src/core/profile.ts +226 -0
  77. package/src/core/promotion-gate.ts +822 -0
  78. package/{dist/core/risk-calculator.js → src/core/risk-calculator.ts} +42 -16
  79. package/{dist/core/session-tracker.js → src/core/session-tracker.ts} +185 -63
  80. package/src/core/shadow-observation-registry.ts +534 -0
  81. package/{dist/core/system-logger.js → src/core/system-logger.ts} +9 -5
  82. package/src/core/thinking-models.ts +217 -0
  83. package/src/core/training-program.ts +630 -0
  84. package/src/core/trajectory-types.ts +243 -0
  85. package/src/core/trajectory.ts +1673 -0
  86. package/{dist/core/workspace-context.js → src/core/workspace-context.ts} +57 -32
  87. package/src/hooks/bash-risk.ts +171 -0
  88. package/src/hooks/edit-verification.ts +295 -0
  89. package/src/hooks/gate-block-helper.ts +160 -0
  90. package/src/hooks/gate.ts +210 -0
  91. package/src/hooks/gfi-gate.ts +177 -0
  92. package/src/hooks/lifecycle.ts +326 -0
  93. package/{dist/hooks/llm.js → src/hooks/llm.ts} +166 -139
  94. package/src/hooks/message-sanitize.ts +45 -0
  95. package/src/hooks/pain.ts +384 -0
  96. package/src/hooks/progressive-trust-gate.ts +174 -0
  97. package/src/hooks/prompt.ts +920 -0
  98. package/src/hooks/subagent.ts +207 -0
  99. package/src/hooks/thinking-checkpoint.ts +73 -0
  100. package/src/hooks/trajectory-collector.ts +290 -0
  101. package/src/http/principles-console-route.ts +716 -0
  102. package/src/i18n/commands.ts +117 -0
  103. package/src/index.ts +694 -0
  104. package/src/service/central-database.ts +831 -0
  105. package/src/service/control-ui-query-service.ts +888 -0
  106. package/src/service/evolution-query-service.ts +405 -0
  107. package/src/service/evolution-worker.ts +1646 -0
  108. package/src/service/health-query-service.ts +836 -0
  109. package/{dist/service/nocturnal-runtime.js → src/service/nocturnal-runtime.ts} +263 -36
  110. package/src/service/nocturnal-service.ts +1015 -0
  111. package/src/service/nocturnal-target-selector.ts +532 -0
  112. package/src/service/phase3-input-filter.ts +237 -0
  113. package/src/service/runtime-summary-service.ts +757 -0
  114. package/src/service/subagent-workflow/deep-reflect-workflow-manager.ts +513 -0
  115. package/src/service/subagent-workflow/empathy-observer-workflow-manager.ts +603 -0
  116. package/src/service/subagent-workflow/index.ts +51 -0
  117. package/src/service/subagent-workflow/nocturnal-workflow-manager.ts +856 -0
  118. package/src/service/subagent-workflow/runtime-direct-driver.ts +166 -0
  119. package/src/service/subagent-workflow/types.ts +378 -0
  120. package/src/service/subagent-workflow/workflow-store.ts +328 -0
  121. package/src/service/trajectory-service.ts +15 -0
  122. package/{dist/tools/critique-prompt.js → src/tools/critique-prompt.ts} +25 -8
  123. package/src/tools/deep-reflect.ts +349 -0
  124. package/{dist/tools/model-index.js → src/tools/model-index.ts} +33 -17
  125. package/src/types/event-types.ts +453 -0
  126. package/src/types/hygiene-types.ts +31 -0
  127. package/src/types/principle-tree-schema.ts +244 -0
  128. package/src/types/runtime-summary.ts +49 -0
  129. package/src/types.ts +74 -0
  130. package/src/utils/file-lock.ts +391 -0
  131. package/{dist/utils/glob-match.js → src/utils/glob-match.ts} +21 -20
  132. package/{dist/utils/hashing.js → src/utils/hashing.ts} +6 -4
  133. package/src/utils/io.ts +110 -0
  134. package/{dist/utils/nlp.js → src/utils/nlp.ts} +19 -12
  135. package/{dist/utils/plugin-logger.js → src/utils/plugin-logger.ts} +33 -8
  136. package/src/utils/subagent-probe.ts +94 -0
  137. package/templates/langs/zh/skills/pd-diagnostician/SKILL.md +70 -1
  138. package/templates/pain_settings.json +2 -1
  139. package/tests/README.md +120 -0
  140. package/tests/build-artifacts.test.ts +111 -0
  141. package/tests/commands/evolution-status.test.ts +222 -0
  142. package/tests/commands/evolver.test.ts +22 -0
  143. package/tests/commands/export.test.ts +78 -0
  144. package/tests/commands/nocturnal-review.test.ts +448 -0
  145. package/tests/commands/nocturnal-train.test.ts +97 -0
  146. package/tests/commands/pain.test.ts +108 -0
  147. package/tests/commands/samples.test.ts +65 -0
  148. package/tests/commands/strategy.test.ts +34 -0
  149. package/tests/commands/thinking-os.test.ts +88 -0
  150. package/tests/core/adaptive-thresholds.test.ts +261 -0
  151. package/tests/core/config-service.test.ts +89 -0
  152. package/tests/core/config.test.ts +90 -0
  153. package/tests/core/control-ui-db.test.ts +75 -0
  154. package/tests/core/core-template-guidance.test.ts +21 -0
  155. package/tests/core/detection-funnel.test.ts +63 -0
  156. package/tests/core/detection-service.test.ts +50 -0
  157. package/tests/core/dictionary-service.test.ts +116 -0
  158. package/tests/core/dictionary.test.ts +168 -0
  159. package/tests/core/empathy-keyword-matcher.test.ts +209 -0
  160. package/tests/core/event-log.test.ts +181 -0
  161. package/tests/core/evolution-e2e.test.ts +58 -0
  162. package/tests/core/evolution-engine-gate-integration.test.ts +543 -0
  163. package/tests/core/evolution-engine.test.ts +562 -0
  164. package/tests/core/evolution-logger.test.ts +148 -0
  165. package/tests/core/evolution-migration.test.ts +50 -0
  166. package/tests/core/evolution-paths.test.ts +21 -0
  167. package/tests/core/evolution-reducer.detector-metadata.test.ts +602 -0
  168. package/tests/core/evolution-reducer.test.ts +180 -0
  169. package/tests/core/evolution-types-loop.test.ts +48 -0
  170. package/tests/core/evolution-user-stories.e2e.test.ts +249 -0
  171. package/tests/core/external-training-contract.test.ts +463 -0
  172. package/tests/core/focus-history.test.ts +682 -0
  173. package/tests/core/init-flatten.test.ts +69 -0
  174. package/tests/core/init-refactor.test.ts +87 -0
  175. package/tests/core/init-v1.3.test.ts +46 -0
  176. package/tests/core/init.test.ts +190 -0
  177. package/tests/core/local-worker-routing.test.ts +757 -0
  178. package/tests/core/migration.test.ts +84 -0
  179. package/tests/core/model-deployment-registry.test.ts +845 -0
  180. package/tests/core/model-training-registry.test.ts +889 -0
  181. package/tests/core/nocturnal-arbiter.test.ts +494 -0
  182. package/tests/core/nocturnal-candidate-scoring.test.ts +400 -0
  183. package/tests/core/nocturnal-compliance.test.ts +646 -0
  184. package/tests/core/nocturnal-dataset.test.ts +892 -0
  185. package/tests/core/nocturnal-executability.test.ts +357 -0
  186. package/tests/core/nocturnal-export.test.ts +462 -0
  187. package/tests/core/nocturnal-reviewed-subset-comparison.test.ts +428 -0
  188. package/tests/core/nocturnal-trajectory-extractor.test.ts +634 -0
  189. package/tests/core/nocturnal-trinity.test.ts +953 -0
  190. package/tests/core/pain.test.ts +33 -0
  191. package/tests/core/path-resolver.test.ts +57 -0
  192. package/tests/core/paths-refactor.test.ts +42 -0
  193. package/tests/core/phase7-rollout-integration.test.ts +477 -0
  194. package/tests/core/principle-training-state.test.ts +712 -0
  195. package/tests/core/profile.test.ts +56 -0
  196. package/tests/core/promotion-gate.test.ts +556 -0
  197. package/tests/core/risk-calculator.test.ts +168 -0
  198. package/tests/core/session-tracker.test.ts +191 -0
  199. package/tests/core/training-program.test.ts +472 -0
  200. package/tests/core/trajectory.test.ts +265 -0
  201. package/tests/core/workspace-context-factory.test.ts +18 -0
  202. package/tests/core/workspace-context.test.ts +134 -0
  203. package/tests/fixtures/nocturnal-reviewed-subset.json +183 -0
  204. package/tests/fixtures/production-compatibility.test.ts +147 -0
  205. package/tests/fixtures/production-mock-generator.ts +282 -0
  206. package/tests/hooks/bash-risk-integration.test.ts +137 -0
  207. package/tests/hooks/bash-risk.test.ts +81 -0
  208. package/tests/hooks/edit-verification.test.ts +678 -0
  209. package/tests/hooks/gate-edit-verification-p1.test.ts +632 -0
  210. package/tests/hooks/gate-edit-verification.test.ts +435 -0
  211. package/tests/hooks/gate-pipeline-integration.test.ts +404 -0
  212. package/tests/hooks/gate.test.ts +271 -0
  213. package/tests/hooks/gfi-gate-unit.test.ts +422 -0
  214. package/tests/hooks/gfi-gate.test.ts +669 -0
  215. package/tests/hooks/lifecycle.test.ts +248 -0
  216. package/tests/hooks/llm.test.ts +308 -0
  217. package/tests/hooks/message-sanitize.test.ts +36 -0
  218. package/tests/hooks/pain.test.ts +141 -0
  219. package/tests/hooks/progressive-trust-gate.test.ts +277 -0
  220. package/tests/hooks/prompt.test.ts +1411 -0
  221. package/tests/hooks/subagent.test.ts +467 -0
  222. package/tests/hooks/thinking-gate.test.ts +313 -0
  223. package/tests/http/principles-console-route.test.ts +140 -0
  224. package/tests/hygiene-tracker.test.ts +77 -0
  225. package/tests/index.integration.test.ts +179 -0
  226. package/tests/index.shadow-routing.integration.test.ts +140 -0
  227. package/tests/index.test.ts +9 -0
  228. package/tests/integration/empathy-workflow-integration.test.ts +627 -0
  229. package/tests/service/control-ui-query-service.test.ts +121 -0
  230. package/tests/service/empathy-observer-workflow-manager.test.ts +176 -0
  231. package/tests/service/evolution-worker.test.ts +585 -0
  232. package/tests/service/nocturnal-runtime.test.ts +470 -0
  233. package/tests/service/nocturnal-service.test.ts +577 -0
  234. package/tests/service/nocturnal-target-selector.test.ts +615 -0
  235. package/tests/service/nocturnal-workflow-manager.test.ts +439 -0
  236. package/tests/service/phase3-input-filter.test.ts +289 -0
  237. package/tests/service/runtime-summary-service.test.ts +919 -0
  238. package/tests/task-compliance.test.ts +166 -0
  239. package/tests/test-utils.ts +48 -0
  240. package/tests/tools/critique-prompt.test.ts +260 -0
  241. package/tests/tools/deep-reflect.test.ts +232 -0
  242. package/tests/tools/model-index.test.ts +246 -0
  243. package/tests/ui/app.test.tsx +114 -0
  244. package/tests/utils/file-lock.test.ts +407 -0
  245. package/tests/utils/hashing.test.ts +32 -0
  246. package/tests/utils/io.test.ts +39 -0
  247. package/tests/utils/nlp.test.ts +53 -0
  248. package/tests/utils/plugin-logger.test.ts +156 -0
  249. package/tsconfig.json +16 -0
  250. package/tsconfig.tsbuildinfo +1 -0
  251. package/ui/src/App.tsx +45 -0
  252. package/ui/src/api.ts +216 -0
  253. package/ui/src/charts.tsx +586 -0
  254. package/ui/src/components/ErrorState.tsx +6 -0
  255. package/ui/src/components/Loading.tsx +13 -0
  256. package/ui/src/components/ProtectedRoute.tsx +12 -0
  257. package/ui/src/components/Shell.tsx +91 -0
  258. package/ui/src/components/WorkspaceConfig.tsx +146 -0
  259. package/ui/src/components/index.ts +5 -0
  260. package/ui/src/context/auth.tsx +80 -0
  261. package/ui/src/context/theme.tsx +66 -0
  262. package/ui/src/hooks/useAutoRefresh.ts +39 -0
  263. package/ui/src/i18n/ui.ts +363 -0
  264. package/ui/src/main.tsx +16 -0
  265. package/ui/src/pages/EvolutionPage.tsx +352 -0
  266. package/ui/src/pages/FeedbackPage.tsx +140 -0
  267. package/ui/src/pages/GateMonitorPage.tsx +136 -0
  268. package/ui/src/pages/LoginPage.tsx +88 -0
  269. package/ui/src/pages/OverviewPage.tsx +238 -0
  270. package/ui/src/pages/SamplesPage.tsx +174 -0
  271. package/ui/src/pages/ThinkingModelsPage.tsx +127 -0
  272. package/ui/src/styles.css +1661 -0
  273. package/ui/src/types.ts +368 -0
  274. package/ui/src/utils/format.ts +15 -0
  275. package/vitest.config.ts +23 -0
  276. package/dist/commands/capabilities.d.ts +0 -3
  277. package/dist/commands/capabilities.js +0 -73
  278. package/dist/commands/context.d.ts +0 -5
  279. package/dist/commands/evolution-status.d.ts +0 -4
  280. package/dist/commands/evolution-status.js +0 -117
  281. package/dist/commands/evolver.d.ts +0 -9
  282. package/dist/commands/evolver.js +0 -26
  283. package/dist/commands/export.d.ts +0 -2
  284. package/dist/commands/export.js +0 -98
  285. package/dist/commands/focus.d.ts +0 -14
  286. package/dist/commands/focus.js +0 -457
  287. package/dist/commands/nocturnal-review.d.ts +0 -24
  288. package/dist/commands/nocturnal-review.js +0 -265
  289. package/dist/commands/nocturnal-rollout.d.ts +0 -27
  290. package/dist/commands/nocturnal-rollout.js +0 -671
  291. package/dist/commands/nocturnal-train.d.ts +0 -25
  292. package/dist/commands/nocturnal-train.js +0 -919
  293. package/dist/commands/pain.d.ts +0 -5
  294. package/dist/commands/principle-rollback.d.ts +0 -4
  295. package/dist/commands/principle-rollback.js +0 -22
  296. package/dist/commands/rollback.d.ts +0 -19
  297. package/dist/commands/samples.d.ts +0 -2
  298. package/dist/commands/samples.js +0 -55
  299. package/dist/commands/strategy.d.ts +0 -3
  300. package/dist/commands/strategy.js +0 -29
  301. package/dist/commands/thinking-os.d.ts +0 -2
  302. package/dist/config/defaults/runtime.d.ts +0 -40
  303. package/dist/config/errors.d.ts +0 -84
  304. package/dist/config/errors.js +0 -94
  305. package/dist/config/index.js +0 -7
  306. package/dist/constants/diagnostician.d.ts +0 -12
  307. package/dist/constants/diagnostician.js +0 -56
  308. package/dist/constants/tools.d.ts +0 -17
  309. package/dist/constants/tools.js +0 -54
  310. package/dist/core/adaptive-thresholds.d.ts +0 -186
  311. package/dist/core/adaptive-thresholds.js +0 -300
  312. package/dist/core/config-service.d.ts +0 -15
  313. package/dist/core/config.d.ts +0 -127
  314. package/dist/core/control-ui-db.d.ts +0 -95
  315. package/dist/core/control-ui-db.js +0 -292
  316. package/dist/core/detection-funnel.d.ts +0 -33
  317. package/dist/core/detection-service.d.ts +0 -15
  318. package/dist/core/dictionary-service.d.ts +0 -15
  319. package/dist/core/dictionary.d.ts +0 -38
  320. package/dist/core/event-log.d.ts +0 -82
  321. package/dist/core/event-log.js +0 -463
  322. package/dist/core/evolution-engine.d.ts +0 -118
  323. package/dist/core/evolution-engine.js +0 -464
  324. package/dist/core/evolution-logger.d.ts +0 -137
  325. package/dist/core/evolution-logger.js +0 -256
  326. package/dist/core/evolution-migration.d.ts +0 -5
  327. package/dist/core/evolution-migration.js +0 -65
  328. package/dist/core/evolution-reducer.d.ts +0 -98
  329. package/dist/core/evolution-reducer.js +0 -465
  330. package/dist/core/evolution-types.d.ts +0 -287
  331. package/dist/core/evolution-types.js +0 -78
  332. package/dist/core/external-training-contract.d.ts +0 -276
  333. package/dist/core/external-training-contract.js +0 -269
  334. package/dist/core/focus-history.d.ts +0 -210
  335. package/dist/core/focus-history.js +0 -1185
  336. package/dist/core/hygiene/tracker.d.ts +0 -22
  337. package/dist/core/hygiene/tracker.js +0 -106
  338. package/dist/core/init.d.ts +0 -12
  339. package/dist/core/local-worker-routing.d.ts +0 -175
  340. package/dist/core/local-worker-routing.js +0 -525
  341. package/dist/core/migration.d.ts +0 -6
  342. package/dist/core/model-deployment-registry.d.ts +0 -218
  343. package/dist/core/model-deployment-registry.js +0 -503
  344. package/dist/core/model-training-registry.d.ts +0 -295
  345. package/dist/core/model-training-registry.js +0 -475
  346. package/dist/core/nocturnal-arbiter.d.ts +0 -159
  347. package/dist/core/nocturnal-arbiter.js +0 -534
  348. package/dist/core/nocturnal-candidate-scoring.d.ts +0 -137
  349. package/dist/core/nocturnal-candidate-scoring.js +0 -266
  350. package/dist/core/nocturnal-compliance.d.ts +0 -175
  351. package/dist/core/nocturnal-compliance.js +0 -824
  352. package/dist/core/nocturnal-dataset.d.ts +0 -224
  353. package/dist/core/nocturnal-dataset.js +0 -443
  354. package/dist/core/nocturnal-executability.d.ts +0 -85
  355. package/dist/core/nocturnal-executability.js +0 -331
  356. package/dist/core/nocturnal-export.d.ts +0 -124
  357. package/dist/core/nocturnal-export.js +0 -275
  358. package/dist/core/nocturnal-paths.d.ts +0 -124
  359. package/dist/core/nocturnal-trajectory-extractor.d.ts +0 -242
  360. package/dist/core/nocturnal-trajectory-extractor.js +0 -307
  361. package/dist/core/nocturnal-trinity.d.ts +0 -311
  362. package/dist/core/nocturnal-trinity.js +0 -880
  363. package/dist/core/pain.d.ts +0 -4
  364. package/dist/core/pain.js +0 -70
  365. package/dist/core/path-resolver.d.ts +0 -46
  366. package/dist/core/paths.d.ts +0 -65
  367. package/dist/core/principle-training-state.d.ts +0 -121
  368. package/dist/core/principle-training-state.js +0 -321
  369. package/dist/core/profile.d.ts +0 -62
  370. package/dist/core/profile.js +0 -210
  371. package/dist/core/promotion-gate.d.ts +0 -238
  372. package/dist/core/promotion-gate.js +0 -529
  373. package/dist/core/risk-calculator.d.ts +0 -22
  374. package/dist/core/session-tracker.d.ts +0 -99
  375. package/dist/core/shadow-observation-registry.d.ts +0 -217
  376. package/dist/core/shadow-observation-registry.js +0 -308
  377. package/dist/core/system-logger.d.ts +0 -8
  378. package/dist/core/thinking-models.d.ts +0 -38
  379. package/dist/core/thinking-models.js +0 -170
  380. package/dist/core/training-program.d.ts +0 -233
  381. package/dist/core/training-program.js +0 -433
  382. package/dist/core/trajectory.d.ts +0 -411
  383. package/dist/core/trajectory.js +0 -1307
  384. package/dist/core/workspace-context.d.ts +0 -71
  385. package/dist/hooks/bash-risk.d.ts +0 -57
  386. package/dist/hooks/bash-risk.js +0 -137
  387. package/dist/hooks/edit-verification.d.ts +0 -62
  388. package/dist/hooks/edit-verification.js +0 -256
  389. package/dist/hooks/gate-block-helper.d.ts +0 -44
  390. package/dist/hooks/gate-block-helper.js +0 -119
  391. package/dist/hooks/gate.d.ts +0 -24
  392. package/dist/hooks/gate.js +0 -173
  393. package/dist/hooks/gfi-gate.d.ts +0 -40
  394. package/dist/hooks/gfi-gate.js +0 -113
  395. package/dist/hooks/lifecycle.d.ts +0 -5
  396. package/dist/hooks/lifecycle.js +0 -284
  397. package/dist/hooks/llm.d.ts +0 -12
  398. package/dist/hooks/message-sanitize.d.ts +0 -3
  399. package/dist/hooks/message-sanitize.js +0 -37
  400. package/dist/hooks/pain.d.ts +0 -5
  401. package/dist/hooks/pain.js +0 -301
  402. package/dist/hooks/progressive-trust-gate.d.ts +0 -51
  403. package/dist/hooks/progressive-trust-gate.js +0 -89
  404. package/dist/hooks/prompt.d.ts +0 -47
  405. package/dist/hooks/prompt.js +0 -884
  406. package/dist/hooks/subagent.d.ts +0 -10
  407. package/dist/hooks/subagent.js +0 -387
  408. package/dist/hooks/thinking-checkpoint.d.ts +0 -37
  409. package/dist/hooks/thinking-checkpoint.js +0 -51
  410. package/dist/hooks/trajectory-collector.d.ts +0 -32
  411. package/dist/hooks/trajectory-collector.js +0 -256
  412. package/dist/http/principles-console-route.d.ts +0 -9
  413. package/dist/http/principles-console-route.js +0 -567
  414. package/dist/i18n/commands.d.ts +0 -26
  415. package/dist/i18n/commands.js +0 -116
  416. package/dist/index.d.ts +0 -7
  417. package/dist/index.js +0 -581
  418. package/dist/service/central-database.d.ts +0 -104
  419. package/dist/service/central-database.js +0 -649
  420. package/dist/service/control-ui-query-service.d.ts +0 -221
  421. package/dist/service/control-ui-query-service.js +0 -543
  422. package/dist/service/empathy-observer-manager.d.ts +0 -52
  423. package/dist/service/empathy-observer-manager.js +0 -229
  424. package/dist/service/evolution-query-service.d.ts +0 -155
  425. package/dist/service/evolution-query-service.js +0 -258
  426. package/dist/service/evolution-worker.d.ts +0 -101
  427. package/dist/service/evolution-worker.js +0 -974
  428. package/dist/service/nocturnal-runtime.d.ts +0 -183
  429. package/dist/service/nocturnal-service.d.ts +0 -163
  430. package/dist/service/nocturnal-service.js +0 -787
  431. package/dist/service/nocturnal-target-selector.d.ts +0 -145
  432. package/dist/service/nocturnal-target-selector.js +0 -315
  433. package/dist/service/phase3-input-filter.d.ts +0 -73
  434. package/dist/service/phase3-input-filter.js +0 -172
  435. package/dist/service/runtime-summary-service.d.ts +0 -122
  436. package/dist/service/runtime-summary-service.js +0 -485
  437. package/dist/service/trajectory-service.d.ts +0 -2
  438. package/dist/service/trajectory-service.js +0 -15
  439. package/dist/tools/critique-prompt.d.ts +0 -14
  440. package/dist/tools/deep-reflect.d.ts +0 -39
  441. package/dist/tools/deep-reflect.js +0 -350
  442. package/dist/tools/model-index.d.ts +0 -9
  443. package/dist/types/event-types.d.ts +0 -306
  444. package/dist/types/event-types.js +0 -106
  445. package/dist/types/hygiene-types.d.ts +0 -20
  446. package/dist/types/hygiene-types.js +0 -12
  447. package/dist/types/runtime-summary.d.ts +0 -47
  448. package/dist/types/runtime-summary.js +0 -1
  449. package/dist/types.d.ts +0 -50
  450. package/dist/types.js +0 -22
  451. package/dist/utils/file-lock.d.ts +0 -71
  452. package/dist/utils/file-lock.js +0 -309
  453. package/dist/utils/glob-match.d.ts +0 -28
  454. package/dist/utils/hashing.d.ts +0 -9
  455. package/dist/utils/io.d.ts +0 -6
  456. package/dist/utils/io.js +0 -106
  457. package/dist/utils/nlp.d.ts +0 -9
  458. package/dist/utils/plugin-logger.d.ts +0 -39
  459. package/dist/utils/subagent-probe.d.ts +0 -34
  460. package/dist/utils/subagent-probe.js +0 -81
@@ -1,350 +0,0 @@
1
- import { Type } from '@sinclair/typebox';
2
- import { randomUUID } from 'node:crypto';
3
- import * as fs from 'fs';
4
- import * as path from 'node:path';
5
- import { EventLogService } from '../core/event-log.js';
6
- import { buildCritiquePromptV2 } from './critique-prompt.js';
7
- import { resolvePdPath } from '../core/paths.js';
8
- import { reflectionLogRetentionDays } from '../types.js';
9
- /**
10
- * Write reflection result to reflection-log.md
11
- * Uses atomic write (temp file + rename) to prevent race conditions
12
- */
13
- function writeToReflectionLog(workspaceDir, context, insights, modelId, depth) {
14
- const reflectionLogPath = resolvePdPath(workspaceDir, 'REFLECTION_LOG');
15
- // Ensure memory directory exists (backward-compatible: create if missing)
16
- // Note: resolvePdPath returns the full path; ensure parent dir exists
17
- const memoryDir = path.dirname(reflectionLogPath);
18
- if (!fs.existsSync(memoryDir)) {
19
- fs.mkdirSync(memoryDir, { recursive: true });
20
- }
21
- const timestamp = new Date().toISOString();
22
- const entry = `
23
- ---
24
- ## Reflection at ${timestamp}
25
- **Model**: ${modelId || 'auto-select'}
26
- **Depth**: ${depth || 2}
27
-
28
- ### Context
29
- ${context.substring(0, 500)}${context.length > 500 ? '...' : ''}
30
-
31
- ### Insights
32
- ${insights}
33
-
34
- `;
35
- const header = `# Reflection Log\n\n> Auto-generated by Deep Reflection Tool\n> Retention: ${reflectionLogRetentionDays} days\n`;
36
- // Read existing content
37
- let existingContent = '';
38
- if (fs.existsSync(reflectionLogPath)) {
39
- existingContent = fs.readFileSync(reflectionLogPath, 'utf8');
40
- }
41
- const newContent = header + entry + existingContent.replace(header, '');
42
- // Atomic write: write to temp file first, then rename
43
- const tempPath = `${reflectionLogPath}.tmp`;
44
- fs.writeFileSync(tempPath, newContent, 'utf8');
45
- fs.renameSync(tempPath, reflectionLogPath);
46
- }
47
- /**
48
- * Clean up reflection log entries older than retention period
49
- */
50
- function cleanupReflectionLog(workspaceDir) {
51
- const reflectionLogPath = resolvePdPath(workspaceDir, 'REFLECTION_LOG');
52
- if (!fs.existsSync(reflectionLogPath))
53
- return;
54
- const content = fs.readFileSync(reflectionLogPath, 'utf8');
55
- const cutoffDate = new Date();
56
- cutoffDate.setDate(cutoffDate.getDate() - reflectionLogRetentionDays);
57
- // Use more precise regex to match ISO timestamp
58
- // Pattern: ---\n## Reflection at 2024-01-15T10:30:00
59
- const entryPattern = /---\n## Reflection at (\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})/g;
60
- const parts = content.split(entryPattern);
61
- // parts[0] = header, then alternates: timestamp, content, timestamp, content...
62
- const header = parts[0];
63
- const validEntries = [];
64
- for (let i = 1; i < parts.length; i += 2) {
65
- const timestamp = parts[i];
66
- const entryContent = parts[i + 1] || '';
67
- const entryDate = new Date(timestamp);
68
- if (entryDate >= cutoffDate) {
69
- validEntries.push(`---\n## Reflection at ${timestamp}${entryContent}`);
70
- }
71
- }
72
- if (validEntries.length < (parts.length - 1) / 2) {
73
- const newContent = header + validEntries.join('');
74
- // Atomic write
75
- const tempPath = `${reflectionLogPath}.tmp`;
76
- fs.writeFileSync(tempPath, newContent, 'utf8');
77
- fs.renameSync(tempPath, reflectionLogPath);
78
- }
79
- }
80
- const DEFAULT_CONFIG = {
81
- enabled: true,
82
- mode: 'auto',
83
- auto_trigger_conditions: {
84
- min_tool_calls: 5,
85
- error_rate_threshold: 0.3,
86
- high_gfi_threshold: 70
87
- },
88
- timeout_ms: 60000
89
- };
90
- function safeLog(api, level, message) {
91
- try {
92
- if (api?.logger && typeof api.logger[level] === 'function') {
93
- api.logger[level](message);
94
- }
95
- }
96
- catch (e) {
97
- console.error(`[PD:DeepReflect] Logging failed: ${String(e)}`);
98
- }
99
- }
100
- function loadConfig(workspaceDir, api) {
101
- if (!workspaceDir)
102
- return DEFAULT_CONFIG;
103
- const configPath = resolvePdPath(workspaceDir, 'PAIN_SETTINGS');
104
- try {
105
- if (fs.existsSync(configPath)) {
106
- const raw = fs.readFileSync(configPath, 'utf-8');
107
- const settings = JSON.parse(raw);
108
- return { ...DEFAULT_CONFIG, ...settings.deep_reflection };
109
- }
110
- }
111
- catch (err) {
112
- safeLog(api, 'warn', `[DeepReflect] Failed to load config: ${String(err)}`);
113
- }
114
- return DEFAULT_CONFIG;
115
- }
116
- /**
117
- * Helper to read string parameter from rawParams
118
- * Supports both camelCase and snake_case parameter names
119
- */
120
- function readStringParam(rawParams, key) {
121
- const value = rawParams[key];
122
- if (typeof value === 'string')
123
- return value.trim() || undefined;
124
- // Try snake_case alias
125
- const snakeKey = key.replace(/([A-Z])/g, '_$1').toLowerCase();
126
- const snakeValue = rawParams[snakeKey];
127
- if (typeof snakeValue === 'string')
128
- return snakeValue.trim() || undefined;
129
- return undefined;
130
- }
131
- /**
132
- * Helper to read number parameter from rawParams
133
- * Supports both camelCase and snake_case parameter names
134
- */
135
- function readNumberParam(rawParams, key) {
136
- const value = rawParams[key];
137
- if (typeof value === 'number')
138
- return value;
139
- // Try snake_case alias
140
- const snakeKey = key.replace(/([A-Z])/g, '_$1').toLowerCase();
141
- const snakeValue = rawParams[snakeKey];
142
- if (typeof snakeValue === 'number')
143
- return snakeValue;
144
- return undefined;
145
- }
146
- /**
147
- * Create Deep Reflect Tool
148
- *
149
- * Uses factory pattern to capture `api` in closure, following OpenClaw plugin SDK conventions.
150
- * The execute signature must be: async (_toolCallId: string, rawParams: Record<string, unknown>)
151
- */
152
- export function createDeepReflectTool(api) {
153
- return {
154
- name: 'deep_reflect',
155
- description: '执行深层次的元认知反思,分析当前任务的潜在风险、逻辑漏洞或架构改进点。',
156
- parameters: Type.Object({
157
- context: Type.String({ description: '需要反思的任务上下文、代码片段或当前遇到的困难。' }),
158
- depth: Type.Optional(Type.Number({ description: '反思深度 (1-3)。1: 快速扫描, 2: 均衡分析, 3: 彻底解构。默认为 2。', minimum: 1, maximum: 3 })),
159
- model_id: Type.Optional(Type.String({ description: '可选:强制指定使用的思维模型 ID。' }))
160
- }),
161
- /**
162
- * Tool execution logic
163
- *
164
- * OpenClaw tool execute signature:
165
- * - First parameter: _toolCallId (string) - the tool call ID
166
- * - Second parameter: rawParams (Record<string, unknown>) - the actual parameters
167
- * - Third parameter (optional): signal (AbortSignal) - for cancellation
168
- */
169
- async execute(_toolCallId, rawParams) {
170
- const context = readStringParam(rawParams, 'context') || '';
171
- const depth = readNumberParam(rawParams, 'depth') ?? 2;
172
- const model_id = readStringParam(rawParams, 'model_id');
173
- if (!context) {
174
- return {
175
- content: [{
176
- type: 'text',
177
- text: '❌ 错误: 必须提供反思上下文 (context)。'
178
- }]
179
- };
180
- }
181
- // 路径解析优先级:api.config > api.workspaceDir > api.resolvePath
182
- const effectiveWorkspaceDir = api.config?.workspaceDir
183
- || api.workspaceDir
184
- || api.resolvePath?.('.');
185
- if (!effectiveWorkspaceDir) {
186
- return {
187
- content: [{
188
- type: 'text',
189
- text: '❌ 反思执行失败: Workspace directory is required for deep reflection.。请检查 API 配置或网络连接。'
190
- }]
191
- };
192
- }
193
- const config = loadConfig(effectiveWorkspaceDir, api);
194
- if (config.mode === 'disabled' || !config.enabled) {
195
- return {
196
- content: [{
197
- type: 'text',
198
- text: '⏭️ Deep Reflection 已禁用。'
199
- }]
200
- };
201
- }
202
- if (model_id) {
203
- safeLog(api, 'warn', `[DeepReflect] The 'model_id' parameter is deprecated. The agent will now auto-select models based on the context index.`);
204
- }
205
- const agentId = 'main';
206
- const sessionKey = `agent:${agentId}:reflection:${randomUUID()}`;
207
- const sessionId = sessionKey.split(':').pop();
208
- const stateDir = resolvePdPath(effectiveWorkspaceDir, 'STATE_DIR');
209
- const eventLog = EventLogService.get(stateDir, api.logger);
210
- try {
211
- const extraSystemPrompt = buildCritiquePromptV2({
212
- context,
213
- depth,
214
- model_id,
215
- api,
216
- workspaceDir: effectiveWorkspaceDir
217
- });
218
- const startTime = Date.now();
219
- const subagentRuntime = api.runtime.subagent;
220
- if (!subagentRuntime) {
221
- return {
222
- content: [{
223
- type: 'text',
224
- text: `❌ Subagent runtime 不可用。\n\n当前运行在 embedded 模式(openclaw agent CLI),该模式不支持深反思功能。\n\n请通过 Gateway 模式运行(openclaw gateway)。`
225
- }]
226
- };
227
- }
228
- await subagentRuntime.run({
229
- sessionKey,
230
- message: `请对我当前的任务进行深层次反思。\n\n上下文:${context}`,
231
- extraSystemPrompt,
232
- deliver: false
233
- });
234
- const finalStatus = await subagentRuntime.waitForRun({ runId: sessionKey });
235
- const duration = Date.now() - startTime;
236
- if (finalStatus.status === 'timeout') {
237
- return {
238
- content: [{
239
- type: 'text',
240
- text: '⚠️ 反思任务执行超时。你可以尝试减少上下文长度或增加深度。'
241
- }]
242
- };
243
- }
244
- if (finalStatus.status === 'ok') {
245
- const rawMessages = await subagentRuntime.getSessionMessages({ sessionKey });
246
- let insights = '';
247
- if (rawMessages.assistantTexts && Array.isArray(rawMessages.assistantTexts)) {
248
- insights = rawMessages.assistantTexts.join('\n');
249
- }
250
- else {
251
- const messages = rawMessages.messages || [];
252
- const lastMessage = messages[messages.length - 1];
253
- if (typeof lastMessage?.content === 'string') {
254
- insights = lastMessage.content;
255
- }
256
- else if (Array.isArray(lastMessage?.content)) {
257
- insights = lastMessage.content.filter((c) => c.type === 'text').map((c) => c.text).join('\n');
258
- }
259
- }
260
- if (insights.includes('REFLECTION_OK')) {
261
- return {
262
- content: [{
263
- type: 'text',
264
- text: '✅ 反思完成:当前任务逻辑严密,未发现显著问题。'
265
- }]
266
- };
267
- }
268
- if (eventLog && sessionId) {
269
- eventLog.recordDeepReflection(sessionId, {
270
- modelId: model_id || 'auto-select',
271
- modelSelectionMode: model_id ? 'manual' : 'auto',
272
- depth,
273
- contextPreview: context.substring(0, 200),
274
- resultPreview: insights.substring(0, 300),
275
- durationMs: duration,
276
- passed: true,
277
- timeout: false
278
- });
279
- }
280
- // Write to reflection log and cleanup old entries
281
- try {
282
- writeToReflectionLog(effectiveWorkspaceDir, context, insights, model_id, depth);
283
- cleanupReflectionLog(effectiveWorkspaceDir);
284
- }
285
- catch (logErr) {
286
- safeLog(api, 'warn', `[DeepReflect] Failed to write reflection log: ${String(logErr)}`);
287
- }
288
- return {
289
- content: [{
290
- type: 'text',
291
- text: `
292
- # 💎 Deep Reflection Insights
293
- ---
294
- **Selected Model(s)**: ${model_id || 'auto-select'}
295
- **Reflection Depth**: ${depth}
296
- **Analysis Duration**: ${(duration / 1000).toFixed(1)}s
297
-
298
- ${insights}
299
-
300
- ---
301
- *Generated by Principles Disciple Meta-Cognitive Engine*
302
- `.trim()
303
- }]
304
- };
305
- }
306
- else {
307
- throw new Error(`Subagent status: ${finalStatus.status}`);
308
- }
309
- }
310
- catch (err) {
311
- const errorMsg = err instanceof Error ? err.message : String(err);
312
- safeLog(api, 'error', `[DeepReflect] Reflection failed: ${errorMsg}`);
313
- if (eventLog && sessionId) {
314
- eventLog.recordDeepReflection(sessionId, {
315
- modelId: model_id || 'auto-select',
316
- modelSelectionMode: model_id ? 'manual' : 'auto',
317
- depth,
318
- contextPreview: context.substring(0, 200),
319
- durationMs: 0,
320
- passed: false,
321
- timeout: errorMsg.toLowerCase().includes('timeout'),
322
- error: errorMsg
323
- });
324
- }
325
- if (errorMsg === 'API throw')
326
- throw err;
327
- return {
328
- content: [{
329
- type: 'text',
330
- text: `❌ 反思执行失败: ${errorMsg}。请检查 API 配置或网络连接。`
331
- }]
332
- };
333
- }
334
- finally {
335
- if (api.runtime.subagent)
336
- await api.runtime.subagent.deleteSession({ sessionKey }).catch(() => { });
337
- }
338
- }
339
- };
340
- }
341
- // Legacy export for backward compatibility with tests that call execute directly
342
- export const deepReflectTool = {
343
- name: 'deep_reflect',
344
- description: '执行深层次的元认知反思,分析当前任务的潜在风险、逻辑漏洞或架构改进点。',
345
- parameters: Type.Object({
346
- context: Type.String({ description: '需要反思的任务上下文、代码片段或当前遇到的困难。' }),
347
- depth: Type.Optional(Type.Number({ description: '反思深度 (1-3)。1: 快速扫描, 2: 均衡分析, 3: 彻底解构。默认为 2。', minimum: 1, maximum: 3 })),
348
- model_id: Type.Optional(Type.String({ description: '可选:强制指定使用的思维模型 ID。' }))
349
- }),
350
- };
@@ -1,9 +0,0 @@
1
- import type { OpenClawPluginApi } from '../openclaw-sdk.js';
2
- /**
3
- * 加载模型索引并返回格式化后的字符串
4
- *
5
- * @param workspaceDir 工作区目录
6
- * @param api OpenClaw 插件 API
7
- * @returns 格式化后的模型索引内容或默认消息
8
- */
9
- export declare function loadModelIndex(workspaceDir: string, api?: OpenClawPluginApi): string;
@@ -1,306 +0,0 @@
1
- /**
2
- * Event types for structured logging and daily statistics.
3
- */
4
- export type EventType = 'tool_call' | 'pain_signal' | 'rule_match' | 'rule_promotion' | 'hook_execution' | 'gate_block' | 'gate_bypass' | 'plan_approval' | 'evolution_task' | 'deep_reflection' | 'empathy_rollback' | 'error' | 'warn';
5
- export type EventCategory = 'success' | 'failure' | 'detected' | 'blocked' | 'bypassed' | 'approved' | 'enqueued' | 'completed' | 'promoted' | 'passed' | 'changed' | 'rolled_back';
6
- /**
7
- * Base event structure for JSONL logging.
8
- */
9
- export interface EventLogEntry {
10
- /** ISO timestamp */
11
- ts: string;
12
- /** Date for partitioning (YYYY-MM-DD) */
13
- date: string;
14
- /** Event type */
15
- type: EventType;
16
- /** Event category */
17
- category: EventCategory;
18
- /** Session identifier */
19
- sessionId?: string;
20
- /** Workspace directory */
21
- workspaceDir?: string;
22
- /** Event-specific data */
23
- data: Record<string, unknown>;
24
- }
25
- export interface ToolCallEventData {
26
- toolName: string;
27
- filePath?: string;
28
- error?: string;
29
- errorType?: string;
30
- gfi?: number;
31
- consecutiveErrors?: number;
32
- exitCode?: number;
33
- }
34
- export interface PainSignalEventData {
35
- score: number;
36
- source: string;
37
- eventId?: string;
38
- reason?: string;
39
- isRisky?: boolean;
40
- origin?: 'assistant_self_report' | 'user_manual' | 'system_infer';
41
- severity?: 'mild' | 'moderate' | 'severe';
42
- confidence?: number;
43
- detection_mode?: 'structured' | 'legacy_tag';
44
- deduped?: boolean;
45
- trigger_text_excerpt?: string;
46
- raw_score?: number;
47
- calibrated_score?: number;
48
- }
49
- export interface RuleMatchEventData {
50
- ruleId: string;
51
- layer: 'L1' | 'L2' | 'L3';
52
- severity: number;
53
- textPreview: string;
54
- }
55
- export interface RulePromotionEventData {
56
- fingerprint: string;
57
- ruleId: string;
58
- phrase: string;
59
- sampleCount: number;
60
- avgSimilarity: number;
61
- }
62
- export interface HookExecutionEventData {
63
- hookName: string;
64
- durationMs?: number;
65
- error?: string;
66
- }
67
- export interface GateBlockEventData {
68
- toolName: string;
69
- filePath: string;
70
- reason: string;
71
- planStatus?: string;
72
- /** Source module that triggered the block (for audit trail) */
73
- blockSource?: string;
74
- }
75
- export interface GateBypassEventData {
76
- toolName: string;
77
- filePath: string;
78
- bypassType: 'stage4_architect' | 'whitelisted';
79
- }
80
- export interface PlanApprovalEventData {
81
- toolName: string;
82
- filePath: string;
83
- pattern: string;
84
- planStatus: string;
85
- }
86
- export interface EvolutionTaskEventData {
87
- taskId: string;
88
- taskType: string;
89
- reason: string;
90
- }
91
- export interface DeepReflectionEventData {
92
- /** 思维模型 ID (T-01 到 T-09),向后兼容 */
93
- modelId: string;
94
- /** 模型选择模式:'manual' = 用户指定 model_id,'auto' = 子智能体自动选择 */
95
- modelSelectionMode: 'manual' | 'auto';
96
- /** 反思深度 (1-3) */
97
- depth: number;
98
- /** 上下文摘要(前 200 字符) */
99
- contextPreview: string;
100
- /** 反思结果摘要 */
101
- resultPreview?: string;
102
- /** 执行耗时 (ms) */
103
- durationMs: number;
104
- /** 是否通过(未发现显著问题) */
105
- passed: boolean;
106
- /** 是否超时 */
107
- timeout: boolean;
108
- /** 错误信息 */
109
- error?: string;
110
- /** 输出长度 */
111
- outputLength?: number;
112
- /** 置信度(从输出中提取) */
113
- confidence?: 'LOW' | 'MEDIUM' | 'HIGH';
114
- /** 发现的盲点数量 */
115
- blindSpotsCount?: number;
116
- /** 发现的风险数量 */
117
- risksCount?: number;
118
- }
119
- export interface EmpathyRollbackEventData {
120
- /** Event ID being rolled back */
121
- eventId: string;
122
- /** Original penalty score that was applied */
123
- originalScore: number;
124
- /** Session ID where the original event occurred */
125
- originalSessionId?: string;
126
- /** Reason for rollback (manual, false_positive, etc.) */
127
- reason: string;
128
- /** Who initiated the rollback */
129
- triggeredBy: 'user_command' | 'natural_language' | 'system';
130
- }
131
- export interface ToolCallStats {
132
- total: number;
133
- success: number;
134
- failure: number;
135
- byTool: Record<string, {
136
- success: number;
137
- failure: number;
138
- }>;
139
- }
140
- export interface ErrorStats {
141
- total: number;
142
- byType: Record<string, number>;
143
- byTool: Record<string, number>;
144
- }
145
- export interface PainStats {
146
- signalsDetected: number;
147
- signalsBySource: Record<string, number>;
148
- rulesMatched: Record<string, number>;
149
- candidatesPromoted: number;
150
- avgScore: number;
151
- maxScore: number;
152
- }
153
- /**
154
- * Empathy Engine event statistics for tracking emotional signals.
155
- * Used for /pd-status empathy card and effectiveness metrics.
156
- */
157
- export interface EmpathyEventStats {
158
- /** Total empathy events detected (excluding deduped) */
159
- totalEvents: number;
160
- /** Events that were deduped (not counted in totalEvents) */
161
- dedupedCount: number;
162
- /** Dedupe hit rate (dedupedCount / (totalEvents + dedupedCount)) */
163
- dedupeHitRate: number;
164
- /** Total penalty score applied */
165
- totalPenaltyScore: number;
166
- /** Score rolled back via manual rollback */
167
- rolledBackScore: number;
168
- /** Number of rollback operations */
169
- rollbackCount: number;
170
- /** Events by severity level */
171
- bySeverity: {
172
- mild: number;
173
- moderate: number;
174
- severe: number;
175
- };
176
- /** Score by severity level */
177
- scoreBySeverity: {
178
- mild: number;
179
- moderate: number;
180
- severe: number;
181
- };
182
- /** Events by detection mode */
183
- byDetectionMode: {
184
- structured: number;
185
- legacy_tag: number;
186
- };
187
- /** Events by origin */
188
- byOrigin: {
189
- assistant_self_report: number;
190
- user_manual: number;
191
- system_infer: number;
192
- };
193
- /** Confidence distribution */
194
- confidenceDistribution: {
195
- high: number;
196
- medium: number;
197
- low: number;
198
- };
199
- /** Daily trend (last 7 days) */
200
- dailyTrend: Array<{
201
- date: string;
202
- count: number;
203
- score: number;
204
- }>;
205
- }
206
- export interface GfiStats {
207
- peak: number;
208
- samples: number;
209
- total: number;
210
- resetCount: number;
211
- hourlyDistribution: number[];
212
- }
213
- export interface EvolutionStats {
214
- tasksEnqueued: number;
215
- tasksCompleted: number;
216
- rulesPromoted: number;
217
- }
218
- export interface HookStats {
219
- byType: Record<string, number>;
220
- errors: number;
221
- totalDurationMs: number;
222
- }
223
- export interface DeepReflectionStats {
224
- /** 总调用次数 */
225
- totalCalls: number;
226
- /** 通过次数(未发现问题) */
227
- passedCount: number;
228
- /** 发现问题的次数 */
229
- issuesFoundCount: number;
230
- /** 超时次数 */
231
- timeoutCount: number;
232
- /** 错误次数 */
233
- errorCount: number;
234
- /** 按模型选择模式统计 */
235
- bySelectionMode: {
236
- manual: {
237
- count: number;
238
- avgDurationMs: number;
239
- passedCount: number;
240
- };
241
- auto: {
242
- count: number;
243
- avgDurationMs: number;
244
- passedCount: number;
245
- };
246
- };
247
- /** 按模型统计(向后兼容,仅记录手动指定的 model_id) */
248
- byModel: Record<string, {
249
- count: number;
250
- avgDurationMs: number;
251
- passedCount: number;
252
- }>;
253
- /** 按深度统计 */
254
- byDepth: Record<number, number>;
255
- /** 总耗时 */
256
- totalDurationMs: number;
257
- /** 平均耗时 */
258
- avgDurationMs: number;
259
- /** 发现的总盲点数 */
260
- totalBlindSpots: number;
261
- /** 发现的总风险数 */
262
- totalRisks: number;
263
- /** 置信度分布 */
264
- confidenceDistribution: {
265
- LOW: number;
266
- MEDIUM: number;
267
- HIGH: number;
268
- };
269
- }
270
- /**
271
- * Daily aggregated statistics.
272
- */
273
- export interface DailyStats {
274
- /** Date (YYYY-MM-DD) */
275
- date: string;
276
- /** Timestamp when stats were created */
277
- createdAt: string;
278
- /** Timestamp when stats were last updated */
279
- updatedAt: string;
280
- /** Tool call statistics */
281
- tools: {
282
- total: number;
283
- success: number;
284
- failure: number;
285
- };
286
- /** Tool call statistics */
287
- toolCalls: ToolCallStats;
288
- /** Error statistics */
289
- errors: ErrorStats;
290
- /** Pain signal statistics */
291
- pain: PainStats;
292
- /** Empathy Engine event statistics */
293
- empathy: EmpathyEventStats;
294
- /** GFI statistics */
295
- gfi: GfiStats;
296
- /** Evolution statistics */
297
- evolution: EvolutionStats;
298
- /** Hook execution statistics */
299
- hooks: HookStats;
300
- /** Deep Reflection statistics */
301
- deepReflection: DeepReflectionStats;
302
- }
303
- /**
304
- * Creates an empty daily stats object.
305
- */
306
- export declare function createEmptyDailyStats(date: string): DailyStats;