specweave 0.13.5 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (811) hide show
  1. package/CLAUDE.md +189 -0
  2. package/bin/specweave.js +1 -0
  3. package/dist/cli/commands/init.d.ts +1 -0
  4. package/dist/cli/commands/init.d.ts.map +1 -1
  5. package/dist/cli/commands/init.js +51 -38
  6. package/dist/cli/commands/init.js.map +1 -1
  7. package/dist/cli/commands/status-line.d.ts +14 -0
  8. package/dist/cli/commands/status-line.d.ts.map +1 -0
  9. package/dist/cli/commands/status-line.js +75 -0
  10. package/dist/cli/commands/status-line.js.map +1 -0
  11. package/dist/core/status-line/status-line-manager.d.ts +62 -0
  12. package/dist/core/status-line/status-line-manager.d.ts.map +1 -0
  13. package/dist/core/status-line/status-line-manager.js +169 -0
  14. package/dist/core/status-line/status-line-manager.js.map +1 -0
  15. package/dist/core/status-line/types.d.ts +50 -0
  16. package/dist/core/status-line/types.d.ts.map +1 -0
  17. package/dist/core/status-line/types.js +17 -0
  18. package/dist/core/status-line/types.js.map +1 -0
  19. package/dist/utils/project-mapper.d.ts +74 -0
  20. package/dist/utils/project-mapper.d.ts.map +1 -0
  21. package/dist/utils/project-mapper.js +273 -0
  22. package/dist/utils/project-mapper.js.map +1 -0
  23. package/dist/utils/spec-splitter.d.ts +68 -0
  24. package/dist/utils/spec-splitter.d.ts.map +1 -0
  25. package/dist/utils/spec-splitter.js +314 -0
  26. package/dist/utils/spec-splitter.js.map +1 -0
  27. package/package.json +1 -1
  28. package/plugins/specweave/hooks/lib/update-status-line.sh +138 -0
  29. package/plugins/specweave/hooks/post-task-completion.sh +10 -0
  30. package/plugins/specweave/lib/hooks/git-diff-analyzer.js +129 -213
  31. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +146 -192
  32. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +103 -116
  33. package/plugins/specweave/lib/hooks/reflection-config-loader.js +85 -125
  34. package/plugins/specweave/lib/hooks/reflection-parser.js +267 -385
  35. package/plugins/specweave/lib/hooks/reflection-prompt-builder.js +169 -226
  36. package/plugins/specweave/lib/hooks/reflection-storage.js +223 -297
  37. package/plugins/specweave/lib/hooks/run-self-reflection.js +120 -191
  38. package/plugins/specweave/lib/hooks/sync-living-docs.js +87 -129
  39. package/plugins/specweave/lib/hooks/translate-file.js +239 -300
  40. package/plugins/specweave/lib/hooks/translate-living-docs.js +88 -144
  41. package/plugins/specweave/lib/hooks/types/reflection-types.js +57 -72
  42. package/plugins/specweave/lib/hooks/update-tasks-md.js +117 -179
  43. package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +399 -0
  44. package/plugins/specweave-ado/lib/ado-board-resolver.js +135 -205
  45. package/plugins/specweave-ado/lib/ado-hierarchical-sync.js +223 -335
  46. package/plugins/specweave-ado/lib/ado-multi-project-sync.js +453 -0
  47. package/plugins/specweave-ado/lib/ado-multi-project-sync.ts +633 -0
  48. package/plugins/specweave-ado/lib/ado-spec-sync.js +380 -414
  49. package/plugins/specweave-ado/lib/project-selector.js +168 -196
  50. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +17 -3
  51. package/plugins/specweave-docs-preview/commands/preview.md +29 -4
  52. package/plugins/specweave-github/hooks/hooks.json +11 -0
  53. package/plugins/specweave-github/hooks/post-increment-done.sh +224 -0
  54. package/plugins/specweave-github/lib/cli-sync-increment-changes.js +9 -20
  55. package/plugins/specweave-github/lib/github-board-resolver.js +69 -115
  56. package/plugins/specweave-github/lib/github-client-v2.js +400 -389
  57. package/plugins/specweave-github/lib/github-client.js +246 -280
  58. package/plugins/specweave-github/lib/github-hierarchical-sync.js +168 -251
  59. package/plugins/specweave-github/lib/github-issue-updater.js +231 -288
  60. package/plugins/specweave-github/lib/github-multi-project-sync.js +340 -0
  61. package/plugins/specweave-github/lib/github-multi-project-sync.ts +461 -0
  62. package/plugins/specweave-github/lib/github-spec-sync.js +379 -420
  63. package/plugins/specweave-github/lib/github-sync-bidirectional.js +175 -202
  64. package/plugins/specweave-github/lib/github-sync-increment-changes.js +212 -251
  65. package/plugins/specweave-github/lib/index.js +11 -10
  66. package/plugins/specweave-github/lib/repo-selector.js +174 -201
  67. package/plugins/specweave-github/lib/subtask-sync.js +132 -125
  68. package/plugins/specweave-github/lib/task-parser.js +191 -207
  69. package/plugins/specweave-github/lib/task-sync.js +344 -296
  70. package/plugins/specweave-github/lib/types.js +0 -5
  71. package/plugins/specweave-jira/lib/jira-board-resolver.js +50 -79
  72. package/plugins/specweave-jira/lib/jira-hierarchical-sync.js +119 -191
  73. package/plugins/specweave-jira/lib/jira-multi-project-sync.js +244 -0
  74. package/plugins/specweave-jira/lib/jira-multi-project-sync.ts +358 -0
  75. package/plugins/specweave-jira/lib/jira-spec-sync.js +366 -405
  76. package/plugins/specweave-jira/lib/project-selector.js +172 -201
  77. package/plugins/specweave-jira/lib/reorganization-detector.js +202 -237
  78. package/plugins/specweave-jira/lib/setup-wizard.js +162 -204
  79. package/src/templates/AGENTS.md.template +42 -0
  80. package/dist/core/agent-model-manager.d.ts +0 -52
  81. package/dist/core/agent-model-manager.d.ts.map +0 -1
  82. package/dist/core/agent-model-manager.js +0 -120
  83. package/dist/core/agent-model-manager.js.map +0 -1
  84. package/dist/core/model-selector.d.ts +0 -57
  85. package/dist/core/model-selector.d.ts.map +0 -1
  86. package/dist/core/model-selector.js +0 -115
  87. package/dist/core/model-selector.js.map +0 -1
  88. package/dist/core/phase-detector.d.ts +0 -62
  89. package/dist/core/phase-detector.d.ts.map +0 -1
  90. package/dist/core/phase-detector.js +0 -229
  91. package/dist/core/phase-detector.js.map +0 -1
  92. package/dist/hooks/lib/git-diff-analyzer.d.ts +0 -89
  93. package/dist/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  94. package/dist/hooks/lib/git-diff-analyzer.js +0 -226
  95. package/dist/hooks/lib/git-diff-analyzer.js.map +0 -1
  96. package/dist/hooks/lib/invoke-translator-skill.d.ts +0 -60
  97. package/dist/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  98. package/dist/hooks/lib/invoke-translator-skill.js +0 -201
  99. package/dist/hooks/lib/invoke-translator-skill.js.map +0 -1
  100. package/dist/hooks/lib/prepare-reflection-context.d.ts +0 -42
  101. package/dist/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  102. package/dist/hooks/lib/prepare-reflection-context.js +0 -123
  103. package/dist/hooks/lib/prepare-reflection-context.js.map +0 -1
  104. package/dist/hooks/lib/reflection-config-loader.d.ts +0 -45
  105. package/dist/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  106. package/dist/hooks/lib/reflection-config-loader.js +0 -132
  107. package/dist/hooks/lib/reflection-config-loader.js.map +0 -1
  108. package/dist/hooks/lib/reflection-parser.d.ts +0 -33
  109. package/dist/hooks/lib/reflection-parser.d.ts.map +0 -1
  110. package/dist/hooks/lib/reflection-parser.js +0 -419
  111. package/dist/hooks/lib/reflection-parser.js.map +0 -1
  112. package/dist/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  113. package/dist/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  114. package/dist/hooks/lib/reflection-prompt-builder.js +0 -239
  115. package/dist/hooks/lib/reflection-prompt-builder.js.map +0 -1
  116. package/dist/hooks/lib/reflection-storage.d.ts +0 -64
  117. package/dist/hooks/lib/reflection-storage.d.ts.map +0 -1
  118. package/dist/hooks/lib/reflection-storage.js +0 -305
  119. package/dist/hooks/lib/reflection-storage.js.map +0 -1
  120. package/dist/hooks/lib/run-self-reflection.d.ts +0 -43
  121. package/dist/hooks/lib/run-self-reflection.d.ts.map +0 -1
  122. package/dist/hooks/lib/run-self-reflection.js +0 -203
  123. package/dist/hooks/lib/run-self-reflection.js.map +0 -1
  124. package/dist/hooks/lib/sync-living-docs.d.ts +0 -27
  125. package/dist/hooks/lib/sync-living-docs.d.ts.map +0 -1
  126. package/dist/hooks/lib/sync-living-docs.js +0 -116
  127. package/dist/hooks/lib/sync-living-docs.js.map +0 -1
  128. package/dist/hooks/lib/translate-file.d.ts +0 -59
  129. package/dist/hooks/lib/translate-file.d.ts.map +0 -1
  130. package/dist/hooks/lib/translate-file.js +0 -350
  131. package/dist/hooks/lib/translate-file.js.map +0 -1
  132. package/dist/hooks/lib/translate-living-docs.d.ts +0 -13
  133. package/dist/hooks/lib/translate-living-docs.d.ts.map +0 -1
  134. package/dist/hooks/lib/translate-living-docs.js +0 -175
  135. package/dist/hooks/lib/translate-living-docs.js.map +0 -1
  136. package/dist/hooks/lib/types/reflection-types.d.ts +0 -164
  137. package/dist/hooks/lib/types/reflection-types.d.ts.map +0 -1
  138. package/dist/hooks/lib/types/reflection-types.js +0 -73
  139. package/dist/hooks/lib/types/reflection-types.js.map +0 -1
  140. package/dist/hooks/lib/update-tasks-md.d.ts +0 -29
  141. package/dist/hooks/lib/update-tasks-md.d.ts.map +0 -1
  142. package/dist/hooks/lib/update-tasks-md.js +0 -203
  143. package/dist/hooks/lib/update-tasks-md.js.map +0 -1
  144. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
  145. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
  146. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
  147. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
  148. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
  149. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
  150. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
  151. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
  152. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
  153. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
  154. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
  155. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
  156. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
  157. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
  158. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
  159. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
  160. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
  161. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
  162. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
  163. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
  164. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
  165. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
  166. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
  167. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
  168. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
  169. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
  170. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
  171. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
  172. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
  173. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
  174. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
  175. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
  176. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -27
  177. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
  178. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -144
  179. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
  180. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
  181. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
  182. package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
  183. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
  184. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
  185. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
  186. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
  187. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
  188. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
  189. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
  190. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
  191. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
  192. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
  193. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
  194. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
  195. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
  196. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +0 -94
  197. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +0 -1
  198. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +0 -219
  199. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +0 -1
  200. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +0 -124
  201. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +0 -1
  202. package/dist/plugins/specweave-ado/lib/ado-client-v2.js +0 -382
  203. package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +0 -1
  204. package/dist/plugins/specweave-ado/lib/ado-client.d.ts +0 -112
  205. package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +0 -1
  206. package/dist/plugins/specweave-ado/lib/ado-client.js +0 -257
  207. package/dist/plugins/specweave-ado/lib/ado-client.js.map +0 -1
  208. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +0 -40
  209. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +0 -1
  210. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +0 -370
  211. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +0 -1
  212. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +0 -100
  213. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +0 -1
  214. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +0 -471
  215. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +0 -1
  216. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +0 -42
  217. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +0 -1
  218. package/dist/plugins/specweave-ado/lib/project-selector.js +0 -211
  219. package/dist/plugins/specweave-ado/lib/project-selector.js.map +0 -1
  220. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts +0 -12
  221. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts.map +0 -1
  222. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js +0 -28
  223. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js.map +0 -1
  224. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +0 -54
  225. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +0 -1
  226. package/dist/plugins/specweave-github/lib/github-board-resolver.js +0 -122
  227. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +0 -1
  228. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +0 -104
  229. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +0 -1
  230. package/dist/plugins/specweave-github/lib/github-client-v2.js +0 -408
  231. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +0 -1
  232. package/dist/plugins/specweave-github/lib/github-client.d.ts +0 -96
  233. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +0 -1
  234. package/dist/plugins/specweave-github/lib/github-client.js +0 -299
  235. package/dist/plugins/specweave-github/lib/github-client.js.map +0 -1
  236. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +0 -29
  237. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +0 -1
  238. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +0 -268
  239. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +0 -1
  240. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts +0 -61
  241. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts.map +0 -1
  242. package/dist/plugins/specweave-github/lib/github-issue-updater.js +0 -327
  243. package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +0 -1
  244. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +0 -108
  245. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +0 -1
  246. package/dist/plugins/specweave-github/lib/github-spec-sync.js +0 -505
  247. package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +0 -1
  248. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts +0 -36
  249. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts.map +0 -1
  250. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +0 -228
  251. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +0 -1
  252. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts +0 -18
  253. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts.map +0 -1
  254. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js +0 -287
  255. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js.map +0 -1
  256. package/dist/plugins/specweave-github/lib/index.d.ts +0 -10
  257. package/dist/plugins/specweave-github/lib/index.d.ts.map +0 -1
  258. package/dist/plugins/specweave-github/lib/index.js +0 -10
  259. package/dist/plugins/specweave-github/lib/index.js.map +0 -1
  260. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +0 -49
  261. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +0 -1
  262. package/dist/plugins/specweave-github/lib/repo-selector.js +0 -216
  263. package/dist/plugins/specweave-github/lib/repo-selector.js.map +0 -1
  264. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +0 -51
  265. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +0 -1
  266. package/dist/plugins/specweave-github/lib/subtask-sync.js +0 -147
  267. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +0 -1
  268. package/dist/plugins/specweave-github/lib/task-parser.d.ts +0 -37
  269. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +0 -1
  270. package/dist/plugins/specweave-github/lib/task-parser.js +0 -211
  271. package/dist/plugins/specweave-github/lib/task-parser.js.map +0 -1
  272. package/dist/plugins/specweave-github/lib/task-sync.d.ts +0 -51
  273. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +0 -1
  274. package/dist/plugins/specweave-github/lib/task-sync.js +0 -332
  275. package/dist/plugins/specweave-github/lib/task-sync.js.map +0 -1
  276. package/dist/plugins/specweave-github/lib/types.d.ts +0 -80
  277. package/dist/plugins/specweave-github/lib/types.d.ts.map +0 -1
  278. package/dist/plugins/specweave-github/lib/types.js +0 -5
  279. package/dist/plugins/specweave-github/lib/types.js.map +0 -1
  280. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +0 -50
  281. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +0 -1
  282. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +0 -84
  283. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +0 -1
  284. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +0 -33
  285. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +0 -1
  286. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +0 -206
  287. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +0 -1
  288. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +0 -105
  289. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +0 -1
  290. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +0 -456
  291. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +0 -1
  292. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +0 -42
  293. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +0 -1
  294. package/dist/plugins/specweave-jira/lib/project-selector.js +0 -216
  295. package/dist/plugins/specweave-jira/lib/project-selector.js.map +0 -1
  296. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +0 -67
  297. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +0 -1
  298. package/dist/plugins/specweave-jira/lib/reorganization-detector.js +0 -252
  299. package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +0 -1
  300. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +0 -29
  301. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +0 -1
  302. package/dist/plugins/specweave-jira/lib/setup-wizard.js +0 -219
  303. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +0 -1
  304. package/dist/src/adapters/adapter-base.d.ts +0 -71
  305. package/dist/src/adapters/adapter-base.d.ts.map +0 -1
  306. package/dist/src/adapters/adapter-base.js +0 -139
  307. package/dist/src/adapters/adapter-base.js.map +0 -1
  308. package/dist/src/adapters/adapter-interface.d.ts +0 -149
  309. package/dist/src/adapters/adapter-interface.d.ts.map +0 -1
  310. package/dist/src/adapters/adapter-interface.js +0 -8
  311. package/dist/src/adapters/adapter-interface.js.map +0 -1
  312. package/dist/src/adapters/adapter-loader.d.ts +0 -91
  313. package/dist/src/adapters/adapter-loader.d.ts.map +0 -1
  314. package/dist/src/adapters/adapter-loader.js +0 -238
  315. package/dist/src/adapters/adapter-loader.js.map +0 -1
  316. package/dist/src/adapters/agents-md-generator.d.ts +0 -48
  317. package/dist/src/adapters/agents-md-generator.d.ts.map +0 -1
  318. package/dist/src/adapters/agents-md-generator.js +0 -193
  319. package/dist/src/adapters/agents-md-generator.js.map +0 -1
  320. package/dist/src/adapters/claude/adapter.d.ts +0 -128
  321. package/dist/src/adapters/claude/adapter.d.ts.map +0 -1
  322. package/dist/src/adapters/claude/adapter.js +0 -415
  323. package/dist/src/adapters/claude/adapter.js.map +0 -1
  324. package/dist/src/adapters/claude-md-generator.d.ts +0 -78
  325. package/dist/src/adapters/claude-md-generator.d.ts.map +0 -1
  326. package/dist/src/adapters/claude-md-generator.js +0 -307
  327. package/dist/src/adapters/claude-md-generator.js.map +0 -1
  328. package/dist/src/adapters/codex/adapter.d.ts +0 -50
  329. package/dist/src/adapters/codex/adapter.d.ts.map +0 -1
  330. package/dist/src/adapters/codex/adapter.js +0 -316
  331. package/dist/src/adapters/codex/adapter.js.map +0 -1
  332. package/dist/src/adapters/cursor/adapter.d.ts +0 -98
  333. package/dist/src/adapters/cursor/adapter.d.ts.map +0 -1
  334. package/dist/src/adapters/cursor/adapter.js +0 -406
  335. package/dist/src/adapters/cursor/adapter.js.map +0 -1
  336. package/dist/src/adapters/doc-generator.d.ts +0 -69
  337. package/dist/src/adapters/doc-generator.d.ts.map +0 -1
  338. package/dist/src/adapters/doc-generator.js +0 -247
  339. package/dist/src/adapters/doc-generator.js.map +0 -1
  340. package/dist/src/adapters/gemini/adapter.d.ts +0 -50
  341. package/dist/src/adapters/gemini/adapter.d.ts.map +0 -1
  342. package/dist/src/adapters/gemini/adapter.js +0 -281
  343. package/dist/src/adapters/gemini/adapter.js.map +0 -1
  344. package/dist/src/adapters/generic/adapter.d.ts +0 -86
  345. package/dist/src/adapters/generic/adapter.d.ts.map +0 -1
  346. package/dist/src/adapters/generic/adapter.js +0 -338
  347. package/dist/src/adapters/generic/adapter.js.map +0 -1
  348. package/dist/src/cli/commands/abandon.d.ts +0 -13
  349. package/dist/src/cli/commands/abandon.d.ts.map +0 -1
  350. package/dist/src/cli/commands/abandon.js +0 -15
  351. package/dist/src/cli/commands/abandon.js.map +0 -1
  352. package/dist/src/cli/commands/import-docs.d.ts +0 -21
  353. package/dist/src/cli/commands/import-docs.d.ts.map +0 -1
  354. package/dist/src/cli/commands/import-docs.js +0 -146
  355. package/dist/src/cli/commands/import-docs.js.map +0 -1
  356. package/dist/src/cli/commands/init-multiproject.d.ts +0 -11
  357. package/dist/src/cli/commands/init-multiproject.d.ts.map +0 -1
  358. package/dist/src/cli/commands/init-multiproject.js +0 -202
  359. package/dist/src/cli/commands/init-multiproject.js.map +0 -1
  360. package/dist/src/cli/commands/init.d.ts +0 -9
  361. package/dist/src/cli/commands/init.d.ts.map +0 -1
  362. package/dist/src/cli/commands/init.js +0 -1444
  363. package/dist/src/cli/commands/init.js.map +0 -1
  364. package/dist/src/cli/commands/install.d.ts +0 -9
  365. package/dist/src/cli/commands/install.d.ts.map +0 -1
  366. package/dist/src/cli/commands/install.js +0 -127
  367. package/dist/src/cli/commands/install.js.map +0 -1
  368. package/dist/src/cli/commands/list.d.ts +0 -8
  369. package/dist/src/cli/commands/list.d.ts.map +0 -1
  370. package/dist/src/cli/commands/list.js +0 -119
  371. package/dist/src/cli/commands/list.js.map +0 -1
  372. package/dist/src/cli/commands/migrate-to-multiproject.d.ts +0 -37
  373. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +0 -1
  374. package/dist/src/cli/commands/migrate-to-multiproject.js +0 -189
  375. package/dist/src/cli/commands/migrate-to-multiproject.js.map +0 -1
  376. package/dist/src/cli/commands/migrate-to-profiles.d.ts +0 -25
  377. package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +0 -1
  378. package/dist/src/cli/commands/migrate-to-profiles.js +0 -350
  379. package/dist/src/cli/commands/migrate-to-profiles.js.map +0 -1
  380. package/dist/src/cli/commands/pause.d.ts +0 -13
  381. package/dist/src/cli/commands/pause.d.ts.map +0 -1
  382. package/dist/src/cli/commands/pause.js +0 -15
  383. package/dist/src/cli/commands/pause.js.map +0 -1
  384. package/dist/src/cli/commands/qa.d.ts +0 -54
  385. package/dist/src/cli/commands/qa.d.ts.map +0 -1
  386. package/dist/src/cli/commands/qa.js +0 -98
  387. package/dist/src/cli/commands/qa.js.map +0 -1
  388. package/dist/src/cli/commands/resume.d.ts +0 -12
  389. package/dist/src/cli/commands/resume.d.ts.map +0 -1
  390. package/dist/src/cli/commands/resume.js +0 -14
  391. package/dist/src/cli/commands/resume.js.map +0 -1
  392. package/dist/src/cli/commands/status.d.ts +0 -12
  393. package/dist/src/cli/commands/status.d.ts.map +0 -1
  394. package/dist/src/cli/commands/status.js +0 -23
  395. package/dist/src/cli/commands/status.js.map +0 -1
  396. package/dist/src/cli/commands/switch-project.d.ts +0 -13
  397. package/dist/src/cli/commands/switch-project.d.ts.map +0 -1
  398. package/dist/src/cli/commands/switch-project.js +0 -91
  399. package/dist/src/cli/commands/switch-project.js.map +0 -1
  400. package/dist/src/cli/commands/validate-jira.d.ts +0 -35
  401. package/dist/src/cli/commands/validate-jira.d.ts.map +0 -1
  402. package/dist/src/cli/commands/validate-jira.js +0 -112
  403. package/dist/src/cli/commands/validate-jira.js.map +0 -1
  404. package/dist/src/cli/commands/validate-plugins.d.ts +0 -41
  405. package/dist/src/cli/commands/validate-plugins.d.ts.map +0 -1
  406. package/dist/src/cli/commands/validate-plugins.js +0 -171
  407. package/dist/src/cli/commands/validate-plugins.js.map +0 -1
  408. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +0 -57
  409. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +0 -1
  410. package/dist/src/cli/helpers/issue-tracker/ado.js +0 -243
  411. package/dist/src/cli/helpers/issue-tracker/ado.js.map +0 -1
  412. package/dist/src/cli/helpers/issue-tracker/github.d.ts +0 -65
  413. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +0 -1
  414. package/dist/src/cli/helpers/issue-tracker/github.js +0 -426
  415. package/dist/src/cli/helpers/issue-tracker/github.js.map +0 -1
  416. package/dist/src/cli/helpers/issue-tracker/index.d.ts +0 -22
  417. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +0 -1
  418. package/dist/src/cli/helpers/issue-tracker/index.js +0 -314
  419. package/dist/src/cli/helpers/issue-tracker/index.js.map +0 -1
  420. package/dist/src/cli/helpers/issue-tracker/jira.d.ts +0 -61
  421. package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +0 -1
  422. package/dist/src/cli/helpers/issue-tracker/jira.js +0 -404
  423. package/dist/src/cli/helpers/issue-tracker/jira.js.map +0 -1
  424. package/dist/src/cli/helpers/issue-tracker/types.d.ts +0 -108
  425. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +0 -1
  426. package/dist/src/cli/helpers/issue-tracker/types.js +0 -16
  427. package/dist/src/cli/helpers/issue-tracker/types.js.map +0 -1
  428. package/dist/src/cli/helpers/issue-tracker/utils.d.ts +0 -112
  429. package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +0 -1
  430. package/dist/src/cli/helpers/issue-tracker/utils.js +0 -247
  431. package/dist/src/cli/helpers/issue-tracker/utils.js.map +0 -1
  432. package/dist/src/core/agent-model-manager.d.ts +0 -52
  433. package/dist/src/core/agent-model-manager.d.ts.map +0 -1
  434. package/dist/src/core/agent-model-manager.js +0 -120
  435. package/dist/src/core/agent-model-manager.js.map +0 -1
  436. package/dist/src/core/brownfield/analyzer.d.ts +0 -86
  437. package/dist/src/core/brownfield/analyzer.d.ts.map +0 -1
  438. package/dist/src/core/brownfield/analyzer.js +0 -365
  439. package/dist/src/core/brownfield/analyzer.js.map +0 -1
  440. package/dist/src/core/brownfield/importer.d.ts +0 -76
  441. package/dist/src/core/brownfield/importer.d.ts.map +0 -1
  442. package/dist/src/core/brownfield/importer.js +0 -287
  443. package/dist/src/core/brownfield/importer.js.map +0 -1
  444. package/dist/src/core/config-manager.d.ts +0 -47
  445. package/dist/src/core/config-manager.d.ts.map +0 -1
  446. package/dist/src/core/config-manager.js +0 -136
  447. package/dist/src/core/config-manager.js.map +0 -1
  448. package/dist/src/core/cost-tracker.d.ts +0 -108
  449. package/dist/src/core/cost-tracker.d.ts.map +0 -1
  450. package/dist/src/core/cost-tracker.js +0 -281
  451. package/dist/src/core/cost-tracker.js.map +0 -1
  452. package/dist/src/core/credentials-manager.d.ts +0 -107
  453. package/dist/src/core/credentials-manager.d.ts.map +0 -1
  454. package/dist/src/core/credentials-manager.js +0 -457
  455. package/dist/src/core/credentials-manager.js.map +0 -1
  456. package/dist/src/core/i18n/language-detector.d.ts +0 -29
  457. package/dist/src/core/i18n/language-detector.d.ts.map +0 -1
  458. package/dist/src/core/i18n/language-detector.js +0 -143
  459. package/dist/src/core/i18n/language-detector.js.map +0 -1
  460. package/dist/src/core/i18n/language-manager.d.ts +0 -101
  461. package/dist/src/core/i18n/language-manager.d.ts.map +0 -1
  462. package/dist/src/core/i18n/language-manager.js +0 -232
  463. package/dist/src/core/i18n/language-manager.js.map +0 -1
  464. package/dist/src/core/i18n/language-registry.d.ts +0 -44
  465. package/dist/src/core/i18n/language-registry.d.ts.map +0 -1
  466. package/dist/src/core/i18n/language-registry.js +0 -234
  467. package/dist/src/core/i18n/language-registry.js.map +0 -1
  468. package/dist/src/core/i18n/locale-manager.d.ts +0 -62
  469. package/dist/src/core/i18n/locale-manager.d.ts.map +0 -1
  470. package/dist/src/core/i18n/locale-manager.js +0 -137
  471. package/dist/src/core/i18n/locale-manager.js.map +0 -1
  472. package/dist/src/core/i18n/system-prompt-injector.d.ts +0 -33
  473. package/dist/src/core/i18n/system-prompt-injector.d.ts.map +0 -1
  474. package/dist/src/core/i18n/system-prompt-injector.js +0 -131
  475. package/dist/src/core/i18n/system-prompt-injector.js.map +0 -1
  476. package/dist/src/core/i18n/types.d.ts +0 -151
  477. package/dist/src/core/i18n/types.d.ts.map +0 -1
  478. package/dist/src/core/i18n/types.js +0 -11
  479. package/dist/src/core/i18n/types.js.map +0 -1
  480. package/dist/src/core/increment/limits.d.ts +0 -68
  481. package/dist/src/core/increment/limits.d.ts.map +0 -1
  482. package/dist/src/core/increment/limits.js +0 -224
  483. package/dist/src/core/increment/limits.js.map +0 -1
  484. package/dist/src/core/increment/metadata-manager.d.ts +0 -114
  485. package/dist/src/core/increment/metadata-manager.d.ts.map +0 -1
  486. package/dist/src/core/increment/metadata-manager.js +0 -320
  487. package/dist/src/core/increment/metadata-manager.js.map +0 -1
  488. package/dist/src/core/increment/status-commands.d.ts +0 -43
  489. package/dist/src/core/increment/status-commands.d.ts.map +0 -1
  490. package/dist/src/core/increment/status-commands.js +0 -277
  491. package/dist/src/core/increment/status-commands.js.map +0 -1
  492. package/dist/src/core/increment-status.d.ts +0 -72
  493. package/dist/src/core/increment-status.d.ts.map +0 -1
  494. package/dist/src/core/increment-status.js +0 -227
  495. package/dist/src/core/increment-status.js.map +0 -1
  496. package/dist/src/core/model-selector.d.ts +0 -57
  497. package/dist/src/core/model-selector.d.ts.map +0 -1
  498. package/dist/src/core/model-selector.js +0 -115
  499. package/dist/src/core/model-selector.js.map +0 -1
  500. package/dist/src/core/phase-detector.d.ts +0 -62
  501. package/dist/src/core/phase-detector.d.ts.map +0 -1
  502. package/dist/src/core/phase-detector.js +0 -229
  503. package/dist/src/core/phase-detector.js.map +0 -1
  504. package/dist/src/core/plugin-loader.d.ts +0 -131
  505. package/dist/src/core/plugin-loader.d.ts.map +0 -1
  506. package/dist/src/core/plugin-loader.js +0 -421
  507. package/dist/src/core/plugin-loader.js.map +0 -1
  508. package/dist/src/core/project-manager.d.ts +0 -127
  509. package/dist/src/core/project-manager.d.ts.map +0 -1
  510. package/dist/src/core/project-manager.js +0 -524
  511. package/dist/src/core/project-manager.js.map +0 -1
  512. package/dist/src/core/project-structure-detector.d.ts +0 -92
  513. package/dist/src/core/project-structure-detector.d.ts.map +0 -1
  514. package/dist/src/core/project-structure-detector.js +0 -289
  515. package/dist/src/core/project-structure-detector.js.map +0 -1
  516. package/dist/src/core/qa/qa-runner.d.ts +0 -16
  517. package/dist/src/core/qa/qa-runner.d.ts.map +0 -1
  518. package/dist/src/core/qa/qa-runner.js +0 -404
  519. package/dist/src/core/qa/qa-runner.js.map +0 -1
  520. package/dist/src/core/qa/quality-gate-decider.d.ts +0 -53
  521. package/dist/src/core/qa/quality-gate-decider.d.ts.map +0 -1
  522. package/dist/src/core/qa/quality-gate-decider.js +0 -268
  523. package/dist/src/core/qa/quality-gate-decider.js.map +0 -1
  524. package/dist/src/core/qa/risk-calculator.d.ts +0 -126
  525. package/dist/src/core/qa/risk-calculator.d.ts.map +0 -1
  526. package/dist/src/core/qa/risk-calculator.js +0 -247
  527. package/dist/src/core/qa/risk-calculator.js.map +0 -1
  528. package/dist/src/core/qa/types.d.ts +0 -315
  529. package/dist/src/core/qa/types.d.ts.map +0 -1
  530. package/dist/src/core/qa/types.js +0 -8
  531. package/dist/src/core/qa/types.js.map +0 -1
  532. package/dist/src/core/rfc-generator-v2.d.ts +0 -149
  533. package/dist/src/core/rfc-generator-v2.d.ts.map +0 -1
  534. package/dist/src/core/rfc-generator-v2.js +0 -399
  535. package/dist/src/core/rfc-generator-v2.js.map +0 -1
  536. package/dist/src/core/specs/spec-metadata-manager.d.ts +0 -70
  537. package/dist/src/core/specs/spec-metadata-manager.d.ts.map +0 -1
  538. package/dist/src/core/specs/spec-metadata-manager.js +0 -371
  539. package/dist/src/core/specs/spec-metadata-manager.js.map +0 -1
  540. package/dist/src/core/specs/spec-parser.d.ts +0 -66
  541. package/dist/src/core/specs/spec-parser.d.ts.map +0 -1
  542. package/dist/src/core/specs/spec-parser.js +0 -276
  543. package/dist/src/core/specs/spec-parser.js.map +0 -1
  544. package/dist/src/core/sync/bidirectional-engine.d.ts +0 -110
  545. package/dist/src/core/sync/bidirectional-engine.d.ts.map +0 -1
  546. package/dist/src/core/sync/bidirectional-engine.js +0 -356
  547. package/dist/src/core/sync/bidirectional-engine.js.map +0 -1
  548. package/dist/src/core/sync/folder-mapper.d.ts +0 -71
  549. package/dist/src/core/sync/folder-mapper.d.ts.map +0 -1
  550. package/dist/src/core/sync/folder-mapper.js +0 -168
  551. package/dist/src/core/sync/folder-mapper.js.map +0 -1
  552. package/dist/src/core/sync/profile-manager.d.ts +0 -72
  553. package/dist/src/core/sync/profile-manager.d.ts.map +0 -1
  554. package/dist/src/core/sync/profile-manager.js +0 -338
  555. package/dist/src/core/sync/profile-manager.js.map +0 -1
  556. package/dist/src/core/sync/profile-selector.d.ts +0 -52
  557. package/dist/src/core/sync/profile-selector.d.ts.map +0 -1
  558. package/dist/src/core/sync/profile-selector.js +0 -179
  559. package/dist/src/core/sync/profile-selector.js.map +0 -1
  560. package/dist/src/core/sync/profile-validator.d.ts +0 -52
  561. package/dist/src/core/sync/profile-validator.d.ts.map +0 -1
  562. package/dist/src/core/sync/profile-validator.js +0 -225
  563. package/dist/src/core/sync/profile-validator.js.map +0 -1
  564. package/dist/src/core/sync/project-context.d.ts +0 -81
  565. package/dist/src/core/sync/project-context.d.ts.map +0 -1
  566. package/dist/src/core/sync/project-context.js +0 -354
  567. package/dist/src/core/sync/project-context.js.map +0 -1
  568. package/dist/src/core/sync/rate-limiter.d.ts +0 -116
  569. package/dist/src/core/sync/rate-limiter.d.ts.map +0 -1
  570. package/dist/src/core/sync/rate-limiter.js +0 -308
  571. package/dist/src/core/sync/rate-limiter.js.map +0 -1
  572. package/dist/src/core/sync/time-range-selector.d.ts +0 -48
  573. package/dist/src/core/sync/time-range-selector.d.ts.map +0 -1
  574. package/dist/src/core/sync/time-range-selector.js +0 -224
  575. package/dist/src/core/sync/time-range-selector.js.map +0 -1
  576. package/dist/src/core/types/config.d.ts +0 -90
  577. package/dist/src/core/types/config.d.ts.map +0 -1
  578. package/dist/src/core/types/config.js +0 -44
  579. package/dist/src/core/types/config.js.map +0 -1
  580. package/dist/src/core/types/increment-metadata.d.ts +0 -120
  581. package/dist/src/core/types/increment-metadata.d.ts.map +0 -1
  582. package/dist/src/core/types/increment-metadata.js +0 -138
  583. package/dist/src/core/types/increment-metadata.js.map +0 -1
  584. package/dist/src/core/types/plugin.d.ts +0 -283
  585. package/dist/src/core/types/plugin.d.ts.map +0 -1
  586. package/dist/src/core/types/plugin.js +0 -49
  587. package/dist/src/core/types/plugin.js.map +0 -1
  588. package/dist/src/core/types/spec-metadata.d.ts +0 -229
  589. package/dist/src/core/types/spec-metadata.d.ts.map +0 -1
  590. package/dist/src/core/types/spec-metadata.js +0 -14
  591. package/dist/src/core/types/spec-metadata.js.map +0 -1
  592. package/dist/src/core/types/sync-profile.d.ts +0 -403
  593. package/dist/src/core/types/sync-profile.d.ts.map +0 -1
  594. package/dist/src/core/types/sync-profile.js +0 -55
  595. package/dist/src/core/types/sync-profile.js.map +0 -1
  596. package/dist/src/hooks/lib/git-diff-analyzer.d.ts +0 -89
  597. package/dist/src/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  598. package/dist/src/hooks/lib/git-diff-analyzer.js +0 -226
  599. package/dist/src/hooks/lib/git-diff-analyzer.js.map +0 -1
  600. package/dist/src/hooks/lib/invoke-translator-skill.d.ts +0 -60
  601. package/dist/src/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  602. package/dist/src/hooks/lib/invoke-translator-skill.js +0 -201
  603. package/dist/src/hooks/lib/invoke-translator-skill.js.map +0 -1
  604. package/dist/src/hooks/lib/prepare-reflection-context.d.ts +0 -42
  605. package/dist/src/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  606. package/dist/src/hooks/lib/prepare-reflection-context.js +0 -123
  607. package/dist/src/hooks/lib/prepare-reflection-context.js.map +0 -1
  608. package/dist/src/hooks/lib/reflection-config-loader.d.ts +0 -45
  609. package/dist/src/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  610. package/dist/src/hooks/lib/reflection-config-loader.js +0 -132
  611. package/dist/src/hooks/lib/reflection-config-loader.js.map +0 -1
  612. package/dist/src/hooks/lib/reflection-parser.d.ts +0 -33
  613. package/dist/src/hooks/lib/reflection-parser.d.ts.map +0 -1
  614. package/dist/src/hooks/lib/reflection-parser.js +0 -419
  615. package/dist/src/hooks/lib/reflection-parser.js.map +0 -1
  616. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  617. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  618. package/dist/src/hooks/lib/reflection-prompt-builder.js +0 -239
  619. package/dist/src/hooks/lib/reflection-prompt-builder.js.map +0 -1
  620. package/dist/src/hooks/lib/reflection-storage.d.ts +0 -64
  621. package/dist/src/hooks/lib/reflection-storage.d.ts.map +0 -1
  622. package/dist/src/hooks/lib/reflection-storage.js +0 -305
  623. package/dist/src/hooks/lib/reflection-storage.js.map +0 -1
  624. package/dist/src/hooks/lib/run-self-reflection.d.ts +0 -43
  625. package/dist/src/hooks/lib/run-self-reflection.d.ts.map +0 -1
  626. package/dist/src/hooks/lib/run-self-reflection.js +0 -203
  627. package/dist/src/hooks/lib/run-self-reflection.js.map +0 -1
  628. package/dist/src/hooks/lib/sync-living-docs.d.ts +0 -27
  629. package/dist/src/hooks/lib/sync-living-docs.d.ts.map +0 -1
  630. package/dist/src/hooks/lib/sync-living-docs.js +0 -116
  631. package/dist/src/hooks/lib/sync-living-docs.js.map +0 -1
  632. package/dist/src/hooks/lib/translate-file.d.ts +0 -59
  633. package/dist/src/hooks/lib/translate-file.d.ts.map +0 -1
  634. package/dist/src/hooks/lib/translate-file.js +0 -350
  635. package/dist/src/hooks/lib/translate-file.js.map +0 -1
  636. package/dist/src/hooks/lib/translate-living-docs.d.ts +0 -13
  637. package/dist/src/hooks/lib/translate-living-docs.d.ts.map +0 -1
  638. package/dist/src/hooks/lib/translate-living-docs.js +0 -175
  639. package/dist/src/hooks/lib/translate-living-docs.js.map +0 -1
  640. package/dist/src/hooks/lib/types/reflection-types.d.ts +0 -164
  641. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +0 -1
  642. package/dist/src/hooks/lib/types/reflection-types.js +0 -73
  643. package/dist/src/hooks/lib/types/reflection-types.js.map +0 -1
  644. package/dist/src/hooks/lib/update-tasks-md.d.ts +0 -29
  645. package/dist/src/hooks/lib/update-tasks-md.d.ts.map +0 -1
  646. package/dist/src/hooks/lib/update-tasks-md.js +0 -203
  647. package/dist/src/hooks/lib/update-tasks-md.js.map +0 -1
  648. package/dist/src/integrations/ado/ado-client.d.ts +0 -127
  649. package/dist/src/integrations/ado/ado-client.d.ts.map +0 -1
  650. package/dist/src/integrations/ado/ado-client.js +0 -416
  651. package/dist/src/integrations/ado/ado-client.js.map +0 -1
  652. package/dist/src/integrations/jira/jira-client.d.ts +0 -139
  653. package/dist/src/integrations/jira/jira-client.d.ts.map +0 -1
  654. package/dist/src/integrations/jira/jira-client.js +0 -386
  655. package/dist/src/integrations/jira/jira-client.js.map +0 -1
  656. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +0 -75
  657. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +0 -1
  658. package/dist/src/integrations/jira/jira-incremental-mapper.js +0 -474
  659. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +0 -1
  660. package/dist/src/integrations/jira/jira-mapper.d.ts +0 -105
  661. package/dist/src/integrations/jira/jira-mapper.d.ts.map +0 -1
  662. package/dist/src/integrations/jira/jira-mapper.js +0 -494
  663. package/dist/src/integrations/jira/jira-mapper.js.map +0 -1
  664. package/dist/src/metrics/calculators/change-failure-rate.d.ts +0 -22
  665. package/dist/src/metrics/calculators/change-failure-rate.d.ts.map +0 -1
  666. package/dist/src/metrics/calculators/change-failure-rate.js +0 -70
  667. package/dist/src/metrics/calculators/change-failure-rate.js.map +0 -1
  668. package/dist/src/metrics/calculators/deployment-frequency.d.ts +0 -20
  669. package/dist/src/metrics/calculators/deployment-frequency.d.ts.map +0 -1
  670. package/dist/src/metrics/calculators/deployment-frequency.js +0 -61
  671. package/dist/src/metrics/calculators/deployment-frequency.js.map +0 -1
  672. package/dist/src/metrics/calculators/lead-time.d.ts +0 -22
  673. package/dist/src/metrics/calculators/lead-time.d.ts.map +0 -1
  674. package/dist/src/metrics/calculators/lead-time.js +0 -82
  675. package/dist/src/metrics/calculators/lead-time.js.map +0 -1
  676. package/dist/src/metrics/calculators/mttr.d.ts +0 -21
  677. package/dist/src/metrics/calculators/mttr.d.ts.map +0 -1
  678. package/dist/src/metrics/calculators/mttr.js +0 -60
  679. package/dist/src/metrics/calculators/mttr.js.map +0 -1
  680. package/dist/src/metrics/dora-calculator.d.ts +0 -28
  681. package/dist/src/metrics/dora-calculator.d.ts.map +0 -1
  682. package/dist/src/metrics/dora-calculator.js +0 -117
  683. package/dist/src/metrics/dora-calculator.js.map +0 -1
  684. package/dist/src/metrics/github-client.d.ts +0 -51
  685. package/dist/src/metrics/github-client.d.ts.map +0 -1
  686. package/dist/src/metrics/github-client.js +0 -133
  687. package/dist/src/metrics/github-client.js.map +0 -1
  688. package/dist/src/metrics/report-generator.d.ts +0 -17
  689. package/dist/src/metrics/report-generator.d.ts.map +0 -1
  690. package/dist/src/metrics/report-generator.js +0 -403
  691. package/dist/src/metrics/report-generator.js.map +0 -1
  692. package/dist/src/metrics/types.d.ts +0 -112
  693. package/dist/src/metrics/types.d.ts.map +0 -1
  694. package/dist/src/metrics/types.js +0 -10
  695. package/dist/src/metrics/types.js.map +0 -1
  696. package/dist/src/metrics/utils/percentile.d.ts +0 -25
  697. package/dist/src/metrics/utils/percentile.d.ts.map +0 -1
  698. package/dist/src/metrics/utils/percentile.js +0 -46
  699. package/dist/src/metrics/utils/percentile.js.map +0 -1
  700. package/dist/src/metrics/utils/tier-classifier.d.ts +0 -61
  701. package/dist/src/metrics/utils/tier-classifier.d.ts.map +0 -1
  702. package/dist/src/metrics/utils/tier-classifier.js +0 -100
  703. package/dist/src/metrics/utils/tier-classifier.js.map +0 -1
  704. package/dist/src/testing/test-generator.d.ts +0 -117
  705. package/dist/src/testing/test-generator.d.ts.map +0 -1
  706. package/dist/src/testing/test-generator.js +0 -370
  707. package/dist/src/testing/test-generator.js.map +0 -1
  708. package/dist/src/types/cost-tracking.d.ts +0 -43
  709. package/dist/src/types/cost-tracking.d.ts.map +0 -1
  710. package/dist/src/types/cost-tracking.js +0 -8
  711. package/dist/src/types/cost-tracking.js.map +0 -1
  712. package/dist/src/types/model-selection.d.ts +0 -53
  713. package/dist/src/types/model-selection.d.ts.map +0 -1
  714. package/dist/src/types/model-selection.js +0 -12
  715. package/dist/src/types/model-selection.js.map +0 -1
  716. package/dist/src/utils/agents-md-compiler.d.ts +0 -68
  717. package/dist/src/utils/agents-md-compiler.d.ts.map +0 -1
  718. package/dist/src/utils/agents-md-compiler.js +0 -420
  719. package/dist/src/utils/agents-md-compiler.js.map +0 -1
  720. package/dist/src/utils/auth-helpers.d.ts +0 -58
  721. package/dist/src/utils/auth-helpers.d.ts.map +0 -1
  722. package/dist/src/utils/auth-helpers.js +0 -108
  723. package/dist/src/utils/auth-helpers.js.map +0 -1
  724. package/dist/src/utils/auto-install.d.ts +0 -47
  725. package/dist/src/utils/auto-install.d.ts.map +0 -1
  726. package/dist/src/utils/auto-install.js +0 -211
  727. package/dist/src/utils/auto-install.js.map +0 -1
  728. package/dist/src/utils/claude-cli-detector.d.ts +0 -75
  729. package/dist/src/utils/claude-cli-detector.d.ts.map +0 -1
  730. package/dist/src/utils/claude-cli-detector.js +0 -285
  731. package/dist/src/utils/claude-cli-detector.js.map +0 -1
  732. package/dist/src/utils/cost-reporter.d.ts +0 -58
  733. package/dist/src/utils/cost-reporter.d.ts.map +0 -1
  734. package/dist/src/utils/cost-reporter.js +0 -224
  735. package/dist/src/utils/cost-reporter.js.map +0 -1
  736. package/dist/src/utils/docs-preview/config-generator.d.ts +0 -46
  737. package/dist/src/utils/docs-preview/config-generator.d.ts.map +0 -1
  738. package/dist/src/utils/docs-preview/config-generator.js +0 -377
  739. package/dist/src/utils/docs-preview/config-generator.js.map +0 -1
  740. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +0 -38
  741. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +0 -1
  742. package/dist/src/utils/docs-preview/docusaurus-setup.js +0 -177
  743. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +0 -1
  744. package/dist/src/utils/docs-preview/index.d.ts +0 -7
  745. package/dist/src/utils/docs-preview/index.d.ts.map +0 -1
  746. package/dist/src/utils/docs-preview/index.js +0 -7
  747. package/dist/src/utils/docs-preview/index.js.map +0 -1
  748. package/dist/src/utils/docs-preview/package-installer.d.ts +0 -42
  749. package/dist/src/utils/docs-preview/package-installer.d.ts.map +0 -1
  750. package/dist/src/utils/docs-preview/package-installer.js +0 -182
  751. package/dist/src/utils/docs-preview/package-installer.js.map +0 -1
  752. package/dist/src/utils/docs-preview/server-manager.d.ts +0 -30
  753. package/dist/src/utils/docs-preview/server-manager.d.ts.map +0 -1
  754. package/dist/src/utils/docs-preview/server-manager.js +0 -212
  755. package/dist/src/utils/docs-preview/server-manager.js.map +0 -1
  756. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +0 -32
  757. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +0 -1
  758. package/dist/src/utils/docs-preview/sidebar-builder.js +0 -202
  759. package/dist/src/utils/docs-preview/sidebar-builder.js.map +0 -1
  760. package/dist/src/utils/docs-preview/types.d.ts +0 -57
  761. package/dist/src/utils/docs-preview/types.d.ts.map +0 -1
  762. package/dist/src/utils/docs-preview/types.js +0 -2
  763. package/dist/src/utils/docs-preview/types.js.map +0 -1
  764. package/dist/src/utils/env-file.d.ts +0 -88
  765. package/dist/src/utils/env-file.d.ts.map +0 -1
  766. package/dist/src/utils/env-file.js +0 -180
  767. package/dist/src/utils/env-file.js.map +0 -1
  768. package/dist/src/utils/env-multi-project-parser.d.ts +0 -220
  769. package/dist/src/utils/env-multi-project-parser.d.ts.map +0 -1
  770. package/dist/src/utils/env-multi-project-parser.js +0 -403
  771. package/dist/src/utils/env-multi-project-parser.js.map +0 -1
  772. package/dist/src/utils/esm-helpers.d.ts +0 -50
  773. package/dist/src/utils/esm-helpers.d.ts.map +0 -1
  774. package/dist/src/utils/esm-helpers.js +0 -57
  775. package/dist/src/utils/esm-helpers.js.map +0 -1
  776. package/dist/src/utils/execFileNoThrow.d.ts +0 -99
  777. package/dist/src/utils/execFileNoThrow.d.ts.map +0 -1
  778. package/dist/src/utils/execFileNoThrow.js +0 -137
  779. package/dist/src/utils/execFileNoThrow.js.map +0 -1
  780. package/dist/src/utils/external-resource-validator.d.ts +0 -102
  781. package/dist/src/utils/external-resource-validator.d.ts.map +0 -1
  782. package/dist/src/utils/external-resource-validator.js +0 -442
  783. package/dist/src/utils/external-resource-validator.js.map +0 -1
  784. package/dist/src/utils/generate-skills-index.d.ts +0 -24
  785. package/dist/src/utils/generate-skills-index.d.ts.map +0 -1
  786. package/dist/src/utils/generate-skills-index.js +0 -410
  787. package/dist/src/utils/generate-skills-index.js.map +0 -1
  788. package/dist/src/utils/model-selection.d.ts +0 -75
  789. package/dist/src/utils/model-selection.d.ts.map +0 -1
  790. package/dist/src/utils/model-selection.js +0 -204
  791. package/dist/src/utils/model-selection.js.map +0 -1
  792. package/dist/src/utils/plugin-validator.d.ts +0 -161
  793. package/dist/src/utils/plugin-validator.d.ts.map +0 -1
  794. package/dist/src/utils/plugin-validator.js +0 -558
  795. package/dist/src/utils/plugin-validator.js.map +0 -1
  796. package/dist/src/utils/pricing-constants.d.ts +0 -70
  797. package/dist/src/utils/pricing-constants.d.ts.map +0 -1
  798. package/dist/src/utils/pricing-constants.js +0 -71
  799. package/dist/src/utils/pricing-constants.js.map +0 -1
  800. package/dist/src/utils/project-detection.d.ts +0 -141
  801. package/dist/src/utils/project-detection.d.ts.map +0 -1
  802. package/dist/src/utils/project-detection.js +0 -321
  803. package/dist/src/utils/project-detection.js.map +0 -1
  804. package/dist/src/utils/string-utils.d.ts +0 -40
  805. package/dist/src/utils/string-utils.d.ts.map +0 -1
  806. package/dist/src/utils/string-utils.js +0 -58
  807. package/dist/src/utils/string-utils.js.map +0 -1
  808. package/dist/src/utils/translation.d.ts +0 -187
  809. package/dist/src/utils/translation.d.ts.map +0 -1
  810. package/dist/src/utils/translation.js +0 -414
  811. package/dist/src/utils/translation.js.map +0 -1
