specweave 0.17.1 → 0.17.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (807) 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
  789. /package/dist/{locales → src/locales}/de/.gitkeep +0 -0
  790. /package/dist/{locales → src/locales}/de/cli.json +0 -0
  791. /package/dist/{locales → src/locales}/en/cli.json +0 -0
  792. /package/dist/{locales → src/locales}/en/errors.json +0 -0
  793. /package/dist/{locales → src/locales}/en/templates.json +0 -0
  794. /package/dist/{locales → src/locales}/es/.gitkeep +0 -0
  795. /package/dist/{locales → src/locales}/es/cli.json +0 -0
  796. /package/dist/{locales → src/locales}/fr/.gitkeep +0 -0
  797. /package/dist/{locales → src/locales}/fr/cli.json +0 -0
  798. /package/dist/{locales → src/locales}/ja/.gitkeep +0 -0
  799. /package/dist/{locales → src/locales}/ja/cli.json +0 -0
  800. /package/dist/{locales → src/locales}/ko/.gitkeep +0 -0
  801. /package/dist/{locales → src/locales}/ko/cli.json +0 -0
  802. /package/dist/{locales → src/locales}/pt/.gitkeep +0 -0
  803. /package/dist/{locales → src/locales}/pt/cli.json +0 -0
  804. /package/dist/{locales → src/locales}/ru/.gitkeep +0 -0
  805. /package/dist/{locales → src/locales}/ru/cli.json +0 -0
  806. /package/dist/{locales → src/locales}/zh/.gitkeep +0 -0
  807. /package/dist/{locales → src/locales}/zh/cli.json +0 -0
@@ -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
+ };