principles-disciple 1.8.1 → 1.8.3

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 (508) 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 +4 -4
  10. package/package.json +11 -13
  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} +175 -62
  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} +160 -80
  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} +235 -79
  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/{dist/service/subagent-workflow/empathy-observer-workflow-manager.js → src/service/subagent-workflow/empathy-observer-workflow-manager.ts} +240 -117
  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/{dist/service/subagent-workflow/types.d.ts → src/service/subagent-workflow/types.ts} +137 -18
  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/en/skills/ai-sprint-orchestration/EXAMPLES.md +63 -0
  138. package/templates/langs/en/skills/ai-sprint-orchestration/REFERENCE.md +136 -0
  139. package/templates/langs/en/skills/ai-sprint-orchestration/SKILL.md +67 -0
  140. package/templates/langs/en/skills/ai-sprint-orchestration/references/agent-registry.json +214 -0
  141. package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +107 -0
  142. package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +107 -0
  143. package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +105 -0
  144. package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +108 -0
  145. package/templates/langs/en/skills/ai-sprint-orchestration/references/workflow-v1-acceptance-checklist.md +58 -0
  146. package/templates/langs/en/skills/ai-sprint-orchestration/references/workflow-v1.4-work-unit-handoff.md +190 -0
  147. package/templates/langs/en/skills/ai-sprint-orchestration/runtime/.gitignore +2 -0
  148. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/archive.mjs +310 -0
  149. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/contract-enforcement.mjs +683 -0
  150. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/decision.mjs +604 -0
  151. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/state-store.mjs +32 -0
  152. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/task-specs.mjs +707 -0
  153. package/templates/langs/en/skills/ai-sprint-orchestration/scripts/run.mjs +3419 -0
  154. package/templates/langs/zh/skills/ai-sprint-orchestration/EXAMPLES.md +63 -0
  155. package/templates/langs/zh/skills/ai-sprint-orchestration/REFERENCE.md +136 -0
  156. package/templates/langs/zh/skills/ai-sprint-orchestration/SKILL.md +67 -0
  157. package/templates/langs/zh/skills/ai-sprint-orchestration/references/agent-registry.json +214 -0
  158. package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +107 -0
  159. package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +107 -0
  160. package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +105 -0
  161. package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +108 -0
  162. package/templates/langs/zh/skills/ai-sprint-orchestration/references/workflow-v1-acceptance-checklist.md +58 -0
  163. package/templates/langs/zh/skills/ai-sprint-orchestration/references/workflow-v1.4-work-unit-handoff.md +190 -0
  164. package/templates/langs/zh/skills/ai-sprint-orchestration/runtime/.gitignore +2 -0
  165. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/archive.mjs +310 -0
  166. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/contract-enforcement.mjs +683 -0
  167. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/decision.mjs +604 -0
  168. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/state-store.mjs +32 -0
  169. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/task-specs.mjs +707 -0
  170. package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/run.mjs +3419 -0
  171. package/templates/langs/zh/skills/ai-sprint-orchestration/test/archive.test.mjs +230 -0
  172. package/templates/langs/zh/skills/ai-sprint-orchestration/test/contract-enforcement.test.mjs +672 -0
  173. package/templates/langs/zh/skills/ai-sprint-orchestration/test/decision.test.mjs +1321 -0
  174. package/templates/langs/zh/skills/ai-sprint-orchestration/test/run.test.mjs +1419 -0
  175. package/templates/langs/zh/skills/pd-diagnostician/SKILL.md +70 -1
  176. package/templates/pain_settings.json +2 -1
  177. package/tests/README.md +120 -0
  178. package/tests/build-artifacts.test.ts +111 -0
  179. package/tests/commands/evolution-status.test.ts +222 -0
  180. package/tests/commands/evolver.test.ts +22 -0
  181. package/tests/commands/export.test.ts +78 -0
  182. package/tests/commands/nocturnal-review.test.ts +448 -0
  183. package/tests/commands/nocturnal-train.test.ts +97 -0
  184. package/tests/commands/pain.test.ts +108 -0
  185. package/tests/commands/samples.test.ts +65 -0
  186. package/tests/commands/strategy.test.ts +34 -0
  187. package/tests/commands/thinking-os.test.ts +88 -0
  188. package/tests/core/adaptive-thresholds.test.ts +261 -0
  189. package/tests/core/config-service.test.ts +89 -0
  190. package/tests/core/config.test.ts +90 -0
  191. package/tests/core/control-ui-db.test.ts +75 -0
  192. package/tests/core/core-template-guidance.test.ts +21 -0
  193. package/tests/core/detection-funnel.test.ts +63 -0
  194. package/tests/core/detection-service.test.ts +50 -0
  195. package/tests/core/dictionary-service.test.ts +116 -0
  196. package/tests/core/dictionary.test.ts +168 -0
  197. package/tests/core/empathy-keyword-matcher.test.ts +209 -0
  198. package/tests/core/event-log.test.ts +181 -0
  199. package/tests/core/evolution-e2e.test.ts +58 -0
  200. package/tests/core/evolution-engine-gate-integration.test.ts +543 -0
  201. package/tests/core/evolution-engine.test.ts +562 -0
  202. package/tests/core/evolution-logger.test.ts +148 -0
  203. package/tests/core/evolution-migration.test.ts +50 -0
  204. package/tests/core/evolution-paths.test.ts +21 -0
  205. package/tests/core/evolution-reducer.detector-metadata.test.ts +602 -0
  206. package/tests/core/evolution-reducer.test.ts +180 -0
  207. package/tests/core/evolution-types-loop.test.ts +48 -0
  208. package/tests/core/evolution-user-stories.e2e.test.ts +249 -0
  209. package/tests/core/external-training-contract.test.ts +463 -0
  210. package/tests/core/focus-history.test.ts +682 -0
  211. package/tests/core/init-flatten.test.ts +69 -0
  212. package/tests/core/init-refactor.test.ts +87 -0
  213. package/tests/core/init-v1.3.test.ts +46 -0
  214. package/tests/core/init.test.ts +190 -0
  215. package/tests/core/local-worker-routing.test.ts +757 -0
  216. package/tests/core/migration.test.ts +84 -0
  217. package/tests/core/model-deployment-registry.test.ts +845 -0
  218. package/tests/core/model-training-registry.test.ts +889 -0
  219. package/tests/core/nocturnal-arbiter.test.ts +494 -0
  220. package/tests/core/nocturnal-candidate-scoring.test.ts +400 -0
  221. package/tests/core/nocturnal-compliance.test.ts +646 -0
  222. package/tests/core/nocturnal-dataset.test.ts +892 -0
  223. package/tests/core/nocturnal-executability.test.ts +357 -0
  224. package/tests/core/nocturnal-export.test.ts +462 -0
  225. package/tests/core/nocturnal-reviewed-subset-comparison.test.ts +428 -0
  226. package/tests/core/nocturnal-trajectory-extractor.test.ts +634 -0
  227. package/tests/core/nocturnal-trinity.test.ts +953 -0
  228. package/tests/core/pain.test.ts +33 -0
  229. package/tests/core/path-resolver.test.ts +57 -0
  230. package/tests/core/paths-refactor.test.ts +42 -0
  231. package/tests/core/phase7-rollout-integration.test.ts +477 -0
  232. package/tests/core/principle-training-state.test.ts +712 -0
  233. package/tests/core/profile.test.ts +56 -0
  234. package/tests/core/promotion-gate.test.ts +556 -0
  235. package/tests/core/risk-calculator.test.ts +168 -0
  236. package/tests/core/session-tracker.test.ts +191 -0
  237. package/tests/core/training-program.test.ts +472 -0
  238. package/tests/core/trajectory.test.ts +265 -0
  239. package/tests/core/workspace-context-factory.test.ts +18 -0
  240. package/tests/core/workspace-context.test.ts +134 -0
  241. package/tests/fixtures/nocturnal-reviewed-subset.json +183 -0
  242. package/tests/fixtures/production-compatibility.test.ts +147 -0
  243. package/tests/fixtures/production-mock-generator.ts +282 -0
  244. package/tests/hooks/bash-risk-integration.test.ts +137 -0
  245. package/tests/hooks/bash-risk.test.ts +81 -0
  246. package/tests/hooks/edit-verification.test.ts +678 -0
  247. package/tests/hooks/gate-edit-verification-p1.test.ts +632 -0
  248. package/tests/hooks/gate-edit-verification.test.ts +435 -0
  249. package/tests/hooks/gate-pipeline-integration.test.ts +404 -0
  250. package/tests/hooks/gate.test.ts +271 -0
  251. package/tests/hooks/gfi-gate-unit.test.ts +422 -0
  252. package/tests/hooks/gfi-gate.test.ts +669 -0
  253. package/tests/hooks/lifecycle.test.ts +248 -0
  254. package/tests/hooks/llm.test.ts +308 -0
  255. package/tests/hooks/message-sanitize.test.ts +36 -0
  256. package/tests/hooks/pain.test.ts +141 -0
  257. package/tests/hooks/progressive-trust-gate.test.ts +277 -0
  258. package/tests/hooks/prompt.test.ts +1411 -0
  259. package/tests/hooks/subagent.test.ts +467 -0
  260. package/tests/hooks/thinking-gate.test.ts +313 -0
  261. package/tests/http/principles-console-route.test.ts +140 -0
  262. package/tests/hygiene-tracker.test.ts +77 -0
  263. package/tests/index.integration.test.ts +179 -0
  264. package/tests/index.shadow-routing.integration.test.ts +140 -0
  265. package/tests/index.test.ts +9 -0
  266. package/tests/integration/empathy-workflow-integration.test.ts +627 -0
  267. package/tests/service/control-ui-query-service.test.ts +121 -0
  268. package/tests/service/empathy-observer-workflow-manager.test.ts +176 -0
  269. package/tests/service/evolution-worker.test.ts +585 -0
  270. package/tests/service/nocturnal-runtime.test.ts +470 -0
  271. package/tests/service/nocturnal-service.test.ts +577 -0
  272. package/tests/service/nocturnal-target-selector.test.ts +615 -0
  273. package/tests/service/nocturnal-workflow-manager.test.ts +439 -0
  274. package/tests/service/phase3-input-filter.test.ts +289 -0
  275. package/tests/service/runtime-summary-service.test.ts +919 -0
  276. package/tests/task-compliance.test.ts +166 -0
  277. package/tests/test-utils.ts +48 -0
  278. package/tests/tools/critique-prompt.test.ts +260 -0
  279. package/tests/tools/deep-reflect.test.ts +232 -0
  280. package/tests/tools/model-index.test.ts +246 -0
  281. package/tests/ui/app.test.tsx +114 -0
  282. package/tests/utils/file-lock.test.ts +407 -0
  283. package/tests/utils/hashing.test.ts +32 -0
  284. package/tests/utils/io.test.ts +39 -0
  285. package/tests/utils/nlp.test.ts +53 -0
  286. package/tests/utils/plugin-logger.test.ts +156 -0
  287. package/tsconfig.json +16 -0
  288. package/tsconfig.tsbuildinfo +1 -0
  289. package/ui/src/App.tsx +45 -0
  290. package/ui/src/api.ts +216 -0
  291. package/ui/src/charts.tsx +586 -0
  292. package/ui/src/components/ErrorState.tsx +6 -0
  293. package/ui/src/components/Loading.tsx +13 -0
  294. package/ui/src/components/ProtectedRoute.tsx +12 -0
  295. package/ui/src/components/Shell.tsx +91 -0
  296. package/ui/src/components/WorkspaceConfig.tsx +146 -0
  297. package/ui/src/components/index.ts +5 -0
  298. package/ui/src/context/auth.tsx +80 -0
  299. package/ui/src/context/theme.tsx +66 -0
  300. package/ui/src/hooks/useAutoRefresh.ts +39 -0
  301. package/ui/src/i18n/ui.ts +363 -0
  302. package/ui/src/main.tsx +16 -0
  303. package/ui/src/pages/EvolutionPage.tsx +352 -0
  304. package/ui/src/pages/FeedbackPage.tsx +140 -0
  305. package/ui/src/pages/GateMonitorPage.tsx +136 -0
  306. package/ui/src/pages/LoginPage.tsx +88 -0
  307. package/ui/src/pages/OverviewPage.tsx +238 -0
  308. package/ui/src/pages/SamplesPage.tsx +174 -0
  309. package/ui/src/pages/ThinkingModelsPage.tsx +127 -0
  310. package/ui/src/styles.css +1661 -0
  311. package/ui/src/types.ts +368 -0
  312. package/ui/src/utils/format.ts +15 -0
  313. package/vitest.config.ts +23 -0
  314. package/dist/commands/capabilities.d.ts +0 -3
  315. package/dist/commands/capabilities.js +0 -73
  316. package/dist/commands/context.d.ts +0 -5
  317. package/dist/commands/evolution-status.d.ts +0 -4
  318. package/dist/commands/evolution-status.js +0 -117
  319. package/dist/commands/evolver.d.ts +0 -9
  320. package/dist/commands/evolver.js +0 -26
  321. package/dist/commands/export.d.ts +0 -2
  322. package/dist/commands/export.js +0 -98
  323. package/dist/commands/focus.d.ts +0 -14
  324. package/dist/commands/focus.js +0 -457
  325. package/dist/commands/nocturnal-review.d.ts +0 -24
  326. package/dist/commands/nocturnal-review.js +0 -265
  327. package/dist/commands/nocturnal-rollout.d.ts +0 -27
  328. package/dist/commands/nocturnal-rollout.js +0 -671
  329. package/dist/commands/nocturnal-train.d.ts +0 -25
  330. package/dist/commands/nocturnal-train.js +0 -919
  331. package/dist/commands/pain.d.ts +0 -5
  332. package/dist/commands/principle-rollback.d.ts +0 -4
  333. package/dist/commands/principle-rollback.js +0 -22
  334. package/dist/commands/rollback.d.ts +0 -19
  335. package/dist/commands/samples.d.ts +0 -2
  336. package/dist/commands/samples.js +0 -55
  337. package/dist/commands/strategy.d.ts +0 -3
  338. package/dist/commands/strategy.js +0 -29
  339. package/dist/commands/thinking-os.d.ts +0 -2
  340. package/dist/config/defaults/runtime.d.ts +0 -40
  341. package/dist/config/errors.d.ts +0 -84
  342. package/dist/config/errors.js +0 -94
  343. package/dist/config/index.js +0 -7
  344. package/dist/constants/diagnostician.d.ts +0 -12
  345. package/dist/constants/diagnostician.js +0 -56
  346. package/dist/constants/tools.d.ts +0 -17
  347. package/dist/constants/tools.js +0 -54
  348. package/dist/core/adaptive-thresholds.d.ts +0 -186
  349. package/dist/core/adaptive-thresholds.js +0 -300
  350. package/dist/core/config-service.d.ts +0 -15
  351. package/dist/core/config.d.ts +0 -129
  352. package/dist/core/control-ui-db.d.ts +0 -95
  353. package/dist/core/control-ui-db.js +0 -292
  354. package/dist/core/detection-funnel.d.ts +0 -33
  355. package/dist/core/detection-service.d.ts +0 -15
  356. package/dist/core/dictionary-service.d.ts +0 -15
  357. package/dist/core/dictionary.d.ts +0 -38
  358. package/dist/core/event-log.d.ts +0 -82
  359. package/dist/core/event-log.js +0 -463
  360. package/dist/core/evolution-engine.d.ts +0 -118
  361. package/dist/core/evolution-engine.js +0 -464
  362. package/dist/core/evolution-logger.d.ts +0 -137
  363. package/dist/core/evolution-logger.js +0 -256
  364. package/dist/core/evolution-migration.d.ts +0 -5
  365. package/dist/core/evolution-migration.js +0 -65
  366. package/dist/core/evolution-reducer.d.ts +0 -98
  367. package/dist/core/evolution-reducer.js +0 -465
  368. package/dist/core/evolution-types.d.ts +0 -287
  369. package/dist/core/evolution-types.js +0 -78
  370. package/dist/core/external-training-contract.d.ts +0 -276
  371. package/dist/core/external-training-contract.js +0 -269
  372. package/dist/core/focus-history.d.ts +0 -210
  373. package/dist/core/focus-history.js +0 -1185
  374. package/dist/core/hygiene/tracker.d.ts +0 -22
  375. package/dist/core/hygiene/tracker.js +0 -106
  376. package/dist/core/init.d.ts +0 -12
  377. package/dist/core/local-worker-routing.d.ts +0 -175
  378. package/dist/core/local-worker-routing.js +0 -525
  379. package/dist/core/migration.d.ts +0 -6
  380. package/dist/core/model-deployment-registry.d.ts +0 -218
  381. package/dist/core/model-deployment-registry.js +0 -503
  382. package/dist/core/model-training-registry.d.ts +0 -295
  383. package/dist/core/model-training-registry.js +0 -475
  384. package/dist/core/nocturnal-arbiter.d.ts +0 -159
  385. package/dist/core/nocturnal-arbiter.js +0 -534
  386. package/dist/core/nocturnal-candidate-scoring.d.ts +0 -137
  387. package/dist/core/nocturnal-candidate-scoring.js +0 -266
  388. package/dist/core/nocturnal-compliance.d.ts +0 -175
  389. package/dist/core/nocturnal-compliance.js +0 -824
  390. package/dist/core/nocturnal-dataset.d.ts +0 -224
  391. package/dist/core/nocturnal-dataset.js +0 -443
  392. package/dist/core/nocturnal-executability.d.ts +0 -85
  393. package/dist/core/nocturnal-executability.js +0 -331
  394. package/dist/core/nocturnal-export.d.ts +0 -124
  395. package/dist/core/nocturnal-export.js +0 -275
  396. package/dist/core/nocturnal-paths.d.ts +0 -124
  397. package/dist/core/nocturnal-trajectory-extractor.d.ts +0 -242
  398. package/dist/core/nocturnal-trajectory-extractor.js +0 -307
  399. package/dist/core/nocturnal-trinity.d.ts +0 -311
  400. package/dist/core/nocturnal-trinity.js +0 -880
  401. package/dist/core/pain.d.ts +0 -4
  402. package/dist/core/pain.js +0 -70
  403. package/dist/core/path-resolver.d.ts +0 -46
  404. package/dist/core/paths.d.ts +0 -65
  405. package/dist/core/principle-training-state.d.ts +0 -121
  406. package/dist/core/principle-training-state.js +0 -321
  407. package/dist/core/profile.d.ts +0 -62
  408. package/dist/core/profile.js +0 -210
  409. package/dist/core/promotion-gate.d.ts +0 -238
  410. package/dist/core/promotion-gate.js +0 -529
  411. package/dist/core/risk-calculator.d.ts +0 -22
  412. package/dist/core/session-tracker.d.ts +0 -101
  413. package/dist/core/shadow-observation-registry.d.ts +0 -217
  414. package/dist/core/shadow-observation-registry.js +0 -308
  415. package/dist/core/system-logger.d.ts +0 -8
  416. package/dist/core/thinking-models.d.ts +0 -38
  417. package/dist/core/thinking-models.js +0 -170
  418. package/dist/core/training-program.d.ts +0 -233
  419. package/dist/core/training-program.js +0 -433
  420. package/dist/core/trajectory.d.ts +0 -411
  421. package/dist/core/trajectory.js +0 -1307
  422. package/dist/core/workspace-context.d.ts +0 -71
  423. package/dist/hooks/bash-risk.d.ts +0 -57
  424. package/dist/hooks/bash-risk.js +0 -137
  425. package/dist/hooks/edit-verification.d.ts +0 -62
  426. package/dist/hooks/edit-verification.js +0 -256
  427. package/dist/hooks/gate-block-helper.d.ts +0 -44
  428. package/dist/hooks/gate-block-helper.js +0 -119
  429. package/dist/hooks/gate.d.ts +0 -24
  430. package/dist/hooks/gate.js +0 -173
  431. package/dist/hooks/gfi-gate.d.ts +0 -40
  432. package/dist/hooks/gfi-gate.js +0 -113
  433. package/dist/hooks/lifecycle.d.ts +0 -5
  434. package/dist/hooks/lifecycle.js +0 -284
  435. package/dist/hooks/llm.d.ts +0 -13
  436. package/dist/hooks/message-sanitize.d.ts +0 -3
  437. package/dist/hooks/message-sanitize.js +0 -37
  438. package/dist/hooks/pain.d.ts +0 -5
  439. package/dist/hooks/pain.js +0 -301
  440. package/dist/hooks/progressive-trust-gate.d.ts +0 -52
  441. package/dist/hooks/progressive-trust-gate.js +0 -134
  442. package/dist/hooks/prompt.d.ts +0 -49
  443. package/dist/hooks/prompt.js +0 -905
  444. package/dist/hooks/subagent.d.ts +0 -10
  445. package/dist/hooks/subagent.js +0 -387
  446. package/dist/hooks/thinking-checkpoint.d.ts +0 -37
  447. package/dist/hooks/thinking-checkpoint.js +0 -51
  448. package/dist/hooks/trajectory-collector.d.ts +0 -32
  449. package/dist/hooks/trajectory-collector.js +0 -256
  450. package/dist/http/principles-console-route.d.ts +0 -9
  451. package/dist/http/principles-console-route.js +0 -681
  452. package/dist/i18n/commands.d.ts +0 -26
  453. package/dist/i18n/commands.js +0 -116
  454. package/dist/index.d.ts +0 -7
  455. package/dist/index.js +0 -581
  456. package/dist/service/central-database.d.ts +0 -104
  457. package/dist/service/central-database.js +0 -649
  458. package/dist/service/control-ui-query-service.d.ts +0 -221
  459. package/dist/service/control-ui-query-service.js +0 -543
  460. package/dist/service/empathy-observer-manager.d.ts +0 -88
  461. package/dist/service/empathy-observer-manager.js +0 -414
  462. package/dist/service/evolution-query-service.d.ts +0 -155
  463. package/dist/service/evolution-query-service.js +0 -258
  464. package/dist/service/evolution-worker.d.ts +0 -101
  465. package/dist/service/evolution-worker.js +0 -975
  466. package/dist/service/health-query-service.d.ts +0 -170
  467. package/dist/service/health-query-service.js +0 -662
  468. package/dist/service/nocturnal-runtime.d.ts +0 -183
  469. package/dist/service/nocturnal-service.d.ts +0 -163
  470. package/dist/service/nocturnal-service.js +0 -787
  471. package/dist/service/nocturnal-target-selector.d.ts +0 -145
  472. package/dist/service/nocturnal-target-selector.js +0 -315
  473. package/dist/service/phase3-input-filter.d.ts +0 -73
  474. package/dist/service/phase3-input-filter.js +0 -172
  475. package/dist/service/runtime-summary-service.d.ts +0 -122
  476. package/dist/service/runtime-summary-service.js +0 -485
  477. package/dist/service/subagent-workflow/empathy-observer-workflow-manager.d.ts +0 -48
  478. package/dist/service/subagent-workflow/index.d.ts +0 -4
  479. package/dist/service/subagent-workflow/index.js +0 -3
  480. package/dist/service/subagent-workflow/runtime-direct-driver.d.ts +0 -77
  481. package/dist/service/subagent-workflow/runtime-direct-driver.js +0 -75
  482. package/dist/service/subagent-workflow/types.js +0 -11
  483. package/dist/service/subagent-workflow/workflow-store.d.ts +0 -26
  484. package/dist/service/subagent-workflow/workflow-store.js +0 -165
  485. package/dist/service/trajectory-service.d.ts +0 -2
  486. package/dist/service/trajectory-service.js +0 -15
  487. package/dist/tools/critique-prompt.d.ts +0 -14
  488. package/dist/tools/deep-reflect.d.ts +0 -39
  489. package/dist/tools/deep-reflect.js +0 -350
  490. package/dist/tools/model-index.d.ts +0 -9
  491. package/dist/types/event-types.d.ts +0 -306
  492. package/dist/types/event-types.js +0 -106
  493. package/dist/types/hygiene-types.d.ts +0 -20
  494. package/dist/types/hygiene-types.js +0 -12
  495. package/dist/types/runtime-summary.d.ts +0 -47
  496. package/dist/types/runtime-summary.js +0 -1
  497. package/dist/types.d.ts +0 -50
  498. package/dist/types.js +0 -22
  499. package/dist/utils/file-lock.d.ts +0 -71
  500. package/dist/utils/file-lock.js +0 -309
  501. package/dist/utils/glob-match.d.ts +0 -28
  502. package/dist/utils/hashing.d.ts +0 -9
  503. package/dist/utils/io.d.ts +0 -6
  504. package/dist/utils/io.js +0 -106
  505. package/dist/utils/nlp.d.ts +0 -9
  506. package/dist/utils/plugin-logger.d.ts +0 -39
  507. package/dist/utils/subagent-probe.d.ts +0 -34
  508. package/dist/utils/subagent-probe.js +0 -81
