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,408 +1,419 @@
1
- /**
2
- * GitHub CLI Wrapper for SpecWeave (Multi-Project Support)
3
- *
4
- * Profile-based GitHub client that supports:
5
- * - Multiple repositories via sync profiles
6
- * - Time range filtering for syncs
7
- * - Rate limiting protection
8
- * - Secure command execution (no shell injection)
9
- */
10
- import { execFileNoThrow } from '../../../src/utils/execFileNoThrow.js';
11
- export class GitHubClientV2 {
12
- /**
13
- * Create GitHub client from sync profile
14
- */
15
- constructor(profile) {
16
- if (profile.provider !== 'github') {
17
- throw new Error(`Expected GitHub profile, got ${profile.provider}`);
18
- }
19
- const config = profile.config;
20
- this.owner = config.owner;
21
- this.repo = config.repo;
22
- this.fullRepo = `${this.owner}/${this.repo}`;
1
+ import { execFileNoThrow } from "../../../src/utils/execFileNoThrow.js";
2
+ class GitHubClientV2 {
3
+ /**
4
+ * Create GitHub client from sync profile
5
+ */
6
+ constructor(profile) {
7
+ if (profile.provider !== "github") {
8
+ throw new Error(`Expected GitHub profile, got ${profile.provider}`);
23
9
  }
24
- /**
25
- * Create client from owner/repo directly
26
- */
27
- static fromRepo(owner, repo) {
28
- const profile = {
29
- provider: 'github',
30
- displayName: `${owner}/${repo}`,
31
- config: { owner, repo },
32
- timeRange: { default: '1M', max: '6M' },
33
- };
34
- return new GitHubClientV2(profile);
10
+ const config = profile.config;
11
+ this.owner = config.owner;
12
+ this.repo = config.repo;
13
+ this.fullRepo = `${this.owner}/${this.repo}`;
14
+ }
15
+ /**
16
+ * Create client from owner/repo directly
17
+ */
18
+ static fromRepo(owner, repo) {
19
+ const profile = {
20
+ provider: "github",
21
+ displayName: `${owner}/${repo}`,
22
+ config: { owner, repo },
23
+ timeRange: { default: "1M", max: "6M" }
24
+ };
25
+ return new GitHubClientV2(profile);
26
+ }
27
+ // ==========================================================================
28
+ // Authentication & Setup
29
+ // ==========================================================================
30
+ /**
31
+ * Check if GitHub CLI is installed and authenticated
32
+ */
33
+ static async checkCLI() {
34
+ const versionCheck = await execFileNoThrow("gh", ["--version"]);
35
+ if (versionCheck.status !== 0) {
36
+ return {
37
+ installed: false,
38
+ authenticated: false,
39
+ error: "GitHub CLI (gh) not installed. Install from: https://cli.github.com/"
40
+ };
35
41
  }
36
- // ==========================================================================
37
- // Authentication & Setup
38
- // ==========================================================================
39
- /**
40
- * Check if GitHub CLI is installed and authenticated
41
- */
42
- static async checkCLI() {
43
- // Check installation
44
- const versionCheck = await execFileNoThrow('gh', ['--version']);
45
- if (versionCheck.status !== 0) {
46
- return {
47
- installed: false,
48
- authenticated: false,
49
- error: 'GitHub CLI (gh) not installed. Install from: https://cli.github.com/',
50
- };
51
- }
52
- // Check authentication
53
- const authCheck = await execFileNoThrow('gh', ['auth', 'status']);
54
- if (authCheck.status !== 0) {
55
- return {
56
- installed: true,
57
- authenticated: false,
58
- error: 'GitHub CLI not authenticated. Run: gh auth login',
59
- };
60
- }
61
- return { installed: true, authenticated: true };
42
+ const authCheck = await execFileNoThrow("gh", ["auth", "status"]);
43
+ if (authCheck.status !== 0) {
44
+ return {
45
+ installed: true,
46
+ authenticated: false,
47
+ error: "GitHub CLI not authenticated. Run: gh auth login"
48
+ };
62
49
  }
63
- /**
64
- * Auto-detect repository from git remote
65
- */
66
- static async detectRepo(cwd) {
67
- const result = await execFileNoThrow('git', [
68
- 'remote',
69
- 'get-url',
70
- 'origin',
71
- ], { cwd });
72
- if (result.status !== 0) {
73
- return null;
74
- }
75
- const remote = result.stdout.trim();
76
- const match = remote.match(/github\.com[:/](.+)\/(.+?)(?:\.git)?$/);
77
- if (!match) {
78
- return null;
79
- }
80
- return {
81
- owner: match[1],
82
- repo: match[2],
83
- };
50
+ return { installed: true, authenticated: true };
51
+ }
52
+ /**
53
+ * Auto-detect repository from git remote
54
+ */
55
+ static async detectRepo(cwd) {
56
+ const result = await execFileNoThrow("git", [
57
+ "remote",
58
+ "get-url",
59
+ "origin"
60
+ ], { cwd });
61
+ if (result.status !== 0) {
62
+ return null;
84
63
  }
85
- // ==========================================================================
86
- // Milestones
87
- // ==========================================================================
88
- /**
89
- * Create or get existing milestone
90
- */
91
- async createOrGetMilestone(title, description, daysFromNow = 2) {
92
- // Check if milestone already exists
93
- const existing = await this.getMilestoneByTitle(title);
94
- if (existing) {
95
- return existing;
96
- }
97
- // Calculate due date
98
- const dueDate = new Date();
99
- dueDate.setDate(dueDate.getDate() + daysFromNow);
100
- const dueDateISO = dueDate.toISOString();
101
- // Build API request
102
- const args = [
103
- 'api',
104
- `repos/${this.fullRepo}/milestones`,
105
- '-f',
106
- `title=${title}`,
107
- '-f',
108
- `due_on=${dueDateISO}`,
109
- '--jq',
110
- '{number: .number, title: .title, description: .description, state: .state, due_on: .due_on}',
111
- ];
112
- if (description) {
113
- args.splice(4, 0, '-f', `description=${description}`);
114
- }
115
- const result = await execFileNoThrow('gh', args);
116
- if (result.status !== 0) {
117
- throw new Error(`Failed to create milestone: ${result.stderr || result.stdout}`);
118
- }
119
- return JSON.parse(result.stdout);
64
+ const remote = result.stdout.trim();
65
+ const match = remote.match(/github\.com[:/](.+)\/(.+?)(?:\.git)?$/);
66
+ if (!match) {
67
+ return null;
120
68
  }
121
- /**
122
- * Get milestone by title
123
- */
124
- async getMilestoneByTitle(title) {
125
- const result = await execFileNoThrow('gh', [
126
- 'api',
127
- `repos/${this.fullRepo}/milestones`,
128
- '--jq',
129
- `.[] | select(.title=="${title}") | {number: .number, title: .title, description: .description, state: .state}`,
130
- ]);
131
- if (result.status !== 0 || !result.stdout.trim()) {
132
- return null;
133
- }
134
- return JSON.parse(result.stdout);
69
+ return {
70
+ owner: match[1],
71
+ repo: match[2]
72
+ };
73
+ }
74
+ // ==========================================================================
75
+ // Milestones
76
+ // ==========================================================================
77
+ /**
78
+ * Create or get existing milestone
79
+ */
80
+ async createOrGetMilestone(title, description, daysFromNow = 2) {
81
+ const existing = await this.getMilestoneByTitle(title);
82
+ if (existing) {
83
+ return existing;
135
84
  }
136
- // ==========================================================================
137
- // Issues
138
- // ==========================================================================
139
- /**
140
- * Create epic issue (increment-level)
141
- */
142
- async createEpicIssue(title, body, milestone, labels = []) {
143
- const args = [
144
- 'issue',
145
- 'create',
146
- '--repo',
147
- this.fullRepo,
148
- '--title',
149
- title,
150
- '--body',
151
- body,
152
- ];
153
- // Add labels
154
- for (const label of labels) {
155
- args.push('--label', label);
156
- }
157
- // Add milestone
158
- if (milestone !== undefined) {
159
- args.push('--milestone', String(milestone));
160
- }
161
- // Create issue (returns URL)
162
- const createResult = await execFileNoThrow('gh', args);
163
- if (createResult.status !== 0) {
164
- throw new Error(`Failed to create epic issue: ${createResult.stderr || createResult.stdout}`);
165
- }
166
- const issueUrl = createResult.stdout.trim();
167
- const issueNumber = parseInt(issueUrl.split('/').pop() || '0', 10);
168
- if (!issueNumber) {
169
- throw new Error(`Failed to extract issue number from URL: ${issueUrl}`);
170
- }
171
- // Fetch issue details
172
- return await this.getIssue(issueNumber);
85
+ const dueDate = /* @__PURE__ */ new Date();
86
+ dueDate.setDate(dueDate.getDate() + daysFromNow);
87
+ const dueDateISO = dueDate.toISOString();
88
+ const args = [
89
+ "api",
90
+ `repos/${this.fullRepo}/milestones`,
91
+ "-f",
92
+ `title=${title}`,
93
+ "-f",
94
+ `due_on=${dueDateISO}`,
95
+ "--jq",
96
+ "{number: .number, title: .title, description: .description, state: .state, due_on: .due_on}"
97
+ ];
98
+ if (description) {
99
+ args.splice(4, 0, "-f", `description=${description}`);
173
100
  }
174
- /**
175
- * Create task issue (linked to epic)
176
- */
177
- async createTaskIssue(title, body, epicNumber, milestone, labels = []) {
178
- // Add epic reference to body
179
- const enhancedBody = `**Part of**: #${epicNumber}\n\n${body}`;
180
- return await this.createEpicIssue(title, enhancedBody, milestone, labels);
101
+ const result = await execFileNoThrow("gh", args);
102
+ if (result.status !== 0) {
103
+ throw new Error(`Failed to create milestone: ${result.stderr || result.stdout}`);
181
104
  }
182
- /**
183
- * Get issue details
184
- */
185
- async getIssue(issueNumber) {
186
- const result = await execFileNoThrow('gh', [
187
- 'issue',
188
- 'view',
189
- String(issueNumber),
190
- '--repo',
191
- this.fullRepo,
192
- '--json',
193
- 'number,title,body,state,url,labels,milestone',
194
- ]);
195
- if (result.status !== 0) {
196
- throw new Error(`Failed to get issue #${issueNumber}: ${result.stderr || result.stdout}`);
197
- }
198
- const issue = JSON.parse(result.stdout);
199
- return {
200
- ...issue,
201
- html_url: issue.url,
202
- labels: issue.labels?.map((l) => l.name) || [],
203
- };
105
+ return JSON.parse(result.stdout);
106
+ }
107
+ /**
108
+ * Get milestone by title
109
+ */
110
+ async getMilestoneByTitle(title) {
111
+ const result = await execFileNoThrow("gh", [
112
+ "api",
113
+ `repos/${this.fullRepo}/milestones`,
114
+ "--jq",
115
+ `.[] | select(.title=="${title}") | {number: .number, title: .title, description: .description, state: .state}`
116
+ ]);
117
+ if (result.status !== 0 || !result.stdout.trim()) {
118
+ return null;
204
119
  }
205
- /**
206
- * Update issue body
207
- */
208
- async updateIssueBody(issueNumber, newBody) {
209
- const result = await execFileNoThrow('gh', [
210
- 'issue',
211
- 'edit',
212
- String(issueNumber),
213
- '--repo',
214
- this.fullRepo,
215
- '--body',
216
- newBody,
217
- ]);
218
- if (result.status !== 0) {
219
- throw new Error(`Failed to update issue #${issueNumber}: ${result.stderr || result.stdout}`);
220
- }
120
+ return JSON.parse(result.stdout);
121
+ }
122
+ // ==========================================================================
123
+ // Issues
124
+ // ==========================================================================
125
+ /**
126
+ * Create epic issue (increment-level)
127
+ */
128
+ async createEpicIssue(title, body, milestone, labels = []) {
129
+ const args = [
130
+ "issue",
131
+ "create",
132
+ "--repo",
133
+ this.fullRepo,
134
+ "--title",
135
+ title,
136
+ "--body",
137
+ body
138
+ ];
139
+ for (const label of labels) {
140
+ args.push("--label", label);
221
141
  }
222
- /**
223
- * Close issue
224
- */
225
- async closeIssue(issueNumber, comment) {
226
- if (comment) {
227
- await this.addComment(issueNumber, comment);
228
- }
229
- const result = await execFileNoThrow('gh', [
230
- 'issue',
231
- 'close',
232
- String(issueNumber),
233
- '--repo',
234
- this.fullRepo,
235
- ]);
236
- if (result.status !== 0) {
237
- throw new Error(`Failed to close issue #${issueNumber}: ${result.stderr || result.stdout}`);
238
- }
142
+ if (milestone !== void 0) {
143
+ args.push("--milestone", String(milestone));
239
144
  }
240
- /**
241
- * Add comment to issue
242
- */
243
- async addComment(issueNumber, comment) {
244
- const result = await execFileNoThrow('gh', [
245
- 'issue',
246
- 'comment',
247
- String(issueNumber),
248
- '--repo',
249
- this.fullRepo,
250
- '--body',
251
- comment,
252
- ]);
253
- if (result.status !== 0) {
254
- throw new Error(`Failed to add comment to issue #${issueNumber}: ${result.stderr || result.stdout}`);
255
- }
145
+ const createResult = await execFileNoThrow("gh", args);
146
+ if (createResult.status !== 0) {
147
+ throw new Error(
148
+ `Failed to create epic issue: ${createResult.stderr || createResult.stdout}`
149
+ );
256
150
  }
257
- /**
258
- * Add labels to issue
259
- */
260
- async addLabels(issueNumber, labels) {
261
- if (labels.length === 0)
262
- return;
263
- const args = [
264
- 'issue',
265
- 'edit',
266
- String(issueNumber),
267
- '--repo',
268
- this.fullRepo,
269
- ];
270
- for (const label of labels) {
271
- args.push('--add-label', label);
272
- }
273
- const result = await execFileNoThrow('gh', args);
274
- if (result.status !== 0) {
275
- throw new Error(`Failed to add labels to issue #${issueNumber}: ${result.stderr || result.stdout}`);
276
- }
151
+ const issueUrl = createResult.stdout.trim();
152
+ const issueNumber = parseInt(issueUrl.split("/").pop() || "0", 10);
153
+ if (!issueNumber) {
154
+ throw new Error(`Failed to extract issue number from URL: ${issueUrl}`);
277
155
  }
278
- // ==========================================================================
279
- // Time Range Filtering
280
- // ==========================================================================
281
- /**
282
- * List issues within a time range
283
- */
284
- async listIssuesInTimeRange(timeRange, customStart, customEnd) {
285
- const { since, until } = this.calculateTimeRange(timeRange, customStart, customEnd);
286
- // GitHub search query
287
- const query = `repo:${this.fullRepo} is:issue created:${since}..${until}`;
288
- const result = await execFileNoThrow('gh', [
289
- 'search',
290
- 'issues',
291
- query,
292
- '--json',
293
- 'number,title,body,state,url,labels,milestone',
294
- '--limit',
295
- '1000', // Max results
296
- ]);
297
- if (result.status !== 0) {
298
- throw new Error(`Failed to list issues: ${result.stderr || result.stdout}`);
299
- }
300
- const issues = JSON.parse(result.stdout);
301
- return issues.map((issue) => ({
302
- ...issue,
303
- html_url: issue.url,
304
- labels: issue.labels?.map((l) => l.name) || [],
305
- }));
156
+ return await this.getIssue(issueNumber);
157
+ }
158
+ /**
159
+ * Create task issue (linked to epic)
160
+ */
161
+ async createTaskIssue(title, body, epicNumber, milestone, labels = []) {
162
+ const enhancedBody = `**Part of**: #${epicNumber}
163
+
164
+ ${body}`;
165
+ return await this.createEpicIssue(title, enhancedBody, milestone, labels);
166
+ }
167
+ /**
168
+ * Get issue details
169
+ */
170
+ async getIssue(issueNumber) {
171
+ const result = await execFileNoThrow("gh", [
172
+ "issue",
173
+ "view",
174
+ String(issueNumber),
175
+ "--repo",
176
+ this.fullRepo,
177
+ "--json",
178
+ "number,title,body,state,url,labels,milestone"
179
+ ]);
180
+ if (result.status !== 0) {
181
+ throw new Error(
182
+ `Failed to get issue #${issueNumber}: ${result.stderr || result.stdout}`
183
+ );
306
184
  }
307
- /**
308
- * Calculate date range from time range preset
309
- */
310
- calculateTimeRange(timeRange, customStart, customEnd) {
311
- if (timeRange === 'ALL') {
312
- return {
313
- since: '1970-01-01',
314
- until: new Date().toISOString().split('T')[0],
315
- };
316
- }
317
- if (customStart) {
318
- return {
319
- since: customStart,
320
- until: customEnd || new Date().toISOString().split('T')[0],
321
- };
322
- }
323
- const now = new Date();
324
- const since = new Date(now);
325
- // Calculate date based on preset
326
- switch (timeRange) {
327
- case '1W':
328
- since.setDate(now.getDate() - 7);
329
- break;
330
- case '2W':
331
- since.setDate(now.getDate() - 14);
332
- break;
333
- case '1M':
334
- since.setMonth(now.getMonth() - 1);
335
- break;
336
- case '3M':
337
- since.setMonth(now.getMonth() - 3);
338
- break;
339
- case '6M':
340
- since.setMonth(now.getMonth() - 6);
341
- break;
342
- case '1Y':
343
- since.setFullYear(now.getFullYear() - 1);
344
- break;
345
- }
346
- return {
347
- since: since.toISOString().split('T')[0],
348
- until: now.toISOString().split('T')[0],
349
- };
185
+ const issue = JSON.parse(result.stdout);
186
+ return {
187
+ ...issue,
188
+ html_url: issue.url,
189
+ labels: issue.labels?.map((l) => l.name) || []
190
+ };
191
+ }
192
+ /**
193
+ * Update issue body
194
+ */
195
+ async updateIssueBody(issueNumber, newBody) {
196
+ const result = await execFileNoThrow("gh", [
197
+ "issue",
198
+ "edit",
199
+ String(issueNumber),
200
+ "--repo",
201
+ this.fullRepo,
202
+ "--body",
203
+ newBody
204
+ ]);
205
+ if (result.status !== 0) {
206
+ throw new Error(
207
+ `Failed to update issue #${issueNumber}: ${result.stderr || result.stdout}`
208
+ );
350
209
  }
351
- // ==========================================================================
352
- // Rate Limiting
353
- // ==========================================================================
354
- /**
355
- * Check rate limit status
356
- */
357
- async checkRateLimit() {
358
- const result = await execFileNoThrow('gh', [
359
- 'api',
360
- 'rate_limit',
361
- '--jq',
362
- '.rate | {remaining: .remaining, limit: .limit, reset: .reset}',
363
- ]);
364
- if (result.status !== 0) {
365
- throw new Error(`Failed to check rate limit: ${result.stderr || result.stdout}`);
366
- }
367
- const data = JSON.parse(result.stdout);
368
- return {
369
- ...data,
370
- reset: new Date(data.reset * 1000),
371
- };
210
+ }
211
+ /**
212
+ * Close issue
213
+ */
214
+ async closeIssue(issueNumber, comment) {
215
+ if (comment) {
216
+ await this.addComment(issueNumber, comment);
372
217
  }
373
- // ==========================================================================
374
- // Batch Operations
375
- // ==========================================================================
376
- /**
377
- * Batch create issues with rate limit handling
378
- */
379
- async batchCreateIssues(issues, milestone, epicNumber, options = {}) {
380
- const { batchSize = 10, delayMs = 6000 } = options;
381
- const createdIssues = [];
382
- for (let i = 0; i < issues.length; i += batchSize) {
383
- const batch = issues.slice(i, i + batchSize);
384
- console.log(`Creating issues ${i + 1}-${Math.min(i + batchSize, issues.length)} of ${issues.length}...`);
385
- for (const issue of batch) {
386
- try {
387
- const created = epicNumber
388
- ? await this.createTaskIssue(issue.title, issue.body, epicNumber, milestone, issue.labels)
389
- : await this.createEpicIssue(issue.title, issue.body, milestone, issue.labels);
390
- createdIssues.push(created);
391
- }
392
- catch (error) {
393
- console.error(`Failed to create issue "${issue.title}":`, error.message);
394
- }
395
- }
396
- // Delay between batches
397
- if (i + batchSize < issues.length) {
398
- console.log(`Waiting ${delayMs / 1000}s to avoid rate limits...`);
399
- await this.sleep(delayMs);
400
- }
401
- }
402
- return createdIssues;
218
+ const result = await execFileNoThrow("gh", [
219
+ "issue",
220
+ "close",
221
+ String(issueNumber),
222
+ "--repo",
223
+ this.fullRepo
224
+ ]);
225
+ if (result.status !== 0) {
226
+ throw new Error(
227
+ `Failed to close issue #${issueNumber}: ${result.stderr || result.stdout}`
228
+ );
229
+ }
230
+ }
231
+ /**
232
+ * Add comment to issue
233
+ */
234
+ async addComment(issueNumber, comment) {
235
+ const result = await execFileNoThrow("gh", [
236
+ "issue",
237
+ "comment",
238
+ String(issueNumber),
239
+ "--repo",
240
+ this.fullRepo,
241
+ "--body",
242
+ comment
243
+ ]);
244
+ if (result.status !== 0) {
245
+ throw new Error(
246
+ `Failed to add comment to issue #${issueNumber}: ${result.stderr || result.stdout}`
247
+ );
403
248
  }
404
- sleep(ms) {
405
- return new Promise((resolve) => setTimeout(resolve, ms));
249
+ }
250
+ /**
251
+ * Add labels to issue
252
+ */
253
+ async addLabels(issueNumber, labels) {
254
+ if (labels.length === 0) return;
255
+ const args = [
256
+ "issue",
257
+ "edit",
258
+ String(issueNumber),
259
+ "--repo",
260
+ this.fullRepo
261
+ ];
262
+ for (const label of labels) {
263
+ args.push("--add-label", label);
264
+ }
265
+ const result = await execFileNoThrow("gh", args);
266
+ if (result.status !== 0) {
267
+ throw new Error(
268
+ `Failed to add labels to issue #${issueNumber}: ${result.stderr || result.stdout}`
269
+ );
270
+ }
271
+ }
272
+ // ==========================================================================
273
+ // Time Range Filtering
274
+ // ==========================================================================
275
+ /**
276
+ * List issues within a time range
277
+ */
278
+ async listIssuesInTimeRange(timeRange, customStart, customEnd) {
279
+ const { since, until } = this.calculateTimeRange(timeRange, customStart, customEnd);
280
+ const query = `repo:${this.fullRepo} is:issue created:${since}..${until}`;
281
+ const result = await execFileNoThrow("gh", [
282
+ "search",
283
+ "issues",
284
+ query,
285
+ "--json",
286
+ "number,title,body,state,url,labels,milestone",
287
+ "--limit",
288
+ "1000"
289
+ // Max results
290
+ ]);
291
+ if (result.status !== 0) {
292
+ throw new Error(
293
+ `Failed to list issues: ${result.stderr || result.stdout}`
294
+ );
295
+ }
296
+ const issues = JSON.parse(result.stdout);
297
+ return issues.map((issue) => ({
298
+ ...issue,
299
+ html_url: issue.url,
300
+ labels: issue.labels?.map((l) => l.name) || []
301
+ }));
302
+ }
303
+ /**
304
+ * Calculate date range from time range preset
305
+ */
306
+ calculateTimeRange(timeRange, customStart, customEnd) {
307
+ if (timeRange === "ALL") {
308
+ return {
309
+ since: "1970-01-01",
310
+ until: (/* @__PURE__ */ new Date()).toISOString().split("T")[0]
311
+ };
312
+ }
313
+ if (customStart) {
314
+ return {
315
+ since: customStart,
316
+ until: customEnd || (/* @__PURE__ */ new Date()).toISOString().split("T")[0]
317
+ };
318
+ }
319
+ const now = /* @__PURE__ */ new Date();
320
+ const since = new Date(now);
321
+ switch (timeRange) {
322
+ case "1W":
323
+ since.setDate(now.getDate() - 7);
324
+ break;
325
+ case "2W":
326
+ since.setDate(now.getDate() - 14);
327
+ break;
328
+ case "1M":
329
+ since.setMonth(now.getMonth() - 1);
330
+ break;
331
+ case "3M":
332
+ since.setMonth(now.getMonth() - 3);
333
+ break;
334
+ case "6M":
335
+ since.setMonth(now.getMonth() - 6);
336
+ break;
337
+ case "1Y":
338
+ since.setFullYear(now.getFullYear() - 1);
339
+ break;
340
+ }
341
+ return {
342
+ since: since.toISOString().split("T")[0],
343
+ until: now.toISOString().split("T")[0]
344
+ };
345
+ }
346
+ // ==========================================================================
347
+ // Rate Limiting
348
+ // ==========================================================================
349
+ /**
350
+ * Check rate limit status
351
+ */
352
+ async checkRateLimit() {
353
+ const result = await execFileNoThrow("gh", [
354
+ "api",
355
+ "rate_limit",
356
+ "--jq",
357
+ ".rate | {remaining: .remaining, limit: .limit, reset: .reset}"
358
+ ]);
359
+ if (result.status !== 0) {
360
+ throw new Error(
361
+ `Failed to check rate limit: ${result.stderr || result.stdout}`
362
+ );
363
+ }
364
+ const data = JSON.parse(result.stdout);
365
+ return {
366
+ ...data,
367
+ reset: new Date(data.reset * 1e3)
368
+ };
369
+ }
370
+ // ==========================================================================
371
+ // Batch Operations
372
+ // ==========================================================================
373
+ /**
374
+ * Batch create issues with rate limit handling
375
+ */
376
+ async batchCreateIssues(issues, milestone, epicNumber, options = {}) {
377
+ const { batchSize = 10, delayMs = 6e3 } = options;
378
+ const createdIssues = [];
379
+ for (let i = 0; i < issues.length; i += batchSize) {
380
+ const batch = issues.slice(i, i + batchSize);
381
+ console.log(
382
+ `Creating issues ${i + 1}-${Math.min(i + batchSize, issues.length)} of ${issues.length}...`
383
+ );
384
+ for (const issue of batch) {
385
+ try {
386
+ const created = epicNumber ? await this.createTaskIssue(
387
+ issue.title,
388
+ issue.body,
389
+ epicNumber,
390
+ milestone,
391
+ issue.labels
392
+ ) : await this.createEpicIssue(
393
+ issue.title,
394
+ issue.body,
395
+ milestone,
396
+ issue.labels
397
+ );
398
+ createdIssues.push(created);
399
+ } catch (error) {
400
+ console.error(
401
+ `Failed to create issue "${issue.title}":`,
402
+ error.message
403
+ );
404
+ }
405
+ }
406
+ if (i + batchSize < issues.length) {
407
+ console.log(`Waiting ${delayMs / 1e3}s to avoid rate limits...`);
408
+ await this.sleep(delayMs);
409
+ }
406
410
  }
411
+ return createdIssues;
412
+ }
413
+ sleep(ms) {
414
+ return new Promise((resolve) => setTimeout(resolve, ms));
415
+ }
407
416
  }
408
- //# sourceMappingURL=github-client-v2.js.map
417
+ export {
418
+ GitHubClientV2
419
+ };