specweave 0.17.1 → 0.17.2

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 (788) hide show
  1. package/bin/specweave.js +16 -16
  2. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +109 -6
  3. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +1 -1
  4. package/dist/plugins/specweave-github/lib/github-spec-sync.js +435 -49
  5. package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +1 -1
  6. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts +10 -2
  7. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -1
  8. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +28 -14
  9. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
  10. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -1
  11. package/dist/src/cli/helpers/issue-tracker/github.js +10 -1
  12. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
  13. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  14. package/dist/src/cli/helpers/issue-tracker/index.js +20 -0
  15. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  16. package/dist/src/core/project-manager.d.ts +25 -21
  17. package/dist/src/core/project-manager.d.ts.map +1 -1
  18. package/dist/src/core/project-manager.js +41 -51
  19. package/dist/src/core/project-manager.js.map +1 -1
  20. package/dist/src/core/repo-structure/folder-detector.d.ts +19 -0
  21. package/dist/src/core/repo-structure/folder-detector.d.ts.map +1 -0
  22. package/dist/src/core/repo-structure/folder-detector.js +95 -0
  23. package/dist/src/core/repo-structure/folder-detector.js.map +1 -0
  24. package/dist/src/core/repo-structure/repo-structure-manager.d.ts +4 -1
  25. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  26. package/dist/src/core/repo-structure/repo-structure-manager.js +41 -27
  27. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  28. package/dist/src/core/types/spec-metadata.d.ts +34 -1
  29. package/dist/src/core/types/spec-metadata.d.ts.map +1 -1
  30. package/dist/src/core/types/sync-profile.d.ts +30 -0
  31. package/dist/src/core/types/sync-profile.d.ts.map +1 -1
  32. package/dist/src/core/types/sync-profile.js.map +1 -1
  33. package/dist/src/utils/project-validator.d.ts +27 -0
  34. package/dist/src/utils/project-validator.d.ts.map +1 -0
  35. package/dist/src/utils/project-validator.js +68 -0
  36. package/dist/src/utils/project-validator.js.map +1 -0
  37. package/package.json +1 -1
  38. package/plugins/specweave/lib/hooks/git-diff-analyzer.js +129 -213
  39. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +146 -192
  40. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +103 -116
  41. package/plugins/specweave/lib/hooks/reflection-config-loader.js +85 -125
  42. package/plugins/specweave/lib/hooks/reflection-parser.js +267 -385
  43. package/plugins/specweave/lib/hooks/reflection-prompt-builder.js +169 -226
  44. package/plugins/specweave/lib/hooks/reflection-storage.js +223 -297
  45. package/plugins/specweave/lib/hooks/run-self-reflection.js +120 -191
  46. package/plugins/specweave/lib/hooks/translate-file.js +239 -300
  47. package/plugins/specweave/lib/hooks/translate-living-docs.js +88 -144
  48. package/plugins/specweave/lib/hooks/types/reflection-types.js +57 -72
  49. package/plugins/specweave/lib/hooks/update-tasks-md.js +117 -179
  50. package/plugins/specweave-ado/lib/ado-board-resolver.js +135 -205
  51. package/plugins/specweave-ado/lib/ado-client-v2.js +405 -449
  52. package/plugins/specweave-ado/lib/ado-hierarchical-sync.js +223 -335
  53. package/plugins/specweave-ado/lib/ado-spec-commit-sync.js +173 -194
  54. package/plugins/specweave-ado/lib/ado-spec-sync.js +380 -414
  55. package/plugins/specweave-ado/lib/conflict-resolver.ts +1 -1
  56. package/plugins/specweave-ado/lib/project-selector.js +168 -196
  57. package/plugins/specweave-github/MULTI-PROJECT-SYNC-ARCHITECTURE.md +658 -0
  58. package/plugins/specweave-github/SYNC-ARCHITECTURE-FIX-SUMMARY.md +302 -0
  59. package/plugins/specweave-github/hooks/post-task-completion.sh +55 -157
  60. package/plugins/specweave-github/lib/cli-sync-increment-changes.js +9 -20
  61. package/plugins/specweave-github/lib/github-board-resolver.js +69 -115
  62. package/plugins/specweave-github/lib/github-client-v2.js +400 -389
  63. package/plugins/specweave-github/lib/github-client.js +246 -280
  64. package/plugins/specweave-github/lib/github-hierarchical-sync.js +168 -251
  65. package/plugins/specweave-github/lib/github-spec-commit-sync.js +171 -194
  66. package/plugins/specweave-github/lib/github-spec-sync.js +742 -418
  67. package/plugins/specweave-github/lib/github-spec-sync.ts +597 -61
  68. package/plugins/specweave-github/lib/index.js +11 -10
  69. package/plugins/specweave-github/lib/repo-selector.js +174 -201
  70. package/plugins/specweave-github/lib/subtask-sync.js +132 -125
  71. package/plugins/specweave-github/lib/task-parser.js +191 -207
  72. package/plugins/specweave-github/lib/task-sync.js +344 -296
  73. package/plugins/specweave-github/lib/types.js +0 -5
  74. package/plugins/specweave-github/skills/github-sync/SKILL.md +234 -242
  75. package/plugins/specweave-jira/lib/jira-board-resolver.js +50 -79
  76. package/plugins/specweave-jira/lib/jira-hierarchical-sync.js +119 -191
  77. package/plugins/specweave-jira/lib/jira-spec-commit-sync.js +241 -263
  78. package/plugins/specweave-jira/lib/jira-spec-sync.js +366 -405
  79. package/plugins/specweave-jira/lib/project-selector.js +172 -201
  80. package/plugins/specweave-jira/lib/reorganization-detector.js +202 -237
  81. package/plugins/specweave-jira/lib/setup-wizard.js +162 -204
  82. package/dist/adapters/adapter-base.d.ts +0 -71
  83. package/dist/adapters/adapter-base.d.ts.map +0 -1
  84. package/dist/adapters/adapter-base.js +0 -139
  85. package/dist/adapters/adapter-base.js.map +0 -1
  86. package/dist/adapters/adapter-interface.d.ts +0 -149
  87. package/dist/adapters/adapter-interface.d.ts.map +0 -1
  88. package/dist/adapters/adapter-interface.js +0 -8
  89. package/dist/adapters/adapter-interface.js.map +0 -1
  90. package/dist/adapters/adapter-loader.d.ts +0 -91
  91. package/dist/adapters/adapter-loader.d.ts.map +0 -1
  92. package/dist/adapters/adapter-loader.js +0 -238
  93. package/dist/adapters/adapter-loader.js.map +0 -1
  94. package/dist/adapters/agents-md-generator.d.ts +0 -48
  95. package/dist/adapters/agents-md-generator.d.ts.map +0 -1
  96. package/dist/adapters/agents-md-generator.js +0 -193
  97. package/dist/adapters/agents-md-generator.js.map +0 -1
  98. package/dist/adapters/claude/adapter.d.ts +0 -128
  99. package/dist/adapters/claude/adapter.d.ts.map +0 -1
  100. package/dist/adapters/claude/adapter.js +0 -415
  101. package/dist/adapters/claude/adapter.js.map +0 -1
  102. package/dist/adapters/claude-md-generator.d.ts +0 -78
  103. package/dist/adapters/claude-md-generator.d.ts.map +0 -1
  104. package/dist/adapters/claude-md-generator.js +0 -307
  105. package/dist/adapters/claude-md-generator.js.map +0 -1
  106. package/dist/adapters/codex/adapter.d.ts +0 -50
  107. package/dist/adapters/codex/adapter.d.ts.map +0 -1
  108. package/dist/adapters/codex/adapter.js +0 -316
  109. package/dist/adapters/codex/adapter.js.map +0 -1
  110. package/dist/adapters/cursor/adapter.d.ts +0 -98
  111. package/dist/adapters/cursor/adapter.d.ts.map +0 -1
  112. package/dist/adapters/cursor/adapter.js +0 -406
  113. package/dist/adapters/cursor/adapter.js.map +0 -1
  114. package/dist/adapters/doc-generator.d.ts +0 -69
  115. package/dist/adapters/doc-generator.d.ts.map +0 -1
  116. package/dist/adapters/doc-generator.js +0 -247
  117. package/dist/adapters/doc-generator.js.map +0 -1
  118. package/dist/adapters/gemini/adapter.d.ts +0 -50
  119. package/dist/adapters/gemini/adapter.d.ts.map +0 -1
  120. package/dist/adapters/gemini/adapter.js +0 -281
  121. package/dist/adapters/gemini/adapter.js.map +0 -1
  122. package/dist/adapters/generic/adapter.d.ts +0 -86
  123. package/dist/adapters/generic/adapter.d.ts.map +0 -1
  124. package/dist/adapters/generic/adapter.js +0 -338
  125. package/dist/adapters/generic/adapter.js.map +0 -1
  126. package/dist/cli/commands/abandon.d.ts +0 -13
  127. package/dist/cli/commands/abandon.d.ts.map +0 -1
  128. package/dist/cli/commands/abandon.js +0 -15
  129. package/dist/cli/commands/abandon.js.map +0 -1
  130. package/dist/cli/commands/check-discipline.d.ts +0 -16
  131. package/dist/cli/commands/check-discipline.d.ts.map +0 -1
  132. package/dist/cli/commands/check-discipline.js +0 -79
  133. package/dist/cli/commands/check-discipline.js.map +0 -1
  134. package/dist/cli/commands/import-docs.d.ts +0 -21
  135. package/dist/cli/commands/import-docs.d.ts.map +0 -1
  136. package/dist/cli/commands/import-docs.js +0 -146
  137. package/dist/cli/commands/import-docs.js.map +0 -1
  138. package/dist/cli/commands/init-multiproject.d.ts +0 -11
  139. package/dist/cli/commands/init-multiproject.d.ts.map +0 -1
  140. package/dist/cli/commands/init-multiproject.js +0 -202
  141. package/dist/cli/commands/init-multiproject.js.map +0 -1
  142. package/dist/cli/commands/init.d.ts +0 -10
  143. package/dist/cli/commands/init.d.ts.map +0 -1
  144. package/dist/cli/commands/init.js +0 -1328
  145. package/dist/cli/commands/init.js.map +0 -1
  146. package/dist/cli/commands/install.d.ts +0 -9
  147. package/dist/cli/commands/install.d.ts.map +0 -1
  148. package/dist/cli/commands/install.js +0 -127
  149. package/dist/cli/commands/install.js.map +0 -1
  150. package/dist/cli/commands/list.d.ts +0 -8
  151. package/dist/cli/commands/list.d.ts.map +0 -1
  152. package/dist/cli/commands/list.js +0 -119
  153. package/dist/cli/commands/list.js.map +0 -1
  154. package/dist/cli/commands/migrate-to-multiproject.d.ts +0 -37
  155. package/dist/cli/commands/migrate-to-multiproject.d.ts.map +0 -1
  156. package/dist/cli/commands/migrate-to-multiproject.js +0 -189
  157. package/dist/cli/commands/migrate-to-multiproject.js.map +0 -1
  158. package/dist/cli/commands/migrate-to-profiles.d.ts +0 -25
  159. package/dist/cli/commands/migrate-to-profiles.d.ts.map +0 -1
  160. package/dist/cli/commands/migrate-to-profiles.js +0 -348
  161. package/dist/cli/commands/migrate-to-profiles.js.map +0 -1
  162. package/dist/cli/commands/pause.d.ts +0 -13
  163. package/dist/cli/commands/pause.d.ts.map +0 -1
  164. package/dist/cli/commands/pause.js +0 -15
  165. package/dist/cli/commands/pause.js.map +0 -1
  166. package/dist/cli/commands/qa.d.ts +0 -54
  167. package/dist/cli/commands/qa.d.ts.map +0 -1
  168. package/dist/cli/commands/qa.js +0 -98
  169. package/dist/cli/commands/qa.js.map +0 -1
  170. package/dist/cli/commands/resume.d.ts +0 -12
  171. package/dist/cli/commands/resume.d.ts.map +0 -1
  172. package/dist/cli/commands/resume.js +0 -14
  173. package/dist/cli/commands/resume.js.map +0 -1
  174. package/dist/cli/commands/revert-wip-limit.js +0 -60
  175. package/dist/cli/commands/status-line.d.ts +0 -14
  176. package/dist/cli/commands/status-line.d.ts.map +0 -1
  177. package/dist/cli/commands/status-line.js +0 -75
  178. package/dist/cli/commands/status-line.js.map +0 -1
  179. package/dist/cli/commands/status.d.ts +0 -12
  180. package/dist/cli/commands/status.d.ts.map +0 -1
  181. package/dist/cli/commands/status.js +0 -23
  182. package/dist/cli/commands/status.js.map +0 -1
  183. package/dist/cli/commands/switch-project.d.ts +0 -13
  184. package/dist/cli/commands/switch-project.d.ts.map +0 -1
  185. package/dist/cli/commands/switch-project.js +0 -91
  186. package/dist/cli/commands/switch-project.js.map +0 -1
  187. package/dist/cli/commands/sync-spec-commits.d.ts +0 -9
  188. package/dist/cli/commands/sync-spec-commits.d.ts.map +0 -1
  189. package/dist/cli/commands/sync-spec-commits.js +0 -186
  190. package/dist/cli/commands/sync-spec-commits.js.map +0 -1
  191. package/dist/cli/commands/validate-jira.d.ts +0 -35
  192. package/dist/cli/commands/validate-jira.d.ts.map +0 -1
  193. package/dist/cli/commands/validate-jira.js +0 -112
  194. package/dist/cli/commands/validate-jira.js.map +0 -1
  195. package/dist/cli/commands/validate-plugins.d.ts +0 -41
  196. package/dist/cli/commands/validate-plugins.d.ts.map +0 -1
  197. package/dist/cli/commands/validate-plugins.js +0 -171
  198. package/dist/cli/commands/validate-plugins.js.map +0 -1
  199. package/dist/cli/helpers/github/increment-profile-selector.d.ts +0 -47
  200. package/dist/cli/helpers/github/increment-profile-selector.d.ts.map +0 -1
  201. package/dist/cli/helpers/github/increment-profile-selector.js +0 -186
  202. package/dist/cli/helpers/github/increment-profile-selector.js.map +0 -1
  203. package/dist/cli/helpers/github/profile-manager.d.ts +0 -119
  204. package/dist/cli/helpers/github/profile-manager.d.ts.map +0 -1
  205. package/dist/cli/helpers/github/profile-manager.js +0 -311
  206. package/dist/cli/helpers/github/profile-manager.js.map +0 -1
  207. package/dist/cli/helpers/issue-tracker/ado.d.ts +0 -57
  208. package/dist/cli/helpers/issue-tracker/ado.d.ts.map +0 -1
  209. package/dist/cli/helpers/issue-tracker/ado.js +0 -243
  210. package/dist/cli/helpers/issue-tracker/ado.js.map +0 -1
  211. package/dist/cli/helpers/issue-tracker/github-multi-repo.d.ts +0 -86
  212. package/dist/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +0 -1
  213. package/dist/cli/helpers/issue-tracker/github-multi-repo.js +0 -417
  214. package/dist/cli/helpers/issue-tracker/github-multi-repo.js.map +0 -1
  215. package/dist/cli/helpers/issue-tracker/github.d.ts +0 -80
  216. package/dist/cli/helpers/issue-tracker/github.d.ts.map +0 -1
  217. package/dist/cli/helpers/issue-tracker/github.js +0 -324
  218. package/dist/cli/helpers/issue-tracker/github.js.map +0 -1
  219. package/dist/cli/helpers/issue-tracker/index.d.ts +0 -22
  220. package/dist/cli/helpers/issue-tracker/index.d.ts.map +0 -1
  221. package/dist/cli/helpers/issue-tracker/index.js +0 -562
  222. package/dist/cli/helpers/issue-tracker/index.js.map +0 -1
  223. package/dist/cli/helpers/issue-tracker/jira.d.ts +0 -61
  224. package/dist/cli/helpers/issue-tracker/jira.d.ts.map +0 -1
  225. package/dist/cli/helpers/issue-tracker/jira.js +0 -404
  226. package/dist/cli/helpers/issue-tracker/jira.js.map +0 -1
  227. package/dist/cli/helpers/issue-tracker/types.d.ts +0 -108
  228. package/dist/cli/helpers/issue-tracker/types.d.ts.map +0 -1
  229. package/dist/cli/helpers/issue-tracker/types.js +0 -16
  230. package/dist/cli/helpers/issue-tracker/types.js.map +0 -1
  231. package/dist/cli/helpers/issue-tracker/utils.d.ts +0 -120
  232. package/dist/cli/helpers/issue-tracker/utils.d.ts.map +0 -1
  233. package/dist/cli/helpers/issue-tracker/utils.js +0 -293
  234. package/dist/cli/helpers/issue-tracker/utils.js.map +0 -1
  235. package/dist/core/agent-model-manager.d.ts +0 -52
  236. package/dist/core/agent-model-manager.d.ts.map +0 -1
  237. package/dist/core/agent-model-manager.js +0 -120
  238. package/dist/core/agent-model-manager.js.map +0 -1
  239. package/dist/core/brownfield/analyzer.d.ts +0 -86
  240. package/dist/core/brownfield/analyzer.d.ts.map +0 -1
  241. package/dist/core/brownfield/analyzer.js +0 -365
  242. package/dist/core/brownfield/analyzer.js.map +0 -1
  243. package/dist/core/brownfield/importer.d.ts +0 -76
  244. package/dist/core/brownfield/importer.d.ts.map +0 -1
  245. package/dist/core/brownfield/importer.js +0 -287
  246. package/dist/core/brownfield/importer.js.map +0 -1
  247. package/dist/core/comment-builder.d.ts +0 -57
  248. package/dist/core/comment-builder.d.ts.map +0 -1
  249. package/dist/core/comment-builder.js +0 -239
  250. package/dist/core/comment-builder.js.map +0 -1
  251. package/dist/core/config-manager.d.ts +0 -47
  252. package/dist/core/config-manager.d.ts.map +0 -1
  253. package/dist/core/config-manager.js +0 -136
  254. package/dist/core/config-manager.js.map +0 -1
  255. package/dist/core/cost-tracker.d.ts +0 -108
  256. package/dist/core/cost-tracker.d.ts.map +0 -1
  257. package/dist/core/cost-tracker.js +0 -281
  258. package/dist/core/cost-tracker.js.map +0 -1
  259. package/dist/core/credentials-manager.d.ts +0 -107
  260. package/dist/core/credentials-manager.d.ts.map +0 -1
  261. package/dist/core/credentials-manager.js +0 -457
  262. package/dist/core/credentials-manager.js.map +0 -1
  263. package/dist/core/i18n/language-detector.d.ts +0 -29
  264. package/dist/core/i18n/language-detector.d.ts.map +0 -1
  265. package/dist/core/i18n/language-detector.js +0 -143
  266. package/dist/core/i18n/language-detector.js.map +0 -1
  267. package/dist/core/i18n/language-manager.d.ts +0 -101
  268. package/dist/core/i18n/language-manager.d.ts.map +0 -1
  269. package/dist/core/i18n/language-manager.js +0 -232
  270. package/dist/core/i18n/language-manager.js.map +0 -1
  271. package/dist/core/i18n/language-registry.d.ts +0 -44
  272. package/dist/core/i18n/language-registry.d.ts.map +0 -1
  273. package/dist/core/i18n/language-registry.js +0 -234
  274. package/dist/core/i18n/language-registry.js.map +0 -1
  275. package/dist/core/i18n/locale-manager.d.ts +0 -62
  276. package/dist/core/i18n/locale-manager.d.ts.map +0 -1
  277. package/dist/core/i18n/locale-manager.js +0 -137
  278. package/dist/core/i18n/locale-manager.js.map +0 -1
  279. package/dist/core/i18n/system-prompt-injector.d.ts +0 -33
  280. package/dist/core/i18n/system-prompt-injector.d.ts.map +0 -1
  281. package/dist/core/i18n/system-prompt-injector.js +0 -131
  282. package/dist/core/i18n/system-prompt-injector.js.map +0 -1
  283. package/dist/core/i18n/types.d.ts +0 -151
  284. package/dist/core/i18n/types.d.ts.map +0 -1
  285. package/dist/core/i18n/types.js +0 -11
  286. package/dist/core/i18n/types.js.map +0 -1
  287. package/dist/core/increment/active-increment-manager.d.ts +0 -79
  288. package/dist/core/increment/active-increment-manager.d.ts.map +0 -1
  289. package/dist/core/increment/active-increment-manager.js +0 -153
  290. package/dist/core/increment/active-increment-manager.js.map +0 -1
  291. package/dist/core/increment/discipline-checker.d.ts +0 -60
  292. package/dist/core/increment/discipline-checker.d.ts.map +0 -1
  293. package/dist/core/increment/discipline-checker.js +0 -274
  294. package/dist/core/increment/discipline-checker.js.map +0 -1
  295. package/dist/core/increment/limits.d.ts +0 -68
  296. package/dist/core/increment/limits.d.ts.map +0 -1
  297. package/dist/core/increment/limits.js +0 -224
  298. package/dist/core/increment/limits.js.map +0 -1
  299. package/dist/core/increment/metadata-manager.d.ts +0 -116
  300. package/dist/core/increment/metadata-manager.d.ts.map +0 -1
  301. package/dist/core/increment/metadata-manager.js.map +0 -1
  302. package/dist/core/increment/metadata-validator.d.ts +0 -33
  303. package/dist/core/increment/metadata-validator.d.ts.map +0 -1
  304. package/dist/core/increment/metadata-validator.js +0 -147
  305. package/dist/core/increment/metadata-validator.js.map +0 -1
  306. package/dist/core/increment/status-commands.d.ts +0 -43
  307. package/dist/core/increment/status-commands.d.ts.map +0 -1
  308. package/dist/core/increment/status-commands.js +0 -277
  309. package/dist/core/increment/status-commands.js.map +0 -1
  310. package/dist/core/increment/types.d.ts +0 -88
  311. package/dist/core/increment/types.d.ts.map +0 -1
  312. package/dist/core/increment/types.js +0 -8
  313. package/dist/core/increment/types.js.map +0 -1
  314. package/dist/core/increment-status.d.ts +0 -72
  315. package/dist/core/increment-status.d.ts.map +0 -1
  316. package/dist/core/increment-status.js +0 -227
  317. package/dist/core/increment-status.js.map +0 -1
  318. package/dist/core/model-selector.d.ts +0 -57
  319. package/dist/core/model-selector.d.ts.map +0 -1
  320. package/dist/core/model-selector.js +0 -115
  321. package/dist/core/model-selector.js.map +0 -1
  322. package/dist/core/phase-detector.d.ts +0 -62
  323. package/dist/core/phase-detector.d.ts.map +0 -1
  324. package/dist/core/phase-detector.js +0 -229
  325. package/dist/core/phase-detector.js.map +0 -1
  326. package/dist/core/plugin-loader.d.ts +0 -131
  327. package/dist/core/plugin-loader.d.ts.map +0 -1
  328. package/dist/core/plugin-loader.js +0 -421
  329. package/dist/core/plugin-loader.js.map +0 -1
  330. package/dist/core/project-manager.d.ts +0 -127
  331. package/dist/core/project-manager.d.ts.map +0 -1
  332. package/dist/core/project-manager.js +0 -524
  333. package/dist/core/project-manager.js.map +0 -1
  334. package/dist/core/project-structure-detector.d.ts +0 -92
  335. package/dist/core/project-structure-detector.d.ts.map +0 -1
  336. package/dist/core/project-structure-detector.js +0 -289
  337. package/dist/core/project-structure-detector.js.map +0 -1
  338. package/dist/core/qa/qa-runner.d.ts +0 -16
  339. package/dist/core/qa/qa-runner.d.ts.map +0 -1
  340. package/dist/core/qa/qa-runner.js +0 -422
  341. package/dist/core/qa/qa-runner.js.map +0 -1
  342. package/dist/core/qa/quality-gate-decider.d.ts +0 -53
  343. package/dist/core/qa/quality-gate-decider.d.ts.map +0 -1
  344. package/dist/core/qa/quality-gate-decider.js +0 -268
  345. package/dist/core/qa/quality-gate-decider.js.map +0 -1
  346. package/dist/core/qa/risk-calculator.d.ts +0 -126
  347. package/dist/core/qa/risk-calculator.d.ts.map +0 -1
  348. package/dist/core/qa/risk-calculator.js +0 -247
  349. package/dist/core/qa/risk-calculator.js.map +0 -1
  350. package/dist/core/qa/types.d.ts +0 -315
  351. package/dist/core/qa/types.d.ts.map +0 -1
  352. package/dist/core/qa/types.js +0 -8
  353. package/dist/core/qa/types.js.map +0 -1
  354. package/dist/core/repo-structure/repo-structure-manager.d.ts +0 -82
  355. package/dist/core/repo-structure/repo-structure-manager.d.ts.map +0 -1
  356. package/dist/core/repo-structure/repo-structure-manager.js +0 -581
  357. package/dist/core/repo-structure/repo-structure-manager.js.map +0 -1
  358. package/dist/core/rfc-generator-v2.d.ts +0 -149
  359. package/dist/core/rfc-generator-v2.d.ts.map +0 -1
  360. package/dist/core/rfc-generator-v2.js +0 -399
  361. package/dist/core/rfc-generator-v2.js.map +0 -1
  362. package/dist/core/spec-task-mapper.d.ts +0 -71
  363. package/dist/core/spec-task-mapper.d.ts.map +0 -1
  364. package/dist/core/spec-task-mapper.js +0 -208
  365. package/dist/core/spec-task-mapper.js.map +0 -1
  366. package/dist/core/specs/spec-metadata-manager.d.ts +0 -70
  367. package/dist/core/specs/spec-metadata-manager.d.ts.map +0 -1
  368. package/dist/core/specs/spec-metadata-manager.js +0 -371
  369. package/dist/core/specs/spec-metadata-manager.js.map +0 -1
  370. package/dist/core/specs/spec-parser.d.ts +0 -66
  371. package/dist/core/specs/spec-parser.d.ts.map +0 -1
  372. package/dist/core/specs/spec-parser.js +0 -276
  373. package/dist/core/specs/spec-parser.js.map +0 -1
  374. package/dist/core/status-line/status-line-manager.d.ts +0 -62
  375. package/dist/core/status-line/status-line-manager.d.ts.map +0 -1
  376. package/dist/core/status-line/status-line-manager.js +0 -169
  377. package/dist/core/status-line/status-line-manager.js.map +0 -1
  378. package/dist/core/status-line/types.d.ts +0 -50
  379. package/dist/core/status-line/types.d.ts.map +0 -1
  380. package/dist/core/status-line/types.js +0 -17
  381. package/dist/core/status-line/types.js.map +0 -1
  382. package/dist/core/sync/bidirectional-engine.d.ts +0 -110
  383. package/dist/core/sync/bidirectional-engine.d.ts.map +0 -1
  384. package/dist/core/sync/bidirectional-engine.js +0 -356
  385. package/dist/core/sync/bidirectional-engine.js.map +0 -1
  386. package/dist/core/sync/folder-mapper.d.ts +0 -71
  387. package/dist/core/sync/folder-mapper.d.ts.map +0 -1
  388. package/dist/core/sync/folder-mapper.js +0 -203
  389. package/dist/core/sync/folder-mapper.js.map +0 -1
  390. package/dist/core/sync/profile-manager.d.ts +0 -72
  391. package/dist/core/sync/profile-manager.d.ts.map +0 -1
  392. package/dist/core/sync/profile-manager.js +0 -338
  393. package/dist/core/sync/profile-manager.js.map +0 -1
  394. package/dist/core/sync/profile-selector.d.ts +0 -52
  395. package/dist/core/sync/profile-selector.d.ts.map +0 -1
  396. package/dist/core/sync/profile-selector.js +0 -179
  397. package/dist/core/sync/profile-selector.js.map +0 -1
  398. package/dist/core/sync/profile-validator.d.ts +0 -52
  399. package/dist/core/sync/profile-validator.d.ts.map +0 -1
  400. package/dist/core/sync/profile-validator.js +0 -170
  401. package/dist/core/sync/profile-validator.js.map +0 -1
  402. package/dist/core/sync/project-context.d.ts +0 -81
  403. package/dist/core/sync/project-context.d.ts.map +0 -1
  404. package/dist/core/sync/project-context.js +0 -354
  405. package/dist/core/sync/project-context.js.map +0 -1
  406. package/dist/core/sync/rate-limiter.d.ts +0 -116
  407. package/dist/core/sync/rate-limiter.d.ts.map +0 -1
  408. package/dist/core/sync/rate-limiter.js +0 -308
  409. package/dist/core/sync/rate-limiter.js.map +0 -1
  410. package/dist/core/sync/time-range-selector.d.ts +0 -48
  411. package/dist/core/sync/time-range-selector.d.ts.map +0 -1
  412. package/dist/core/sync/time-range-selector.js +0 -224
  413. package/dist/core/sync/time-range-selector.js.map +0 -1
  414. package/dist/core/types/config.d.ts +0 -90
  415. package/dist/core/types/config.d.ts.map +0 -1
  416. package/dist/core/types/config.js +0 -44
  417. package/dist/core/types/config.js.map +0 -1
  418. package/dist/core/types/increment-metadata.d.ts +0 -120
  419. package/dist/core/types/increment-metadata.d.ts.map +0 -1
  420. package/dist/core/types/increment-metadata.js +0 -138
  421. package/dist/core/types/increment-metadata.js.map +0 -1
  422. package/dist/core/types/plugin.d.ts +0 -283
  423. package/dist/core/types/plugin.d.ts.map +0 -1
  424. package/dist/core/types/plugin.js +0 -49
  425. package/dist/core/types/plugin.js.map +0 -1
  426. package/dist/core/types/spec-metadata.d.ts +0 -229
  427. package/dist/core/types/spec-metadata.d.ts.map +0 -1
  428. package/dist/core/types/spec-metadata.js +0 -14
  429. package/dist/core/types/spec-metadata.js.map +0 -1
  430. package/dist/core/types/sync-profile.d.ts +0 -349
  431. package/dist/core/types/sync-profile.d.ts.map +0 -1
  432. package/dist/core/types/sync-profile.js +0 -79
  433. package/dist/core/types/sync-profile.js.map +0 -1
  434. package/dist/hooks/lib/git-diff-analyzer.d.ts +0 -89
  435. package/dist/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  436. package/dist/hooks/lib/git-diff-analyzer.js +0 -226
  437. package/dist/hooks/lib/git-diff-analyzer.js.map +0 -1
  438. package/dist/hooks/lib/invoke-translator-skill.d.ts +0 -60
  439. package/dist/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  440. package/dist/hooks/lib/invoke-translator-skill.js +0 -201
  441. package/dist/hooks/lib/invoke-translator-skill.js.map +0 -1
  442. package/dist/hooks/lib/prepare-reflection-context.d.ts +0 -42
  443. package/dist/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  444. package/dist/hooks/lib/prepare-reflection-context.js +0 -123
  445. package/dist/hooks/lib/prepare-reflection-context.js.map +0 -1
  446. package/dist/hooks/lib/reflection-config-loader.d.ts +0 -45
  447. package/dist/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  448. package/dist/hooks/lib/reflection-config-loader.js +0 -132
  449. package/dist/hooks/lib/reflection-config-loader.js.map +0 -1
  450. package/dist/hooks/lib/reflection-parser.d.ts +0 -33
  451. package/dist/hooks/lib/reflection-parser.d.ts.map +0 -1
  452. package/dist/hooks/lib/reflection-parser.js +0 -419
  453. package/dist/hooks/lib/reflection-parser.js.map +0 -1
  454. package/dist/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  455. package/dist/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  456. package/dist/hooks/lib/reflection-prompt-builder.js +0 -239
  457. package/dist/hooks/lib/reflection-prompt-builder.js.map +0 -1
  458. package/dist/hooks/lib/reflection-storage.d.ts +0 -64
  459. package/dist/hooks/lib/reflection-storage.d.ts.map +0 -1
  460. package/dist/hooks/lib/reflection-storage.js +0 -305
  461. package/dist/hooks/lib/reflection-storage.js.map +0 -1
  462. package/dist/hooks/lib/run-self-reflection.d.ts +0 -43
  463. package/dist/hooks/lib/run-self-reflection.d.ts.map +0 -1
  464. package/dist/hooks/lib/run-self-reflection.js +0 -203
  465. package/dist/hooks/lib/run-self-reflection.js.map +0 -1
  466. package/dist/hooks/lib/sync-living-docs.d.ts +0 -27
  467. package/dist/hooks/lib/sync-living-docs.d.ts.map +0 -1
  468. package/dist/hooks/lib/sync-living-docs.js +0 -116
  469. package/dist/hooks/lib/sync-living-docs.js.map +0 -1
  470. package/dist/hooks/lib/translate-file.d.ts +0 -59
  471. package/dist/hooks/lib/translate-file.d.ts.map +0 -1
  472. package/dist/hooks/lib/translate-file.js +0 -350
  473. package/dist/hooks/lib/translate-file.js.map +0 -1
  474. package/dist/hooks/lib/translate-living-docs.d.ts +0 -13
  475. package/dist/hooks/lib/translate-living-docs.d.ts.map +0 -1
  476. package/dist/hooks/lib/translate-living-docs.js +0 -175
  477. package/dist/hooks/lib/translate-living-docs.js.map +0 -1
  478. package/dist/hooks/lib/types/reflection-types.d.ts +0 -164
  479. package/dist/hooks/lib/types/reflection-types.d.ts.map +0 -1
  480. package/dist/hooks/lib/types/reflection-types.js +0 -73
  481. package/dist/hooks/lib/types/reflection-types.js.map +0 -1
  482. package/dist/hooks/lib/update-tasks-md.d.ts +0 -29
  483. package/dist/hooks/lib/update-tasks-md.d.ts.map +0 -1
  484. package/dist/hooks/lib/update-tasks-md.js +0 -203
  485. package/dist/hooks/lib/update-tasks-md.js.map +0 -1
  486. package/dist/integrations/ado/ado-client.d.ts +0 -127
  487. package/dist/integrations/ado/ado-client.d.ts.map +0 -1
  488. package/dist/integrations/ado/ado-client.js +0 -416
  489. package/dist/integrations/ado/ado-client.js.map +0 -1
  490. package/dist/integrations/jira/jira-client.d.ts +0 -139
  491. package/dist/integrations/jira/jira-client.d.ts.map +0 -1
  492. package/dist/integrations/jira/jira-client.js +0 -386
  493. package/dist/integrations/jira/jira-client.js.map +0 -1
  494. package/dist/integrations/jira/jira-incremental-mapper.d.ts +0 -75
  495. package/dist/integrations/jira/jira-incremental-mapper.d.ts.map +0 -1
  496. package/dist/integrations/jira/jira-incremental-mapper.js +0 -474
  497. package/dist/integrations/jira/jira-incremental-mapper.js.map +0 -1
  498. package/dist/integrations/jira/jira-mapper.d.ts +0 -105
  499. package/dist/integrations/jira/jira-mapper.d.ts.map +0 -1
  500. package/dist/integrations/jira/jira-mapper.js +0 -494
  501. package/dist/integrations/jira/jira-mapper.js.map +0 -1
  502. package/dist/metrics/calculators/change-failure-rate.d.ts +0 -22
  503. package/dist/metrics/calculators/change-failure-rate.d.ts.map +0 -1
  504. package/dist/metrics/calculators/change-failure-rate.js +0 -70
  505. package/dist/metrics/calculators/change-failure-rate.js.map +0 -1
  506. package/dist/metrics/calculators/deployment-frequency.d.ts +0 -20
  507. package/dist/metrics/calculators/deployment-frequency.d.ts.map +0 -1
  508. package/dist/metrics/calculators/deployment-frequency.js +0 -61
  509. package/dist/metrics/calculators/deployment-frequency.js.map +0 -1
  510. package/dist/metrics/calculators/lead-time.d.ts +0 -22
  511. package/dist/metrics/calculators/lead-time.d.ts.map +0 -1
  512. package/dist/metrics/calculators/lead-time.js +0 -82
  513. package/dist/metrics/calculators/lead-time.js.map +0 -1
  514. package/dist/metrics/calculators/mttr.d.ts +0 -21
  515. package/dist/metrics/calculators/mttr.d.ts.map +0 -1
  516. package/dist/metrics/calculators/mttr.js +0 -60
  517. package/dist/metrics/calculators/mttr.js.map +0 -1
  518. package/dist/metrics/dora-calculator.d.ts +0 -28
  519. package/dist/metrics/dora-calculator.d.ts.map +0 -1
  520. package/dist/metrics/dora-calculator.js +0 -117
  521. package/dist/metrics/dora-calculator.js.map +0 -1
  522. package/dist/metrics/github-client.d.ts +0 -51
  523. package/dist/metrics/github-client.d.ts.map +0 -1
  524. package/dist/metrics/github-client.js +0 -133
  525. package/dist/metrics/github-client.js.map +0 -1
  526. package/dist/metrics/report-generator.d.ts +0 -17
  527. package/dist/metrics/report-generator.d.ts.map +0 -1
  528. package/dist/metrics/report-generator.js +0 -403
  529. package/dist/metrics/report-generator.js.map +0 -1
  530. package/dist/metrics/types.d.ts +0 -112
  531. package/dist/metrics/types.d.ts.map +0 -1
  532. package/dist/metrics/types.js +0 -10
  533. package/dist/metrics/types.js.map +0 -1
  534. package/dist/metrics/utils/percentile.d.ts +0 -25
  535. package/dist/metrics/utils/percentile.d.ts.map +0 -1
  536. package/dist/metrics/utils/percentile.js +0 -46
  537. package/dist/metrics/utils/percentile.js.map +0 -1
  538. package/dist/metrics/utils/tier-classifier.d.ts +0 -61
  539. package/dist/metrics/utils/tier-classifier.d.ts.map +0 -1
  540. package/dist/metrics/utils/tier-classifier.js +0 -100
  541. package/dist/metrics/utils/tier-classifier.js.map +0 -1
  542. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +0 -94
  543. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +0 -1
  544. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +0 -219
  545. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +0 -1
  546. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +0 -40
  547. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +0 -1
  548. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +0 -370
  549. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +0 -1
  550. package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.d.ts +0 -149
  551. package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.d.ts.map +0 -1
  552. package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.js +0 -517
  553. package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.js.map +0 -1
  554. package/dist/plugins/specweave-ado/lib/ado-project-detector.d.ts +0 -72
  555. package/dist/plugins/specweave-ado/lib/ado-project-detector.d.ts.map +0 -1
  556. package/dist/plugins/specweave-ado/lib/ado-project-detector.js +0 -416
  557. package/dist/plugins/specweave-ado/lib/ado-project-detector.js.map +0 -1
  558. package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts +0 -99
  559. package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts.map +0 -1
  560. package/dist/plugins/specweave-ado/lib/conflict-resolver.js +0 -331
  561. package/dist/plugins/specweave-ado/lib/conflict-resolver.js.map +0 -1
  562. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +0 -42
  563. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +0 -1
  564. package/dist/plugins/specweave-ado/lib/project-selector.js +0 -211
  565. package/dist/plugins/specweave-ado/lib/project-selector.js.map +0 -1
  566. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +0 -54
  567. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +0 -1
  568. package/dist/plugins/specweave-github/lib/github-board-resolver.js +0 -122
  569. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +0 -1
  570. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +0 -29
  571. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +0 -1
  572. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +0 -268
  573. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +0 -1
  574. package/dist/plugins/specweave-github/lib/github-multi-project-sync.d.ts +0 -126
  575. package/dist/plugins/specweave-github/lib/github-multi-project-sync.d.ts.map +0 -1
  576. package/dist/plugins/specweave-github/lib/github-multi-project-sync.js +0 -420
  577. package/dist/plugins/specweave-github/lib/github-multi-project-sync.js.map +0 -1
  578. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +0 -49
  579. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +0 -1
  580. package/dist/plugins/specweave-github/lib/repo-selector.js +0 -216
  581. package/dist/plugins/specweave-github/lib/repo-selector.js.map +0 -1
  582. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +0 -50
  583. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +0 -1
  584. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +0 -84
  585. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +0 -1
  586. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +0 -33
  587. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +0 -1
  588. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +0 -206
  589. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +0 -1
  590. package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.d.ts +0 -95
  591. package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.d.ts.map +0 -1
  592. package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.js +0 -301
  593. package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.js.map +0 -1
  594. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +0 -42
  595. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +0 -1
  596. package/dist/plugins/specweave-jira/lib/project-selector.js +0 -216
  597. package/dist/plugins/specweave-jira/lib/project-selector.js.map +0 -1
  598. package/dist/project-mapper.js +0 -272
  599. package/dist/scripts/split-spec-by-project.js +0 -105
  600. package/dist/spec-splitter.js +0 -283
  601. package/dist/src/core/agent-model-manager.d.ts +0 -52
  602. package/dist/src/core/agent-model-manager.d.ts.map +0 -1
  603. package/dist/src/core/agent-model-manager.js +0 -120
  604. package/dist/src/core/agent-model-manager.js.map +0 -1
  605. package/dist/src/core/model-selector.d.ts +0 -57
  606. package/dist/src/core/model-selector.d.ts.map +0 -1
  607. package/dist/src/core/model-selector.js +0 -115
  608. package/dist/src/core/model-selector.js.map +0 -1
  609. package/dist/src/core/phase-detector.d.ts +0 -62
  610. package/dist/src/core/phase-detector.d.ts.map +0 -1
  611. package/dist/src/core/phase-detector.js +0 -229
  612. package/dist/src/core/phase-detector.js.map +0 -1
  613. package/dist/src/hooks/lib/git-diff-analyzer.d.ts +0 -89
  614. package/dist/src/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  615. package/dist/src/hooks/lib/git-diff-analyzer.js +0 -226
  616. package/dist/src/hooks/lib/git-diff-analyzer.js.map +0 -1
  617. package/dist/src/hooks/lib/invoke-translator-skill.d.ts +0 -60
  618. package/dist/src/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  619. package/dist/src/hooks/lib/invoke-translator-skill.js +0 -201
  620. package/dist/src/hooks/lib/invoke-translator-skill.js.map +0 -1
  621. package/dist/src/hooks/lib/prepare-reflection-context.d.ts +0 -42
  622. package/dist/src/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  623. package/dist/src/hooks/lib/prepare-reflection-context.js +0 -123
  624. package/dist/src/hooks/lib/prepare-reflection-context.js.map +0 -1
  625. package/dist/src/hooks/lib/reflection-config-loader.d.ts +0 -45
  626. package/dist/src/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  627. package/dist/src/hooks/lib/reflection-config-loader.js +0 -132
  628. package/dist/src/hooks/lib/reflection-config-loader.js.map +0 -1
  629. package/dist/src/hooks/lib/reflection-parser.d.ts +0 -33
  630. package/dist/src/hooks/lib/reflection-parser.d.ts.map +0 -1
  631. package/dist/src/hooks/lib/reflection-parser.js +0 -419
  632. package/dist/src/hooks/lib/reflection-parser.js.map +0 -1
  633. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  634. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  635. package/dist/src/hooks/lib/reflection-prompt-builder.js +0 -239
  636. package/dist/src/hooks/lib/reflection-prompt-builder.js.map +0 -1
  637. package/dist/src/hooks/lib/reflection-storage.d.ts +0 -64
  638. package/dist/src/hooks/lib/reflection-storage.d.ts.map +0 -1
  639. package/dist/src/hooks/lib/reflection-storage.js +0 -305
  640. package/dist/src/hooks/lib/reflection-storage.js.map +0 -1
  641. package/dist/src/hooks/lib/run-self-reflection.d.ts +0 -43
  642. package/dist/src/hooks/lib/run-self-reflection.d.ts.map +0 -1
  643. package/dist/src/hooks/lib/run-self-reflection.js +0 -203
  644. package/dist/src/hooks/lib/run-self-reflection.js.map +0 -1
  645. package/dist/src/hooks/lib/sync-living-docs.d.ts +0 -27
  646. package/dist/src/hooks/lib/sync-living-docs.d.ts.map +0 -1
  647. package/dist/src/hooks/lib/sync-living-docs.js +0 -116
  648. package/dist/src/hooks/lib/sync-living-docs.js.map +0 -1
  649. package/dist/src/hooks/lib/translate-file.d.ts +0 -59
  650. package/dist/src/hooks/lib/translate-file.d.ts.map +0 -1
  651. package/dist/src/hooks/lib/translate-file.js +0 -350
  652. package/dist/src/hooks/lib/translate-file.js.map +0 -1
  653. package/dist/src/hooks/lib/translate-living-docs.d.ts +0 -13
  654. package/dist/src/hooks/lib/translate-living-docs.d.ts.map +0 -1
  655. package/dist/src/hooks/lib/translate-living-docs.js +0 -175
  656. package/dist/src/hooks/lib/translate-living-docs.js.map +0 -1
  657. package/dist/src/hooks/lib/types/reflection-types.d.ts +0 -164
  658. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +0 -1
  659. package/dist/src/hooks/lib/types/reflection-types.js +0 -73
  660. package/dist/src/hooks/lib/types/reflection-types.js.map +0 -1
  661. package/dist/src/hooks/lib/update-tasks-md.d.ts +0 -29
  662. package/dist/src/hooks/lib/update-tasks-md.d.ts.map +0 -1
  663. package/dist/src/hooks/lib/update-tasks-md.js +0 -203
  664. package/dist/src/hooks/lib/update-tasks-md.js.map +0 -1
  665. package/dist/testing/test-generator.d.ts +0 -117
  666. package/dist/testing/test-generator.d.ts.map +0 -1
  667. package/dist/testing/test-generator.js +0 -370
  668. package/dist/testing/test-generator.js.map +0 -1
  669. package/dist/types/cost-tracking.d.ts +0 -43
  670. package/dist/types/cost-tracking.d.ts.map +0 -1
  671. package/dist/types/cost-tracking.js +0 -8
  672. package/dist/types/cost-tracking.js.map +0 -1
  673. package/dist/types/model-selection.d.ts +0 -53
  674. package/dist/types/model-selection.d.ts.map +0 -1
  675. package/dist/types/model-selection.js +0 -12
  676. package/dist/types/model-selection.js.map +0 -1
  677. package/dist/utils/agents-md-compiler.d.ts +0 -68
  678. package/dist/utils/agents-md-compiler.d.ts.map +0 -1
  679. package/dist/utils/agents-md-compiler.js +0 -420
  680. package/dist/utils/agents-md-compiler.js.map +0 -1
  681. package/dist/utils/auth-helpers.d.ts +0 -58
  682. package/dist/utils/auth-helpers.d.ts.map +0 -1
  683. package/dist/utils/auth-helpers.js +0 -108
  684. package/dist/utils/auth-helpers.js.map +0 -1
  685. package/dist/utils/auto-install.d.ts +0 -47
  686. package/dist/utils/auto-install.d.ts.map +0 -1
  687. package/dist/utils/auto-install.js +0 -211
  688. package/dist/utils/auto-install.js.map +0 -1
  689. package/dist/utils/claude-cli-detector.d.ts +0 -75
  690. package/dist/utils/claude-cli-detector.d.ts.map +0 -1
  691. package/dist/utils/claude-cli-detector.js +0 -285
  692. package/dist/utils/claude-cli-detector.js.map +0 -1
  693. package/dist/utils/cost-reporter.d.ts +0 -58
  694. package/dist/utils/cost-reporter.d.ts.map +0 -1
  695. package/dist/utils/cost-reporter.js +0 -224
  696. package/dist/utils/cost-reporter.js.map +0 -1
  697. package/dist/utils/docs-preview/config-generator.d.ts +0 -46
  698. package/dist/utils/docs-preview/config-generator.d.ts.map +0 -1
  699. package/dist/utils/docs-preview/config-generator.js +0 -377
  700. package/dist/utils/docs-preview/config-generator.js.map +0 -1
  701. package/dist/utils/docs-preview/docusaurus-setup.d.ts +0 -38
  702. package/dist/utils/docs-preview/docusaurus-setup.d.ts.map +0 -1
  703. package/dist/utils/docs-preview/docusaurus-setup.js +0 -177
  704. package/dist/utils/docs-preview/docusaurus-setup.js.map +0 -1
  705. package/dist/utils/docs-preview/index.d.ts +0 -7
  706. package/dist/utils/docs-preview/index.d.ts.map +0 -1
  707. package/dist/utils/docs-preview/index.js +0 -7
  708. package/dist/utils/docs-preview/index.js.map +0 -1
  709. package/dist/utils/docs-preview/package-installer.d.ts +0 -42
  710. package/dist/utils/docs-preview/package-installer.d.ts.map +0 -1
  711. package/dist/utils/docs-preview/package-installer.js +0 -182
  712. package/dist/utils/docs-preview/package-installer.js.map +0 -1
  713. package/dist/utils/docs-preview/server-manager.d.ts +0 -30
  714. package/dist/utils/docs-preview/server-manager.d.ts.map +0 -1
  715. package/dist/utils/docs-preview/server-manager.js +0 -212
  716. package/dist/utils/docs-preview/server-manager.js.map +0 -1
  717. package/dist/utils/docs-preview/sidebar-builder.d.ts +0 -32
  718. package/dist/utils/docs-preview/sidebar-builder.d.ts.map +0 -1
  719. package/dist/utils/docs-preview/sidebar-builder.js +0 -202
  720. package/dist/utils/docs-preview/sidebar-builder.js.map +0 -1
  721. package/dist/utils/docs-preview/types.d.ts +0 -57
  722. package/dist/utils/docs-preview/types.d.ts.map +0 -1
  723. package/dist/utils/docs-preview/types.js +0 -2
  724. package/dist/utils/docs-preview/types.js.map +0 -1
  725. package/dist/utils/env-file.d.ts +0 -88
  726. package/dist/utils/env-file.d.ts.map +0 -1
  727. package/dist/utils/env-file.js +0 -180
  728. package/dist/utils/env-file.js.map +0 -1
  729. package/dist/utils/env-multi-project-parser.d.ts +0 -220
  730. package/dist/utils/env-multi-project-parser.d.ts.map +0 -1
  731. package/dist/utils/env-multi-project-parser.js +0 -401
  732. package/dist/utils/env-multi-project-parser.js.map +0 -1
  733. package/dist/utils/esm-helpers.d.ts +0 -50
  734. package/dist/utils/esm-helpers.d.ts.map +0 -1
  735. package/dist/utils/esm-helpers.js +0 -57
  736. package/dist/utils/esm-helpers.js.map +0 -1
  737. package/dist/utils/execFileNoThrow.d.ts +0 -99
  738. package/dist/utils/execFileNoThrow.d.ts.map +0 -1
  739. package/dist/utils/execFileNoThrow.js +0 -137
  740. package/dist/utils/execFileNoThrow.js.map +0 -1
  741. package/dist/utils/external-resource-validator.d.ts +0 -102
  742. package/dist/utils/external-resource-validator.d.ts.map +0 -1
  743. package/dist/utils/external-resource-validator.js +0 -504
  744. package/dist/utils/external-resource-validator.js.map +0 -1
  745. package/dist/utils/generate-skills-index.d.ts +0 -24
  746. package/dist/utils/generate-skills-index.d.ts.map +0 -1
  747. package/dist/utils/generate-skills-index.js +0 -410
  748. package/dist/utils/generate-skills-index.js.map +0 -1
  749. package/dist/utils/git-detector.d.ts +0 -84
  750. package/dist/utils/git-detector.d.ts.map +0 -1
  751. package/dist/utils/git-detector.js +0 -233
  752. package/dist/utils/git-detector.js.map +0 -1
  753. package/dist/utils/git-utils.d.ts +0 -74
  754. package/dist/utils/git-utils.d.ts.map +0 -1
  755. package/dist/utils/git-utils.js +0 -272
  756. package/dist/utils/git-utils.js.map +0 -1
  757. package/dist/utils/model-selection.d.ts +0 -75
  758. package/dist/utils/model-selection.d.ts.map +0 -1
  759. package/dist/utils/model-selection.js +0 -204
  760. package/dist/utils/model-selection.js.map +0 -1
  761. package/dist/utils/plugin-validator.d.ts +0 -161
  762. package/dist/utils/plugin-validator.d.ts.map +0 -1
  763. package/dist/utils/plugin-validator.js +0 -558
  764. package/dist/utils/plugin-validator.js.map +0 -1
  765. package/dist/utils/pricing-constants.d.ts +0 -70
  766. package/dist/utils/pricing-constants.d.ts.map +0 -1
  767. package/dist/utils/pricing-constants.js +0 -71
  768. package/dist/utils/pricing-constants.js.map +0 -1
  769. package/dist/utils/project-detection.d.ts +0 -141
  770. package/dist/utils/project-detection.d.ts.map +0 -1
  771. package/dist/utils/project-detection.js +0 -321
  772. package/dist/utils/project-detection.js.map +0 -1
  773. package/dist/utils/project-mapper.d.ts +0 -92
  774. package/dist/utils/project-mapper.d.ts.map +0 -1
  775. package/dist/utils/project-mapper.js +0 -276
  776. package/dist/utils/project-mapper.js.map +0 -1
  777. package/dist/utils/spec-splitter.d.ts +0 -75
  778. package/dist/utils/spec-splitter.d.ts.map +0 -1
  779. package/dist/utils/spec-splitter.js +0 -332
  780. package/dist/utils/spec-splitter.js.map +0 -1
  781. package/dist/utils/string-utils.d.ts +0 -40
  782. package/dist/utils/string-utils.d.ts.map +0 -1
  783. package/dist/utils/string-utils.js +0 -58
  784. package/dist/utils/string-utils.js.map +0 -1
  785. package/dist/utils/translation.d.ts +0 -187
  786. package/dist/utils/translation.d.ts.map +0 -1
  787. package/dist/utils/translation.js +0 -414
  788. package/dist/utils/translation.js.map +0 -1