@@ -1,165 +1,142 @@
1
- /**
2
- * GitHub Spec Sync
3
- *
4
- * CORRECT ARCHITECTURE:
5
- * - Syncs .specweave/docs/internal/specs/spec-*.md ↔ GitHub Projects
6
- * - NOT increments ↔ GitHub Issues (that was wrong!)
7
- *
8
- * Mapping:
9
- * - Spec GitHub Project
10
- * - User Story → GitHub Project Card/Issue
11
- * - Acceptance Criteria → Checklist in Issue
12
- *
13
- * @module github-spec-sync
14
- */
15
- import { SpecMetadataManager } from '../../../src/core/specs/spec-metadata-manager.js';
16
- import { SpecParser } from '../../../src/core/specs/spec-parser.js';
17
- import { execFileNoThrow } from '../../../src/utils/execFileNoThrow.js';
18
- export class GitHubSpecSync {
19
- constructor(projectRoot = process.cwd()) {
20
- this.specManager = new SpecMetadataManager(projectRoot);
21
- }
22
- /**
23
- * Sync spec to GitHub Project (CREATE or UPDATE)
24
- */
25
- async syncSpecToGitHub(specId) {
26
- console.log(`\n🔄 Syncing spec ${specId} to GitHub Project...`);
27
- try {
28
- // 1. Load spec
29
- const spec = await this.specManager.loadSpec(specId);
30
- if (!spec) {
31
- return {
32
- success: false,
33
- specId,
34
- provider: 'github',
35
- error: `Spec ${specId} not found`
36
- };
37
- }
38
- // 2. Detect repository
39
- const repoInfo = await this.detectRepo();
40
- if (!repoInfo) {
41
- return {
42
- success: false,
43
- specId,
44
- provider: 'github',
45
- error: 'Could not detect GitHub repository'
46
- };
47
- }
48
- const { owner, repo } = repoInfo;
49
- // 3. Check if spec already linked to GitHub Project
50
- const existingLink = spec.metadata.externalLinks?.github;
51
- let project;
52
- if (existingLink?.projectId) {
53
- // UPDATE existing project
54
- console.log(` Found existing GitHub Project #${existingLink.projectId}`);
55
- project = await this.updateGitHubProject(owner, repo, existingLink.projectId, spec);
56
- }
57
- else {
58
- // CREATE new project
59
- console.log(' Creating new GitHub Project...');
60
- project = await this.createGitHubProject(owner, repo, spec);
61
- // Link spec to project
62
- await this.specManager.linkToExternal(specId, 'github', {
63
- id: project.id,
64
- url: project.url,
65
- owner,
66
- repo
67
- });
68
- }
69
- // 4. Sync user stories as issues/cards
70
- const changes = await this.syncUserStories(owner, repo, project.number, spec);
71
- console.log('✅ Sync complete!');
72
- return {
73
- success: true,
74
- specId,
75
- provider: 'github',
76
- externalId: project.id.toString(),
77
- url: project.url,
78
- changes
79
- };
80
- }
81
- catch (error) {
82
- console.error('❌ Error syncing to GitHub:', error);
83
- return {
84
- success: false,
85
- specId,
86
- provider: 'github',
87
- error: error instanceof Error ? error.message : 'Unknown error'
88
- };
89
- }
1
+ import { SpecMetadataManager } from "../../../src/core/specs/spec-metadata-manager.js";
2
+ import { SpecParser } from "../../../src/core/specs/spec-parser.js";
3
+ import { execFileNoThrow } from "../../../src/utils/execFileNoThrow.js";
4
+ class GitHubSpecSync {
5
+ constructor(projectRoot = process.cwd()) {
6
+ this.specManager = new SpecMetadataManager(projectRoot);
7
+ }
8
+ /**
9
+ * Sync spec to GitHub Project (CREATE or UPDATE)
10
+ */
11
+ async syncSpecToGitHub(specId) {
12
+ console.log(`
13
+ \u{1F504} Syncing spec ${specId} to GitHub Project...`);
14
+ try {
15
+ const spec = await this.specManager.loadSpec(specId);
16
+ if (!spec) {
17
+ return {
18
+ success: false,
19
+ specId,
20
+ provider: "github",
21
+ error: `Spec ${specId} not found`
22
+ };
23
+ }
24
+ const repoInfo = await this.detectRepo();
25
+ if (!repoInfo) {
26
+ return {
27
+ success: false,
28
+ specId,
29
+ provider: "github",
30
+ error: "Could not detect GitHub repository"
31
+ };
32
+ }
33
+ const { owner, repo } = repoInfo;
34
+ const existingLink = spec.metadata.externalLinks?.github;
35
+ let project;
36
+ if (existingLink?.projectId) {
37
+ console.log(` Found existing GitHub Project #${existingLink.projectId}`);
38
+ project = await this.updateGitHubProject(
39
+ owner,
40
+ repo,
41
+ existingLink.projectId,
42
+ spec
43
+ );
44
+ } else {
45
+ console.log(" Creating new GitHub Project...");
46
+ project = await this.createGitHubProject(owner, repo, spec);
47
+ await this.specManager.linkToExternal(specId, "github", {
48
+ id: project.id,
49
+ url: project.url,
50
+ owner,
51
+ repo
52
+ });
53
+ }
54
+ const changes = await this.syncUserStories(owner, repo, project.number, spec);
55
+ console.log("\u2705 Sync complete!");
56
+ return {
57
+ success: true,
58
+ specId,
59
+ provider: "github",
60
+ externalId: project.id.toString(),
61
+ url: project.url,
62
+ changes
63
+ };
64
+ } catch (error) {
65
+ console.error("\u274C Error syncing to GitHub:", error);
66
+ return {
67
+ success: false,
68
+ specId,
69
+ provider: "github",
70
+ error: error instanceof Error ? error.message : "Unknown error"
71
+ };
90
72
  }
91
- /**
92
- * Sync FROM GitHub Project to spec (bidirectional)
93
- */
94
- async syncFromGitHub(specId) {
95
- console.log(`\n🔄 Syncing FROM GitHub to spec ${specId}...`);
96
- try {
97
- // 1. Load spec
98
- const spec = await this.specManager.loadSpec(specId);
99
- if (!spec) {
100
- return {
101
- success: false,
102
- specId,
103
- provider: 'github',
104
- error: `Spec ${specId} not found`
105
- };
106
- }
107
- // 2. Get GitHub Project link
108
- const githubLink = spec.metadata.externalLinks?.github;
109
- if (!githubLink?.projectId) {
110
- return {
111
- success: false,
112
- specId,
113
- provider: 'github',
114
- error: 'Spec not linked to GitHub Project'
115
- };
116
- }
117
- const { owner, repo } = await this.detectRepo() || { owner: '', repo: '' };
118
- // 3. Fetch GitHub Project state
119
- const project = await this.fetchGitHubProject(owner, repo, githubLink.projectId);
120
- // 4. Detect conflicts
121
- const conflicts = await this.detectConflicts(spec, project);
122
- if (conflicts.length === 0) {
123
- console.log('✅ No conflicts - spec and GitHub in sync');
124
- return {
125
- success: true,
126
- specId,
127
- provider: 'github',
128
- externalId: project.id.toString(),
129
- url: project.url
130
- };
131
- }
132
- console.log(`⚠️ Detected ${conflicts.length} conflict(s)`);
133
- // 5. Resolve conflicts (GitHub wins by default for now)
134
- await this.resolveConflicts(spec, conflicts);
135
- console.log('✅ Sync FROM GitHub complete!');
136
- return {
137
- success: true,
138
- specId,
139
- provider: 'github',
140
- externalId: project.id.toString(),
141
- url: project.url,
142
- conflicts
143
- };
144
- }
145
- catch (error) {
146
- console.error('❌ Error syncing FROM GitHub:', error);
147
- return {
148
- success: false,
149
- specId,
150
- provider: 'github',
151
- error: error instanceof Error ? error.message : 'Unknown error'
152
- };
153
- }
73
+ }
74
+ /**
75
+ * Sync FROM GitHub Project to spec (bidirectional)
76
+ */
77
+ async syncFromGitHub(specId) {
78
+ console.log(`
79
+ \u{1F504} Syncing FROM GitHub to spec ${specId}...`);
80
+ try {
81
+ const spec = await this.specManager.loadSpec(specId);
82
+ if (!spec) {
83
+ return {
84
+ success: false,
85
+ specId,
86
+ provider: "github",
87
+ error: `Spec ${specId} not found`
88
+ };
89
+ }
90
+ const githubLink = spec.metadata.externalLinks?.github;
91
+ if (!githubLink?.projectId) {
92
+ return {
93
+ success: false,
94
+ specId,
95
+ provider: "github",
96
+ error: "Spec not linked to GitHub Project"
97
+ };
98
+ }
99
+ const { owner, repo } = await this.detectRepo() || { owner: "", repo: "" };
100
+ const project = await this.fetchGitHubProject(owner, repo, githubLink.projectId);
101
+ const conflicts = await this.detectConflicts(spec, project);
102
+ if (conflicts.length === 0) {
103
+ console.log("\u2705 No conflicts - spec and GitHub in sync");
104
+ return {
105
+ success: true,
106
+ specId,
107
+ provider: "github",
108
+ externalId: project.id.toString(),
109
+ url: project.url
110
+ };
111
+ }
112
+ console.log(`\u26A0\uFE0F Detected ${conflicts.length} conflict(s)`);
113
+ await this.resolveConflicts(spec, conflicts);
114
+ console.log("\u2705 Sync FROM GitHub complete!");
115
+ return {
116
+ success: true,
117
+ specId,
118
+ provider: "github",
119
+ externalId: project.id.toString(),
120
+ url: project.url,
121
+ conflicts
122
+ };
123
+ } catch (error) {
124
+ console.error("\u274C Error syncing FROM GitHub:", error);
125
+ return {
126
+ success: false,
127
+ specId,
128
+ provider: "github",
129
+ error: error instanceof Error ? error.message : "Unknown error"
130
+ };
154
131
  }
155
- /**
156
- * Create new GitHub Project for spec
157
- */
158
- async createGitHubProject(owner, repo, spec) {
159
- const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
160
- const projectBody = this.generateProjectDescription(spec);
161
- // Use GraphQL to create project
162
- const query = `
132
+ }
133
+ /**
134
+ * Create new GitHub Project for spec
135
+ */
136
+ async createGitHubProject(owner, repo, spec) {
137
+ const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
138
+ const projectBody = this.generateProjectDescription(spec);
139
+ const query = `
163
140
  mutation CreateProject($ownerId: ID!, $title: String!, $body: String!) {
164
141
  createProjectV2(input: {
165
142
  ownerId: $ownerId,
@@ -175,33 +152,31 @@ export class GitHubSpecSync {
175
152
  }
176
153
  }
177
154
  `;
178
- // Get owner ID first
179
- const ownerId = await this.getOwnerId(owner);
180
- const result = await this.executeGraphQL(query, {
181
- ownerId,
182
- title: projectTitle,
183
- body: projectBody
184
- });
185
- const project = result.data.createProjectV2.projectV2;
186
- console.log(` ✅ Created GitHub Project #${project.number}: ${project.url}`);
187
- return {
188
- id: parseInt(project.id, 10),
189
- title: project.title,
190
- number: project.number,
191
- url: project.url,
192
- state: 'open',
193
- owner,
194
- repo
195
- };
196
- }
197
- /**
198
- * Update existing GitHub Project
199
- */
200
- async updateGitHubProject(owner, repo, projectId, spec) {
201
- const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
202
- const projectBody = this.generateProjectDescription(spec);
203
- // Use GraphQL to update project
204
- const query = `
155
+ const ownerId = await this.getOwnerId(owner);
156
+ const result = await this.executeGraphQL(query, {
157
+ ownerId,
158
+ title: projectTitle,
159
+ body: projectBody
160
+ });
161
+ const project = result.data.createProjectV2.projectV2;
162
+ console.log(` \u2705 Created GitHub Project #${project.number}: ${project.url}`);
163
+ return {
164
+ id: parseInt(project.id, 10),
165
+ title: project.title,
166
+ number: project.number,
167
+ url: project.url,
168
+ state: "open",
169
+ owner,
170
+ repo
171
+ };
172
+ }
173
+ /**
174
+ * Update existing GitHub Project
175
+ */
176
+ async updateGitHubProject(owner, repo, projectId, spec) {
177
+ const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
178
+ const projectBody = this.generateProjectDescription(spec);
179
+ const query = `
205
180
  mutation UpdateProject($projectId: ID!, $title: String, $body: String) {
206
181
  updateProjectV2(input: {
207
182
  projectId: $projectId,
@@ -217,73 +192,66 @@ export class GitHubSpecSync {
217
192
  }
218
193
  }
219
194
  `;
220
- const result = await this.executeGraphQL(query, {
221
- projectId: projectId.toString(),
222
- title: projectTitle,
223
- body: projectBody
224
- });
225
- const project = result.data.updateProjectV2.projectV2;
226
- console.log(` Updated GitHub Project #${project.number}`);
227
- return {
228
- id: projectId,
229
- title: project.title,
230
- number: project.number,
231
- url: project.url,
232
- state: 'open',
233
- owner,
234
- repo
235
- };
195
+ const result = await this.executeGraphQL(query, {
196
+ projectId: projectId.toString(),
197
+ title: projectTitle,
198
+ body: projectBody
199
+ });
200
+ const project = result.data.updateProjectV2.projectV2;
201
+ console.log(` \u2705 Updated GitHub Project #${project.number}`);
202
+ return {
203
+ id: projectId,
204
+ title: project.title,
205
+ number: project.number,
206
+ url: project.url,
207
+ state: "open",
208
+ owner,
209
+ repo
210
+ };
211
+ }
212
+ /**
213
+ * Sync user stories as GitHub Issues
214
+ */
215
+ async syncUserStories(owner, repo, projectNumber, spec) {
216
+ const created = [];
217
+ const updated = [];
218
+ const deleted = [];
219
+ if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
220
+ console.log(" \u2139\uFE0F No user stories to sync");
221
+ return { created, updated, deleted };
236
222
  }
237
- /**
238
- * Sync user stories as GitHub Issues
239
- */
240
- async syncUserStories(owner, repo, projectNumber, spec) {
241
- const created = [];
242
- const updated = [];
243
- const deleted = [];
244
- if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
245
- console.log(' ℹ️ No user stories to sync');
246
- return { created, updated, deleted };
247
- }
248
- console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
249
- for (const us of spec.metadata.userStories) {
250
- // Create or update issue for each user story
251
- const issueTitle = `[${us.id}] ${us.title}`;
252
- const issueBody = this.generateIssueBody(us);
253
- // Check if issue already exists (by title pattern)
254
- const existingIssue = await this.findIssueByTitle(owner, repo, us.id);
255
- if (existingIssue) {
256
- // UPDATE existing issue
257
- await this.updateIssue(owner, repo, existingIssue.number, {
258
- title: issueTitle,
259
- body: issueBody,
260
- state: us.status === 'done' ? 'closed' : 'open'
261
- });
262
- updated.push(us.id);
263
- console.log(` ✅ Updated ${us.id}`);
264
- }
265
- else {
266
- // CREATE new issue
267
- const newIssue = await this.createIssue(owner, repo, {
268
- title: issueTitle,
269
- body: issueBody,
270
- labels: ['user-story', `spec:${spec.metadata.id}`, `priority:${us.priority}`]
271
- });
272
- created.push(us.id);
273
- console.log(` ✅ Created ${us.id} → Issue #${newIssue.number}`);
274
- }
275
- }
276
- return { created, updated, deleted };
223
+ console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
224
+ for (const us of spec.metadata.userStories) {
225
+ const issueTitle = `[${us.id}] ${us.title}`;
226
+ const issueBody = this.generateIssueBody(us);
227
+ const existingIssue = await this.findIssueByTitle(owner, repo, us.id);
228
+ if (existingIssue) {
229
+ await this.updateIssue(owner, repo, existingIssue.number, {
230
+ title: issueTitle,
231
+ body: issueBody,
232
+ state: us.status === "done" ? "closed" : "open"
233
+ });
234
+ updated.push(us.id);
235
+ console.log(` \u2705 Updated ${us.id}`);
236
+ } else {
237
+ const newIssue = await this.createIssue(owner, repo, {
238
+ title: issueTitle,
239
+ body: issueBody,
240
+ labels: ["user-story", `spec:${spec.metadata.id}`, `priority:${us.priority}`]
241
+ });
242
+ created.push(us.id);
243
+ console.log(` \u2705 Created ${us.id} \u2192 Issue #${newIssue.number}`);
244
+ }
277
245
  }
278
- /**
279
- * Generate project description from spec
280
- */
281
- generateProjectDescription(spec) {
282
- const progress = spec.metadata.progress;
283
- const progressText = progress
284
- ? `**Progress**: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)`
285
- : '**Progress**: N/A';
286
- return `
246
+ return { created, updated, deleted };
247
+ }
248
+ /**
249
+ * Generate project description from spec
250
+ */
251
+ generateProjectDescription(spec) {
252
+ const progress = spec.metadata.progress;
253
+ const progressText = progress ? `**Progress**: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)` : "**Progress**: N/A";
254
+ return `
287
255
  # ${spec.metadata.title}
288
256
 
289
257
  **Spec ID**: ${spec.metadata.id}
@@ -303,18 +271,16 @@ ${spec.metadata.userStories?.length || 0} user stories tracked in this project.
303
271
 
304
272
  ---
305
273
 
306
- 🤖 **Auto-synced from SpecWeave**
307
- Last updated: ${new Date().toISOString()}
274
+ \u{1F916} **Auto-synced from SpecWeave**
275
+ Last updated: ${(/* @__PURE__ */ new Date()).toISOString()}
308
276
  `.trim();
309
- }
310
- /**
311
- * Generate issue body from user story
312
- */
313
- generateIssueBody(us) {
314
- const acList = us.acceptanceCriteria
315
- .map(ac => `- [${ac.status === 'done' ? 'x' : ' '}] ${ac.description}`)
316
- .join('\n');
317
- return `
277
+ }
278
+ /**
279
+ * Generate issue body from user story
280
+ */
281
+ generateIssueBody(us) {
282
+ const acList = us.acceptanceCriteria.map((ac) => `- [${ac.status === "done" ? "x" : " "}] ${ac.description}`).join("\n");
283
+ return `
318
284
  ## User Story
319
285
 
320
286
  ${us.title}
@@ -328,178 +294,171 @@ ${acList}
328
294
  **Priority**: ${us.priority}
329
295
  **Status**: ${us.status}
330
296
 
331
- 🤖 **Auto-synced from SpecWeave**
297
+ \u{1F916} **Auto-synced from SpecWeave**
332
298
  `.trim();
299
+ }
300
+ /**
301
+ * Detect conflicts between spec and GitHub
302
+ */
303
+ async detectConflicts(spec, project) {
304
+ const conflicts = [];
305
+ const expectedTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
306
+ if (project.title !== expectedTitle) {
307
+ conflicts.push({
308
+ type: "metadata",
309
+ field: "title",
310
+ localValue: spec.metadata.title,
311
+ remoteValue: project.title,
312
+ resolution: "remote-wins",
313
+ description: "Project title differs from spec title"
314
+ });
333
315
  }
334
- /**
335
- * Detect conflicts between spec and GitHub
336
- */
337
- async detectConflicts(spec, project) {
338
- const conflicts = [];
339
- // Compare project title
340
- const expectedTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
341
- if (project.title !== expectedTitle) {
342
- conflicts.push({
343
- type: 'metadata',
344
- field: 'title',
345
- localValue: spec.metadata.title,
346
- remoteValue: project.title,
347
- resolution: 'remote-wins',
348
- description: 'Project title differs from spec title'
349
- });
350
- }
351
- // TODO: Compare user stories and their statuses
352
- return conflicts;
353
- }
354
- /**
355
- * Resolve conflicts
356
- */
357
- async resolveConflicts(spec, conflicts) {
358
- for (const conflict of conflicts) {
359
- if (conflict.resolution === 'remote-wins') {
360
- console.log(` 🔄 Resolving: ${conflict.description} (GitHub wins)`);
361
- // Update spec metadata from GitHub
362
- if (conflict.field === 'title') {
363
- await this.specManager.saveMetadata(spec.metadata.id, {
364
- title: conflict.remoteValue
365
- });
366
- }
367
- }
316
+ return conflicts;
317
+ }
318
+ /**
319
+ * Resolve conflicts
320
+ */
321
+ async resolveConflicts(spec, conflicts) {
322
+ for (const conflict of conflicts) {
323
+ if (conflict.resolution === "remote-wins") {
324
+ console.log(` \u{1F504} Resolving: ${conflict.description} (GitHub wins)`);
325
+ if (conflict.field === "title") {
326
+ await this.specManager.saveMetadata(spec.metadata.id, {
327
+ title: conflict.remoteValue
328
+ });
368
329
  }
330
+ }
369
331
  }
370
- /**
371
- * Execute GraphQL query against GitHub API
372
- */
373
- async executeGraphQL(query, variables) {
374
- const result = await execFileNoThrow('gh', [
375
- 'api',
376
- 'graphql',
377
- '-f',
378
- `query=${query}`,
379
- ...Object.entries(variables).flatMap(([key, value]) => ['-F', `${key}=${value}`])
380
- ]);
381
- if (result.error) {
382
- throw new Error(`GraphQL query failed: ${result.error}`);
383
- }
384
- return JSON.parse(result.stdout);
332
+ }
333
+ /**
334
+ * Execute GraphQL query against GitHub API
335
+ */
336
+ async executeGraphQL(query, variables) {
337
+ const result = await execFileNoThrow("gh", [
338
+ "api",
339
+ "graphql",
340
+ "-f",
341
+ `query=${query}`,
342
+ ...Object.entries(variables).flatMap(([key, value]) => ["-F", `${key}=${value}`])
343
+ ]);
344
+ if (result.error) {
345
+ throw new Error(`GraphQL query failed: ${result.error}`);
385
346
  }
386
- /**
387
- * Get owner ID (user or organization)
388
- */
389
- async getOwnerId(owner) {
390
- const query = `
347
+ return JSON.parse(result.stdout);
348
+ }
349
+ /**
350
+ * Get owner ID (user or organization)
351
+ */
352
+ async getOwnerId(owner) {
353
+ const query = `
391
354
  query GetOwner($login: String!) {
392
355
  repositoryOwner(login: $login) {
393
356
  id
394
357
  }
395
358
  }
396
359
  `;
397
- const result = await this.executeGraphQL(query, { login: owner });
398
- return result.data.repositoryOwner.id;
360
+ const result = await this.executeGraphQL(query, { login: owner });
361
+ return result.data.repositoryOwner.id;
362
+ }
363
+ /**
364
+ * Fetch GitHub Project details
365
+ */
366
+ async fetchGitHubProject(owner, repo, projectId) {
367
+ return {
368
+ id: projectId,
369
+ title: "Project Title",
370
+ number: 1,
371
+ url: "https://github.com/...",
372
+ state: "open",
373
+ owner,
374
+ repo
375
+ };
376
+ }
377
+ /**
378
+ * Find issue by title pattern
379
+ */
380
+ async findIssueByTitle(owner, repo, usId) {
381
+ const result = await execFileNoThrow("gh", [
382
+ "issue",
383
+ "list",
384
+ "--repo",
385
+ `${owner}/${repo}`,
386
+ "--search",
387
+ `"[${usId}]" in:title`,
388
+ "--json",
389
+ "number,title,body,state,labels",
390
+ "--limit",
391
+ "1"
392
+ ]);
393
+ if (result.error || !result.stdout) {
394
+ return null;
399
395
  }
400
- /**
401
- * Fetch GitHub Project details
402
- */
403
- async fetchGitHubProject(owner, repo, projectId) {
404
- // Placeholder - would use GraphQL to fetch project
405
- return {
406
- id: projectId,
407
- title: 'Project Title',
408
- number: 1,
409
- url: 'https://github.com/...',
410
- state: 'open',
411
- owner,
412
- repo
413
- };
396
+ const issues = JSON.parse(result.stdout);
397
+ return issues.length > 0 ? issues[0] : null;
398
+ }
399
+ /**
400
+ * Create GitHub issue
401
+ */
402
+ async createIssue(owner, repo, issue) {
403
+ const result = await execFileNoThrow("gh", [
404
+ "issue",
405
+ "create",
406
+ "--repo",
407
+ `${owner}/${repo}`,
408
+ "--title",
409
+ issue.title,
410
+ "--body",
411
+ issue.body,
412
+ "--label",
413
+ issue.labels.join(","),
414
+ "--json",
415
+ "number,title,body,state"
416
+ ]);
417
+ if (result.error) {
418
+ throw new Error(`Failed to create issue: ${result.error}`);
414
419
  }
415
- /**
416
- * Find issue by title pattern
417
- */
418
- async findIssueByTitle(owner, repo, usId) {
419
- const result = await execFileNoThrow('gh', [
420
- 'issue',
421
- 'list',
422
- '--repo',
423
- `${owner}/${repo}`,
424
- '--search',
425
- `"[${usId}]" in:title`,
426
- '--json',
427
- 'number,title,body,state,labels',
428
- '--limit',
429
- '1'
430
- ]);
431
- if (result.error || !result.stdout) {
432
- return null;
433
- }
434
- const issues = JSON.parse(result.stdout);
435
- return issues.length > 0 ? issues[0] : null;
420
+ return JSON.parse(result.stdout);
421
+ }
422
+ /**
423
+ * Update GitHub issue
424
+ */
425
+ async updateIssue(owner, repo, issueNumber, updates) {
426
+ const args = ["issue", "edit", issueNumber.toString(), "--repo", `${owner}/${repo}`];
427
+ if (updates.title) {
428
+ args.push("--title", updates.title);
436
429
  }
437
- /**
438
- * Create GitHub issue
439
- */
440
- async createIssue(owner, repo, issue) {
441
- const result = await execFileNoThrow('gh', [
442
- 'issue',
443
- 'create',
444
- '--repo',
445
- `${owner}/${repo}`,
446
- '--title',
447
- issue.title,
448
- '--body',
449
- issue.body,
450
- '--label',
451
- issue.labels.join(','),
452
- '--json',
453
- 'number,title,body,state'
454
- ]);
455
- if (result.error) {
456
- throw new Error(`Failed to create issue: ${result.error}`);
457
- }
458
- return JSON.parse(result.stdout);
430
+ if (updates.body) {
431
+ args.push("--body", updates.body);
459
432
  }
460
- /**
461
- * Update GitHub issue
462
- */
463
- async updateIssue(owner, repo, issueNumber, updates) {
464
- const args = ['issue', 'edit', issueNumber.toString(), '--repo', `${owner}/${repo}`];
465
- if (updates.title) {
466
- args.push('--title', updates.title);
467
- }
468
- if (updates.body) {
469
- args.push('--body', updates.body);
470
- }
471
- if (updates.state === 'closed') {
472
- args.push('--state', 'closed');
473
- }
474
- else if (updates.state === 'open') {
475
- args.push('--state', 'open');
476
- }
477
- const result = await execFileNoThrow('gh', args);
478
- if (result.error) {
479
- throw new Error(`Failed to update issue #${issueNumber}: ${result.error}`);
480
- }
433
+ if (updates.state === "closed") {
434
+ args.push("--state", "closed");
435
+ } else if (updates.state === "open") {
436
+ args.push("--state", "open");
481
437
  }
482
- /**
483
- * Detect GitHub repository from git remote
484
- */
485
- async detectRepo() {
486
- const result = await execFileNoThrow('git', ['remote', 'get-url', 'origin']);
487
- if (result.error || !result.stdout) {
488
- return null;
489
- }
490
- const remoteUrl = result.stdout.trim();
491
- // Parse GitHub URL
492
- // Examples:
493
- // - https://github.com/owner/repo.git
494
- // - git@github.com:owner/repo.git
495
- const httpsMatch = remoteUrl.match(/github\.com[/:]([\w-]+)\/([\w-]+?)(\.git)?$/);
496
- if (httpsMatch) {
497
- return {
498
- owner: httpsMatch[1],
499
- repo: httpsMatch[2]
500
- };
501
- }
502
- return null;
438
+ const result = await execFileNoThrow("gh", args);
439
+ if (result.error) {
440
+ throw new Error(`Failed to update issue #${issueNumber}: ${result.error}`);
441
+ }
442
+ }
443
+ /**
444
+ * Detect GitHub repository from git remote
445
+ */
446
+ async detectRepo() {
447
+ const result = await execFileNoThrow("git", ["remote", "get-url", "origin"]);
448
+ if (result.error || !result.stdout) {
449
+ return null;
450
+ }
451
+ const remoteUrl = result.stdout.trim();
452
+ const httpsMatch = remoteUrl.match(/github\.com[/:]([\w-]+)\/([\w-]+?)(\.git)?$/);
453
+ if (httpsMatch) {
454
+ return {
455
+ owner: httpsMatch[1],
456
+ repo: httpsMatch[2]
457
+ };
503
458
  }
459
+ return null;
460
+ }
504
461
  }
505
- //# sourceMappingURL=github-spec-sync.js.map
462
+ export {
463
+ GitHubSpecSync
464
+ };