principles-disciple 1.8.0 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/ADVANCED_CONFIG_ZH.md +97 -0
  2. package/AGENT_INSTALL.md +173 -0
  3. package/AGENT_INSTALL_EN.md +173 -0
  4. package/INSTALL.md +256 -0
  5. package/SKILL.md +63 -0
  6. package/docs/COMMAND_REFERENCE.md +76 -0
  7. package/docs/COMMAND_REFERENCE_EN.md +79 -0
  8. package/esbuild.config.js +75 -0
  9. package/openclaw.plugin.json +6 -1
  10. package/package.json +13 -15
  11. package/scripts/build-web.mjs +46 -0
  12. package/scripts/install-dependencies.cjs +47 -0
  13. package/scripts/sync-plugin.mjs +802 -0
  14. package/scripts/verify-build.mjs +109 -0
  15. package/src/agents/nocturnal-dreamer.md +152 -0
  16. package/src/agents/nocturnal-philosopher.md +138 -0
  17. package/src/agents/nocturnal-reflector.md +126 -0
  18. package/src/agents/nocturnal-scribe.md +164 -0
  19. package/src/commands/capabilities.ts +85 -0
  20. package/{dist/commands/context.js → src/commands/context.ts} +78 -38
  21. package/src/commands/evolution-status.ts +146 -0
  22. package/src/commands/export.ts +111 -0
  23. package/src/commands/focus.ts +533 -0
  24. package/src/commands/nocturnal-review.ts +311 -0
  25. package/src/commands/nocturnal-rollout.ts +763 -0
  26. package/src/commands/nocturnal-train.ts +1002 -0
  27. package/{dist/commands/pain.js → src/commands/pain.ts} +68 -49
  28. package/src/commands/principle-rollback.ts +27 -0
  29. package/{dist/commands/rollback.js → src/commands/rollback.ts} +44 -12
  30. package/src/commands/samples.ts +60 -0
  31. package/src/commands/strategy.ts +38 -0
  32. package/{dist/commands/thinking-os.js → src/commands/thinking-os.ts} +59 -36
  33. package/src/commands/workflow-debug.ts +128 -0
  34. package/{dist/config/defaults/runtime.js → src/config/defaults/runtime.ts} +12 -5
  35. package/src/config/errors.ts +163 -0
  36. package/{dist/config/index.d.ts → src/config/index.ts} +2 -1
  37. package/src/constants/diagnostician.ts +66 -0
  38. package/src/constants/tools.ts +62 -0
  39. package/src/core/adaptive-thresholds.ts +476 -0
  40. package/{dist/core/config-service.js → src/core/config-service.ts} +7 -4
  41. package/{dist/core/config.js → src/core/config.ts} +158 -46
  42. package/src/core/control-ui-db.ts +435 -0
  43. package/{dist/core/detection-funnel.js → src/core/detection-funnel.ts} +36 -21
  44. package/{dist/core/detection-service.js → src/core/detection-service.ts} +7 -4
  45. package/{dist/core/dictionary-service.js → src/core/dictionary-service.ts} +7 -4
  46. package/{dist/core/dictionary.js → src/core/dictionary.ts} +57 -34
  47. package/src/core/empathy-keyword-matcher.ts +327 -0
  48. package/src/core/empathy-types.ts +218 -0
  49. package/src/core/event-log.ts +544 -0
  50. package/src/core/evolution-engine.ts +612 -0
  51. package/src/core/evolution-logger.ts +353 -0
  52. package/src/core/evolution-migration.ts +77 -0
  53. package/src/core/evolution-reducer.ts +731 -0
  54. package/src/core/evolution-types.ts +456 -0
  55. package/src/core/external-training-contract.ts +527 -0
  56. package/src/core/focus-history.ts +1458 -0
  57. package/src/core/hygiene/tracker.ts +117 -0
  58. package/{dist/core/init.js → src/core/init.ts} +39 -26
  59. package/src/core/local-worker-routing.ts +617 -0
  60. package/{dist/core/migration.js → src/core/migration.ts} +18 -11
  61. package/src/core/model-deployment-registry.ts +722 -0
  62. package/src/core/model-training-registry.ts +813 -0
  63. package/src/core/nocturnal-arbiter.ts +706 -0
  64. package/src/core/nocturnal-candidate-scoring.ts +392 -0
  65. package/src/core/nocturnal-compliance.ts +1075 -0
  66. package/src/core/nocturnal-dataset.ts +668 -0
  67. package/src/core/nocturnal-executability.ts +428 -0
  68. package/src/core/nocturnal-export.ts +390 -0
  69. package/{dist/core/nocturnal-paths.js → src/core/nocturnal-paths.ts} +49 -23
  70. package/src/core/nocturnal-trajectory-extractor.ts +484 -0
  71. package/src/core/nocturnal-trinity.ts +1384 -0
  72. package/src/core/pain.ts +122 -0
  73. package/{dist/core/path-resolver.js → src/core/path-resolver.ts} +157 -36
  74. package/{dist/core/paths.js → src/core/paths.ts} +13 -4
  75. package/src/core/principle-training-state.ts +450 -0
  76. package/src/core/profile.ts +226 -0
  77. package/src/core/promotion-gate.ts +822 -0
  78. package/{dist/core/risk-calculator.js → src/core/risk-calculator.ts} +42 -16
  79. package/{dist/core/session-tracker.js → src/core/session-tracker.ts} +185 -63
  80. package/src/core/shadow-observation-registry.ts +534 -0
  81. package/{dist/core/system-logger.js → src/core/system-logger.ts} +9 -5
  82. package/src/core/thinking-models.ts +217 -0
  83. package/src/core/training-program.ts +630 -0
  84. package/src/core/trajectory-types.ts +243 -0
  85. package/src/core/trajectory.ts +1673 -0
  86. package/{dist/core/workspace-context.js → src/core/workspace-context.ts} +57 -32
  87. package/src/hooks/bash-risk.ts +171 -0
  88. package/src/hooks/edit-verification.ts +295 -0
  89. package/src/hooks/gate-block-helper.ts +160 -0
  90. package/src/hooks/gate.ts +210 -0
  91. package/src/hooks/gfi-gate.ts +177 -0
  92. package/src/hooks/lifecycle.ts +326 -0
  93. package/{dist/hooks/llm.js → src/hooks/llm.ts} +166 -139
  94. package/src/hooks/message-sanitize.ts +45 -0
  95. package/src/hooks/pain.ts +384 -0
  96. package/src/hooks/progressive-trust-gate.ts +174 -0
  97. package/src/hooks/prompt.ts +920 -0
  98. package/src/hooks/subagent.ts +207 -0
  99. package/src/hooks/thinking-checkpoint.ts +73 -0
  100. package/src/hooks/trajectory-collector.ts +290 -0
  101. package/src/http/principles-console-route.ts +716 -0
  102. package/src/i18n/commands.ts +117 -0
  103. package/src/index.ts +694 -0
  104. package/src/service/central-database.ts +831 -0
  105. package/src/service/control-ui-query-service.ts +888 -0
  106. package/src/service/evolution-query-service.ts +405 -0
  107. package/src/service/evolution-worker.ts +1646 -0
  108. package/src/service/health-query-service.ts +836 -0
  109. package/{dist/service/nocturnal-runtime.js → src/service/nocturnal-runtime.ts} +263 -36
  110. package/src/service/nocturnal-service.ts +1015 -0
  111. package/src/service/nocturnal-target-selector.ts +532 -0
  112. package/src/service/phase3-input-filter.ts +237 -0
  113. package/src/service/runtime-summary-service.ts +757 -0
  114. package/src/service/subagent-workflow/deep-reflect-workflow-manager.ts +513 -0
  115. package/src/service/subagent-workflow/empathy-observer-workflow-manager.ts +603 -0
  116. package/src/service/subagent-workflow/index.ts +51 -0
  117. package/src/service/subagent-workflow/nocturnal-workflow-manager.ts +856 -0
  118. package/src/service/subagent-workflow/runtime-direct-driver.ts +166 -0
  119. package/src/service/subagent-workflow/types.ts +378 -0
  120. package/src/service/subagent-workflow/workflow-store.ts +328 -0
  121. package/src/service/trajectory-service.ts +15 -0
  122. package/{dist/tools/critique-prompt.js → src/tools/critique-prompt.ts} +25 -8
  123. package/src/tools/deep-reflect.ts +349 -0
  124. package/{dist/tools/model-index.js → src/tools/model-index.ts} +33 -17
  125. package/src/types/event-types.ts +453 -0
  126. package/src/types/hygiene-types.ts +31 -0
  127. package/src/types/principle-tree-schema.ts +244 -0
  128. package/src/types/runtime-summary.ts +49 -0
  129. package/src/types.ts +74 -0
  130. package/src/utils/file-lock.ts +391 -0
  131. package/{dist/utils/glob-match.js → src/utils/glob-match.ts} +21 -20
  132. package/{dist/utils/hashing.js → src/utils/hashing.ts} +6 -4
  133. package/src/utils/io.ts +110 -0
  134. package/{dist/utils/nlp.js → src/utils/nlp.ts} +19 -12
  135. package/{dist/utils/plugin-logger.js → src/utils/plugin-logger.ts} +33 -8
  136. package/src/utils/subagent-probe.ts +94 -0
  137. package/templates/langs/zh/skills/pd-diagnostician/SKILL.md +70 -1
  138. package/templates/pain_settings.json +2 -1
  139. package/tests/README.md +120 -0
  140. package/tests/build-artifacts.test.ts +111 -0
  141. package/tests/commands/evolution-status.test.ts +222 -0
  142. package/tests/commands/evolver.test.ts +22 -0
  143. package/tests/commands/export.test.ts +78 -0
  144. package/tests/commands/nocturnal-review.test.ts +448 -0
  145. package/tests/commands/nocturnal-train.test.ts +97 -0
  146. package/tests/commands/pain.test.ts +108 -0
  147. package/tests/commands/samples.test.ts +65 -0
  148. package/tests/commands/strategy.test.ts +34 -0
  149. package/tests/commands/thinking-os.test.ts +88 -0
  150. package/tests/core/adaptive-thresholds.test.ts +261 -0
  151. package/tests/core/config-service.test.ts +89 -0
  152. package/tests/core/config.test.ts +90 -0
  153. package/tests/core/control-ui-db.test.ts +75 -0
  154. package/tests/core/core-template-guidance.test.ts +21 -0
  155. package/tests/core/detection-funnel.test.ts +63 -0
  156. package/tests/core/detection-service.test.ts +50 -0
  157. package/tests/core/dictionary-service.test.ts +116 -0
  158. package/tests/core/dictionary.test.ts +168 -0
  159. package/tests/core/empathy-keyword-matcher.test.ts +209 -0
  160. package/tests/core/event-log.test.ts +181 -0
  161. package/tests/core/evolution-e2e.test.ts +58 -0
  162. package/tests/core/evolution-engine-gate-integration.test.ts +543 -0
  163. package/tests/core/evolution-engine.test.ts +562 -0
  164. package/tests/core/evolution-logger.test.ts +148 -0
  165. package/tests/core/evolution-migration.test.ts +50 -0
  166. package/tests/core/evolution-paths.test.ts +21 -0
  167. package/tests/core/evolution-reducer.detector-metadata.test.ts +602 -0
  168. package/tests/core/evolution-reducer.test.ts +180 -0
  169. package/tests/core/evolution-types-loop.test.ts +48 -0
  170. package/tests/core/evolution-user-stories.e2e.test.ts +249 -0
  171. package/tests/core/external-training-contract.test.ts +463 -0
  172. package/tests/core/focus-history.test.ts +682 -0
  173. package/tests/core/init-flatten.test.ts +69 -0
  174. package/tests/core/init-refactor.test.ts +87 -0
  175. package/tests/core/init-v1.3.test.ts +46 -0
  176. package/tests/core/init.test.ts +190 -0
  177. package/tests/core/local-worker-routing.test.ts +757 -0
  178. package/tests/core/migration.test.ts +84 -0
  179. package/tests/core/model-deployment-registry.test.ts +845 -0
  180. package/tests/core/model-training-registry.test.ts +889 -0
  181. package/tests/core/nocturnal-arbiter.test.ts +494 -0
  182. package/tests/core/nocturnal-candidate-scoring.test.ts +400 -0
  183. package/tests/core/nocturnal-compliance.test.ts +646 -0
  184. package/tests/core/nocturnal-dataset.test.ts +892 -0
  185. package/tests/core/nocturnal-executability.test.ts +357 -0
  186. package/tests/core/nocturnal-export.test.ts +462 -0
  187. package/tests/core/nocturnal-reviewed-subset-comparison.test.ts +428 -0
  188. package/tests/core/nocturnal-trajectory-extractor.test.ts +634 -0
  189. package/tests/core/nocturnal-trinity.test.ts +953 -0
  190. package/tests/core/pain.test.ts +33 -0
  191. package/tests/core/path-resolver.test.ts +57 -0
  192. package/tests/core/paths-refactor.test.ts +42 -0
  193. package/tests/core/phase7-rollout-integration.test.ts +477 -0
  194. package/tests/core/principle-training-state.test.ts +712 -0
  195. package/tests/core/profile.test.ts +56 -0
  196. package/tests/core/promotion-gate.test.ts +556 -0
  197. package/tests/core/risk-calculator.test.ts +168 -0
  198. package/tests/core/session-tracker.test.ts +191 -0
  199. package/tests/core/training-program.test.ts +472 -0
  200. package/tests/core/trajectory.test.ts +265 -0
  201. package/tests/core/workspace-context-factory.test.ts +18 -0
  202. package/tests/core/workspace-context.test.ts +134 -0
  203. package/tests/fixtures/nocturnal-reviewed-subset.json +183 -0
  204. package/tests/fixtures/production-compatibility.test.ts +147 -0
  205. package/tests/fixtures/production-mock-generator.ts +282 -0
  206. package/tests/hooks/bash-risk-integration.test.ts +137 -0
  207. package/tests/hooks/bash-risk.test.ts +81 -0
  208. package/tests/hooks/edit-verification.test.ts +678 -0
  209. package/tests/hooks/gate-edit-verification-p1.test.ts +632 -0
  210. package/tests/hooks/gate-edit-verification.test.ts +435 -0
  211. package/tests/hooks/gate-pipeline-integration.test.ts +404 -0
  212. package/tests/hooks/gate.test.ts +271 -0
  213. package/tests/hooks/gfi-gate-unit.test.ts +422 -0
  214. package/tests/hooks/gfi-gate.test.ts +669 -0
  215. package/tests/hooks/lifecycle.test.ts +248 -0
  216. package/tests/hooks/llm.test.ts +308 -0
  217. package/tests/hooks/message-sanitize.test.ts +36 -0
  218. package/tests/hooks/pain.test.ts +141 -0
  219. package/tests/hooks/progressive-trust-gate.test.ts +277 -0
  220. package/tests/hooks/prompt.test.ts +1411 -0
  221. package/tests/hooks/subagent.test.ts +467 -0
  222. package/tests/hooks/thinking-gate.test.ts +313 -0
  223. package/tests/http/principles-console-route.test.ts +140 -0
  224. package/tests/hygiene-tracker.test.ts +77 -0
  225. package/tests/index.integration.test.ts +179 -0
  226. package/tests/index.shadow-routing.integration.test.ts +140 -0
  227. package/tests/index.test.ts +9 -0
  228. package/tests/integration/empathy-workflow-integration.test.ts +627 -0
  229. package/tests/service/control-ui-query-service.test.ts +121 -0
  230. package/tests/service/empathy-observer-workflow-manager.test.ts +176 -0
  231. package/tests/service/evolution-worker.test.ts +585 -0
  232. package/tests/service/nocturnal-runtime.test.ts +470 -0
  233. package/tests/service/nocturnal-service.test.ts +577 -0
  234. package/tests/service/nocturnal-target-selector.test.ts +615 -0
  235. package/tests/service/nocturnal-workflow-manager.test.ts +439 -0
  236. package/tests/service/phase3-input-filter.test.ts +289 -0
  237. package/tests/service/runtime-summary-service.test.ts +919 -0
  238. package/tests/task-compliance.test.ts +166 -0
  239. package/tests/test-utils.ts +48 -0
  240. package/tests/tools/critique-prompt.test.ts +260 -0
  241. package/tests/tools/deep-reflect.test.ts +232 -0
  242. package/tests/tools/model-index.test.ts +246 -0
  243. package/tests/ui/app.test.tsx +114 -0
  244. package/tests/utils/file-lock.test.ts +407 -0
  245. package/tests/utils/hashing.test.ts +32 -0
  246. package/tests/utils/io.test.ts +39 -0
  247. package/tests/utils/nlp.test.ts +53 -0
  248. package/tests/utils/plugin-logger.test.ts +156 -0
  249. package/tsconfig.json +16 -0
  250. package/tsconfig.tsbuildinfo +1 -0
  251. package/ui/src/App.tsx +45 -0
  252. package/ui/src/api.ts +216 -0
  253. package/ui/src/charts.tsx +586 -0
  254. package/ui/src/components/ErrorState.tsx +6 -0
  255. package/ui/src/components/Loading.tsx +13 -0
  256. package/ui/src/components/ProtectedRoute.tsx +12 -0
  257. package/ui/src/components/Shell.tsx +91 -0
  258. package/ui/src/components/WorkspaceConfig.tsx +146 -0
  259. package/ui/src/components/index.ts +5 -0
  260. package/ui/src/context/auth.tsx +80 -0
  261. package/ui/src/context/theme.tsx +66 -0
  262. package/ui/src/hooks/useAutoRefresh.ts +39 -0
  263. package/ui/src/i18n/ui.ts +363 -0
  264. package/ui/src/main.tsx +16 -0
  265. package/ui/src/pages/EvolutionPage.tsx +352 -0
  266. package/ui/src/pages/FeedbackPage.tsx +140 -0
  267. package/ui/src/pages/GateMonitorPage.tsx +136 -0
  268. package/ui/src/pages/LoginPage.tsx +88 -0
  269. package/ui/src/pages/OverviewPage.tsx +238 -0
  270. package/ui/src/pages/SamplesPage.tsx +174 -0
  271. package/ui/src/pages/ThinkingModelsPage.tsx +127 -0
  272. package/ui/src/styles.css +1661 -0
  273. package/ui/src/types.ts +368 -0
  274. package/ui/src/utils/format.ts +15 -0
  275. package/vitest.config.ts +23 -0
  276. package/dist/commands/capabilities.d.ts +0 -3
  277. package/dist/commands/capabilities.js +0 -73
  278. package/dist/commands/context.d.ts +0 -5
  279. package/dist/commands/evolution-status.d.ts +0 -4
  280. package/dist/commands/evolution-status.js +0 -117
  281. package/dist/commands/evolver.d.ts +0 -9
  282. package/dist/commands/evolver.js +0 -26
  283. package/dist/commands/export.d.ts +0 -2
  284. package/dist/commands/export.js +0 -98
  285. package/dist/commands/focus.d.ts +0 -14
  286. package/dist/commands/focus.js +0 -457
  287. package/dist/commands/nocturnal-review.d.ts +0 -24
  288. package/dist/commands/nocturnal-review.js +0 -265
  289. package/dist/commands/nocturnal-rollout.d.ts +0 -27
  290. package/dist/commands/nocturnal-rollout.js +0 -671
  291. package/dist/commands/nocturnal-train.d.ts +0 -25
  292. package/dist/commands/nocturnal-train.js +0 -919
  293. package/dist/commands/pain.d.ts +0 -5
  294. package/dist/commands/principle-rollback.d.ts +0 -4
  295. package/dist/commands/principle-rollback.js +0 -22
  296. package/dist/commands/rollback.d.ts +0 -19
  297. package/dist/commands/samples.d.ts +0 -2
  298. package/dist/commands/samples.js +0 -55
  299. package/dist/commands/strategy.d.ts +0 -3
  300. package/dist/commands/strategy.js +0 -29
  301. package/dist/commands/thinking-os.d.ts +0 -2
  302. package/dist/config/defaults/runtime.d.ts +0 -40
  303. package/dist/config/errors.d.ts +0 -84
  304. package/dist/config/errors.js +0 -94
  305. package/dist/config/index.js +0 -7
  306. package/dist/constants/diagnostician.d.ts +0 -12
  307. package/dist/constants/diagnostician.js +0 -56
  308. package/dist/constants/tools.d.ts +0 -17
  309. package/dist/constants/tools.js +0 -54
  310. package/dist/core/adaptive-thresholds.d.ts +0 -186
  311. package/dist/core/adaptive-thresholds.js +0 -300
  312. package/dist/core/config-service.d.ts +0 -15
  313. package/dist/core/config.d.ts +0 -127
  314. package/dist/core/control-ui-db.d.ts +0 -95
  315. package/dist/core/control-ui-db.js +0 -292
  316. package/dist/core/detection-funnel.d.ts +0 -33
  317. package/dist/core/detection-service.d.ts +0 -15
  318. package/dist/core/dictionary-service.d.ts +0 -15
  319. package/dist/core/dictionary.d.ts +0 -38
  320. package/dist/core/event-log.d.ts +0 -82
  321. package/dist/core/event-log.js +0 -463
  322. package/dist/core/evolution-engine.d.ts +0 -118
  323. package/dist/core/evolution-engine.js +0 -464
  324. package/dist/core/evolution-logger.d.ts +0 -137
  325. package/dist/core/evolution-logger.js +0 -256
  326. package/dist/core/evolution-migration.d.ts +0 -5
  327. package/dist/core/evolution-migration.js +0 -65
  328. package/dist/core/evolution-reducer.d.ts +0 -98
  329. package/dist/core/evolution-reducer.js +0 -465
  330. package/dist/core/evolution-types.d.ts +0 -287
  331. package/dist/core/evolution-types.js +0 -78
  332. package/dist/core/external-training-contract.d.ts +0 -276
  333. package/dist/core/external-training-contract.js +0 -269
  334. package/dist/core/focus-history.d.ts +0 -210
  335. package/dist/core/focus-history.js +0 -1185
  336. package/dist/core/hygiene/tracker.d.ts +0 -22
  337. package/dist/core/hygiene/tracker.js +0 -106
  338. package/dist/core/init.d.ts +0 -12
  339. package/dist/core/local-worker-routing.d.ts +0 -175
  340. package/dist/core/local-worker-routing.js +0 -525
  341. package/dist/core/migration.d.ts +0 -6
  342. package/dist/core/model-deployment-registry.d.ts +0 -218
  343. package/dist/core/model-deployment-registry.js +0 -503
  344. package/dist/core/model-training-registry.d.ts +0 -295
  345. package/dist/core/model-training-registry.js +0 -475
  346. package/dist/core/nocturnal-arbiter.d.ts +0 -159
  347. package/dist/core/nocturnal-arbiter.js +0 -534
  348. package/dist/core/nocturnal-candidate-scoring.d.ts +0 -137
  349. package/dist/core/nocturnal-candidate-scoring.js +0 -266
  350. package/dist/core/nocturnal-compliance.d.ts +0 -175
  351. package/dist/core/nocturnal-compliance.js +0 -824
  352. package/dist/core/nocturnal-dataset.d.ts +0 -224
  353. package/dist/core/nocturnal-dataset.js +0 -443
  354. package/dist/core/nocturnal-executability.d.ts +0 -85
  355. package/dist/core/nocturnal-executability.js +0 -331
  356. package/dist/core/nocturnal-export.d.ts +0 -124
  357. package/dist/core/nocturnal-export.js +0 -275
  358. package/dist/core/nocturnal-paths.d.ts +0 -124
  359. package/dist/core/nocturnal-trajectory-extractor.d.ts +0 -242
  360. package/dist/core/nocturnal-trajectory-extractor.js +0 -307
  361. package/dist/core/nocturnal-trinity.d.ts +0 -311
  362. package/dist/core/nocturnal-trinity.js +0 -880
  363. package/dist/core/pain.d.ts +0 -4
  364. package/dist/core/pain.js +0 -70
  365. package/dist/core/path-resolver.d.ts +0 -46
  366. package/dist/core/paths.d.ts +0 -65
  367. package/dist/core/principle-training-state.d.ts +0 -121
  368. package/dist/core/principle-training-state.js +0 -321
  369. package/dist/core/profile.d.ts +0 -62
  370. package/dist/core/profile.js +0 -210
  371. package/dist/core/promotion-gate.d.ts +0 -238
  372. package/dist/core/promotion-gate.js +0 -529
  373. package/dist/core/risk-calculator.d.ts +0 -22
  374. package/dist/core/session-tracker.d.ts +0 -99
  375. package/dist/core/shadow-observation-registry.d.ts +0 -217
  376. package/dist/core/shadow-observation-registry.js +0 -308
  377. package/dist/core/system-logger.d.ts +0 -8
  378. package/dist/core/thinking-models.d.ts +0 -38
  379. package/dist/core/thinking-models.js +0 -170
  380. package/dist/core/training-program.d.ts +0 -233
  381. package/dist/core/training-program.js +0 -433
  382. package/dist/core/trajectory.d.ts +0 -411
  383. package/dist/core/trajectory.js +0 -1307
  384. package/dist/core/workspace-context.d.ts +0 -71
  385. package/dist/hooks/bash-risk.d.ts +0 -57
  386. package/dist/hooks/bash-risk.js +0 -137
  387. package/dist/hooks/edit-verification.d.ts +0 -62
  388. package/dist/hooks/edit-verification.js +0 -256
  389. package/dist/hooks/gate-block-helper.d.ts +0 -44
  390. package/dist/hooks/gate-block-helper.js +0 -119
  391. package/dist/hooks/gate.d.ts +0 -24
  392. package/dist/hooks/gate.js +0 -173
  393. package/dist/hooks/gfi-gate.d.ts +0 -40
  394. package/dist/hooks/gfi-gate.js +0 -113
  395. package/dist/hooks/lifecycle.d.ts +0 -5
  396. package/dist/hooks/lifecycle.js +0 -284
  397. package/dist/hooks/llm.d.ts +0 -12
  398. package/dist/hooks/message-sanitize.d.ts +0 -3
  399. package/dist/hooks/message-sanitize.js +0 -37
  400. package/dist/hooks/pain.d.ts +0 -5
  401. package/dist/hooks/pain.js +0 -301
  402. package/dist/hooks/progressive-trust-gate.d.ts +0 -51
  403. package/dist/hooks/progressive-trust-gate.js +0 -89
  404. package/dist/hooks/prompt.d.ts +0 -47
  405. package/dist/hooks/prompt.js +0 -884
  406. package/dist/hooks/subagent.d.ts +0 -10
  407. package/dist/hooks/subagent.js +0 -387
  408. package/dist/hooks/thinking-checkpoint.d.ts +0 -37
  409. package/dist/hooks/thinking-checkpoint.js +0 -51
  410. package/dist/hooks/trajectory-collector.d.ts +0 -32
  411. package/dist/hooks/trajectory-collector.js +0 -256
  412. package/dist/http/principles-console-route.d.ts +0 -9
  413. package/dist/http/principles-console-route.js +0 -567
  414. package/dist/i18n/commands.d.ts +0 -26
  415. package/dist/i18n/commands.js +0 -116
  416. package/dist/index.d.ts +0 -7
  417. package/dist/index.js +0 -581
  418. package/dist/service/central-database.d.ts +0 -104
  419. package/dist/service/central-database.js +0 -649
  420. package/dist/service/control-ui-query-service.d.ts +0 -221
  421. package/dist/service/control-ui-query-service.js +0 -543
  422. package/dist/service/empathy-observer-manager.d.ts +0 -52
  423. package/dist/service/empathy-observer-manager.js +0 -229
  424. package/dist/service/evolution-query-service.d.ts +0 -155
  425. package/dist/service/evolution-query-service.js +0 -258
  426. package/dist/service/evolution-worker.d.ts +0 -101
  427. package/dist/service/evolution-worker.js +0 -974
  428. package/dist/service/nocturnal-runtime.d.ts +0 -183
  429. package/dist/service/nocturnal-service.d.ts +0 -163
  430. package/dist/service/nocturnal-service.js +0 -787
  431. package/dist/service/nocturnal-target-selector.d.ts +0 -145
  432. package/dist/service/nocturnal-target-selector.js +0 -315
  433. package/dist/service/phase3-input-filter.d.ts +0 -73
  434. package/dist/service/phase3-input-filter.js +0 -172
  435. package/dist/service/runtime-summary-service.d.ts +0 -122
  436. package/dist/service/runtime-summary-service.js +0 -485
  437. package/dist/service/trajectory-service.d.ts +0 -2
  438. package/dist/service/trajectory-service.js +0 -15
  439. package/dist/tools/critique-prompt.d.ts +0 -14
  440. package/dist/tools/deep-reflect.d.ts +0 -39
  441. package/dist/tools/deep-reflect.js +0 -350
  442. package/dist/tools/model-index.d.ts +0 -9
  443. package/dist/types/event-types.d.ts +0 -306
  444. package/dist/types/event-types.js +0 -106
  445. package/dist/types/hygiene-types.d.ts +0 -20
  446. package/dist/types/hygiene-types.js +0 -12
  447. package/dist/types/runtime-summary.d.ts +0 -47
  448. package/dist/types/runtime-summary.js +0 -1
  449. package/dist/types.d.ts +0 -50
  450. package/dist/types.js +0 -22
  451. package/dist/utils/file-lock.d.ts +0 -71
  452. package/dist/utils/file-lock.js +0 -309
  453. package/dist/utils/glob-match.d.ts +0 -28
  454. package/dist/utils/hashing.d.ts +0 -9
  455. package/dist/utils/io.d.ts +0 -6
  456. package/dist/utils/io.js +0 -106
  457. package/dist/utils/nlp.d.ts +0 -9
  458. package/dist/utils/plugin-logger.d.ts +0 -39
  459. package/dist/utils/subagent-probe.d.ts +0 -34
  460. package/dist/utils/subagent-probe.js +0 -81