@@ -1,279 +1,248 @@
1
- /**
2
- * Azure DevOps REST API Client (Multi-Project Support)
3
- *
4
- * Profile-based ADO client for SpecWeave that supports:
5
- * - Multiple ADO projects via sync profiles
6
- * - Time range filtering with WIQL queries
7
- * - Rate limiting protection
8
- * - Secure HTTPS requests
9
- */
10
- import https from 'https';
11
- // ============================================================================
12
- // Azure DevOps Client V2
13
- // ============================================================================
14
- export class AdoClientV2 {
15
- /**
16
- * Create ADO client from sync profile
17
- */
18
- constructor(profile, personalAccessToken) {
19
- if (profile.provider !== 'ado') {
20
- throw new Error(`Expected ADO profile, got ${profile.provider}`);
21
- }
22
- const config = profile.config;
23
- this.organization = config.organization;
24
- this.workItemTypes = config.workItemTypes;
25
- // Detect mode: single-project vs multi-project
26
- if (config.projects && config.projects.length > 0) {
27
- // Multi-project mode (intelligent mapping)
28
- this.isMultiProject = true;
29
- this.projects = config.projects;
30
- this.baseUrl = `https://dev.azure.com/${this.organization}`;
31
- }
32
- else if (config.customQuery) {
33
- // Custom WIQL query mode
34
- this.isMultiProject = true;
35
- this.customQuery = config.customQuery;
36
- this.baseUrl = `https://dev.azure.com/${this.organization}`;
37
- }
38
- else {
39
- // Single-project mode (backward compatible)
40
- this.isMultiProject = false;
41
- this.project = config.project;
42
- this.areaPaths = config.areaPaths;
43
- this.baseUrl = `https://dev.azure.com/${this.organization}/${this.project}`;
44
- }
45
- // Basic Auth: base64(":PAT")
46
- this.authHeader =
47
- 'Basic ' + Buffer.from(`:${personalAccessToken}`).toString('base64');
1
+ import https from "https";
2
+ class AdoClientV2 {
3
+ /**
4
+ * Create ADO client from sync profile
5
+ */
6
+ constructor(profile, personalAccessToken) {
7
+ if (profile.provider !== "ado") {
8
+ throw new Error(`Expected ADO profile, got ${profile.provider}`);
48
9
  }
49
- /**
50
- * Create client from organization/project directly
51
- */
52
- static fromProject(organization, project, personalAccessToken) {
53
- const profile = {
54
- provider: 'ado',
55
- displayName: `${organization}/${project}`,
56
- config: { organization, project },
57
- timeRange: { default: '1M', max: '6M' },
58
- };
59
- return new AdoClientV2(profile, personalAccessToken);
10
+ const config = profile.config;
11
+ this.organization = config.organization;
12
+ this.workItemTypes = config.workItemTypes;
13
+ if (config.projects && config.projects.length > 0) {
14
+ this.isMultiProject = true;
15
+ this.projects = config.projects;
16
+ this.baseUrl = `https://dev.azure.com/${this.organization}`;
17
+ } else if (config.customQuery) {
18
+ this.isMultiProject = true;
19
+ this.customQuery = config.customQuery;
20
+ this.baseUrl = `https://dev.azure.com/${this.organization}`;
21
+ } else {
22
+ this.isMultiProject = false;
23
+ this.project = config.project;
24
+ this.areaPaths = config.areaPaths;
25
+ this.baseUrl = `https://dev.azure.com/${this.organization}/${this.project}`;
60
26
  }
61
- // ==========================================================================
62
- // Authentication & Setup
63
- // ==========================================================================
64
- /**
65
- * Test connection and authentication
66
- */
67
- async testConnection() {
68
- try {
69
- if (this.isMultiProject) {
70
- // Test org-level access
71
- await this.request('GET', `https://dev.azure.com/${this.organization}/_apis/projects?api-version=7.1`);
72
- }
73
- else {
74
- // Test project-level access
75
- await this.request('GET', `/_apis/projects/${this.project}?api-version=7.1`);
76
- }
77
- return { success: true };
78
- }
79
- catch (error) {
80
- return { success: false, error: error.message };
81
- }
27
+ this.authHeader = "Basic " + Buffer.from(`:${personalAccessToken}`).toString("base64");
28
+ }
29
+ /**
30
+ * Create client from organization/project directly
31
+ */
32
+ static fromProject(organization, project, personalAccessToken) {
33
+ const profile = {
34
+ provider: "ado",
35
+ displayName: `${organization}/${project}`,
36
+ config: { organization, project },
37
+ timeRange: { default: "1M", max: "6M" }
38
+ };
39
+ return new AdoClientV2(profile, personalAccessToken);
40
+ }
41
+ // ==========================================================================
42
+ // Authentication & Setup
43
+ // ==========================================================================
44
+ /**
45
+ * Test connection and authentication
46
+ */
47
+ async testConnection() {
48
+ try {
49
+ if (this.isMultiProject) {
50
+ await this.request("GET", `https://dev.azure.com/${this.organization}/_apis/projects?api-version=7.1`);
51
+ } else {
52
+ await this.request("GET", `/_apis/projects/${this.project}?api-version=7.1`);
53
+ }
54
+ return { success: true };
55
+ } catch (error) {
56
+ return { success: false, error: error.message };
82
57
  }
83
- // ==========================================================================
84
- // Work Items
85
- // ==========================================================================
86
- /**
87
- * Create epic work item
88
- */
89
- async createEpic(request) {
90
- const workItemType = this.workItemTypes?.epic || 'Epic';
91
- const url = `/_apis/wit/workitems/$${workItemType}?api-version=7.1`;
92
- // Build JSON Patch document
93
- const operations = [
94
- {
95
- op: 'add',
96
- path: '/fields/System.Title',
97
- value: request.title,
98
- },
99
- ];
100
- if (request.description) {
101
- operations.push({
102
- op: 'add',
103
- path: '/fields/System.Description',
104
- value: `<pre>${request.description}</pre>`,
105
- });
106
- }
107
- if (request.areaPath || (this.areaPaths && this.areaPaths.length > 0)) {
108
- operations.push({
109
- op: 'add',
110
- path: '/fields/System.AreaPath',
111
- value: request.areaPath || this.areaPaths[0],
112
- });
113
- }
114
- if (request.iterationPath) {
115
- operations.push({
116
- op: 'add',
117
- path: '/fields/System.IterationPath',
118
- value: request.iterationPath,
119
- });
120
- }
121
- if (request.tags && request.tags.length > 0) {
122
- operations.push({
123
- op: 'add',
124
- path: '/fields/System.Tags',
125
- value: request.tags.join('; '),
126
- });
127
- }
128
- return this.request('POST', url, operations, {
129
- 'Content-Type': 'application/json-patch+json',
130
- });
58
+ }
59
+ // ==========================================================================
60
+ // Work Items
61
+ // ==========================================================================
62
+ /**
63
+ * Create epic work item
64
+ */
65
+ async createEpic(request) {
66
+ const workItemType = this.workItemTypes?.epic || "Epic";
67
+ const url = `/_apis/wit/workitems/$${workItemType}?api-version=7.1`;
68
+ const operations = [
69
+ {
70
+ op: "add",
71
+ path: "/fields/System.Title",
72
+ value: request.title
73
+ }
74
+ ];
75
+ if (request.description) {
76
+ operations.push({
77
+ op: "add",
78
+ path: "/fields/System.Description",
79
+ value: `<pre>${request.description}</pre>`
80
+ });
131
81
  }
132
- /**
133
- * Create child work item (feature/story) linked to epic
134
- */
135
- async createChildWorkItem(request, parentId, childType = 'User Story') {
136
- const url = `/_apis/wit/workitems/$${childType}?api-version=7.1`;
137
- const operations = [
138
- {
139
- op: 'add',
140
- path: '/fields/System.Title',
141
- value: request.title,
142
- },
143
- {
144
- op: 'add',
145
- path: '/relations/-',
146
- value: {
147
- rel: 'System.LinkTypes.Hierarchy-Reverse',
148
- url: `${this.baseUrl}/_apis/wit/workItems/${parentId}`,
149
- },
150
- },
151
- ];
152
- if (request.description) {
153
- operations.push({
154
- op: 'add',
155
- path: '/fields/System.Description',
156
- value: `<pre>${request.description}</pre>`,
157
- });
158
- }
159
- if (request.tags && request.tags.length > 0) {
160
- operations.push({
161
- op: 'add',
162
- path: '/fields/System.Tags',
163
- value: request.tags.join('; '),
164
- });
165
- }
166
- return this.request('POST', url, operations, {
167
- 'Content-Type': 'application/json-patch+json',
168
- });
82
+ if (request.areaPath || this.areaPaths && this.areaPaths.length > 0) {
83
+ operations.push({
84
+ op: "add",
85
+ path: "/fields/System.AreaPath",
86
+ value: request.areaPath || this.areaPaths[0]
87
+ });
169
88
  }
170
- /**
171
- * Get work item by ID
172
- */
173
- async getWorkItem(id) {
174
- return this.request('GET', `/_apis/wit/workitems/${id}?api-version=7.1`);
89
+ if (request.iterationPath) {
90
+ operations.push({
91
+ op: "add",
92
+ path: "/fields/System.IterationPath",
93
+ value: request.iterationPath
94
+ });
175
95
  }
176
- /**
177
- * Update work item
178
- */
179
- async updateWorkItem(id, updates) {
180
- const url = `/_apis/wit/workitems/${id}?api-version=7.1`;
181
- const operations = [];
182
- if (updates.state) {
183
- operations.push({
184
- op: 'add',
185
- path: '/fields/System.State',
186
- value: updates.state,
187
- });
188
- }
189
- if (updates.title) {
190
- operations.push({
191
- op: 'add',
192
- path: '/fields/System.Title',
193
- value: updates.title,
194
- });
195
- }
196
- if (updates.description) {
197
- operations.push({
198
- op: 'add',
199
- path: '/fields/System.Description',
200
- value: `<pre>${updates.description}</pre>`,
201
- });
202
- }
203
- if (updates.tags) {
204
- operations.push({
205
- op: 'add',
206
- path: '/fields/System.Tags',
207
- value: updates.tags.join('; '),
208
- });
96
+ if (request.tags && request.tags.length > 0) {
97
+ operations.push({
98
+ op: "add",
99
+ path: "/fields/System.Tags",
100
+ value: request.tags.join("; ")
101
+ });
102
+ }
103
+ return this.request("POST", url, operations, {
104
+ "Content-Type": "application/json-patch+json"
105
+ });
106
+ }
107
+ /**
108
+ * Create child work item (feature/story) linked to epic
109
+ */
110
+ async createChildWorkItem(request, parentId, childType = "User Story") {
111
+ const url = `/_apis/wit/workitems/$${childType}?api-version=7.1`;
112
+ const operations = [
113
+ {
114
+ op: "add",
115
+ path: "/fields/System.Title",
116
+ value: request.title
117
+ },
118
+ {
119
+ op: "add",
120
+ path: "/relations/-",
121
+ value: {
122
+ rel: "System.LinkTypes.Hierarchy-Reverse",
123
+ url: `${this.baseUrl}/_apis/wit/workItems/${parentId}`
209
124
  }
210
- return this.request('PATCH', url, operations, {
211
- 'Content-Type': 'application/json-patch+json',
212
- });
125
+ }
126
+ ];
127
+ if (request.description) {
128
+ operations.push({
129
+ op: "add",
130
+ path: "/fields/System.Description",
131
+ value: `<pre>${request.description}</pre>`
132
+ });
213
133
  }
214
- /**
215
- * Add comment to work item
216
- */
217
- async addComment(workItemId, comment) {
218
- const url = `/_apis/wit/workItems/${workItemId}/comments?api-version=7.1-preview.3`;
219
- await this.request('POST', url, { text: comment });
134
+ if (request.tags && request.tags.length > 0) {
135
+ operations.push({
136
+ op: "add",
137
+ path: "/fields/System.Tags",
138
+ value: request.tags.join("; ")
139
+ });
220
140
  }
221
- // ==========================================================================
222
- // Query & Time Range Filtering
223
- // ==========================================================================
224
- /**
225
- * Execute WIQL query
226
- */
227
- async queryWorkItems(wiql) {
228
- // For multi-project, use org-level API
229
- const queryUrl = this.isMultiProject
230
- ? `https://dev.azure.com/${this.organization}/_apis/wit/wiql?api-version=7.1`
231
- : `/_apis/wit/wiql?api-version=7.1`;
232
- const queryResult = await this.request('POST', queryUrl, {
233
- query: wiql,
234
- });
235
- if (queryResult.workItems.length === 0) {
236
- return [];
237
- }
238
- // Get full work item details (batch request)
239
- const ids = queryResult.workItems.map((wi) => wi.id);
240
- // For multi-project, use org-level batch API
241
- const batchUrl = this.isMultiProject
242
- ? `https://dev.azure.com/${this.organization}/_apis/wit/workitemsbatch?api-version=7.1`
243
- : `/_apis/wit/workitemsbatch?api-version=7.1`;
244
- const workItems = await this.request('POST', batchUrl, {
245
- ids,
246
- fields: [
247
- 'System.Id',
248
- 'System.Title',
249
- 'System.Description',
250
- 'System.State',
251
- 'System.CreatedDate',
252
- 'System.ChangedDate',
253
- 'System.WorkItemType',
254
- 'System.Tags',
255
- 'System.AreaPath',
256
- 'System.IterationPath',
257
- 'System.TeamProject',
258
- ],
259
- });
260
- return workItems.value || [];
141
+ return this.request("POST", url, operations, {
142
+ "Content-Type": "application/json-patch+json"
143
+ });
144
+ }
145
+ /**
146
+ * Get work item by ID
147
+ */
148
+ async getWorkItem(id) {
149
+ return this.request("GET", `/_apis/wit/workitems/${id}?api-version=7.1`);
150
+ }
151
+ /**
152
+ * Update work item
153
+ */
154
+ async updateWorkItem(id, updates) {
155
+ const url = `/_apis/wit/workitems/${id}?api-version=7.1`;
156
+ const operations = [];
157
+ if (updates.state) {
158
+ operations.push({
159
+ op: "add",
160
+ path: "/fields/System.State",
161
+ value: updates.state
162
+ });
261
163
  }
262
- /**
263
- * List work items within time range
264
- */
265
- async listWorkItemsInTimeRange(timeRange, customStart, customEnd) {
266
- const { since, until } = this.calculateTimeRange(timeRange, customStart, customEnd);
267
- // Use custom query if provided
268
- if (this.customQuery) {
269
- return this.queryWorkItems(this.customQuery);
270
- }
271
- // Multi-project mode with intelligent mapping
272
- if (this.isMultiProject && this.projects) {
273
- return this.queryWorkItemsAcrossProjects(since, until);
274
- }
275
- // Single-project mode (backward compatible)
276
- const wiql = `
164
+ if (updates.title) {
165
+ operations.push({
166
+ op: "add",
167
+ path: "/fields/System.Title",
168
+ value: updates.title
169
+ });
170
+ }
171
+ if (updates.description) {
172
+ operations.push({
173
+ op: "add",
174
+ path: "/fields/System.Description",
175
+ value: `<pre>${updates.description}</pre>`
176
+ });
177
+ }
178
+ if (updates.tags) {
179
+ operations.push({
180
+ op: "add",
181
+ path: "/fields/System.Tags",
182
+ value: updates.tags.join("; ")
183
+ });
184
+ }
185
+ return this.request("PATCH", url, operations, {
186
+ "Content-Type": "application/json-patch+json"
187
+ });
188
+ }
189
+ /**
190
+ * Add comment to work item
191
+ */
192
+ async addComment(workItemId, comment) {
193
+ const url = `/_apis/wit/workItems/${workItemId}/comments?api-version=7.1-preview.3`;
194
+ await this.request("POST", url, { text: comment });
195
+ }
196
+ // ==========================================================================
197
+ // Query & Time Range Filtering
198
+ // ==========================================================================
199
+ /**
200
+ * Execute WIQL query
201
+ */
202
+ async queryWorkItems(wiql) {
203
+ const queryUrl = this.isMultiProject ? `https://dev.azure.com/${this.organization}/_apis/wit/wiql?api-version=7.1` : `/_apis/wit/wiql?api-version=7.1`;
204
+ const queryResult = await this.request("POST", queryUrl, {
205
+ query: wiql
206
+ });
207
+ if (queryResult.workItems.length === 0) {
208
+ return [];
209
+ }
210
+ const ids = queryResult.workItems.map((wi) => wi.id);
211
+ const batchUrl = this.isMultiProject ? `https://dev.azure.com/${this.organization}/_apis/wit/workitemsbatch?api-version=7.1` : `/_apis/wit/workitemsbatch?api-version=7.1`;
212
+ const workItems = await this.request("POST", batchUrl, {
213
+ ids,
214
+ fields: [
215
+ "System.Id",
216
+ "System.Title",
217
+ "System.Description",
218
+ "System.State",
219
+ "System.CreatedDate",
220
+ "System.ChangedDate",
221
+ "System.WorkItemType",
222
+ "System.Tags",
223
+ "System.AreaPath",
224
+ "System.IterationPath",
225
+ "System.TeamProject"
226
+ ]
227
+ });
228
+ return workItems.value || [];
229
+ }
230
+ /**
231
+ * List work items within time range
232
+ */
233
+ async listWorkItemsInTimeRange(timeRange, customStart, customEnd) {
234
+ const { since, until } = this.calculateTimeRange(
235
+ timeRange,
236
+ customStart,
237
+ customEnd
238
+ );
239
+ if (this.customQuery) {
240
+ return this.queryWorkItems(this.customQuery);
241
+ }
242
+ if (this.isMultiProject && this.projects) {
243
+ return this.queryWorkItemsAcrossProjects(since, until);
244
+ }
245
+ const wiql = `
277
246
  SELECT [System.Id], [System.Title], [System.State], [System.CreatedDate]
278
247
  FROM WorkItems
279
248
  WHERE [System.TeamProject] = '${this.project}'
@@ -281,198 +250,185 @@ export class AdoClientV2 {
281
250
  AND [System.CreatedDate] <= '${until}'
282
251
  ORDER BY [System.CreatedDate] DESC
283
252
  `;
284
- return this.queryWorkItems(wiql);
253
+ return this.queryWorkItems(wiql);
254
+ }
255
+ /**
256
+ * Query work items across multiple projects (multi-project mode)
257
+ */
258
+ async queryWorkItemsAcrossProjects(since, until) {
259
+ if (!this.projects || this.projects.length === 0) {
260
+ return [];
285
261
  }
286
- /**
287
- * Query work items across multiple projects (multi-project mode)
288
- */
289
- async queryWorkItemsAcrossProjects(since, until) {
290
- if (!this.projects || this.projects.length === 0) {
291
- return [];
292
- }
293
- const allWorkItems = [];
294
- for (const projectName of this.projects) {
295
- const wiql = this.buildProjectWIQL(projectName, since, until);
296
- try {
297
- const workItems = await this.queryWorkItems(wiql);
298
- allWorkItems.push(...workItems);
299
- }
300
- catch (error) {
301
- console.error(`Failed to query project ${projectName}:`, error.message);
302
- // Continue with other projects
303
- }
304
- }
305
- return allWorkItems;
262
+ const allWorkItems = [];
263
+ for (const projectName of this.projects) {
264
+ const wiql = this.buildProjectWIQL(projectName, since, until);
265
+ try {
266
+ const workItems = await this.queryWorkItems(wiql);
267
+ allWorkItems.push(...workItems);
268
+ } catch (error) {
269
+ console.error(`Failed to query project ${projectName}:`, error.message);
270
+ }
306
271
  }
307
- /**
308
- * Build WIQL query for a specific project
309
- */
310
- buildProjectWIQL(projectName, since, until) {
311
- const conditions = [];
312
- // Project filter
313
- conditions.push(`[System.TeamProject] = '${projectName}'`);
314
- // Time range
315
- conditions.push(`[System.CreatedDate] >= '${since}'`);
316
- conditions.push(`[System.CreatedDate] <= '${until}'`);
317
- // Area paths filter (if configured)
318
- if (this.areaPaths && this.areaPaths.length > 0) {
319
- const areaPathConditions = this.areaPaths
320
- .map((ap) => `[System.AreaPath] UNDER '${projectName}\\${ap}'`)
321
- .join(' OR ');
322
- conditions.push(`(${areaPathConditions})`);
323
- }
324
- // Work item types filter (if configured)
325
- if (this.workItemTypes) {
326
- const types = Object.values(this.workItemTypes).filter(Boolean);
327
- if (types.length > 0) {
328
- const typeConditions = types
329
- .map((type) => `[System.WorkItemType] = '${type}'`)
330
- .join(' OR ');
331
- conditions.push(`(${typeConditions})`);
332
- }
333
- }
334
- return `
272
+ return allWorkItems;
273
+ }
274
+ /**
275
+ * Build WIQL query for a specific project
276
+ */
277
+ buildProjectWIQL(projectName, since, until) {
278
+ const conditions = [];
279
+ conditions.push(`[System.TeamProject] = '${projectName}'`);
280
+ conditions.push(`[System.CreatedDate] >= '${since}'`);
281
+ conditions.push(`[System.CreatedDate] <= '${until}'`);
282
+ if (this.areaPaths && this.areaPaths.length > 0) {
283
+ const areaPathConditions = this.areaPaths.map((ap) => `[System.AreaPath] UNDER '${projectName}\\${ap}'`).join(" OR ");
284
+ conditions.push(`(${areaPathConditions})`);
285
+ }
286
+ if (this.workItemTypes) {
287
+ const types = Object.values(this.workItemTypes).filter(Boolean);
288
+ if (types.length > 0) {
289
+ const typeConditions = types.map((type) => `[System.WorkItemType] = '${type}'`).join(" OR ");
290
+ conditions.push(`(${typeConditions})`);
291
+ }
292
+ }
293
+ return `
335
294
  SELECT [System.Id], [System.Title], [System.State], [System.CreatedDate], [System.WorkItemType]
336
295
  FROM WorkItems
337
- WHERE ${conditions.join('\n AND ')}
296
+ WHERE ${conditions.join("\n AND ")}
338
297
  ORDER BY [System.CreatedDate] DESC
339
298
  `;
299
+ }
300
+ /**
301
+ * Calculate date range from preset
302
+ */
303
+ calculateTimeRange(timeRange, customStart, customEnd) {
304
+ if (timeRange === "ALL") {
305
+ return {
306
+ since: "1970-01-01T00:00:00Z",
307
+ until: (/* @__PURE__ */ new Date()).toISOString()
308
+ };
340
309
  }
341
- /**
342
- * Calculate date range from preset
343
- */
344
- calculateTimeRange(timeRange, customStart, customEnd) {
345
- if (timeRange === 'ALL') {
346
- return {
347
- since: '1970-01-01T00:00:00Z',
348
- until: new Date().toISOString(),
349
- };
350
- }
351
- if (customStart) {
352
- return {
353
- since: customStart,
354
- until: customEnd || new Date().toISOString(),
355
- };
356
- }
357
- const now = new Date();
358
- const since = new Date(now);
359
- switch (timeRange) {
360
- case '1W':
361
- since.setDate(now.getDate() - 7);
362
- break;
363
- case '2W':
364
- since.setDate(now.getDate() - 14);
365
- break;
366
- case '1M':
367
- since.setMonth(now.getMonth() - 1);
368
- break;
369
- case '3M':
370
- since.setMonth(now.getMonth() - 3);
371
- break;
372
- case '6M':
373
- since.setMonth(now.getMonth() - 6);
374
- break;
375
- case '1Y':
376
- since.setFullYear(now.getFullYear() - 1);
377
- break;
378
- }
379
- return {
380
- since: since.toISOString(),
381
- until: now.toISOString(),
382
- };
310
+ if (customStart) {
311
+ return {
312
+ since: customStart,
313
+ until: customEnd || (/* @__PURE__ */ new Date()).toISOString()
314
+ };
383
315
  }
384
- // ==========================================================================
385
- // Batch Operations
386
- // ==========================================================================
387
- /**
388
- * Batch create work items with rate limit handling
389
- */
390
- async batchCreateWorkItems(workItems, parentId, childType, options = {}) {
391
- const { batchSize = 10, delayMs = 15000 } = options; // 10 items per minute (ADO: 200/5min limit)
392
- const created = [];
393
- for (let i = 0; i < workItems.length; i += batchSize) {
394
- const batch = workItems.slice(i, i + batchSize);
395
- console.log(`Creating work items ${i + 1}-${Math.min(i + batchSize, workItems.length)} of ${workItems.length}...`);
396
- for (const item of batch) {
397
- try {
398
- const createdItem = parentId && childType
399
- ? await this.createChildWorkItem(item, parentId, childType)
400
- : await this.createEpic(item);
401
- created.push(createdItem);
402
- }
403
- catch (error) {
404
- console.error(`Failed to create work item "${item.title}":`, error.message);
405
- }
406
- }
407
- // Delay between batches
408
- if (i + batchSize < workItems.length) {
409
- console.log(`Waiting ${delayMs / 1000}s to avoid rate limits...`);
410
- await this.sleep(delayMs);
411
- }
316
+ const now = /* @__PURE__ */ new Date();
317
+ const since = new Date(now);
318
+ switch (timeRange) {
319
+ case "1W":
320
+ since.setDate(now.getDate() - 7);
321
+ break;
322
+ case "2W":
323
+ since.setDate(now.getDate() - 14);
324
+ break;
325
+ case "1M":
326
+ since.setMonth(now.getMonth() - 1);
327
+ break;
328
+ case "3M":
329
+ since.setMonth(now.getMonth() - 3);
330
+ break;
331
+ case "6M":
332
+ since.setMonth(now.getMonth() - 6);
333
+ break;
334
+ case "1Y":
335
+ since.setFullYear(now.getFullYear() - 1);
336
+ break;
337
+ }
338
+ return {
339
+ since: since.toISOString(),
340
+ until: now.toISOString()
341
+ };
342
+ }
343
+ // ==========================================================================
344
+ // Batch Operations
345
+ // ==========================================================================
346
+ /**
347
+ * Batch create work items with rate limit handling
348
+ */
349
+ async batchCreateWorkItems(workItems, parentId, childType, options = {}) {
350
+ const { batchSize = 10, delayMs = 15e3 } = options;
351
+ const created = [];
352
+ for (let i = 0; i < workItems.length; i += batchSize) {
353
+ const batch = workItems.slice(i, i + batchSize);
354
+ console.log(
355
+ `Creating work items ${i + 1}-${Math.min(i + batchSize, workItems.length)} of ${workItems.length}...`
356
+ );
357
+ for (const item of batch) {
358
+ try {
359
+ const createdItem = parentId && childType ? await this.createChildWorkItem(item, parentId, childType) : await this.createEpic(item);
360
+ created.push(createdItem);
361
+ } catch (error) {
362
+ console.error(
363
+ `Failed to create work item "${item.title}":`,
364
+ error.message
365
+ );
412
366
  }
413
- return created;
367
+ }
368
+ if (i + batchSize < workItems.length) {
369
+ console.log(`Waiting ${delayMs / 1e3}s to avoid rate limits...`);
370
+ await this.sleep(delayMs);
371
+ }
414
372
  }
415
- // ==========================================================================
416
- // HTTP Request Handler
417
- // ==========================================================================
418
- /**
419
- * Make HTTPS request to ADO API
420
- */
421
- async request(method, path, body, customHeaders) {
422
- return new Promise((resolve, reject) => {
423
- const url = `${this.baseUrl}${path}`;
424
- const { hostname, pathname, search } = new URL(url);
425
- const headers = {
426
- Authorization: this.authHeader,
427
- Accept: 'application/json',
428
- ...customHeaders,
429
- };
430
- if (body && !customHeaders?.['Content-Type']) {
431
- headers['Content-Type'] = 'application/json';
432
- }
433
- const options = {
434
- hostname,
435
- path: pathname + search,
436
- method,
437
- headers,
438
- };
439
- const req = https.request(options, (res) => {
440
- let data = '';
441
- res.on('data', (chunk) => {
442
- data += chunk;
443
- });
444
- res.on('end', () => {
445
- // Parse response
446
- let parsed;
447
- try {
448
- parsed = data ? JSON.parse(data) : {};
449
- }
450
- catch {
451
- parsed = { raw: data };
452
- }
453
- // Check status code
454
- if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
455
- resolve(parsed);
456
- }
457
- else {
458
- const errorMsg = parsed.message ||
459
- `HTTP ${res.statusCode}: ${data}`;
460
- reject(new Error(errorMsg));
461
- }
462
- });
463
- });
464
- req.on('error', (error) => {
465
- reject(error);
466
- });
467
- // Send body if present
468
- if (body) {
469
- req.write(JSON.stringify(body));
470
- }
471
- req.end();
373
+ return created;
374
+ }
375
+ // ==========================================================================
376
+ // HTTP Request Handler
377
+ // ==========================================================================
378
+ /**
379
+ * Make HTTPS request to ADO API
380
+ */
381
+ async request(method, path, body, customHeaders) {
382
+ return new Promise((resolve, reject) => {
383
+ const url = `${this.baseUrl}${path}`;
384
+ const { hostname, pathname, search } = new URL(url);
385
+ const headers = {
386
+ Authorization: this.authHeader,
387
+ Accept: "application/json",
388
+ ...customHeaders
389
+ };
390
+ if (body && !customHeaders?.["Content-Type"]) {
391
+ headers["Content-Type"] = "application/json";
392
+ }
393
+ const options = {
394
+ hostname,
395
+ path: pathname + search,
396
+ method,
397
+ headers
398
+ };
399
+ const req = https.request(options, (res) => {
400
+ let data = "";
401
+ res.on("data", (chunk) => {
402
+ data += chunk;
472
403
  });
473
- }
474
- sleep(ms) {
475
- return new Promise((resolve) => setTimeout(resolve, ms));
476
- }
404
+ res.on("end", () => {
405
+ let parsed;
406
+ try {
407
+ parsed = data ? JSON.parse(data) : {};
408
+ } catch {
409
+ parsed = { raw: data };
410
+ }
411
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
412
+ resolve(parsed);
413
+ } else {
414
+ const errorMsg = parsed.message || `HTTP ${res.statusCode}: ${data}`;
415
+ reject(new Error(errorMsg));
416
+ }
417
+ });
418
+ });
419
+ req.on("error", (error) => {
420
+ reject(error);
421
+ });
422
+ if (body) {
423
+ req.write(JSON.stringify(body));
424
+ }
425
+ req.end();
426
+ });
427
+ }
428
+ sleep(ms) {
429
+ return new Promise((resolve) => setTimeout(resolve, ms));
430
+ }
477
431
  }
478
- //# sourceMappingURL=ado-client-v2.js.map
432
+ export {
433
+ AdoClientV2
434
+ };