principles-disciple 1.127.0 → 1.129.0

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 (593) hide show
  1. package/dist/commands/archive-impl.d.ts +18 -0
  2. package/dist/commands/archive-impl.js +105 -0
  3. package/dist/commands/capabilities.d.ts +3 -0
  4. package/dist/commands/capabilities.js +76 -0
  5. package/dist/commands/context.d.ts +5 -0
  6. package/{src/commands/context.ts → dist/commands/context.js} +34 -83
  7. package/dist/commands/disable-impl.d.ts +22 -0
  8. package/dist/commands/disable-impl.js +118 -0
  9. package/dist/commands/evolution-status.d.ts +4 -0
  10. package/dist/commands/evolution-status.js +187 -0
  11. package/dist/commands/export.d.ts +2 -0
  12. package/dist/commands/export.js +53 -0
  13. package/dist/commands/focus.d.ts +14 -0
  14. package/dist/commands/focus.js +443 -0
  15. package/dist/commands/pain.d.ts +6 -0
  16. package/{src/commands/pain.ts → dist/commands/pain.js} +137 -188
  17. package/dist/commands/principle-rollback.d.ts +4 -0
  18. package/dist/commands/principle-rollback.js +26 -0
  19. package/dist/commands/promote-impl.d.ts +22 -0
  20. package/dist/commands/promote-impl.js +194 -0
  21. package/dist/commands/rollback-impl.d.ts +32 -0
  22. package/dist/commands/rollback-impl.js +180 -0
  23. package/dist/commands/rollback.d.ts +19 -0
  24. package/{src/commands/rollback.ts → dist/commands/rollback.js} +10 -53
  25. package/dist/commands/samples.d.ts +2 -0
  26. package/dist/commands/samples.js +58 -0
  27. package/dist/commands/strategy.d.ts +2 -0
  28. package/dist/commands/strategy.js +16 -0
  29. package/dist/commands/thinking-os.d.ts +2 -0
  30. package/{src/commands/thinking-os.ts → dist/commands/thinking-os.js} +35 -58
  31. package/dist/commands/workflow-debug.d.ts +6 -0
  32. package/{src/commands/workflow-debug.ts → dist/commands/workflow-debug.js} +13 -33
  33. package/dist/config/defaults/runtime.d.ts +58 -0
  34. package/{src/config/defaults/runtime.ts → dist/config/defaults/runtime.js} +4 -41
  35. package/dist/config/errors.d.ts +86 -0
  36. package/dist/config/errors.js +107 -0
  37. package/{src/config/index.ts → dist/config/index.d.ts} +1 -2
  38. package/dist/config/index.js +7 -0
  39. package/dist/constants/diagnostician.d.ts +12 -0
  40. package/{src/constants/diagnostician.ts → dist/constants/diagnostician.js} +0 -1
  41. package/dist/constants/tools.d.ts +17 -0
  42. package/dist/constants/tools.js +53 -0
  43. package/dist/core/__tests__/focus-history.test.d.ts +1 -0
  44. package/dist/core/__tests__/focus-history.test.js +160 -0
  45. package/dist/core/bootstrap-rules.d.ts +50 -0
  46. package/dist/core/bootstrap-rules.js +187 -0
  47. package/dist/core/code-implementation-storage.d.ts +71 -0
  48. package/dist/core/code-implementation-storage.js +139 -0
  49. package/dist/core/config-health.d.ts +27 -0
  50. package/dist/core/config-health.js +60 -0
  51. package/dist/core/config-service.d.ts +15 -0
  52. package/{src/core/config-service.ts → dist/core/config-service.js} +4 -7
  53. package/dist/core/config.d.ts +111 -0
  54. package/{src/core/config.ts → dist/core/config.js} +46 -146
  55. package/dist/core/control-ui-db.d.ts +106 -0
  56. package/dist/core/control-ui-db.js +309 -0
  57. package/dist/core/correction-cue-learner.d.ts +33 -0
  58. package/dist/core/correction-cue-learner.js +184 -0
  59. package/dist/core/correction-types.d.ts +3 -0
  60. package/dist/core/correction-types.js +1 -0
  61. package/dist/core/detection-funnel.d.ts +33 -0
  62. package/{src/core/detection-funnel.ts → dist/core/detection-funnel.js} +17 -37
  63. package/dist/core/detection-service.d.ts +15 -0
  64. package/{src/core/detection-service.ts → dist/core/detection-service.js} +4 -7
  65. package/dist/core/dictionary-service.d.ts +15 -0
  66. package/{src/core/dictionary-service.ts → dist/core/dictionary-service.js} +4 -7
  67. package/dist/core/dictionary.d.ts +38 -0
  68. package/{src/core/dictionary.ts → dist/core/dictionary.js} +33 -59
  69. package/dist/core/empathy-keyword-matcher.d.ts +5 -0
  70. package/dist/core/empathy-keyword-matcher.js +40 -0
  71. package/dist/core/empathy-types.d.ts +2 -0
  72. package/dist/core/empathy-types.js +1 -0
  73. package/dist/core/event-log.d.ts +90 -0
  74. package/dist/core/event-log.js +702 -0
  75. package/dist/core/evolution-engine.d.ts +119 -0
  76. package/dist/core/evolution-engine.js +460 -0
  77. package/dist/core/evolution-logger.d.ts +137 -0
  78. package/dist/core/evolution-logger.js +261 -0
  79. package/dist/core/evolution-migration.d.ts +5 -0
  80. package/dist/core/evolution-migration.js +65 -0
  81. package/dist/core/evolution-reducer.d.ts +124 -0
  82. package/dist/core/evolution-reducer.js +730 -0
  83. package/dist/core/evolution-types.d.ts +50 -0
  84. package/dist/core/evolution-types.js +11 -0
  85. package/dist/core/external-training-contract.d.ts +276 -0
  86. package/dist/core/external-training-contract.js +269 -0
  87. package/dist/core/file-store.d.ts +41 -0
  88. package/dist/core/file-store.js +46 -0
  89. package/dist/core/focus-history.d.ts +50 -0
  90. package/dist/core/focus-history.js +574 -0
  91. package/dist/core/hygiene/tracker.d.ts +22 -0
  92. package/dist/core/hygiene/tracker.js +110 -0
  93. package/dist/core/init.d.ts +30 -0
  94. package/{src/core/init.ts → dist/core/init.js} +87 -118
  95. package/dist/core/local-worker-routing.d.ts +124 -0
  96. package/dist/core/local-worker-routing.js +216 -0
  97. package/dist/core/migration.d.ts +6 -0
  98. package/{src/core/migration.ts → dist/core/migration.js} +10 -18
  99. package/dist/core/model-deployment-registry.d.ts +218 -0
  100. package/dist/core/model-deployment-registry.js +502 -0
  101. package/dist/core/model-training-registry.d.ts +295 -0
  102. package/dist/core/model-training-registry.js +474 -0
  103. package/dist/core/observability.d.ts +40 -0
  104. package/dist/core/observability.js +164 -0
  105. package/dist/core/pain-diagnostic-gate.d.ts +36 -0
  106. package/dist/core/pain-diagnostic-gate.js +105 -0
  107. package/dist/core/pain.d.ts +87 -0
  108. package/dist/core/pain.js +223 -0
  109. package/dist/core/path-resolver.d.ts +60 -0
  110. package/{src/core/path-resolver.ts → dist/core/path-resolver.js} +41 -131
  111. package/dist/core/paths.d.ts +60 -0
  112. package/{src/core/paths.ts → dist/core/paths.js} +4 -13
  113. package/dist/core/pd-config-loader.d.ts +96 -0
  114. package/dist/core/pd-config-loader.js +307 -0
  115. package/dist/core/pd-task-reconciler.d.ts +89 -0
  116. package/dist/core/pd-task-reconciler.js +262 -0
  117. package/dist/core/pd-task-service.d.ts +2 -0
  118. package/dist/core/pd-task-service.js +32 -0
  119. package/dist/core/pd-task-store.d.ts +5 -0
  120. package/dist/core/pd-task-store.js +62 -0
  121. package/dist/core/pd-task-types.d.ts +8 -0
  122. package/dist/core/pd-task-types.js +2 -0
  123. package/dist/core/principle-compiler/__tests__/compiler-replay-gate.test.d.ts +1 -0
  124. package/dist/core/principle-compiler/__tests__/compiler-replay-gate.test.js +132 -0
  125. package/dist/core/principle-compiler/code-validator.d.ts +14 -0
  126. package/dist/core/principle-compiler/code-validator.js +86 -0
  127. package/dist/core/principle-compiler/compiler.d.ts +45 -0
  128. package/dist/core/principle-compiler/compiler.js +287 -0
  129. package/{src/core/principle-compiler/index.ts → dist/core/principle-compiler/index.d.ts} +0 -1
  130. package/dist/core/principle-compiler/index.js +10 -0
  131. package/dist/core/principle-compiler/ledger-registrar.d.ts +28 -0
  132. package/dist/core/principle-compiler/ledger-registrar.js +95 -0
  133. package/{src/core/principle-compiler/template-generator.ts → dist/core/principle-compiler/template-generator.d.ts} +0 -1
  134. package/dist/core/principle-compiler/template-generator.js +7 -0
  135. package/{src/core/principle-injection.ts → dist/core/principle-injection.d.ts} +1 -7
  136. package/dist/core/principle-injection.js +10 -0
  137. package/dist/core/principle-internalization/filesystem-lifecycle-datasource.d.ts +15 -0
  138. package/dist/core/principle-internalization/filesystem-lifecycle-datasource.js +34 -0
  139. package/dist/core/principle-internalization/lifecycle-read-model.d.ts +17 -0
  140. package/{src/core/principle-internalization/lifecycle-read-model.ts → dist/core/principle-internalization/lifecycle-read-model.js} +2 -21
  141. package/dist/core/principle-internalization/lifecycle-refresh.d.ts +2 -0
  142. package/dist/core/principle-internalization/lifecycle-refresh.js +4 -0
  143. package/dist/core/principle-internalization/principle-lifecycle-service.d.ts +28 -0
  144. package/dist/core/principle-internalization/principle-lifecycle-service.js +89 -0
  145. package/dist/core/principle-training-state.d.ts +47 -0
  146. package/dist/core/principle-training-state.js +113 -0
  147. package/dist/core/principle-tree-ledger-adapter.d.ts +32 -0
  148. package/dist/core/principle-tree-ledger-adapter.js +125 -0
  149. package/dist/core/principle-tree-ledger.d.ts +82 -0
  150. package/dist/core/principle-tree-ledger.js +527 -0
  151. package/dist/core/profile.d.ts +62 -0
  152. package/dist/core/profile.js +211 -0
  153. package/dist/core/promotion-gate.d.ts +243 -0
  154. package/dist/core/promotion-gate.js +554 -0
  155. package/dist/core/reflection/reflection-context.d.ts +31 -0
  156. package/dist/core/reflection/reflection-context.js +91 -0
  157. package/dist/core/replay-engine.d.ts +12 -0
  158. package/dist/core/replay-engine.js +82 -0
  159. package/dist/core/risk-calculator.d.ts +22 -0
  160. package/{src/core/risk-calculator.ts → dist/core/risk-calculator.js} +19 -49
  161. package/{src/core/rule-host-helpers.ts → dist/core/rule-host-helpers.d.ts} +0 -1
  162. package/dist/core/rule-host-helpers.js +7 -0
  163. package/{src/core/rule-host-types.ts → dist/core/rule-host-types.d.ts} +1 -8
  164. package/dist/core/rule-host-types.js +7 -0
  165. package/dist/core/rule-host.d.ts +86 -0
  166. package/dist/core/rule-host.js +311 -0
  167. package/dist/core/rule-implementation-runtime.d.ts +18 -0
  168. package/dist/core/rule-implementation-runtime.js +112 -0
  169. package/dist/core/runtime-v2-prompt-activation-reader.d.ts +22 -0
  170. package/dist/core/runtime-v2-prompt-activation-reader.js +99 -0
  171. package/{src/core/schema/db-types.ts → dist/core/schema/db-types.d.ts} +4 -9
  172. package/dist/core/schema/db-types.js +5 -0
  173. package/{src/core/schema/index.ts → dist/core/schema/index.d.ts} +1 -10
  174. package/dist/core/schema/index.js +15 -0
  175. package/dist/core/schema/migration-runner.d.ts +53 -0
  176. package/dist/core/schema/migration-runner.js +170 -0
  177. package/dist/core/schema/migrations/001-init-trajectory.d.ts +6 -0
  178. package/{src/core/schema/migrations/001-init-trajectory.ts → dist/core/schema/migrations/001-init-trajectory.js} +38 -56
  179. package/dist/core/schema/migrations/002-init-central.d.ts +5 -0
  180. package/{src/core/schema/migrations/002-init-central.ts → dist/core/schema/migrations/002-init-central.js} +27 -41
  181. package/dist/core/schema/migrations/003-init-workflow.d.ts +5 -0
  182. package/{src/core/schema/migrations/003-init-workflow.ts → dist/core/schema/migrations/003-init-workflow.js} +16 -21
  183. package/dist/core/schema/migrations/004-add-thinking-and-gfi.d.ts +8 -0
  184. package/{src/core/schema/migrations/004-add-thinking-and-gfi.ts → dist/core/schema/migrations/004-add-thinking-and-gfi.js} +19 -27
  185. package/{src/core/schema/migrations/index.ts → dist/core/schema/migrations/index.d.ts} +1 -16
  186. package/dist/core/schema/migrations/index.js +27 -0
  187. package/dist/core/schema/schema-definitions.d.ts +46 -0
  188. package/{src/core/schema/schema-definitions.ts → dist/core/schema/schema-definitions.js} +242 -291
  189. package/dist/core/session-tracker.d.ts +119 -0
  190. package/{src/core/session-tracker.ts → dist/core/session-tracker.js} +96 -239
  191. package/dist/core/shadow-observation-registry.d.ts +217 -0
  192. package/dist/core/shadow-observation-registry.js +280 -0
  193. package/dist/core/surface-guard.d.ts +31 -0
  194. package/dist/core/surface-guard.js +131 -0
  195. package/dist/core/system-logger.d.ts +8 -0
  196. package/{src/core/system-logger.ts → dist/core/system-logger.js} +20 -34
  197. package/dist/core/thinking-models.d.ts +70 -0
  198. package/dist/core/thinking-models.js +300 -0
  199. package/dist/core/thinking-os-parser.d.ts +35 -0
  200. package/dist/core/thinking-os-parser.js +123 -0
  201. package/dist/core/trajectory-types.d.ts +220 -0
  202. package/dist/core/trajectory-types.js +8 -0
  203. package/dist/core/trajectory.d.ts +242 -0
  204. package/dist/core/trajectory.js +1500 -0
  205. package/dist/core/workflow-funnel-loader.d.ts +72 -0
  206. package/dist/core/workflow-funnel-loader.js +135 -0
  207. package/dist/core/workspace-context.d.ts +111 -0
  208. package/{src/core/workspace-context.ts → dist/core/workspace-context.js} +50 -105
  209. package/dist/core/workspace-dir-validation.d.ts +11 -0
  210. package/dist/core/workspace-dir-validation.js +37 -0
  211. package/dist/core/workspace-guidance-migrator.d.ts +12 -0
  212. package/{src/core/workspace-guidance-migrator.ts → dist/core/workspace-guidance-migrator.js} +21 -59
  213. package/dist/hooks/after-tool-call-helpers.d.ts +89 -0
  214. package/dist/hooks/after-tool-call-helpers.js +475 -0
  215. package/dist/hooks/after-tool-call-types.d.ts +86 -0
  216. package/dist/hooks/after-tool-call-types.js +13 -0
  217. package/dist/hooks/gate-block-helper.d.ts +44 -0
  218. package/dist/hooks/gate-block-helper.js +209 -0
  219. package/dist/hooks/gate.d.ts +16 -0
  220. package/dist/hooks/gate.js +381 -0
  221. package/dist/hooks/lifecycle.d.ts +5 -0
  222. package/dist/hooks/lifecycle.js +287 -0
  223. package/dist/hooks/llm.d.ts +13 -0
  224. package/{src/hooks/llm.ts → dist/hooks/llm.js} +63 -117
  225. package/dist/hooks/message-sanitize.d.ts +24 -0
  226. package/dist/hooks/message-sanitize.js +77 -0
  227. package/dist/hooks/pain.d.ts +33 -0
  228. package/dist/hooks/pain.js +294 -0
  229. package/dist/hooks/prompt.d.ts +52 -0
  230. package/dist/hooks/prompt.js +930 -0
  231. package/dist/hooks/raw-observation-adapter.d.ts +57 -0
  232. package/dist/hooks/raw-observation-adapter.js +170 -0
  233. package/dist/hooks/raw-observation-types.d.ts +62 -0
  234. package/dist/hooks/raw-observation-types.js +15 -0
  235. package/dist/hooks/subagent.d.ts +9 -0
  236. package/{src/hooks/subagent.ts → dist/hooks/subagent.js} +20 -60
  237. package/dist/hooks/trajectory-collector.d.ts +25 -0
  238. package/dist/hooks/trajectory-collector.js +225 -0
  239. package/dist/hooks/trajectory-evidence.d.ts +11 -0
  240. package/dist/hooks/trajectory-evidence.js +88 -0
  241. package/dist/hooks/triage-adapter.d.ts +58 -0
  242. package/{src/hooks/triage-adapter.ts → dist/hooks/triage-adapter.js} +36 -68
  243. package/dist/hooks/trigger-cooldown-tracker.d.ts +30 -0
  244. package/dist/hooks/trigger-cooldown-tracker.js +55 -0
  245. package/dist/i18n/commands.d.ts +26 -0
  246. package/dist/i18n/commands.js +96 -0
  247. package/dist/index.d.ts +50 -0
  248. package/dist/index.js +829 -0
  249. package/dist/openclaw-sdk.d.ts +293 -0
  250. package/dist/openclaw-sdk.js +4 -0
  251. package/dist/service/central-database.d.ts +138 -0
  252. package/dist/service/central-database.js +731 -0
  253. package/dist/service/central-sync-service.d.ts +8 -0
  254. package/dist/service/central-sync-service.js +71 -0
  255. package/dist/service/correction-observer-service.d.ts +19 -0
  256. package/{src/service/correction-observer-service.ts → dist/service/correction-observer-service.js} +36 -76
  257. package/dist/service/evolution-dedup.d.ts +27 -0
  258. package/{src/service/evolution-dedup.ts → dist/service/evolution-dedup.js} +11 -31
  259. package/{src/service/evolution-queue-migration.ts → dist/service/evolution-queue-migration.d.ts} +15 -62
  260. package/dist/service/evolution-queue-migration.js +53 -0
  261. package/dist/service/evolution-worker.d.ts +103 -0
  262. package/{src/service/evolution-worker.ts → dist/service/evolution-worker.js} +169 -331
  263. package/dist/service/internalization-auto-consumer-service.d.ts +8 -0
  264. package/dist/service/internalization-auto-consumer-service.js +322 -0
  265. package/dist/service/keyword-optimization-service.d.ts +44 -0
  266. package/dist/service/keyword-optimization-service.js +137 -0
  267. package/dist/service/phase3-input-filter.d.ts +73 -0
  268. package/dist/service/phase3-input-filter.js +172 -0
  269. package/dist/service/queue-io.d.ts +30 -0
  270. package/dist/service/queue-io.js +79 -0
  271. package/{src/service/queue-migration.ts → dist/service/queue-migration.d.ts} +6 -45
  272. package/dist/service/queue-migration.js +56 -0
  273. package/dist/service/runtime-summary-service.d.ts +158 -0
  274. package/dist/service/runtime-summary-service.js +636 -0
  275. package/dist/service/subagent-workflow/subagent-error-utils.d.ts +8 -0
  276. package/{src/service/subagent-workflow/subagent-error-utils.ts → dist/service/subagent-workflow/subagent-error-utils.js} +3 -6
  277. package/{src/service/subagent-workflow/types.ts → dist/service/subagent-workflow/types.d.ts} +17 -80
  278. package/dist/service/subagent-workflow/types.js +11 -0
  279. package/dist/service/subagent-workflow/workflow-store.d.ts +30 -0
  280. package/{src/service/subagent-workflow/workflow-store.ts → dist/service/subagent-workflow/workflow-store.js} +43 -108
  281. package/dist/service/trajectory-service.d.ts +2 -0
  282. package/dist/service/trajectory-service.js +16 -0
  283. package/dist/service/workflow-watchdog.d.ts +23 -0
  284. package/dist/service/workflow-watchdog.js +103 -0
  285. package/dist/types/event-types.d.ts +2 -0
  286. package/dist/types/event-types.js +1 -0
  287. package/dist/types/hygiene-types.d.ts +2 -0
  288. package/dist/types/hygiene-types.js +1 -0
  289. package/{src/types/principle-tree-schema.ts → dist/types/principle-tree-schema.d.ts} +2 -25
  290. package/dist/types/principle-tree-schema.js +24 -0
  291. package/dist/types/queue.d.ts +2 -0
  292. package/dist/types/queue.js +1 -0
  293. package/dist/types/runtime-summary.d.ts +1 -0
  294. package/dist/types/runtime-summary.js +1 -0
  295. package/dist/types.d.ts +33 -0
  296. package/dist/types.js +16 -0
  297. package/dist/utils/file-lock.d.ts +68 -0
  298. package/dist/utils/file-lock.js +310 -0
  299. package/dist/utils/hashing.d.ts +9 -0
  300. package/{src/utils/hashing.ts → dist/utils/hashing.js} +4 -6
  301. package/dist/utils/io.d.ts +11 -0
  302. package/dist/utils/io.js +174 -0
  303. package/dist/utils/node-vm-polyfill.d.ts +9 -0
  304. package/{src/utils/node-vm-polyfill.ts → dist/utils/node-vm-polyfill.js} +0 -2
  305. package/dist/utils/retry.d.ts +210 -0
  306. package/dist/utils/retry.js +375 -0
  307. package/dist/utils/session-key.d.ts +10 -0
  308. package/{src/utils/session-key.ts → dist/utils/session-key.js} +5 -4
  309. package/dist/utils/shadow-fingerprint.d.ts +16 -0
  310. package/dist/utils/shadow-fingerprint.js +34 -0
  311. package/dist/utils/workspace-resolver.d.ts +82 -0
  312. package/dist/utils/workspace-resolver.js +288 -0
  313. package/openclaw.plugin.json +1 -1
  314. package/package.json +8 -2
  315. package/templates/workspace/.principles/DECISION_POLICY.json +44 -0
  316. package/templates/workspace/.principles/PRINCIPLES.md +20 -0
  317. package/templates/workspace/.principles/PROFILE.json +54 -0
  318. package/templates/workspace/.principles/PROFILE.schema.json +56 -0
  319. package/templates/workspace/.principles/THINKING_OS.md +65 -0
  320. package/templates/workspace/.principles/THINKING_OS_ARCHIVE.md +7 -0
  321. package/templates/workspace/.principles/THINKING_OS_CANDIDATES.md +9 -0
  322. package/templates/workspace/.principles/models/_INDEX.md +27 -0
  323. package/templates/workspace/.principles/models/first_principles.md +62 -0
  324. package/templates/workspace/.principles/models/marketing_4p.md +52 -0
  325. package/templates/workspace/.principles/models/porter_five.md +63 -0
  326. package/templates/workspace/.principles/models/swot.md +60 -0
  327. package/templates/workspace/.principles/models/user_story_map.md +63 -0
  328. package/templates/workspace/.state/WORKBOARD.json +4 -0
  329. package/.dependency-cruiser.json +0 -19
  330. package/ADVANCED_CONFIG_ZH.md +0 -93
  331. package/AGENT_INSTALL.md +0 -173
  332. package/AGENT_INSTALL_EN.md +0 -173
  333. package/CHANGELOG.md +0 -26
  334. package/INSTALL.md +0 -254
  335. package/SKILL.md +0 -63
  336. package/esbuild.config.js +0 -104
  337. package/src/commands/archive-impl.ts +0 -147
  338. package/src/commands/capabilities.ts +0 -89
  339. package/src/commands/disable-impl.ts +0 -159
  340. package/src/commands/evolution-status.ts +0 -247
  341. package/src/commands/export.ts +0 -59
  342. package/src/commands/focus.ts +0 -523
  343. package/src/commands/principle-rollback.ts +0 -32
  344. package/src/commands/promote-impl.ts +0 -254
  345. package/src/commands/rollback-impl.ts +0 -246
  346. package/src/commands/samples.ts +0 -65
  347. package/src/commands/strategy.ts +0 -21
  348. package/src/config/errors.ts +0 -180
  349. package/src/constants/tools.ts +0 -62
  350. package/src/core/AGENTS.md +0 -34
  351. package/src/core/__tests__/focus-history.test.ts +0 -210
  352. package/src/core/bootstrap-rules.ts +0 -216
  353. package/src/core/code-implementation-storage.ts +0 -213
  354. package/src/core/config-health.ts +0 -72
  355. package/src/core/control-ui-db.ts +0 -454
  356. package/src/core/correction-cue-learner.ts +0 -239
  357. package/src/core/correction-types.ts +0 -16
  358. package/src/core/empathy-keyword-matcher.ts +0 -64
  359. package/src/core/empathy-types.ts +0 -18
  360. package/src/core/event-log.ts +0 -787
  361. package/src/core/evolution-engine.ts +0 -613
  362. package/src/core/evolution-logger.ts +0 -357
  363. package/src/core/evolution-migration.ts +0 -77
  364. package/src/core/evolution-reducer.ts +0 -891
  365. package/src/core/evolution-types.ts +0 -110
  366. package/src/core/external-training-contract.ts +0 -530
  367. package/src/core/file-store.ts +0 -80
  368. package/src/core/focus-history.ts +0 -763
  369. package/src/core/hygiene/tracker.ts +0 -122
  370. package/src/core/local-worker-routing.ts +0 -337
  371. package/src/core/model-deployment-registry.ts +0 -724
  372. package/src/core/model-training-registry.ts +0 -815
  373. package/src/core/observability.ts +0 -242
  374. package/src/core/pain-diagnostic-gate.ts +0 -169
  375. package/src/core/pain.ts +0 -309
  376. package/src/core/pd-config-loader.ts +0 -400
  377. package/src/core/pd-task-reconciler.ts +0 -380
  378. package/src/core/pd-task-service.ts +0 -43
  379. package/src/core/pd-task-store.ts +0 -78
  380. package/src/core/pd-task-types.ts +0 -24
  381. package/src/core/principle-compiler/__tests__/compiler-replay-gate.test.ts +0 -174
  382. package/src/core/principle-compiler/code-validator.ts +0 -96
  383. package/src/core/principle-compiler/compiler.ts +0 -327
  384. package/src/core/principle-compiler/ledger-registrar.ts +0 -116
  385. package/src/core/principle-internalization/filesystem-lifecycle-datasource.ts +0 -42
  386. package/src/core/principle-internalization/lifecycle-refresh.ts +0 -11
  387. package/src/core/principle-internalization/principle-lifecycle-service.ts +0 -170
  388. package/src/core/principle-training-state.ts +0 -177
  389. package/src/core/principle-tree-ledger-adapter.ts +0 -145
  390. package/src/core/principle-tree-ledger.ts +0 -725
  391. package/src/core/profile.ts +0 -228
  392. package/src/core/promotion-gate.ts +0 -854
  393. package/src/core/reflection/reflection-context.ts +0 -133
  394. package/src/core/replay-engine.ts +0 -106
  395. package/src/core/rule-host.ts +0 -386
  396. package/src/core/rule-implementation-runtime.ts +0 -145
  397. package/src/core/runtime-v2-prompt-activation-reader.ts +0 -114
  398. package/src/core/schema/migration-runner.ts +0 -207
  399. package/src/core/shadow-observation-registry.ts +0 -508
  400. package/src/core/surface-guard.ts +0 -188
  401. package/src/core/thinking-models.ts +0 -377
  402. package/src/core/thinking-os-parser.ts +0 -165
  403. package/src/core/trajectory-types.ts +0 -247
  404. package/src/core/trajectory.ts +0 -1831
  405. package/src/core/workflow-funnel-loader.ts +0 -195
  406. package/src/core/workspace-dir-validation.ts +0 -52
  407. package/src/hooks/AGENTS.md +0 -31
  408. package/src/hooks/after-tool-call-helpers.ts +0 -601
  409. package/src/hooks/after-tool-call-types.ts +0 -99
  410. package/src/hooks/gate-block-helper.ts +0 -265
  411. package/src/hooks/gate.ts +0 -394
  412. package/src/hooks/lifecycle.ts +0 -334
  413. package/src/hooks/message-sanitize.ts +0 -102
  414. package/src/hooks/pain.ts +0 -358
  415. package/src/hooks/prompt.ts +0 -1102
  416. package/src/hooks/raw-observation-adapter.ts +0 -215
  417. package/src/hooks/raw-observation-types.ts +0 -77
  418. package/src/hooks/trajectory-collector.ts +0 -253
  419. package/src/hooks/trajectory-evidence.ts +0 -97
  420. package/src/hooks/trigger-cooldown-tracker.ts +0 -82
  421. package/src/i18n/commands.ts +0 -101
  422. package/src/index.ts +0 -939
  423. package/src/openclaw-sdk.ts +0 -312
  424. package/src/service/central-database.ts +0 -936
  425. package/src/service/central-sync-service.ts +0 -85
  426. package/src/service/internalization-auto-consumer-service.ts +0 -397
  427. package/src/service/keyword-optimization-service.ts +0 -169
  428. package/src/service/phase3-input-filter.ts +0 -237
  429. package/src/service/queue-io.ts +0 -108
  430. package/src/service/runtime-summary-service.ts +0 -990
  431. package/src/service/trajectory-service.ts +0 -16
  432. package/src/service/workflow-watchdog.ts +0 -125
  433. package/src/types/event-types.ts +0 -39
  434. package/src/types/hygiene-types.ts +0 -8
  435. package/src/types/queue.ts +0 -15
  436. package/src/types/runtime-summary.ts +0 -5
  437. package/src/types.ts +0 -53
  438. package/src/utils/file-lock.ts +0 -394
  439. package/src/utils/io.ts +0 -176
  440. package/src/utils/retry.ts +0 -573
  441. package/src/utils/shadow-fingerprint.ts +0 -42
  442. package/src/utils/workspace-resolver.ts +0 -393
  443. package/tests/README.md +0 -120
  444. package/tests/build-artifacts.test.ts +0 -55
  445. package/tests/commands/evolution-status.test.ts +0 -511
  446. package/tests/commands/export.test.ts +0 -78
  447. package/tests/commands/pain.test.ts +0 -287
  448. package/tests/commands/samples.test.ts +0 -65
  449. package/tests/commands/strategy.test.ts +0 -19
  450. package/tests/commands/thinking-os.test.ts +0 -88
  451. package/tests/core/bootstrap-rules.test.ts +0 -596
  452. package/tests/core/code-implementation-storage.test.ts +0 -300
  453. package/tests/core/code-validator.test.ts +0 -197
  454. package/tests/core/config-service.test.ts +0 -89
  455. package/tests/core/config.test.ts +0 -90
  456. package/tests/core/control-ui-db.test.ts +0 -75
  457. package/tests/core/core-principle-registry-drift.test.ts +0 -39
  458. package/tests/core/core-template-guidance.test.ts +0 -21
  459. package/tests/core/correction-cue-learner.test.ts +0 -345
  460. package/tests/core/detection-service.test.ts +0 -50
  461. package/tests/core/dictionary-service.test.ts +0 -116
  462. package/tests/core/dictionary.test.ts +0 -171
  463. package/tests/core/empathy-keyword-matcher.test.ts +0 -209
  464. package/tests/core/event-log.test.ts +0 -484
  465. package/tests/core/evolution-engine.test.ts +0 -610
  466. package/tests/core/evolution-logger.test.ts +0 -148
  467. package/tests/core/evolution-migration.test.ts +0 -374
  468. package/tests/core/evolution-paths.test.ts +0 -21
  469. package/tests/core/evolution-reducer.compilation-retry.test.ts +0 -189
  470. package/tests/core/evolution-reducer.detector-metadata.test.ts +0 -602
  471. package/tests/core/evolution-types-loop.test.ts +0 -48
  472. package/tests/core/external-training-contract.test.ts +0 -463
  473. package/tests/core/file-store.test.ts +0 -102
  474. package/tests/core/focus-history.test.ts +0 -874
  475. package/tests/core/init-flatten.test.ts +0 -69
  476. package/tests/core/init-refactor.test.ts +0 -87
  477. package/tests/core/init-v1.3.test.ts +0 -46
  478. package/tests/core/init.test.ts +0 -190
  479. package/tests/core/ledger-registrar.test.ts +0 -235
  480. package/tests/core/migration.test.ts +0 -84
  481. package/tests/core/model-deployment-registry.test.ts +0 -858
  482. package/tests/core/model-training-registry.test.ts +0 -908
  483. package/tests/core/observability.test.ts +0 -382
  484. package/tests/core/pain-diagnostic-gate.test.ts +0 -614
  485. package/tests/core/pain-score.property.test.ts +0 -19
  486. package/tests/core/pain.test.ts +0 -132
  487. package/tests/core/path-resolver.test.ts +0 -57
  488. package/tests/core/paths-refactor.test.ts +0 -20
  489. package/tests/core/pd-config-loader.test.ts +0 -407
  490. package/tests/core/pd-task-store.test.ts +0 -126
  491. package/tests/core/phase7-rollout-integration.test.ts +0 -477
  492. package/tests/core/principle-compiler.test.ts +0 -350
  493. package/tests/core/principle-injection.test.ts +0 -223
  494. package/tests/core/principle-internalization/deprecated-readiness.test.ts +0 -193
  495. package/tests/core/principle-internalization/lifecycle-metrics.test.ts +0 -350
  496. package/tests/core/principle-internalization/lifecycle-routing-policy.test.ts +0 -212
  497. package/tests/core/principle-internalization/lineage-source-retired.test.ts +0 -56
  498. package/tests/core/principle-internalization/principle-lifecycle-service.test.ts +0 -189
  499. package/tests/core/principle-training-state.test.ts +0 -939
  500. package/tests/core/principle-tree-ledger-adapter.test.ts +0 -253
  501. package/tests/core/principle-tree-ledger.test.ts +0 -423
  502. package/tests/core/profile.test.ts +0 -56
  503. package/tests/core/promotion-gate.test.ts +0 -561
  504. package/tests/core/queue-purge.test.ts +0 -337
  505. package/tests/core/reflection-context.test.ts +0 -342
  506. package/tests/core/regression-v1-9-1.test.ts +0 -266
  507. package/tests/core/replay-engine.test.ts +0 -165
  508. package/tests/core/risk-calculator.test.ts +0 -168
  509. package/tests/core/rule-host-adversarial-output.test.ts +0 -242
  510. package/tests/core/rule-host-autocorrect-vm.test.ts +0 -163
  511. package/tests/core/rule-host-helpers.test.ts +0 -120
  512. package/tests/core/rule-host-resource-bounds.test.ts +0 -231
  513. package/tests/core/rule-host-sqlite-source.test.ts +0 -720
  514. package/tests/core/rule-host-unhealthy-visibility.test.ts +0 -261
  515. package/tests/core/rule-host-validation.test.ts +0 -315
  516. package/tests/core/rule-implementation-runtime.test.ts +0 -49
  517. package/tests/core/session-tracker.test.ts +0 -191
  518. package/tests/core/surface-guard.test.ts +0 -338
  519. package/tests/core/template-generator.test.ts +0 -101
  520. package/tests/core/trajectory.test.ts +0 -427
  521. package/tests/core/workflow-funnel-loader.test.ts +0 -1028
  522. package/tests/core/workspace-context-factory.test.ts +0 -18
  523. package/tests/core/workspace-context.test.ts +0 -187
  524. package/tests/core/workspace-guidance-migrator.test.ts +0 -248
  525. package/tests/core-anti-growth.test.ts +0 -182
  526. package/tests/evolution-worker-quarantine.test.ts +0 -400
  527. package/tests/evolution-worker-slimming.test.ts +0 -380
  528. package/tests/fixtures/legacy-queue-v1.json +0 -74
  529. package/tests/fixtures/production-compatibility.test.ts +0 -147
  530. package/tests/fixtures/production-mock-generator.ts +0 -282
  531. package/tests/globalSetup.ts +0 -38
  532. package/tests/hook-workspace-nextaction-contract.test.ts +0 -50
  533. package/tests/hooks/confirm-first-removal.test.ts +0 -188
  534. package/tests/hooks/gate-auto-correct-shadow.test.ts +0 -309
  535. package/tests/hooks/gate-auto-correct.test.ts +0 -664
  536. package/tests/hooks/gate-block-helper-profile.test.ts +0 -186
  537. package/tests/hooks/gate-no-path-write-tool.test.ts +0 -171
  538. package/tests/hooks/gate-rule-host-pipeline.test.ts +0 -230
  539. package/tests/hooks/gate-rule-host-real-pipeline.test.ts +0 -190
  540. package/tests/hooks/lifecycle.test.ts +0 -248
  541. package/tests/hooks/message-sanitize.test.ts +0 -244
  542. package/tests/hooks/pain-emission-characterization.test.ts +0 -420
  543. package/tests/hooks/pain.test.ts +0 -795
  544. package/tests/hooks/prompt-characterization.test.ts +0 -476
  545. package/tests/hooks/prompt-diet.test.ts +0 -335
  546. package/tests/hooks/prompt-size-guard.test.ts +0 -319
  547. package/tests/hooks/raw-observation-adapter.test.ts +0 -312
  548. package/tests/hooks/runtime-v2-prompt-activation.test.ts +0 -895
  549. package/tests/hooks/single-gate-pain-admission.test.ts +0 -258
  550. package/tests/hooks/subagent.test.ts +0 -469
  551. package/tests/hooks/trajectory-collector.test.ts +0 -269
  552. package/tests/hooks/trajectory-evidence.test.ts +0 -280
  553. package/tests/hooks/triage-adapter.test.ts +0 -331
  554. package/tests/hygiene-tracker.test.ts +0 -77
  555. package/tests/index.test.ts +0 -142
  556. package/tests/integration/auto-entry-gate.test.ts +0 -256
  557. package/tests/integration/gate-real-io.e2e.test.ts +0 -248
  558. package/tests/integration/m8-legacy-paths.test.ts +0 -63
  559. package/tests/integration/mvp-surface-registry-guard.test.ts +0 -536
  560. package/tests/integration/pain-id-chain-e2e.test.ts +0 -313
  561. package/tests/integration/principle-compiler-e2e.test.ts +0 -403
  562. package/tests/integration/principle-lifecycle.e2e.test.ts +0 -198
  563. package/tests/integration/runtime-v2-pain-guard.test.ts +0 -125
  564. package/tests/integration/trajectory-lifecycle.e2e.test.ts +0 -523
  565. package/tests/internalization-auto-consumer-gate.test.ts +0 -158
  566. package/tests/internalization-auto-consumer-service.test.ts +0 -219
  567. package/tests/plugin-config-resolution-cutover.test.ts +0 -359
  568. package/tests/queue/async-lock.test.ts +0 -200
  569. package/tests/runtime-v2-discovery-guard.test.ts +0 -153
  570. package/tests/scripts/validate-live-path.test.ts +0 -286
  571. package/tests/service/central-database.test.ts +0 -457
  572. package/tests/service/correction-observer-service.test.ts +0 -505
  573. package/tests/service/evolution-worker.compilation-backfill.test.ts +0 -203
  574. package/tests/service/evolution-worker.correction-observer.test.ts +0 -50
  575. package/tests/service/evolution-worker.queue.test.ts +0 -296
  576. package/tests/service/evolution-worker.timeout.test.ts +0 -233
  577. package/tests/service/keyword-optimization-service.test.ts +0 -121
  578. package/tests/service/phase3-input-filter.test.ts +0 -289
  579. package/tests/service/queue-io.test.ts +0 -168
  580. package/tests/service/queue-migration.test.ts +0 -147
  581. package/tests/service/runtime-summary-service.test.ts +0 -1100
  582. package/tests/service/workflow-watchdog.test.ts +0 -281
  583. package/tests/task-compliance.test.ts +0 -166
  584. package/tests/test-utils.ts +0 -48
  585. package/tests/utils/file-lock.test.ts +0 -409
  586. package/tests/utils/hashing.test.ts +0 -32
  587. package/tests/utils/hook-workspace-resolver.test.ts +0 -524
  588. package/tests/utils/io.test.ts +0 -39
  589. package/tests/utils/retry.test.ts +0 -327
  590. package/tests/utils/session-key.test.ts +0 -52
  591. package/tsconfig.json +0 -16
  592. package/vitest.config.ts +0 -61
  593. package/vitest.unit.config.ts +0 -12