package/SKILL.md ADDED
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: principles-disciple
3
+ description: Evolutionary programming agent framework with control-plane observability, pain-driven learning, and guarded execution.
4
+ version: 1.7.0
5
+ author: Principles Disciple Team
6
+ tags: [core, safety, evolution, control-plane]
7
+ ---
8
+
9
+ # Principles Disciple
10
+
11
+ An evolutionary agent framework built around pain signals, guarded execution, and a separable control plane.
12
+
13
+ ## Current Model
14
+
15
+ - `Pain` captures failure and frustration signals
16
+ - `GFI` is the short-term friction brake
17
+ - `Gate` is the execution intercept layer
18
+ - `Evolution` is the learning plane with EP (Evolution Points) as the sole gating mechanism
19
+ - `EP Tier` determines agent capabilities (Seed → Sprout → Sapling → Tree → Forest)
20
+
21
+ ## Key Commands
22
+
23
+ | Command | Description |
24
+ |---|---|
25
+ | `/pd-evolution-status` | Show the current control-plane and evolution summary |
26
+ | `/pd-evolve` | Run an evolution task |
27
+ | `/pd-rollback` | Roll back the latest or specified empathy penalty |
28
+ | `/pd-help` | Show help |
29
+
30
+ ## `/pd-evolution-status` Example
31
+
32
+ ```text
33
+ Evolution Status
34
+ ================
35
+
36
+ Control Plane
37
+ - EP Tier: Sapling (200 points)
38
+ - Session GFI: current 18, peak 25 (partial)
39
+ - GFI Sources: user_empathy(18)
40
+ - Pain Flag: inactive
41
+ - Last Pain Signal: user_empathy - buffered empathy event
42
+ - Gate Events: blocks 1, bypasses 0 (authoritative)
43
+
44
+ Evolution
45
+ - Queue: pending 1, in_progress 0, completed 0 (authoritative)
46
+ - Directive: present, active yes, age 5m
47
+ - Directive Task: fix something important
48
+ ```
49
+
50
+ ## Important Behavior Notes
51
+
52
+ - `/pd-rollback` now removes only the `user_empathy` GFI slice; it does not wipe the full session GFI.
53
+
54
+ ## Usage
55
+
56
+ Use Principles Disciple to:
57
+
58
+ - observe runtime control-plane state
59
+ - capture pain signals and empathy signals
60
+ - guard risky actions through Gate
61
+ - feed lessons into the evolution pipeline without turning evolution into a second authority system
62
+
63
+ This skill is designed to support the current observation window before any `Capability shadow` rollout.
@@ -0,0 +1,76 @@
1
+ # Principles Disciple Command Reference
2
+
3
+ > 当前版本重点:EP (Evolution Points) 系统已接替 trust score 成为唯一门控机制。
4
+ > `rollback` 只回滚 `user_empathy` slice,`/pd-evolution-status` 读的是运行时 summary。
5
+
6
+ ---
7
+
8
+ ## 核心命令
9
+
10
+ | 命令 | 用途 | 当前口径 |
11
+ |---|---|---|
12
+ | `/pd-evolution-status` | 查看控制面与进化面的当前状态 | 读取 `RuntimeSummaryService` 的 canonical state |
13
+ | `/pd-status empathy` | 查看情绪/共情事件统计 | 用于观察 `user_empathy` 与 `system_infer` 事件是否稳定落日志 |
14
+ | `/pd-rollback last` | 回滚最近一次情绪惩罚 | 只回滚 `user_empathy` 对应的 GFI slice |
15
+ | `/pd-evolve` | 执行进化任务 | 属于学习面,通过 EP 积累提升权限 |
16
+ | `/pd-help` | 显示帮助 | |
17
+
18
+ ---
19
+
20
+ ## `/pd-evolution-status`
21
+
22
+ ### 它现在显示什么
23
+
24
+ - `EP Tier`: 当前 EP 等级 (Seed → Sprout → Sapling → Tree → Forest)
25
+ - `Session GFI`: 当前会话 GFI 与峰值
26
+ - `GFI Sources`: 当前 summary 能解释出来的 friction 来源
27
+ - `Pain Flag`: pain flag 是否激活
28
+ - `Gate Events`: 最近的 block / bypass
29
+ - `Queue / Directive`: evolution queue 与 directive 的当前状态
30
+
31
+ ### 重要说明
32
+
33
+ - 这是当前控制面的权威读模型入口。
34
+ - 它优先读取 canonical `.state`,并尽量合并 live session / buffered events。
35
+ - 如果数据不完整,会显示 `partial` 或 warning,而不是静默显示 `0`。
36
+
37
+ ---
38
+
39
+ ## `/pd-rollback`
40
+
41
+ ### 当前行为
42
+
43
+ - `/pd-rollback last`
44
+ - `/pd-rollback <event-id>`
45
+
46
+ 回滚的是最近一次或指定的 `user_empathy` 事件。
47
+
48
+ ### 重要变化
49
+
50
+ - 现在只回滚 `user_empathy` 对应的 GFI slice
51
+ - 不再把整段 session GFI 一起清空
52
+ - 如果事件不存在或来源不匹配,不会误伤其他 friction
53
+
54
+ ---
55
+
56
+ ## EP 等级说明
57
+
58
+ | 等级 | EP 要求 | 权限 |
59
+ |---|---|---|
60
+ | Seed | 0 | 只读 + 基础文档 |
61
+ | Sprout | 50 | 单文件编辑 |
62
+ | Sapling | 200 | 多文件 + 测试 + 子智能体 |
63
+ | Tree | 500 | 重构 + 风险路径 |
64
+ | Forest | 1000 | 无限制 |
65
+
66
+ ---
67
+
68
+ ## 观察窗口建议
69
+
70
+ 在进入 `Phase 3 capability shadow` 之前,优先每天检查:
71
+
72
+ 1. `user_empathy` / `system_infer` 是否稳定进入 `events.jsonl`
73
+ 2. rollback 是否只影响 empathy slice
74
+ 3. `evolution_queue.json`、`evolution_directive.json` 与 status 是否一致
75
+ 4. summary 是否仍然需要 `partial` 警告才能解释当前状态
76
+ 5. EP 积累是否正常驱动等级提升
@@ -0,0 +1,79 @@
1
+ # Principles Disciple Command Reference (English)
2
+
3
+ > Current state: EP (Evolution Points) system is the primary growth system, fully operational and enabled by default.
4
+
5
+ ---
6
+
7
+ ## Core Commands
8
+
9
+ | Command | Purpose |
10
+ |---|---|
11
+ | `/pd-evolution-status` | View EP tier, GFI, pain flag, and gate events |
12
+ | `/pd-status empathy` | Inspect empathy/frustration event statistics |
13
+ | `/pd-rollback last` | Roll back the latest empathy penalty |
14
+ | `/pd-evolve` | Run an evolution task |
15
+ | `/pd-evolution-points` | View current EP balance and tier |
16
+
17
+ ---
18
+
19
+ ## `/pd-evolution-status`
20
+
21
+ ### What it shows
22
+
23
+ - `EP Tier`: Current evolution tier (Seed → Sprout → Sapling → Tree → Forest)
24
+ - `Session GFI`: Current session GFI and peak
25
+ - `GFI Sources`: Currently attributable friction sources
26
+ - `Pain Flag`: Whether a pain flag is active
27
+ - `Gate Events`: Recent block / bypass counts
28
+ - `Queue / Directive`: Evolution queue and directive state
29
+
30
+ ### Important notes
31
+
32
+ - This is the main operator entry point into the control plane.
33
+ - It reads canonical `.state` and tries to merge live session state and buffered events when available.
34
+ - When data is incomplete, it surfaces `partial` or warnings instead of silently printing `0`.
35
+
36
+ ---
37
+
38
+ ## `/pd-rollback`
39
+
40
+ ### Current behavior
41
+
42
+ - `/pd-rollback last`
43
+ - `/pd-rollback <event-id>`
44
+
45
+ It rolls back the latest or specified `user_empathy` event.
46
+
47
+ ### Important notes
48
+
49
+ - It subtracts only the `user_empathy` GFI slice
50
+ - It no longer wipes the whole session GFI
51
+ - If the event is missing or the source does not match, unrelated friction remains untouched
52
+
53
+ ---
54
+
55
+ ## EP Tier System
56
+
57
+ | Tier | EP Required | Max Lines/Write |
58
+ |------|-------------|-----------------|
59
+ | Seed | 0 | 150 |
60
+ | Sprout | 50 | 300 |
61
+ | Sapling | 200 | 500 |
62
+ | Tree | 500 | 1000 |
63
+ | Forest | 1000 | Unlimited |
64
+
65
+ EP is earned through successful task completion and problem resolution.
66
+
67
+ ---
68
+
69
+ ## Observation Window Checklist
70
+
71
+ Before entering new capability phases, check daily:
72
+
73
+ 1. EP tier and queue are functioning correctly
74
+ 2. `user_empathy` and `system_infer` appear in `events.jsonl`
75
+ 3. rollback affects only the empathy slice
76
+ 4. `evolution_queue.json`, `evolution_directive.json`, and status stay aligned
77
+ 5. summary warnings still accurately explain partial data quality
78
+
79
+ (End of file - total 84 lines)
@@ -0,0 +1,75 @@
1
+ import { build } from 'esbuild';
2
+ import { copyFileSync, mkdirSync, existsSync, statSync, readdirSync, rmSync } from 'fs';
3
+ import { join } from 'path';
4
+
5
+ const isProduction = process.argv.includes('--production');
6
+
7
+ // Clean dist/ before build to prevent tsc artifacts from coexisting with bundle
8
+ if (existsSync('dist')) {
9
+ console.log('🧹 Cleaning dist/...');
10
+ rmSync('dist', { recursive: true, force: true });
11
+ }
12
+
13
+ function copyRecursive(src, dest) {
14
+ const stats = statSync(src);
15
+ if (stats.isDirectory()) {
16
+ mkdirSync(dest, { recursive: true });
17
+ for (const entry of readdirSync(src)) {
18
+ copyRecursive(join(src, entry), join(dest, entry));
19
+ }
20
+ return;
21
+ }
22
+
23
+ copyFileSync(src, dest);
24
+ }
25
+
26
+ async function bundlePlugin() {
27
+ try {
28
+ await build({
29
+ entryPoints: ['src/index.ts'],
30
+ outfile: 'dist/bundle.js',
31
+ bundle: true,
32
+ platform: 'node',
33
+ target: 'node20',
34
+ format: 'esm',
35
+ external: [
36
+ 'openclaw',
37
+ '@openclaw/sdk',
38
+ '@openclaw/plugin-kit',
39
+ 'better-sqlite3',
40
+ ],
41
+ sourcemap: isProduction ? false : 'inline',
42
+ minify: isProduction ? true : false,
43
+ treeShaking: true,
44
+ metafile: true,
45
+ });
46
+
47
+ console.log('Bundle created: dist/bundle.js');
48
+
49
+ const staticFiles = ['templates', 'agents', 'openclaw.plugin.json'];
50
+ const distDir = 'dist';
51
+
52
+ for (const file of staticFiles) {
53
+ const src = file;
54
+ const dest = join(distDir, file);
55
+ if (!existsSync(src)) {
56
+ continue;
57
+ }
58
+
59
+ if (statSync(src).isDirectory()) {
60
+ copyRecursive(src, dest);
61
+ } else {
62
+ copyFileSync(src, dest);
63
+ }
64
+
65
+ console.log(`Copied: ${file} -> dist/${file}`);
66
+ }
67
+
68
+ console.log('\nPlugin bundle ready for distribution.');
69
+ } catch (error) {
70
+ console.error('Bundle failed:', error);
71
+ process.exit(1);
72
+ }
73
+ }
74
+
75
+ bundlePlugin();
@@ -2,7 +2,7 @@
2
2
  "id": "principles-disciple",
