@cleocode/core 2026.4.13 → 2026.4.14

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 (909) hide show
  1. package/dist/index.js +69233 -175
  2. package/dist/index.js.map +7 -1
  3. package/dist/init.d.ts.map +1 -1
  4. package/dist/internal.d.ts +16 -5
  5. package/dist/internal.d.ts.map +1 -1
  6. package/dist/memory/brain-embedding.d.ts +1 -1
  7. package/dist/memory/embedding-local.d.ts +8 -3
  8. package/dist/memory/embedding-local.d.ts.map +1 -1
  9. package/dist/memory/embedding-worker.d.ts +1 -1
  10. package/dist/memory/learnings.d.ts +2 -2
  11. package/dist/memory/patterns.d.ts +6 -6
  12. package/dist/store/agent-registry-accessor.d.ts +54 -1
  13. package/dist/store/agent-registry-accessor.d.ts.map +1 -1
  14. package/dist/store/backup-crypto.d.ts +89 -0
  15. package/dist/store/backup-crypto.d.ts.map +1 -0
  16. package/dist/store/backup-pack.d.ts +91 -0
  17. package/dist/store/backup-pack.d.ts.map +1 -0
  18. package/dist/store/backup-unpack.d.ts +140 -0
  19. package/dist/store/backup-unpack.d.ts.map +1 -0
  20. package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -1
  21. package/dist/store/regenerators.d.ts +126 -0
  22. package/dist/store/regenerators.d.ts.map +1 -0
  23. package/dist/store/restore-conflict-report.d.ts +118 -0
  24. package/dist/store/restore-conflict-report.d.ts.map +1 -0
  25. package/dist/store/restore-json-merge.d.ts +187 -0
  26. package/dist/store/restore-json-merge.d.ts.map +1 -0
  27. package/dist/store/sqlite-backup.d.ts +60 -5
  28. package/dist/store/sqlite-backup.d.ts.map +1 -1
  29. package/dist/store/t310-readiness.d.ts +83 -0
  30. package/dist/store/t310-readiness.d.ts.map +1 -0
  31. package/package.json +9 -9
  32. package/src/__tests__/cli-parity.test.ts +19 -14
  33. package/src/__tests__/human-output.test.ts +13 -11
  34. package/src/init.ts +18 -8
  35. package/src/internal.ts +4 -1
  36. package/src/memory/__tests__/brain-automation.test.ts +2 -2
  37. package/src/memory/brain-embedding.ts +1 -1
  38. package/src/memory/embedding-local.ts +10 -5
  39. package/src/memory/embedding-worker.ts +1 -1
  40. package/src/skills/__tests__/discovery.test.ts +22 -7
  41. package/src/store/__tests__/performance-safety.test.ts +11 -5
  42. package/src/store/migrate-signaldock-to-conduit.ts +14 -7
  43. package/src/validation/protocols/_shared.ts +1 -1
  44. package/dist/adapters/adapter-registry.js +0 -64
  45. package/dist/adapters/adapter-registry.js.map +0 -1
  46. package/dist/adapters/discovery.js +0 -83
  47. package/dist/adapters/discovery.js.map +0 -1
  48. package/dist/adapters/index.js +0 -9
  49. package/dist/adapters/index.js.map +0 -1
  50. package/dist/adapters/manager.js +0 -260
  51. package/dist/adapters/manager.js.map +0 -1
  52. package/dist/admin/export-tasks.js +0 -171
  53. package/dist/admin/export-tasks.js.map +0 -1
  54. package/dist/admin/export.js +0 -103
  55. package/dist/admin/export.js.map +0 -1
  56. package/dist/admin/help.js +0 -106
  57. package/dist/admin/help.js.map +0 -1
  58. package/dist/admin/import-tasks.js +0 -182
  59. package/dist/admin/import-tasks.js.map +0 -1
  60. package/dist/admin/import.js +0 -129
  61. package/dist/admin/import.js.map +0 -1
  62. package/dist/admin/index.js +0 -13
  63. package/dist/admin/index.js.map +0 -1
  64. package/dist/adrs/find.js +0 -134
  65. package/dist/adrs/find.js.map +0 -1
  66. package/dist/adrs/index.js +0 -15
  67. package/dist/adrs/index.js.map +0 -1
  68. package/dist/adrs/link-pipeline.js +0 -160
  69. package/dist/adrs/link-pipeline.js.map +0 -1
  70. package/dist/adrs/list.js +0 -43
  71. package/dist/adrs/list.js.map +0 -1
  72. package/dist/adrs/parse.js +0 -51
  73. package/dist/adrs/parse.js.map +0 -1
  74. package/dist/adrs/show.js +0 -22
  75. package/dist/adrs/show.js.map +0 -1
  76. package/dist/adrs/sync.js +0 -188
  77. package/dist/adrs/sync.js.map +0 -1
  78. package/dist/adrs/types.js +0 -9
  79. package/dist/adrs/types.js.map +0 -1
  80. package/dist/adrs/validate.js +0 -57
  81. package/dist/adrs/validate.js.map +0 -1
  82. package/dist/agents/agent-registry.js +0 -288
  83. package/dist/agents/agent-registry.js.map +0 -1
  84. package/dist/agents/agent-schema.js +0 -82
  85. package/dist/agents/agent-schema.js.map +0 -1
  86. package/dist/agents/capacity.js +0 -116
  87. package/dist/agents/capacity.js.map +0 -1
  88. package/dist/agents/execution-learning.js +0 -474
  89. package/dist/agents/execution-learning.js.map +0 -1
  90. package/dist/agents/health-monitor.js +0 -217
  91. package/dist/agents/health-monitor.js.map +0 -1
  92. package/dist/agents/index.js +0 -29
  93. package/dist/agents/index.js.map +0 -1
  94. package/dist/agents/registry.js +0 -314
  95. package/dist/agents/registry.js.map +0 -1
  96. package/dist/agents/retry.js +0 -215
  97. package/dist/agents/retry.js.map +0 -1
  98. package/dist/audit-prune.js +0 -94
  99. package/dist/audit-prune.js.map +0 -1
  100. package/dist/audit.js +0 -68
  101. package/dist/audit.js.map +0 -1
  102. package/dist/backfill/index.js +0 -229
  103. package/dist/backfill/index.js.map +0 -1
  104. package/dist/bootstrap.js +0 -344
  105. package/dist/bootstrap.js.map +0 -1
  106. package/dist/caamp/adapter.js +0 -259
  107. package/dist/caamp/adapter.js.map +0 -1
  108. package/dist/caamp/capability-check.js +0 -38
  109. package/dist/caamp/capability-check.js.map +0 -1
  110. package/dist/caamp/index.js +0 -21
  111. package/dist/caamp/index.js.map +0 -1
  112. package/dist/caamp-init.js +0 -16
  113. package/dist/caamp-init.js.map +0 -1
  114. package/dist/cleo.js +0 -322
  115. package/dist/cleo.js.map +0 -1
  116. package/dist/code/index.js +0 -10
  117. package/dist/code/index.js.map +0 -1
  118. package/dist/code/outline.js +0 -165
  119. package/dist/code/outline.js.map +0 -1
  120. package/dist/code/parser.js +0 -295
  121. package/dist/code/parser.js.map +0 -1
  122. package/dist/code/search.js +0 -135
  123. package/dist/code/search.js.map +0 -1
  124. package/dist/code/unfold.js +0 -155
  125. package/dist/code/unfold.js.map +0 -1
  126. package/dist/codebase-map/analyzers/architecture.js +0 -129
  127. package/dist/codebase-map/analyzers/architecture.js.map +0 -1
  128. package/dist/codebase-map/analyzers/concerns.js +0 -122
  129. package/dist/codebase-map/analyzers/concerns.js.map +0 -1
  130. package/dist/codebase-map/analyzers/conventions.js +0 -149
  131. package/dist/codebase-map/analyzers/conventions.js.map +0 -1
  132. package/dist/codebase-map/analyzers/integrations.js +0 -108
  133. package/dist/codebase-map/analyzers/integrations.js.map +0 -1
  134. package/dist/codebase-map/analyzers/stack.js +0 -117
  135. package/dist/codebase-map/analyzers/stack.js.map +0 -1
  136. package/dist/codebase-map/analyzers/structure.js +0 -137
  137. package/dist/codebase-map/analyzers/structure.js.map +0 -1
  138. package/dist/codebase-map/analyzers/testing.js +0 -118
  139. package/dist/codebase-map/analyzers/testing.js.map +0 -1
  140. package/dist/codebase-map/index.js +0 -57
  141. package/dist/codebase-map/index.js.map +0 -1
  142. package/dist/codebase-map/store.js +0 -122
  143. package/dist/codebase-map/store.js.map +0 -1
  144. package/dist/codebase-map/summary.js +0 -152
  145. package/dist/codebase-map/summary.js.map +0 -1
  146. package/dist/compliance/index.js +0 -288
  147. package/dist/compliance/index.js.map +0 -1
  148. package/dist/compliance/protocol-enforcement.js +0 -332
  149. package/dist/compliance/protocol-enforcement.js.map +0 -1
  150. package/dist/compliance/protocol-rules.js +0 -786
  151. package/dist/compliance/protocol-rules.js.map +0 -1
  152. package/dist/compliance/protocol-types.js +0 -79
  153. package/dist/compliance/protocol-types.js.map +0 -1
  154. package/dist/compliance/store.js +0 -53
  155. package/dist/compliance/store.js.map +0 -1
  156. package/dist/conduit/conduit-client.js +0 -107
  157. package/dist/conduit/conduit-client.js.map +0 -1
  158. package/dist/conduit/factory.js +0 -52
  159. package/dist/conduit/factory.js.map +0 -1
  160. package/dist/conduit/http-transport.js +0 -155
  161. package/dist/conduit/http-transport.js.map +0 -1
  162. package/dist/conduit/index.js +0 -15
  163. package/dist/conduit/index.js.map +0 -1
  164. package/dist/conduit/local-transport.js +0 -255
  165. package/dist/conduit/local-transport.js.map +0 -1
  166. package/dist/conduit/sse-transport.js +0 -299
  167. package/dist/conduit/sse-transport.js.map +0 -1
  168. package/dist/config/build-config.js +0 -29
  169. package/dist/config/build-config.js.map +0 -1
  170. package/dist/config.js +0 -400
  171. package/dist/config.js.map +0 -1
  172. package/dist/constants.js +0 -18
  173. package/dist/constants.js.map +0 -1
  174. package/dist/context/index.js +0 -137
  175. package/dist/context/index.js.map +0 -1
  176. package/dist/crypto/credentials.js +0 -191
  177. package/dist/crypto/credentials.js.map +0 -1
  178. package/dist/discovery.js +0 -182
  179. package/dist/discovery.js.map +0 -1
  180. package/dist/engine-result.js +0 -12
  181. package/dist/engine-result.js.map +0 -1
  182. package/dist/error-catalog.js +0 -404
  183. package/dist/error-catalog.js.map +0 -1
  184. package/dist/error-registry.js +0 -393
  185. package/dist/error-registry.js.map +0 -1
  186. package/dist/errors.js +0 -173
  187. package/dist/errors.js.map +0 -1
  188. package/dist/hooks/handlers/agent-hooks.js +0 -106
  189. package/dist/hooks/handlers/agent-hooks.js.map +0 -1
  190. package/dist/hooks/handlers/context-hooks.js +0 -111
  191. package/dist/hooks/handlers/context-hooks.js.map +0 -1
  192. package/dist/hooks/handlers/error-hooks.js +0 -52
  193. package/dist/hooks/handlers/error-hooks.js.map +0 -1
  194. package/dist/hooks/handlers/file-hooks.js +0 -104
  195. package/dist/hooks/handlers/file-hooks.js.map +0 -1
  196. package/dist/hooks/handlers/handler-helpers.js +0 -61
  197. package/dist/hooks/handlers/handler-helpers.js.map +0 -1
  198. package/dist/hooks/handlers/index.js +0 -28
  199. package/dist/hooks/handlers/index.js.map +0 -1
  200. package/dist/hooks/handlers/memory-bridge-refresh.js +0 -42
  201. package/dist/hooks/handlers/memory-bridge-refresh.js.map +0 -1
  202. package/dist/hooks/handlers/notification-hooks.js +0 -62
  203. package/dist/hooks/handlers/notification-hooks.js.map +0 -1
  204. package/dist/hooks/handlers/session-hooks.js +0 -142
  205. package/dist/hooks/handlers/session-hooks.js.map +0 -1
  206. package/dist/hooks/handlers/task-hooks.js +0 -65
  207. package/dist/hooks/handlers/task-hooks.js.map +0 -1
  208. package/dist/hooks/handlers/work-capture-hooks.js +0 -165
  209. package/dist/hooks/handlers/work-capture-hooks.js.map +0 -1
  210. package/dist/hooks/index.js +0 -13
  211. package/dist/hooks/index.js.map +0 -1
  212. package/dist/hooks/payload-schemas.js +0 -220
  213. package/dist/hooks/payload-schemas.js.map +0 -1
  214. package/dist/hooks/provider-hooks.js +0 -66
  215. package/dist/hooks/provider-hooks.js.map +0 -1
  216. package/dist/hooks/registry.js +0 -229
  217. package/dist/hooks/registry.js.map +0 -1
  218. package/dist/hooks/types.js +0 -66
  219. package/dist/hooks/types.js.map +0 -1
  220. package/dist/hooks.js +0 -136
  221. package/dist/hooks.js.map +0 -1
  222. package/dist/init.js +0 -851
  223. package/dist/init.js.map +0 -1
  224. package/dist/inject/index.js +0 -82
  225. package/dist/inject/index.js.map +0 -1
  226. package/dist/injection.js +0 -343
  227. package/dist/injection.js.map +0 -1
  228. package/dist/intelligence/adaptive-validation.js +0 -497
  229. package/dist/intelligence/adaptive-validation.js.map +0 -1
  230. package/dist/intelligence/impact.js +0 -675
  231. package/dist/intelligence/impact.js.map +0 -1
  232. package/dist/intelligence/index.js +0 -22
  233. package/dist/intelligence/index.js.map +0 -1
  234. package/dist/intelligence/patterns.js +0 -492
  235. package/dist/intelligence/patterns.js.map +0 -1
  236. package/dist/intelligence/prediction.js +0 -499
  237. package/dist/intelligence/prediction.js.map +0 -1
  238. package/dist/intelligence/types.js +0 -13
  239. package/dist/intelligence/types.js.map +0 -1
  240. package/dist/internal.js +0 -306
  241. package/dist/internal.js.map +0 -1
  242. package/dist/issue/create.js +0 -121
  243. package/dist/issue/create.js.map +0 -1
  244. package/dist/issue/diagnostics.js +0 -59
  245. package/dist/issue/diagnostics.js.map +0 -1
  246. package/dist/issue/index.js +0 -10
  247. package/dist/issue/index.js.map +0 -1
  248. package/dist/issue/template-parser.js +0 -267
  249. package/dist/issue/template-parser.js.map +0 -1
  250. package/dist/json-schema-validator.js +0 -76
  251. package/dist/json-schema-validator.js.map +0 -1
  252. package/dist/lib/index.js +0 -11
  253. package/dist/lib/index.js.map +0 -1
  254. package/dist/lib/retry.js +0 -152
  255. package/dist/lib/retry.js.map +0 -1
  256. package/dist/lib/tree-sitter-languages.js +0 -71
  257. package/dist/lib/tree-sitter-languages.js.map +0 -1
  258. package/dist/lifecycle/chain-composition.js +0 -152
  259. package/dist/lifecycle/chain-composition.js.map +0 -1
  260. package/dist/lifecycle/chain-store.js +0 -246
  261. package/dist/lifecycle/chain-store.js.map +0 -1
  262. package/dist/lifecycle/consolidate-rcasd.js +0 -352
  263. package/dist/lifecycle/consolidate-rcasd.js.map +0 -1
  264. package/dist/lifecycle/default-chain.js +0 -176
  265. package/dist/lifecycle/default-chain.js.map +0 -1
  266. package/dist/lifecycle/evidence.js +0 -180
  267. package/dist/lifecycle/evidence.js.map +0 -1
  268. package/dist/lifecycle/frontmatter.js +0 -363
  269. package/dist/lifecycle/frontmatter.js.map +0 -1
  270. package/dist/lifecycle/index.js +0 -756
  271. package/dist/lifecycle/index.js.map +0 -1
  272. package/dist/lifecycle/pipeline.js +0 -656
  273. package/dist/lifecycle/pipeline.js.map +0 -1
  274. package/dist/lifecycle/rcasd-index.js +0 -326
  275. package/dist/lifecycle/rcasd-index.js.map +0 -1
  276. package/dist/lifecycle/rcasd-paths.js +0 -220
  277. package/dist/lifecycle/rcasd-paths.js.map +0 -1
  278. package/dist/lifecycle/resume.js +0 -864
  279. package/dist/lifecycle/resume.js.map +0 -1
  280. package/dist/lifecycle/stage-artifacts.js +0 -94
  281. package/dist/lifecycle/stage-artifacts.js.map +0 -1
  282. package/dist/lifecycle/stage-guidance.js +0 -234
  283. package/dist/lifecycle/stage-guidance.js.map +0 -1
  284. package/dist/lifecycle/stages.js +0 -534
  285. package/dist/lifecycle/stages.js.map +0 -1
  286. package/dist/lifecycle/state-machine.js +0 -516
  287. package/dist/lifecycle/state-machine.js.map +0 -1
  288. package/dist/lifecycle/tessera-engine.js +0 -249
  289. package/dist/lifecycle/tessera-engine.js.map +0 -1
  290. package/dist/logger.js +0 -140
  291. package/dist/logger.js.map +0 -1
  292. package/dist/memory/auto-extract.js +0 -177
  293. package/dist/memory/auto-extract.js.map +0 -1
  294. package/dist/memory/brain-embedding.js +0 -66
  295. package/dist/memory/brain-embedding.js.map +0 -1
  296. package/dist/memory/brain-lifecycle.js +0 -298
  297. package/dist/memory/brain-lifecycle.js.map +0 -1
  298. package/dist/memory/brain-links.js +0 -161
  299. package/dist/memory/brain-links.js.map +0 -1
  300. package/dist/memory/brain-maintenance.js +0 -114
  301. package/dist/memory/brain-maintenance.js.map +0 -1
  302. package/dist/memory/brain-migration.js +0 -149
  303. package/dist/memory/brain-migration.js.map +0 -1
  304. package/dist/memory/brain-reasoning.js +0 -215
  305. package/dist/memory/brain-reasoning.js.map +0 -1
  306. package/dist/memory/brain-retrieval.js +0 -542
  307. package/dist/memory/brain-retrieval.js.map +0 -1
  308. package/dist/memory/brain-row-types.js +0 -10
  309. package/dist/memory/brain-row-types.js.map +0 -1
  310. package/dist/memory/brain-search.js +0 -519
  311. package/dist/memory/brain-search.js.map +0 -1
  312. package/dist/memory/brain-similarity.js +0 -145
  313. package/dist/memory/brain-similarity.js.map +0 -1
  314. package/dist/memory/claude-mem-migration.js +0 -277
  315. package/dist/memory/claude-mem-migration.js.map +0 -1
  316. package/dist/memory/decisions.js +0 -162
  317. package/dist/memory/decisions.js.map +0 -1
  318. package/dist/memory/embedding-local.js +0 -97
  319. package/dist/memory/embedding-local.js.map +0 -1
  320. package/dist/memory/embedding-queue.js +0 -271
  321. package/dist/memory/embedding-queue.js.map +0 -1
  322. package/dist/memory/embedding-worker.js +0 -58
  323. package/dist/memory/embedding-worker.js.map +0 -1
  324. package/dist/memory/engine-compat.js +0 -1397
  325. package/dist/memory/engine-compat.js.map +0 -1
  326. package/dist/memory/index.js +0 -1140
  327. package/dist/memory/index.js.map +0 -1
  328. package/dist/memory/learnings.js +0 -121
  329. package/dist/memory/learnings.js.map +0 -1
  330. package/dist/memory/memory-bridge.js +0 -370
  331. package/dist/memory/memory-bridge.js.map +0 -1
  332. package/dist/memory/patterns.js +0 -122
  333. package/dist/memory/patterns.js.map +0 -1
  334. package/dist/memory/pipeline-manifest-sqlite.js +0 -975
  335. package/dist/memory/pipeline-manifest-sqlite.js.map +0 -1
  336. package/dist/memory/session-memory.js +0 -331
  337. package/dist/memory/session-memory.js.map +0 -1
  338. package/dist/metrics/ab-test.js +0 -260
  339. package/dist/metrics/ab-test.js.map +0 -1
  340. package/dist/metrics/aggregation.js +0 -363
  341. package/dist/metrics/aggregation.js.map +0 -1
  342. package/dist/metrics/common.js +0 -64
  343. package/dist/metrics/common.js.map +0 -1
  344. package/dist/metrics/enums.js +0 -78
  345. package/dist/metrics/enums.js.map +0 -1
  346. package/dist/metrics/index.js +0 -19
  347. package/dist/metrics/index.js.map +0 -1
  348. package/dist/metrics/model-provider-registry.js +0 -88
  349. package/dist/metrics/model-provider-registry.js.map +0 -1
  350. package/dist/metrics/otel-integration.js +0 -263
  351. package/dist/metrics/otel-integration.js.map +0 -1
  352. package/dist/metrics/provider-detection.js +0 -103
  353. package/dist/metrics/provider-detection.js.map +0 -1
  354. package/dist/metrics/token-estimation.js +0 -253
  355. package/dist/metrics/token-estimation.js.map +0 -1
  356. package/dist/metrics/token-service.js +0 -450
  357. package/dist/metrics/token-service.js.map +0 -1
  358. package/dist/migration/agent-outputs.js +0 -316
  359. package/dist/migration/agent-outputs.js.map +0 -1
  360. package/dist/migration/checksum.js +0 -92
  361. package/dist/migration/checksum.js.map +0 -1
  362. package/dist/migration/index.js +0 -282
  363. package/dist/migration/index.js.map +0 -1
  364. package/dist/migration/logger.js +0 -360
  365. package/dist/migration/logger.js.map +0 -1
  366. package/dist/migration/preflight.js +0 -9
  367. package/dist/migration/preflight.js.map +0 -1
  368. package/dist/migration/state.js +0 -421
  369. package/dist/migration/state.js.map +0 -1
  370. package/dist/migration/validate.js +0 -241
  371. package/dist/migration/validate.js.map +0 -1
  372. package/dist/mvi-helpers.js +0 -74
  373. package/dist/mvi-helpers.js.map +0 -1
  374. package/dist/nexus/deps.js +0 -375
  375. package/dist/nexus/deps.js.map +0 -1
  376. package/dist/nexus/discover.js +0 -288
  377. package/dist/nexus/discover.js.map +0 -1
  378. package/dist/nexus/hash.js +0 -10
  379. package/dist/nexus/hash.js.map +0 -1
  380. package/dist/nexus/index.js +0 -40
  381. package/dist/nexus/index.js.map +0 -1
  382. package/dist/nexus/migrate-json-to-sqlite.js +0 -115
  383. package/dist/nexus/migrate-json-to-sqlite.js.map +0 -1
  384. package/dist/nexus/permissions.js +0 -105
  385. package/dist/nexus/permissions.js.map +0 -1
  386. package/dist/nexus/query.js +0 -175
  387. package/dist/nexus/query.js.map +0 -1
  388. package/dist/nexus/registry.js +0 -584
  389. package/dist/nexus/registry.js.map +0 -1
  390. package/dist/nexus/sharing/index.js +0 -288
  391. package/dist/nexus/sharing/index.js.map +0 -1
  392. package/dist/nexus/transfer-types.js +0 -8
  393. package/dist/nexus/transfer-types.js.map +0 -1
  394. package/dist/nexus/transfer.js +0 -263
  395. package/dist/nexus/transfer.js.map +0 -1
  396. package/dist/nexus/workspace.js +0 -355
  397. package/dist/nexus/workspace.js.map +0 -1
  398. package/dist/observability/index.js +0 -103
  399. package/dist/observability/index.js.map +0 -1
  400. package/dist/observability/log-filter.js +0 -63
  401. package/dist/observability/log-filter.js.map +0 -1
  402. package/dist/observability/log-parser.js +0 -99
  403. package/dist/observability/log-parser.js.map +0 -1
  404. package/dist/observability/log-reader.js +0 -139
  405. package/dist/observability/log-reader.js.map +0 -1
  406. package/dist/observability/types.js +0 -19
  407. package/dist/observability/types.js.map +0 -1
  408. package/dist/orchestration/analyze.js +0 -107
  409. package/dist/orchestration/analyze.js.map +0 -1
  410. package/dist/orchestration/bootstrap.js +0 -132
  411. package/dist/orchestration/bootstrap.js.map +0 -1
  412. package/dist/orchestration/context.js +0 -56
  413. package/dist/orchestration/context.js.map +0 -1
  414. package/dist/orchestration/critical-path.js +0 -100
  415. package/dist/orchestration/critical-path.js.map +0 -1
  416. package/dist/orchestration/hierarchy.js +0 -183
  417. package/dist/orchestration/hierarchy.js.map +0 -1
  418. package/dist/orchestration/index.js +0 -287
  419. package/dist/orchestration/index.js.map +0 -1
  420. package/dist/orchestration/parallel.js +0 -89
  421. package/dist/orchestration/parallel.js.map +0 -1
  422. package/dist/orchestration/protocol-validators.js +0 -815
  423. package/dist/orchestration/protocol-validators.js.map +0 -1
  424. package/dist/orchestration/skill-ops.js +0 -98
  425. package/dist/orchestration/skill-ops.js.map +0 -1
  426. package/dist/orchestration/status.js +0 -107
  427. package/dist/orchestration/status.js.map +0 -1
  428. package/dist/orchestration/unblock.js +0 -103
  429. package/dist/orchestration/unblock.js.map +0 -1
  430. package/dist/orchestration/validate-spawn.js +0 -67
  431. package/dist/orchestration/validate-spawn.js.map +0 -1
  432. package/dist/orchestration/waves.js +0 -86
  433. package/dist/orchestration/waves.js.map +0 -1
  434. package/dist/otel/index.js +0 -163
  435. package/dist/otel/index.js.map +0 -1
  436. package/dist/output.js +0 -164
  437. package/dist/output.js.map +0 -1
  438. package/dist/pagination.js +0 -64
  439. package/dist/pagination.js.map +0 -1
  440. package/dist/paths.js +0 -842
  441. package/dist/paths.js.map +0 -1
  442. package/dist/phases/deps.js +0 -372
  443. package/dist/phases/deps.js.map +0 -1
  444. package/dist/phases/index.js +0 -349
  445. package/dist/phases/index.js.map +0 -1
  446. package/dist/pipeline/index.js +0 -10
  447. package/dist/pipeline/index.js.map +0 -1
  448. package/dist/pipeline/phase.js +0 -45
  449. package/dist/pipeline/phase.js.map +0 -1
  450. package/dist/platform.js +0 -211
  451. package/dist/platform.js.map +0 -1
  452. package/dist/project-info.js +0 -84
  453. package/dist/project-info.js.map +0 -1
  454. package/dist/reconciliation/index.js +0 -10
  455. package/dist/reconciliation/index.js.map +0 -1
  456. package/dist/reconciliation/link-store.js +0 -129
  457. package/dist/reconciliation/link-store.js.map +0 -1
  458. package/dist/reconciliation/reconciliation-engine.js +0 -298
  459. package/dist/reconciliation/reconciliation-engine.js.map +0 -1
  460. package/dist/release/artifacts.js +0 -427
  461. package/dist/release/artifacts.js.map +0 -1
  462. package/dist/release/changelog-writer.js +0 -151
  463. package/dist/release/changelog-writer.js.map +0 -1
  464. package/dist/release/channel.js +0 -144
  465. package/dist/release/channel.js.map +0 -1
  466. package/dist/release/ci.js +0 -166
  467. package/dist/release/ci.js.map +0 -1
  468. package/dist/release/github-pr.js +0 -225
  469. package/dist/release/github-pr.js.map +0 -1
  470. package/dist/release/guards.js +0 -116
  471. package/dist/release/guards.js.map +0 -1
  472. package/dist/release/index.js +0 -22
  473. package/dist/release/index.js.map +0 -1
  474. package/dist/release/release-config.js +0 -158
  475. package/dist/release/release-config.js.map +0 -1
  476. package/dist/release/release-manifest.js +0 -1019
  477. package/dist/release/release-manifest.js.map +0 -1
  478. package/dist/release/version-bump.js +0 -255
  479. package/dist/release/version-bump.js.map +0 -1
  480. package/dist/remote/index.js +0 -257
  481. package/dist/remote/index.js.map +0 -1
  482. package/dist/repair.js +0 -130
  483. package/dist/repair.js.map +0 -1
  484. package/dist/research/index.js +0 -2
  485. package/dist/research/index.js.map +0 -1
  486. package/dist/roadmap/index.js +0 -59
  487. package/dist/roadmap/index.js.map +0 -1
  488. package/dist/routing/capability-matrix.js +0 -1556
  489. package/dist/routing/capability-matrix.js.map +0 -1
  490. package/dist/routing/index.js +0 -9
  491. package/dist/routing/index.js.map +0 -1
  492. package/dist/scaffold.js +0 -1759
  493. package/dist/scaffold.js.map +0 -1
  494. package/dist/schema-management.js +0 -295
  495. package/dist/schema-management.js.map +0 -1
  496. package/dist/security/index.js +0 -9
  497. package/dist/security/index.js.map +0 -1
  498. package/dist/security/input-sanitization.js +0 -321
  499. package/dist/security/input-sanitization.js.map +0 -1
  500. package/dist/sequence/index.js +0 -295
  501. package/dist/sequence/index.js.map +0 -1
  502. package/dist/sessions/assumptions.js +0 -54
  503. package/dist/sessions/assumptions.js.map +0 -1
  504. package/dist/sessions/briefing.js +0 -377
  505. package/dist/sessions/briefing.js.map +0 -1
  506. package/dist/sessions/context-alert.js +0 -222
  507. package/dist/sessions/context-alert.js.map +0 -1
  508. package/dist/sessions/context-inject.js +0 -61
  509. package/dist/sessions/context-inject.js.map +0 -1
  510. package/dist/sessions/context-monitor.js +0 -98
  511. package/dist/sessions/context-monitor.js.map +0 -1
  512. package/dist/sessions/decisions.js +0 -65
  513. package/dist/sessions/decisions.js.map +0 -1
  514. package/dist/sessions/find.js +0 -65
  515. package/dist/sessions/find.js.map +0 -1
  516. package/dist/sessions/handoff.js +0 -328
  517. package/dist/sessions/handoff.js.map +0 -1
  518. package/dist/sessions/hitl-warnings.js +0 -254
  519. package/dist/sessions/hitl-warnings.js.map +0 -1
  520. package/dist/sessions/index.js +0 -327
  521. package/dist/sessions/index.js.map +0 -1
  522. package/dist/sessions/session-archive.js +0 -40
  523. package/dist/sessions/session-archive.js.map +0 -1
  524. package/dist/sessions/session-cleanup.js +0 -59
  525. package/dist/sessions/session-cleanup.js.map +0 -1
  526. package/dist/sessions/session-drift.js +0 -134
  527. package/dist/sessions/session-drift.js.map +0 -1
  528. package/dist/sessions/session-enforcement.js +0 -144
  529. package/dist/sessions/session-enforcement.js.map +0 -1
  530. package/dist/sessions/session-grade.js +0 -253
  531. package/dist/sessions/session-grade.js.map +0 -1
  532. package/dist/sessions/session-history.js +0 -42
  533. package/dist/sessions/session-history.js.map +0 -1
  534. package/dist/sessions/session-id.js +0 -81
  535. package/dist/sessions/session-id.js.map +0 -1
  536. package/dist/sessions/session-memory-bridge.js +0 -52
  537. package/dist/sessions/session-memory-bridge.js.map +0 -1
  538. package/dist/sessions/session-show.js +0 -24
  539. package/dist/sessions/session-show.js.map +0 -1
  540. package/dist/sessions/session-stats.js +0 -69
  541. package/dist/sessions/session-stats.js.map +0 -1
  542. package/dist/sessions/session-suspend.js +0 -39
  543. package/dist/sessions/session-suspend.js.map +0 -1
  544. package/dist/sessions/session-switch.js +0 -51
  545. package/dist/sessions/session-switch.js.map +0 -1
  546. package/dist/sessions/session-view.js +0 -76
  547. package/dist/sessions/session-view.js.map +0 -1
  548. package/dist/sessions/snapshot.js +0 -213
  549. package/dist/sessions/snapshot.js.map +0 -1
  550. package/dist/sessions/statusline-setup.js +0 -85
  551. package/dist/sessions/statusline-setup.js.map +0 -1
  552. package/dist/sessions/types.js +0 -8
  553. package/dist/sessions/types.js.map +0 -1
  554. package/dist/skills/agents/config.js +0 -94
  555. package/dist/skills/agents/config.js.map +0 -1
  556. package/dist/skills/agents/install.js +0 -116
  557. package/dist/skills/agents/install.js.map +0 -1
  558. package/dist/skills/agents/registry.js +0 -161
  559. package/dist/skills/agents/registry.js.map +0 -1
  560. package/dist/skills/discovery.js +0 -333
  561. package/dist/skills/discovery.js.map +0 -1
  562. package/dist/skills/dispatch.js +0 -347
  563. package/dist/skills/dispatch.js.map +0 -1
  564. package/dist/skills/dynamic-skill-generator.js +0 -87
  565. package/dist/skills/dynamic-skill-generator.js.map +0 -1
  566. package/dist/skills/index.js +0 -44
  567. package/dist/skills/index.js.map +0 -1
  568. package/dist/skills/injection/subagent.js +0 -195
  569. package/dist/skills/injection/subagent.js.map +0 -1
  570. package/dist/skills/injection/token.js +0 -260
  571. package/dist/skills/injection/token.js.map +0 -1
  572. package/dist/skills/install.js +0 -40
  573. package/dist/skills/install.js.map +0 -1
  574. package/dist/skills/manifests/contribution.js +0 -175
  575. package/dist/skills/manifests/contribution.js.map +0 -1
  576. package/dist/skills/manifests/research.js +0 -281
  577. package/dist/skills/manifests/research.js.map +0 -1
  578. package/dist/skills/manifests/resolver.js +0 -146
  579. package/dist/skills/manifests/resolver.js.map +0 -1
  580. package/dist/skills/marketplace.js +0 -90
  581. package/dist/skills/marketplace.js.map +0 -1
  582. package/dist/skills/orchestrator/spawn.js +0 -178
  583. package/dist/skills/orchestrator/spawn.js.map +0 -1
  584. package/dist/skills/orchestrator/startup.js +0 -451
  585. package/dist/skills/orchestrator/startup.js.map +0 -1
  586. package/dist/skills/orchestrator/validator.js +0 -301
  587. package/dist/skills/orchestrator/validator.js.map +0 -1
  588. package/dist/skills/precedence-integration.js +0 -73
  589. package/dist/skills/precedence-integration.js.map +0 -1
  590. package/dist/skills/precedence-types.js +0 -16
  591. package/dist/skills/precedence-types.js.map +0 -1
  592. package/dist/skills/routing-table.js +0 -63
  593. package/dist/skills/routing-table.js.map +0 -1
  594. package/dist/skills/skill-paths.js +0 -217
  595. package/dist/skills/skill-paths.js.map +0 -1
  596. package/dist/skills/test-utility.js +0 -55
  597. package/dist/skills/test-utility.js.map +0 -1
  598. package/dist/skills/types.js +0 -118
  599. package/dist/skills/types.js.map +0 -1
  600. package/dist/skills/validation.js +0 -183
  601. package/dist/skills/validation.js.map +0 -1
  602. package/dist/skills/version.js +0 -57
  603. package/dist/skills/version.js.map +0 -1
  604. package/dist/snapshot/index.js +0 -188
  605. package/dist/snapshot/index.js.map +0 -1
  606. package/dist/spawn/adapter-registry.js +0 -246
  607. package/dist/spawn/adapter-registry.js.map +0 -1
  608. package/dist/spawn/index.js +0 -10
  609. package/dist/spawn/index.js.map +0 -1
  610. package/dist/stats/index.js +0 -343
  611. package/dist/stats/index.js.map +0 -1
  612. package/dist/stats/workflow-telemetry.js +0 -400
  613. package/dist/stats/workflow-telemetry.js.map +0 -1
  614. package/dist/sticky/archive.js +0 -47
  615. package/dist/sticky/archive.js.map +0 -1
  616. package/dist/sticky/convert.js +0 -235
  617. package/dist/sticky/convert.js.map +0 -1
  618. package/dist/sticky/create.js +0 -48
  619. package/dist/sticky/create.js.map +0 -1
  620. package/dist/sticky/id.js +0 -35
  621. package/dist/sticky/id.js.map +0 -1
  622. package/dist/sticky/index.js +0 -16
  623. package/dist/sticky/index.js.map +0 -1
  624. package/dist/sticky/list.js +0 -44
  625. package/dist/sticky/list.js.map +0 -1
  626. package/dist/sticky/purge.js +0 -45
  627. package/dist/sticky/purge.js.map +0 -1
  628. package/dist/sticky/show.js +0 -42
  629. package/dist/sticky/show.js.map +0 -1
  630. package/dist/sticky/types.js +0 -10
  631. package/dist/sticky/types.js.map +0 -1
  632. package/dist/store/agent-registry-accessor.js +0 -783
  633. package/dist/store/agent-registry-accessor.js.map +0 -1
  634. package/dist/store/api-key-kdf.js +0 -84
  635. package/dist/store/api-key-kdf.js.map +0 -1
  636. package/dist/store/atomic.js +0 -167
  637. package/dist/store/atomic.js.map +0 -1
  638. package/dist/store/backup.js +0 -94
  639. package/dist/store/backup.js.map +0 -1
  640. package/dist/store/brain-accessor.js +0 -397
  641. package/dist/store/brain-accessor.js.map +0 -1
  642. package/dist/store/brain-schema.js +0 -215
  643. package/dist/store/brain-schema.js.map +0 -1
  644. package/dist/store/brain-sqlite.js +0 -222
  645. package/dist/store/brain-sqlite.js.map +0 -1
  646. package/dist/store/cache.js +0 -168
  647. package/dist/store/cache.js.map +0 -1
  648. package/dist/store/chain-schema.js +0 -51
  649. package/dist/store/chain-schema.js.map +0 -1
  650. package/dist/store/cleanup-legacy.js +0 -171
  651. package/dist/store/cleanup-legacy.js.map +0 -1
  652. package/dist/store/conduit-sqlite.js +0 -570
  653. package/dist/store/conduit-sqlite.js.map +0 -1
  654. package/dist/store/converters.js +0 -124
  655. package/dist/store/converters.js.map +0 -1
  656. package/dist/store/cross-db-cleanup.js +0 -319
  657. package/dist/store/cross-db-cleanup.js.map +0 -1
  658. package/dist/store/data-accessor.js +0 -26
  659. package/dist/store/data-accessor.js.map +0 -1
  660. package/dist/store/data-safety-central.js +0 -269
  661. package/dist/store/data-safety-central.js.map +0 -1
  662. package/dist/store/data-safety.js +0 -274
  663. package/dist/store/data-safety.js.map +0 -1
  664. package/dist/store/db-helpers.js +0 -224
  665. package/dist/store/db-helpers.js.map +0 -1
  666. package/dist/store/export.js +0 -155
  667. package/dist/store/export.js.map +0 -1
  668. package/dist/store/file-utils.js +0 -270
  669. package/dist/store/file-utils.js.map +0 -1
  670. package/dist/store/git-checkpoint.js +0 -365
  671. package/dist/store/git-checkpoint.js.map +0 -1
  672. package/dist/store/global-salt.js +0 -147
  673. package/dist/store/global-salt.js.map +0 -1
  674. package/dist/store/import-logging.js +0 -139
  675. package/dist/store/import-logging.js.map +0 -1
  676. package/dist/store/import-remap.js +0 -145
  677. package/dist/store/import-remap.js.map +0 -1
  678. package/dist/store/import-sort.js +0 -121
  679. package/dist/store/import-sort.js.map +0 -1
  680. package/dist/store/index.js +0 -29
  681. package/dist/store/index.js.map +0 -1
  682. package/dist/store/json.js +0 -208
  683. package/dist/store/json.js.map +0 -1
  684. package/dist/store/lifecycle-store.js +0 -249
  685. package/dist/store/lifecycle-store.js.map +0 -1
  686. package/dist/store/lock.js +0 -70
  687. package/dist/store/lock.js.map +0 -1
  688. package/dist/store/migrate-signaldock-to-conduit.js +0 -555
  689. package/dist/store/migrate-signaldock-to-conduit.js.map +0 -1
  690. package/dist/store/migration-manager.js +0 -151
  691. package/dist/store/migration-manager.js.map +0 -1
  692. package/dist/store/migration-sqlite.js +0 -676
  693. package/dist/store/migration-sqlite.js.map +0 -1
  694. package/dist/store/nexus-schema.js +0 -62
  695. package/dist/store/nexus-schema.js.map +0 -1
  696. package/dist/store/nexus-sqlite.js +0 -242
  697. package/dist/store/nexus-sqlite.js.map +0 -1
  698. package/dist/store/nexus-validation-schemas.js +0 -40
  699. package/dist/store/nexus-validation-schemas.js.map +0 -1
  700. package/dist/store/parsers.js +0 -37
  701. package/dist/store/parsers.js.map +0 -1
  702. package/dist/store/project-detect.js +0 -457
  703. package/dist/store/project-detect.js.map +0 -1
  704. package/dist/store/provider.js +0 -101
  705. package/dist/store/provider.js.map +0 -1
  706. package/dist/store/safety-data-accessor.js +0 -257
  707. package/dist/store/safety-data-accessor.js.map +0 -1
  708. package/dist/store/schema.js +0 -7
  709. package/dist/store/schema.js.map +0 -1
  710. package/dist/store/session-store.js +0 -219
  711. package/dist/store/session-store.js.map +0 -1
  712. package/dist/store/signaldock-sqlite.js +0 -550
  713. package/dist/store/signaldock-sqlite.js.map +0 -1
  714. package/dist/store/sqlite-backup.js +0 -359
  715. package/dist/store/sqlite-backup.js.map +0 -1
  716. package/dist/store/sqlite-data-accessor.js +0 -787
  717. package/dist/store/sqlite-data-accessor.js.map +0 -1
  718. package/dist/store/sqlite.js +0 -481
  719. package/dist/store/sqlite.js.map +0 -1
  720. package/dist/store/status-registry.js +0 -8
  721. package/dist/store/status-registry.js.map +0 -1
  722. package/dist/store/task-store.js +0 -358
  723. package/dist/store/task-store.js.map +0 -1
  724. package/dist/store/tasks-schema.js +0 -610
  725. package/dist/store/tasks-schema.js.map +0 -1
  726. package/dist/store/typed-query.js +0 -15
  727. package/dist/store/typed-query.js.map +0 -1
  728. package/dist/store/validation-schemas.js +0 -278
  729. package/dist/store/validation-schemas.js.map +0 -1
  730. package/dist/system/archive-analytics.js +0 -277
  731. package/dist/system/archive-analytics.js.map +0 -1
  732. package/dist/system/archive-stats.js +0 -64
  733. package/dist/system/archive-stats.js.map +0 -1
  734. package/dist/system/audit.js +0 -145
  735. package/dist/system/audit.js.map +0 -1
  736. package/dist/system/backup.js +0 -280
  737. package/dist/system/backup.js.map +0 -1
  738. package/dist/system/cleanup.js +0 -134
  739. package/dist/system/cleanup.js.map +0 -1
  740. package/dist/system/health.js +0 -1100
  741. package/dist/system/health.js.map +0 -1
  742. package/dist/system/index.js +0 -18
  743. package/dist/system/index.js.map +0 -1
  744. package/dist/system/inject-generate.js +0 -122
  745. package/dist/system/inject-generate.js.map +0 -1
  746. package/dist/system/labels.js +0 -38
  747. package/dist/system/labels.js.map +0 -1
  748. package/dist/system/metrics.js +0 -61
  749. package/dist/system/metrics.js.map +0 -1
  750. package/dist/system/migrate.js +0 -43
  751. package/dist/system/migrate.js.map +0 -1
  752. package/dist/system/platform-paths.js +0 -80
  753. package/dist/system/platform-paths.js.map +0 -1
  754. package/dist/system/runtime.js +0 -161
  755. package/dist/system/runtime.js.map +0 -1
  756. package/dist/system/safestop.js +0 -99
  757. package/dist/system/safestop.js.map +0 -1
  758. package/dist/system/storage-preflight.js +0 -123
  759. package/dist/system/storage-preflight.js.map +0 -1
  760. package/dist/task-work/index.js +0 -159
  761. package/dist/task-work/index.js.map +0 -1
  762. package/dist/tasks/add.js +0 -736
  763. package/dist/tasks/add.js.map +0 -1
  764. package/dist/tasks/analyze.js +0 -85
  765. package/dist/tasks/analyze.js.map +0 -1
  766. package/dist/tasks/archive.js +0 -90
  767. package/dist/tasks/archive.js.map +0 -1
  768. package/dist/tasks/atomicity.js +0 -83
  769. package/dist/tasks/atomicity.js.map +0 -1
  770. package/dist/tasks/cancel-ops.js +0 -83
  771. package/dist/tasks/cancel-ops.js.map +0 -1
  772. package/dist/tasks/complete.js +0 -214
  773. package/dist/tasks/complete.js.map +0 -1
  774. package/dist/tasks/crossref-extract.js +0 -73
  775. package/dist/tasks/crossref-extract.js.map +0 -1
  776. package/dist/tasks/delete-preview.js +0 -192
  777. package/dist/tasks/delete-preview.js.map +0 -1
  778. package/dist/tasks/delete.js +0 -120
  779. package/dist/tasks/delete.js.map +0 -1
  780. package/dist/tasks/deletion-strategy.js +0 -200
  781. package/dist/tasks/deletion-strategy.js.map +0 -1
  782. package/dist/tasks/dependency-check.js +0 -278
  783. package/dist/tasks/dependency-check.js.map +0 -1
  784. package/dist/tasks/deps-ready.js +0 -32
  785. package/dist/tasks/deps-ready.js.map +0 -1
  786. package/dist/tasks/enforcement.js +0 -86
  787. package/dist/tasks/enforcement.js.map +0 -1
  788. package/dist/tasks/epic-enforcement.js +0 -294
  789. package/dist/tasks/epic-enforcement.js.map +0 -1
  790. package/dist/tasks/find.js +0 -157
  791. package/dist/tasks/find.js.map +0 -1
  792. package/dist/tasks/graph-cache.js +0 -127
  793. package/dist/tasks/graph-cache.js.map +0 -1
  794. package/dist/tasks/graph-ops.js +0 -171
  795. package/dist/tasks/graph-ops.js.map +0 -1
  796. package/dist/tasks/graph-rag.js +0 -328
  797. package/dist/tasks/graph-rag.js.map +0 -1
  798. package/dist/tasks/hierarchy-policy.js +0 -149
  799. package/dist/tasks/hierarchy-policy.js.map +0 -1
  800. package/dist/tasks/hierarchy.js +0 -185
  801. package/dist/tasks/hierarchy.js.map +0 -1
  802. package/dist/tasks/id-generator.js +0 -65
  803. package/dist/tasks/id-generator.js.map +0 -1
  804. package/dist/tasks/index.js +0 -14
  805. package/dist/tasks/index.js.map +0 -1
  806. package/dist/tasks/labels.js +0 -55
  807. package/dist/tasks/labels.js.map +0 -1
  808. package/dist/tasks/list.js +0 -75
  809. package/dist/tasks/list.js.map +0 -1
  810. package/dist/tasks/phase-tracking.js +0 -133
  811. package/dist/tasks/phase-tracking.js.map +0 -1
  812. package/dist/tasks/pipeline-stage.js +0 -248
  813. package/dist/tasks/pipeline-stage.js.map +0 -1
  814. package/dist/tasks/plan.js +0 -268
  815. package/dist/tasks/plan.js.map +0 -1
  816. package/dist/tasks/relates.js +0 -101
  817. package/dist/tasks/relates.js.map +0 -1
  818. package/dist/tasks/show.js +0 -83
  819. package/dist/tasks/show.js.map +0 -1
  820. package/dist/tasks/size-weighting.js +0 -86
  821. package/dist/tasks/size-weighting.js.map +0 -1
  822. package/dist/tasks/staleness.js +0 -86
  823. package/dist/tasks/staleness.js.map +0 -1
  824. package/dist/tasks/task-ops.js +0 -1741
  825. package/dist/tasks/task-ops.js.map +0 -1
  826. package/dist/tasks/update.js +0 -303
  827. package/dist/tasks/update.js.map +0 -1
  828. package/dist/templates/index.js +0 -10
  829. package/dist/templates/index.js.map +0 -1
  830. package/dist/templates/parser.js +0 -254
  831. package/dist/templates/parser.js.map +0 -1
  832. package/dist/ui/aliases.js +0 -153
  833. package/dist/ui/aliases.js.map +0 -1
  834. package/dist/ui/changelog.js +0 -184
  835. package/dist/ui/changelog.js.map +0 -1
  836. package/dist/ui/command-registry.js +0 -168
  837. package/dist/ui/command-registry.js.map +0 -1
  838. package/dist/ui/flags.js +0 -94
  839. package/dist/ui/flags.js.map +0 -1
  840. package/dist/ui/index.js +0 -24
  841. package/dist/ui/index.js.map +0 -1
  842. package/dist/upgrade.js +0 -1148
  843. package/dist/upgrade.js.map +0 -1
  844. package/dist/validation/chain-validation.js +0 -146
  845. package/dist/validation/chain-validation.js.map +0 -1
  846. package/dist/validation/compliance.js +0 -155
  847. package/dist/validation/compliance.js.map +0 -1
  848. package/dist/validation/docs-sync.js +0 -212
  849. package/dist/validation/docs-sync.js.map +0 -1
  850. package/dist/validation/doctor/checks.js +0 -1069
  851. package/dist/validation/doctor/checks.js.map +0 -1
  852. package/dist/validation/doctor/index.js +0 -9
  853. package/dist/validation/doctor/index.js.map +0 -1
  854. package/dist/validation/doctor/project-cache.js +0 -160
  855. package/dist/validation/doctor/project-cache.js.map +0 -1
  856. package/dist/validation/doctor/utils.js +0 -155
  857. package/dist/validation/doctor/utils.js.map +0 -1
  858. package/dist/validation/engine.js +0 -914
  859. package/dist/validation/engine.js.map +0 -1
  860. package/dist/validation/gap-check.js +0 -175
  861. package/dist/validation/gap-check.js.map +0 -1
  862. package/dist/validation/index.js +0 -40
  863. package/dist/validation/index.js.map +0 -1
  864. package/dist/validation/manifest.js +0 -237
  865. package/dist/validation/manifest.js.map +0 -1
  866. package/dist/validation/operation-gate-validators.js +0 -724
  867. package/dist/validation/operation-gate-validators.js.map +0 -1
  868. package/dist/validation/operation-verification-gates.js +0 -532
  869. package/dist/validation/operation-verification-gates.js.map +0 -1
  870. package/dist/validation/param-utils.js +0 -141
  871. package/dist/validation/param-utils.js.map +0 -1
  872. package/dist/validation/protocol-common.js +0 -300
  873. package/dist/validation/protocol-common.js.map +0 -1
  874. package/dist/validation/protocols/_shared.js +0 -82
  875. package/dist/validation/protocols/_shared.js.map +0 -1
  876. package/dist/validation/protocols/architecture-decision.js +0 -31
  877. package/dist/validation/protocols/architecture-decision.js.map +0 -1
  878. package/dist/validation/protocols/artifact-publish.js +0 -28
  879. package/dist/validation/protocols/artifact-publish.js.map +0 -1
  880. package/dist/validation/protocols/consensus.js +0 -41
  881. package/dist/validation/protocols/consensus.js.map +0 -1
  882. package/dist/validation/protocols/contribution.js +0 -27
  883. package/dist/validation/protocols/contribution.js.map +0 -1
  884. package/dist/validation/protocols/decomposition.js +0 -28
  885. package/dist/validation/protocols/decomposition.js.map +0 -1
  886. package/dist/validation/protocols/implementation.js +0 -24
  887. package/dist/validation/protocols/implementation.js.map +0 -1
  888. package/dist/validation/protocols/provenance.js +0 -29
  889. package/dist/validation/protocols/provenance.js.map +0 -1
  890. package/dist/validation/protocols/release.js +0 -29
  891. package/dist/validation/protocols/release.js.map +0 -1
  892. package/dist/validation/protocols/research.js +0 -24
  893. package/dist/validation/protocols/research.js.map +0 -1
  894. package/dist/validation/protocols/specification.js +0 -27
  895. package/dist/validation/protocols/specification.js.map +0 -1
  896. package/dist/validation/protocols/testing.js +0 -30
  897. package/dist/validation/protocols/testing.js.map +0 -1
  898. package/dist/validation/protocols/validation.js +0 -30
  899. package/dist/validation/protocols/validation.js.map +0 -1
  900. package/dist/validation/schema-integrity.js +0 -170
  901. package/dist/validation/schema-integrity.js.map +0 -1
  902. package/dist/validation/schema-validator.js +0 -176
  903. package/dist/validation/schema-validator.js.map +0 -1
  904. package/dist/validation/validate-ops.js +0 -937
  905. package/dist/validation/validate-ops.js.map +0 -1
  906. package/dist/validation/validation-rules.js +0 -226
  907. package/dist/validation/validation-rules.js.map +0 -1
  908. package/dist/validation/verification.js +0 -321
  909. package/dist/validation/verification.js.map +0 -1
