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
package/dist/index.js DELETED
@@ -1,581 +0,0 @@
1
- import * as crypto from 'crypto';
2
- import { classifyTask } from './core/local-worker-routing.js';
3
- import { completeShadowObservation, recordShadowRouting } from './core/shadow-observation-registry.js';
4
- import { getCommandDescription } from './i18n/commands.js';
5
- import { handleBeforePromptBuild } from './hooks/prompt.js';
6
- import { handleBeforeToolCall } from './hooks/gate.js';
7
- import { handleAfterToolCall } from './hooks/pain.js';
8
- import { handleBeforeReset, handleBeforeCompaction, handleAfterCompaction } from './hooks/lifecycle.js';
9
- import { handleLlmOutput } from './hooks/llm.js';
10
- import { handleSubagentEnded } from './hooks/subagent.js';
11
- import { handleBeforeMessageWrite } from './hooks/message-sanitize.js';
12
- import * as TrajectoryCollector from './hooks/trajectory-collector.js';
13
- import { handleInitStrategy, handleManageOkr } from './commands/strategy.js';
14
- import { handleBootstrapTools, handleResearchTools } from './commands/capabilities.js';
15
- import { handleThinkingOs } from './commands/thinking-os.js';
16
- import { handleEvolveTask } from './commands/evolver.js';
17
- import { handlePainCommand } from './commands/pain.js';
18
- import { handleContextCommand } from './commands/context.js';
19
- import { handleFocusCommand } from './commands/focus.js';
20
- import { handleRollbackCommand } from './commands/rollback.js';
21
- import { handleEvolutionStatusCommand } from './commands/evolution-status.js';
22
- import { handlePrincipleRollbackCommand } from './commands/principle-rollback.js';
23
- import { handleExportCommand } from './commands/export.js';
24
- import { handleSamplesCommand } from './commands/samples.js';
25
- import { handleNocturnalReviewCommand } from './commands/nocturnal-review.js';
26
- import { handleNocturnalTrainCommand } from './commands/nocturnal-train.js';
27
- import { handleNocturnalRolloutCommand } from './commands/nocturnal-rollout.js';
28
- import { EvolutionWorkerService } from './service/evolution-worker.js';
29
- import { TrajectoryService } from './service/trajectory-service.js';
30
- import { ensureWorkspaceTemplates } from './core/init.js';
31
- import { migrateDirectoryStructure } from './core/migration.js';
32
- import { SystemLogger } from './core/system-logger.js';
33
- import { createDeepReflectTool } from './tools/deep-reflect.js';
34
- import { PathResolver } from './core/path-resolver.js';
35
- import { createPrinciplesConsoleRoute } from './http/principles-console-route.js';
36
- // Track initialization to avoid repeated calls
37
- let workspaceInitialized = false;
38
- // Map from childSessionKey → shadowObservationId
39
- // Used to complete shadow observations when subagent ends
40
- const pendingShadowObservations = new Map();
41
- // PD local worker profiles that are managed by the shadow routing policy
42
- const PD_LOCAL_PROFILES = new Set(['local-reader', 'local-editor']);
43
- function computeRuntimeShadowTaskFingerprint(event) {
44
- const payload = {
45
- childSessionKey: event.childSessionKey,
46
- agentId: event.agentId,
47
- label: event.label ?? '',
48
- mode: event.mode,
49
- threadRequested: event.threadRequested,
50
- requesterChannel: event.requester?.channel ?? '',
51
- requesterThreadId: event.requester?.threadId ?? '',
52
- };
53
- return crypto.createHash('sha256').update(JSON.stringify(payload)).digest('hex').slice(0, 16);
54
- }
55
- const plugin = {
56
- name: "Principles Disciple",
57
- description: "Evolutionary programming agent framework with strategic guardrails and reflection loops.",
58
- register(api) {
59
- api.logger.info("Principles Disciple Plugin registered.");
60
- PathResolver.setExtensionRoot(api.rootDir);
61
- api.registerHttpRoute(createPrinciplesConsoleRoute(api));
62
- const language = api.pluginConfig?.language || 'en';
63
- // ── Hook: Prompt Building ──
64
- api.on('before_prompt_build', async (event, ctx) => {
65
- try {
66
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
67
- if (!workspaceInitialized && workspaceDir) {
68
- migrateDirectoryStructure(api, workspaceDir);
69
- ensureWorkspaceTemplates(api, workspaceDir, language);
70
- SystemLogger.log(workspaceDir, 'SYSTEM_BOOT', `Principles Disciple online. Language: ${language}`);
71
- workspaceInitialized = true;
72
- }
73
- return await handleBeforePromptBuild(event, { ...ctx, api, workspaceDir });
74
- }
75
- catch (err) {
76
- api.logger.error(`[PD] Error in before_prompt_build: ${String(err)}`);
77
- }
78
- });
79
- // ── Hook: Security Gate ──
80
- api.on('before_tool_call', (event, ctx) => {
81
- try {
82
- const pluginConfig = api.pluginConfig ?? {};
83
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
84
- const logger = api.logger;
85
- return handleBeforeToolCall(event, { ...ctx, workspaceDir, pluginConfig, logger });
86
- }
87
- catch (err) {
88
- api.logger.error(`[PD] Error in before_tool_call: ${String(err)}`);
89
- }
90
- });
91
- // ── Hook: Pain & Trust ──
92
- api.on('after_tool_call', (event, ctx) => {
93
- try {
94
- const pluginConfig = api.pluginConfig ?? {};
95
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
96
- // Pass api separately to handleAfterToolCall to maintain type safety
97
- handleAfterToolCall(event, { ...ctx, workspaceDir, pluginConfig }, api);
98
- }
99
- catch (err) {
100
- api.logger.error(`[PD] Error in after_tool_call: ${String(err)}`);
101
- }
102
- });
103
- // ── Hook: LLM Analysis ──
104
- api.on('llm_output', (event, ctx) => {
105
- try {
106
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
107
- handleLlmOutput(event, { ...ctx, workspaceDir });
108
- }
109
- catch (err) {
110
- api.logger.error(`[PD] Error in llm_output: ${String(err)}`);
111
- }
112
- });
113
- // ── Hook: Message Sanitization ──
114
- api.on('before_message_write', (event) => {
115
- try {
116
- return handleBeforeMessageWrite(event);
117
- }
118
- catch (err) {
119
- api.logger.error(`[PD] Error in before_message_write: ${String(err)}`);
120
- }
121
- });
122
- // ── Hook: Trajectory Collection (Behavior Evolution Phase 0) ──
123
- // Note: after_tool_call and llm_output are safe to collect
124
- // before_message_write conflicts with message-sanitize, skipping for now
125
- api.on('after_tool_call', (event, ctx) => {
126
- try {
127
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
128
- TrajectoryCollector.handleAfterToolCall(event, { ...ctx, workspaceDir });
129
- }
130
- catch (err) {
131
- // Non-critical: don't log, just skip
132
- }
133
- });
134
- api.on('llm_output', (event, ctx) => {
135
- try {
136
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
137
- TrajectoryCollector.handleLlmOutput(event, { ...ctx, workspaceDir });
138
- }
139
- catch (err) {
140
- // Non-critical: don't log, just skip
141
- }
142
- });
143
- // ── Hook: Subagent Loop Closure ──
144
- api.on('subagent_spawning', (event, ctx) => {
145
- try {
146
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
147
- const { agentId, childSessionKey } = event;
148
- // Only handle PD local worker profiles
149
- if (!PD_LOCAL_PROFILES.has(agentId)) {
150
- return { status: 'ok' };
151
- }
152
- // Use the real runtime hook to record shadow evidence. We still consult the
153
- // routing/deployment state here, but the observation itself must originate
154
- // from actual subagent execution rather than an operator command path.
155
- const routingInput = { targetProfile: agentId };
156
- const decision = classifyTask(routingInput, workspaceDir);
157
- const shouldRecordShadow = decision.activeCheckpointState === 'shadow_ready' &&
158
- !!decision.activeCheckpointId &&
159
- decision.deploymentCheck.routingEnabled &&
160
- decision.deploymentCheck.checkpointDeployable;
161
- if (shouldRecordShadow) {
162
- const observation = recordShadowRouting(workspaceDir, {
163
- checkpointId: decision.activeCheckpointId,
164
- workerProfile: agentId,
165
- taskFingerprint: computeRuntimeShadowTaskFingerprint(event),
166
- });
167
- pendingShadowObservations.set(childSessionKey, observation.observationId);
168
- }
169
- return { status: 'ok' };
170
- }
171
- catch (err) {
172
- api.logger.error(`[PD] Error in subagent_spawning shadow routing: ${String(err)}`);
173
- return { status: 'ok' }; // Don't block spawn on shadow observation errors
174
- }
175
- });
176
- api.on('subagent_ended', (event, ctx) => {
177
- try {
178
- const workspaceDir = api.resolvePath('.');
179
- // Complete any pending shadow observation for this subagent session
180
- const shadowObsId = pendingShadowObservations.get(event.targetSessionKey);
181
- if (shadowObsId && workspaceDir) {
182
- try {
183
- const outcome = event.outcome === 'ok'
184
- ? 'accepted'
185
- : event.outcome === 'error'
186
- ? 'rejected'
187
- : 'escalated';
188
- completeShadowObservation(workspaceDir, {
189
- observationId: shadowObsId,
190
- outcome,
191
- failureSignals: event.outcome === 'error' ? { threwException: true, timedOut: false, invalidOutput: false, profileRejected: false, extra: {} } : undefined,
192
- });
193
- pendingShadowObservations.delete(event.targetSessionKey);
194
- }
195
- catch (err) {
196
- api.logger.error(`[PD] Failed to complete shadow observation: ${String(err)}`);
197
- }
198
- }
199
- handleSubagentEnded(event, { ...ctx, workspaceDir, api });
200
- }
201
- catch (err) {
202
- api.logger.error(`[PD] Error in subagent_ended: ${String(err)}`);
203
- }
204
- });
205
- // ── Hook: Lifecycle ──
206
- api.on('before_reset', (event, ctx) => {
207
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
208
- return handleBeforeReset(event, { ...ctx, workspaceDir });
209
- });
210
- api.on('before_compaction', (event, ctx) => {
211
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
212
- return handleBeforeCompaction(event, { ...ctx, workspaceDir });
213
- });
214
- api.on('after_compaction', (event, ctx) => {
215
- const workspaceDir = ctx.workspaceDir || api.resolvePath('.');
216
- return handleAfterCompaction(event, { ...ctx, workspaceDir });
217
- });
218
- // ── Service: Background Evolution Worker ──
219
- try {
220
- EvolutionWorkerService.api = api;
221
- api.registerService(EvolutionWorkerService);
222
- api.registerService(TrajectoryService);
223
- }
224
- catch (err) {
225
- api.logger.error(`[PD] Failed to register EvolutionWorkerService: ${String(err)}`);
226
- }
227
- // ── Slash Commands ──
228
- api.registerCommand({
229
- name: "pd-init",
230
- description: getCommandDescription('pd-init', language),
231
- handler: (ctx) => handleInitStrategy(ctx)
232
- });
233
- api.registerCommand({
234
- name: "pd-okr",
235
- description: getCommandDescription('pd-okr', language),
236
- handler: (ctx) => handleManageOkr(ctx)
237
- });
238
- api.registerCommand({
239
- name: "pd-bootstrap",
240
- description: getCommandDescription('pd-bootstrap', language),
241
- handler: (ctx) => handleBootstrapTools(ctx)
242
- });
243
- api.registerCommand({
244
- name: "pd-research",
245
- description: getCommandDescription('pd-research', language),
246
- handler: (ctx) => handleResearchTools(ctx)
247
- });
248
- api.registerCommand({
249
- name: "pd-thinking",
250
- description: getCommandDescription('pd-thinking', language),
251
- acceptsArgs: true,
252
- handler: (ctx) => handleThinkingOs(ctx)
253
- });
254
- api.registerCommand({
255
- name: "pd-evolve",
256
- description: getCommandDescription('pd-evolve', language),
257
- acceptsArgs: true,
258
- handler: (ctx) => handleEvolveTask(ctx)
259
- });
260
- api.registerCommand({
261
- name: "pd-daily",
262
- description: getCommandDescription('pd-daily', language),
263
- handler: (_ctx) => {
264
- return { text: language === 'zh'
265
- ? "请执行 pd-daily 技能来配置并发送进化日报。系统将引导你完成配置流程,包括发送时间、渠道和报告风格偏好。"
266
- : "Please execute the pd-daily skill to configure and send your daily evolution report. The system will guide you through the configuration process." };
267
- }
268
- });
269
- api.registerCommand({
270
- name: "pd-grooming",
271
- description: getCommandDescription('pd-grooming', language),
272
- handler: (_ctx) => {
273
- return { text: language === 'zh'
274
- ? "请执行 pd-grooming 技能来执行大扫除。例如输入: '执行 pd-grooming 技能'"
275
- : "Please execute the pd-grooming skill to clean up. For example: 'Execute pd-grooming skill'" };
276
- }
277
- });
278
- api.registerCommand({
279
- name: "pd-help",
280
- description: getCommandDescription('pd-help', language),
281
- handler: (_ctx) => {
282
- if (language === 'zh') {
283
- return { text: `
284
- 📖 **Principles Disciple 命令大全**
285
-
286
- ## 🚀 快速开始
287
- | 命令 | 用途 | 使用时机 |
288
- |------|------|----------|
289
- | \`/pd-init\` | 初始化工作区 | 新项目开始时 |
290
- | \`/pd-bootstrap\` | 环境工具扫描 | 缺少开发工具时 |
291
-
292
- ## 📊 状态查询
293
- | 命令 | 用途 | 使用时机 |
294
- |------|------|----------|
295
- | \`/pd-status\` | 查看进化状态 | 想了解当前 GFI 和 Pain 情况 |
296
- | \`/pd-focus\` | 焦点文件管理 | 查看/压缩/回滚历史版本 |
297
- | \`/pd-export\` | 导出数据 | 导出 analytics/corrections/orpo |
298
- | \`/pd-samples\` | 审核纠错样本 | 查看待审核样本并批准/拒绝 |
299
- | \`/pd-nocturnal-review\` | 审核 nocturnal 样本 | 审核 nocturnal 训练样本并导出 ORPO |
300
-
301
- ## ⚙️ 配置管理
302
- | 命令 | 用途 | 使用时机 |
303
- |------|------|----------|
304
- | \`/pd-context\` | 控制上下文注入 | 想减少/增加注入内容 |
305
- | \`/pd-okr\` | OKR 目标管理 | 设置战略目标 |
306
-
307
- ## 🧠 进化相关
308
- | 命令 | 用途 | 使用时机 |
309
- |------|------|----------|
310
- | \`/pd-evolve\` | 执行进化循环 | 有 Pain 需要处理时 |
311
- | \`/pd-thinking\` | 思维模型管理 | 更新 Thinking OS |
312
- | \`/pd-daily\` | 进化日报 | 每日回顾时 |
313
- | \`/pd-grooming\` | 工作区大扫除 | 定期清理 |
314
-
315
- ## 💡 常用命令示例
316
-
317
- **减少 token 消耗:**
318
- \`\`\`
319
- /pd-context minimal
320
- \`\`\`
321
-
322
- **恢复完整上下文:**
323
- \`\`\`
324
- /pd-context full
325
- \`\`\`
326
-
327
- **查看当前配置:**
328
- \`\`\`
329
- /pd-context status
330
- \`\`\`
331
-
332
- 🔍 输入任意命令后加 \`help\` 可查看详细帮助,如 \`/pd-context help\`
333
- `.trim() };
334
- }
335
- else {
336
- return { text: `
337
- 📖 **Principles Disciple Command Reference**
338
-
339
- ## 🚀 Quick Start
340
- | Command | Purpose | When to Use |
341
- |---------|---------|-------------|
342
- | \`/pd-init\` | Initialize workspace | Starting a new project |
343
- | \`/pd-bootstrap\` | Scan environment tools | Missing dev tools |
344
-
345
- ## 📊 Status Query
346
- | Command | Purpose | When to Use |
347
- |---------|---------|-------------|
348
- | \`/pd-status\` | View evolution status | Check GFI and Pain status |
349
- | \`/pd-focus\` | Focus file management | View/compress/rollback history |
350
- | \`/pd-export\` | Export data | Export analytics/corrections/orpo |
351
- | \`/pd-samples\` | Review correction samples | Review pending correction samples |
352
- | \`/pd-nocturnal-review\` | Review nocturnal samples | Review nocturnal training samples and export ORPO |
353
-
354
- ## ⚙️ Configuration
355
- | Command | Purpose | When to Use |
356
- |---------|---------|-------------|
357
- | \`/pd-context\` | Control context injection | Reduce/increase injected content |
358
- | \`/pd-okr\` | OKR goal management | Set strategic goals |
359
-
360
- ## 🧠 Evolution
361
- | Command | Purpose | When to Use |
362
- |---------|---------|-------------|
363
- | \`/pd-evolve\` | Run evolution loop | Process Pain signals |
364
- | \`/pd-thinking\` | Mental model management | Update Thinking OS |
365
- | \`/pd-daily\` | Evolution report | Daily review |
366
- | \`/pd-grooming\` | Workspace cleanup | Periodic cleanup |
367
-
368
- ## 💡 Common Examples
369
-
370
- **Reduce token usage:**
371
- \`\`\`
372
- /pd-context minimal
373
- \`\`\`
374
-
375
- **Restore full context:**
376
- \`\`\`
377
- /pd-context full
378
- \`\`\`
379
-
380
- **View current config:**
381
- \`\`\`
382
- /pd-context status
383
- \`\`\`
384
-
385
- 🔍 Add \`help\` after any command for details, e.g., \`/pd-context help\`
386
- `.trim() };
387
- }
388
- }
389
- });
390
- api.registerCommand({
391
- name: "pd-status",
392
- description: getCommandDescription('pd-status', language),
393
- acceptsArgs: true,
394
- handler: (ctx) => {
395
- try {
396
- const workspaceDir = api.resolvePath('.');
397
- // Ensure workspaceDir is in config for handlePainCommand
398
- if (ctx.config)
399
- ctx.config.workspaceDir = workspaceDir;
400
- return handlePainCommand(ctx);
401
- }
402
- catch (err) {
403
- api.logger.error(`[PD] Command /pd-status failed: ${String(err)}`);
404
- return { text: language === 'zh' ? "命令执行失败,请检查日志。" : "Command failed. Check logs." };
405
- }
406
- }
407
- });
408
- api.registerCommand({
409
- name: "pd-context",
410
- description: getCommandDescription('pd-context', language),
411
- acceptsArgs: true,
412
- handler: (ctx) => {
413
- try {
414
- const workspaceDir = api.resolvePath('.');
415
- if (ctx.config)
416
- ctx.config.workspaceDir = workspaceDir;
417
- return handleContextCommand(ctx);
418
- }
419
- catch (err) {
420
- api.logger.error(`[PD] Command /pd-context failed: ${String(err)}`);
421
- return { text: language === 'zh' ? "命令执行失败,请检查日志。" : "Command failed. Check logs." };
422
- }
423
- }
424
- });
425
- api.registerCommand({
426
- name: "pd-focus",
427
- description: getCommandDescription('pd-focus', language),
428
- acceptsArgs: true,
429
- handler: (ctx) => {
430
- try {
431
- const workspaceDir = api.resolvePath('.');
432
- if (ctx.config)
433
- ctx.config.workspaceDir = workspaceDir;
434
- return handleFocusCommand(ctx, api);
435
- }
436
- catch (err) {
437
- api.logger.error(`[PD] Command /pd-focus failed: ${String(err)}`);
438
- return { text: language === 'zh' ? "命令执行失败,请检查日志。" : "Command failed. Check logs." };
439
- }
440
- }
441
- });
442
- api.registerCommand({
443
- name: "pd-evolution-status",
444
- description: getCommandDescription('pd-evolution-status', language),
445
- handler: (ctx) => {
446
- try {
447
- const workspaceDir = api.resolvePath('.');
448
- if (ctx.config)
449
- ctx.config.workspaceDir = workspaceDir;
450
- return handleEvolutionStatusCommand(ctx);
451
- }
452
- catch (err) {
453
- api.logger.error(`[PD] Command /pd-evolution-status failed: ${String(err)}`);
454
- return { text: language === 'zh' ? "命令执行失败,请检查日志。" : "Command failed. Check logs." };
455
- }
456
- }
457
- });
458
- api.registerCommand({
459
- name: "pd-principle-rollback",
460
- description: getCommandDescription('pd-principle-rollback', language),
461
- acceptsArgs: true,
462
- handler: (ctx) => {
463
- try {
464
- const workspaceDir = api.resolvePath('.');
465
- if (ctx.config)
466
- ctx.config.workspaceDir = workspaceDir;
467
- return handlePrincipleRollbackCommand(ctx);
468
- }
469
- catch (err) {
470
- api.logger.error(`[PD] Command /pd-principle-rollback failed: ${String(err)}`);
471
- return { text: language === 'zh' ? "命令执行失败,请检查日志。" : "Command failed. Check logs." };
472
- }
473
- }
474
- });
475
- api.registerCommand({
476
- name: "pd-rollback",
477
- description: getCommandDescription('pd-rollback', language),
478
- acceptsArgs: true,
479
- handler: (ctx) => {
480
- try {
481
- const workspaceDir = api.resolvePath('.');
482
- if (ctx.config)
483
- ctx.config.workspaceDir = workspaceDir;
484
- return handleRollbackCommand(ctx);
485
- }
486
- catch (err) {
487
- api.logger.error(`[PD] Command /pd-rollback failed: ${String(err)}`);
488
- return { text: language === 'zh' ? "命令执行失败,请检查日志。" : "Command failed. Check logs." };
489
- }
490
- }
491
- });
492
- // ── Tools ──
493
- api.registerCommand({
494
- name: "pd-export",
495
- description: getCommandDescription('pd-export', language),
496
- acceptsArgs: true,
497
- handler: (ctx) => {
498
- try {
499
- const workspaceDir = api.resolvePath('.');
500
- if (ctx.config)
501
- ctx.config.workspaceDir = workspaceDir;
502
- return handleExportCommand(ctx);
503
- }
504
- catch (err) {
505
- api.logger.error(`[PD] Command /pd-export failed: ${String(err)}`);
506
- return { text: language === 'zh' ? "导出失败,请检查日志。" : "Export failed. Check logs." };
507
- }
508
- }
509
- });
510
- api.registerCommand({
511
- name: "pd-samples",
512
- description: getCommandDescription('pd-samples', language),
513
- acceptsArgs: true,
514
- handler: (ctx) => {
515
- try {
516
- const workspaceDir = api.resolvePath('.');
517
- if (ctx.config)
518
- ctx.config.workspaceDir = workspaceDir;
519
- return handleSamplesCommand(ctx);
520
- }
521
- catch (err) {
522
- api.logger.error(`[PD] Command /pd-samples failed: ${String(err)}`);
523
- return { text: language === 'zh' ? "样本命令执行失败,请检查日志。" : "Samples command failed. Check logs." };
524
- }
525
- }
526
- });
527
- api.registerCommand({
528
- name: "pd-nocturnal-review",
529
- description: 'Review nocturnal dataset samples [list|show|approve|reject|set-family|stats]',
530
- acceptsArgs: true,
531
- handler: (ctx) => {
532
- try {
533
- const workspaceDir = api.resolvePath('.');
534
- if (ctx.config)
535
- ctx.config.workspaceDir = workspaceDir;
536
- return handleNocturnalReviewCommand(ctx);
537
- }
538
- catch (err) {
539
- api.logger.error(`[PD] Command /pd-nocturnal-review failed: ${String(err)}`);
540
- return { text: language === 'zh' ? "Nocturnal review 命令执行失败,请检查日志。" : "Nocturnal review command failed. Check logs." };
541
- }
542
- }
543
- });
544
- api.registerCommand({
545
- name: "nocturnal-train",
546
- description: 'Nocturnal training operations [create-experiment|show-experiment|import-result|attach-eval|show-lineage|list-experiments|list-checkpoints|stats]',
547
- acceptsArgs: true,
548
- handler: (ctx) => {
549
- try {
550
- const workspaceDir = api.resolvePath('.');
551
- if (ctx.config)
552
- ctx.config.workspaceDir = workspaceDir;
553
- return handleNocturnalTrainCommand(ctx);
554
- }
555
- catch (err) {
556
- api.logger.error(`[PD] Command /nocturnal-train failed: ${String(err)}`);
557
- return { text: language === 'zh' ? "Nocturnal train 命令执行失败,请检查日志。" : "Nocturnal train command failed. Check logs." };
558
- }
559
- }
560
- });
561
- api.registerCommand({
562
- name: "nocturnal-rollout",
563
- description: 'Nocturnal rollout and promotion [evaluate-promotion|advance-promotion|bind|enable-routing|disable-routing|rollback|status|show-promotion]',
564
- acceptsArgs: true,
565
- handler: (ctx) => {
566
- try {
567
- const workspaceDir = api.resolvePath('.');
568
- if (ctx.config)
569
- ctx.config.workspaceDir = workspaceDir;
570
- return handleNocturnalRolloutCommand(ctx);
571
- }
572
- catch (err) {
573
- api.logger.error(`[PD] Command /nocturnal-rollout failed: ${String(err)}`);
574
- return { text: language === 'zh' ? "Nocturnal rollout 命令执行失败,请检查日志。" : "Nocturnal rollout command failed. Check logs." };
575
- }
576
- }
577
- });
578
- api.registerTool(createDeepReflectTool(api));
579
- }
580
- };
581
- export default plugin;
@@ -1,104 +0,0 @@
1
- export interface WorkspaceInfo {
2
- name: string;
3
- path: string;
4
- lastSync: string | null;
5
- }
6
- /**
7
- * Central database that aggregates data from all agent workspaces.
8
- * Stored in ~/.openclaw/.central/ (NOT in memory/ which is for embeddings)
9
- */
10
- export declare class CentralDatabase {
11
- private readonly dbPath;
12
- private readonly db;
13
- private readonly workspaces;
14
- constructor();
15
- dispose(): void;
16
- private tableExists;
17
- private initSchema;
18
- private discoverWorkspaces;
19
- /**
20
- * Sync data from a single workspace into the central database
21
- */
22
- syncWorkspace(workspaceName: string): number;
23
- syncEnabled(): Map<string, number>;
24
- /**
25
- * Sync all workspaces (legacy method - syncs all regardless of config)
26
- */
27
- syncAll(): Map<string, number>;
28
- private getEnabledWorkspaceFilter;
29
- /**
30
- * Get aggregated overview stats (only from enabled workspaces)
31
- */
32
- getOverviewStats(): {
33
- totalSessions: number;
34
- totalToolCalls: number;
35
- totalFailures: number;
36
- totalPainEvents: number;
37
- totalCorrections: number;
38
- totalThinkingEvents: number;
39
- totalSamples: number;
40
- pendingSamples: number;
41
- approvedSamples: number;
42
- rejectedSamples: number;
43
- workspaceCount: number;
44
- enabledWorkspaceCount: number;
45
- workspaceNames: string[];
46
- enabledWorkspaceNames: string[];
47
- };
48
- /**
49
- * Get daily trend data
50
- */
51
- getDailyTrend(days?: number): Array<{
52
- day: string;
53
- toolCalls: number;
54
- failures: number;
55
- userCorrections: number;
56
- thinkingTurns: number;
57
- }>;
58
- /**
59
- * Get top regressions
60
- */
61
- getTopRegressions(limit?: number): Array<{
62
- toolName: string;
63
- errorType: string;
64
- occurrences: number;
65
- }>;
66
- /**
67
- * Get thinking model stats
68
- */
69
- getThinkingModelStats(): {
70
- totalModels: number;
71
- activeModels: number;
72
- models: Array<{
73
- modelId: string;
74
- hits: number;
75
- coverageRate: number;
76
- }>;
77
- };
78
- /**
79
- * Get workspace list
80
- */
81
- getWorkspaces(): WorkspaceInfo[];
82
- getWorkspaceConfigs(): Array<{
83
- workspaceName: string;
84
- enabled: boolean;
85
- displayName: string | null;
86
- syncEnabled: boolean;
87
- }>;
88
- updateWorkspaceConfig(workspaceName: string, updates: {
89
- enabled?: boolean;
90
- displayName?: string | null;
91
- syncEnabled?: boolean;
92
- }): void;
93
- isWorkspaceEnabled(workspaceName: string): boolean;
94
- getEnabledWorkspaces(): WorkspaceInfo[];
95
- addCustomWorkspace(name: string, workspacePath: string): void;
96
- removeWorkspace(workspaceName: string): void;
97
- getGlobalConfig(key: string): string | null;
98
- setGlobalConfig(key: string, value: string): void;
99
- /**
100
- * Clear all aggregated data (for testing/reset)
101
- */
102
- clearAll(): void;
103
- }
104
- export declare function getCentralDatabase(): CentralDatabase;