3
3
  "name": "Principles Disciple",
4
4
  "description": "Evolutionary programming agent framework with strategic guardrails and reflection loops.",
5
- "version": "1.8.1",
5
+ "version": "1.8.3",
6
6
  "skills": [
7
7
  "./skills"
8
8
  ],
@@ -76,8 +76,8 @@
76
76
  }
77
77
  },
78
78
  "buildFingerprint": {
79
- "gitSha": "4e632d4c5c2c",
80
- "bundleMd5": "ed0922a01d46d55a49cd96f8feb158a9",
81
- "builtAt": "2026-03-31T03:48:08.676Z"
79
+ "gitSha": "c159a298aac0",
80
+ "bundleMd5": "e54bd6b71182252dd335aa016c9caa0e",
81
+ "builtAt": "2026-04-06T05:28:57.508Z"
82
82
  }
83
83
  }
package/package.json CHANGED
@@ -1,18 +1,11 @@
1
1
  {
2
2
  "name": "principles-disciple",
3
- "version": "1.8.1",
3
+ "version": "1.8.3",
4
4
  "description": "Native OpenClaw plugin for Principles Disciple",
5
5
  "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "files": [
9
- "dist",
10
- "templates",
11
- "agents",
12
- "openclaw.plugin.json"
13
- ],
6
+ "main": "./dist/bundle.js",
14
7
  "exports": {
15
- ".": "./dist/index.js"
8
+ ".": "./dist/bundle.js"
16
9
  },
