specweave 0.15.0 → 0.16.1

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 (822) hide show
  1. package/CLAUDE.md +38 -0
  2. package/dist/cli/commands/init.d.ts.map +1 -1
  3. package/dist/cli/commands/init.js +162 -3
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/cli/helpers/github/increment-profile-selector.d.ts +47 -0
  6. package/dist/cli/helpers/github/increment-profile-selector.d.ts.map +1 -0
  7. package/dist/cli/helpers/github/increment-profile-selector.js +186 -0
  8. package/dist/cli/helpers/github/increment-profile-selector.js.map +1 -0
  9. package/dist/cli/helpers/github/profile-manager.d.ts +119 -0
  10. package/dist/cli/helpers/github/profile-manager.d.ts.map +1 -0
  11. package/dist/cli/helpers/github/profile-manager.js +311 -0
  12. package/dist/cli/helpers/github/profile-manager.js.map +1 -0
  13. package/dist/cli/helpers/issue-tracker/github-multi-repo.d.ts +81 -0
  14. package/dist/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -0
  15. package/dist/cli/helpers/issue-tracker/github-multi-repo.js +385 -0
  16. package/dist/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -0
  17. package/dist/cli/helpers/issue-tracker/github.d.ts +13 -0
  18. package/dist/cli/helpers/issue-tracker/github.d.ts.map +1 -1
  19. package/dist/cli/helpers/issue-tracker/github.js +38 -143
  20. package/dist/cli/helpers/issue-tracker/github.js.map +1 -1
  21. package/dist/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  22. package/dist/cli/helpers/issue-tracker/index.js +126 -43
  23. package/dist/cli/helpers/issue-tracker/index.js.map +1 -1
  24. package/dist/cli/helpers/issue-tracker/utils.d.ts +8 -0
  25. package/dist/cli/helpers/issue-tracker/utils.d.ts.map +1 -1
  26. package/dist/cli/helpers/issue-tracker/utils.js +46 -0
  27. package/dist/cli/helpers/issue-tracker/utils.js.map +1 -1
  28. package/dist/core/increment/active-increment-manager.d.ts +79 -0
  29. package/dist/core/increment/active-increment-manager.d.ts.map +1 -0
  30. package/dist/core/increment/active-increment-manager.js +153 -0
  31. package/dist/core/increment/active-increment-manager.js.map +1 -0
  32. package/dist/core/increment/metadata-manager.d.ts +2 -0
  33. package/dist/core/increment/metadata-manager.d.ts.map +1 -1
  34. package/dist/core/increment/metadata-manager.js +15 -0
  35. package/dist/core/increment/metadata-manager.js.map +1 -1
  36. package/dist/utils/git-detector.d.ts +84 -0
  37. package/dist/utils/git-detector.d.ts.map +1 -0
  38. package/dist/utils/git-detector.js +233 -0
  39. package/dist/utils/git-detector.js.map +1 -0
  40. package/package.json +2 -2
  41. package/plugins/specweave/commands/specweave-done.md +109 -1
  42. package/plugins/specweave/hooks/lib/update-status-line.sh +30 -4
  43. package/plugins/specweave/hooks/user-prompt-submit.sh +77 -21
  44. package/plugins/specweave/lib/hooks/git-diff-analyzer.js +129 -213
  45. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +146 -192
  46. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +103 -116
  47. package/plugins/specweave/lib/hooks/reflection-config-loader.js +85 -125
  48. package/plugins/specweave/lib/hooks/reflection-parser.js +267 -385
  49. package/plugins/specweave/lib/hooks/reflection-prompt-builder.js +169 -226
  50. package/plugins/specweave/lib/hooks/reflection-storage.js +223 -297
  51. package/plugins/specweave/lib/hooks/run-self-reflection.js +120 -191
  52. package/plugins/specweave/lib/hooks/sync-living-docs.js +87 -129
  53. package/plugins/specweave/lib/hooks/translate-file.js +239 -300
  54. package/plugins/specweave/lib/hooks/translate-living-docs.js +88 -144
  55. package/plugins/specweave/lib/hooks/types/reflection-types.js +57 -72
  56. package/plugins/specweave/lib/hooks/update-tasks-md.js +117 -179
  57. package/plugins/specweave-ado/lib/ado-board-resolver.js +135 -205
  58. package/plugins/specweave-ado/lib/ado-hierarchical-sync.js +223 -335
  59. package/plugins/specweave-ado/lib/ado-spec-sync.js +380 -414
  60. package/plugins/specweave-ado/lib/project-selector.js +168 -196
  61. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +2 -2
  62. package/plugins/specweave-figma/ARCHITECTURE.md +1 -1
  63. package/plugins/specweave-figma/README.md +1 -1
  64. package/plugins/specweave-github/hooks/hooks.json +0 -11
  65. package/plugins/specweave-github/lib/cli-sync-increment-changes.js +9 -20
  66. package/plugins/specweave-github/lib/github-board-resolver.js +69 -115
  67. package/plugins/specweave-github/lib/github-client-v2.js +400 -389
  68. package/plugins/specweave-github/lib/github-client.js +246 -280
  69. package/plugins/specweave-github/lib/github-hierarchical-sync.js +168 -251
  70. package/plugins/specweave-github/lib/github-issue-updater.js +231 -288
  71. package/plugins/specweave-github/lib/github-spec-sync.js +379 -420
  72. package/plugins/specweave-github/lib/github-sync-bidirectional.js +175 -202
  73. package/plugins/specweave-github/lib/github-sync-increment-changes.js +212 -251
  74. package/plugins/specweave-github/lib/index.js +11 -10
  75. package/plugins/specweave-github/lib/repo-selector.js +174 -201
  76. package/plugins/specweave-github/lib/subtask-sync.js +132 -125
  77. package/plugins/specweave-github/lib/task-parser.js +191 -207
  78. package/plugins/specweave-github/lib/task-sync.js +344 -296
  79. package/plugins/specweave-github/lib/types.js +0 -5
  80. package/plugins/specweave-jira/lib/jira-board-resolver.js +50 -79
  81. package/plugins/specweave-jira/lib/jira-hierarchical-sync.js +119 -191
  82. package/plugins/specweave-jira/lib/jira-spec-sync.js +366 -405
  83. package/plugins/specweave-jira/lib/project-selector.js +172 -201
  84. package/plugins/specweave-jira/lib/reorganization-detector.js +202 -237
  85. package/plugins/specweave-jira/lib/setup-wizard.js +162 -204
  86. package/plugins/specweave-ml/README.md +1 -1
  87. package/dist/core/agent-model-manager.d.ts +0 -52
  88. package/dist/core/agent-model-manager.d.ts.map +0 -1
  89. package/dist/core/agent-model-manager.js +0 -120
  90. package/dist/core/agent-model-manager.js.map +0 -1
  91. package/dist/core/model-selector.d.ts +0 -57
  92. package/dist/core/model-selector.d.ts.map +0 -1
  93. package/dist/core/model-selector.js +0 -115
  94. package/dist/core/model-selector.js.map +0 -1
  95. package/dist/core/phase-detector.d.ts +0 -62
  96. package/dist/core/phase-detector.d.ts.map +0 -1
  97. package/dist/core/phase-detector.js +0 -229
  98. package/dist/core/phase-detector.js.map +0 -1
  99. package/dist/hooks/lib/git-diff-analyzer.d.ts +0 -89
  100. package/dist/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  101. package/dist/hooks/lib/git-diff-analyzer.js +0 -226
  102. package/dist/hooks/lib/git-diff-analyzer.js.map +0 -1
  103. package/dist/hooks/lib/invoke-translator-skill.d.ts +0 -60
  104. package/dist/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  105. package/dist/hooks/lib/invoke-translator-skill.js +0 -201
  106. package/dist/hooks/lib/invoke-translator-skill.js.map +0 -1
  107. package/dist/hooks/lib/prepare-reflection-context.d.ts +0 -42
  108. package/dist/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  109. package/dist/hooks/lib/prepare-reflection-context.js +0 -123
  110. package/dist/hooks/lib/prepare-reflection-context.js.map +0 -1
  111. package/dist/hooks/lib/reflection-config-loader.d.ts +0 -45
  112. package/dist/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  113. package/dist/hooks/lib/reflection-config-loader.js +0 -132
  114. package/dist/hooks/lib/reflection-config-loader.js.map +0 -1
  115. package/dist/hooks/lib/reflection-parser.d.ts +0 -33
  116. package/dist/hooks/lib/reflection-parser.d.ts.map +0 -1
  117. package/dist/hooks/lib/reflection-parser.js +0 -419
  118. package/dist/hooks/lib/reflection-parser.js.map +0 -1
  119. package/dist/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  120. package/dist/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  121. package/dist/hooks/lib/reflection-prompt-builder.js +0 -239
  122. package/dist/hooks/lib/reflection-prompt-builder.js.map +0 -1
  123. package/dist/hooks/lib/reflection-storage.d.ts +0 -64
  124. package/dist/hooks/lib/reflection-storage.d.ts.map +0 -1
  125. package/dist/hooks/lib/reflection-storage.js +0 -305
  126. package/dist/hooks/lib/reflection-storage.js.map +0 -1
  127. package/dist/hooks/lib/run-self-reflection.d.ts +0 -43
  128. package/dist/hooks/lib/run-self-reflection.d.ts.map +0 -1
  129. package/dist/hooks/lib/run-self-reflection.js +0 -203
  130. package/dist/hooks/lib/run-self-reflection.js.map +0 -1
  131. package/dist/hooks/lib/sync-living-docs.d.ts +0 -27
  132. package/dist/hooks/lib/sync-living-docs.d.ts.map +0 -1
  133. package/dist/hooks/lib/sync-living-docs.js +0 -116
  134. package/dist/hooks/lib/sync-living-docs.js.map +0 -1
  135. package/dist/hooks/lib/translate-file.d.ts +0 -59
  136. package/dist/hooks/lib/translate-file.d.ts.map +0 -1
  137. package/dist/hooks/lib/translate-file.js +0 -350
  138. package/dist/hooks/lib/translate-file.js.map +0 -1
  139. package/dist/hooks/lib/translate-living-docs.d.ts +0 -13
  140. package/dist/hooks/lib/translate-living-docs.d.ts.map +0 -1
  141. package/dist/hooks/lib/translate-living-docs.js +0 -175
  142. package/dist/hooks/lib/translate-living-docs.js.map +0 -1
  143. package/dist/hooks/lib/types/reflection-types.d.ts +0 -164
  144. package/dist/hooks/lib/types/reflection-types.d.ts.map +0 -1
  145. package/dist/hooks/lib/types/reflection-types.js +0 -73
  146. package/dist/hooks/lib/types/reflection-types.js.map +0 -1
  147. package/dist/hooks/lib/update-tasks-md.d.ts +0 -29
  148. package/dist/hooks/lib/update-tasks-md.d.ts.map +0 -1
  149. package/dist/hooks/lib/update-tasks-md.js +0 -203
  150. package/dist/hooks/lib/update-tasks-md.js.map +0 -1
  151. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
  152. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
  153. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
  154. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
  155. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
  156. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
  157. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
  158. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
  159. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
  160. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
  161. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
  162. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
  163. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
  164. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
  165. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
  166. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
  167. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
  168. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
  169. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
  170. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
  171. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
  172. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
  173. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
  174. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
  175. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
  176. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
  177. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
  178. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
  179. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
  180. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
  181. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
  182. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
  183. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -27
  184. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
  185. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -144
  186. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
  187. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
  188. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
  189. package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
  190. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
  191. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
  192. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
  193. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
  194. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
  195. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
  196. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
  197. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
  198. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
  199. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
  200. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
  201. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
  202. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
  203. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +0 -94
  204. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +0 -1
  205. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +0 -219
  206. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +0 -1
  207. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +0 -124
  208. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +0 -1
  209. package/dist/plugins/specweave-ado/lib/ado-client-v2.js +0 -382
  210. package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +0 -1
  211. package/dist/plugins/specweave-ado/lib/ado-client.d.ts +0 -112
  212. package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +0 -1
  213. package/dist/plugins/specweave-ado/lib/ado-client.js +0 -257
  214. package/dist/plugins/specweave-ado/lib/ado-client.js.map +0 -1
  215. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +0 -40
  216. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +0 -1
  217. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +0 -370
  218. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +0 -1
  219. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +0 -100
  220. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +0 -1
  221. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +0 -471
  222. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +0 -1
  223. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +0 -42
  224. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +0 -1
  225. package/dist/plugins/specweave-ado/lib/project-selector.js +0 -211
  226. package/dist/plugins/specweave-ado/lib/project-selector.js.map +0 -1
  227. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts +0 -12
  228. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts.map +0 -1
  229. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js +0 -28
  230. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js.map +0 -1
  231. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +0 -54
  232. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +0 -1
  233. package/dist/plugins/specweave-github/lib/github-board-resolver.js +0 -122
  234. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +0 -1
  235. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +0 -104
  236. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +0 -1
  237. package/dist/plugins/specweave-github/lib/github-client-v2.js +0 -408
  238. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +0 -1
  239. package/dist/plugins/specweave-github/lib/github-client.d.ts +0 -96
  240. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +0 -1
  241. package/dist/plugins/specweave-github/lib/github-client.js +0 -299
  242. package/dist/plugins/specweave-github/lib/github-client.js.map +0 -1
  243. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +0 -29
  244. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +0 -1
  245. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +0 -268
  246. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +0 -1
  247. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts +0 -61
  248. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts.map +0 -1
  249. package/dist/plugins/specweave-github/lib/github-issue-updater.js +0 -327
  250. package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +0 -1
  251. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +0 -108
  252. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +0 -1
  253. package/dist/plugins/specweave-github/lib/github-spec-sync.js +0 -505
  254. package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +0 -1
  255. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts +0 -36
  256. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts.map +0 -1
  257. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +0 -228
  258. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +0 -1
  259. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts +0 -18
  260. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts.map +0 -1
  261. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js +0 -287
  262. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js.map +0 -1
  263. package/dist/plugins/specweave-github/lib/index.d.ts +0 -10
  264. package/dist/plugins/specweave-github/lib/index.d.ts.map +0 -1
  265. package/dist/plugins/specweave-github/lib/index.js +0 -10
  266. package/dist/plugins/specweave-github/lib/index.js.map +0 -1
  267. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +0 -49
  268. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +0 -1
  269. package/dist/plugins/specweave-github/lib/repo-selector.js +0 -216
  270. package/dist/plugins/specweave-github/lib/repo-selector.js.map +0 -1
  271. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +0 -51
  272. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +0 -1
  273. package/dist/plugins/specweave-github/lib/subtask-sync.js +0 -147
  274. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +0 -1
  275. package/dist/plugins/specweave-github/lib/task-parser.d.ts +0 -37
  276. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +0 -1
  277. package/dist/plugins/specweave-github/lib/task-parser.js +0 -211
  278. package/dist/plugins/specweave-github/lib/task-parser.js.map +0 -1
  279. package/dist/plugins/specweave-github/lib/task-sync.d.ts +0 -51
  280. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +0 -1
  281. package/dist/plugins/specweave-github/lib/task-sync.js +0 -332
  282. package/dist/plugins/specweave-github/lib/task-sync.js.map +0 -1
  283. package/dist/plugins/specweave-github/lib/types.d.ts +0 -80
  284. package/dist/plugins/specweave-github/lib/types.d.ts.map +0 -1
  285. package/dist/plugins/specweave-github/lib/types.js +0 -5
  286. package/dist/plugins/specweave-github/lib/types.js.map +0 -1
  287. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +0 -50
  288. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +0 -1
  289. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +0 -84
  290. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +0 -1
  291. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +0 -33
  292. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +0 -1
  293. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +0 -206
  294. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +0 -1
  295. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +0 -105
  296. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +0 -1
  297. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +0 -456
  298. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +0 -1
  299. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +0 -42
  300. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +0 -1
  301. package/dist/plugins/specweave-jira/lib/project-selector.js +0 -216
  302. package/dist/plugins/specweave-jira/lib/project-selector.js.map +0 -1
  303. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +0 -67
  304. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +0 -1
  305. package/dist/plugins/specweave-jira/lib/reorganization-detector.js +0 -252
  306. package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +0 -1
  307. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +0 -29
  308. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +0 -1
  309. package/dist/plugins/specweave-jira/lib/setup-wizard.js +0 -219
  310. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +0 -1
  311. package/dist/project-mapper.js +0 -272
  312. package/dist/scripts/split-spec-by-project.js +0 -105
  313. package/dist/spec-splitter.js +0 -283
  314. package/dist/src/adapters/adapter-base.d.ts +0 -71
  315. package/dist/src/adapters/adapter-base.d.ts.map +0 -1
  316. package/dist/src/adapters/adapter-base.js +0 -139
  317. package/dist/src/adapters/adapter-base.js.map +0 -1
  318. package/dist/src/adapters/adapter-interface.d.ts +0 -149
  319. package/dist/src/adapters/adapter-interface.d.ts.map +0 -1
  320. package/dist/src/adapters/adapter-interface.js +0 -8
  321. package/dist/src/adapters/adapter-interface.js.map +0 -1
  322. package/dist/src/adapters/adapter-loader.d.ts +0 -91
  323. package/dist/src/adapters/adapter-loader.d.ts.map +0 -1
  324. package/dist/src/adapters/adapter-loader.js +0 -238
  325. package/dist/src/adapters/adapter-loader.js.map +0 -1
  326. package/dist/src/adapters/agents-md-generator.d.ts +0 -48
  327. package/dist/src/adapters/agents-md-generator.d.ts.map +0 -1
  328. package/dist/src/adapters/agents-md-generator.js +0 -193
  329. package/dist/src/adapters/agents-md-generator.js.map +0 -1
  330. package/dist/src/adapters/claude/adapter.d.ts +0 -128
  331. package/dist/src/adapters/claude/adapter.d.ts.map +0 -1
  332. package/dist/src/adapters/claude/adapter.js +0 -415
  333. package/dist/src/adapters/claude/adapter.js.map +0 -1
  334. package/dist/src/adapters/claude-md-generator.d.ts +0 -78
  335. package/dist/src/adapters/claude-md-generator.d.ts.map +0 -1
  336. package/dist/src/adapters/claude-md-generator.js +0 -307
  337. package/dist/src/adapters/claude-md-generator.js.map +0 -1
  338. package/dist/src/adapters/codex/adapter.d.ts +0 -50
  339. package/dist/src/adapters/codex/adapter.d.ts.map +0 -1
  340. package/dist/src/adapters/codex/adapter.js +0 -316
  341. package/dist/src/adapters/codex/adapter.js.map +0 -1
  342. package/dist/src/adapters/cursor/adapter.d.ts +0 -98
  343. package/dist/src/adapters/cursor/adapter.d.ts.map +0 -1
  344. package/dist/src/adapters/cursor/adapter.js +0 -406
  345. package/dist/src/adapters/cursor/adapter.js.map +0 -1
  346. package/dist/src/adapters/doc-generator.d.ts +0 -69
  347. package/dist/src/adapters/doc-generator.d.ts.map +0 -1
  348. package/dist/src/adapters/doc-generator.js +0 -247
  349. package/dist/src/adapters/doc-generator.js.map +0 -1
  350. package/dist/src/adapters/gemini/adapter.d.ts +0 -50
  351. package/dist/src/adapters/gemini/adapter.d.ts.map +0 -1
  352. package/dist/src/adapters/gemini/adapter.js +0 -281
  353. package/dist/src/adapters/gemini/adapter.js.map +0 -1
  354. package/dist/src/adapters/generic/adapter.d.ts +0 -86
  355. package/dist/src/adapters/generic/adapter.d.ts.map +0 -1
  356. package/dist/src/adapters/generic/adapter.js +0 -338
  357. package/dist/src/adapters/generic/adapter.js.map +0 -1
  358. package/dist/src/cli/commands/abandon.d.ts +0 -13
  359. package/dist/src/cli/commands/abandon.d.ts.map +0 -1
  360. package/dist/src/cli/commands/abandon.js +0 -15
  361. package/dist/src/cli/commands/abandon.js.map +0 -1
  362. package/dist/src/cli/commands/import-docs.d.ts +0 -21
  363. package/dist/src/cli/commands/import-docs.d.ts.map +0 -1
  364. package/dist/src/cli/commands/import-docs.js +0 -146
  365. package/dist/src/cli/commands/import-docs.js.map +0 -1
  366. package/dist/src/cli/commands/init-multiproject.d.ts +0 -11
  367. package/dist/src/cli/commands/init-multiproject.d.ts.map +0 -1
  368. package/dist/src/cli/commands/init-multiproject.js +0 -202
  369. package/dist/src/cli/commands/init-multiproject.js.map +0 -1
  370. package/dist/src/cli/commands/init.d.ts +0 -9
  371. package/dist/src/cli/commands/init.d.ts.map +0 -1
  372. package/dist/src/cli/commands/init.js +0 -1444
  373. package/dist/src/cli/commands/init.js.map +0 -1
  374. package/dist/src/cli/commands/install.d.ts +0 -9
  375. package/dist/src/cli/commands/install.d.ts.map +0 -1
  376. package/dist/src/cli/commands/install.js +0 -127
  377. package/dist/src/cli/commands/install.js.map +0 -1
  378. package/dist/src/cli/commands/list.d.ts +0 -8
  379. package/dist/src/cli/commands/list.d.ts.map +0 -1
  380. package/dist/src/cli/commands/list.js +0 -119
  381. package/dist/src/cli/commands/list.js.map +0 -1
  382. package/dist/src/cli/commands/migrate-to-multiproject.d.ts +0 -37
  383. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +0 -1
  384. package/dist/src/cli/commands/migrate-to-multiproject.js +0 -189
  385. package/dist/src/cli/commands/migrate-to-multiproject.js.map +0 -1
  386. package/dist/src/cli/commands/migrate-to-profiles.d.ts +0 -25
  387. package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +0 -1
  388. package/dist/src/cli/commands/migrate-to-profiles.js +0 -350
  389. package/dist/src/cli/commands/migrate-to-profiles.js.map +0 -1
  390. package/dist/src/cli/commands/pause.d.ts +0 -13
  391. package/dist/src/cli/commands/pause.d.ts.map +0 -1
  392. package/dist/src/cli/commands/pause.js +0 -15
  393. package/dist/src/cli/commands/pause.js.map +0 -1
  394. package/dist/src/cli/commands/qa.d.ts +0 -54
  395. package/dist/src/cli/commands/qa.d.ts.map +0 -1
  396. package/dist/src/cli/commands/qa.js +0 -98
  397. package/dist/src/cli/commands/qa.js.map +0 -1
  398. package/dist/src/cli/commands/resume.d.ts +0 -12
  399. package/dist/src/cli/commands/resume.d.ts.map +0 -1
  400. package/dist/src/cli/commands/resume.js +0 -14
  401. package/dist/src/cli/commands/resume.js.map +0 -1
  402. package/dist/src/cli/commands/status.d.ts +0 -12
  403. package/dist/src/cli/commands/status.d.ts.map +0 -1
  404. package/dist/src/cli/commands/status.js +0 -23
  405. package/dist/src/cli/commands/status.js.map +0 -1
  406. package/dist/src/cli/commands/switch-project.d.ts +0 -13
  407. package/dist/src/cli/commands/switch-project.d.ts.map +0 -1
  408. package/dist/src/cli/commands/switch-project.js +0 -91
  409. package/dist/src/cli/commands/switch-project.js.map +0 -1
  410. package/dist/src/cli/commands/validate-jira.d.ts +0 -35
  411. package/dist/src/cli/commands/validate-jira.d.ts.map +0 -1
  412. package/dist/src/cli/commands/validate-jira.js +0 -112
  413. package/dist/src/cli/commands/validate-jira.js.map +0 -1
  414. package/dist/src/cli/commands/validate-plugins.d.ts +0 -41
  415. package/dist/src/cli/commands/validate-plugins.d.ts.map +0 -1
  416. package/dist/src/cli/commands/validate-plugins.js +0 -171
  417. package/dist/src/cli/commands/validate-plugins.js.map +0 -1
  418. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +0 -57
  419. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +0 -1
  420. package/dist/src/cli/helpers/issue-tracker/ado.js +0 -243
  421. package/dist/src/cli/helpers/issue-tracker/ado.js.map +0 -1
  422. package/dist/src/cli/helpers/issue-tracker/github.d.ts +0 -65
  423. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +0 -1
  424. package/dist/src/cli/helpers/issue-tracker/github.js +0 -426
  425. package/dist/src/cli/helpers/issue-tracker/github.js.map +0 -1
  426. package/dist/src/cli/helpers/issue-tracker/index.d.ts +0 -22
  427. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +0 -1
  428. package/dist/src/cli/helpers/issue-tracker/index.js +0 -314
  429. package/dist/src/cli/helpers/issue-tracker/index.js.map +0 -1
  430. package/dist/src/cli/helpers/issue-tracker/jira.d.ts +0 -61
  431. package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +0 -1
  432. package/dist/src/cli/helpers/issue-tracker/jira.js +0 -404
  433. package/dist/src/cli/helpers/issue-tracker/jira.js.map +0 -1
  434. package/dist/src/cli/helpers/issue-tracker/types.d.ts +0 -108
  435. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +0 -1
  436. package/dist/src/cli/helpers/issue-tracker/types.js +0 -16
  437. package/dist/src/cli/helpers/issue-tracker/types.js.map +0 -1
  438. package/dist/src/cli/helpers/issue-tracker/utils.d.ts +0 -112
  439. package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +0 -1
  440. package/dist/src/cli/helpers/issue-tracker/utils.js +0 -247
  441. package/dist/src/cli/helpers/issue-tracker/utils.js.map +0 -1
  442. package/dist/src/core/agent-model-manager.d.ts +0 -52
  443. package/dist/src/core/agent-model-manager.d.ts.map +0 -1
  444. package/dist/src/core/agent-model-manager.js +0 -120
  445. package/dist/src/core/agent-model-manager.js.map +0 -1
  446. package/dist/src/core/brownfield/analyzer.d.ts +0 -86
  447. package/dist/src/core/brownfield/analyzer.d.ts.map +0 -1
  448. package/dist/src/core/brownfield/analyzer.js +0 -365
  449. package/dist/src/core/brownfield/analyzer.js.map +0 -1
  450. package/dist/src/core/brownfield/importer.d.ts +0 -76
  451. package/dist/src/core/brownfield/importer.d.ts.map +0 -1
  452. package/dist/src/core/brownfield/importer.js +0 -287
  453. package/dist/src/core/brownfield/importer.js.map +0 -1
  454. package/dist/src/core/config-manager.d.ts +0 -47
  455. package/dist/src/core/config-manager.d.ts.map +0 -1
  456. package/dist/src/core/config-manager.js +0 -136
  457. package/dist/src/core/config-manager.js.map +0 -1
  458. package/dist/src/core/cost-tracker.d.ts +0 -108
  459. package/dist/src/core/cost-tracker.d.ts.map +0 -1
  460. package/dist/src/core/cost-tracker.js +0 -281
  461. package/dist/src/core/cost-tracker.js.map +0 -1
  462. package/dist/src/core/credentials-manager.d.ts +0 -107
  463. package/dist/src/core/credentials-manager.d.ts.map +0 -1
  464. package/dist/src/core/credentials-manager.js +0 -457
  465. package/dist/src/core/credentials-manager.js.map +0 -1
  466. package/dist/src/core/i18n/language-detector.d.ts +0 -29
  467. package/dist/src/core/i18n/language-detector.d.ts.map +0 -1
  468. package/dist/src/core/i18n/language-detector.js +0 -143
  469. package/dist/src/core/i18n/language-detector.js.map +0 -1
  470. package/dist/src/core/i18n/language-manager.d.ts +0 -101
  471. package/dist/src/core/i18n/language-manager.d.ts.map +0 -1
  472. package/dist/src/core/i18n/language-manager.js +0 -232
  473. package/dist/src/core/i18n/language-manager.js.map +0 -1
  474. package/dist/src/core/i18n/language-registry.d.ts +0 -44
  475. package/dist/src/core/i18n/language-registry.d.ts.map +0 -1
  476. package/dist/src/core/i18n/language-registry.js +0 -234
  477. package/dist/src/core/i18n/language-registry.js.map +0 -1
  478. package/dist/src/core/i18n/locale-manager.d.ts +0 -62
  479. package/dist/src/core/i18n/locale-manager.d.ts.map +0 -1
  480. package/dist/src/core/i18n/locale-manager.js +0 -137
  481. package/dist/src/core/i18n/locale-manager.js.map +0 -1
  482. package/dist/src/core/i18n/system-prompt-injector.d.ts +0 -33
  483. package/dist/src/core/i18n/system-prompt-injector.d.ts.map +0 -1
  484. package/dist/src/core/i18n/system-prompt-injector.js +0 -131
  485. package/dist/src/core/i18n/system-prompt-injector.js.map +0 -1
  486. package/dist/src/core/i18n/types.d.ts +0 -151
  487. package/dist/src/core/i18n/types.d.ts.map +0 -1
  488. package/dist/src/core/i18n/types.js +0 -11
  489. package/dist/src/core/i18n/types.js.map +0 -1
  490. package/dist/src/core/increment/limits.d.ts +0 -68
  491. package/dist/src/core/increment/limits.d.ts.map +0 -1
  492. package/dist/src/core/increment/limits.js +0 -224
  493. package/dist/src/core/increment/limits.js.map +0 -1
  494. package/dist/src/core/increment/metadata-manager.d.ts +0 -114
  495. package/dist/src/core/increment/metadata-manager.d.ts.map +0 -1
  496. package/dist/src/core/increment/metadata-manager.js +0 -320
  497. package/dist/src/core/increment/metadata-manager.js.map +0 -1
  498. package/dist/src/core/increment/status-commands.d.ts +0 -43
  499. package/dist/src/core/increment/status-commands.d.ts.map +0 -1
  500. package/dist/src/core/increment/status-commands.js +0 -277
  501. package/dist/src/core/increment/status-commands.js.map +0 -1
  502. package/dist/src/core/increment-status.d.ts +0 -72
  503. package/dist/src/core/increment-status.d.ts.map +0 -1
  504. package/dist/src/core/increment-status.js +0 -227
  505. package/dist/src/core/increment-status.js.map +0 -1
  506. package/dist/src/core/model-selector.d.ts +0 -57
  507. package/dist/src/core/model-selector.d.ts.map +0 -1
  508. package/dist/src/core/model-selector.js +0 -115
  509. package/dist/src/core/model-selector.js.map +0 -1
  510. package/dist/src/core/phase-detector.d.ts +0 -62
  511. package/dist/src/core/phase-detector.d.ts.map +0 -1
  512. package/dist/src/core/phase-detector.js +0 -229
  513. package/dist/src/core/phase-detector.js.map +0 -1
  514. package/dist/src/core/plugin-loader.d.ts +0 -131
  515. package/dist/src/core/plugin-loader.d.ts.map +0 -1
  516. package/dist/src/core/plugin-loader.js +0 -421
  517. package/dist/src/core/plugin-loader.js.map +0 -1
  518. package/dist/src/core/project-manager.d.ts +0 -127
  519. package/dist/src/core/project-manager.d.ts.map +0 -1
  520. package/dist/src/core/project-manager.js +0 -524
  521. package/dist/src/core/project-manager.js.map +0 -1
  522. package/dist/src/core/project-structure-detector.d.ts +0 -92
  523. package/dist/src/core/project-structure-detector.d.ts.map +0 -1
  524. package/dist/src/core/project-structure-detector.js +0 -289
  525. package/dist/src/core/project-structure-detector.js.map +0 -1
  526. package/dist/src/core/qa/qa-runner.d.ts +0 -16
  527. package/dist/src/core/qa/qa-runner.d.ts.map +0 -1
  528. package/dist/src/core/qa/qa-runner.js +0 -404
  529. package/dist/src/core/qa/qa-runner.js.map +0 -1
  530. package/dist/src/core/qa/quality-gate-decider.d.ts +0 -53
  531. package/dist/src/core/qa/quality-gate-decider.d.ts.map +0 -1
  532. package/dist/src/core/qa/quality-gate-decider.js +0 -268
  533. package/dist/src/core/qa/quality-gate-decider.js.map +0 -1
  534. package/dist/src/core/qa/risk-calculator.d.ts +0 -126
  535. package/dist/src/core/qa/risk-calculator.d.ts.map +0 -1
  536. package/dist/src/core/qa/risk-calculator.js +0 -247
  537. package/dist/src/core/qa/risk-calculator.js.map +0 -1
  538. package/dist/src/core/qa/types.d.ts +0 -315
  539. package/dist/src/core/qa/types.d.ts.map +0 -1
  540. package/dist/src/core/qa/types.js +0 -8
  541. package/dist/src/core/qa/types.js.map +0 -1
  542. package/dist/src/core/rfc-generator-v2.d.ts +0 -149
  543. package/dist/src/core/rfc-generator-v2.d.ts.map +0 -1
  544. package/dist/src/core/rfc-generator-v2.js +0 -399
  545. package/dist/src/core/rfc-generator-v2.js.map +0 -1
  546. package/dist/src/core/specs/spec-metadata-manager.d.ts +0 -70
  547. package/dist/src/core/specs/spec-metadata-manager.d.ts.map +0 -1
  548. package/dist/src/core/specs/spec-metadata-manager.js +0 -371
  549. package/dist/src/core/specs/spec-metadata-manager.js.map +0 -1
  550. package/dist/src/core/specs/spec-parser.d.ts +0 -66
  551. package/dist/src/core/specs/spec-parser.d.ts.map +0 -1
  552. package/dist/src/core/specs/spec-parser.js +0 -276
  553. package/dist/src/core/specs/spec-parser.js.map +0 -1
  554. package/dist/src/core/sync/bidirectional-engine.d.ts +0 -110
  555. package/dist/src/core/sync/bidirectional-engine.d.ts.map +0 -1
  556. package/dist/src/core/sync/bidirectional-engine.js +0 -356
  557. package/dist/src/core/sync/bidirectional-engine.js.map +0 -1
  558. package/dist/src/core/sync/folder-mapper.d.ts +0 -71
  559. package/dist/src/core/sync/folder-mapper.d.ts.map +0 -1
  560. package/dist/src/core/sync/folder-mapper.js +0 -168
  561. package/dist/src/core/sync/folder-mapper.js.map +0 -1
  562. package/dist/src/core/sync/profile-manager.d.ts +0 -72
  563. package/dist/src/core/sync/profile-manager.d.ts.map +0 -1
  564. package/dist/src/core/sync/profile-manager.js +0 -338
  565. package/dist/src/core/sync/profile-manager.js.map +0 -1
  566. package/dist/src/core/sync/profile-selector.d.ts +0 -52
  567. package/dist/src/core/sync/profile-selector.d.ts.map +0 -1
  568. package/dist/src/core/sync/profile-selector.js +0 -179
  569. package/dist/src/core/sync/profile-selector.js.map +0 -1
  570. package/dist/src/core/sync/profile-validator.d.ts +0 -52
  571. package/dist/src/core/sync/profile-validator.d.ts.map +0 -1
  572. package/dist/src/core/sync/profile-validator.js +0 -225
  573. package/dist/src/core/sync/profile-validator.js.map +0 -1
  574. package/dist/src/core/sync/project-context.d.ts +0 -81
  575. package/dist/src/core/sync/project-context.d.ts.map +0 -1
  576. package/dist/src/core/sync/project-context.js +0 -354
  577. package/dist/src/core/sync/project-context.js.map +0 -1
  578. package/dist/src/core/sync/rate-limiter.d.ts +0 -116
  579. package/dist/src/core/sync/rate-limiter.d.ts.map +0 -1
  580. package/dist/src/core/sync/rate-limiter.js +0 -308
  581. package/dist/src/core/sync/rate-limiter.js.map +0 -1
  582. package/dist/src/core/sync/time-range-selector.d.ts +0 -48
  583. package/dist/src/core/sync/time-range-selector.d.ts.map +0 -1
  584. package/dist/src/core/sync/time-range-selector.js +0 -224
  585. package/dist/src/core/sync/time-range-selector.js.map +0 -1
  586. package/dist/src/core/types/config.d.ts +0 -90
  587. package/dist/src/core/types/config.d.ts.map +0 -1
  588. package/dist/src/core/types/config.js +0 -44
  589. package/dist/src/core/types/config.js.map +0 -1
  590. package/dist/src/core/types/increment-metadata.d.ts +0 -120
  591. package/dist/src/core/types/increment-metadata.d.ts.map +0 -1
  592. package/dist/src/core/types/increment-metadata.js +0 -138
  593. package/dist/src/core/types/increment-metadata.js.map +0 -1
  594. package/dist/src/core/types/plugin.d.ts +0 -283
  595. package/dist/src/core/types/plugin.d.ts.map +0 -1
  596. package/dist/src/core/types/plugin.js +0 -49
  597. package/dist/src/core/types/plugin.js.map +0 -1
  598. package/dist/src/core/types/spec-metadata.d.ts +0 -229
  599. package/dist/src/core/types/spec-metadata.d.ts.map +0 -1
  600. package/dist/src/core/types/spec-metadata.js +0 -14
  601. package/dist/src/core/types/spec-metadata.js.map +0 -1
  602. package/dist/src/core/types/sync-profile.d.ts +0 -403
  603. package/dist/src/core/types/sync-profile.d.ts.map +0 -1
  604. package/dist/src/core/types/sync-profile.js +0 -55
  605. package/dist/src/core/types/sync-profile.js.map +0 -1
  606. package/dist/src/hooks/lib/git-diff-analyzer.d.ts +0 -89
  607. package/dist/src/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  608. package/dist/src/hooks/lib/git-diff-analyzer.js +0 -226
  609. package/dist/src/hooks/lib/git-diff-analyzer.js.map +0 -1
  610. package/dist/src/hooks/lib/invoke-translator-skill.d.ts +0 -60
  611. package/dist/src/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  612. package/dist/src/hooks/lib/invoke-translator-skill.js +0 -201
  613. package/dist/src/hooks/lib/invoke-translator-skill.js.map +0 -1
  614. package/dist/src/hooks/lib/prepare-reflection-context.d.ts +0 -42
  615. package/dist/src/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  616. package/dist/src/hooks/lib/prepare-reflection-context.js +0 -123
  617. package/dist/src/hooks/lib/prepare-reflection-context.js.map +0 -1
  618. package/dist/src/hooks/lib/reflection-config-loader.d.ts +0 -45
  619. package/dist/src/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  620. package/dist/src/hooks/lib/reflection-config-loader.js +0 -132
  621. package/dist/src/hooks/lib/reflection-config-loader.js.map +0 -1
  622. package/dist/src/hooks/lib/reflection-parser.d.ts +0 -33
  623. package/dist/src/hooks/lib/reflection-parser.d.ts.map +0 -1
  624. package/dist/src/hooks/lib/reflection-parser.js +0 -419
  625. package/dist/src/hooks/lib/reflection-parser.js.map +0 -1
  626. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  627. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  628. package/dist/src/hooks/lib/reflection-prompt-builder.js +0 -239
  629. package/dist/src/hooks/lib/reflection-prompt-builder.js.map +0 -1
  630. package/dist/src/hooks/lib/reflection-storage.d.ts +0 -64
  631. package/dist/src/hooks/lib/reflection-storage.d.ts.map +0 -1
  632. package/dist/src/hooks/lib/reflection-storage.js +0 -305
  633. package/dist/src/hooks/lib/reflection-storage.js.map +0 -1
  634. package/dist/src/hooks/lib/run-self-reflection.d.ts +0 -43
  635. package/dist/src/hooks/lib/run-self-reflection.d.ts.map +0 -1
  636. package/dist/src/hooks/lib/run-self-reflection.js +0 -203
  637. package/dist/src/hooks/lib/run-self-reflection.js.map +0 -1
  638. package/dist/src/hooks/lib/sync-living-docs.d.ts +0 -27
  639. package/dist/src/hooks/lib/sync-living-docs.d.ts.map +0 -1
  640. package/dist/src/hooks/lib/sync-living-docs.js +0 -116
  641. package/dist/src/hooks/lib/sync-living-docs.js.map +0 -1
  642. package/dist/src/hooks/lib/translate-file.d.ts +0 -59
  643. package/dist/src/hooks/lib/translate-file.d.ts.map +0 -1
  644. package/dist/src/hooks/lib/translate-file.js +0 -350
  645. package/dist/src/hooks/lib/translate-file.js.map +0 -1
  646. package/dist/src/hooks/lib/translate-living-docs.d.ts +0 -13
  647. package/dist/src/hooks/lib/translate-living-docs.d.ts.map +0 -1
  648. package/dist/src/hooks/lib/translate-living-docs.js +0 -175
  649. package/dist/src/hooks/lib/translate-living-docs.js.map +0 -1
  650. package/dist/src/hooks/lib/types/reflection-types.d.ts +0 -164
  651. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +0 -1
  652. package/dist/src/hooks/lib/types/reflection-types.js +0 -73
  653. package/dist/src/hooks/lib/types/reflection-types.js.map +0 -1
  654. package/dist/src/hooks/lib/update-tasks-md.d.ts +0 -29
  655. package/dist/src/hooks/lib/update-tasks-md.d.ts.map +0 -1
  656. package/dist/src/hooks/lib/update-tasks-md.js +0 -203
  657. package/dist/src/hooks/lib/update-tasks-md.js.map +0 -1
  658. package/dist/src/integrations/ado/ado-client.d.ts +0 -127
  659. package/dist/src/integrations/ado/ado-client.d.ts.map +0 -1
  660. package/dist/src/integrations/ado/ado-client.js +0 -416
  661. package/dist/src/integrations/ado/ado-client.js.map +0 -1
  662. package/dist/src/integrations/jira/jira-client.d.ts +0 -139
  663. package/dist/src/integrations/jira/jira-client.d.ts.map +0 -1
  664. package/dist/src/integrations/jira/jira-client.js +0 -386
  665. package/dist/src/integrations/jira/jira-client.js.map +0 -1
  666. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +0 -75
  667. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +0 -1
  668. package/dist/src/integrations/jira/jira-incremental-mapper.js +0 -474
  669. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +0 -1
  670. package/dist/src/integrations/jira/jira-mapper.d.ts +0 -105
  671. package/dist/src/integrations/jira/jira-mapper.d.ts.map +0 -1
  672. package/dist/src/integrations/jira/jira-mapper.js +0 -494
  673. package/dist/src/integrations/jira/jira-mapper.js.map +0 -1
  674. package/dist/src/metrics/calculators/change-failure-rate.d.ts +0 -22
  675. package/dist/src/metrics/calculators/change-failure-rate.d.ts.map +0 -1
  676. package/dist/src/metrics/calculators/change-failure-rate.js +0 -70
  677. package/dist/src/metrics/calculators/change-failure-rate.js.map +0 -1
  678. package/dist/src/metrics/calculators/deployment-frequency.d.ts +0 -20
  679. package/dist/src/metrics/calculators/deployment-frequency.d.ts.map +0 -1
  680. package/dist/src/metrics/calculators/deployment-frequency.js +0 -61
  681. package/dist/src/metrics/calculators/deployment-frequency.js.map +0 -1
  682. package/dist/src/metrics/calculators/lead-time.d.ts +0 -22
  683. package/dist/src/metrics/calculators/lead-time.d.ts.map +0 -1
  684. package/dist/src/metrics/calculators/lead-time.js +0 -82
  685. package/dist/src/metrics/calculators/lead-time.js.map +0 -1
  686. package/dist/src/metrics/calculators/mttr.d.ts +0 -21
  687. package/dist/src/metrics/calculators/mttr.d.ts.map +0 -1
  688. package/dist/src/metrics/calculators/mttr.js +0 -60
  689. package/dist/src/metrics/calculators/mttr.js.map +0 -1
  690. package/dist/src/metrics/dora-calculator.d.ts +0 -28
  691. package/dist/src/metrics/dora-calculator.d.ts.map +0 -1
  692. package/dist/src/metrics/dora-calculator.js +0 -117
  693. package/dist/src/metrics/dora-calculator.js.map +0 -1
  694. package/dist/src/metrics/github-client.d.ts +0 -51
  695. package/dist/src/metrics/github-client.d.ts.map +0 -1
  696. package/dist/src/metrics/github-client.js +0 -133
  697. package/dist/src/metrics/github-client.js.map +0 -1
  698. package/dist/src/metrics/report-generator.d.ts +0 -17
  699. package/dist/src/metrics/report-generator.d.ts.map +0 -1
  700. package/dist/src/metrics/report-generator.js +0 -403
  701. package/dist/src/metrics/report-generator.js.map +0 -1
  702. package/dist/src/metrics/types.d.ts +0 -112
  703. package/dist/src/metrics/types.d.ts.map +0 -1
  704. package/dist/src/metrics/types.js +0 -10
  705. package/dist/src/metrics/types.js.map +0 -1
  706. package/dist/src/metrics/utils/percentile.d.ts +0 -25
  707. package/dist/src/metrics/utils/percentile.d.ts.map +0 -1
  708. package/dist/src/metrics/utils/percentile.js +0 -46
  709. package/dist/src/metrics/utils/percentile.js.map +0 -1
  710. package/dist/src/metrics/utils/tier-classifier.d.ts +0 -61
  711. package/dist/src/metrics/utils/tier-classifier.d.ts.map +0 -1
  712. package/dist/src/metrics/utils/tier-classifier.js +0 -100
  713. package/dist/src/metrics/utils/tier-classifier.js.map +0 -1
  714. package/dist/src/testing/test-generator.d.ts +0 -117
  715. package/dist/src/testing/test-generator.d.ts.map +0 -1
  716. package/dist/src/testing/test-generator.js +0 -370
  717. package/dist/src/testing/test-generator.js.map +0 -1
  718. package/dist/src/types/cost-tracking.d.ts +0 -43
  719. package/dist/src/types/cost-tracking.d.ts.map +0 -1
  720. package/dist/src/types/cost-tracking.js +0 -8
  721. package/dist/src/types/cost-tracking.js.map +0 -1
  722. package/dist/src/types/model-selection.d.ts +0 -53
  723. package/dist/src/types/model-selection.d.ts.map +0 -1
  724. package/dist/src/types/model-selection.js +0 -12
  725. package/dist/src/types/model-selection.js.map +0 -1
  726. package/dist/src/utils/agents-md-compiler.d.ts +0 -68
  727. package/dist/src/utils/agents-md-compiler.d.ts.map +0 -1
  728. package/dist/src/utils/agents-md-compiler.js +0 -420
  729. package/dist/src/utils/agents-md-compiler.js.map +0 -1
  730. package/dist/src/utils/auth-helpers.d.ts +0 -58
  731. package/dist/src/utils/auth-helpers.d.ts.map +0 -1
  732. package/dist/src/utils/auth-helpers.js +0 -108
  733. package/dist/src/utils/auth-helpers.js.map +0 -1
  734. package/dist/src/utils/auto-install.d.ts +0 -47
  735. package/dist/src/utils/auto-install.d.ts.map +0 -1
  736. package/dist/src/utils/auto-install.js +0 -211
  737. package/dist/src/utils/auto-install.js.map +0 -1
  738. package/dist/src/utils/claude-cli-detector.d.ts +0 -75
  739. package/dist/src/utils/claude-cli-detector.d.ts.map +0 -1
  740. package/dist/src/utils/claude-cli-detector.js +0 -285
  741. package/dist/src/utils/claude-cli-detector.js.map +0 -1
  742. package/dist/src/utils/cost-reporter.d.ts +0 -58
  743. package/dist/src/utils/cost-reporter.d.ts.map +0 -1
  744. package/dist/src/utils/cost-reporter.js +0 -224
  745. package/dist/src/utils/cost-reporter.js.map +0 -1
  746. package/dist/src/utils/docs-preview/config-generator.d.ts +0 -46
  747. package/dist/src/utils/docs-preview/config-generator.d.ts.map +0 -1
  748. package/dist/src/utils/docs-preview/config-generator.js +0 -377
  749. package/dist/src/utils/docs-preview/config-generator.js.map +0 -1
  750. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +0 -38
  751. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +0 -1
  752. package/dist/src/utils/docs-preview/docusaurus-setup.js +0 -177
  753. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +0 -1
  754. package/dist/src/utils/docs-preview/index.d.ts +0 -7
  755. package/dist/src/utils/docs-preview/index.d.ts.map +0 -1
  756. package/dist/src/utils/docs-preview/index.js +0 -7
  757. package/dist/src/utils/docs-preview/index.js.map +0 -1
  758. package/dist/src/utils/docs-preview/package-installer.d.ts +0 -42
  759. package/dist/src/utils/docs-preview/package-installer.d.ts.map +0 -1
  760. package/dist/src/utils/docs-preview/package-installer.js +0 -182
  761. package/dist/src/utils/docs-preview/package-installer.js.map +0 -1
  762. package/dist/src/utils/docs-preview/server-manager.d.ts +0 -30
  763. package/dist/src/utils/docs-preview/server-manager.d.ts.map +0 -1
  764. package/dist/src/utils/docs-preview/server-manager.js +0 -212
  765. package/dist/src/utils/docs-preview/server-manager.js.map +0 -1
  766. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +0 -32
  767. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +0 -1
  768. package/dist/src/utils/docs-preview/sidebar-builder.js +0 -202
  769. package/dist/src/utils/docs-preview/sidebar-builder.js.map +0 -1
  770. package/dist/src/utils/docs-preview/types.d.ts +0 -57
  771. package/dist/src/utils/docs-preview/types.d.ts.map +0 -1
  772. package/dist/src/utils/docs-preview/types.js +0 -2
  773. package/dist/src/utils/docs-preview/types.js.map +0 -1
  774. package/dist/src/utils/env-file.d.ts +0 -88
  775. package/dist/src/utils/env-file.d.ts.map +0 -1
  776. package/dist/src/utils/env-file.js +0 -180
  777. package/dist/src/utils/env-file.js.map +0 -1
  778. package/dist/src/utils/env-multi-project-parser.d.ts +0 -220
  779. package/dist/src/utils/env-multi-project-parser.d.ts.map +0 -1
  780. package/dist/src/utils/env-multi-project-parser.js +0 -403
  781. package/dist/src/utils/env-multi-project-parser.js.map +0 -1
  782. package/dist/src/utils/esm-helpers.d.ts +0 -50
  783. package/dist/src/utils/esm-helpers.d.ts.map +0 -1
  784. package/dist/src/utils/esm-helpers.js +0 -57
  785. package/dist/src/utils/esm-helpers.js.map +0 -1
  786. package/dist/src/utils/execFileNoThrow.d.ts +0 -99
  787. package/dist/src/utils/execFileNoThrow.d.ts.map +0 -1
  788. package/dist/src/utils/execFileNoThrow.js +0 -137
  789. package/dist/src/utils/execFileNoThrow.js.map +0 -1
  790. package/dist/src/utils/external-resource-validator.d.ts +0 -102
  791. package/dist/src/utils/external-resource-validator.d.ts.map +0 -1
  792. package/dist/src/utils/external-resource-validator.js +0 -442
  793. package/dist/src/utils/external-resource-validator.js.map +0 -1
  794. package/dist/src/utils/generate-skills-index.d.ts +0 -24
  795. package/dist/src/utils/generate-skills-index.d.ts.map +0 -1
  796. package/dist/src/utils/generate-skills-index.js +0 -410
  797. package/dist/src/utils/generate-skills-index.js.map +0 -1
  798. package/dist/src/utils/model-selection.d.ts +0 -75
  799. package/dist/src/utils/model-selection.d.ts.map +0 -1
  800. package/dist/src/utils/model-selection.js +0 -204
  801. package/dist/src/utils/model-selection.js.map +0 -1
  802. package/dist/src/utils/plugin-validator.d.ts +0 -161
  803. package/dist/src/utils/plugin-validator.d.ts.map +0 -1
  804. package/dist/src/utils/plugin-validator.js +0 -558
  805. package/dist/src/utils/plugin-validator.js.map +0 -1
  806. package/dist/src/utils/pricing-constants.d.ts +0 -70
  807. package/dist/src/utils/pricing-constants.d.ts.map +0 -1
  808. package/dist/src/utils/pricing-constants.js +0 -71
  809. package/dist/src/utils/pricing-constants.js.map +0 -1
  810. package/dist/src/utils/project-detection.d.ts +0 -141
  811. package/dist/src/utils/project-detection.d.ts.map +0 -1
  812. package/dist/src/utils/project-detection.js +0 -321
  813. package/dist/src/utils/project-detection.js.map +0 -1
  814. package/dist/src/utils/string-utils.d.ts +0 -40
  815. package/dist/src/utils/string-utils.d.ts.map +0 -1
  816. package/dist/src/utils/string-utils.js +0 -58
  817. package/dist/src/utils/string-utils.js.map +0 -1
  818. package/dist/src/utils/translation.d.ts +0 -187
  819. package/dist/src/utils/translation.d.ts.map +0 -1
  820. package/dist/src/utils/translation.js +0 -414
  821. package/dist/src/utils/translation.js.map +0 -1
  822. package/plugins/specweave-github/hooks/post-increment-done.sh +0 -224
