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
@@ -0,0 +1,363 @@
1
+ /**
2
+ * UI internationalization module.
3
+ * Provides bilingual strings for the Principles Console WebUI.
4
+ * Uses the same pattern as packages/openclaw-plugin/src/i18n/commands.ts
5
+ */
6
+
7
+ export type SupportedLanguage = 'zh' | 'en';
8
+
9
+ export function normalizeLanguage(lang: string): SupportedLanguage {
10
+ if (lang.toLowerCase().startsWith('zh')) return 'zh';
11
+ return 'en';
12
+ }
13
+
14
+ export function getLanguage(): SupportedLanguage {
15
+ if (typeof navigator !== 'undefined') {
16
+ return normalizeLanguage(navigator.language);
17
+ }
18
+ return 'en';
19
+ }
20
+
21
+ export const i18n = {
22
+ // ========================================================================
23
+ // Shell / Navigation
24
+ // ========================================================================
25
+ nav: {
26
+ overview: { zh: '工作区健康度', en: 'Workspace Health' },
27
+ evolution: { zh: '进化追踪', en: 'Evolution' },
28
+ samples: { zh: '样本审核', en: 'Samples' },
29
+ thinkingModels: { zh: '思维模型', en: 'Thinking Models' },
30
+ feedback: { zh: '反馈回路', en: 'Feedback Loop' },
31
+ gateMonitor: { zh: 'Gate 监控', en: 'Gate Monitor' },
32
+ exportSamples: { zh: '导出样本', en: 'Export Samples' },
33
+ logout: { zh: '退出登录', en: 'Logout' },
34
+ },
35
+ brand: {
36
+ title: { zh: '进化控制台', en: 'Principles Console' },
37
+ subtitle: { zh: 'AI Agent 自主进化监控平台', en: 'AI Agent Evolution Monitoring Platform' },
38
+ },
39
+
40
+ // ========================================================================
41
+ // Common / Shared
42
+ // ========================================================================
43
+ common: {
44
+ loading: { zh: '加载中...', en: 'Loading...' },
45
+ noData: { zh: '暂无数据', en: 'No data' },
46
+ actions: { zh: '操作', en: 'Actions' },
47
+ cancel: { zh: '取消', en: 'Cancel' },
48
+ confirm: { zh: '确认', en: 'Confirm' },
49
+ refresh: { zh: '刷新', en: 'Refresh' },
50
+ back: { zh: '返回', en: 'Back' },
51
+ lastUpdated: { zh: '最后更新', en: 'Last updated' },
52
+ timeRange: { zh: '时间范围', en: 'Time Range' },
53
+ total: { zh: '共', en: 'Total' },
54
+ items: { zh: '条', en: 'items' },
55
+ },
56
+
57
+ // ========================================================================
58
+ // Time Range Selector
59
+ // ========================================================================
60
+ timeRange: {
61
+ days7: { zh: '7天', en: '7 days' },
62
+ days14: { zh: '14天', en: '14 days' },
63
+ days30: { zh: '30天', en: '30 days' },
64
+ },
65
+
66
+ // ========================================================================
67
+ // Auth / Login
68
+ // ========================================================================
69
+ auth: {
70
+ checking: { zh: '正在验证身份...', en: 'Verifying identity...' },
71
+ loginTitle: { zh: 'Principles Console', en: 'Principles Console' },
72
+ loginSubtitle: { zh: 'AI Agent 进化流程监控平台', en: 'AI Agent Evolution Monitoring Platform' },
73
+ tokenPlaceholder: { zh: '请输入您的 Gateway Token', en: 'Enter your Gateway Token' },
74
+ tokenHint: { zh: '在服务器上运行 openclaw config get gateway.auth.token 获取 Token', en: 'Run openclaw config get gateway.auth.token on your server to get the Token' },
75
+ loginButton: { zh: '登 录', en: 'Sign In' },
76
+ validatingButton: { zh: '正在验证...', en: 'Validating...' },
77
+ errorEmpty: { zh: '请输入 Gateway Token', en: 'Please enter a Gateway Token' },
78
+ errorInvalid: { zh: 'Token 无效或已过期,请检查后重试', en: 'Token is invalid or expired, please try again' },
79
+ howToGetToken: { zh: '如何获取 Token?', en: 'How to get your Token?' },
80
+ step1: { zh: 'SSH 登录到运行 OpenClaw Gateway 的服务器', en: 'SSH into your server running OpenClaw Gateway' },
81
+ step2: { zh: '运行命令查看配置:cat ~/.openclaw/openclaw.json', en: 'Run: cat ~/.openclaw/openclaw.json to view config' },
82
+ step3: { zh: '复制 gateway.auth.token 的值', en: 'Copy the value of gateway.auth.token' },
83
+ },
84
+
85
+ // ========================================================================
86
+ // Overview Page
87
+ // ========================================================================
88
+ overview: {
89
+ pageTitle: { zh: '工作区健康度', en: 'Workspace Health' },
90
+ freshness: { zh: '数据新鲜度', en: 'Freshness' },
91
+ syncAll: { zh: '同步全部', en: 'Sync All' },
92
+ syncing: { zh: '同步中...', en: 'Syncing...' },
93
+ workspacesEnabled: { zh: '个工作区已启用', en: 'workspaces enabled' },
94
+
95
+ // Health Cards (Phase 5)
96
+ health: {
97
+ gfi: { zh: 'GFI 疲劳指数', en: 'GFI Fatigue Index' },
98
+ threshold: { zh: '阈值', en: 'Threshold' },
99
+ peakToday: { zh: '今日峰值', en: 'Peak Today' },
100
+ painFlag: { zh: 'PainFlag', en: 'PainFlag' },
101
+ active: { zh: '活跃', en: 'Active' },
102
+ normal: { zh: '正常', en: 'Normal' },
103
+ noActivePain: { zh: '无活跃痛点', en: 'No active pain' },
104
+ source: { zh: '来源', en: 'Source' },
105
+ trustStage: { zh: 'Trust Stage', en: 'Trust Stage' },
106
+ stage: { zh: 'Stage', en: 'Stage' },
107
+ score: { zh: '分数', en: 'Score' },
108
+ epTier: { zh: 'EP Tier', en: 'EP Tier' },
109
+ points: { zh: '积分', en: 'Points' },
110
+ principlesTotal: { zh: '原则总数', en: 'Total Principles' },
111
+ candidate: { zh: '候', en: 'Cand' },
112
+ probation: { zh: '试', en: 'Prob' },
113
+ active2: { zh: '活', en: 'Act' },
114
+ deprecated: { zh: '废', en: 'Dep' },
115
+ queueBacklog: { zh: '队列积压', en: 'Queue Backlog' },
116
+ pending: { zh: '待处理', en: 'Pending' },
117
+ inProgress: { zh: '处理中', en: 'In Progress' },
118
+ completed: { zh: '已完成', en: 'Completed' },
119
+ },
120
+
121
+ // KPI labels
122
+ repeatErrorRate: { zh: '重复错误率', en: 'Repeat Error Rate' },
123
+ userCorrectionRate: { zh: '用户纠正率', en: 'User Correction Rate' },
124
+ pendingSamples: { zh: '待审样本', en: 'Pending Samples' },
125
+ approvedSamples: { zh: '已批准样本', en: 'Approved Samples' },
126
+ thinkingCoverage: { zh: '思维覆盖率', en: 'Thinking Coverage' },
127
+ painEvents: { zh: '痛点事件', en: 'Pain Events' },
128
+
129
+ // Section headers
130
+ recentTrend: { zh: '近期趋势', en: 'Recent Trend' },
131
+ topRegressions: { zh: '高频退化', en: 'Top Regressions' },
132
+ sampleQueue: { zh: '样本队列', en: 'Sample Queue' },
133
+ thinkingSummary: { zh: '思维摘要', en: 'Thinking Summary' },
134
+
135
+ // Thinking summary fields
136
+ activeModels: { zh: '活跃模型', en: 'Active Models' },
137
+ dormantModels: { zh: '休眠模型', en: 'Dormant Models' },
138
+ effectiveModels: { zh: '有效模型', en: 'Effective Models' },
139
+ coverage: { zh: '覆盖率', en: 'Coverage' },
140
+ principleEvents: { zh: '原则事件', en: 'Principle Events' },
141
+
142
+ // Trend row suffixes
143
+ calls: { zh: '次调用', en: 'calls' },
144
+ failures: { zh: '次失败', en: 'failures' },
145
+ corrections: { zh: '次纠正', en: 'corrections' },
146
+ thinkingTurns: { zh: '思维轮次', en: 'thinking turns' },
147
+
148
+ // Table column headers
149
+ qualityScore: { zh: '质量分', en: 'Score' },
150
+ reviewStatus: { zh: '状态', en: 'Status' },
151
+ createdAt: { zh: '创建时间', en: 'Created At' },
152
+ failureMode: { zh: '失败模式', en: 'Failure Mode' },
153
+ relatedThinking: { zh: '相关思维', en: 'Thinking Hits' },
154
+ },
155
+
156
+ // ========================================================================
157
+ // Samples Page
158
+ // ========================================================================
159
+ samples: {
160
+ pageTitle: { zh: '样本审核', en: 'Sample Review' },
161
+ statusFilter: { zh: '状态', en: 'Status' },
162
+ statusAll: { zh: '全部', en: 'All' },
163
+ statusPending: { zh: '待审', en: 'Pending' },
164
+ statusApproved: { zh: '已批准', en: 'Approved' },
165
+ statusRejected: { zh: '已拒绝', en: 'Rejected' },
166
+
167
+ // Empty state
168
+ emptyTitle: { zh: '选择一条样本', en: 'Select a sample' },
169
+ emptyDesc: { zh: '点击左侧列表中的样本,查看bad attempt、纠正内容和相关思维命中', en: 'Click a sample from the list to inspect the bad attempt, correction, and related thinking hits' },
170
+
171
+ // Detail sections
172
+ badAttempt: { zh: '错误尝试', en: 'Bad Attempt' },
173
+ userCorrection: { zh: '用户纠正', en: 'User Correction' },
174
+ recoveryToolSpan: { zh: '恢复工具链', en: 'Recovery Tool Span' },
175
+ relatedThinkingHits: { zh: '相关思维命中', en: 'Related Thinking Hits' },
176
+ reviewHistory: { zh: '审核历史', en: 'Review History' },
177
+ noNote: { zh: '无备注', en: 'No note' },
178
+ noScenarios: { zh: '无场景', en: 'No scenarios' },
179
+
180
+ // Actions
181
+ approve: { zh: '批准', en: 'Approve' },
182
+ reject: { zh: '拒绝', en: 'Reject' },
183
+ },
184
+
185
+ // ========================================================================
186
+ // Thinking Models Page
187
+ // ========================================================================
188
+ thinkingModels: {
189
+ pageTitle: { zh: '思维模型', en: 'Thinking Models' },
190
+ coverage: { zh: '覆盖率', en: 'Coverage' },
191
+ active: { zh: '活跃', en: 'Active' },
192
+ dormant: { zh: '休眠', en: 'Dormant' },
193
+ effective: { zh: '有效', en: 'Effective' },
194
+
195
+ // Empty state
196
+ emptyTitle: { zh: '选择一个思维模型', en: 'Select a thinking model' },
197
+ emptyDesc: { zh: '点击左侧列表中的模型,查看场景分布和最近事件', en: 'Click a model from the list to inspect scenario coverage and recent events' },
198
+
199
+ // Detail sections
200
+ outcomeStats: { zh: '结果统计', en: 'Outcome Stats' },
201
+ scenarioDistribution: { zh: '场景分布', en: 'Scenario Distribution' },
202
+ recentEvents: { zh: '最近事件', en: 'Recent Events' },
203
+ noScenariosYet: { zh: '暂无场景', en: 'No scenarios yet' },
204
+
205
+ // Outcome stats
206
+ success: { zh: '成功', en: 'Success' },
207
+ failure: { zh: '失败', en: 'Failure' },
208
+ pain: { zh: '痛点', en: 'Pain' },
209
+ correction: { zh: '纠正', en: 'Correction' },
210
+
211
+ // Table
212
+ hits: { zh: '命中', en: 'Hits' },
213
+ successRate: { zh: '成功率', en: 'Success Rate' },
214
+ failureRate: { zh: '失败率', en: 'Failure Rate' },
215
+ },
216
+
217
+ // ========================================================================
218
+ // Evolution Page
219
+ // ========================================================================
220
+ evolution: {
221
+ pageTitle: { zh: '进化流程追踪', en: 'Evolution Tracking' },
222
+
223
+ // Status badges
224
+ pending: { zh: '待处理', en: 'Pending' },
225
+ inProgress: { zh: '处理中', en: 'In Progress' },
226
+ completed: { zh: '已完成', en: 'Completed' },
227
+ failed: { zh: '失败', en: 'Failed' },
228
+
229
+ // Active stage labels
230
+ activeStage: {
231
+ pending: { zh: '等待中', en: 'Pending' },
232
+ in_progress: { zh: '进行中', en: 'In Progress' },
233
+ completed: { zh: '已完成', en: 'Completed' },
234
+ idle: { zh: '空闲', en: 'Idle' },
235
+ },
236
+ enhancementLoopStatus: { zh: '增强回路当前状态', en: 'Enhancement Loop Status' },
237
+
238
+ // Stage labels (used in STAGE_LABELS)
239
+ stageLabels: {
240
+ pain_detected: { zh: '痛点检测', en: 'Pain Detected' },
241
+ queued: { zh: '已入队', en: 'Queued' },
242
+ started: { zh: '开始处理', en: 'Started' },
243
+ analyzing: { zh: '分析中', en: 'Analyzing' },
244
+ principle_generated: { zh: '原则生成', en: 'Principle Generated' },
245
+ completed: { zh: '已完成', en: 'Completed' },
246
+ },
247
+
248
+ // Status filter
249
+ filterAll: { zh: '全部', en: 'All' },
250
+ statusFilter: { zh: '状态筛选', en: 'Status Filter' },
251
+ taskLabel: { zh: '任务', en: 'Task' },
252
+
253
+ // Section headers
254
+ statusDistribution: { zh: '状态分布', en: 'Status Distribution' },
255
+ recentActivity: { zh: '近期活动', en: 'Recent Activity' },
256
+ stageDistribution: { zh: '阶段分布', en: 'Stage Distribution' },
257
+
258
+ // Activity
259
+ created: { zh: '新增', en: 'Created' },
260
+ finished: { zh: '完成', en: 'Finished' },
261
+
262
+ // Table
263
+ score: { zh: '分数', en: 'Score' },
264
+ source: { zh: '来源', en: 'Source' },
265
+ duration: { zh: '耗时', en: 'Duration' },
266
+ events: { zh: '事件', en: 'Events' },
267
+
268
+ // Empty state
269
+ emptyTitle: { zh: '选择一个任务', en: 'Select a task' },
270
+ emptyDesc: { zh: '点击左侧列表中的任务,查看进化时间线和详细事件', en: 'Click a task from the list to view its evolution timeline and detailed events' },
271
+
272
+ // Detail
273
+ evolutionTimeline: { zh: '进化时间线', en: 'Evolution Timeline' },
274
+ detailedEvents: { zh: '详细事件', en: 'Detailed Events' },
275
+ reason: { zh: '原因', en: 'Reason' },
276
+ },
277
+
278
+ // ========================================================================
279
+ // Workspace Config
280
+ // ========================================================================
281
+ workspace: {
282
+ title: { zh: '工作区配置', en: 'Workspace Configuration' },
283
+ addWorkspace: { zh: '添加', en: 'Add' },
284
+ cancel: { zh: '取消', en: 'Cancel' },
285
+ adding: { zh: '添加中...', en: 'Adding...' },
286
+ workspaceName: { zh: '工作区名称', en: 'Workspace Name' },
287
+ path: { zh: '路径', en: 'Path' },
288
+ include: { zh: '纳入', en: 'Include' },
289
+ sync: { zh: '同步', en: 'Sync' },
290
+ placeholder: {
291
+ name: { zh: 'workspace-custom', en: 'workspace-custom' },
292
+ path: { zh: '/home/user/.openclaw/workspace-custom', en: '/home/user/.openclaw/workspace-custom' },
293
+ },
294
+ },
295
+
296
+ // ========================================================================
297
+ // Feedback / Gate Monitor
298
+ // ========================================================================
299
+ feedback: {
300
+ pageTitle: { zh: '反馈回路', en: 'Feedback Loop' },
301
+ pageSubtitle: { zh: 'GFI 监控与同理心检测', en: 'GFI Monitoring & Empathy Detection' },
302
+ gfiDashboard: { zh: 'GFI 实时仪表盘', en: 'GFI Real-time Dashboard' },
303
+ threshold: { zh: '阈值', en: 'Threshold' },
304
+ peakToday: { zh: '今日峰值', en: 'Peak Today' },
305
+ hourlyTrend: { zh: '小时趋势', en: 'Hourly Trend' },
306
+ empathyEvents: { zh: '同理心检测事件', en: 'Empathy Events' },
307
+ gateBlocks: { zh: 'GFI 拦截关联', en: 'GFI Gate Blocks' },
308
+ noEmpathyEvents: { zh: '暂无同理心事件', en: 'No Empathy Events' },
309
+ noEmpathyEventsDesc: { zh: '尚未检测到同理心偏移事件', en: 'No empathy deviation events detected yet' },
310
+ noGateBlocks: { zh: '暂无拦截记录', en: 'No Gate Blocks' },
311
+ noGateBlocksDesc: { zh: '尚未有 GFI 拦截记录', en: 'No GFI gate blocks recorded yet' },
312
+ },
313
+
314
+ gate: {
315
+ pageTitle: { zh: 'Gate 监控', en: 'Gate Monitor' },
316
+ pageSubtitle: { zh: '拦截统计与 Trust/EP 双轨', en: 'Block Statistics & Trust/EP Dual Track' },
317
+ todayStats: { zh: '今日拦截统计', en: "Today's Block Statistics" },
318
+ gfiBlocks: { zh: 'GFI 拦截', en: 'GFI Blocks' },
319
+ stageBlocks: { zh: 'Stage 限制', en: 'Stage Limits' },
320
+ p03Blocks: { zh: 'P-03 不匹配', en: 'P-03 Mismatch' },
321
+ bypassAttempts: { zh: '绕过尝试', en: 'Bypass Attempts' },
322
+ p16Exemptions: { zh: 'P-16 豁免', en: 'P-16 Exemptions' },
323
+ trustEngine: { zh: 'Trust Engine', en: 'Trust Engine' },
324
+ evolutionEngine: { zh: 'Evolution Engine', en: 'Evolution Engine' },
325
+ blockHistory: { zh: '拦截历史', en: 'Block History' },
326
+ score: { zh: '分数', en: 'Score' },
327
+ points: { zh: '积分', en: 'Points' },
328
+ noGateBlocks: { zh: '暂无拦截记录', en: 'No Gate Blocks' },
329
+ noGateBlocksDesc: { zh: '尚未有 GFI 拦截记录', en: 'No GFI gate blocks recorded yet' },
330
+ },
331
+ } as const;
332
+
333
+ export type I18nKey = keyof typeof i18n;
334
+ export type I18n = typeof i18n;
335
+
336
+ /**
337
+ * Get a translated string by dot-path key.
338
+ * Usage: t('overview.pageTitle')
339
+ */
340
+ export function t<K extends string>(
341
+ path: K
342
+ ): string {
343
+ const keys = path.split('.');
344
+ let value: unknown = i18n;
345
+ for (const key of keys) {
346
+ if (value == null || typeof value !== 'object') return path;
347
+ value = (value as Record<string, unknown>)[key];
348
+ }
349
+ if (typeof value === 'object' && value !== null) {
350
+ const lang = getLanguage();
351
+ return String((value as Record<string, unknown>)[lang] ?? (value as Record<string, unknown>).en ?? path);
352
+ }
353
+ return typeof value === 'string' ? value : path;
354
+ }
355
+
356
+ /**
357
+ * useI18n hook for React components.
358
+ * Returns a t function that uses the detected language.
359
+ */
360
+ export function useI18n() {
361
+ const lang = getLanguage();
362
+ return { t, lang };
363
+ }
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { createRoot } from 'react-dom/client';
3
+ import App from './App';
4
+ import './styles.css';
5
+
6
+ const container = document.getElementById('root');
7
+
8
+ if (!container) {
9
+ throw new Error('Missing root container');
10
+ }
11
+
12
+ createRoot(container).render(
13
+ <React.StrictMode>
14
+ <App />
15
+ </React.StrictMode>,
16
+ );