17
10
  "repository": {
18
11
  "type": "git",
@@ -29,15 +22,17 @@
29
22
  "id": "principles-disciple",
30
23
  "name": "Principles Disciple",
31
24
  "extensions": [
32
- "./dist/index.js"
25
+ "./dist/bundle.js"
33
26
  ]
34
27
  },
35
28
  "scripts": {
36
29
  "build": "tsc",
37
30
  "build:web": "node scripts/build-web.mjs",
38
31
  "build:bundle": "node esbuild.config.js && node scripts/build-web.mjs",
39
- "build:production": "tsc && node esbuild.config.js --production && node scripts/build-web.mjs --production && node scripts/verify-build.mjs",
32
+ "build:production": "node esbuild.config.js --production && node scripts/build-web.mjs --production && node scripts/verify-build.mjs",
40
33
  "test": "vitest run",
34
+ "test:coverage": "vitest run --coverage",
35
+ "lint": "eslint src/",
41
36
  "postinstall": "node scripts/install-dependencies.cjs"
42
37
  },
43
38
  "devDependencies": {
@@ -48,15 +43,18 @@
48
43
  "@types/react": "^19.2.2",
49
44
  "@types/react-dom": "^19.2.2",
50
45
  "@types/ws": "^8.5.13",
46
+ "@typescript-eslint/eslint-plugin": "^8.58.0",
47
+ "@typescript-eslint/parser": "^8.58.0",
51
48
  "@vitest/coverage-v8": "^4.1.0",
52
49
  "esbuild": "^0.27.4",
50
+ "eslint": "^10.1.0",
53
51
  "jsdom": "^29.0.1",
54
52
  "typescript": "^6.0.2",
55
53
  "vitest": "^4.1.0",
56
54
  "ws": "^8.18.0"
57
55
  },
