specweave 0.28.17 → 0.28.20

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 (204) hide show
  1. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +94 -0
  2. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +1 -0
  3. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +219 -0
  4. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +1 -0
  5. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +16 -0
  6. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +1 -1
  7. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +63 -3
  8. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -1
  9. package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts +12 -3
  10. package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts.map +1 -1
  11. package/dist/plugins/specweave-ado/lib/ado-status-sync.js +37 -3
  12. package/dist/plugins/specweave-ado/lib/ado-status-sync.js.map +1 -1
  13. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +6 -11
  14. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
  15. package/dist/plugins/specweave-github/lib/github-feature-sync.js +6 -11
  16. package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
  17. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts +21 -0
  18. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts.map +1 -0
  19. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +445 -0
  20. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -0
  21. package/dist/plugins/specweave-github/lib/github-status-sync.d.ts +10 -0
  22. package/dist/plugins/specweave-github/lib/github-status-sync.d.ts.map +1 -1
  23. package/dist/plugins/specweave-github/lib/github-status-sync.js +40 -2
  24. package/dist/plugins/specweave-github/lib/github-status-sync.js.map +1 -1
  25. package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts +94 -0
  26. package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts.map +1 -0
  27. package/dist/plugins/specweave-github/lib/increment-issue-builder.js +369 -0
  28. package/dist/plugins/specweave-github/lib/increment-issue-builder.js.map +1 -0
  29. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +50 -0
  30. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +1 -0
  31. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +84 -0
  32. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +1 -0
  33. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +12 -0
  34. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +1 -1
  35. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +57 -5
  36. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -1
  37. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +5 -1
  38. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts.map +1 -1
  39. package/dist/plugins/specweave-jira/lib/jira-status-sync.js +12 -4
  40. package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +1 -1
  41. package/dist/src/cli/commands/import-external.d.ts.map +1 -1
  42. package/dist/src/cli/commands/import-external.js +12 -7
  43. package/dist/src/cli/commands/import-external.js.map +1 -1
  44. package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
  45. package/dist/src/cli/helpers/init/external-import.js +308 -36
  46. package/dist/src/cli/helpers/init/external-import.js.map +1 -1
  47. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts +115 -0
  48. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts.map +1 -0
  49. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js +590 -0
  50. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js.map +1 -0
  51. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts +65 -0
  52. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts.map +1 -0
  53. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js +278 -0
  54. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js.map +1 -0
  55. package/dist/src/cli/helpers/issue-tracker/jira-board-selection.d.ts +64 -0
  56. package/dist/src/cli/helpers/issue-tracker/jira-board-selection.d.ts.map +1 -0
  57. package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js +251 -0
  58. package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js.map +1 -0
  59. package/dist/src/config/types.d.ts +6 -6
  60. package/dist/src/core/ac-test-validator-cli.js +4 -1
  61. package/dist/src/core/ac-test-validator-cli.js.map +1 -1
  62. package/dist/src/core/ac-test-validator.d.ts.map +1 -1
  63. package/dist/src/core/ac-test-validator.js +4 -1
  64. package/dist/src/core/ac-test-validator.js.map +1 -1
  65. package/dist/src/core/background/index.d.ts +11 -0
  66. package/dist/src/core/background/index.d.ts.map +1 -0
  67. package/dist/src/core/background/index.js +11 -0
  68. package/dist/src/core/background/index.js.map +1 -0
  69. package/dist/src/core/background/job-manager.d.ts +65 -0
  70. package/dist/src/core/background/job-manager.d.ts.map +1 -0
  71. package/dist/src/core/background/job-manager.js +192 -0
  72. package/dist/src/core/background/job-manager.js.map +1 -0
  73. package/dist/src/core/background/types.d.ts +59 -0
  74. package/dist/src/core/background/types.d.ts.map +1 -0
  75. package/dist/src/core/background/types.js +8 -0
  76. package/dist/src/core/background/types.js.map +1 -0
  77. package/dist/src/core/repo-structure/multi-repo-configurator.d.ts +25 -0
  78. package/dist/src/core/repo-structure/multi-repo-configurator.d.ts.map +1 -0
  79. package/dist/src/core/repo-structure/multi-repo-configurator.js +614 -0
  80. package/dist/src/core/repo-structure/multi-repo-configurator.js.map +1 -0
  81. package/dist/src/core/repo-structure/repo-initializer.d.ts +40 -0
  82. package/dist/src/core/repo-structure/repo-initializer.d.ts.map +1 -0
  83. package/dist/src/core/repo-structure/repo-initializer.js +252 -0
  84. package/dist/src/core/repo-structure/repo-initializer.js.map +1 -0
  85. package/dist/src/core/repo-structure/repo-structure-manager.d.ts +3 -37
  86. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  87. package/dist/src/core/repo-structure/repo-structure-manager.js +23 -803
  88. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  89. package/dist/src/core/types/increment-metadata.d.ts +75 -0
  90. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  91. package/dist/src/core/types/spec-metadata.d.ts +2 -0
  92. package/dist/src/core/types/spec-metadata.d.ts.map +1 -1
  93. package/dist/src/core/types/sync-profile.d.ts +137 -5
  94. package/dist/src/core/types/sync-profile.d.ts.map +1 -1
  95. package/dist/src/core/types/sync-profile.js +63 -0
  96. package/dist/src/core/types/sync-profile.js.map +1 -1
  97. package/dist/src/importers/external-importer.d.ts +25 -0
  98. package/dist/src/importers/external-importer.d.ts.map +1 -1
  99. package/dist/src/importers/github-importer.d.ts.map +1 -1
  100. package/dist/src/importers/github-importer.js +5 -3
  101. package/dist/src/importers/github-importer.js.map +1 -1
  102. package/dist/src/importers/import-coordinator.d.ts +20 -0
  103. package/dist/src/importers/import-coordinator.d.ts.map +1 -1
  104. package/dist/src/importers/import-coordinator.js.map +1 -1
  105. package/dist/src/importers/item-converter.d.ts +51 -0
  106. package/dist/src/importers/item-converter.d.ts.map +1 -1
  107. package/dist/src/importers/item-converter.js +39 -12
  108. package/dist/src/importers/item-converter.js.map +1 -1
  109. package/dist/src/init/architecture/types.d.ts +2 -2
  110. package/dist/src/init/compliance/types.d.ts +1 -1
  111. package/dist/src/init/repo/types.d.ts +1 -1
  112. package/dist/src/living-docs/fs-id-allocator.d.ts +72 -3
  113. package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
  114. package/dist/src/living-docs/fs-id-allocator.js +142 -16
  115. package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
  116. package/dist/src/locales/de/cli.json +14 -0
  117. package/dist/src/locales/es/cli.json +14 -0
  118. package/dist/src/locales/fr/cli.json +14 -0
  119. package/dist/src/locales/ja/cli.json +14 -0
  120. package/dist/src/locales/ko/cli.json +14 -0
  121. package/dist/src/locales/pt/cli.json +14 -0
  122. package/dist/src/locales/ru/cli.json +14 -0
  123. package/dist/src/locales/zh/cli.json +14 -0
  124. package/dist/src/utils/chalk-fallback.d.ts +38 -0
  125. package/dist/src/utils/chalk-fallback.d.ts.map +1 -0
  126. package/dist/src/utils/chalk-fallback.js +118 -0
  127. package/dist/src/utils/chalk-fallback.js.map +1 -0
  128. package/dist/src/utils/project-id-generator.d.ts +127 -0
  129. package/dist/src/utils/project-id-generator.d.ts.map +1 -0
  130. package/dist/src/utils/project-id-generator.js +228 -0
  131. package/dist/src/utils/project-id-generator.js.map +1 -0
  132. package/package.json +1 -1
  133. package/plugins/specweave/agents/pm/AGENT.md +202 -0
  134. package/plugins/specweave/commands/specweave-import-external.md +5 -3
  135. package/plugins/specweave/commands/specweave-jobs.md +160 -0
  136. package/plugins/specweave/commands/specweave-sync-docs.md +6 -2
  137. package/plugins/specweave/hooks/pre-task-completion.sh +35 -17
  138. package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.d.ts +16 -0
  139. package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js +121 -0
  140. package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js.map +1 -0
  141. package/plugins/specweave/lib/vendor/core/ac-test-validator.d.ts +111 -0
  142. package/plugins/specweave/lib/vendor/core/ac-test-validator.js +295 -0
  143. package/plugins/specweave/lib/vendor/core/ac-test-validator.js.map +1 -0
  144. package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +75 -0
  145. package/plugins/specweave/lib/vendor/utils/chalk-fallback.d.ts +38 -0
  146. package/plugins/specweave/lib/vendor/utils/chalk-fallback.js +118 -0
  147. package/plugins/specweave/lib/vendor/utils/chalk-fallback.js.map +1 -0
  148. package/plugins/specweave/lib/vendor/utils/fs-native.d.ts +179 -0
  149. package/plugins/specweave/lib/vendor/utils/fs-native.js +319 -0
  150. package/plugins/specweave/lib/vendor/utils/fs-native.js.map +1 -0
  151. package/plugins/specweave/skills/code-reviewer/SKILL.md +1 -1
  152. package/plugins/specweave/skills/docs-updater/SKILL.md +61 -0
  153. package/plugins/specweave/skills/increment-planner/SKILL.md +10 -335
  154. package/plugins/specweave/skills/increment-planner/templates/metadata.json +13 -0
  155. package/plugins/specweave/skills/increment-planner/templates/plan.md +50 -0
  156. package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +86 -0
  157. package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +50 -0
  158. package/plugins/specweave/skills/increment-planner/templates/tasks-multi-project.md +86 -0
  159. package/plugins/specweave/skills/increment-planner/templates/tasks-single-project.md +48 -0
  160. package/plugins/specweave-ado/commands/specweave-ado-import-areas.md +358 -0
  161. package/plugins/specweave-ado/lib/ado-spec-sync.js +59 -3
  162. package/plugins/specweave-ado/lib/ado-spec-sync.ts +72 -3
  163. package/plugins/specweave-ado/lib/ado-status-sync.js +35 -3
  164. package/plugins/specweave-ado/lib/ado-status-sync.ts +48 -4
  165. package/plugins/specweave-alternatives/skills/architecture-alternatives/SKILL.md +1 -0
  166. package/plugins/specweave-alternatives/skills/bmad-method/SKILL.md +1 -0
  167. package/plugins/specweave-core/skills/code-quality/SKILL.md +1 -0
  168. package/plugins/specweave-core/skills/design-patterns/SKILL.md +1 -0
  169. package/plugins/specweave-core/skills/software-architecture/SKILL.md +1 -0
  170. package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +14 -10
  171. package/plugins/specweave-github/commands/specweave-github-sync.md +57 -0
  172. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +74 -0
  173. package/plugins/specweave-github/lib/github-feature-sync.ts +6 -11
  174. package/plugins/specweave-github/lib/github-increment-sync-cli.js +456 -0
  175. package/plugins/specweave-github/lib/github-increment-sync-cli.ts +588 -0
  176. package/plugins/specweave-github/lib/github-status-sync.js +37 -1
  177. package/plugins/specweave-github/lib/github-status-sync.ts +60 -4
  178. package/plugins/specweave-github/lib/increment-issue-builder.js +389 -0
  179. package/plugins/specweave-github/lib/increment-issue-builder.ts +502 -0
  180. package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +19 -24
  181. package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +15 -23
  182. package/plugins/specweave-jira/commands/specweave-jira-import-boards.md +331 -0
  183. package/plugins/specweave-jira/lib/jira-spec-sync.js +53 -5
  184. package/plugins/specweave-jira/lib/jira-spec-sync.ts +87 -7
  185. package/plugins/specweave-jira/lib/jira-status-sync.js +9 -3
  186. package/plugins/specweave-jira/lib/jira-status-sync.ts +15 -6
  187. package/plugins/specweave-ml/agents/data-scientist/AGENT.md +16 -20
  188. package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +18 -19
  189. package/plugins/specweave-ml/skills/{ml-pipeline-workflow → mlops-dag-builder}/SKILL.md +18 -14
  190. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +111 -0
  191. package/plugins/specweave-ui/skills/browser-automation/SKILL.md +1 -1
  192. package/plugins/specweave-ui/skills/ui-testing/SKILL.md +10 -122
  193. package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts +0 -70
  194. package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts.map +0 -1
  195. package/dist/plugins/specweave-github/lib/epic-content-builder.js +0 -258
  196. package/dist/plugins/specweave-github/lib/epic-content-builder.js.map +0 -1
  197. package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts +0 -83
  198. package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts.map +0 -1
  199. package/dist/plugins/specweave-github/lib/github-epic-sync.js +0 -466
  200. package/dist/plugins/specweave-github/lib/github-epic-sync.js.map +0 -1
  201. package/plugins/specweave-github/lib/epic-content-builder.js +0 -265
  202. package/plugins/specweave-github/lib/epic-content-builder.ts +0 -376
  203. package/plugins/specweave-github/lib/github-epic-sync.js +0 -488
  204. package/plugins/specweave-github/lib/github-epic-sync.ts +0 -715
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Azure DevOps Team & Area Path Resolution for Hierarchical Sync
3
+ *
4
+ * Resolves team names and area paths for use in WIQL queries.
5
+ * Azure DevOps organizes work by:
6
+ * - Teams (organizational unit)
7
+ * - Area Paths (hierarchical work categorization)
8
+ * - Iteration Paths (sprints/time-based organization)
9
+ */
10
+ /**
11
+ * ADO Team
12
+ */
13
+ export interface AdoTeam {
14
+ id: string;
15
+ name: string;
16
+ description?: string;
17
+ projectName: string;
18
+ projectId: string;
19
+ }
20
+ /**
21
+ * ADO Area Path
22
+ */
23
+ export interface AdoAreaPath {
24
+ id: number;
25
+ identifier: string;
26
+ name: string;
27
+ path: string;
28
+ hasChildren: boolean;
29
+ }
30
+ /**
31
+ * ADO Iteration Path
32
+ */
33
+ export interface AdoIterationPath {
34
+ id: number;
35
+ identifier: string;
36
+ name: string;
37
+ path: string;
38
+ attributes: {
39
+ startDate?: string;
40
+ finishDate?: string;
41
+ };
42
+ }
43
+ /**
44
+ * Fetch all teams for an ADO project
45
+ *
46
+ * Uses Azure DevOps REST API: GET /{organization}/_apis/projects/{project}/teams
47
+ *
48
+ * @param organization Organization name
49
+ * @param project Project name
50
+ * @param pat Personal Access Token
51
+ * @returns Array of teams
52
+ */
53
+ export declare function fetchTeamsForProject(organization: string, project: string, pat: string): Promise<AdoTeam[]>;
54
+ /**
55
+ * Fetch area paths for a project
56
+ *
57
+ * Uses Azure DevOps REST API: GET /{organization}/{project}/_apis/wit/classificationnodes/areas
58
+ *
59
+ * @param organization Organization name
60
+ * @param project Project name
61
+ * @param pat Personal Access Token
62
+ * @returns Array of area paths (flattened hierarchy)
63
+ */
64
+ export declare function fetchAreaPathsForProject(organization: string, project: string, pat: string): Promise<AdoAreaPath[]>;
65
+ /**
66
+ * Fetch iteration paths for a project
67
+ *
68
+ * @param organization Organization name
69
+ * @param project Project name
70
+ * @param pat Personal Access Token
71
+ * @returns Array of iteration paths (flattened hierarchy)
72
+ */
73
+ export declare function fetchIterationPathsForProject(organization: string, project: string, pat: string): Promise<AdoIterationPath[]>;
74
+ /**
75
+ * Resolve area path names to full paths
76
+ *
77
+ * @param organization Organization name
78
+ * @param project Project name
79
+ * @param pat Personal Access Token
80
+ * @param areaPathNames Array of area path names (can be partial)
81
+ * @returns Map of area path name → full path
82
+ */
83
+ export declare function resolveAreaPathNames(organization: string, project: string, pat: string, areaPathNames: string[]): Promise<Map<string, string>>;
84
+ /**
85
+ * Get full area paths for a list of names (helper function)
86
+ *
87
+ * @param organization Organization name
88
+ * @param project Project name
89
+ * @param pat Personal Access Token
90
+ * @param areaPathNames Array of area path names
91
+ * @returns Array of full area paths (skips paths not found)
92
+ */
93
+ export declare function getAreaPaths(organization: string, project: string, pat: string, areaPathNames: string[]): Promise<string[]>;
94
+ //# sourceMappingURL=ado-board-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ado-board-resolver.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-board-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,EAAE,CAAC,CAiBpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,EAAE,CAAC,CAmBxB;AA+BD;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAmB7B;AA+BD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAsC9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Azure DevOps Team & Area Path Resolution for Hierarchical Sync
3
+ *
4
+ * Resolves team names and area paths for use in WIQL queries.
5
+ * Azure DevOps organizes work by:
6
+ * - Teams (organizational unit)
7
+ * - Area Paths (hierarchical work categorization)
8
+ * - Iteration Paths (sprints/time-based organization)
9
+ */
10
+ import https from 'https';
11
+ /**
12
+ * Fetch all teams for an ADO project
13
+ *
14
+ * Uses Azure DevOps REST API: GET /{organization}/_apis/projects/{project}/teams
15
+ *
16
+ * @param organization Organization name
17
+ * @param project Project name
18
+ * @param pat Personal Access Token
19
+ * @returns Array of teams
20
+ */
21
+ export async function fetchTeamsForProject(organization, project, pat) {
22
+ console.log(`🔍 Fetching teams for project: ${project}`);
23
+ try {
24
+ const url = `https://dev.azure.com/${organization}/_apis/projects/${project}/teams?api-version=7.1`;
25
+ const response = await makeRequest(url, pat);
26
+ const teams = response.value || [];
27
+ console.log(`✅ Found ${teams.length} team(s) for project ${project}`);
28
+ return teams;
29
+ }
30
+ catch (error) {
31
+ console.error(`❌ Error fetching teams for ${project}:`, error.message);
32
+ throw error;
33
+ }
34
+ }
35
+ /**
36
+ * Fetch area paths for a project
37
+ *
38
+ * Uses Azure DevOps REST API: GET /{organization}/{project}/_apis/wit/classificationnodes/areas
39
+ *
40
+ * @param organization Organization name
41
+ * @param project Project name
42
+ * @param pat Personal Access Token
43
+ * @returns Array of area paths (flattened hierarchy)
44
+ */
45
+ export async function fetchAreaPathsForProject(organization, project, pat) {
46
+ console.log(`🔍 Fetching area paths for project: ${project}`);
47
+ try {
48
+ const url = `https://dev.azure.com/${organization}/${project}/_apis/wit/classificationnodes/areas?$depth=10&api-version=7.1`;
49
+ const response = await makeRequest(url, pat);
50
+ // Flatten hierarchy into array
51
+ const areaPaths = [];
52
+ flattenAreaPaths(response, areaPaths, project);
53
+ console.log(`✅ Found ${areaPaths.length} area path(s) for project ${project}`);
54
+ return areaPaths;
55
+ }
56
+ catch (error) {
57
+ console.error(`❌ Error fetching area paths for ${project}:`, error.message);
58
+ throw error;
59
+ }
60
+ }
61
+ /**
62
+ * Flatten area path hierarchy into flat array
63
+ */
64
+ function flattenAreaPaths(node, result, projectName, parentPath = '') {
65
+ if (!node)
66
+ return;
67
+ const fullPath = parentPath ? `${parentPath}\\${node.name}` : node.name;
68
+ result.push({
69
+ id: node.id,
70
+ identifier: node.identifier,
71
+ name: node.name,
72
+ path: fullPath,
73
+ hasChildren: node.hasChildren || false,
74
+ });
75
+ // Recursively process children
76
+ if (node.children && node.children.length > 0) {
77
+ for (const child of node.children) {
78
+ flattenAreaPaths(child, result, projectName, fullPath);
79
+ }
80
+ }
81
+ }
82
+ /**
83
+ * Fetch iteration paths for a project
84
+ *
85
+ * @param organization Organization name
86
+ * @param project Project name
87
+ * @param pat Personal Access Token
88
+ * @returns Array of iteration paths (flattened hierarchy)
89
+ */
90
+ export async function fetchIterationPathsForProject(organization, project, pat) {
91
+ console.log(`🔍 Fetching iteration paths for project: ${project}`);
92
+ try {
93
+ const url = `https://dev.azure.com/${organization}/${project}/_apis/wit/classificationnodes/iterations?$depth=10&api-version=7.1`;
94
+ const response = await makeRequest(url, pat);
95
+ // Flatten hierarchy into array
96
+ const iterationPaths = [];
97
+ flattenIterationPaths(response, iterationPaths, project);
98
+ console.log(`✅ Found ${iterationPaths.length} iteration path(s) for project ${project}`);
99
+ return iterationPaths;
100
+ }
101
+ catch (error) {
102
+ console.error(`❌ Error fetching iteration paths for ${project}:`, error.message);
103
+ throw error;
104
+ }
105
+ }
106
+ /**
107
+ * Flatten iteration path hierarchy into flat array
108
+ */
109
+ function flattenIterationPaths(node, result, projectName, parentPath = '') {
110
+ if (!node)
111
+ return;
112
+ const fullPath = parentPath ? `${parentPath}\\${node.name}` : node.name;
113
+ result.push({
114
+ id: node.id,
115
+ identifier: node.identifier,
116
+ name: node.name,
117
+ path: fullPath,
118
+ attributes: node.attributes || {},
119
+ });
120
+ // Recursively process children
121
+ if (node.children && node.children.length > 0) {
122
+ for (const child of node.children) {
123
+ flattenIterationPaths(child, result, projectName, fullPath);
124
+ }
125
+ }
126
+ }
127
+ /**
128
+ * Resolve area path names to full paths
129
+ *
130
+ * @param organization Organization name
131
+ * @param project Project name
132
+ * @param pat Personal Access Token
133
+ * @param areaPathNames Array of area path names (can be partial)
134
+ * @returns Map of area path name → full path
135
+ */
136
+ export async function resolveAreaPathNames(organization, project, pat, areaPathNames) {
137
+ if (!areaPathNames || areaPathNames.length === 0) {
138
+ return new Map();
139
+ }
140
+ const areaPaths = await fetchAreaPathsForProject(organization, project, pat);
141
+ const pathMap = new Map();
142
+ for (const areaPathName of areaPathNames) {
143
+ // Try exact match first
144
+ const exactMatch = areaPaths.find((ap) => ap.path === areaPathName || ap.name === areaPathName);
145
+ if (exactMatch) {
146
+ pathMap.set(areaPathName, exactMatch.path);
147
+ console.log(`✅ Resolved area path "${areaPathName}" → "${exactMatch.path}"`);
148
+ continue;
149
+ }
150
+ // Try partial match (contains)
151
+ const partialMatch = areaPaths.find((ap) => ap.path.toLowerCase().includes(areaPathName.toLowerCase()) ||
152
+ ap.name.toLowerCase().includes(areaPathName.toLowerCase()));
153
+ if (partialMatch) {
154
+ pathMap.set(areaPathName, partialMatch.path);
155
+ console.log(`✅ Resolved area path "${areaPathName}" → "${partialMatch.path}" (partial match)`);
156
+ }
157
+ else {
158
+ console.warn(`⚠️ Area path "${areaPathName}" not found in project ${project}`);
159
+ // Don't throw - just skip (user may have typo or path doesn't exist)
160
+ }
161
+ }
162
+ return pathMap;
163
+ }
164
+ /**
165
+ * Get full area paths for a list of names (helper function)
166
+ *
167
+ * @param organization Organization name
168
+ * @param project Project name
169
+ * @param pat Personal Access Token
170
+ * @param areaPathNames Array of area path names
171
+ * @returns Array of full area paths (skips paths not found)
172
+ */
173
+ export async function getAreaPaths(organization, project, pat, areaPathNames) {
174
+ const pathMap = await resolveAreaPathNames(organization, project, pat, areaPathNames);
175
+ return Array.from(pathMap.values());
176
+ }
177
+ /**
178
+ * Make HTTPS request to ADO API
179
+ */
180
+ function makeRequest(url, pat) {
181
+ return new Promise((resolve, reject) => {
182
+ const { hostname, pathname, search } = new URL(url);
183
+ const authHeader = 'Basic ' + Buffer.from(`:${pat}`).toString('base64');
184
+ const options = {
185
+ hostname,
186
+ path: pathname + search,
187
+ method: 'GET',
188
+ headers: {
189
+ Authorization: authHeader,
190
+ Accept: 'application/json',
191
+ },
192
+ };
193
+ const req = https.request(options, (res) => {
194
+ let data = '';
195
+ res.on('data', (chunk) => {
196
+ data += chunk;
197
+ });
198
+ res.on('end', () => {
199
+ try {
200
+ const parsed = JSON.parse(data);
201
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
202
+ resolve(parsed);
203
+ }
204
+ else {
205
+ reject(new Error(`HTTP ${res.statusCode}: ${parsed.message || data}`));
206
+ }
207
+ }
208
+ catch (error) {
209
+ reject(new Error(`Failed to parse response: ${data}`));
210
+ }
211
+ });
212
+ });
213
+ req.on('error', (error) => {
214
+ reject(error);
215
+ });
216
+ req.end();
217
+ });
218
+ }
219
+ //# sourceMappingURL=ado-board-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ado-board-resolver.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-board-resolver.ts"],"names":[],"mappings":"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"}
@@ -96,5 +96,21 @@ export declare class AdoSpecSync {
96
96
  * Update ADO User Story
97
97
  */
98
98
  private updateStory;
99
+ /**
100
+ * Map SpecWeave priority to ADO priority value
101
+ *
102
+ * ADO Priority field uses 1-4 scale:
103
+ * - 1 = Highest (P0)
104
+ * - 2 = High (P1)
105
+ * - 3 = Medium (P2)
106
+ * - 4 = Low (P3)
107
+ */
108
+ private mapPriorityToAdo;
109
+ /**
110
+ * Map SpecWeave type to ADO work item type
111
+ *
112
+ * Supports: Feature, User Story, Bug, Task
113
+ */
114
+ private mapTypeToAdo;
99
115
  }