@@ -6,82 +6,38 @@
6
6
  *
7
7
  * Each definition is keyed by `${dbName}.${name}` for uniqueness.
8
8
  */
9
-
10
- import type { Db } from './db-types.js';
11
-
12
- // ---------------------------------------------------------------------------
13
- // Types
14
- // ---------------------------------------------------------------------------
15
-
16
- export type DbType = 'trajectory.db' | 'central.db' | 'workflow.db';
17
-
18
- export interface TableDefinition {
19
- ddl: string;
20
- indexes?: string[];
21
- }
22
-
23
- export interface ViewDefinition {
24
- ddl: string;
25
- }
26
-
27
- export interface FtsDefinition {
28
- ddl: string;
29
- }
30
-
31
- export interface Migration {
32
- /** Unique ID, e.g. '001' */
33
- id: string;
34
- /** Human-readable name, e.g. 'init-trajectory' */
35
- name: string;
36
- /** Which database file this migration applies to */
37
- db: DbType;
38
-
39
- /** Apply this migration */
40
- up: (_db: Db) => void;
41
- /** Revert this migration */
42
- down?: (_db: Db) => void;
43
- }
44
-
45
- export interface SchemaCatalog {
46
- tables: Record<string, TableDefinition>;
47
- views: Record<string, ViewDefinition>;
48
- fts: Record<string, FtsDefinition>;
49
- }
50
-
51
9
  // ---------------------------------------------------------------------------