@@ -1,224 +0,0 @@
1
- /**
2
- * Increment Limits
3
- *
4
- * Type-based limits for concurrent active increments.
5
- * Part of increment 0007: Smart Status Management
6
- */
7
- import { MetadataManager } from './metadata-manager';
8
- import { IncrementType, IncrementStatus, TYPE_LIMITS } from '../types/increment-metadata';
9
- /**
10
- * Check if creating a new increment would exceed type-based limits
11
- */
12
- export function checkIncrementLimits(type) {
13
- // Get limit for this type
14
- const limit = TYPE_LIMITS[type];
15
- // Get active increments of this type (not paused, not completed, not abandoned)
16
- const allIncrements = MetadataManager.getAll();
17
- const activeOfType = allIncrements.filter(m => m.type === type && m.status === IncrementStatus.ACTIVE);
18
- const current = activeOfType.length;
19
- // If unlimited, no limit enforcement but still report current count
20
- if (limit === null) {
21
- return {
22
- exceeded: false,
23
- current,
24
- limit: null,
25
- severity: 'info'
26
- };
27
- }
28
- const exceeded = current >= limit;
29
- // Build result
30
- const result = {
31
- exceeded,
32
- current,
33
- limit,
34
- severity: exceeded ? 'warning' : 'info',
35
- activeIncrements: activeOfType
36
- };
37
- // Add warning message if exceeded
38
- if (exceeded) {
39
- result.warning = buildLimitWarning(type, current, limit, activeOfType);
40
- result.suggestions = buildSuggestions(type, activeOfType);
41
- }
42
- return result;
43
- }
44
- /**
45
- * Check all increment types and return warnings
46
- */
47
- export function checkAllLimits() {
48
- const results = {};
49
- for (const type of Object.values(IncrementType)) {
50
- results[type] = checkIncrementLimits(type);
51
- }
52
- return results;
53
- }
54
- /**
55
- * Get context switching warning for starting a new increment
56
- */
57
- export function getContextSwitchWarning(newType) {
58
- const activeIncrements = MetadataManager.getActive();
59
- const activeCount = activeIncrements.length;
60
- // No warning if no active increments
61
- if (activeCount === 0) {
62
- return {
63
- show: false,
64
- productivityCost: '0%',
65
- message: '',
66
- options: []
67
- };
68
- }
69
- // No warning for hotfixes (emergency work)
70
- if (newType === IncrementType.HOTFIX || newType === IncrementType.BUG) {
71
- return {
72
- show: false,
73
- productivityCost: '0%',
74
- message: '',
75
- options: []
76
- };
77
- }
78
- // Calculate productivity cost
79
- const productivityCost = calculateProductivityCost(activeCount);
80
- // Build warning message
81
- const message = buildContextSwitchMessage(activeCount, productivityCost, activeIncrements);
82
- // Build options
83
- const options = [
84
- {
85
- label: 'Continue current work',
86
- value: 'continue',
87
- description: 'Finish active increment(s) before starting new work (recommended)'
88
- },
89
- {
90
- label: 'Pause current work',
91
- value: 'pause',
92
- description: 'Pause active increment(s) to focus on new work'
93
- },
94
- {
95
- label: 'Work in parallel',
96
- value: 'parallel',
97
- description: `Start new increment (${productivityCost} productivity cost)`
98
- }
99
- ];
100
- return {
101
- show: true,
102
- productivityCost,
103
- message,
104
- options
105
- };
106
- }
107
- /**
108
- * Build warning message for exceeded limit
109
- */
110
- function buildLimitWarning(type, current, limit, activeIncrements) {
111
- const typeLabel = formatTypeLabel(type);
112
- const incrementList = activeIncrements
113
- .map(m => ` • ${m.id}`)
114
- .join('\n');
115
- return `
116
- ⚠️ You have ${current} active ${typeLabel} increment(s) (limit: ${limit})
117
-
118
- Active ${typeLabel} increments:
119
- ${incrementList}
120
-
121
- Recommendation: Complete or pause one before starting another.
122
- Context switching reduces productivity by 20-40%.
123
- `.trim();
124
- }
125
- /**
126
- * Build suggestions for resolving limit exceeded
127
- */
128
- function buildSuggestions(type, activeIncrements) {
129
- const suggestions = [];
130
- // Suggest completing increments
131
- suggestions.push(`Complete active increment: /done <id>`);
132
- // Suggest pausing increments
133
- suggestions.push(`Pause active increment: /pause <id>`);
134
- // Show status
135
- suggestions.push(`Check status: /status`);
136
- // Type-specific suggestions
137
- if (type === IncrementType.FEATURE) {
138
- suggestions.push(`Reduce scope: Break large feature into smaller increments`);
139
- }
140
- else if (type === IncrementType.REFACTOR) {
141
- suggestions.push(`Refactors need focus: Complete current refactor before starting new one`);
142
- }
143
- return suggestions;
144
- }
145
- /**
146
- * Build context switching warning message
147
- */
148
- function buildContextSwitchMessage(activeCount, productivityCost, activeIncrements) {
149
- const incrementList = activeIncrements
150
- .map(m => ` • ${m.id} [${m.type}]`)
151
- .join('\n');
152
- return `
153
- ⚠️ You have ${activeCount} active increment(s)
154
-
155
- Active increments:
156
- ${incrementList}
157
-
158
- Starting new work will reduce productivity by ${productivityCost} due to context switching.
159
-
160
- Research shows:
161
- • 2 concurrent tasks = 20% slower
162
- • 3+ concurrent tasks = 40% slower
163
- • Frequent switches = more bugs
164
-
165
- Recommended: Complete or pause active work first.
166
- `.trim();
167
- }
168
- /**
169
- * Calculate productivity cost based on active increment count
170
- */
171
- function calculateProductivityCost(activeCount) {
172
- if (activeCount === 0)
173
- return '0%';
174
- if (activeCount === 1)
175
- return '20%';
176
- if (activeCount === 2)
177
- return '30%';
178
- return '40%';
179
- }
180
- /**
181
- * Format type label for display
182
- */
183
- function formatTypeLabel(type) {
184
- switch (type) {
185
- case IncrementType.HOTFIX: return 'hotfix';
186
- case IncrementType.FEATURE: return 'feature';
187
- case IncrementType.BUG: return 'bug';
188
- case IncrementType.CHANGE_REQUEST: return 'change request';
189
- case IncrementType.REFACTOR: return 'refactor';
190
- case IncrementType.EXPERIMENT: return 'experiment';
191
- default: return type;
192
- }
193
- }
194
- /**
195
- * Get summary of all limits
196
- */
197
- export function getLimitsSummary() {
198
- const results = checkAllLimits();
199
- const lines = [];
200
- lines.push('Increment Limits:');
201
- lines.push('');
202
- for (const [type, result] of Object.entries(results)) {
203
- const typeLabel = formatTypeLabel(type);
204
- const limitStr = result.limit === null ? 'unlimited' : result.limit.toString();
205
- const status = result.exceeded ? '⚠️ ' : '✅';
206
- lines.push(`${status} ${typeLabel}: ${result.current}/${limitStr} active`);
207
- }
208
- return lines.join('\n');
209
- }
210
- /**
211
- * Check if starting a new increment of this type would be allowed
212
- * (considering limits)
213
- */
214
- export function canStartIncrement(type) {
215
- const check = checkIncrementLimits(type);
216
- if (!check.exceeded) {
217
- return { allowed: true };
218
- }
219
- return {
220
- allowed: false,
221
- reason: check.warning
222
- };
223
- }
224
- //# sourceMappingURL=limits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../../../src/core/increment/limits.ts"],"names":[],"mappings":"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"}
@@ -1,114 +0,0 @@
1
- /**
2
- * Metadata Manager
3
- *
4
- * Handles CRUD operations for increment metadata (status, type, timestamps).
5
- * Part of increment 0007: Smart Status Management
6
- */
7
- import { IncrementMetadata, IncrementMetadataExtended, IncrementStatus, IncrementType } from '../types/increment-metadata.js';
8
- /**
9
- * Error thrown when metadata operations fail
10
- */
11
- export declare class MetadataError extends Error {
12
- incrementId: string;
13
- cause?: Error;
14
- constructor(message: string, incrementId: string, cause?: Error);
15
- }
16
- /**
17
- * Metadata Manager
18
- *
19
- * Provides CRUD operations and queries for increment metadata
20
- */
21
- export declare class MetadataManager {
22
- /**
23
- * Get metadata file path for increment
24
- */
25
- private static getMetadataPath;
26
- /**
27
- * Get increment directory path
28
- */
29
- private static getIncrementPath;
30
- /**
31
- * Check if metadata file exists
32
- */
33
- static exists(incrementId: string): boolean;
34
- /**
35
- * Read metadata from file
36
- * Creates default metadata if file doesn't exist (lazy initialization)
37
- */
38
- static read(incrementId: string): IncrementMetadata;
39
- /**
40
- * Write metadata to file
41
- * Uses atomic write (temp file → rename)
42
- */
43
- static write(incrementId: string, metadata: IncrementMetadata): void;
44
- /**
45
- * Delete metadata file
46
- */
47
- static delete(incrementId: string): void;
48
- /**
49
- * Update increment status
50
- * Validates transition and updates timestamps
51
- */
52
- static updateStatus(incrementId: string, newStatus: IncrementStatus, reason?: string): IncrementMetadata;
53
- /**
54
- * Update increment type
55
- */
56
- static updateType(incrementId: string, type: IncrementType): IncrementMetadata;
57
- /**
58
- * Touch increment (update lastActivity)
59
- */
60
- static touch(incrementId: string): IncrementMetadata;
61
- /**
62
- * Get all increments
63
- */
64
- static getAll(): IncrementMetadata[];
65
- /**
66
- * Get increments by status
67
- */
68
- static getByStatus(status: IncrementStatus): IncrementMetadata[];
69
- /**
70
- * Get active increments
71
- */
72
- static getActive(): IncrementMetadata[];
73
- /**
74
- * Get paused increments
75
- */
76
- static getPaused(): IncrementMetadata[];
77
- /**
78
- * Get completed increments
79
- */
80
- static getCompleted(): IncrementMetadata[];
81
- /**
82
- * Get abandoned increments
83
- */
84
- static getAbandoned(): IncrementMetadata[];
85
- /**
86
- * Get increments by type
87
- */
88
- static getByType(type: IncrementType): IncrementMetadata[];
89
- /**
90
- * Get stale increments (paused >7 days or active >30 days)
91
- */
92
- static getStale(): IncrementMetadata[];
93
- /**
94
- * Get increments that should be auto-abandoned (experiments inactive >14 days)
95
- */
96
- static getShouldAutoAbandon(): IncrementMetadata[];
97
- /**
98
- * Get extended metadata with computed fields (progress, age, etc.)
99
- */
100
- static getExtended(incrementId: string): IncrementMetadataExtended;
101
- /**
102
- * Validate metadata schema
103
- */
104
- static validate(metadata: IncrementMetadata): boolean;
105
- /**
106
- * Check if status transition is allowed
107
- */
108
- static canTransition(from: IncrementStatus, to: IncrementStatus): boolean;
109
- /**
110
- * Get human-readable status transition error message
111
- */
112
- static getTransitionError(from: IncrementStatus, to: IncrementStatus): string;
113
- }
114
- //# sourceMappingURL=metadata-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,aAAa,EAKd,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACF,WAAW,EAAE,MAAM;IAAS,KAAK,CAAC,EAAE,KAAK;gBAAjE,OAAO,EAAE,MAAM,EAAS,WAAW,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,KAAK;CAI9E;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAK9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAK/B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAK3C;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB;IAsCnD;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IA8BpE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAmBxC;;;OAGG;IACH,MAAM,CAAC,YAAY,CACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAC1B,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB;IAgCpB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,iBAAiB;IAQ9E;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB;IAOpD;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,iBAAiB,EAAE;IAyBpC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,EAAE;IAIhE;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE;IAIvC;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE;IAIvC;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,iBAAiB,EAAE;IAI1C;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,iBAAiB,EAAE;IAI1C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,iBAAiB,EAAE;IAI1D;;OAEG;IACH,MAAM,CAAC,QAAQ,IAAI,iBAAiB,EAAE;IAItC;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,iBAAiB,EAAE;IAIlD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB;IAyClE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO;IAwBrD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,GAAG,OAAO;IAIzE;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,GAAG,MAAM;CAe9E"}
@@ -1,320 +0,0 @@
1
- /**
2
- * Metadata Manager
3
- *
4
- * Handles CRUD operations for increment metadata (status, type, timestamps).
5
- * Part of increment 0007: Smart Status Management
6
- */
7
- import fs from 'fs-extra';
8
- import path from 'path';
9
- import { IncrementStatus, IncrementType, createDefaultMetadata, isValidTransition, isStale, shouldAutoAbandon } from '../types/increment-metadata.js';
10
- /**
11
- * Error thrown when metadata operations fail
12
- */
13
- export class MetadataError extends Error {
14
- constructor(message, incrementId, cause) {
15
- super(message);
16
- this.incrementId = incrementId;
17
- this.cause = cause;
18
- this.name = 'MetadataError';
19
- }
20
- }
21
- /**
22
- * Metadata Manager
23
- *
24
- * Provides CRUD operations and queries for increment metadata
25
- */
26
- export class MetadataManager {
27
- /**
28
- * Get metadata file path for increment
29
- */
30
- static getMetadataPath(incrementId) {
31
- const specweavePath = path.join(process.cwd(), '.specweave');
32
- return path.join(specweavePath, 'increments', incrementId, 'metadata.json');
33
- }
34
- /**
35
- * Get increment directory path
36
- */
37
- static getIncrementPath(incrementId) {
38
- const specweavePath = path.join(process.cwd(), '.specweave');
39
- return path.join(specweavePath, 'increments', incrementId);
40
- }
41
- /**
42
- * Check if metadata file exists
43
- */
44
- static exists(incrementId) {
45
- const metadataPath = this.getMetadataPath(incrementId);
46
- return fs.existsSync(metadataPath);
47
- }
48
- /**
49
- * Read metadata from file
50
- * Creates default metadata if file doesn't exist (lazy initialization)
51
- */
52
- static read(incrementId) {
53
- const metadataPath = this.getMetadataPath(incrementId);
54
- // Lazy initialization: Create metadata if doesn't exist
55
- if (!fs.existsSync(metadataPath)) {
56
- // Check if increment folder exists
57
- const incrementPath = this.getIncrementPath(incrementId);
58
- if (!fs.existsSync(incrementPath)) {
59
- throw new MetadataError(`Increment not found: ${incrementId}`, incrementId);
60
- }
61
- // Create default metadata
62
- const defaultMetadata = createDefaultMetadata(incrementId);
63
- this.write(incrementId, defaultMetadata);
64
- return defaultMetadata;
65
- }
66
- try {
67
- const content = fs.readFileSync(metadataPath, 'utf-8');
68
- const metadata = JSON.parse(content);
69
- // Validate schema
70
- this.validate(metadata);
71
- return metadata;
72
- }
73
- catch (error) {
74
- const errorMessage = error instanceof Error ? error.message : String(error);
75
- throw new MetadataError(`Failed to read metadata for ${incrementId}: ${errorMessage}`, incrementId, error instanceof Error ? error : new Error(String(error)));
76
- }
77
- }
78
- /**
79
- * Write metadata to file
80
- * Uses atomic write (temp file → rename)
81
- */
82
- static write(incrementId, metadata) {
83
- const metadataPath = this.getMetadataPath(incrementId);
84
- const incrementPath = this.getIncrementPath(incrementId);
85
- // Ensure increment directory exists
86
- if (!fs.existsSync(incrementPath)) {
87
- throw new MetadataError(`Increment directory not found: ${incrementId}`, incrementId);
88
- }
89
- try {
90
- // Validate before writing
91
- this.validate(metadata);
92
- // Atomic write: temp file → rename
93
- const tempPath = `${metadataPath}.tmp`;
94
- fs.writeFileSync(tempPath, JSON.stringify(metadata, null, 2), 'utf-8');
95
- fs.renameSync(tempPath, metadataPath);
96
- }
97
- catch (error) {
98
- const errorMessage = error instanceof Error ? error.message : String(error);
99
- throw new MetadataError(`Failed to write metadata for ${incrementId}: ${errorMessage}`, incrementId, error instanceof Error ? error : new Error(String(error)));
100
- }
101
- }
102
- /**
103
- * Delete metadata file
104
- */
105
- static delete(incrementId) {
106
- const metadataPath = this.getMetadataPath(incrementId);
107
- if (!fs.existsSync(metadataPath)) {
108
- return; // Already deleted
109
- }
110
- try {
111
- fs.unlinkSync(metadataPath);
112
- }
113
- catch (error) {
114
- const errorMessage = error instanceof Error ? error.message : String(error);
115
- throw new MetadataError(`Failed to delete metadata for ${incrementId}: ${errorMessage}`, incrementId, error instanceof Error ? error : new Error(String(error)));
116
- }
117
- }
118
- /**
119
- * Update increment status
120
- * Validates transition and updates timestamps
121
- */
122
- static updateStatus(incrementId, newStatus, reason) {
123
- const metadata = this.read(incrementId);
124
- // Validate transition
125
- if (!isValidTransition(metadata.status, newStatus)) {
126
- throw new MetadataError(`Invalid status transition: ${metadata.status} → ${newStatus}`, incrementId);
127
- }
128
- // Update status
129
- metadata.status = newStatus;
130
- metadata.lastActivity = new Date().toISOString();
131
- // Update status-specific fields
132
- if (newStatus === IncrementStatus.PAUSED) {
133
- metadata.pausedReason = reason || 'No reason provided';
134
- metadata.pausedAt = new Date().toISOString();
135
- }
136
- else if (newStatus === IncrementStatus.ACTIVE) {
137
- // Clear paused fields when resuming
138
- metadata.pausedReason = undefined;
139
- metadata.pausedAt = undefined;
140
- }
141
- else if (newStatus === IncrementStatus.ABANDONED) {
142
- metadata.abandonedReason = reason || 'No reason provided';
143
- metadata.abandonedAt = new Date().toISOString();
144
- }
145
- this.write(incrementId, metadata);
146
- return metadata;
147
- }
148
- /**
149
- * Update increment type
150
- */
151
- static updateType(incrementId, type) {
152
- const metadata = this.read(incrementId);
153
- metadata.type = type;
154
- metadata.lastActivity = new Date().toISOString();
155
- this.write(incrementId, metadata);
156
- return metadata;
157
- }
158
- /**
159
- * Touch increment (update lastActivity)
160
- */
161
- static touch(incrementId) {
162
- const metadata = this.read(incrementId);
163
- metadata.lastActivity = new Date().toISOString();
164
- this.write(incrementId, metadata);
165
- return metadata;
166
- }
167
- /**
168
- * Get all increments
169
- */
170
- static getAll() {
171
- const incrementsPath = path.join(process.cwd(), '.specweave', 'increments');
172
- if (!fs.existsSync(incrementsPath)) {
173
- return [];
174
- }
175
- const incrementFolders = fs.readdirSync(incrementsPath)
176
- .filter(name => {
177
- const folderPath = path.join(incrementsPath, name);
178
- return fs.statSync(folderPath).isDirectory() && !name.startsWith('_');
179
- });
180
- return incrementFolders
181
- .map(folder => {
182
- try {
183
- return this.read(folder);
184
- }
185
- catch (error) {
186
- // Skip increments with invalid/missing metadata
187
- return null;
188
- }
189
- })
190
- .filter((m) => m !== null);
191
- }
192
- /**
193
- * Get increments by status
194
- */
195
- static getByStatus(status) {
196
- return this.getAll().filter(m => m.status === status);
197
- }
198
- /**
199
- * Get active increments
200
- */
201
- static getActive() {
202
- return this.getByStatus(IncrementStatus.ACTIVE);
203
- }
204
- /**
205
- * Get paused increments
206
- */
207
- static getPaused() {
208
- return this.getByStatus(IncrementStatus.PAUSED);
209
- }
210
- /**
211
- * Get completed increments
212
- */
213
- static getCompleted() {
214
- return this.getByStatus(IncrementStatus.COMPLETED);
215
- }
216
- /**
217
- * Get abandoned increments
218
- */
219
- static getAbandoned() {
220
- return this.getByStatus(IncrementStatus.ABANDONED);
221
- }
222
- /**
223
- * Get increments by type
224
- */
225
- static getByType(type) {
226
- return this.getAll().filter(m => m.type === type);
227
- }
228
- /**
229
- * Get stale increments (paused >7 days or active >30 days)
230
- */
231
- static getStale() {
232
- return this.getAll().filter(m => isStale(m));
233
- }
234
- /**
235
- * Get increments that should be auto-abandoned (experiments inactive >14 days)
236
- */
237
- static getShouldAutoAbandon() {
238
- return this.getAll().filter(m => shouldAutoAbandon(m));
239
- }
240
- /**
241
- * Get extended metadata with computed fields (progress, age, etc.)
242
- */
243
- static getExtended(incrementId) {
244
- const metadata = this.read(incrementId);
245
- const extended = { ...metadata };
246
- // Calculate progress from tasks.md
247
- try {
248
- const tasksPath = path.join(this.getIncrementPath(incrementId), 'tasks.md');
249
- if (fs.existsSync(tasksPath)) {
250
- const tasksContent = fs.readFileSync(tasksPath, 'utf-8');
251
- // Count completed tasks: [x] or [X]
252
- const completedMatches = tasksContent.match(/\[x\]/gi);
253
- extended.completedTasks = completedMatches ? completedMatches.length : 0;
254
- // Count total tasks: [ ] or [x]
255
- const totalMatches = tasksContent.match(/\[ \]|\[x\]/gi);
256
- extended.totalTasks = totalMatches ? totalMatches.length : 0;
257
- // Calculate progress percentage
258
- if (extended.totalTasks > 0) {
259
- extended.progress = Math.round((extended.completedTasks / extended.totalTasks) * 100);
260
- }
261
- }
262
- }
263
- catch (error) {
264
- // Ignore errors reading tasks.md
265
- }
266
- // Calculate age in days
267
- const now = new Date();
268
- const createdDate = new Date(metadata.created);
269
- extended.ageInDays = Math.floor((now.getTime() - createdDate.getTime()) / (1000 * 60 * 60 * 24));
270
- // Calculate days paused
271
- if (metadata.status === IncrementStatus.PAUSED && metadata.pausedAt) {
272
- const pausedDate = new Date(metadata.pausedAt);
273
- extended.daysPaused = Math.floor((now.getTime() - pausedDate.getTime()) / (1000 * 60 * 60 * 24));
274
- }
275
- return extended;
276
- }
277
- /**
278
- * Validate metadata schema
279
- */
280
- static validate(metadata) {
281
- if (!metadata.id) {
282
- throw new Error('Metadata missing required field: id');
283
- }
284
- if (!metadata.status || !Object.values(IncrementStatus).includes(metadata.status)) {
285
- throw new Error(`Invalid status: ${metadata.status}`);
286
- }
287
- if (!metadata.type || !Object.values(IncrementType).includes(metadata.type)) {
288
- throw new Error(`Invalid type: ${metadata.type}`);
289
- }
290
- if (!metadata.created) {
291
- throw new Error('Metadata missing required field: created');
292
- }
293
- if (!metadata.lastActivity) {
294
- throw new Error('Metadata missing required field: lastActivity');
295
- }
296
- return true;
297
- }
298
- /**
299
- * Check if status transition is allowed
300
- */
301
- static canTransition(from, to) {
302
- return isValidTransition(from, to);
303
- }
304
- /**
305
- * Get human-readable status transition error message
306
- */
307
- static getTransitionError(from, to) {
308
- if (from === IncrementStatus.COMPLETED) {
309
- return `Cannot transition from completed state. Increment is already complete.`;
310
- }
311
- if (to === IncrementStatus.PAUSED && from === IncrementStatus.ABANDONED) {
312
- return `Cannot pause an abandoned increment. Resume it first with /resume.`;
313
- }
314
- if (to === IncrementStatus.COMPLETED && from === IncrementStatus.ABANDONED) {
315
- return `Cannot complete an abandoned increment. Resume it first with /resume.`;
316
- }
317
- return `Invalid transition: ${from} → ${to}`;
318
- }
319
- }
320
- //# sourceMappingURL=metadata-manager.js.map