@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,64 @@
1
+ "use strict";
2
+ // Sprint state machine
3
+ // Encodes the PLANNING → IN EXECUTION → CLOSING → CLOSED transition table
4
+ // Implements AD-0008: Centralized State Machines + Owner Validation
5
+ // + FS-SS-004-0007 (transition sprint status)
6
+ // + FS-SS-004-0008 (reject invalid sprint transition)
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.VALID_SPRINT_STATUSES = void 0;
9
+ exports.isValidSprintStatus = isValidSprintStatus;
10
+ exports.getAllowedSprintTransitions = getAllowedSprintTransitions;
11
+ exports.isValidSprintTransition = isValidSprintTransition;
12
+ exports.getSprintAutoTimestamps = getSprintAutoTimestamps;
13
+ /** Valid sprint status values */
14
+ exports.VALID_SPRINT_STATUSES = [
15
+ 'PLANNING',
16
+ 'IN EXECUTION',
17
+ 'CLOSING',
18
+ 'CLOSED',
19
+ ];
20
+ /**
21
+ * Transition table for sprint statuses.
22
+ * Maps each current status to the set of allowed target statuses.
23
+ */
24
+ const TRANSITIONS = {
25
+ 'PLANNING': ['IN EXECUTION'],
26
+ 'IN EXECUTION': ['CLOSING'],
27
+ 'CLOSING': ['CLOSED'],
28
+ 'CLOSED': [], // Terminal state
29
+ };
30
+ /**
31
+ * Check if a given string is a valid SprintStatus value.
32
+ */
33
+ function isValidSprintStatus(status) {
34
+ return exports.VALID_SPRINT_STATUSES.includes(status);
35
+ }
36
+ /**
37
+ * Get all allowed target statuses from a given current status.
38
+ */
39
+ function getAllowedSprintTransitions(current) {
40
+ return TRANSITIONS[current] ?? [];
41
+ }
42
+ /**
43
+ * Check if a transition from current to target is valid.
44
+ */
45
+ function isValidSprintTransition(current, target) {
46
+ return TRANSITIONS[current]?.includes(target) ?? false;
47
+ }
48
+ /**
49
+ * Auto-populate timestamps for sprint status transitions.
50
+ * - PLANNING → IN EXECUTION: set started_at
51
+ * - * → CLOSED: set closed_at
52
+ */
53
+ function getSprintAutoTimestamps(current, target) {
54
+ const now = new Date().toISOString();
55
+ const result = {};
56
+ if (current !== 'IN EXECUTION' && target === 'IN EXECUTION') {
57
+ result.started_at = now;
58
+ }
59
+ if (target === 'CLOSED') {
60
+ result.closed_at = now;
61
+ }
62
+ return result;
63
+ }
64
+ //# sourceMappingURL=sprint-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprint-state.js","sourceRoot":"","sources":["../../src/state-machines/sprint-state.ts"],"names":[],"mappings":";AAAA,uBAAuB;AACvB,0EAA0E;AAC1E,oEAAoE;AACpE,8CAA8C;AAC9C,sDAAsD;;;AA0BtD,kDAEC;AAKD,kEAEC;AAKD,0DAEC;AAOD,0DAgBC;AA7DD,iCAAiC;AACpB,QAAA,qBAAqB,GAAmB;IACnD,UAAU;IACV,cAAc;IACd,SAAS;IACT,QAAQ;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,GAAyC;IACxD,UAAU,EAAE,CAAC,cAAc,CAAC;IAC5B,cAAc,EAAE,CAAC,SAAS,CAAC;IAC3B,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,QAAQ,EAAE,EAAE,EAAE,iBAAiB;CAChC,CAAC;AAEF;;GAEG;AACH,SAAgB,mBAAmB,CAAC,MAAc;IAChD,OAAQ,6BAA2C,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,SAAgB,2BAA2B,CAAC,OAAqB;IAC/D,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,OAAqB,EAAE,MAAoB;IACjF,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CACrC,OAAqB,EACrB,MAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,MAAM,GAAgD,EAAE,CAAC;IAE/D,IAAI,OAAO,KAAK,cAAc,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC5D,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { TaskStatus } from '../models/common';
2
+ /** Valid task status values — Blocked removed per FS-SS-030-0004 */
3
+ export declare const VALID_TASK_STATUSES: TaskStatus[];
4
+ /**
5
+ * Check if a given string is a valid TaskStatus value.
6
+ */
7
+ export declare function isValidTaskStatus(status: string): status is TaskStatus;
8
+ /**
9
+ * Get all allowed target statuses from a given current status.
10
+ */
11
+ export declare function getAllowedTaskTransitions(current: TaskStatus): TaskStatus[];
12
+ /**
13
+ * Check if a transition from current to target is valid.
14
+ */
15
+ export declare function isValidTaskTransition(current: TaskStatus, target: TaskStatus): boolean;
16
+ /**
17
+ * Get the auto timestamps for a task state transition.
18
+ * - Any → In Progress: set started_at (if not already set)
19
+ * - Any → Done: set completed_at
20
+ */
21
+ export declare function getTaskAutoTimestamps(current: TaskStatus, target: TaskStatus): {
22
+ started_at?: string;
23
+ completed_at?: string;
24
+ };
25
+ /**
26
+ * Captain-only stages for owner validation.
27
+ * Per AD-0008 (updated per URD-030): Planning and Release require captain.
28
+ */
29
+ export declare const CAPTAIN_ONLY_STAGES: string[];
30
+ export declare const CAPTAIN_ONLY_STATES: string[];
31
+ //# sourceMappingURL=task-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-state.d.ts","sourceRoot":"","sources":["../../src/state-machines/task-state.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,EAAE,UAAU,EAO3C,CAAC;AAoBF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,UAAU,CAEtE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,CAE3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAEtF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,UAAU,GACjB;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAahD;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,EAA4B,CAAC;AAGrE,eAAO,MAAM,mBAAmB,UAAsB,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ // Task state machine (Kanban lifecycle)
3
+ // Encodes freely reversible primary flow within a stage + Dropped escape
4
+ // Implements AD-0008: Centralized State Machines + Owner Validation
5
+ // + FS-SS-005-0002 (move task between states)
6
+ // + FS-SS-005-0003 (enforce task state machine)
7
+ // + FS-SS-005-0004 (reject invalid task transition)
8
+ // + FS-SS-030-0002 (status reversal within stage)
9
+ // + FS-SS-030-0004 (Blocked status removal)
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.CAPTAIN_ONLY_STATES = exports.CAPTAIN_ONLY_STAGES = exports.VALID_TASK_STATUSES = void 0;
12
+ exports.isValidTaskStatus = isValidTaskStatus;
13
+ exports.getAllowedTaskTransitions = getAllowedTaskTransitions;
14
+ exports.isValidTaskTransition = isValidTaskTransition;
15
+ exports.getTaskAutoTimestamps = getTaskAutoTimestamps;
16
+ /** Valid task status values — Blocked removed per FS-SS-030-0004 */
17
+ exports.VALID_TASK_STATUSES = [
18
+ 'Backlog',
19
+ 'To Do',
20
+ 'In Progress',
21
+ 'In Review',
22
+ 'Done',
23
+ 'Dropped',
24
+ ];
25
+ /**
26
+ * Transition table for task statuses within the same stage.
27
+ * Maps each current status to the set of allowed target statuses.
28
+ *
29
+ * Per FS-SS-030-0002:
30
+ * Within a stage, any non-Dropped status can transition to any other non-Dropped status
31
+ * (including reverse moves like Done → In Review). Dropped is the sole escape state,
32
+ * reachable from any non-Dropped state, and is terminal.
33
+ */
34
+ const TRANSITIONS = {
35
+ 'Backlog': ['To Do', 'In Progress', 'In Review', 'Done', 'Dropped'],
36
+ 'To Do': ['Backlog', 'In Progress', 'In Review', 'Done', 'Dropped'],
37
+ 'In Progress': ['Backlog', 'To Do', 'In Review', 'Done', 'Dropped'],
38
+ 'In Review': ['Backlog', 'To Do', 'In Progress', 'Done', 'Dropped'],
39
+ 'Done': ['Backlog', 'To Do', 'In Progress', 'In Review', 'Dropped'],
40
+ 'Dropped': [], // Terminal abandon state
41
+ };
42
+ /**
43
+ * Check if a given string is a valid TaskStatus value.
44
+ */
45
+ function isValidTaskStatus(status) {
46
+ return exports.VALID_TASK_STATUSES.includes(status);
47
+ }
48
+ /**
49
+ * Get all allowed target statuses from a given current status.
50
+ */
51
+ function getAllowedTaskTransitions(current) {
52
+ return TRANSITIONS[current] ?? [];
53
+ }
54
+ /**
55
+ * Check if a transition from current to target is valid.
56
+ */
57
+ function isValidTaskTransition(current, target) {
58
+ return TRANSITIONS[current]?.includes(target) ?? false;
59
+ }
60
+ /**
61
+ * Get the auto timestamps for a task state transition.
62
+ * - Any → In Progress: set started_at (if not already set)
63
+ * - Any → Done: set completed_at
64
+ */
65
+ function getTaskAutoTimestamps(current, target) {
66
+ const now = new Date().toISOString();
67
+ const result = {};
68
+ if (current !== 'In Progress' && target === 'In Progress') {
69
+ result.started_at = now;
70
+ }
71
+ if (target === 'Done') {
72
+ result.completed_at = now;
73
+ }
74
+ return result;
75
+ }
76
+ /**
77
+ * Captain-only stages for owner validation.
78
+ * Per AD-0008 (updated per URD-030): Planning and Release require captain.
79
+ */
80
+ exports.CAPTAIN_ONLY_STAGES = ['Planning', 'Release'];
81
+ // Backward compatibility alias — tests may import CAPTAIN_ONLY_STATES
82
+ exports.CAPTAIN_ONLY_STATES = exports.CAPTAIN_ONLY_STAGES;
83
+ //# sourceMappingURL=task-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-state.js","sourceRoot":"","sources":["../../src/state-machines/task-state.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,yEAAyE;AACzE,oEAAoE;AACpE,8CAA8C;AAC9C,gDAAgD;AAChD,oDAAoD;AACpD,kDAAkD;AAClD,4CAA4C;;;AAmC5C,8CAEC;AAKD,8DAEC;AAKD,sDAEC;AAOD,sDAgBC;AAtED,oEAAoE;AACvD,QAAA,mBAAmB,GAAiB;IAC/C,SAAS;IACT,OAAO;IACP,aAAa;IACb,WAAW;IACX,MAAM;IACN,SAAS;CACV,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAqC;IACpD,SAAS,EAAO,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC;IACxE,OAAO,EAAS,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC;IAC1E,aAAa,EAAG,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC;IACpE,WAAW,EAAK,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC;IACtE,MAAM,EAAU,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC;IAC3E,SAAS,EAAO,EAAE,EAAG,yBAAyB;CAC/C,CAAC;AAEF;;GAEG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAQ,2BAAyC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,OAAmB;IAC3D,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,OAAmB,EAAE,MAAkB;IAC3E,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CACnC,OAAmB,EACnB,MAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,MAAM,GAAmD,EAAE,CAAC;IAElE,IAAI,OAAO,KAAK,aAAa,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC1D,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACU,QAAA,mBAAmB,GAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAErE,sEAAsE;AACzD,QAAA,mBAAmB,GAAG,2BAAmB,CAAC"}