100
116
  //# sourceMappingURL=ado-spec-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ado-spec-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAGL,cAAc,EAEf,MAAM,0CAA0C,CAAC;AAIlD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,SAAS,EAAE,WAAW,GAAE,MAAsB;IAkBlE;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA+D5D;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsE1D;;OAEG;YACW,gBAAgB;IAwC9B;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,eAAe;IAkD7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA+BlC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;YACW,eAAe;IAwB7B;;OAEG;YACW,gBAAgB;IAiB9B;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,gBAAgB;IA8B9B;;OAEG;YACW,WAAW;IAkDzB;;OAEG;YACW,WAAW;CAgC1B"}
1
+ {"version":3,"file":"ado-spec-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAGL,cAAc,EAEf,MAAM,0CAA0C,CAAC;AAIlD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,SAAS,EAAE,WAAW,GAAE,MAAsB;IAkBlE;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA+D5D;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsE1D;;OAEG;YACW,gBAAgB;IAiD9B;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,eAAe;IAmD7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA+BlC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;YACW,eAAe;IAwB7B;;OAEG;YACW,gBAAgB;IAiB9B;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,gBAAgB;IA8B9B;;OAEG;YACW,WAAW;IA6DzB;;OAEG;YACW,WAAW;IAiCzB;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAgBrB"}
@@ -160,6 +160,8 @@ export class AdoSpecSync {
160
160
  const featureTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
161
161
  const featureDescription = this.generateFeatureDescription(spec);
162
162
  const tags = [`spec:${spec.metadata.id}`, `priority:${spec.metadata.priority}`].join('; ');
163
+ // Determine work item type (supports Bug for bug-type specs)
164
+ const workItemType = this.mapTypeToAdo(spec.metadata.type, 'Feature');
163
165
  const payload = [
164
166
  {
165
167
  op: 'add',
@@ -174,12 +176,18 @@ export class AdoSpecSync {
174
176
  {
175
177
  op: 'add',
176
178
  path: '/fields/System.WorkItemType',
177
- value: 'Feature'
179
+ value: workItemType
178
180
  },
179
181
  {
180
182
  op: 'add',
181
183
  path: '/fields/System.Tags',
182
184
  value: tags
185
+ },
186
+ {
187
+ // Set native ADO Priority field (P0→1, P1→2, P2→3, P3→4)
188
+ op: 'add',
189
+ path: '/fields/Microsoft.VSTS.Common.Priority',
190
+ value: this.mapPriorityToAdo(spec.metadata.priority)
183
191
  }
184
192
  ];
185
193
  const response = await this.client.post('/wit/workitems/$Feature?api-version=7.0', payload);
@@ -252,7 +260,8 @@ export class AdoSpecSync {
252
260
  title: storyTitle,
253
261
  description: storyDescription,
254
262
  parentId: featureId,
255
- tags: [`user-story`, `spec:${spec.metadata.id}`, `priority:${us.priority}`].join('; ')
263
+ tags: [`user-story`, `spec:${spec.metadata.id}`, `priority:${us.priority}`].join('; '),
264
+ priority: us.priority
256
265
  });
257
266
  created.push(us.id);
258
267
  console.log(` ✅ Created ${us.id} → User Story #${newStory.id}`);
@@ -398,6 +407,8 @@ ${acList}
398
407
  * Create ADO User Story
399
408
  */
400
409
  async createStory(story) {
410
+ // Determine work item type (supports Bug for bug-type stories)
411
+ const workItemType = this.mapTypeToAdo(story.type, 'User Story');
401
412
  const payload = [
402
413
  {
403
414
  op: 'add',
@@ -412,13 +423,19 @@ ${acList}
412
423
  {
413
424
  op: 'add',
414
425
  path: '/fields/System.WorkItemType',
415
- value: 'User Story'
426
+ value: workItemType
416
427
  },
417
428
  {
418
429
  op: 'add',
419
430
  path: '/fields/System.Tags',
420
431
  value: story.tags
421
432
  },
433
+ {
434
+ // Set native ADO Priority field
435
+ op: 'add',
436
+ path: '/fields/Microsoft.VSTS.Common.Priority',
437
+ value: this.mapPriorityToAdo(story.priority)
438
+ },
422
439
  {
423
440
  op: 'add',
424
441
  path: '/relations/-',
@@ -467,5 +484,48 @@ ${acList}
467
484
  }
468
485
  await this.client.patch(`/wit/workitems/${storyId}?api-version=7.0`, payload);
469
486
  }
487
+ /**
488
+ * Map SpecWeave priority to ADO priority value
489
+ *
490
+ * ADO Priority field uses 1-4 scale:
491
+ * - 1 = Highest (P0)
492
+ * - 2 = High (P1)
493
+ * - 3 = Medium (P2)
494
+ * - 4 = Low (P3)
495
+ */
496
+ mapPriorityToAdo(priority) {
497
+ if (!priority)
498
+ return 3; // Default to Medium
499
+ const map = {
500
+ P0: 1,
501
+ P1: 2,
502
+ P2: 3,
503
+ P3: 4,
504
+ p0: 1,
505
+ p1: 2,
506
+ p2: 3,
507
+ p3: 4
508
+ };
509
+ return map[priority] || 3;
510
+ }
511
+ /**
512
+ * Map SpecWeave type to ADO work item type
513
+ *
514
+ * Supports: Feature, User Story, Bug, Task
515
+ */
516
+ mapTypeToAdo(type, defaultType = 'Feature') {
517
+ if (!type)
518
+ return defaultType;
519
+ const normalizedType = type.toLowerCase();
520
+ const map = {
521
+ bug: 'Bug',
522
+ feature: 'Feature',
523
+ epic: 'Feature',
524
+ story: 'User Story',
525
+ task: 'Task',
526
+ enhancement: 'Feature'
527
+ };
528
+ return map[normalizedType] || defaultType;
529
+ }
470
530
  }
471
531
  //# sourceMappingURL=ado-spec-sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ado-spec-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ado-spec-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@
15
15
  */
16
16
  export interface ExternalStatus {
17
17
  state: string;
18
+ tags?: string[];
18
19
  }
19
20
  /**
20
21
  * Azure DevOps Status Sync
@@ -34,14 +35,22 @@ export declare class AdoStatusSync {
34
35
  */
35
36
  getStatus(workItemId: number): Promise<ExternalStatus>;
36
37
  /**
37
- * Update ADO work item state
38
+ * Update ADO work item state and tags
38
39
  *
39
- * Uses JSON Patch format to update System.State field.
40
+ * Uses JSON Patch format to update System.State and System.Tags fields.
41
+ * Tags are appended to existing tags, not replaced.
40
42
  *
41
43
  * @param workItemId - ADO work item ID (e.g., 123)
42
- * @param status - Desired status
44
+ * @param status - Desired status with state and optional tags
43
45
  */
44
46
  updateStatus(workItemId: number, status: ExternalStatus): Promise<void>;
47
+ /**
48
+ * Get current tags from ADO work item
49
+ *
50
+ * @param workItemId - ADO work item ID
51
+ * @returns Array of current tags
52
+ */
53
+ private getCurrentTags;
45
54
  /**
46
55
  * Post comment about status change to ADO work item
47
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ado-status-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-status-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAGtB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,MAAM;IAmB7B;;;;;OAKG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5D;;;;;;;OAOG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7E;;;;;;OAMG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;CAejB"}
1
+ {"version":3,"file":"ado-status-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-status-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAGtB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,MAAM;IAmB7B;;;;;OAKG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5D;;;;;;;;OAQG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC7E;;;;;OAKG;YACW,cAAc;IAe5B;;;;;;OAMG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;CAejB"}
@@ -46,12 +46,13 @@ export class AdoStatusSync {
46
46
  };
47
47
  }
48
48
  /**
49
- * Update ADO work item state
49
+ * Update ADO work item state and tags
50
50
  *
51
- * Uses JSON Patch format to update System.State field.
51
+ * Uses JSON Patch format to update System.State and System.Tags fields.
52
+ * Tags are appended to existing tags, not replaced.
52
53
  *
53
54
  * @param workItemId - ADO work item ID (e.g., 123)
54
- * @param status - Desired status
55
+ * @param status - Desired status with state and optional tags
55
56
  */
56
57
  async updateStatus(workItemId, status) {
57
58
  // ADO uses JSON Patch format for updates
@@ -62,8 +63,41 @@ export class AdoStatusSync {
62
63
  value: status.state
63
64
  }
64
65
  ];
66
+ // Add status tags if provided
67
+ if (status.tags && status.tags.length > 0) {
68
+ // Fetch current tags to preserve them
69
+ const currentTags = await this.getCurrentTags(workItemId);
70
+ // Remove old status tags (tags that match known status patterns)
71
+ const statusTagPatterns = ['Planning', 'In Progress', 'Paused', 'Completed', 'Abandoned', 'On Hold'];
72
+ const preservedTags = currentTags.filter(tag => !statusTagPatterns.some(pattern => tag.toLowerCase() === pattern.toLowerCase()));
73
+ // Combine preserved tags with new status tags
74
+ const allTags = [...new Set([...preservedTags, ...status.tags])];
75
+ patch.push({
76
+ op: 'add',
77
+ path: '/fields/System.Tags',
78
+ value: allTags.join('; ')
79
+ });
80
+ }
65
81
  await this.client.patch(`/wit/workitems/${workItemId}?api-version=7.0`, patch);
66
82
  }
83
+ /**
84
+ * Get current tags from ADO work item
85
+ *
86
+ * @param workItemId - ADO work item ID
87
+ * @returns Array of current tags
88
+ */
89
+ async getCurrentTags(workItemId) {
90
+ try {
91
+ const response = await this.client.get(`/wit/workitems/${workItemId}?api-version=7.0&$select=System.Tags`);
92
+ const tagsString = response.data.fields?.['System.Tags'] || '';
93
+ if (!tagsString)
94
+ return [];
95
+ return tagsString.split(';').map((tag) => tag.trim()).filter(Boolean);
96
+ }
97
+ catch {
98
+ return [];
99
+ }
100
+ }
67
101
  /**
68
102
  * Post comment about status change to ADO work item
69
103
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ado-status-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-status-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAwB,MAAM,OAAO,CAAC;AAS7C;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAKxB,YACE,YAAoB,EACpB,OAAe,EACf,mBAA2B;QAE3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,wBAAwB;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,yBAAyB,YAAY,IAAI,OAAO,QAAQ;YACjE,IAAI,EAAE;gBACJ,QAAQ,EAAE,EAAE,EAAE,qBAAqB;gBACnC,QAAQ,EAAE,mBAAmB;aAC9B;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,6BAA6B;gBAC7C,QAAQ,EAAE,kBAAkB;aAC7B;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,kBAAkB,UAAU,kBAAkB,CAC/C,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,MAAsB;QAC3D,yCAAyC;QACzC,MAAM,KAAK,GAAG;YACZ;gBACE,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB;SACF,CAAC;QAEF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACrB,kBAAkB,UAAU,kBAAkB,EAC9C,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CACrB,UAAkB,EAClB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,IAAI,GAAG,sBAAsB;YACjC,6BAA6B;YAC7B,WAAW,SAAS,IAAI;YACxB,SAAS,SAAS,IAAI;YACtB,WAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM;YACzC,uBAAuB,CAAC;QAE1B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,kBAAkB,UAAU,qCAAqC,EACjE;YACE,IAAI;SACL,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"ado-status-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-status-sync.ts"],"names":[],"mappings":"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"}