52
10
  // Schema Definitions — ALL tables across ALL databases
53
11
  // ---------------------------------------------------------------------------
54
-
55
12
  /**
56
13
  * All schema definitions organized by database file.
57
14
  * Key format: `${dbName}.${tableName}`
58
15
  */
59
- export const SCHEMAS: Record<DbType, SchemaCatalog> = {
60
-
61
- // ========================================================================
62
- // trajectory.db — Main event store
63
- // ========================================================================
64
- 'trajectory.db': {
65
- tables: {
66
- 'trajectory.schema_version': {
67
- ddl: `CREATE TABLE IF NOT EXISTS schema_version (version INTEGER NOT NULL)`,
68
- },
69
- 'trajectory.ingest_checkpoint': {
70
- ddl: `CREATE TABLE IF NOT EXISTS ingest_checkpoint (
16
+ export const SCHEMAS = {
17
+ // ========================================================================
18
+ // trajectory.db — Main event store
19
+ // ========================================================================
20
+ 'trajectory.db': {
21
+ tables: {
22
+ 'trajectory.schema_version': {
23
+ ddl: `CREATE TABLE IF NOT EXISTS schema_version (version INTEGER NOT NULL)`,
24
+ },
25
+ 'trajectory.ingest_checkpoint': {
26
+ ddl: `CREATE TABLE IF NOT EXISTS ingest_checkpoint (
71
27
  source_key TEXT PRIMARY KEY,
72
28
  imported_at TEXT NOT NULL
73
29
  )`,
74
- },
75
- 'trajectory.sessions': {
76
- ddl: `CREATE TABLE IF NOT EXISTS sessions (
30
+ },
31
+ 'trajectory.sessions': {
32
+ ddl: `CREATE TABLE IF NOT EXISTS sessions (
77
33
  session_id TEXT PRIMARY KEY,
78
34
  started_at TEXT NOT NULL,
79
35
  updated_at TEXT NOT NULL
80
36
  )`,
81
- indexes: [],
82
- },
83
- 'trajectory.assistant_turns': {
84
- ddl: `CREATE TABLE IF NOT EXISTS assistant_turns (
37
+ indexes: [],
38
+ },
39
+ 'trajectory.assistant_turns': {
40
+ ddl: `CREATE TABLE IF NOT EXISTS assistant_turns (
85
41
  id INTEGER PRIMARY KEY AUTOINCREMENT,
86
42
  session_id TEXT NOT NULL,
87
43
  run_id TEXT NOT NULL,
@@ -95,14 +51,14 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
95
51
  raw_excerpt TEXT,
96
52
  created_at TEXT NOT NULL
97
53
  )`,
98
- indexes: [
99
- `CREATE INDEX IF NOT EXISTS idx_assistant_turns_session_id ON assistant_turns(session_id)`,
100
- `CREATE INDEX IF NOT EXISTS idx_assistant_turns_created_at ON assistant_turns(created_at)`,
101
- `CREATE INDEX IF NOT EXISTS idx_assistant_turns_provider_model ON assistant_turns(provider, model)`,
102
- ],
103
- },
104
- 'trajectory.user_turns': {
105
- ddl: `CREATE TABLE IF NOT EXISTS user_turns (
54
+ indexes: [
55
+ `CREATE INDEX IF NOT EXISTS idx_assistant_turns_session_id ON assistant_turns(session_id)`,
56
+ `CREATE INDEX IF NOT EXISTS idx_assistant_turns_created_at ON assistant_turns(created_at)`,
57
+ `CREATE INDEX IF NOT EXISTS idx_assistant_turns_provider_model ON assistant_turns(provider, model)`,
58
+ ],
59
+ },
60
+ 'trajectory.user_turns': {
61
+ ddl: `CREATE TABLE IF NOT EXISTS user_turns (
106
62
  id INTEGER PRIMARY KEY AUTOINCREMENT,
107
63
  session_id TEXT NOT NULL,
108
64
  turn_index INTEGER NOT NULL,
@@ -114,12 +70,12 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
114
70
  references_assistant_turn_id INTEGER,
115
71
  created_at TEXT NOT NULL
116
72
  )`,
117
- indexes: [
118
- `CREATE INDEX IF NOT EXISTS idx_user_turns_session_id ON user_turns(session_id)`,
119
- ],
120
- },
121
- 'trajectory.tool_calls': {
122
- ddl: `CREATE TABLE IF NOT EXISTS tool_calls (
73
+ indexes: [
74
+ `CREATE INDEX IF NOT EXISTS idx_user_turns_session_id ON user_turns(session_id)`,
75
+ ],
76
+ },
77
+ 'trajectory.tool_calls': {
78
+ ddl: `CREATE TABLE IF NOT EXISTS tool_calls (
123
79
  id INTEGER PRIMARY KEY AUTOINCREMENT,
124
80
  session_id TEXT NOT NULL,
125
81
  tool_name TEXT NOT NULL,
@@ -133,13 +89,13 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
133
89
  params_json TEXT NOT NULL,
134
90
  created_at TEXT NOT NULL
135
91
  )`,
136
- indexes: [
137
- `CREATE INDEX IF NOT EXISTS idx_tool_calls_session_id ON tool_calls(session_id)`,
138
- `CREATE INDEX IF NOT EXISTS idx_tool_calls_created_at ON tool_calls(created_at)`,
139
- ],
140
- },
141
- 'trajectory.pain_events': {
142
- ddl: `CREATE TABLE IF NOT EXISTS pain_events (
92
+ indexes: [
93
+ `CREATE INDEX IF NOT EXISTS idx_tool_calls_session_id ON tool_calls(session_id)`,
94
+ `CREATE INDEX IF NOT EXISTS idx_tool_calls_created_at ON tool_calls(created_at)`,
95
+ ],
96
+ },
97
+ 'trajectory.pain_events': {
98
+ ddl: `CREATE TABLE IF NOT EXISTS pain_events (
143
99
  id INTEGER PRIMARY KEY AUTOINCREMENT,
144
100
  session_id TEXT NOT NULL,
145
101
  source TEXT NOT NULL,
@@ -151,13 +107,13 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
151
107
  text TEXT,
152
108
  created_at TEXT NOT NULL
153
109
  )`,
154
- indexes: [
155
- `CREATE INDEX IF NOT EXISTS idx_pain_events_session_id ON pain_events(session_id)`,
156
- `CREATE INDEX IF NOT EXISTS idx_pain_events_created_at ON pain_events(created_at)`,
157
- ],
158
- },
159
- 'trajectory.gate_blocks': {
160
- ddl: `CREATE TABLE IF NOT EXISTS gate_blocks (
110
+ indexes: [
111
+ `CREATE INDEX IF NOT EXISTS idx_pain_events_session_id ON pain_events(session_id)`,
112
+ `CREATE INDEX IF NOT EXISTS idx_pain_events_created_at ON pain_events(created_at)`,
113
+ ],
114
+ },
115
+ 'trajectory.gate_blocks': {
116
+ ddl: `CREATE TABLE IF NOT EXISTS gate_blocks (
161
117
  id INTEGER PRIMARY KEY AUTOINCREMENT,
162
118
  session_id TEXT,
163
119
  tool_name TEXT NOT NULL,
@@ -170,12 +126,12 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
170
126
  gate_type TEXT,
171
127
  created_at TEXT NOT NULL
172
128
  )`,
173
- indexes: [
174
- `CREATE INDEX IF NOT EXISTS idx_gate_blocks_created_at ON gate_blocks(created_at)`,
175
- ],
176
- },
177
- 'trajectory.trust_changes': {
178
- ddl: `CREATE TABLE IF NOT EXISTS trust_changes (
129
+ indexes: [
130
+ `CREATE INDEX IF NOT EXISTS idx_gate_blocks_created_at ON gate_blocks(created_at)`,
131
+ ],
132
+ },
133
+ 'trajectory.trust_changes': {
134
+ ddl: `CREATE TABLE IF NOT EXISTS trust_changes (
179
135
  id INTEGER PRIMARY KEY AUTOINCREMENT,
180
136
  session_id TEXT,
181
137
  previous_score REAL NOT NULL,
@@ -184,20 +140,20 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
184
140
  reason TEXT NOT NULL,
185
141
  created_at TEXT NOT NULL
186
142
  )`,
187
- indexes: [],
188
- },
189
- 'trajectory.principle_events': {
190
- ddl: `CREATE TABLE IF NOT EXISTS principle_events (
143
+ indexes: [],
144
+ },
145
+ 'trajectory.principle_events': {
146
+ ddl: `CREATE TABLE IF NOT EXISTS principle_events (
191
147
  id INTEGER PRIMARY KEY AUTOINCREMENT,
192
148
  principle_id TEXT,
193
149
  event_type TEXT NOT NULL,
194
150
  payload_json TEXT NOT NULL,
195
151
  created_at TEXT NOT NULL
196
152
  )`,
197
- indexes: [],
198
- },
199
- 'trajectory.task_outcomes': {
200
- ddl: `CREATE TABLE IF NOT EXISTS task_outcomes (
153
+ indexes: [],
154
+ },
155
+ 'trajectory.task_outcomes': {
156
+ ddl: `CREATE TABLE IF NOT EXISTS task_outcomes (
201
157
  id INTEGER PRIMARY KEY AUTOINCREMENT,
202
158
  session_id TEXT NOT NULL,
203
159
  task_id TEXT,
@@ -206,10 +162,10 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
206
162
  principle_ids_json TEXT NOT NULL,
207
163
  created_at TEXT NOT NULL
208
164
  )`,
209
- indexes: [],
210
- },
211
- 'trajectory.correction_samples': {
212
- ddl: `CREATE TABLE IF NOT EXISTS correction_samples (
165
+ indexes: [],
166
+ },
167
+ 'trajectory.correction_samples': {
168
+ ddl: `CREATE TABLE IF NOT EXISTS correction_samples (
213
169
  sample_id TEXT PRIMARY KEY,
214
170
  session_id TEXT NOT NULL,
215
171
  bad_assistant_turn_id INTEGER NOT NULL,
@@ -223,22 +179,22 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
223
179
  created_at TEXT NOT NULL,
224
180
  updated_at TEXT NOT NULL
225
181
  )`,
226
- indexes: [
227
- `CREATE INDEX IF NOT EXISTS idx_correction_samples_review_status ON correction_samples(review_status)`,
228
- ],
229
- },
230
- 'trajectory.sample_reviews': {
231
- ddl: `CREATE TABLE IF NOT EXISTS sample_reviews (
182
+ indexes: [
183
+ `CREATE INDEX IF NOT EXISTS idx_correction_samples_review_status ON correction_samples(review_status)`,
184
+ ],
185
+ },
186
+ 'trajectory.sample_reviews': {
187
+ ddl: `CREATE TABLE IF NOT EXISTS sample_reviews (
232
188
  id INTEGER PRIMARY KEY AUTOINCREMENT,
233
189
  sample_id TEXT NOT NULL,
234
190
  review_status TEXT NOT NULL,
235
191
  note TEXT,
236
192
  created_at TEXT NOT NULL
237
193
  )`,
238
- indexes: [],
239
- },
240
- 'trajectory.exports_audit': {
241
- ddl: `CREATE TABLE IF NOT EXISTS exports_audit (
194
+ indexes: [],
195
+ },
196
+ 'trajectory.exports_audit': {
197
+ ddl: `CREATE TABLE IF NOT EXISTS exports_audit (
242
198
  id INTEGER PRIMARY KEY AUTOINCREMENT,
243
199
  export_kind TEXT NOT NULL,
244
200
  mode TEXT NOT NULL,
@@ -247,10 +203,10 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
247
203
  row_count INTEGER NOT NULL,
248
204
  created_at TEXT NOT NULL
249
205
  )`,
250
- indexes: [],
251
- },
252
- 'trajectory.evolution_tasks': {
253
- ddl: `CREATE TABLE IF NOT EXISTS evolution_tasks (
206
+ indexes: [],
207
+ },
208
+ 'trajectory.evolution_tasks': {
209
+ ddl: `CREATE TABLE IF NOT EXISTS evolution_tasks (
254
210
  id INTEGER PRIMARY KEY AUTOINCREMENT,
255
211
  task_id TEXT UNIQUE NOT NULL,
256
212
  trace_id TEXT NOT NULL,
@@ -271,14 +227,14 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
271
227
  created_at TEXT NOT NULL,
272
228
  updated_at TEXT NOT NULL
273
229
  )`,
274
- indexes: [
275
- `CREATE INDEX IF NOT EXISTS idx_evolution_tasks_trace_id ON evolution_tasks(trace_id)`,
276
- `CREATE INDEX IF NOT EXISTS idx_evolution_tasks_status ON evolution_tasks(status)`,
277
- `CREATE INDEX IF NOT EXISTS idx_evolution_tasks_created_at ON evolution_tasks(created_at)`,
278
- ],
279
- },
280
- 'trajectory.evolution_events': {
281
- ddl: `CREATE TABLE IF NOT EXISTS evolution_events (
230
+ indexes: [
231
+ `CREATE INDEX IF NOT EXISTS idx_evolution_tasks_trace_id ON evolution_tasks(trace_id)`,
232
+ `CREATE INDEX IF NOT EXISTS idx_evolution_tasks_status ON evolution_tasks(status)`,
233
+ `CREATE INDEX IF NOT EXISTS idx_evolution_tasks_created_at ON evolution_tasks(created_at)`,
234
+ ],
235
+ },
236
+ 'trajectory.evolution_events': {
237
+ ddl: `CREATE TABLE IF NOT EXISTS evolution_events (
282
238
  id INTEGER PRIMARY KEY AUTOINCREMENT,
283
239
  trace_id TEXT NOT NULL,
284
240
  task_id TEXT,
@@ -289,13 +245,13 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
289
245
  metadata_json TEXT,
290
246
  created_at TEXT NOT NULL
291
247
  )`,
292
- indexes: [
293
- `CREATE INDEX IF NOT EXISTS idx_evolution_events_trace_id ON evolution_events(trace_id)`,
294
- `CREATE INDEX IF NOT EXISTS idx_evolution_events_created_at ON evolution_events(created_at)`,
295
- ],
296
- },
297
- 'trajectory.thinking_model_events': {
298
- ddl: `CREATE TABLE IF NOT EXISTS thinking_model_events (
248
+ indexes: [
249
+ `CREATE INDEX IF NOT EXISTS idx_evolution_events_trace_id ON evolution_events(trace_id)`,
250
+ `CREATE INDEX IF NOT EXISTS idx_evolution_events_created_at ON evolution_events(created_at)`,
251
+ ],
252
+ },
253
+ 'trajectory.thinking_model_events': {
254
+ ddl: `CREATE TABLE IF NOT EXISTS thinking_model_events (
299
255
  id INTEGER PRIMARY KEY AUTOINCREMENT,
300
256
  session_id TEXT NOT NULL,
301
257
  run_id TEXT NOT NULL,
@@ -309,43 +265,43 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
309
265
  trigger_excerpt TEXT NOT NULL,
310
266
  created_at TEXT NOT NULL
311
267
  )`,
312
- indexes: [
313
- `CREATE INDEX IF NOT EXISTS idx_thinking_model_events_model_created ON thinking_model_events(model_id, created_at)`,
314
- `CREATE INDEX IF NOT EXISTS idx_thinking_model_events_session_created ON thinking_model_events(session_id, created_at)`,
315
- `CREATE INDEX IF NOT EXISTS idx_thinking_model_events_assistant_turn ON thinking_model_events(assistant_turn_id)`,
316
- `CREATE INDEX IF NOT EXISTS idx_thinking_model_events_run_id ON thinking_model_events(run_id)`,
317
- ],
318
- },
319
- 'trajectory.gfi_state': {
320
- ddl: `CREATE TABLE IF NOT EXISTS gfi_state (
268
+ indexes: [
269
+ `CREATE INDEX IF NOT EXISTS idx_thinking_model_events_model_created ON thinking_model_events(model_id, created_at)`,
270
+ `CREATE INDEX IF NOT EXISTS idx_thinking_model_events_session_created ON thinking_model_events(session_id, created_at)`,
271
+ `CREATE INDEX IF NOT EXISTS idx_thinking_model_events_assistant_turn ON thinking_model_events(assistant_turn_id)`,
272
+ `CREATE INDEX IF NOT EXISTS idx_thinking_model_events_run_id ON thinking_model_events(run_id)`,
273
+ ],
274
+ },
275
+ 'trajectory.gfi_state': {
276
+ ddl: `CREATE TABLE IF NOT EXISTS gfi_state (
321
277
  id INTEGER PRIMARY KEY CHECK (id = 1),
322
278
  current_gfi REAL NOT NULL DEFAULT 0,
323
279
  daily_gfi_peak REAL NOT NULL DEFAULT 0,
324
280
  gfi_date TEXT NOT NULL DEFAULT ''
325
281
  )`,
326
- indexes: [],
327
- },
328
- },
329
- views: {
330
- 'trajectory.v_error_clusters': {
331
- ddl: `CREATE VIEW IF NOT EXISTS v_error_clusters AS
282
+ indexes: [],
283
+ },
284
+ },
285
+ views: {
286
+ 'trajectory.v_error_clusters': {
287
+ ddl: `CREATE VIEW IF NOT EXISTS v_error_clusters AS
332
288
  SELECT tool_name, COALESCE(error_type, 'unknown') AS error_type, COUNT(*) AS occurrences
333
289
  FROM tool_calls WHERE outcome = 'failure'
334
290
  GROUP BY tool_name, COALESCE(error_type, 'unknown')
335
291
  ORDER BY occurrences DESC`,
336
- },
337
- 'trajectory.v_principle_effectiveness': {
338
- ddl: `CREATE VIEW IF NOT EXISTS v_principle_effectiveness AS
292
+ },
293
+ 'trajectory.v_principle_effectiveness': {
294
+ ddl: `CREATE VIEW IF NOT EXISTS v_principle_effectiveness AS
339
295
  SELECT event_type, COUNT(*) AS total FROM principle_events
340
296
  GROUP BY event_type ORDER BY total DESC`,
341
- },
342
- 'trajectory.v_sample_queue': {
343
- ddl: `CREATE VIEW IF NOT EXISTS v_sample_queue AS
297
+ },
298
+ 'trajectory.v_sample_queue': {
299
+ ddl: `CREATE VIEW IF NOT EXISTS v_sample_queue AS
344
300
  SELECT review_status, COUNT(*) AS total FROM correction_samples
345
301
  GROUP BY review_status`,
346
- },
347
- 'trajectory.v_daily_metrics': {
348
- ddl: `CREATE VIEW IF NOT EXISTS v_daily_metrics AS
302
+ },
303
+ 'trajectory.v_daily_metrics': {
304
+ ddl: `CREATE VIEW IF NOT EXISTS v_daily_metrics AS
349
305
  WITH tool_daily AS (
350
306
  SELECT date(created_at) AS day, COUNT(*) AS toolCalls,
351
307
  SUM(CASE WHEN outcome = 'failure' THEN 1 ELSE 0 END) AS failures
@@ -375,9 +331,9 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
375
331
  FULL OUTER JOIN corrections_daily c ON COALESCE(t.day, p.day) = c.day
376
332
  FULL OUTER JOIN thinking_daily th ON COALESCE(COALESCE(t.day, p.day), c.day) = th.day
377
333
  ORDER BY day ASC`,
378
- },
379
- 'trajectory.v_thinking_model_usage': {
380
- ddl: `CREATE VIEW IF NOT EXISTS v_thinking_model_usage AS
334
+ },
335
+ 'trajectory.v_thinking_model_usage': {
336
+ ddl: `CREATE VIEW IF NOT EXISTS v_thinking_model_usage AS
381
337
  SELECT
382
338
  model_id,
383
339
  COUNT(*) AS hits,
@@ -386,9 +342,9 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
386
342
  CAST(COUNT(DISTINCT session_id) AS REAL) /
387
343
  NULLIF((SELECT COUNT(DISTINCT session_id) FROM thinking_model_events), 0) AS coverageRate
388
344
  FROM thinking_model_events GROUP BY model_id`,
389
- },
390
- 'trajectory.v_thinking_model_effectiveness': {
391
- ddl: `CREATE VIEW IF NOT EXISTS v_thinking_model_effectiveness AS
345
+ },
346
+ 'trajectory.v_thinking_model_effectiveness': {
347
+ ddl: `CREATE VIEW IF NOT EXISTS v_thinking_model_effectiveness AS
392
348
  SELECT tme.model_id, tme.id AS event_id,
393
349
  COUNT(DISTINCT tc.id) AS toolCallsAfter,
394
350
  SUM(CASE WHEN tc.outcome = 'success' THEN 1 ELSE 0 END) AS successes,
@@ -398,47 +354,46 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
398
354
  LEFT JOIN tool_calls tc ON tc.session_id = tme.session_id AND tc.created_at > tme.created_at
399
355
  LEFT JOIN pain_events pe ON pe.session_id = tme.session_id AND pe.created_at > tme.created_at
400
356
  GROUP BY tme.model_id, tme.id`,
401
- },
402
- 'trajectory.v_thinking_model_scenarios': {
403
- ddl: `CREATE VIEW IF NOT EXISTS v_thinking_model_scenarios AS
357
+ },
358
+ 'trajectory.v_thinking_model_scenarios': {
359
+ ddl: `CREATE VIEW IF NOT EXISTS v_thinking_model_scenarios AS
404
360
  SELECT tme.model_id, json_each.value AS scenario, COUNT(*) AS hits
405
361
  FROM thinking_model_events tme, json_each(tme.scenario_json)
406
362
  GROUP BY tme.model_id, json_each.value`,
407
- },
408
- 'trajectory.v_thinking_model_daily_trend': {
409
- ddl: `CREATE VIEW IF NOT EXISTS v_thinking_model_daily_trend AS
363
+ },
364
+ 'trajectory.v_thinking_model_daily_trend': {
365
+ ddl: `CREATE VIEW IF NOT EXISTS v_thinking_model_daily_trend AS
410
366
  SELECT date(created_at) AS day, model_id, COUNT(*) AS hits
411
367
  FROM thinking_model_events GROUP BY date(created_at), model_id ORDER BY day ASC`,
412
- },
413
- },
414
- fts: {
415
- 'trajectory.pain_events_fts': {
416
- ddl: `CREATE VIRTUAL TABLE IF NOT EXISTS pain_events_fts USING fts5(
368
+ },
369
+ },
370
+ fts: {
371
+ 'trajectory.pain_events_fts': {
372
+ ddl: `CREATE VIRTUAL TABLE IF NOT EXISTS pain_events_fts USING fts5(
417
373
  text,
418
374
  pain_event_id UNINDEXED,
419
375
  tokenize='porter unicode61'
420
376
  )`,
421
- },
377
+ },
378
+ },
422
379
  },
423
- },
424
-
425
- // ========================================================================
426
- // central.db — Aggregated multi-workspace data
427
- // ========================================================================
428
- 'central.db': {
429
- tables: {
430
- 'central.schema_version': {
431
- ddl: `CREATE TABLE IF NOT EXISTS schema_version (version INTEGER NOT NULL)`,
432
- },
433
- 'central.workspaces': {
434
- ddl: `CREATE TABLE IF NOT EXISTS workspaces (
380
+ // ========================================================================
381
+ // central.db — Aggregated multi-workspace data
382
+ // ========================================================================
383
+ 'central.db': {
384
+ tables: {
385
+ 'central.schema_version': {
386
+ ddl: `CREATE TABLE IF NOT EXISTS schema_version (version INTEGER NOT NULL)`,
387
+ },
388
+ 'central.workspaces': {
389
+ ddl: `CREATE TABLE IF NOT EXISTS workspaces (
435
390
  name TEXT PRIMARY KEY,
436
391
  path TEXT NOT NULL,
437
392
  last_sync TEXT
438
393
  )`,
439
- },
440
- 'central.workspace_config': {
441
- ddl: `CREATE TABLE IF NOT EXISTS workspace_config (
394
+ },
395
+ 'central.workspace_config': {
396
+ ddl: `CREATE TABLE IF NOT EXISTS workspace_config (
442
397
  workspace_name TEXT PRIMARY KEY,
443
398
  enabled INTEGER NOT NULL DEFAULT 1,
444
399
  display_name TEXT,
@@ -446,27 +401,27 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
446
401
  created_at TEXT NOT NULL DEFAULT (datetime('now')),
447
402
  updated_at TEXT NOT NULL DEFAULT (datetime('now'))
448
403
  )`,
449
- },
450
- 'central.global_config': {
451
- ddl: `CREATE TABLE IF NOT EXISTS global_config (
404
+ },
405
+ 'central.global_config': {
406
+ ddl: `CREATE TABLE IF NOT EXISTS global_config (
452
407
  key TEXT PRIMARY KEY,
453
408
  value TEXT NOT NULL,
454
409
  updated_at TEXT NOT NULL DEFAULT (datetime('now'))
455
410
  )`,
456
- },
457
- 'central.aggregated_sessions': {
458
- ddl: `CREATE TABLE IF NOT EXISTS aggregated_sessions (
411
+ },
412
+ 'central.aggregated_sessions': {
413
+ ddl: `CREATE TABLE IF NOT EXISTS aggregated_sessions (
459
414
  session_id TEXT PRIMARY KEY,
460
415
  workspace TEXT NOT NULL,
461
416
  started_at TEXT NOT NULL,
462
417
  updated_at TEXT NOT NULL
463
418
  )`,
464
- indexes: [
465
- `CREATE INDEX IF NOT EXISTS idx_sessions_workspace ON aggregated_sessions(workspace)`,
466
- ],
467
- },
468
- 'central.aggregated_tool_calls': {
469
- ddl: `CREATE TABLE IF NOT EXISTS aggregated_tool_calls (
419
+ indexes: [
420
+ `CREATE INDEX IF NOT EXISTS idx_sessions_workspace ON aggregated_sessions(workspace)`,
421
+ ],
422
+ },
423
+ 'central.aggregated_tool_calls': {
424
+ ddl: `CREATE TABLE IF NOT EXISTS aggregated_tool_calls (
470
425
  id INTEGER PRIMARY KEY AUTOINCREMENT,
471
426
  workspace TEXT NOT NULL,
472
427
  session_id TEXT NOT NULL,
@@ -477,14 +432,14 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
477
432
  error_message TEXT,
478
433
  created_at TEXT NOT NULL
479
434
  )`,
480
- indexes: [
481
- `CREATE INDEX IF NOT EXISTS idx_tool_calls_workspace ON aggregated_tool_calls(workspace)`,
482
- `CREATE INDEX IF NOT EXISTS idx_tool_calls_outcome ON aggregated_tool_calls(outcome)`,
483
- `CREATE INDEX IF NOT EXISTS idx_tool_calls_created ON aggregated_tool_calls(created_at)`,
484
- ],
485
- },
486
- 'central.aggregated_pain_events': {
487
- ddl: `CREATE TABLE IF NOT EXISTS aggregated_pain_events (
435
+ indexes: [
436
+ `CREATE INDEX IF NOT EXISTS idx_tool_calls_workspace ON aggregated_tool_calls(workspace)`,
437
+ `CREATE INDEX IF NOT EXISTS idx_tool_calls_outcome ON aggregated_tool_calls(outcome)`,
438
+ `CREATE INDEX IF NOT EXISTS idx_tool_calls_created ON aggregated_tool_calls(created_at)`,
439
+ ],
440
+ },
441
+ 'central.aggregated_pain_events': {
442
+ ddl: `CREATE TABLE IF NOT EXISTS aggregated_pain_events (
488
443
  id INTEGER PRIMARY KEY AUTOINCREMENT,
489
444
  workspace TEXT NOT NULL,
490
445
  session_id TEXT NOT NULL,
@@ -493,33 +448,33 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
493
448
  reason TEXT,
494
449
  created_at TEXT NOT NULL
495
450
  )`,
496
- indexes: [
497
- `CREATE INDEX IF NOT EXISTS idx_pain_workspace ON aggregated_pain_events(workspace)`,
498
- `CREATE INDEX IF NOT EXISTS idx_pain_created ON aggregated_pain_events(created_at)`,
499
- ],
500
- },
501
- 'central.aggregated_user_corrections': {
502
- ddl: `CREATE TABLE IF NOT EXISTS aggregated_user_corrections (
451
+ indexes: [
452
+ `CREATE INDEX IF NOT EXISTS idx_pain_workspace ON aggregated_pain_events(workspace)`,
453
+ `CREATE INDEX IF NOT EXISTS idx_pain_created ON aggregated_pain_events(created_at)`,
454
+ ],
455
+ },
456
+ 'central.aggregated_user_corrections': {
457
+ ddl: `CREATE TABLE IF NOT EXISTS aggregated_user_corrections (
503
458
  id INTEGER PRIMARY KEY AUTOINCREMENT,
504
459
  workspace TEXT NOT NULL,
505
460
  session_id TEXT NOT NULL,
506
461
  correction_cue TEXT,
507
462
  created_at TEXT NOT NULL
508
463
  )`,
509
- indexes: [],
510
- },
511
- 'central.aggregated_principle_events': {
512
- ddl: `CREATE TABLE IF NOT EXISTS aggregated_principle_events (
464
+ indexes: [],
465
+ },
466
+ 'central.aggregated_principle_events': {
467
+ ddl: `CREATE TABLE IF NOT EXISTS aggregated_principle_events (
513
468
  id INTEGER PRIMARY KEY AUTOINCREMENT,
514
469
  workspace TEXT NOT NULL,
515
470
  principle_id TEXT,
516
471
  event_type TEXT NOT NULL,
517
472
  created_at TEXT NOT NULL
518
473
  )`,
519
- indexes: [],
520
- },
521
- 'central.aggregated_thinking_events': {
522
- ddl: `CREATE TABLE IF NOT EXISTS aggregated_thinking_events (
474
+ indexes: [],
475
+ },
476
+ 'central.aggregated_thinking_events': {
477
+ ddl: `CREATE TABLE IF NOT EXISTS aggregated_thinking_events (
523
478
  id INTEGER PRIMARY KEY AUTOINCREMENT,
524
479
  workspace TEXT NOT NULL,
525
480
  session_id TEXT NOT NULL,
@@ -527,13 +482,13 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
527
482
  matched_pattern TEXT NOT NULL,
528
483
  created_at TEXT NOT NULL
529
484
  )`,
530
- indexes: [
531
- `CREATE INDEX IF NOT EXISTS idx_thinking_workspace ON aggregated_thinking_events(workspace)`,
532
- `CREATE INDEX IF NOT EXISTS idx_thinking_model ON aggregated_thinking_events(model_id)`,
533
- ],
534
- },
535
- 'central.aggregated_correction_samples': {
536
- ddl: `CREATE TABLE IF NOT EXISTS aggregated_correction_samples (
485
+ indexes: [
486
+ `CREATE INDEX IF NOT EXISTS idx_thinking_workspace ON aggregated_thinking_events(workspace)`,
487
+ `CREATE INDEX IF NOT EXISTS idx_thinking_model ON aggregated_thinking_events(model_id)`,
488
+ ],
489
+ },
490
+ 'central.aggregated_correction_samples': {
491
+ ddl: `CREATE TABLE IF NOT EXISTS aggregated_correction_samples (
537
492
  sample_id TEXT PRIMARY KEY,
538
493
  workspace TEXT NOT NULL,
539
494
  session_id TEXT NOT NULL,
@@ -542,12 +497,12 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
542
497
  review_status TEXT,
543
498
  created_at TEXT NOT NULL
544
499
  )`,
545
- indexes: [
546
- `CREATE INDEX IF NOT EXISTS idx_corrections_workspace ON aggregated_correction_samples(workspace)`,
547
- ],
548
- },
549
- 'central.aggregated_task_outcomes': {
550
- ddl: `CREATE TABLE IF NOT EXISTS aggregated_task_outcomes (
500
+ indexes: [
501
+ `CREATE INDEX IF NOT EXISTS idx_corrections_workspace ON aggregated_correction_samples(workspace)`,
502
+ ],
503
+ },
504
+ 'central.aggregated_task_outcomes': {
505
+ ddl: `CREATE TABLE IF NOT EXISTS aggregated_task_outcomes (
551
506
  id INTEGER PRIMARY KEY AUTOINCREMENT,
552
507
  workspace TEXT NOT NULL,
553
508
  session_id TEXT NOT NULL,
@@ -555,32 +510,31 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
555
510
  outcome TEXT NOT NULL,
556
511
  created_at TEXT NOT NULL
557
512
  )`,
558
- indexes: [],
559
- },
560
- 'central.sync_log': {
561
- ddl: `CREATE TABLE IF NOT EXISTS sync_log (
513
+ indexes: [],
514
+ },
515
+ 'central.sync_log': {
516
+ ddl: `CREATE TABLE IF NOT EXISTS sync_log (
562
517
  id INTEGER PRIMARY KEY AUTOINCREMENT,
563
518
  workspace TEXT NOT NULL,
564
519
  synced_at TEXT NOT NULL,
565
520
  records_synced INTEGER NOT NULL
566
521
  )`,
567
- indexes: [],
568
- },
522
+ indexes: [],
523
+ },
524
+ },
525
+ views: {},
526
+ fts: {},
569
527
  },
570
- views: {},
571
- fts: {},
572
- },
573
-
574
- // ========================================================================
575
- // workflow.db — Subagent workflow tracking
576
- // ========================================================================
577
- 'workflow.db': {
578
- tables: {
579
- 'workflow.schema_version': {
580
- ddl: `CREATE TABLE IF NOT EXISTS schema_version (version INTEGER NOT NULL)`,
581
- },
582
- 'workflow.subagent_workflows': {
583
- ddl: `CREATE TABLE IF NOT EXISTS subagent_workflows (
528
+ // ========================================================================
529
+ // workflow.db — Subagent workflow tracking
530
+ // ========================================================================
531
+ 'workflow.db': {
532
+ tables: {
533
+ 'workflow.schema_version': {
534
+ ddl: `CREATE TABLE IF NOT EXISTS schema_version (version INTEGER NOT NULL)`,
535
+ },
536
+ 'workflow.subagent_workflows': {
537
+ ddl: `CREATE TABLE IF NOT EXISTS subagent_workflows (
584
538
  workflow_id TEXT PRIMARY KEY,
585
539
  workflow_type TEXT NOT NULL,
586
540
  transport TEXT NOT NULL,
@@ -595,15 +549,15 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
595
549
  duration_ms INTEGER,
596
550
  metadata_json TEXT NOT NULL DEFAULT '{}'
597
551
  )`,
598
- indexes: [
599
- `CREATE INDEX IF NOT EXISTS idx_workflows_parent_session ON subagent_workflows(parent_session_id)`,
600
- `CREATE INDEX IF NOT EXISTS idx_workflows_child_session ON subagent_workflows(child_session_key)`,
601
- `CREATE INDEX IF NOT EXISTS idx_workflows_state ON subagent_workflows(state)`,
602
- `CREATE INDEX IF NOT EXISTS idx_workflows_type ON subagent_workflows(workflow_type)`,
603
- ],
604
- },
605
- 'workflow.subagent_workflow_events': {
606
- ddl: `CREATE TABLE IF NOT EXISTS subagent_workflow_events (
552
+ indexes: [
553
+ `CREATE INDEX IF NOT EXISTS idx_workflows_parent_session ON subagent_workflows(parent_session_id)`,
554
+ `CREATE INDEX IF NOT EXISTS idx_workflows_child_session ON subagent_workflows(child_session_key)`,
555
+ `CREATE INDEX IF NOT EXISTS idx_workflows_state ON subagent_workflows(state)`,
556
+ `CREATE INDEX IF NOT EXISTS idx_workflows_type ON subagent_workflows(workflow_type)`,
557
+ ],
558
+ },
559
+ 'workflow.subagent_workflow_events': {
560
+ ddl: `CREATE TABLE IF NOT EXISTS subagent_workflow_events (
607
561
  workflow_id TEXT NOT NULL,
608
562
  event_type TEXT NOT NULL,
609
563
  from_state TEXT,
@@ -613,12 +567,12 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
613
567
  created_at INTEGER NOT NULL,
614
568
  FOREIGN KEY (workflow_id) REFERENCES subagent_workflows(workflow_id) ON DELETE CASCADE
615
569
  )`,
616
- indexes: [
617
- `CREATE INDEX IF NOT EXISTS idx_events_workflow ON subagent_workflow_events(workflow_id)`,
618
- ],
619
- },
620
- 'workflow.subagent_workflow_stage_outputs': {
621
- ddl: `CREATE TABLE IF NOT EXISTS subagent_workflow_stage_outputs (
570
+ indexes: [
571
+ `CREATE INDEX IF NOT EXISTS idx_events_workflow ON subagent_workflow_events(workflow_id)`,
572
+ ],
573
+ },
574
+ 'workflow.subagent_workflow_stage_outputs': {
575
+ ddl: `CREATE TABLE IF NOT EXISTS subagent_workflow_stage_outputs (
622
576
  workflow_id TEXT NOT NULL,
623
577
  stage TEXT NOT NULL CHECK (stage IN ('dreamer', 'philosopher')),
624
578
  output_json TEXT NOT NULL,
@@ -626,25 +580,22 @@ export const SCHEMAS: Record<DbType, SchemaCatalog> = {
626
580
  created_at INTEGER NOT NULL,
627
581
  FOREIGN KEY (workflow_id) REFERENCES subagent_workflows(workflow_id) ON DELETE CASCADE
628
582
  )`,
629
- indexes: [
630
- `CREATE INDEX IF NOT EXISTS idx_stage_outputs_workflow ON subagent_workflow_stage_outputs(workflow_id)`,
631
- `CREATE UNIQUE INDEX IF NOT EXISTS idx_stage_outputs_idempotency ON subagent_workflow_stage_outputs(idempotency_key)`,
632
- ],
633
- },
583
+ indexes: [
584
+ `CREATE INDEX IF NOT EXISTS idx_stage_outputs_workflow ON subagent_workflow_stage_outputs(workflow_id)`,
585
+ `CREATE UNIQUE INDEX IF NOT EXISTS idx_stage_outputs_idempotency ON subagent_workflow_stage_outputs(idempotency_key)`,
586
+ ],
587
+ },
588
+ },
589
+ views: {},
590
+ fts: {},
634
591
  },
635
- views: {},
636
- fts: {},
637
- },
638
592
  };
639
-
640
593
  // ---------------------------------------------------------------------------
641
594
  // Helpers
642
595
  // ---------------------------------------------------------------------------
643
-
644
596
  /** Get all schema definitions for a specific database */
645
- export function getCatalog(db: DbType): SchemaCatalog {
646
- return SCHEMAS[db];
597
+ export function getCatalog(db) {
598
+ return SCHEMAS[db];
647
599
  }
648
-
649
600
  /** Get all database types */
650
- export const DB_TYPES: DbType[] = ['trajectory.db', 'central.db', 'workflow.db'];
601
+ export const DB_TYPES = ['trajectory.db', 'central.db', 'workflow.db'];