@@ -1,217 +0,0 @@
1
- /**
2
- * Shadow Observation Registry — Runtime Shadow Evidence for Promotion Gate
3
- * =======================================================================
4
- *
5
- * PURPOSE: Track real-world runtime evidence from shadow deployments to inform
6
- * promotion gate decisions. Real evidence replaces eval verdict proxies.
7
- *
8
- * ARCHITECTURE:
9
- * - Shadow observations are recorded by the routing system when a checkpoint
10
- * is routed in shadow mode
11
- * - Each observation captures whether the routing decision was accepted,
12
- * rejected, or escalated by the runtime
13
- * - The promotion gate queries this registry to get real arbiter/executability
14
- * reject rates instead of using eval verdict as a proxy
15
- *
16
- * SHADOW OBSERVATION LIFECYCLE:
17
- * 1. Routing system routes task to shadow checkpoint (shadow_ready state)
18
- * 2. Observation recorded: { checkpointId, taskFingerprint, routedAt }
19
- * 3. Task completes or times out
20
- * 4. Observation updated: { completedAt, accepted/rejected/escalated, failureSignals }
21
- * 5. After sufficient observations, promotion gate can query real reject rates
22
- *
23
- * DATA RETENTION:
24
- * - Observations are kept for 7 days by default
25
- * - Can be queried by checkpointId, time window, or outcome
26
- *
27
- * DESIGN CONSTRAINTS:
28
- * - Fail-closed: if no shadow evidence exists, fall back to eval proxies
29
- * - Shadow evidence must be statistically significant (min sample size)
30
- * - Observations are retained until cleanup removes expired entries
31
- */
32
- /**
33
- * Default observation retention period in milliseconds.
34
- * 7 days
35
- */
36
- export declare const DEFAULT_RETENTION_MS: number;
37
- /**
38
- * Minimum number of shadow observations required before trusting the evidence.
39
- * Below this, we fall back to eval proxies.
40
- */
41
- export declare const MIN_OBSERVATIONS_FOR_TRUST = 5;
42
- /**
43
- * Time window for computing recent reject rates.
44
- * Only observations within this window are considered.
45
- * 24 hours
46
- */
47
- export declare const RECENT_WINDOW_MS: number;
48
- /**
49
- * Outcome of a shadow routing observation.
50
- */
51
- export type ShadowOutcome = 'accepted' | 'rejected' | 'escalated';
52
- /**
53
- * Runtime failure signals captured during shadow routing.
54
- */
55
- export interface RuntimeFailureSignals {
56
- /** Whether the task timed out */
57
- timedOut: boolean;
58
- /** Whether an exception was thrown */
59
- threwException: boolean;
60
- /** Whether the output was empty or invalid */
61
- invalidOutput: boolean;
62
- /** Whether the worker profile rejected the routing */
63
- profileRejected: boolean;
64
- /** Additional failure signals (free-form for extensibility) */
65
- extra: Record<string, boolean>;
66
- }
67
- /**
68
- * A shadow observation — records a single shadow routing event.
69
- */
70
- export interface ShadowObservation {
71
- /** Unique identifier for this observation */
72
- observationId: string;
73
- /** Checkpoint being routed to in shadow mode */
74
- checkpointId: string;
75
- /** Worker profile this observation is for */
76
- workerProfile: string;
77
- /** Task fingerprint (hash of task input for deduplication) */
78
- taskFingerprint: string;
79
- /** ISO-8601 timestamp when routing decision was made */
80
- routedAt: string;
81
- /** ISO-8601 timestamp when task completed (null if still pending) */
82
- completedAt?: string;
83
- /** Outcome of the shadow routing */
84
- outcome?: ShadowOutcome;
85
- /** Runtime failure signals (null if still pending) */
86
- failureSignals?: RuntimeFailureSignals;
87
- /** Whether this observation was used in a promotion gate evaluation */
88
- usedInGate?: boolean;
89
- }
90
- /**
91
- * Computed statistics from shadow observations.
92
- */
93
- export interface ShadowStats {
94
- /** Checkpoint ID these stats are for */
95
- checkpointId: string;
96
- /** Total observations in the time window */
97
- totalCount: number;
98
- /** Count by outcome */
99
- acceptedCount: number;
100
- rejectedCount: number;
101
- escalatedCount: number;
102
- /** Computed rates */
103
- rejectRate: number;
104
- escalationRate: number;
105
- acceptanceRate: number;
106
- /** Failure signal frequencies */
107
- timedOutRate: number;
108
- threwExceptionRate: number;
109
- invalidOutputRate: number;
110
- profileRejectedRate: number;
111
- /** Whether this has enough data to trust */
112
- isStatisticallySignificant: boolean;
113
- /** Time window used for computation */
114
- windowStart: string;
115
- windowEnd: string;
116
- }
117
- /**
118
- * The complete shadow registry.
119
- */
120
- export interface ShadowRegistry {
121
- observations: ShadowObservation[];
122
- /** Schema version for migration support */
123
- version: number;
124
- }
125
- /**
126
- * Parameters for recording a shadow routing observation.
127
- */
128
- export interface RecordObservationParams {
129
- /** Checkpoint being routed to in shadow mode */
130
- checkpointId: string;
131
- /** Worker profile */
132
- workerProfile: string;
133
- /** Task fingerprint for deduplication */
134
- taskFingerprint: string;
135
- /** ISO-8601 timestamp when routing decision was made */
136
- routedAt?: string;
137
- }
138
- /**
139
- * Record a new shadow observation (when task is routed to shadow checkpoint).
140
- *
141
- * @param stateDir - Workspace state directory
142
- * @param params - Observation parameters
143
- * @returns The created ShadowObservation
144
- */
145
- export declare function recordShadowRouting(stateDir: string, params: RecordObservationParams): ShadowObservation;
146
- /**
147
- * Parameters for completing a shadow observation.
148
- */
149
- export interface CompleteObservationParams {
150
- /** Observation ID to complete */
151
- observationId: string;
152
- /** Outcome of the shadow routing */
153
- outcome: ShadowOutcome;
154
- /** Runtime failure signals */
155
- failureSignals?: RuntimeFailureSignals;
156
- }
157
- /**
158
- * Complete a pending shadow observation (when task finishes).
159
- *
160
- * @param stateDir - Workspace state directory
161
- * @param params - Completion parameters
162
- * @returns The updated ShadowObservation, or null if not found
163
- */
164
- export declare function completeShadowObservation(stateDir: string, params: CompleteObservationParams): ShadowObservation | null;
165
- /**
166
- * Complete a shadow observation by task fingerprint (alternative lookup).
167
- *
168
- * @param stateDir - Workspace state directory
169
- * @param taskFingerprint - Task fingerprint to look up
170
- * @param outcome - Outcome of the shadow routing
171
- * @param failureSignals - Runtime failure signals
172
- * @returns The updated ShadowObservation, or null if not found
173
- */
174
- export declare function completeShadowObservationByTask(stateDir: string, taskFingerprint: string, outcome: ShadowOutcome, failureSignals?: RuntimeFailureSignals): ShadowObservation | null;
175
- /**
176
- * Parameters for computing shadow statistics.
177
- */
178
- export interface ComputeShadowStatsParams {
179
- /** Checkpoint ID to compute stats for */
180
- checkpointId: string;
181
- /** Time window in milliseconds (default: RECENT_WINDOW_MS) */
182
- windowMs?: number;
183
- /** Retention period in milliseconds (default: DEFAULT_RETENTION_MS) */
184
- retentionMs?: number;
185
- }
186
- /**
187
- * Compute shadow routing statistics for a checkpoint.
188
- *
189
- * @param stateDir - Workspace state directory
190
- * @param params - Computation parameters
191
- * @returns ShadowStats with computed rates, or null if not enough data
192
- */
193
- export declare function computeShadowStats(stateDir: string, params: ComputeShadowStatsParams): ShadowStats | null;
194
- /**
195
- * Query shadow observations for a checkpoint.
196
- *
197
- * @param stateDir - Workspace state directory
198
- * @param checkpointId - Checkpoint ID to query
199
- * @param limit - Maximum observations to return (default: 100)
200
- * @returns Array of shadow observations
201
- */
202
- export declare function queryShadowObservations(stateDir: string, checkpointId: string, limit?: number): ShadowObservation[];
203
- /**
204
- * Mark observations as used in a promotion gate evaluation.
205
- *
206
- * @param stateDir - Workspace state directory
207
- * @param observationIds - IDs of observations to mark
208
- */
209
- export declare function markObservationsUsedInGate(stateDir: string, observationIds: string[]): void;
210
- /**
211
- * Clean up expired observations (older than retention period).
212
- *
213
- * @param stateDir - Workspace state directory
214
- * @param retentionMs - Retention period in milliseconds (default: DEFAULT_RETENTION_MS)
215
- * @returns Number of observations removed
216
- */
217
- export declare function cleanupExpiredObservations(stateDir: string, retentionMs?: number): number;
@@ -1,308 +0,0 @@
1
- /**
2
- * Shadow Observation Registry — Runtime Shadow Evidence for Promotion Gate
3
- * =======================================================================
4
- *
5
- * PURPOSE: Track real-world runtime evidence from shadow deployments to inform
6
- * promotion gate decisions. Real evidence replaces eval verdict proxies.
7
- *
8
- * ARCHITECTURE:
9
- * - Shadow observations are recorded by the routing system when a checkpoint
10
- * is routed in shadow mode
11
- * - Each observation captures whether the routing decision was accepted,
12
- * rejected, or escalated by the runtime
13
- * - The promotion gate queries this registry to get real arbiter/executability
14
- * reject rates instead of using eval verdict as a proxy
15
- *
16
- * SHADOW OBSERVATION LIFECYCLE:
17
- * 1. Routing system routes task to shadow checkpoint (shadow_ready state)
18
- * 2. Observation recorded: { checkpointId, taskFingerprint, routedAt }
19
- * 3. Task completes or times out
20
- * 4. Observation updated: { completedAt, accepted/rejected/escalated, failureSignals }
21
- * 5. After sufficient observations, promotion gate can query real reject rates
22
- *
23
- * DATA RETENTION:
24
- * - Observations are kept for 7 days by default
25
- * - Can be queried by checkpointId, time window, or outcome
26
- *
27
- * DESIGN CONSTRAINTS:
28
- * - Fail-closed: if no shadow evidence exists, fall back to eval proxies
29
- * - Shadow evidence must be statistically significant (min sample size)
30
- * - Observations are retained until cleanup removes expired entries
31
- */
32
- import * as fs from 'fs';
33
- import * as path from 'path';
34
- import * as crypto from 'crypto';
35
- import { withLock } from '../utils/file-lock.js';
36
- // ---------------------------------------------------------------------------
37
- // Constants
38
- // ---------------------------------------------------------------------------
39
- /**
40
- * Registry file for shadow observations.
41
- */
42
- const SHADOW_REGISTRY_FILE = 'shadow-registry.json';
43
- /**
44
- * Default observation retention period in milliseconds.
45
- * 7 days
46
- */
47
- export const DEFAULT_RETENTION_MS = 7 * 24 * 60 * 60 * 1000;
48
- /**
49
- * Minimum number of shadow observations required before trusting the evidence.
50
- * Below this, we fall back to eval proxies.
51
- */
52
- export const MIN_OBSERVATIONS_FOR_TRUST = 5;
53
- /**
54
- * Time window for computing recent reject rates.
55
- * Only observations within this window are considered.
56
- * 24 hours
57
- */
58
- export const RECENT_WINDOW_MS = 24 * 60 * 60 * 1000;
59
- // ---------------------------------------------------------------------------
60
- // Registry Path
61
- // ---------------------------------------------------------------------------
62
- function getRegistryPath(stateDir) {
63
- return path.join(stateDir, SHADOW_REGISTRY_FILE);
64
- }
65
- /**
66
- * Ensure the registry directory exists.
67
- */
68
- function ensureRegistryDir(stateDir) {
69
- const registryPath = getRegistryPath(stateDir);
70
- const dir = path.dirname(registryPath);
71
- if (!fs.existsSync(dir)) {
72
- fs.mkdirSync(dir, { recursive: true });
73
- }
74
- }
75
- // ---------------------------------------------------------------------------
76
- // File Operations
77
- // ---------------------------------------------------------------------------
78
- /**
79
- * Read the registry from disk. Returns empty registry if missing.
80
- */
81
- function readRegistry(stateDir) {
82
- const registryPath = getRegistryPath(stateDir);
83
- if (!fs.existsSync(registryPath)) {
84
- return { observations: [], version: 1 };
85
- }
86
- try {
87
- const content = fs.readFileSync(registryPath, 'utf-8');
88
- return JSON.parse(content);
89
- }
90
- catch (err) {
91
- console.warn(`[shadow-observation-registry] Registry corrupted at ${registryPath}, recovering with empty state: ${String(err)}`);
92
- return { observations: [], version: 1 };
93
- }
94
- }
95
- /**
96
- * Write the registry to disk atomically.
97
- */
98
- function writeRegistry(stateDir, registry) {
99
- ensureRegistryDir(stateDir);
100
- const registryPath = getRegistryPath(stateDir);
101
- const tmpPath = `${registryPath}.tmp`;
102
- fs.writeFileSync(tmpPath, JSON.stringify(registry, null, 2), 'utf-8');
103
- fs.renameSync(tmpPath, registryPath);
104
- }
105
- /**
106
- * Execute a read-modify-write under an exclusive file lock.
107
- */
108
- function withShadowRegistryLock(stateDir, fn) {
109
- const registryPath = getRegistryPath(stateDir);
110
- return withLock(registryPath, () => {
111
- const registry = readRegistry(stateDir);
112
- return fn(registry);
113
- });
114
- }
115
- /**
116
- * Record a new shadow observation (when task is routed to shadow checkpoint).
117
- *
118
- * @param stateDir - Workspace state directory
119
- * @param params - Observation parameters
120
- * @returns The created ShadowObservation
121
- */
122
- export function recordShadowRouting(stateDir, params) {
123
- const observation = {
124
- observationId: crypto.randomUUID(),
125
- checkpointId: params.checkpointId,
126
- workerProfile: params.workerProfile,
127
- taskFingerprint: params.taskFingerprint,
128
- routedAt: params.routedAt ?? new Date().toISOString(),
129
- };
130
- return withShadowRegistryLock(stateDir, (registry) => {
131
- registry.observations.push(observation);
132
- writeRegistry(stateDir, registry);
133
- return observation;
134
- });
135
- }
136
- /**
137
- * Complete a pending shadow observation (when task finishes).
138
- *
139
- * @param stateDir - Workspace state directory
140
- * @param params - Completion parameters
141
- * @returns The updated ShadowObservation, or null if not found
142
- */
143
- export function completeShadowObservation(stateDir, params) {
144
- return withShadowRegistryLock(stateDir, (registry) => {
145
- const idx = registry.observations.findIndex((o) => o.observationId === params.observationId);
146
- if (idx === -1) {
147
- return null;
148
- }
149
- const observation = registry.observations[idx];
150
- observation.completedAt = new Date().toISOString();
151
- observation.outcome = params.outcome;
152
- observation.failureSignals = params.failureSignals ?? {
153
- timedOut: false,
154
- threwException: false,
155
- invalidOutput: false,
156
- profileRejected: false,
157
- extra: {},
158
- };
159
- writeRegistry(stateDir, registry);
160
- return observation;
161
- });
162
- }
163
- /**
164
- * Complete a shadow observation by task fingerprint (alternative lookup).
165
- *
166
- * @param stateDir - Workspace state directory
167
- * @param taskFingerprint - Task fingerprint to look up
168
- * @param outcome - Outcome of the shadow routing
169
- * @param failureSignals - Runtime failure signals
170
- * @returns The updated ShadowObservation, or null if not found
171
- */
172
- export function completeShadowObservationByTask(stateDir, taskFingerprint, outcome, failureSignals) {
173
- return withShadowRegistryLock(stateDir, (registry) => {
174
- // Find the oldest pending observation for this task
175
- const pendingObs = registry.observations
176
- .filter((o) => o.taskFingerprint === taskFingerprint && !o.completedAt)
177
- .sort((a, b) => a.routedAt.localeCompare(b.routedAt));
178
- if (pendingObs.length === 0) {
179
- return null;
180
- }
181
- const observation = pendingObs[0];
182
- observation.completedAt = new Date().toISOString();
183
- observation.outcome = outcome;
184
- observation.failureSignals = failureSignals ?? {
185
- timedOut: false,
186
- threwException: false,
187
- invalidOutput: false,
188
- profileRejected: false,
189
- extra: {},
190
- };
191
- writeRegistry(stateDir, registry);
192
- return observation;
193
- });
194
- }
195
- /**
196
- * Compute shadow routing statistics for a checkpoint.
197
- *
198
- * @param stateDir - Workspace state directory
199
- * @param params - Computation parameters
200
- * @returns ShadowStats with computed rates, or null if not enough data
201
- */
202
- export function computeShadowStats(stateDir, params) {
203
- const { checkpointId, windowMs = RECENT_WINDOW_MS, retentionMs = DEFAULT_RETENTION_MS, } = params;
204
- const now = Date.now();
205
- const windowStart = new Date(now - windowMs).toISOString();
206
- const windowEnd = new Date(now).toISOString();
207
- return withShadowRegistryLock(stateDir, (registry) => {
208
- // Filter observations:
209
- // 1. For this checkpoint
210
- // 2. Within the time window
211
- // 3. Not expired (within retention period)
212
- const cutoff = new Date(now - retentionMs).toISOString();
213
- const relevantObs = registry.observations.filter((o) => {
214
- if (o.checkpointId !== checkpointId)
215
- return false;
216
- if (o.routedAt < cutoff)
217
- return false; // expired
218
- if (o.routedAt < windowStart)
219
- return false; // outside window
220
- if (!o.completedAt)
221
- return false; // still pending
222
- return true;
223
- });
224
- const totalCount = relevantObs.length;
225
- // Not enough data - fail closed (return null to use eval proxies)
226
- if (totalCount < MIN_OBSERVATIONS_FOR_TRUST) {
227
- return null;
228
- }
229
- const acceptedCount = relevantObs.filter((o) => o.outcome === 'accepted').length;
230
- const rejectedCount = relevantObs.filter((o) => o.outcome === 'rejected').length;
231
- const escalatedCount = relevantObs.filter((o) => o.outcome === 'escalated').length;
232
- // Failure signal counts
233
- const withTimedOut = relevantObs.filter((o) => o.failureSignals?.timedOut).length;
234
- const withThrewException = relevantObs.filter((o) => o.failureSignals?.threwException).length;
235
- const withInvalidOutput = relevantObs.filter((o) => o.failureSignals?.invalidOutput).length;
236
- const withProfileRejected = relevantObs.filter((o) => o.failureSignals?.profileRejected).length;
237
- const rejectRate = totalCount > 0 ? rejectedCount / totalCount : 0;
238
- const escalationRate = totalCount > 0 ? escalatedCount / totalCount : 0;
239
- const acceptanceRate = totalCount > 0 ? acceptedCount / totalCount : 0;
240
- return {
241
- checkpointId,
242
- totalCount,
243
- acceptedCount,
244
- rejectedCount,
245
- escalatedCount,
246
- rejectRate: Math.round(rejectRate * 1000) / 1000,
247
- escalationRate: Math.round(escalationRate * 1000) / 1000,
248
- acceptanceRate: Math.round(acceptanceRate * 1000) / 1000,
249
- timedOutRate: Math.round((withTimedOut / totalCount) * 1000) / 1000,
250
- threwExceptionRate: Math.round((withThrewException / totalCount) * 1000) / 1000,
251
- invalidOutputRate: Math.round((withInvalidOutput / totalCount) * 1000) / 1000,
252
- profileRejectedRate: Math.round((withProfileRejected / totalCount) * 1000) / 1000,
253
- isStatisticallySignificant: totalCount >= MIN_OBSERVATIONS_FOR_TRUST,
254
- windowStart,
255
- windowEnd,
256
- };
257
- });
258
- }
259
- /**
260
- * Query shadow observations for a checkpoint.
261
- *
262
- * @param stateDir - Workspace state directory
263
- * @param checkpointId - Checkpoint ID to query
264
- * @param limit - Maximum observations to return (default: 100)
265
- * @returns Array of shadow observations
266
- */
267
- export function queryShadowObservations(stateDir, checkpointId, limit = 100) {
268
- return withShadowRegistryLock(stateDir, (registry) => {
269
- return registry.observations
270
- .filter((o) => o.checkpointId === checkpointId)
271
- .sort((a, b) => b.routedAt.localeCompare(a.routedAt)) // newest first
272
- .slice(0, limit);
273
- });
274
- }
275
- /**
276
- * Mark observations as used in a promotion gate evaluation.
277
- *
278
- * @param stateDir - Workspace state directory
279
- * @param observationIds - IDs of observations to mark
280
- */
281
- export function markObservationsUsedInGate(stateDir, observationIds) {
282
- withShadowRegistryLock(stateDir, (registry) => {
283
- for (const obs of registry.observations) {
284
- if (observationIds.includes(obs.observationId)) {
285
- obs.usedInGate = true;
286
- }
287
- }
288
- writeRegistry(stateDir, registry);
289
- });
290
- }
291
- /**
292
- * Clean up expired observations (older than retention period).
293
- *
294
- * @param stateDir - Workspace state directory
295
- * @param retentionMs - Retention period in milliseconds (default: DEFAULT_RETENTION_MS)
296
- * @returns Number of observations removed
297
- */
298
- export function cleanupExpiredObservations(stateDir, retentionMs = DEFAULT_RETENTION_MS) {
299
- const cutoff = new Date(Date.now() - retentionMs).toISOString();
300
- let removed = 0;
301
- withShadowRegistryLock(stateDir, (registry) => {
302
- const before = registry.observations.length;
303
- registry.observations = registry.observations.filter((o) => o.routedAt >= cutoff);
304
- removed = before - registry.observations.length;
305
- writeRegistry(stateDir, registry);
306
- });
307
- return removed;
308
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * System Logger for Principles Disciple
3
- * Writes critical evolutionary events to the project's memory/logs/SYSTEM.log
4
- * Uses asynchronous writing to avoid blocking the Node.js event loop.
5
- */
6
- export declare const SystemLogger: {
7
- log(workspaceDir: string | undefined, eventType: string, message: string): void;
8
- };
@@ -1,38 +0,0 @@
1
- export interface ThinkingModelDefinition {
2
- id: string;
3
- name: string;
4
- description: string;
5
- patterns: RegExp[];
6
- baselineScenarios: string[];
7
- }
8
- export interface ThinkingModelMatch {
9
- modelId: string;
10
- matchedPattern: string;
11
- }
12
- export interface ThinkingScenarioContext {
13
- recentToolCalls?: Array<{
14
- toolName: string;
15
- outcome: 'success' | 'failure' | 'blocked';
16
- errorType?: string | null;
17
- }>;
18
- recentPainEvents?: Array<{
19
- source: string;
20
- score: number;
21
- }>;
22
- recentGateBlocks?: Array<{
23
- toolName: string;
24
- reason: string;
25
- }>;
26
- recentUserCorrections?: Array<{
27
- correctionCue?: string | null;
28
- }>;
29
- recentPrincipleEvents?: Array<{
30
- eventType: string;
31
- principleId?: string | null;
32
- }>;
33
- }
34
- export declare const THINKING_MODEL_MAP: Map<string, ThinkingModelDefinition>;
35
- export declare function listThinkingModels(): ThinkingModelDefinition[];
36
- export declare function getThinkingModel(modelId: string): ThinkingModelDefinition | undefined;
37
- export declare function detectThinkingModelMatches(text: string): ThinkingModelMatch[];
38
- export declare function deriveThinkingScenarios(modelId: string, context: ThinkingScenarioContext): string[];