58
56
  "peerDependencies": {
59
- "openclaw": ">=1.0.0"
57
+ "openclaw": ">=2026.4.4"
60
58
  },
61
59
  "peerDependenciesMeta": {
62
60
  "openclaw": {
@@ -0,0 +1,46 @@
1
+ import { build } from "esbuild";
2
+ import { mkdirSync, writeFileSync } from "node:fs";
3
+ import { fileURLToPath } from "node:url";
4
+ import path from "node:path";
5
+
6
+ const isProduction = process.argv.includes("--production");
7
+ const rootDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
8
+ const outDir = path.join(rootDir, "dist", "web");
9
+ const assetsDir = path.join(outDir, "assets");
10
+
11
+ mkdirSync(assetsDir, { recursive: true });
12
+
13
+ await build({
14
+ entryPoints: [path.join(rootDir, "ui", "src", "main.tsx")],
15
+ bundle: true,
16
+ format: "esm",
17
+ platform: "browser",
18
+ target: ["es2022"],
19
+ outfile: path.join(assetsDir, "app.js"),
20
+ sourcemap: isProduction ? false : "inline",
21
+ minify: isProduction,
22
+ jsx: "automatic",
23
+ loader: {
24
+ ".css": "css",
25
+ },
26
+ define: {
27
+ "process.env.NODE_ENV": JSON.stringify(isProduction ? "production" : "development"),
28
+ },
29
+ });
30
+
31
+ const html = `<!doctype html>
32
+ <html lang="zh-CN">
33
+ <head>
34
+ <meta charset="utf-8" />
35
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
36
+ <title>Principles Console</title>
37
+ <link rel="stylesheet" href="/plugins/principles/assets/app.css" />
38
+ </head>
39
+ <body>
40
+ <div id="root"></div>
41
+ <script type="module" src="/plugins/principles/assets/app.js"></script>
42
+ </body>
43
+ </html>
44
+ `;
45
+
46
+ writeFileSync(path.join(outDir, "index.html"), html, "utf8");
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { execFileSync } = require('child_process');
4
+ const { existsSync, readFileSync } = require('fs');
5
+ const { join } = require('path');
6
+
7
+ const PLUGIN_DIR = join(__dirname, '..');
8
+
9
+ console.log('Setting up Principles Disciple plugin dependencies...');
10
+
11
+ const packageJsonPath = join(PLUGIN_DIR, 'package.json');
12
+ if (!existsSync(packageJsonPath)) {
13
+ console.log('Not in plugin directory, skipping dependency setup');
14
+ process.exit(0);
15
+ }
16
+
17
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
18
+ const dependencyNames = ['micromatch', '@sinclair/typebox', 'better-sqlite3'];
19
+ const DEPENDENCIES = dependencyNames.map((name) => {
20
+ const version = packageJson.dependencies?.[name] || packageJson.devDependencies?.[name];
21
+ if (!version) {
22
+ throw new Error(`Missing dependency version in package.json for ${name}`);
23
+ }
24
+ return `${name}@${version}`;
25
+ });
26
+
27
+ const nodeModulesDir = join(PLUGIN_DIR, 'node_modules');
28
+ const betterSqliteDir = join(nodeModulesDir, 'better-sqlite3');
29
+ if (existsSync(nodeModulesDir) && existsSync(betterSqliteDir)) {
30
+ console.log('Dependencies already installed');
31
+ process.exit(0);
32
+ }
33
+
34
+ console.log('Installing plugin dependencies...');
35
+ try {
36
+ execFileSync('npm', ['install', ...DEPENDENCIES], {
37
+ cwd: PLUGIN_DIR,
38
+ stdio: 'inherit',
39
+ });
40
+ console.log('Plugin dependencies installed successfully');
41
+ } catch (error) {
42
+ console.error('Failed to install plugin dependencies:', error.message);
43
+ console.log('\nManual fix:');
44
+ console.log(' cd', PLUGIN_DIR);
45
+ console.log(' npm install', DEPENDENCIES.join(' '));
46
+ process.exit(1);
47
+ }