@lwelliott/cortex-cli 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -0
  3. package/dist/cli/audit.d.ts +3 -0
  4. package/dist/cli/audit.d.ts.map +1 -0
  5. package/dist/cli/audit.js +78 -0
  6. package/dist/cli/audit.js.map +1 -0
  7. package/dist/cli/doc.d.ts +3 -0
  8. package/dist/cli/doc.d.ts.map +1 -0
  9. package/dist/cli/doc.js +291 -0
  10. package/dist/cli/doc.js.map +1 -0
  11. package/dist/cli/entity.d.ts +3 -0
  12. package/dist/cli/entity.d.ts.map +1 -0
  13. package/dist/cli/entity.js +135 -0
  14. package/dist/cli/entity.js.map +1 -0
  15. package/dist/cli/format-selector.d.ts +30 -0
  16. package/dist/cli/format-selector.d.ts.map +1 -0
  17. package/dist/cli/format-selector.js +101 -0
  18. package/dist/cli/format-selector.js.map +1 -0
  19. package/dist/cli/formatters/audit-formatter.d.ts +33 -0
  20. package/dist/cli/formatters/audit-formatter.d.ts.map +1 -0
  21. package/dist/cli/formatters/audit-formatter.js +204 -0
  22. package/dist/cli/formatters/audit-formatter.js.map +1 -0
  23. package/dist/cli/formatters/json.d.ts +10 -0
  24. package/dist/cli/formatters/json.d.ts.map +1 -0
  25. package/dist/cli/formatters/json.js +31 -0
  26. package/dist/cli/formatters/json.js.map +1 -0
  27. package/dist/cli/formatters/markdown.d.ts +12 -0
  28. package/dist/cli/formatters/markdown.d.ts.map +1 -0
  29. package/dist/cli/formatters/markdown.js +341 -0
  30. package/dist/cli/formatters/markdown.js.map +1 -0
  31. package/dist/cli/formatters/quiet.d.ts +15 -0
  32. package/dist/cli/formatters/quiet.d.ts.map +1 -0
  33. package/dist/cli/formatters/quiet.js +75 -0
  34. package/dist/cli/formatters/quiet.js.map +1 -0
  35. package/dist/cli/formatters/table.d.ts +11 -0
  36. package/dist/cli/formatters/table.d.ts.map +1 -0
  37. package/dist/cli/formatters/table.js +726 -0
  38. package/dist/cli/formatters/table.js.map +1 -0
  39. package/dist/cli/graph.d.ts +3 -0
  40. package/dist/cli/graph.d.ts.map +1 -0
  41. package/dist/cli/graph.js +209 -0
  42. package/dist/cli/graph.js.map +1 -0
  43. package/dist/cli/index.d.ts +3 -0
  44. package/dist/cli/index.d.ts.map +1 -0
  45. package/dist/cli/index.js +144 -0
  46. package/dist/cli/index.js.map +1 -0
  47. package/dist/cli/lesson.d.ts +3 -0
  48. package/dist/cli/lesson.d.ts.map +1 -0
  49. package/dist/cli/lesson.js +85 -0
  50. package/dist/cli/lesson.js.map +1 -0
  51. package/dist/cli/project-resolver.d.ts +17 -0
  52. package/dist/cli/project-resolver.d.ts.map +1 -0
  53. package/dist/cli/project-resolver.js +25 -0
  54. package/dist/cli/project-resolver.js.map +1 -0
  55. package/dist/cli/project.d.ts +12 -0
  56. package/dist/cli/project.d.ts.map +1 -0
  57. package/dist/cli/project.js +169 -0
  58. package/dist/cli/project.js.map +1 -0
  59. package/dist/cli/relation.d.ts +3 -0
  60. package/dist/cli/relation.d.ts.map +1 -0
  61. package/dist/cli/relation.js +128 -0
  62. package/dist/cli/relation.js.map +1 -0
  63. package/dist/cli/review.d.ts +3 -0
  64. package/dist/cli/review.d.ts.map +1 -0
  65. package/dist/cli/review.js +131 -0
  66. package/dist/cli/review.js.map +1 -0
  67. package/dist/cli/router.d.ts +38 -0
  68. package/dist/cli/router.d.ts.map +1 -0
  69. package/dist/cli/router.js +49 -0
  70. package/dist/cli/router.js.map +1 -0
  71. package/dist/cli/schema.d.ts +3 -0
  72. package/dist/cli/schema.d.ts.map +1 -0
  73. package/dist/cli/schema.js +94 -0
  74. package/dist/cli/schema.js.map +1 -0
  75. package/dist/cli/sprint.d.ts +12 -0
  76. package/dist/cli/sprint.d.ts.map +1 -0
  77. package/dist/cli/sprint.js +200 -0
  78. package/dist/cli/sprint.js.map +1 -0
  79. package/dist/cli/task.d.ts +12 -0
  80. package/dist/cli/task.d.ts.map +1 -0
  81. package/dist/cli/task.js +252 -0
  82. package/dist/cli/task.js.map +1 -0
  83. package/dist/cli/test-report.d.ts +3 -0
  84. package/dist/cli/test-report.d.ts.map +1 -0
  85. package/dist/cli/test-report.js +134 -0
  86. package/dist/cli/test-report.js.map +1 -0
  87. package/dist/cli/validate.d.ts +8 -0
  88. package/dist/cli/validate.d.ts.map +1 -0
  89. package/dist/cli/validate.js +86 -0
  90. package/dist/cli/validate.js.map +1 -0
  91. package/dist/config/config.d.ts +18 -0
  92. package/dist/config/config.d.ts.map +1 -0
  93. package/dist/config/config.js +70 -0
  94. package/dist/config/config.js.map +1 -0
  95. package/dist/config/registry.d.ts +52 -0
  96. package/dist/config/registry.d.ts.map +1 -0
  97. package/dist/config/registry.js +193 -0
  98. package/dist/config/registry.js.map +1 -0
  99. package/dist/config/resolver.d.ts +26 -0
  100. package/dist/config/resolver.d.ts.map +1 -0
  101. package/dist/config/resolver.js +87 -0
  102. package/dist/config/resolver.js.map +1 -0
  103. package/dist/db/builtin-schema-constants.d.ts +109 -0
  104. package/dist/db/builtin-schema-constants.d.ts.map +1 -0
  105. package/dist/db/builtin-schema-constants.js +32 -0
  106. package/dist/db/builtin-schema-constants.js.map +1 -0
  107. package/dist/db/connection.d.ts +34 -0
  108. package/dist/db/connection.d.ts.map +1 -0
  109. package/dist/db/connection.js +140 -0
  110. package/dist/db/connection.js.map +1 -0
  111. package/dist/db/generated/schema-types.d.ts +134 -0
  112. package/dist/db/generated/schema-types.d.ts.map +1 -0
  113. package/dist/db/generated/schema-types.js +31 -0
  114. package/dist/db/generated/schema-types.js.map +1 -0
  115. package/dist/db/locks.d.ts +106 -0
  116. package/dist/db/locks.d.ts.map +1 -0
  117. package/dist/db/locks.js +211 -0
  118. package/dist/db/locks.js.map +1 -0
  119. package/dist/db/migration.d.ts +65 -0
  120. package/dist/db/migration.d.ts.map +1 -0
  121. package/dist/db/migration.js +233 -0
  122. package/dist/db/migration.js.map +1 -0
  123. package/dist/db/retry.d.ts +26 -0
  124. package/dist/db/retry.d.ts.map +1 -0
  125. package/dist/db/retry.js +71 -0
  126. package/dist/db/retry.js.map +1 -0
  127. package/dist/db/schema.d.ts +21 -0
  128. package/dist/db/schema.d.ts.map +1 -0
  129. package/dist/db/schema.js +830 -0
  130. package/dist/db/schema.js.map +1 -0
  131. package/dist/models/common.d.ts +27 -0
  132. package/dist/models/common.d.ts.map +1 -0
  133. package/dist/models/common.js +4 -0
  134. package/dist/models/common.js.map +1 -0
  135. package/dist/models/document.d.ts +89 -0
  136. package/dist/models/document.d.ts.map +1 -0
  137. package/dist/models/document.js +5 -0
  138. package/dist/models/document.js.map +1 -0
  139. package/dist/models/entity-model.d.ts +30 -0
  140. package/dist/models/entity-model.d.ts.map +1 -0
  141. package/dist/models/entity-model.js +99 -0
  142. package/dist/models/entity-model.js.map +1 -0
  143. package/dist/models/entity.d.ts +88 -0
  144. package/dist/models/entity.d.ts.map +1 -0
  145. package/dist/models/entity.js +5 -0
  146. package/dist/models/entity.js.map +1 -0
  147. package/dist/models/graph-schema.d.ts +43 -0
  148. package/dist/models/graph-schema.d.ts.map +1 -0
  149. package/dist/models/graph-schema.js +76 -0
  150. package/dist/models/graph-schema.js.map +1 -0
  151. package/dist/models/project.d.ts +49 -0
  152. package/dist/models/project.d.ts.map +1 -0
  153. package/dist/models/project.js +18 -0
  154. package/dist/models/project.js.map +1 -0
  155. package/dist/models/relation.d.ts +35 -0
  156. package/dist/models/relation.d.ts.map +1 -0
  157. package/dist/models/relation.js +212 -0
  158. package/dist/models/relation.js.map +1 -0
  159. package/dist/models/review.d.ts +86 -0
  160. package/dist/models/review.d.ts.map +1 -0
  161. package/dist/models/review.js +5 -0
  162. package/dist/models/review.js.map +1 -0
  163. package/dist/models/sprint.d.ts +38 -0
  164. package/dist/models/sprint.d.ts.map +1 -0
  165. package/dist/models/sprint.js +4 -0
  166. package/dist/models/sprint.js.map +1 -0
  167. package/dist/models/task.d.ts +75 -0
  168. package/dist/models/task.d.ts.map +1 -0
  169. package/dist/models/task.js +4 -0
  170. package/dist/models/task.js.map +1 -0
  171. package/dist/models/validation.d.ts +25 -0
  172. package/dist/models/validation.d.ts.map +1 -0
  173. package/dist/models/validation.js +4 -0
  174. package/dist/models/validation.js.map +1 -0
  175. package/dist/services/audit-check-service.d.ts +16 -0
  176. package/dist/services/audit-check-service.d.ts.map +1 -0
  177. package/dist/services/audit-check-service.js +137 -0
  178. package/dist/services/audit-check-service.js.map +1 -0
  179. package/dist/services/audit-checks/dangling-relations-check.d.ts +7 -0
  180. package/dist/services/audit-checks/dangling-relations-check.d.ts.map +1 -0
  181. package/dist/services/audit-checks/dangling-relations-check.js +52 -0
  182. package/dist/services/audit-checks/dangling-relations-check.js.map +1 -0
  183. package/dist/services/audit-checks/duplicate-ids-check.d.ts +4 -0
  184. package/dist/services/audit-checks/duplicate-ids-check.d.ts.map +1 -0
  185. package/dist/services/audit-checks/duplicate-ids-check.js +49 -0
  186. package/dist/services/audit-checks/duplicate-ids-check.js.map +1 -0
  187. package/dist/services/audit-checks/fix-engine.d.ts +24 -0
  188. package/dist/services/audit-checks/fix-engine.d.ts.map +1 -0
  189. package/dist/services/audit-checks/fix-engine.js +114 -0
  190. package/dist/services/audit-checks/fix-engine.js.map +1 -0
  191. package/dist/services/audit-checks/fr-nfr-to-fs-nfs-check.d.ts +9 -0
  192. package/dist/services/audit-checks/fr-nfr-to-fs-nfs-check.d.ts.map +1 -0
  193. package/dist/services/audit-checks/fr-nfr-to-fs-nfs-check.js +56 -0
  194. package/dist/services/audit-checks/fr-nfr-to-fs-nfs-check.js.map +1 -0
  195. package/dist/services/audit-checks/fs-nfs-to-sad-ad-qa-check.d.ts +10 -0
  196. package/dist/services/audit-checks/fs-nfs-to-sad-ad-qa-check.d.ts.map +1 -0
  197. package/dist/services/audit-checks/fs-nfs-to-sad-ad-qa-check.js +57 -0
  198. package/dist/services/audit-checks/fs-nfs-to-sad-ad-qa-check.js.map +1 -0
  199. package/dist/services/audit-checks/fs-nfs-to-ts-check.d.ts +9 -0
  200. package/dist/services/audit-checks/fs-nfs-to-ts-check.d.ts.map +1 -0
  201. package/dist/services/audit-checks/fs-nfs-to-ts-check.js +56 -0
  202. package/dist/services/audit-checks/fs-nfs-to-ts-check.js.map +1 -0
  203. package/dist/services/audit-checks/inverse-consistency-check.d.ts +7 -0
  204. package/dist/services/audit-checks/inverse-consistency-check.d.ts.map +1 -0
  205. package/dist/services/audit-checks/inverse-consistency-check.js +54 -0
  206. package/dist/services/audit-checks/inverse-consistency-check.js.map +1 -0
  207. package/dist/services/audit-checks/mapping-check.d.ts +4 -0
  208. package/dist/services/audit-checks/mapping-check.d.ts.map +1 -0
  209. package/dist/services/audit-checks/mapping-check.js +74 -0
  210. package/dist/services/audit-checks/mapping-check.js.map +1 -0
  211. package/dist/services/audit-checks/orphan-documents-check.d.ts +9 -0
  212. package/dist/services/audit-checks/orphan-documents-check.d.ts.map +1 -0
  213. package/dist/services/audit-checks/orphan-documents-check.js +54 -0
  214. package/dist/services/audit-checks/orphan-documents-check.js.map +1 -0
  215. package/dist/services/audit-checks/orphan-entities-check.d.ts +4 -0
  216. package/dist/services/audit-checks/orphan-entities-check.d.ts.map +1 -0
  217. package/dist/services/audit-checks/orphan-entities-check.js +39 -0
  218. package/dist/services/audit-checks/orphan-entities-check.js.map +1 -0
  219. package/dist/services/audit-checks/sad-ad-qa-tc-to-src-check.d.ts +9 -0
  220. package/dist/services/audit-checks/sad-ad-qa-tc-to-src-check.d.ts.map +1 -0
  221. package/dist/services/audit-checks/sad-ad-qa-tc-to-src-check.js +56 -0
  222. package/dist/services/audit-checks/sad-ad-qa-tc-to-src-check.js.map +1 -0
  223. package/dist/services/audit-checks/sprint-consistency-check.d.ts +4 -0
  224. package/dist/services/audit-checks/sprint-consistency-check.d.ts.map +1 -0
  225. package/dist/services/audit-checks/sprint-consistency-check.js +80 -0
  226. package/dist/services/audit-checks/sprint-consistency-check.js.map +1 -0
  227. package/dist/services/audit-checks/src-filesystem-only-check.d.ts +10 -0
  228. package/dist/services/audit-checks/src-filesystem-only-check.d.ts.map +1 -0
  229. package/dist/services/audit-checks/src-filesystem-only-check.js +106 -0
  230. package/dist/services/audit-checks/src-filesystem-only-check.js.map +1 -0
  231. package/dist/services/audit-checks/ts-to-tc-check.d.ts +10 -0
  232. package/dist/services/audit-checks/ts-to-tc-check.d.ts.map +1 -0
  233. package/dist/services/audit-checks/ts-to-tc-check.js +58 -0
  234. package/dist/services/audit-checks/ts-to-tc-check.js.map +1 -0
  235. package/dist/services/audit-checks/type-mismatch-check.d.ts +4 -0
  236. package/dist/services/audit-checks/type-mismatch-check.d.ts.map +1 -0
  237. package/dist/services/audit-checks/type-mismatch-check.js +55 -0
  238. package/dist/services/audit-checks/type-mismatch-check.js.map +1 -0
  239. package/dist/services/audit-checks/types.d.ts +66 -0
  240. package/dist/services/audit-checks/types.d.ts.map +1 -0
  241. package/dist/services/audit-checks/types.js +30 -0
  242. package/dist/services/audit-checks/types.js.map +1 -0
  243. package/dist/services/audit-checks/us-to-fr-nfr-check.d.ts +9 -0
  244. package/dist/services/audit-checks/us-to-fr-nfr-check.d.ts.map +1 -0
  245. package/dist/services/audit-checks/us-to-fr-nfr-check.js +56 -0
  246. package/dist/services/audit-checks/us-to-fr-nfr-check.js.map +1 -0
  247. package/dist/services/doc-entity-mapping.d.ts +19 -0
  248. package/dist/services/doc-entity-mapping.d.ts.map +1 -0
  249. package/dist/services/doc-entity-mapping.js +35 -0
  250. package/dist/services/doc-entity-mapping.js.map +1 -0
  251. package/dist/services/document-service.d.ts +58 -0
  252. package/dist/services/document-service.d.ts.map +1 -0
  253. package/dist/services/document-service.js +409 -0
  254. package/dist/services/document-service.js.map +1 -0
  255. package/dist/services/graph-export-service.d.ts +12 -0
  256. package/dist/services/graph-export-service.d.ts.map +1 -0
  257. package/dist/services/graph-export-service.js +112 -0
  258. package/dist/services/graph-export-service.js.map +1 -0
  259. package/dist/services/graph-service.d.ts +21 -0
  260. package/dist/services/graph-service.d.ts.map +1 -0
  261. package/dist/services/graph-service.js +49 -0
  262. package/dist/services/graph-service.js.map +1 -0
  263. package/dist/services/graph-validation-service.d.ts +13 -0
  264. package/dist/services/graph-validation-service.d.ts.map +1 -0
  265. package/dist/services/graph-validation-service.js +171 -0
  266. package/dist/services/graph-validation-service.js.map +1 -0
  267. package/dist/services/project.d.ts +80 -0
  268. package/dist/services/project.d.ts.map +1 -0
  269. package/dist/services/project.js +256 -0
  270. package/dist/services/project.js.map +1 -0
  271. package/dist/services/review-service.d.ts +81 -0
  272. package/dist/services/review-service.d.ts.map +1 -0
  273. package/dist/services/review-service.js +242 -0
  274. package/dist/services/review-service.js.map +1 -0
  275. package/dist/services/schema-migration-service.d.ts +44 -0
  276. package/dist/services/schema-migration-service.d.ts.map +1 -0
  277. package/dist/services/schema-migration-service.js +894 -0
  278. package/dist/services/schema-migration-service.js.map +1 -0
  279. package/dist/services/sprint.d.ts +71 -0
  280. package/dist/services/sprint.d.ts.map +1 -0
  281. package/dist/services/sprint.js +238 -0
  282. package/dist/services/sprint.js.map +1 -0
  283. package/dist/services/stage-validator.d.ts +36 -0
  284. package/dist/services/stage-validator.d.ts.map +1 -0
  285. package/dist/services/stage-validator.js +78 -0
  286. package/dist/services/stage-validator.js.map +1 -0
  287. package/dist/services/task.d.ts +75 -0
  288. package/dist/services/task.d.ts.map +1 -0
  289. package/dist/services/task.js +487 -0
  290. package/dist/services/task.js.map +1 -0
  291. package/dist/services/validation.d.ts +24 -0
  292. package/dist/services/validation.d.ts.map +1 -0
  293. package/dist/services/validation.js +53 -0
  294. package/dist/services/validation.js.map +1 -0
  295. package/dist/state-machines/sprint-state.d.ts +25 -0
  296. package/dist/state-machines/sprint-state.d.ts.map +1 -0
  297. package/dist/state-machines/sprint-state.js +64 -0
  298. package/dist/state-machines/sprint-state.js.map +1 -0
  299. package/dist/state-machines/task-state.d.ts +31 -0
  300. package/dist/state-machines/task-state.d.ts.map +1 -0
  301. package/dist/state-machines/task-state.js +83 -0
  302. package/dist/state-machines/task-state.js.map +1 -0
  303. package/dist/utils/errors.d.ts +673 -0
  304. package/dist/utils/errors.d.ts.map +1 -0
  305. package/dist/utils/errors.js +1447 -0
  306. package/dist/utils/errors.js.map +1 -0
  307. package/dist/utils/format.d.ts +52 -0
  308. package/dist/utils/format.d.ts.map +1 -0
  309. package/dist/utils/format.js +65 -0
  310. package/dist/utils/format.js.map +1 -0
  311. package/dist/validators/board-integrity.d.ts +25 -0
  312. package/dist/validators/board-integrity.d.ts.map +1 -0
  313. package/dist/validators/board-integrity.js +102 -0
  314. package/dist/validators/board-integrity.js.map +1 -0
  315. package/dist/validators/board-shape.d.ts +13 -0
  316. package/dist/validators/board-shape.d.ts.map +1 -0
  317. package/dist/validators/board-shape.js +74 -0
  318. package/dist/validators/board-shape.js.map +1 -0
  319. package/dist/validators/owner-validator.d.ts +30 -0
  320. package/dist/validators/owner-validator.d.ts.map +1 -0
  321. package/dist/validators/owner-validator.js +70 -0
  322. package/dist/validators/owner-validator.js.map +1 -0
  323. package/dist/validators/spawn-legality.d.ts +19 -0
  324. package/dist/validators/spawn-legality.d.ts.map +1 -0
  325. package/dist/validators/spawn-legality.js +77 -0
  326. package/dist/validators/spawn-legality.js.map +1 -0
  327. package/dist/validators/state-field-checker.d.ts +8 -0
  328. package/dist/validators/state-field-checker.d.ts.map +1 -0
  329. package/dist/validators/state-field-checker.js +47 -0
  330. package/dist/validators/state-field-checker.js.map +1 -0
  331. package/dist/validators/state-field-recorder.d.ts +39 -0
  332. package/dist/validators/state-field-recorder.d.ts.map +1 -0
  333. package/dist/validators/state-field-recorder.js +62 -0
  334. package/dist/validators/state-field-recorder.js.map +1 -0
  335. package/package.json +53 -0
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ // CLI subcommands for schema group
3
+ // SAD-0012: Type System Overhaul — Migration Architecture
4
+ // MOD-022: Schema Migration Orchestrator
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createSchemaGroup = createSchemaGroup;
7
+ const commander_1 = require("commander");
8
+ const path_1 = require("path");
9
+ const connection_1 = require("../db/connection");
10
+ const migration_1 = require("../db/migration");
11
+ const project_resolver_1 = require("./project-resolver");
12
+ const format_selector_1 = require("./format-selector");
13
+ const schema_migration_service_1 = require("../services/schema-migration-service");
14
+ function run(fn, optsOrCmd) {
15
+ try {
16
+ const opts = optsOrCmd instanceof commander_1.Command ? optsOrCmd.optsWithGlobals() : optsOrCmd;
17
+ const output = fn(opts);
18
+ if (output)
19
+ console.log(output);
20
+ }
21
+ catch (err) {
22
+ const opts = optsOrCmd instanceof commander_1.Command ? optsOrCmd.optsWithGlobals() : optsOrCmd;
23
+ const format = (0, format_selector_1.selectFormat)({ quiet: opts.quiet, json: opts.json, format: opts.format });
24
+ console.error((0, format_selector_1.formatErrorOutput)(err instanceof Error ? err : new Error(String(err)), format));
25
+ process.exit(1);
26
+ }
27
+ }
28
+ function createSchemaGroup() {
29
+ const group = new commander_1.Command('schema').description('Graph schema management and migration');
30
+ // schema migrate — run the 4-phase schema migration
31
+ group.command('migrate')
32
+ .description('Run schema migration (MOD-022: Type System Overhaul)')
33
+ .option('--phase <phase>', 'Run only a specific phase: entity-types, relation-types, doc-types, schema-sync')
34
+ .action((_opts, _cmd) => {
35
+ run((opts) => {
36
+ const format = (0, format_selector_1.selectFormat)(opts);
37
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
38
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
39
+ try {
40
+ (0, migration_1.initializeSchema)(db, false, true); // skip builtin schema since we're running migration
41
+ const projectRoot = (0, path_1.resolve)(resolved.folder || process.cwd());
42
+ const result = (0, schema_migration_service_1.runMigration)(db, projectRoot);
43
+ // Also return JSON output regardless of format for structured info
44
+ const summary = {
45
+ success: result.success,
46
+ totalElapsedMs: result.totalElapsedMs,
47
+ phases: result.phases.map(p => ({
48
+ phase: p.phase,
49
+ elapsedMs: p.elapsedMs,
50
+ details: p.details,
51
+ ...(p.error ? { error: p.error } : {}),
52
+ })),
53
+ ...(result.errors.length > 0 ? { errors: result.errors } : {}),
54
+ };
55
+ return (0, format_selector_1.formatOutput)(summary, format, 'schema-migration');
56
+ }
57
+ finally {
58
+ db.close();
59
+ }
60
+ }, _cmd);
61
+ });
62
+ // schema validate — validate pre/post migration state
63
+ group.command('validate')
64
+ .description('Validate schema state')
65
+ .action((_opts, _cmd) => {
66
+ run((opts) => {
67
+ const format = (0, format_selector_1.selectFormat)(opts);
68
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
69
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
70
+ try {
71
+ (0, migration_1.initializeSchema)(db, false, true);
72
+ let state;
73
+ try {
74
+ (0, schema_migration_service_1.validatePostMigration)(db);
75
+ state = 'POST-MIGRATION (16 entity types, 27 relation types)';
76
+ }
77
+ catch {
78
+ // Check pre-migration state
79
+ const entityTypeCount = db.prepare('SELECT COUNT(*) as cnt FROM entity_types').get().cnt;
80
+ const relationTypeCount = db.prepare('SELECT COUNT(*) as cnt FROM relation_types').get().cnt;
81
+ state = entityTypeCount === 20 && relationTypeCount === 31
82
+ ? 'PRE-MIGRATION (20 entity types, 31 relation types)'
83
+ : `INTERMEDIATE (${entityTypeCount} entity types, ${relationTypeCount} relation types)`;
84
+ }
85
+ return (0, format_selector_1.formatOutput)({ state, valid: state.startsWith('POST'), details: { entityTypeCount: 0, relationTypeCount: 0 } }, format, 'schema-validate');
86
+ }
87
+ finally {
88
+ db.close();
89
+ }
90
+ }, _cmd);
91
+ });
92
+ return group;
93
+ }
94
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/cli/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Command } from 'commander';
2
+ export declare function createSprintInitCommand(): Command;
3
+ export declare function createSprintOverviewCommand(): Command;
4
+ export declare function createSprintActiveTasksCommand(): Command;
5
+ export declare function createSprintListCommand(): Command;
6
+ export declare function createSprintSetStatusCommand(): Command;
7
+ export declare function createSprintUpdateCommand(): Command;
8
+ /**
9
+ * Create the sprint command group with all subcommands.
10
+ */
11
+ export declare function createSprintGroup(): Command;
12
+ //# sourceMappingURL=sprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprint.d.ts","sourceRoot":"","sources":["../../src/cli/sprint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,uBAAuB,IAAI,OAAO,CAuBjD;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CAqBrD;AAED,wBAAgB,8BAA8B,IAAI,OAAO,CAqBxD;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAqBjD;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAsBtD;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CA6CnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAY3C"}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ // CLI subcommands for sprint group
3
+ // MOD-004: Sprint Commands
4
+ // Follows same pattern as src/cli/project.ts
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createSprintInitCommand = createSprintInitCommand;
7
+ exports.createSprintOverviewCommand = createSprintOverviewCommand;
8
+ exports.createSprintActiveTasksCommand = createSprintActiveTasksCommand;
9
+ exports.createSprintListCommand = createSprintListCommand;
10
+ exports.createSprintSetStatusCommand = createSprintSetStatusCommand;
11
+ exports.createSprintUpdateCommand = createSprintUpdateCommand;
12
+ exports.createSprintGroup = createSprintGroup;
13
+ const commander_1 = require("commander");
14
+ const sprint_1 = require("../services/sprint");
15
+ const connection_1 = require("../db/connection");
16
+ const migration_1 = require("../db/migration");
17
+ const project_resolver_1 = require("./project-resolver");
18
+ const format_selector_1 = require("./format-selector");
19
+ function executeHandler(runner, optsOrCmd) {
20
+ try {
21
+ const options = optsOrCmd instanceof commander_1.Command ? optsOrCmd.optsWithGlobals() : optsOrCmd;
22
+ console.log(runner(options));
23
+ }
24
+ catch (err) {
25
+ const options = optsOrCmd instanceof commander_1.Command ? optsOrCmd.optsWithGlobals() : optsOrCmd;
26
+ const format = (0, format_selector_1.selectFormat)({
27
+ quiet: options.quiet,
28
+ json: options.json,
29
+ format: options.format,
30
+ });
31
+ console.error((0, format_selector_1.formatErrorOutput)(err instanceof Error ? err : new Error(String(err)), format));
32
+ process.exit(1);
33
+ }
34
+ }
35
+ function createSprintInitCommand() {
36
+ const cmd = new commander_1.Command('init')
37
+ .description('Create a new sprint')
38
+ .argument('<id>', 'Sprint ID')
39
+ .option('--name <name>', 'Sprint display name')
40
+ .option('--goal <goal>', 'Sprint goal');
41
+ cmd.action((id) => {
42
+ executeHandler((opts) => {
43
+ const format = (0, format_selector_1.selectFormat)(opts);
44
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
45
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
46
+ try {
47
+ (0, migration_1.initializeSchema)(db);
48
+ const result = (0, sprint_1.createSprint)(db, id, opts.name, opts.goal);
49
+ return (0, format_selector_1.formatOutput)(result, format, 'sprint');
50
+ }
51
+ finally {
52
+ db.close();
53
+ }
54
+ }, cmd);
55
+ });
56
+ return cmd;
57
+ }
58
+ function createSprintOverviewCommand() {
59
+ const cmd = new commander_1.Command('overview')
60
+ .description('Show sprint overview with task counts')
61
+ .argument('[sprintId]', 'Sprint ID (uses default if omitted)');
62
+ cmd.action((sprintId) => {
63
+ executeHandler((opts) => {
64
+ const format = (0, format_selector_1.selectFormat)(opts);
65
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
66
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
67
+ try {
68
+ (0, migration_1.initializeSchema)(db);
69
+ const overview = (0, sprint_1.getSprintOverview)(db, sprintId);
70
+ return (0, format_selector_1.formatOutput)(overview, format, 'sprint');
71
+ }
72
+ finally {
73
+ db.close();
74
+ }
75
+ }, cmd);
76
+ });
77
+ return cmd;
78
+ }
79
+ function createSprintActiveTasksCommand() {
80
+ const cmd = new commander_1.Command('active-tasks')
81
+ .description('Show active tasks in a sprint')
82
+ .argument('[sprintId]', 'Sprint ID (uses default if omitted)');
83
+ cmd.action((sprintId) => {
84
+ executeHandler((opts) => {
85
+ const format = (0, format_selector_1.selectFormat)(opts);
86
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
87
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
88
+ try {
89
+ (0, migration_1.initializeSchema)(db);
90
+ const tasks = (0, sprint_1.getSprintActiveTasks)(db, sprintId);
91
+ return (0, format_selector_1.formatOutput)(tasks, format, 'tasks');
92
+ }
93
+ finally {
94
+ db.close();
95
+ }
96
+ }, cmd);
97
+ });
98
+ return cmd;
99
+ }
100
+ function createSprintListCommand() {
101
+ const cmd = new commander_1.Command('list')
102
+ .description('List sprints')
103
+ .option('--status <status>', 'Filter by status (PLANNING, IN EXECUTION, CLOSING, CLOSED)');
104
+ cmd.action(() => {
105
+ executeHandler((opts) => {
106
+ const format = (0, format_selector_1.selectFormat)(opts);
107
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
108
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
109
+ try {
110
+ (0, migration_1.initializeSchema)(db);
111
+ const sprints = (0, sprint_1.listSprints)(db, { status: opts.status });
112
+ return (0, format_selector_1.formatOutput)(sprints, format, 'sprints');
113
+ }
114
+ finally {
115
+ db.close();
116
+ }
117
+ }, cmd);
118
+ });
119
+ return cmd;
120
+ }
121
+ function createSprintSetStatusCommand() {
122
+ const cmd = new commander_1.Command('set-status')
123
+ .description('Transition a sprint to a new status')
124
+ .argument('<id>', 'Sprint ID')
125
+ .requiredOption('--status <status>', 'Target status (PLANNING, IN EXECUTION, CLOSING, CLOSED)');
126
+ cmd.action((id) => {
127
+ executeHandler((opts) => {
128
+ const format = (0, format_selector_1.selectFormat)(opts);
129
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
130
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
131
+ try {
132
+ (0, migration_1.initializeSchema)(db);
133
+ const result = (0, sprint_1.transitionSprintStatus)(db, id, opts.status);
134
+ return (0, format_selector_1.formatOutput)(result, format, 'sprint');
135
+ }
136
+ finally {
137
+ db.close();
138
+ }
139
+ }, cmd);
140
+ });
141
+ return cmd;
142
+ }
143
+ function createSprintUpdateCommand() {
144
+ const cmd = new commander_1.Command('update')
145
+ .description('Update sprint name and/or goal')
146
+ .argument('[id]', 'Sprint ID (uses default sprint if omitted)')
147
+ .option('--name <name>', 'New sprint display name')
148
+ .option('--goal <goal>', 'New sprint goal');
149
+ cmd.action((id) => {
150
+ executeHandler((opts) => {
151
+ const format = (0, format_selector_1.selectFormat)(opts);
152
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
153
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
154
+ try {
155
+ (0, migration_1.initializeSchema)(db);
156
+ // Resolve sprint first (throws SprintNoneError if no sprint exists)
157
+ // This check happens before the no-op so we error appropriately when
158
+ // `sprint update` is called with no ID and no default sprint exists
159
+ const sprintId = id !== undefined ? id : undefined;
160
+ let actualSprintId;
161
+ if (sprintId === undefined) {
162
+ const sprint = (0, sprint_1.resolveSprint)(db, undefined);
163
+ actualSprintId = sprint.id;
164
+ }
165
+ else {
166
+ (0, sprint_1.resolveSprint)(db, sprintId);
167
+ actualSprintId = sprintId;
168
+ }
169
+ // No-op if neither --name nor --goal provided (silent success, but sprint existed)
170
+ if (opts.name === undefined && opts.goal === undefined) {
171
+ return '';
172
+ }
173
+ const result = (0, sprint_1.updateSprint)(db, actualSprintId, {
174
+ name: opts.name,
175
+ goal: opts.goal,
176
+ });
177
+ return (0, format_selector_1.formatOutput)(result, format, 'sprint');
178
+ }
179
+ finally {
180
+ db.close();
181
+ }
182
+ }, cmd);
183
+ });
184
+ return cmd;
185
+ }
186
+ /**
187
+ * Create the sprint command group with all subcommands.
188
+ */
189
+ function createSprintGroup() {
190
+ const cmd = new commander_1.Command('sprint')
191
+ .description('Manage sprints');
192
+ cmd.addCommand(createSprintInitCommand());
193
+ cmd.addCommand(createSprintOverviewCommand());
194
+ cmd.addCommand(createSprintActiveTasksCommand());
195
+ cmd.addCommand(createSprintListCommand());
196
+ cmd.addCommand(createSprintSetStatusCommand());
197
+ cmd.addCommand(createSprintUpdateCommand());
198
+ return cmd;
199
+ }
200
+ //# sourceMappingURL=sprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprint.js","sourceRoot":"","sources":["../../src/cli/sprint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTaskAddCommand(): Command;
3
+ export declare function createTaskMoveCommand(): Command;
4
+ export declare function createTaskUpdateCommand(): Command;
5
+ export declare function createTaskRemoveCommand(): Command;
6
+ export declare function createTaskShowCommand(): Command;
7
+ export declare function createTaskListCommand(): Command;
8
+ /**
9
+ * Create the task command group with all subcommands.
10
+ */
11
+ export declare function createTaskGroup(): Command;
12
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/cli/task.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC,wBAAgB,oBAAoB,IAAI,OAAO,CA2C9C;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAmC/C;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAkDjD;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAwBjD;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAuB/C;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CA+B/C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAYzC"}
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ // CLI subcommands for task group
3
+ // MOD-005: Task Commands
4
+ // Follows same pattern as src/cli/project.ts
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createTaskAddCommand = createTaskAddCommand;
7
+ exports.createTaskMoveCommand = createTaskMoveCommand;
8
+ exports.createTaskUpdateCommand = createTaskUpdateCommand;
9
+ exports.createTaskRemoveCommand = createTaskRemoveCommand;
10
+ exports.createTaskShowCommand = createTaskShowCommand;
11
+ exports.createTaskListCommand = createTaskListCommand;
12
+ exports.createTaskGroup = createTaskGroup;
13
+ const commander_1 = require("commander");
14
+ const fs_1 = require("fs");
15
+ const task_1 = require("../services/task");
16
+ const sprint_1 = require("../services/sprint");
17
+ const connection_1 = require("../db/connection");
18
+ const migration_1 = require("../db/migration");
19
+ const project_resolver_1 = require("./project-resolver");
20
+ const format_selector_1 = require("./format-selector");
21
+ const errors_1 = require("../utils/errors");
22
+ function executeHandler(runner, optsOrCmd) {
23
+ try {
24
+ const options = optsOrCmd instanceof commander_1.Command ? optsOrCmd.optsWithGlobals() : optsOrCmd;
25
+ console.log(runner(options));
26
+ }
27
+ catch (err) {
28
+ const options = optsOrCmd instanceof commander_1.Command ? optsOrCmd.optsWithGlobals() : optsOrCmd;
29
+ const format = (0, format_selector_1.selectFormat)({
30
+ quiet: options.quiet,
31
+ json: options.json,
32
+ format: options.format,
33
+ });
34
+ console.error((0, format_selector_1.formatErrorOutput)(err instanceof Error ? err : new Error(String(err)), format));
35
+ process.exit(1);
36
+ }
37
+ }
38
+ function createTaskAddCommand() {
39
+ const cmd = new commander_1.Command('add')
40
+ .description('Add a new task to a sprint')
41
+ .argument('[id]', 'Task ID (4-digit zero-padded NNNN, auto-generated if omitted)')
42
+ .option('--sprint <id>', 'Sprint ID')
43
+ .requiredOption('--description <text>', 'Task description')
44
+ .requiredOption('--owner <role>', 'Task owner role')
45
+ .option('--parent <id>', 'Parent task ID (4-digit NNNN)')
46
+ .option('--type <type>', 'Task type (Feature, Bug, Chore)', 'Feature')
47
+ .option('--priority <pri>', 'Priority (P0, P1, P2)', 'P2')
48
+ .option('--points <n>', 'Story points', '0')
49
+ .option('--stage <stage>', 'Initial stage (default: Planning)', 'Planning');
50
+ cmd.action((id) => {
51
+ executeHandler((opts) => {
52
+ const format = (0, format_selector_1.selectFormat)(opts);
53
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
54
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
55
+ try {
56
+ (0, migration_1.initializeSchema)(db);
57
+ const sprintId = (0, sprint_1.resolveSprint)(db, opts.sprint).id;
58
+ const result = (0, task_1.addTask)(db, sprintId, opts.description, opts.owner, {
59
+ task_id: id,
60
+ parent_id: opts.parent,
61
+ task_type: opts.type,
62
+ priority: opts.priority,
63
+ points: opts.points !== undefined ? Number(opts.points) : undefined,
64
+ stage: opts.stage,
65
+ });
66
+ return (0, format_selector_1.formatOutput)(result, format, 'task');
67
+ }
68
+ finally {
69
+ db.close();
70
+ }
71
+ }, cmd);
72
+ });
73
+ return cmd;
74
+ }
75
+ function createTaskMoveCommand() {
76
+ const cmd = new commander_1.Command('move')
77
+ .description('Move a task status, stage, or both within the active sprint')
78
+ .argument('<id>', 'Task ID (4-digit NNNN)')
79
+ .option('--sprint <id>', 'Sprint ID')
80
+ .option('--to <status>', 'Target status (Backlog, To Do, In Progress, In Review, Done, Dropped) — status transition')
81
+ .option('--stage <stage>', 'Target stage (Planning, Requirement, Specification, Design, Test Plan, Implementation, Testing, Release) — stage transition')
82
+ .option('--session-key <key>', 'Session key (for In Progress)')
83
+ .option('--owner <role>', 'Owner (for In Review)');
84
+ cmd.action((taskId) => {
85
+ executeHandler((opts) => {
86
+ const format = (0, format_selector_1.selectFormat)(opts);
87
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
88
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
89
+ try {
90
+ (0, migration_1.initializeSchema)(db);
91
+ const sprintId = (0, sprint_1.resolveSprint)(db, opts.sprint).id;
92
+ const context = {};
93
+ if (opts.sessionKey)
94
+ context.session_key = opts.sessionKey;
95
+ if (opts.owner)
96
+ context.owner = opts.owner;
97
+ const result = (0, task_1.moveTask)(db, taskId, {
98
+ targetStatus: opts.to,
99
+ targetStage: opts.stage,
100
+ context: Object.keys(context).length > 0 ? context : undefined,
101
+ sprintId,
102
+ });
103
+ return (0, format_selector_1.formatOutput)(result, format, 'task');
104
+ }
105
+ finally {
106
+ db.close();
107
+ }
108
+ }, cmd);
109
+ });
110
+ return cmd;
111
+ }
112
+ function createTaskUpdateCommand() {
113
+ const cmd = new commander_1.Command('update')
114
+ .description('Update task metadata (type, priority, points, content)')
115
+ .argument('<id>', 'Task ID (4-digit NNNN)')
116
+ .option('--sprint <id>', 'Sprint ID')
117
+ .option('--type <type>', 'New type (Feature, Bug, Chore)')
118
+ .option('--priority <pri>', 'New priority (P0, P1, P2)')
119
+ .option('--points <n>', 'New story points')
120
+ .option('--content-file <path>', 'File to read task description from (frontmatter stripped)');
121
+ cmd.action((taskId) => {
122
+ executeHandler((opts) => {
123
+ const format = (0, format_selector_1.selectFormat)(opts);
124
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
125
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
126
+ const contentFilePath = opts.contentFile;
127
+ try {
128
+ (0, migration_1.initializeSchema)(db);
129
+ const sprintId = (0, sprint_1.resolveSprint)(db, opts.sprint).id;
130
+ const fields = {};
131
+ if (opts.type !== undefined)
132
+ fields.task_type = opts.type;
133
+ if (opts.priority !== undefined)
134
+ fields.priority = opts.priority;
135
+ if (opts.points !== undefined)
136
+ fields.points = Number(opts.points);
137
+ // Handle --content-file (atomic import — read before transaction)
138
+ if (contentFilePath) {
139
+ try {
140
+ const raw = (0, fs_1.readFileSync)(contentFilePath, 'utf-8');
141
+ fields.content_file_content = raw;
142
+ }
143
+ catch (err) {
144
+ throw new errors_1.TaskContentFileError(contentFilePath);
145
+ }
146
+ }
147
+ const result = (0, task_1.updateTask)(db, taskId, fields, sprintId);
148
+ // Delete file after successful commit
149
+ if (contentFilePath) {
150
+ try {
151
+ (0, fs_1.unlinkSync)(contentFilePath);
152
+ }
153
+ catch { /* best effort */ }
154
+ }
155
+ return (0, format_selector_1.formatOutput)(result, format, 'task');
156
+ }
157
+ finally {
158
+ db.close();
159
+ }
160
+ }, cmd);
161
+ });
162
+ return cmd;
163
+ }
164
+ function createTaskRemoveCommand() {
165
+ // FS-SS-005-0007 v3: Always permanent delete, --hard flag removed
166
+ const cmd = new commander_1.Command('remove')
167
+ .description('Remove a task (permanently deletes)')
168
+ .argument('<id>', 'Task ID (4-digit NNNN)')
169
+ .option('--sprint <id>', 'Sprint ID');
170
+ cmd.action((taskId) => {
171
+ executeHandler((opts) => {
172
+ const format = (0, format_selector_1.selectFormat)(opts);
173
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
174
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
175
+ try {
176
+ (0, migration_1.initializeSchema)(db);
177
+ const sprintId = (0, sprint_1.resolveSprint)(db, opts.sprint).id;
178
+ (0, task_1.removeTask)(db, taskId, sprintId);
179
+ return (0, format_selector_1.formatOutput)({ id: taskId, removed: true }, format, 'task');
180
+ }
181
+ finally {
182
+ db.close();
183
+ }
184
+ }, cmd);
185
+ });
186
+ return cmd;
187
+ }
188
+ function createTaskShowCommand() {
189
+ const cmd = new commander_1.Command('show')
190
+ .description('Show detailed task information')
191
+ .argument('<id>', 'Task ID (4-digit NNNN)')
192
+ .option('--sprint <id>', 'Sprint ID');
193
+ cmd.action((taskId) => {
194
+ executeHandler((opts) => {
195
+ const format = (0, format_selector_1.selectFormat)(opts, true); // isShowCommand = true → default markdown
196
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
197
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
198
+ try {
199
+ (0, migration_1.initializeSchema)(db);
200
+ const sprintId = (0, sprint_1.resolveSprint)(db, opts.sprint).id;
201
+ const task = (0, task_1.showTask)(db, taskId, sprintId);
202
+ return (0, format_selector_1.formatOutput)(task, format, 'task');
203
+ }
204
+ finally {
205
+ db.close();
206
+ }
207
+ }, cmd);
208
+ });
209
+ return cmd;
210
+ }
211
+ function createTaskListCommand() {
212
+ const cmd = new commander_1.Command('list')
213
+ .description('List tasks in a sprint')
214
+ .option('--sprint <id>', 'Sprint ID')
215
+ .option('--status <status>', 'Filter by status')
216
+ .option('--owner <role>', 'Filter by owner role');
217
+ cmd.action(() => {
218
+ executeHandler((opts) => {
219
+ const format = (0, format_selector_1.selectFormat)(opts);
220
+ const resolved = (0, project_resolver_1.resolveFromCLI)(opts);
221
+ const db = (0, connection_1.openConnection)(resolved.dbPath);
222
+ try {
223
+ (0, migration_1.initializeSchema)(db);
224
+ const sprintId = (0, sprint_1.resolveSprint)(db, opts.sprint).id;
225
+ const tasks = (0, task_1.listTasks)(db, sprintId, {
226
+ status: opts.status,
227
+ owner: opts.owner,
228
+ });
229
+ return (0, format_selector_1.formatOutput)(tasks, format, 'tasks');
230
+ }
231
+ finally {
232
+ db.close();
233
+ }
234
+ }, cmd);
235
+ });
236
+ return cmd;
237
+ }
238
+ /**
239
+ * Create the task command group with all subcommands.
240
+ */
241
+ function createTaskGroup() {
242
+ const cmd = new commander_1.Command('task')
243
+ .description('Manage tasks on the kanban board');
244
+ cmd.addCommand(createTaskAddCommand());
245
+ cmd.addCommand(createTaskMoveCommand());
246
+ cmd.addCommand(createTaskUpdateCommand());
247
+ cmd.addCommand(createTaskRemoveCommand());
248
+ cmd.addCommand(createTaskShowCommand());
249
+ cmd.addCommand(createTaskListCommand());
250
+ return cmd;
251
+ }
252
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/cli/task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTestReportGroup(): Command;
3
+ //# sourceMappingURL=test-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-report.d.ts","sourceRoot":"","sources":["../../src/cli/test-report.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,wBAAgB,qBAAqB,IAAI,OAAO,CAgH/C"}