@@ -1,676 +0,0 @@
1
- /**
2
- * Data migration: JSON to SQLite.
3
- *
4
- * One-time migration of todo.json + todo-archive.json + sessions.json → tasks.db.
5
- * Validates row counts match after migration.
6
- * Keeps JSON files as read-only backup (does not delete).
7
- *
8
- * @epic T4454
9
- * @task W1-T5
10
- * @task T4721 - Added atomic migration support with custom db path
11
- */
12
- import { existsSync, mkdirSync, readFileSync } from 'node:fs';
13
- import { dirname, join } from 'node:path';
14
- import { drizzle } from 'drizzle-orm/node-sqlite';
15
- import { migrate } from 'drizzle-orm/node-sqlite/migrator';
16
- import { getCleoDirAbsolute } from '../paths.js';
17
- import { dbExists, getDb, openNativeDatabase, resolveMigrationsFolder } from './sqlite.js';
18
- import * as schema from './tasks-schema.js';
19
- /**
20
- * Topological sort for tasks: ensures parents and dependency targets are inserted before
21
- * the tasks that reference them. Tasks referencing IDs outside the batch are treated as
22
- * roots (inserted as-is). Handles circular references defensively by breaking cycles.
23
- */
24
- function topoSortTasks(tasks) {
25
- const taskMap = new Map(tasks.map((t) => [t.id, t]));
26
- const sorted = [];
27
- const visited = new Set();
28
- const inStack = new Set(); // cycle detection
29
- function visit(task) {
30
- if (visited.has(task.id))
31
- return;
32
- if (inStack.has(task.id)) {
33
- // Circular reference detected — skip the recursive call to break the cycle
34
- return;
35
- }
36
- inStack.add(task.id);
37
- // Visit parent first if it exists in this batch
38
- if (task.parentId && taskMap.has(task.parentId)) {
39
- visit(taskMap.get(task.parentId));
40
- }
41
- // Visit dependency targets first if they exist in this batch
42
- if (task.depends) {
43
- for (const depId of task.depends) {
44
- if (taskMap.has(depId)) {
45
- visit(taskMap.get(depId));
46
- }
47
- }
48
- }
49
- inStack.delete(task.id);
50
- visited.add(task.id);
51
- sorted.push(task);
52
- }
53
- for (const task of tasks) {
54
- visit(task);
55
- }
56
- return sorted;
57
- }
58
- /** Count records in JSON source files. */
59
- export function countJsonRecords(cleoDir) {
60
- let tasks = 0;
61
- let archived = 0;
62
- let sessions = 0;
63
- const todoPath = join(cleoDir, 'todo.json');
64
- if (existsSync(todoPath)) {
65
- try {
66
- const data = JSON.parse(readFileSync(todoPath, 'utf-8'));
67
- tasks = (data.tasks ?? []).length;
68
- }
69
- catch {
70
- // Corrupted file
71
- }
72
- }
73
- const archivePath = join(cleoDir, 'todo-archive.json');
74
- if (existsSync(archivePath)) {
75
- try {
76
- const data = JSON.parse(readFileSync(archivePath, 'utf-8'));
77
- archived = (data.tasks ?? data.archivedTasks ?? []).length;
78
- }
79
- catch {
80
- // Corrupted file
81
- }
82
- }
83
- const sessionsPath = join(cleoDir, 'sessions.json');
84
- if (existsSync(sessionsPath)) {
85
- try {
86
- const data = JSON.parse(readFileSync(sessionsPath, 'utf-8'));
87
- sessions = (data.sessions ?? []).length;
88
- }
89
- catch {
90
- // Corrupted file
91
- }
92
- }
93
- return { tasks, archived, sessions };
94
- }
95
- /**
96
- * Migrate JSON data to SQLite.
97
- * Reads todo.json, todo-archive.json, and sessions.json,
98
- * writes to tasks.db via drizzle-orm.
99
- */
100
- /**
101
- * Migrate JSON data to SQLite with atomic rename pattern.
102
- * Writes to a temporary database file first, then atomically renames.
103
- *
104
- * @param cwd - Optional working directory
105
- * @param tempDbPath - Optional temporary database path for atomic migration
106
- * @param logger - Optional migration logger for audit trail (@task T4727)
107
- * @returns Migration result
108
- */
109
- export async function migrateJsonToSqliteAtomic(cwd, tempDbPath, logger) {
110
- const cleoDir = getCleoDirAbsolute(cwd);
111
- const result = {
112
- success: false,
113
- tasksImported: 0,
114
- archivedImported: 0,
115
- sessionsImported: 0,
116
- errors: [],
117
- warnings: [],
118
- };
119
- // If no temp path provided, use standard migration
120
- if (!tempDbPath) {
121
- return migrateJsonToSqlite(cwd);
122
- }
123
- // Close any existing DB connection
124
- const { closeDb, resetDbState } = await import('./sqlite.js');
125
- closeDb();
126
- try {
127
- logger?.info('import', 'init', 'Initializing node:sqlite for migration');
128
- // Create temp directory and open file-backed database at temp path
129
- mkdirSync(dirname(tempDbPath), { recursive: true });
130
- const nativeDb = openNativeDatabase(tempDbPath, { enableWal: true });
131
- const db = drizzle({ client: nativeDb, schema });
132
- // Run migrations to create tables
133
- logger?.info('import', 'create-tables', 'Running drizzle migrations to create tables');
134
- const migrationsFolder = resolveMigrationsFolder();
135
- migrate(db, { migrationsFolder });
136
- // Migration SQL contains PRAGMA foreign_keys=ON. In test mode, disable
137
- // FKs so test fixtures can import data with orphan references.
138
- if (process.env.VITEST) {
139
- nativeDb.exec('PRAGMA foreign_keys=OFF');
140
- }
141
- // Run the actual migration
142
- logger?.info('import', 'data-import', 'Starting data import from JSON files');
143
- await runMigrationDataImport(db, cleoDir, result, logger);
144
- // Get file size for logging (data already written to disk)
145
- logger?.info('import', 'save-temp', 'Database written to temporary file', {
146
- tempPath: tempDbPath.replace(cleoDir, '.'),
147
- });
148
- const { statSync } = await import('node:fs');
149
- const fileStats = statSync(tempDbPath);
150
- logger?.info('import', 'temp-saved', 'Temporary database saved', {
151
- size: fileStats.size,
152
- path: tempDbPath.replace(cleoDir, '.'),
153
- });
154
- // Close the database
155
- nativeDb.close();
156
- resetDbState();
157
- result.success = result.errors.length === 0;
158
- logger?.info('import', 'complete', 'Migration import completed', {
159
- success: result.success,
160
- tasksImported: result.tasksImported,
161
- archivedImported: result.archivedImported,
162
- sessionsImported: result.sessionsImported,
163
- errors: result.errors.length,
164
- warnings: result.warnings.length,
165
- });
166
- return result;
167
- }
168
- catch (err) {
169
- const errorMsg = `Atomic migration failed: ${String(err)}`;
170
- result.errors.push(errorMsg);
171
- logger?.error('import', 'failed', errorMsg, {
172
- error: String(err),
173
- });
174
- resetDbState();
175
- return result;
176
- }
177
- }
178
- /**
179
- * Run the actual data import for migration.
180
- */
181
- async function runMigrationDataImport(db, cleoDir, result, logger) {
182
- // === MIGRATE TASKS from todo.json ===
183
- const todoPath = join(cleoDir, 'todo.json');
184
- if (existsSync(todoPath)) {
185
- try {
186
- logger?.info('import', 'read-todo', 'Reading todo.json', {
187
- path: todoPath.replace(cleoDir, '.'),
188
- });
189
- const todoData = JSON.parse(readFileSync(todoPath, 'utf-8'));
190
- const tasks = topoSortTasks(todoData.tasks ?? []);
191
- const totalTasks = tasks.length;
192
- logger?.info('import', 'tasks-start', `Starting import of ${totalTasks} tasks`, {
193
- totalTasks,
194
- });
195
- for (let i = 0; i < tasks.length; i++) {
196
- const task = tasks[i];
197
- try {
198
- await db
199
- .insert(schema.tasks)
200
- .values({
201
- id: task.id,
202
- title: task.title,
203
- description: task.description || `Task: ${task.title}`,
204
- status: task.status,
205
- priority: task.priority ?? 'medium',
206
- type: task.type,
207
- parentId: task.parentId,
208
- phase: task.phase,
209
- size: task.size,
210
- position: task.position,
211
- labelsJson: task.labels ? JSON.stringify(task.labels) : '[]',
212
- notesJson: task.notes ? JSON.stringify(task.notes) : '[]',
213
- acceptanceJson: task.acceptance ? JSON.stringify(task.acceptance) : '[]',
214
- filesJson: task.files ? JSON.stringify(task.files) : '[]',
215
- origin: task.origin,
216
- blockedBy: task.blockedBy,
217
- epicLifecycle: task.epicLifecycle,
218
- noAutoComplete: task.noAutoComplete,
219
- createdAt: task.createdAt,
220
- updatedAt: task.updatedAt,
221
- completedAt: task.completedAt,
222
- cancelledAt: task.cancelledAt,
223
- cancellationReason: task.cancellationReason,
224
- verificationJson: task.verification ? JSON.stringify(task.verification) : undefined,
225
- createdBy: task.provenance?.createdBy,
226
- modifiedBy: task.provenance?.modifiedBy,
227
- sessionId: task.provenance?.sessionId,
228
- })
229
- .onConflictDoNothing()
230
- .run();
231
- // Insert dependencies
232
- if (task.depends) {
233
- for (const depId of task.depends) {
234
- await db
235
- .insert(schema.taskDependencies)
236
- .values({ taskId: task.id, dependsOn: depId })
237
- .onConflictDoNothing()
238
- .run();
239
- }
240
- }
241
- result.tasksImported++;
242
- // Log progress every 100 tasks
243
- if ((i + 1) % 100 === 0 || i === tasks.length - 1) {
244
- logger?.logImportProgress('import', 'tasks', result.tasksImported, totalTasks);
245
- }
246
- }
247
- catch (err) {
248
- const errorMsg = `Failed to import task ${task.id}: ${String(err)}`;
249
- result.errors.push(errorMsg);
250
- logger?.error('import', 'task-import', errorMsg, {
251
- taskId: task.id,
252
- error: String(err),
253
- });
254
- }
255
- }
256
- logger?.info('import', 'tasks-complete', `Completed importing ${result.tasksImported} tasks`, {
257
- imported: result.tasksImported,
258
- failed: result.errors.length,
259
- });
260
- }
261
- catch (err) {
262
- const errorMsg = `Failed to parse todo.json: ${String(err)}`;
263
- result.errors.push(errorMsg);
264
- logger?.error('import', 'parse-todo', errorMsg);
265
- }
266
- }
267
- else {
268
- result.warnings.push('todo.json not found, skipping task import');
269
- logger?.warn('import', 'todo-missing', 'todo.json not found, skipping task import');
270
- }
271
- // === MIGRATE ARCHIVED TASKS from todo-archive.json ===
272
- const archivePath = join(cleoDir, 'todo-archive.json');
273
- if (existsSync(archivePath)) {
274
- try {
275
- logger?.info('import', 'read-archive', 'Reading todo-archive.json', {
276
- path: archivePath.replace(cleoDir, '.'),
277
- });
278
- const archiveData = JSON.parse(readFileSync(archivePath, 'utf-8'));
279
- const archivedTasks = topoSortTasks(archiveData.tasks ?? archiveData.archivedTasks ?? []);
280
- const totalArchived = archivedTasks.length;
281
- logger?.info('import', 'archive-start', `Starting import of ${totalArchived} archived tasks`, {
282
- totalArchived,
283
- });
284
- for (let i = 0; i < archivedTasks.length; i++) {
285
- const task = archivedTasks[i];
286
- try {
287
- await db
288
- .insert(schema.tasks)
289
- .values({
290
- id: task.id,
291
- title: task.title,
292
- description: task.description || `Task: ${task.title}`,
293
- status: 'archived',
294
- priority: task.priority ?? 'medium',
295
- type: task.type,
296
- parentId: task.parentId,
297
- phase: task.phase,
298
- size: task.size,
299
- position: task.position,
300
- labelsJson: task.labels ? JSON.stringify(task.labels) : '[]',
301
- notesJson: task.notes ? JSON.stringify(task.notes) : '[]',
302
- acceptanceJson: task.acceptance ? JSON.stringify(task.acceptance) : '[]',
303
- filesJson: task.files ? JSON.stringify(task.files) : '[]',
304
- createdAt: task.createdAt,
305
- updatedAt: task.updatedAt,
306
- completedAt: task.completedAt,
307
- archivedAt: task.archivedAt ?? task.completedAt ?? new Date().toISOString(),
308
- archiveReason: task.archiveReason ?? 'migrated',
309
- cycleTimeDays: task.cycleTimeDays,
310
- })
311
- .onConflictDoNothing()
312
- .run();
313
- result.archivedImported++;
314
- // Log progress every 50 archived tasks
315
- if ((i + 1) % 50 === 0 || i === archivedTasks.length - 1) {
316
- logger?.logImportProgress('import', 'archived', result.archivedImported, totalArchived);
317
- }
318
- }
319
- catch (err) {
320
- const errorMsg = `Failed to import archived task ${task.id}: ${String(err)}`;
321
- result.errors.push(errorMsg);
322
- logger?.error('import', 'archived-import', errorMsg, {
323
- taskId: task.id,
324
- error: String(err),
325
- });
326
- }
327
- }
328
- logger?.info('import', 'archive-complete', `Completed importing ${result.archivedImported} archived tasks`, {
329
- imported: result.archivedImported,
330
- });
331
- }
332
- catch (err) {
333
- const errorMsg = `Failed to parse todo-archive.json: ${String(err)}`;
334
- result.errors.push(errorMsg);
335
- logger?.error('import', 'parse-archive', errorMsg);
336
- }
337
- }
338
- // === MIGRATE SESSIONS from sessions.json ===
339
- const sessionsPath = join(cleoDir, 'sessions.json');
340
- if (existsSync(sessionsPath)) {
341
- try {
342
- logger?.info('import', 'read-sessions', 'Reading sessions.json', {
343
- path: sessionsPath.replace(cleoDir, '.'),
344
- });
345
- const sessionsData = JSON.parse(readFileSync(sessionsPath, 'utf-8'));
346
- const sessions = sessionsData.sessions ?? [];
347
- const totalSessions = sessions.length;
348
- logger?.info('import', 'sessions-start', `Starting import of ${totalSessions} sessions`, {
349
- totalSessions,
350
- });
351
- for (let i = 0; i < sessions.length; i++) {
352
- const session = sessions[i];
353
- try {
354
- // Normalize status: map legacy 'archived' to 'ended' for SQLite CHECK constraint
355
- const validStatuses = ['active', 'ended', 'orphaned', 'suspended'];
356
- const normalizedStatus = (validStatuses.includes(session.status) ? session.status : 'ended');
357
- // Provide default name for sessions with null/undefined names
358
- const normalizedName = session.name || `session-${session.id}`;
359
- await db
360
- .insert(schema.sessions)
361
- .values({
362
- id: session.id,
363
- name: normalizedName,
364
- status: normalizedStatus,
365
- scopeJson: JSON.stringify(session.scope),
366
- currentTask: session.taskWork?.taskId,
367
- taskStartedAt: session.taskWork?.setAt,
368
- agent: session.agent,
369
- notesJson: session.notes ? JSON.stringify(session.notes) : '[]',
370
- tasksCompletedJson: session.tasksCompleted
371
- ? JSON.stringify(session.tasksCompleted)
372
- : '[]',
373
- tasksCreatedJson: session.tasksCreated ? JSON.stringify(session.tasksCreated) : '[]',
374
- startedAt: session.startedAt,
375
- endedAt: session.endedAt,
376
- })
377
- .onConflictDoNothing()
378
- .run();
379
- result.sessionsImported++;
380
- // Log progress every 10 sessions
381
- if ((i + 1) % 10 === 0 || i === sessions.length - 1) {
382
- logger?.logImportProgress('import', 'sessions', result.sessionsImported, totalSessions);
383
- }
384
- }
385
- catch (err) {
386
- const errorMsg = `Failed to import session ${session.id}: ${String(err)}`;
387
- result.errors.push(errorMsg);
388
- logger?.error('import', 'session-import', errorMsg, {
389
- sessionId: session.id,
390
- error: String(err),
391
- });
392
- }
393
- }
394
- logger?.info('import', 'sessions-complete', `Completed importing ${result.sessionsImported} sessions`, {
395
- imported: result.sessionsImported,
396
- });
397
- }
398
- catch (err) {
399
- const errorMsg = `Failed to parse sessions.json: ${String(err)}`;
400
- result.errors.push(errorMsg);
401
- logger?.error('import', 'parse-sessions', errorMsg);
402
- }
403
- }
404
- else {
405
- logger?.warn('import', 'sessions-missing', 'sessions.json not found, skipping session import');
406
- }
407
- }
408
- export async function migrateJsonToSqlite(cwd, options) {
409
- const cleoDir = getCleoDirAbsolute(cwd);
410
- const result = {
411
- success: false,
412
- tasksImported: 0,
413
- archivedImported: 0,
414
- sessionsImported: 0,
415
- errors: [],
416
- warnings: [],
417
- };
418
- // Count JSON source records
419
- const jsonCounts = countJsonRecords(cleoDir);
420
- result.jsonCounts = jsonCounts;
421
- // Check if database already exists for idempotency
422
- if (dbExists(cwd)) {
423
- const { ne, eq, count } = await import('drizzle-orm');
424
- const db = await getDb(cwd);
425
- // Count existing rows in SQLite
426
- const tasksResult = await db
427
- .select({ count: count() })
428
- .from(schema.tasks)
429
- .where(ne(schema.tasks.status, 'archived'))
430
- .get();
431
- const archivedResult = await db
432
- .select({ count: count() })
433
- .from(schema.tasks)
434
- .where(eq(schema.tasks.status, 'archived'))
435
- .get();
436
- const sessionsResult = await db.select({ count: count() }).from(schema.sessions).get();
437
- const existingCounts = {
438
- tasks: tasksResult?.count ?? 0,
439
- archived: archivedResult?.count ?? 0,
440
- sessions: sessionsResult?.count ?? 0,
441
- };
442
- result.existingCounts = existingCounts;
443
- // Handle dry-run mode: show diff without making changes
444
- if (options?.dryRun) {
445
- const countsMatch = existingCounts.tasks === jsonCounts.tasks &&
446
- existingCounts.archived === jsonCounts.archived &&
447
- existingCounts.sessions === jsonCounts.sessions;
448
- if (countsMatch) {
449
- result.warnings.push('Dry-run: Database already contains migrated data. No changes needed.');
450
- }
451
- else {
452
- const diffs = [];
453
- if (existingCounts.tasks !== jsonCounts.tasks) {
454
- diffs.push(`tasks: DB=${existingCounts.tasks}, JSON=${jsonCounts.tasks}`);
455
- }
456
- if (existingCounts.archived !== jsonCounts.archived) {
457
- diffs.push(`archived: DB=${existingCounts.archived}, JSON=${jsonCounts.archived}`);
458
- }
459
- if (existingCounts.sessions !== jsonCounts.sessions) {
460
- diffs.push(`sessions: DB=${existingCounts.sessions}, JSON=${jsonCounts.sessions}`);
461
- }
462
- result.warnings.push(`Dry-run: Data mismatch detected - ${diffs.join('; ')}. Would import ${jsonCounts.tasks - existingCounts.tasks} tasks, ${jsonCounts.archived - existingCounts.archived} archived, ${jsonCounts.sessions - existingCounts.sessions} sessions.`);
463
- }
464
- result.success = true;
465
- return result;
466
- }
467
- // Check if migration is already complete (unless force is specified)
468
- if (!options?.force) {
469
- const countsMatch = existingCounts.tasks === jsonCounts.tasks &&
470
- existingCounts.archived === jsonCounts.archived &&
471
- existingCounts.sessions === jsonCounts.sessions;
472
- if (countsMatch) {
473
- result.warnings.push('Database already contains migrated data. Use --force to re-import.');
474
- result.success = true;
475
- return result;
476
- }
477
- // Counts differ - report mismatch
478
- result.warnings.push(`Data mismatch detected: DB has ${existingCounts.tasks} tasks, ${existingCounts.archived} archived, ${existingCounts.sessions} sessions; JSON has ${jsonCounts.tasks} tasks, ${jsonCounts.archived} archived, ${jsonCounts.sessions} sessions. Use --force to re-import.`);
479
- result.success = true;
480
- return result;
481
- }
482
- // Force mode: continue with migration
483
- result.warnings.push('Force mode: Re-importing data despite existing database.');
484
- }
485
- // Handle dry-run mode when DB doesn't exist
486
- if (options?.dryRun) {
487
- result.warnings.push(`Dry-run: Would import ${jsonCounts.tasks} tasks, ${jsonCounts.archived} archived tasks, ${jsonCounts.sessions} sessions.`);
488
- result.success = true;
489
- return result;
490
- }
491
- const db = await getDb(cwd);
492
- // === MIGRATE TASKS from todo.json ===
493
- const todoPath = join(cleoDir, 'todo.json');
494
- if (existsSync(todoPath)) {
495
- try {
496
- const todoData = JSON.parse(readFileSync(todoPath, 'utf-8'));
497
- const tasks = topoSortTasks(todoData.tasks ?? []);
498
- for (const task of tasks) {
499
- try {
500
- db.insert(schema.tasks)
501
- .values({
502
- id: task.id,
503
- title: task.title,
504
- description: task.description || `Task: ${task.title}`,
505
- status: task.status,
506
- priority: task.priority ?? 'medium',
507
- type: task.type,
508
- parentId: task.parentId,
509
- phase: task.phase,
510
- size: task.size,
511
- position: task.position,
512
- labelsJson: task.labels ? JSON.stringify(task.labels) : '[]',
513
- notesJson: task.notes ? JSON.stringify(task.notes) : '[]',
514
- acceptanceJson: task.acceptance ? JSON.stringify(task.acceptance) : '[]',
515
- filesJson: task.files ? JSON.stringify(task.files) : '[]',
516
- origin: task.origin,
517
- blockedBy: task.blockedBy,
518
- epicLifecycle: task.epicLifecycle,
519
- noAutoComplete: task.noAutoComplete,
520
- createdAt: task.createdAt,
521
- updatedAt: task.updatedAt,
522
- completedAt: task.completedAt,
523
- cancelledAt: task.cancelledAt,
524
- cancellationReason: task.cancellationReason,
525
- verificationJson: task.verification ? JSON.stringify(task.verification) : undefined,
526
- createdBy: task.provenance?.createdBy,
527
- modifiedBy: task.provenance?.modifiedBy,
528
- sessionId: task.provenance?.sessionId,
529
- })
530
- .onConflictDoNothing()
531
- .run();
532
- // Insert dependencies
533
- if (task.depends) {
534
- for (const depId of task.depends) {
535
- db.insert(schema.taskDependencies)
536
- .values({ taskId: task.id, dependsOn: depId })
537
- .onConflictDoNothing()
538
- .run();
539
- }
540
- }
541
- result.tasksImported++;
542
- }
543
- catch (err) {
544
- result.errors.push(`Failed to import task ${task.id}: ${String(err)}`);
545
- }
546
- }
547
- }
548
- catch (err) {
549
- result.errors.push(`Failed to parse todo.json: ${String(err)}`);
550
- }
551
- }
552
- else {
553
- result.warnings.push('todo.json not found, skipping task import');
554
- }
555
- // === MIGRATE ARCHIVED TASKS from todo-archive.json ===
556
- const archivePath = join(cleoDir, 'todo-archive.json');
557
- if (existsSync(archivePath)) {
558
- try {
559
- const archiveData = JSON.parse(readFileSync(archivePath, 'utf-8'));
560
- const archivedTasks = topoSortTasks(archiveData.tasks ?? archiveData.archivedTasks ?? []);
561
- for (const task of archivedTasks) {
562
- try {
563
- db.insert(schema.tasks)
564
- .values({
565
- id: task.id,
566
- title: task.title,
567
- description: task.description || `Task: ${task.title}`,
568
- status: 'archived',
569
- priority: task.priority ?? 'medium',
570
- type: task.type,
571
- parentId: task.parentId,
572
- phase: task.phase,
573
- size: task.size,
574
- position: task.position,
575
- labelsJson: task.labels ? JSON.stringify(task.labels) : '[]',
576
- notesJson: task.notes ? JSON.stringify(task.notes) : '[]',
577
- acceptanceJson: task.acceptance ? JSON.stringify(task.acceptance) : '[]',
578
- filesJson: task.files ? JSON.stringify(task.files) : '[]',
579
- createdAt: task.createdAt,
580
- updatedAt: task.updatedAt,
581
- completedAt: task.completedAt,
582
- archivedAt: task.archivedAt ?? task.completedAt ?? new Date().toISOString(),
583
- archiveReason: task.archiveReason ?? 'migrated',
584
- cycleTimeDays: task.cycleTimeDays,
585
- })
586
- .onConflictDoNothing()
587
- .run();
588
- result.archivedImported++;
589
- }
590
- catch (err) {
591
- result.errors.push(`Failed to import archived task ${task.id}: ${String(err)}`);
592
- }
593
- }
594
- }
595
- catch (err) {
596
- result.errors.push(`Failed to parse todo-archive.json: ${String(err)}`);
597
- }
598
- }
599
- // === MIGRATE SESSIONS from sessions.json ===
600
- const sessionsPath = join(cleoDir, 'sessions.json');
601
- if (existsSync(sessionsPath)) {
602
- try {
603
- const sessionsData = JSON.parse(readFileSync(sessionsPath, 'utf-8'));
604
- const sessions = sessionsData.sessions ?? [];
605
- for (const session of sessions) {
606
- try {
607
- // Normalize status: map legacy 'archived' to 'ended' for SQLite CHECK constraint
608
- // @task T4658 @epic T4654
609
- const validStatuses = ['active', 'ended', 'orphaned', 'suspended'];
610
- const normalizedStatus = (validStatuses.includes(session.status) ? session.status : 'ended'); // 'archived' and any other legacy statuses -> 'ended'
611
- // Provide default name for sessions with null/undefined names
612
- const normalizedName = session.name || `session-${session.id}`;
613
- db.insert(schema.sessions)
614
- .values({
615
- id: session.id,
616
- name: normalizedName,
617
- status: normalizedStatus,
618
- scopeJson: JSON.stringify(session.scope),
619
- currentTask: session.taskWork?.taskId,
620
- taskStartedAt: session.taskWork?.setAt,
621
- agent: session.agent,
622
- notesJson: session.notes ? JSON.stringify(session.notes) : '[]',
623
- tasksCompletedJson: session.tasksCompleted
624
- ? JSON.stringify(session.tasksCompleted)
625
- : '[]',
626
- tasksCreatedJson: session.tasksCreated ? JSON.stringify(session.tasksCreated) : '[]',
627
- startedAt: session.startedAt,
628
- endedAt: session.endedAt,
629
- })
630
- .onConflictDoNothing()
631
- .run();
632
- result.sessionsImported++;
633
- }
634
- catch (err) {
635
- result.errors.push(`Failed to import session ${session.id}: ${String(err)}`);
636
- }
637
- }
638
- }
639
- catch (err) {
640
- result.errors.push(`Failed to parse sessions.json: ${String(err)}`);
641
- }
642
- }
643
- // Save database to disk
644
- result.success = result.errors.length === 0;
645
- return result;
646
- }
647
- /**
648
- * Export SQLite data back to JSON format (for inspection or emergency recovery).
649
- */
650
- export async function exportToJson(cwd) {
651
- const { listTasks } = await import('./task-store.js');
652
- const { listSessions } = await import('./session-store.js');
653
- const { eq } = await import('drizzle-orm');
654
- const tasks = await listTasks(undefined, cwd);
655
- // Get archived tasks separately
656
- const db = await getDb(cwd);
657
- const archivedRows = await db
658
- .select()
659
- .from(schema.tasks)
660
- .where(eq(schema.tasks.status, 'archived'))
661
- .all();
662
- // Convert rows to Task format
663
- const archived = archivedRows.map((row) => ({
664
- id: row.id,
665
- title: row.title,
666
- status: 'done',
667
- priority: (row.priority ?? 'medium'),
668
- createdAt: row.createdAt,
669
- description: row.description ?? '',
670
- updatedAt: row.updatedAt,
671
- completedAt: row.completedAt ?? undefined,
672
- }));
673
- const sessions = await listSessions(undefined, cwd);
674
- return { tasks, archived, sessions };
675
- }
676
- //# sourceMappingURL=migration-sqlite.js.map