specweave 0.28.68 → 0.29.1

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 (318) hide show
  1. package/CLAUDE.md +3 -2
  2. package/README.md +19 -2
  3. package/dist/src/cli/commands/discrepancies.d.ts +89 -0
  4. package/dist/src/cli/commands/discrepancies.d.ts.map +1 -0
  5. package/dist/src/cli/commands/discrepancies.js +385 -0
  6. package/dist/src/cli/commands/discrepancies.js.map +1 -0
  7. package/dist/src/cli/commands/notifications.d.ts +70 -0
  8. package/dist/src/cli/commands/notifications.d.ts.map +1 -0
  9. package/dist/src/cli/commands/notifications.js +236 -0
  10. package/dist/src/cli/commands/notifications.js.map +1 -0
  11. package/dist/src/cli/commands/sync-logs.d.ts +54 -0
  12. package/dist/src/cli/commands/sync-logs.d.ts.map +1 -0
  13. package/dist/src/cli/commands/sync-logs.js +240 -0
  14. package/dist/src/cli/commands/sync-logs.js.map +1 -0
  15. package/dist/src/cli/commands/sync-monitor.d.ts +42 -0
  16. package/dist/src/cli/commands/sync-monitor.d.ts.map +1 -0
  17. package/dist/src/cli/commands/sync-monitor.js +191 -0
  18. package/dist/src/cli/commands/sync-monitor.js.map +1 -0
  19. package/dist/src/cli/helpers/init/brownfield-analysis.d.ts +45 -0
  20. package/dist/src/cli/helpers/init/brownfield-analysis.d.ts.map +1 -0
  21. package/dist/src/cli/helpers/init/brownfield-analysis.js +431 -0
  22. package/dist/src/cli/helpers/init/brownfield-analysis.js.map +1 -0
  23. package/dist/src/cli/helpers/init/index.d.ts +1 -0
  24. package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
  25. package/dist/src/cli/helpers/init/index.js +2 -0
  26. package/dist/src/cli/helpers/init/index.js.map +1 -1
  27. package/dist/src/cli/workers/brownfield-worker.d.ts +66 -0
  28. package/dist/src/cli/workers/brownfield-worker.d.ts.map +1 -0
  29. package/dist/src/cli/workers/brownfield-worker.js +417 -0
  30. package/dist/src/cli/workers/brownfield-worker.js.map +1 -0
  31. package/dist/src/core/background/brownfield-launcher.d.ts +86 -0
  32. package/dist/src/core/background/brownfield-launcher.d.ts.map +1 -0
  33. package/dist/src/core/background/brownfield-launcher.js +295 -0
  34. package/dist/src/core/background/brownfield-launcher.js.map +1 -0
  35. package/dist/src/core/background/index.d.ts +2 -0
  36. package/dist/src/core/background/index.d.ts.map +1 -1
  37. package/dist/src/core/background/index.js +2 -0
  38. package/dist/src/core/background/index.js.map +1 -1
  39. package/dist/src/core/background/types.d.ts +23 -2
  40. package/dist/src/core/background/types.d.ts.map +1 -1
  41. package/dist/src/core/config/index.d.ts +1 -0
  42. package/dist/src/core/config/index.d.ts.map +1 -1
  43. package/dist/src/core/config/index.js +1 -0
  44. package/dist/src/core/config/index.js.map +1 -1
  45. package/dist/src/core/config/types.d.ts +6 -0
  46. package/dist/src/core/config/types.d.ts.map +1 -1
  47. package/dist/src/core/config/types.js.map +1 -1
  48. package/dist/src/core/dashboard/dashboard-data.d.ts +156 -0
  49. package/dist/src/core/dashboard/dashboard-data.d.ts.map +1 -0
  50. package/dist/src/core/dashboard/dashboard-data.js +191 -0
  51. package/dist/src/core/dashboard/dashboard-data.js.map +1 -0
  52. package/dist/src/core/dashboard/index.d.ts +9 -0
  53. package/dist/src/core/dashboard/index.d.ts.map +1 -0
  54. package/dist/src/core/dashboard/index.js +9 -0
  55. package/dist/src/core/dashboard/index.js.map +1 -0
  56. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts +77 -0
  57. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts.map +1 -0
  58. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js +286 -0
  59. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js.map +1 -0
  60. package/dist/src/core/discrepancy/analyzers/index.d.ts +8 -0
  61. package/dist/src/core/discrepancy/analyzers/index.d.ts.map +1 -0
  62. package/dist/src/core/discrepancy/analyzers/index.js +8 -0
  63. package/dist/src/core/discrepancy/analyzers/index.js.map +1 -0
  64. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.d.ts +96 -0
  65. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.d.ts.map +1 -0
  66. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.js +247 -0
  67. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.js.map +1 -0
  68. package/dist/src/core/discrepancy/brownfield-manager.d.ts +88 -0
  69. package/dist/src/core/discrepancy/brownfield-manager.d.ts.map +1 -0
  70. package/dist/src/core/discrepancy/brownfield-manager.js +520 -0
  71. package/dist/src/core/discrepancy/brownfield-manager.js.map +1 -0
  72. package/dist/src/core/discrepancy/brownfield-types.d.ts +174 -0
  73. package/dist/src/core/discrepancy/brownfield-types.d.ts.map +1 -0
  74. package/dist/src/core/discrepancy/brownfield-types.js +11 -0
  75. package/dist/src/core/discrepancy/brownfield-types.js.map +1 -0
  76. package/dist/src/core/discrepancy/detector.d.ts +92 -0
  77. package/dist/src/core/discrepancy/detector.d.ts.map +1 -0
  78. package/dist/src/core/discrepancy/detector.js +346 -0
  79. package/dist/src/core/discrepancy/detector.js.map +1 -0
  80. package/dist/src/core/discrepancy/increment-generator.d.ts +51 -0
  81. package/dist/src/core/discrepancy/increment-generator.d.ts.map +1 -0
  82. package/dist/src/core/discrepancy/increment-generator.js +234 -0
  83. package/dist/src/core/discrepancy/increment-generator.js.map +1 -0
  84. package/dist/src/core/discrepancy/index.d.ts +18 -0
  85. package/dist/src/core/discrepancy/index.d.ts.map +1 -0
  86. package/dist/src/core/discrepancy/index.js +24 -0
  87. package/dist/src/core/discrepancy/index.js.map +1 -0
  88. package/dist/src/core/discrepancy/severity-classifier.d.ts +81 -0
  89. package/dist/src/core/discrepancy/severity-classifier.d.ts.map +1 -0
  90. package/dist/src/core/discrepancy/severity-classifier.js +289 -0
  91. package/dist/src/core/discrepancy/severity-classifier.js.map +1 -0
  92. package/dist/src/core/discrepancy/spec-parser.d.ts +74 -0
  93. package/dist/src/core/discrepancy/spec-parser.d.ts.map +1 -0
  94. package/dist/src/core/discrepancy/spec-parser.js +213 -0
  95. package/dist/src/core/discrepancy/spec-parser.js.map +1 -0
  96. package/dist/src/core/discrepancy/update-recommender.d.ts +77 -0
  97. package/dist/src/core/discrepancy/update-recommender.d.ts.map +1 -0
  98. package/dist/src/core/discrepancy/update-recommender.js +323 -0
  99. package/dist/src/core/discrepancy/update-recommender.js.map +1 -0
  100. package/dist/src/core/living-docs/living-docs-sync.d.ts +13 -16
  101. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  102. package/dist/src/core/living-docs/living-docs-sync.js +31 -112
  103. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  104. package/dist/src/core/logs/index.d.ts +10 -0
  105. package/dist/src/core/logs/index.d.ts.map +1 -0
  106. package/dist/src/core/logs/index.js +10 -0
  107. package/dist/src/core/logs/index.js.map +1 -0
  108. package/dist/src/core/logs/log-aggregator.d.ts +130 -0
  109. package/dist/src/core/logs/log-aggregator.d.ts.map +1 -0
  110. package/dist/src/core/logs/log-aggregator.js +206 -0
  111. package/dist/src/core/logs/log-aggregator.js.map +1 -0
  112. package/dist/src/core/logs/log-exporter.d.ts +81 -0
  113. package/dist/src/core/logs/log-exporter.d.ts.map +1 -0
  114. package/dist/src/core/logs/log-exporter.js +141 -0
  115. package/dist/src/core/logs/log-exporter.js.map +1 -0
  116. package/dist/src/core/notifications/command-integration.d.ts +82 -0
  117. package/dist/src/core/notifications/command-integration.d.ts.map +1 -0
  118. package/dist/src/core/notifications/command-integration.js +80 -0
  119. package/dist/src/core/notifications/command-integration.js.map +1 -0
  120. package/dist/src/core/notifications/index.d.ts +12 -0
  121. package/dist/src/core/notifications/index.d.ts.map +1 -0
  122. package/dist/src/core/notifications/index.js +12 -0
  123. package/dist/src/core/notifications/index.js.map +1 -0
  124. package/dist/src/core/notifications/notification-display.d.ts +70 -0
  125. package/dist/src/core/notifications/notification-display.d.ts.map +1 -0
  126. package/dist/src/core/notifications/notification-display.js +177 -0
  127. package/dist/src/core/notifications/notification-display.js.map +1 -0
  128. package/dist/src/core/notifications/notification-manager.d.ts +126 -0
  129. package/dist/src/core/notifications/notification-manager.d.ts.map +1 -0
  130. package/dist/src/core/notifications/notification-manager.js +287 -0
  131. package/dist/src/core/notifications/notification-manager.js.map +1 -0
  132. package/dist/src/core/notifications/notification-types.d.ts +159 -0
  133. package/dist/src/core/notifications/notification-types.d.ts.map +1 -0
  134. package/dist/src/core/notifications/notification-types.js +93 -0
  135. package/dist/src/core/notifications/notification-types.js.map +1 -0
  136. package/dist/src/core/scheduler/index.d.ts +11 -0
  137. package/dist/src/core/scheduler/index.d.ts.map +1 -0
  138. package/dist/src/core/scheduler/index.js +11 -0
  139. package/dist/src/core/scheduler/index.js.map +1 -0
  140. package/dist/src/core/scheduler/job-scheduler.d.ts +179 -0
  141. package/dist/src/core/scheduler/job-scheduler.d.ts.map +1 -0
  142. package/dist/src/core/scheduler/job-scheduler.js +282 -0
  143. package/dist/src/core/scheduler/job-scheduler.js.map +1 -0
  144. package/dist/src/core/scheduler/schedule-persistence.d.ts +83 -0
  145. package/dist/src/core/scheduler/schedule-persistence.d.ts.map +1 -0
  146. package/dist/src/core/scheduler/schedule-persistence.js +180 -0
  147. package/dist/src/core/scheduler/schedule-persistence.js.map +1 -0
  148. package/dist/src/core/scheduler/scheduled-job.d.ts +188 -0
  149. package/dist/src/core/scheduler/scheduled-job.d.ts.map +1 -0
  150. package/dist/src/core/scheduler/scheduled-job.js +182 -0
  151. package/dist/src/core/scheduler/scheduled-job.js.map +1 -0
  152. package/dist/src/core/sync/permission-enforcer.d.ts +206 -0
  153. package/dist/src/core/sync/permission-enforcer.d.ts.map +1 -0
  154. package/dist/src/core/sync/permission-enforcer.js +268 -0
  155. package/dist/src/core/sync/permission-enforcer.js.map +1 -0
  156. package/dist/src/core/sync/sync-audit-logger.d.ts +217 -0
  157. package/dist/src/core/sync/sync-audit-logger.d.ts.map +1 -0
  158. package/dist/src/core/sync/sync-audit-logger.js +327 -0
  159. package/dist/src/core/sync/sync-audit-logger.js.map +1 -0
  160. package/dist/src/core/sync/sync-interceptor.d.ts +190 -0
  161. package/dist/src/core/sync/sync-interceptor.d.ts.map +1 -0
  162. package/dist/src/core/sync/sync-interceptor.js +224 -0
  163. package/dist/src/core/sync/sync-interceptor.js.map +1 -0
  164. package/dist/src/core/types/increment-metadata.d.ts +5 -2
  165. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  166. package/dist/src/core/types/sync-config.d.ts +267 -0
  167. package/dist/src/core/types/sync-config.d.ts.map +1 -0
  168. package/dist/src/core/types/sync-config.js +304 -0
  169. package/dist/src/core/types/sync-config.js.map +1 -0
  170. package/dist/src/hooks/index.d.ts +11 -0
  171. package/dist/src/hooks/index.d.ts.map +1 -0
  172. package/dist/src/hooks/index.js +11 -0
  173. package/dist/src/hooks/index.js.map +1 -0
  174. package/dist/src/hooks/platform.d.ts +125 -0
  175. package/dist/src/hooks/platform.d.ts.map +1 -0
  176. package/dist/src/hooks/platform.js +325 -0
  177. package/dist/src/hooks/platform.js.map +1 -0
  178. package/dist/src/hooks/processor.d.ts +20 -0
  179. package/dist/src/hooks/processor.d.ts.map +1 -0
  180. package/dist/src/hooks/processor.js +317 -0
  181. package/dist/src/hooks/processor.js.map +1 -0
  182. package/dist/src/hooks/scheduler-startup.d.ts +19 -0
  183. package/dist/src/hooks/scheduler-startup.d.ts.map +1 -0
  184. package/dist/src/hooks/scheduler-startup.js +92 -0
  185. package/dist/src/hooks/scheduler-startup.js.map +1 -0
  186. package/dist/src/hooks/session-start.d.ts +16 -0
  187. package/dist/src/hooks/session-start.d.ts.map +1 -0
  188. package/dist/src/hooks/session-start.js +92 -0
  189. package/dist/src/hooks/session-start.js.map +1 -0
  190. package/dist/src/importers/duplicate-detector.d.ts +13 -2
  191. package/dist/src/importers/duplicate-detector.d.ts.map +1 -1
  192. package/dist/src/importers/duplicate-detector.js +21 -2
  193. package/dist/src/importers/duplicate-detector.js.map +1 -1
  194. package/dist/src/importers/item-converter.d.ts +41 -2
  195. package/dist/src/importers/item-converter.d.ts.map +1 -1
  196. package/dist/src/importers/item-converter.js +225 -38
  197. package/dist/src/importers/item-converter.js.map +1 -1
  198. package/dist/src/living-docs/fs-id-allocator.d.ts +7 -0
  199. package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
  200. package/dist/src/living-docs/fs-id-allocator.js +30 -4
  201. package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
  202. package/dist/src/sync/ado-sync-wrapper.d.ts +137 -0
  203. package/dist/src/sync/ado-sync-wrapper.d.ts.map +1 -0
  204. package/dist/src/sync/ado-sync-wrapper.js +148 -0
  205. package/dist/src/sync/ado-sync-wrapper.js.map +1 -0
  206. package/dist/src/sync/github-sync-wrapper.d.ts +195 -0
  207. package/dist/src/sync/github-sync-wrapper.d.ts.map +1 -0
  208. package/dist/src/sync/github-sync-wrapper.js +220 -0
  209. package/dist/src/sync/github-sync-wrapper.js.map +1 -0
  210. package/dist/src/sync/jira-sync-wrapper.d.ts +155 -0
  211. package/dist/src/sync/jira-sync-wrapper.d.ts.map +1 -0
  212. package/dist/src/sync/jira-sync-wrapper.js +175 -0
  213. package/dist/src/sync/jira-sync-wrapper.js.map +1 -0
  214. package/dist/src/utils/feature-id-derivation.d.ts +58 -0
  215. package/dist/src/utils/feature-id-derivation.d.ts.map +1 -0
  216. package/dist/src/utils/feature-id-derivation.js +77 -0
  217. package/dist/src/utils/feature-id-derivation.js.map +1 -0
  218. package/package.json +3 -1
  219. package/plugins/specweave/commands/specweave-discrepancies.md +141 -0
  220. package/plugins/specweave/commands/specweave-discrepancy-to-increment.md +160 -0
  221. package/plugins/specweave/commands/specweave-jobs.md +45 -2
  222. package/plugins/specweave/commands/specweave-notifications.md +92 -0
  223. package/plugins/specweave/commands/specweave-sync-logs.md +131 -0
  224. package/plugins/specweave/commands/specweave-sync-monitor.md +57 -0
  225. package/plugins/specweave/hooks/hooks.json +3 -3
  226. package/plugins/specweave/hooks/lib/scheduler-startup.sh +72 -0
  227. package/plugins/specweave/hooks/universal/dispatcher.mjs +246 -0
  228. package/plugins/specweave/hooks/universal/session-start.cmd +16 -0
  229. package/plugins/specweave/hooks/universal/session-start.ps1 +16 -0
  230. package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +14 -5
  231. package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +5 -2
  232. package/plugins/specweave/skills/discrepancy-viewer.md +154 -0
  233. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +46 -0
  234. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +69 -0
  235. package/dist/plugins/specweave-github/lib/enhanced-github-sync.d.ts +0 -26
  236. package/dist/plugins/specweave-github/lib/enhanced-github-sync.d.ts.map +0 -1
  237. package/dist/plugins/specweave-github/lib/enhanced-github-sync.js +0 -249
  238. package/dist/plugins/specweave-github/lib/enhanced-github-sync.js.map +0 -1
  239. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts +0 -28
  240. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts.map +0 -1
  241. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js +0 -156
  242. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js.map +0 -1
  243. package/dist/src/core/sync/bidirectional-engine.d.ts +0 -119
  244. package/dist/src/core/sync/bidirectional-engine.d.ts.map +0 -1
  245. package/dist/src/core/sync/bidirectional-engine.js +0 -359
  246. package/dist/src/core/sync/bidirectional-engine.js.map +0 -1
  247. package/dist/src/core/sync/conflict-resolver.d.ts +0 -66
  248. package/dist/src/core/sync/conflict-resolver.d.ts.map +0 -1
  249. package/dist/src/core/sync/conflict-resolver.js +0 -108
  250. package/dist/src/core/sync/conflict-resolver.js.map +0 -1
  251. package/dist/src/core/sync/enhanced-content-builder.d.ts +0 -55
  252. package/dist/src/core/sync/enhanced-content-builder.d.ts.map +0 -1
  253. package/dist/src/core/sync/enhanced-content-builder.js +0 -203
  254. package/dist/src/core/sync/enhanced-content-builder.js.map +0 -1
  255. package/dist/src/core/sync/folder-mapper.d.ts +0 -71
  256. package/dist/src/core/sync/folder-mapper.d.ts.map +0 -1
  257. package/dist/src/core/sync/folder-mapper.js +0 -203
  258. package/dist/src/core/sync/folder-mapper.js.map +0 -1
  259. package/dist/src/core/sync/label-detector.d.ts +0 -66
  260. package/dist/src/core/sync/label-detector.d.ts.map +0 -1
  261. package/dist/src/core/sync/label-detector.js +0 -224
  262. package/dist/src/core/sync/label-detector.js.map +0 -1
  263. package/dist/src/core/sync/performance-optimizer.d.ts +0 -153
  264. package/dist/src/core/sync/performance-optimizer.d.ts.map +0 -1
  265. package/dist/src/core/sync/performance-optimizer.js +0 -220
  266. package/dist/src/core/sync/performance-optimizer.js.map +0 -1
  267. package/dist/src/core/sync/profile-selector.d.ts +0 -52
  268. package/dist/src/core/sync/profile-selector.d.ts.map +0 -1
  269. package/dist/src/core/sync/profile-selector.js +0 -179
  270. package/dist/src/core/sync/profile-selector.js.map +0 -1
  271. package/dist/src/core/sync/profile-validator.d.ts +0 -52
  272. package/dist/src/core/sync/profile-validator.d.ts.map +0 -1
  273. package/dist/src/core/sync/profile-validator.js +0 -170
  274. package/dist/src/core/sync/profile-validator.js.map +0 -1
  275. package/dist/src/core/sync/rate-limiter.d.ts +0 -116
  276. package/dist/src/core/sync/rate-limiter.d.ts.map +0 -1
  277. package/dist/src/core/sync/rate-limiter.js +0 -308
  278. package/dist/src/core/sync/rate-limiter.js.map +0 -1
  279. package/dist/src/core/sync/retry-handler.d.ts +0 -98
  280. package/dist/src/core/sync/retry-handler.d.ts.map +0 -1
  281. package/dist/src/core/sync/retry-handler.js +0 -196
  282. package/dist/src/core/sync/retry-handler.js.map +0 -1
  283. package/dist/src/core/sync/retry-logic.d.ts +0 -64
  284. package/dist/src/core/sync/retry-logic.d.ts.map +0 -1
  285. package/dist/src/core/sync/retry-logic.js +0 -165
  286. package/dist/src/core/sync/retry-logic.js.map +0 -1
  287. package/dist/src/core/sync/status-cache.d.ts +0 -91
  288. package/dist/src/core/sync/status-cache.d.ts.map +0 -1
  289. package/dist/src/core/sync/status-cache.js +0 -140
  290. package/dist/src/core/sync/status-cache.js.map +0 -1
  291. package/dist/src/core/sync/status-mapper.d.ts +0 -69
  292. package/dist/src/core/sync/status-mapper.d.ts.map +0 -1
  293. package/dist/src/core/sync/status-mapper.js +0 -90
  294. package/dist/src/core/sync/status-mapper.js.map +0 -1
  295. package/dist/src/core/sync/status-sync-engine.d.ts +0 -162
  296. package/dist/src/core/sync/status-sync-engine.d.ts.map +0 -1
  297. package/dist/src/core/sync/status-sync-engine.js +0 -347
  298. package/dist/src/core/sync/status-sync-engine.js.map +0 -1
  299. package/dist/src/core/sync/sync-event-logger.d.ts +0 -113
  300. package/dist/src/core/sync/sync-event-logger.d.ts.map +0 -1
  301. package/dist/src/core/sync/sync-event-logger.js +0 -141
  302. package/dist/src/core/sync/sync-event-logger.js.map +0 -1
  303. package/dist/src/core/sync/time-range-selector.d.ts +0 -48
  304. package/dist/src/core/sync/time-range-selector.d.ts.map +0 -1
  305. package/dist/src/core/sync/time-range-selector.js +0 -224
  306. package/dist/src/core/sync/time-range-selector.js.map +0 -1
  307. package/dist/src/core/sync/types.d.ts +0 -52
  308. package/dist/src/core/sync/types.d.ts.map +0 -1
  309. package/dist/src/core/sync/types.js +0 -5
  310. package/dist/src/core/sync/types.js.map +0 -1
  311. package/dist/src/core/sync/workflow-detector.d.ts +0 -95
  312. package/dist/src/core/sync/workflow-detector.d.ts.map +0 -1
  313. package/dist/src/core/sync/workflow-detector.js +0 -175
  314. package/dist/src/core/sync/workflow-detector.js.map +0 -1
  315. package/plugins/specweave-github/lib/enhanced-github-sync.js +0 -220
  316. package/plugins/specweave-github/lib/enhanced-github-sync.ts +0 -322
  317. package/plugins/specweave-jira/lib/enhanced-jira-sync.js +0 -134
  318. package/plugins/specweave-jira/lib/enhanced-jira-sync.ts +0 -196
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate-detector.js","sourceRoot":"","sources":["../../../src/importers/duplicate-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duplicate-detector.js","sourceRoot":"","sources":["../../../src/importers/duplicate-detector.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,8 @@ export interface ItemConverterOptions {
63
63
  autoArchiveAfterDays?: number;
64
64
  /** Callback for skipped duplicates */
65
65
  onDuplicateSkipped?: (externalId: string, existingUsId: string) => void;
66
+ /** Callback for parent change (file moved due to hierarchy update) */
67
+ onParentChanged?: (usId: string, oldFeatureId: string, newFeatureId: string, reason: string) => void;
66
68
  /** Callback for feature folder creation */
67
69
  onFeatureCreated?: (featureId: string, featurePath: string) => void;
68
70
  /** Callback for archived items */
@@ -130,11 +132,12 @@ export declare class ItemConverter {
130
132
  /**
131
133
  * Group items by feature (based on source repo, parent hierarchy, or labels)
132
134
  * CRITICAL FIX (2025-12-01): For ADO, group by parent Capability/Epic to preserve hierarchy
135
+ * CRITICAL FIX (2025-12-01): ADO orphans (no parent) get INDIVIDUAL folders, not 'default' group
133
136
  *
134
137
  * ADO Hierarchy: Capability → Epic → Feature → User Story → Task
135
138
  * - Capability/Epic items become the feature (group leader)
136
- * - User Stories are grouped under their parent
137
- * - Items without parent go into a default group
139
+ * - User Stories are grouped under their parent Epic/Capability
140
+ * - Items without parent (true orphans) get INDIVIDUAL FS-XXXE folders
138
141
  */
139
142
  private groupItemsByFeature;
140
143
  /**
@@ -168,12 +171,43 @@ export declare class ItemConverter {
168
171
  * @returns True if item is older than autoArchiveAfterDays threshold
169
172
  */
170
173
  private shouldAutoArchive;
174
+ /**
175
+ * Check if parent has changed between existing reference and new item
176
+ *
177
+ * CRITICAL (2025-12-01): Detects orphan → has parent, or parent ID change
178
+ *
179
+ * @param existingRef - Existing reference from living docs
180
+ * @param newItem - New item being imported
181
+ * @returns True if parent has changed and file should be moved
182
+ */
183
+ private hasParentChanged;
184
+ /**
185
+ * Handle parent change by moving file to new feature folder
186
+ *
187
+ * CRITICAL (2025-12-01): Moves US file when hierarchy changes on re-import
188
+ *
189
+ * @param existingRef - Existing reference with old location
190
+ * @param newItem - New item with updated parent info
191
+ * @param newFeatureId - New feature folder ID (if already allocated for group)
192
+ */
193
+ private handleParentChange;
194
+ /**
195
+ * Update parent metadata in file content
196
+ */
197
+ private updateParentMetadataInContent;
198
+ /**
199
+ * Clean up empty feature folder after file move
200
+ *
201
+ * Checks if folder is empty (except FEATURE.md) and removes it if orphan folder
202
+ */
203
+ private cleanupEmptyFeatureFolder;
171
204
  /**
172
205
  * Generate origin badge for living docs
173
206
  */
174
207
  private generateOriginBadge;
175
208
  /**
176
209
  * Generate markdown content for living docs User Story
210
+ * CRITICAL (2025-12-01): Includes parent tracking info for re-import hierarchy updates
177
211
  */
178
212
  private generateMarkdown;
179
213
  /**
@@ -188,5 +222,10 @@ export declare class ItemConverter {
188
222
  * CRITICAL: This validation ensures we're not auto-creating increments.
189
223
  */
190
224
  static validateNoIncrementsCreated(projectRoot: string): void;
225
+ /**
226
+ * TESTING ONLY: Expose private method for unit tests
227
+ * DO NOT use in production code
228
+ */
229
+ __test__groupItemsByFeature(items: ExternalItem[]): Map<string, ExternalItem[]>;
191
230
  }
192
231
  //# sourceMappingURL=item-converter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"item-converter.d.ts","sourceRoot":"","sources":["../../../src/importers/item-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"item-converter.d.ts","sourceRoot":"","sources":["../../../src/importers/item-converter.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,7 @@ export class ItemConverter {
61
61
  // Generate origin badge
62
62
  const originBadge = this.generateOriginBadge(item);
63
63
  // Generate markdown content for living docs
64
+ // CRITICAL (2025-12-01): Include parent info for future re-import parent change detection
64
65
  const markdown = this.generateMarkdown({
65
66
  id,
66
67
  title: item.title,
@@ -77,7 +78,13 @@ export class ItemConverter {
77
78
  createdAt: item.createdAt.toISOString(),
78
79
  updatedAt: item.updatedAt.toISOString(),
79
80
  labels: item.labels,
80
- sourceRepo: item.sourceRepo
81
+ sourceRepo: item.sourceRepo,
82
+ // Parent tracking for re-import hierarchy updates
83
+ parentId: item.parentId,
84
+ featureId: featureId,
85
+ isOrphan: !item.parentId,
86
+ adoWorkItemType: item.adoWorkItemType,
87
+ adoAreaPath: item.adoAreaPath
81
88
  }
82
89
  });
83
90
  // Generate file path (with feature folder if allocated)
@@ -171,6 +178,15 @@ export class ItemConverter {
171
178
  if (this.duplicateDetector) {
172
179
  const existingReference = await this.duplicateDetector.findExternalIdReference(item.id);
173
180
  if (existingReference) {
181
+ // CRITICAL (2025-12-01): Check if parent has changed (orphan → has parent, or parent changed)
182
+ const parentChanged = this.hasParentChanged(existingReference, item);
183
+ if (parentChanged) {
184
+ // Handle parent change - move file to new feature folder
185
+ await this.handleParentChange(existingReference, item, featureId);
186
+ // Skip conversion - file was moved/updated, not created
187
+ skippedCount++;
188
+ continue;
189
+ }
174
190
  skippedCount++;
175
191
  // Notify callback if provided
176
192
  if (this.options.onDuplicateSkipped) {
@@ -195,17 +211,22 @@ export class ItemConverter {
195
211
  /**
196
212
  * Group items by feature (based on source repo, parent hierarchy, or labels)
197
213
  * CRITICAL FIX (2025-12-01): For ADO, group by parent Capability/Epic to preserve hierarchy
214
+ * CRITICAL FIX (2025-12-01): ADO orphans (no parent) get INDIVIDUAL folders, not 'default' group
198
215
  *
199
216
  * ADO Hierarchy: Capability → Epic → Feature → User Story → Task
200
217
  * - Capability/Epic items become the feature (group leader)
201
- * - User Stories are grouped under their parent
202
- * - Items without parent go into a default group
218
+ * - User Stories are grouped under their parent Epic/Capability
219
+ * - Items without parent (true orphans) get INDIVIDUAL FS-XXXE folders
203
220
  */
204
221
  groupItemsByFeature(items) {
205
222
  const groups = new Map();
206
- // For ADO items with hierarchy, use parent-based grouping
223
+ // CRITICAL FIX (2025-12-01): Detect ADO items even without hierarchy info
224
+ // ADO items have adoProjectName set by the importer
225
+ // Previous bug: Orphan ADO items (no parentId, not epics) fell through to 'default' group
226
+ const hasAdoItems = items.some(item => item.platform === 'ado' && item.adoProjectName);
207
227
  const hasAdoHierarchy = items.some(item => item.platform === 'ado' && (item.parentId || item.type === 'epic'));
208
- if (hasAdoHierarchy) {
228
+ // Process ADO items: with hierarchy (group by parent) OR orphans (individual folders)
229
+ if (hasAdoItems) {
209
230
  // Build a map of all items by ID for lookup
210
231
  const itemById = new Map();
211
232
  for (const item of items) {
@@ -252,20 +273,16 @@ export class ItemConverter {
252
273
  // NOTE: If parent NOT in dataset, fall through to orphan handling below
253
274
  // DO NOT group by parentId - we want individual FS-XXXE folders per item
254
275
  }
255
- // CRITICAL FIX (2025-12-01): For ADO orphan items, create INDIVIDUAL FS-XXXE
276
+ // CRITICAL FIX (2025-12-01): For orphan items, create INDIVIDUAL FS-XXXE
256
277
  // folders per item. This applies when:
257
278
  // - Item has no parentId (true orphan)
258
279
  // - Item has parentId but parent NOT in dataset (orphan with missing parent)
259
280
  // Each orphan gets its own feature folder with US title as FEATURE.md header
281
+ // UNIVERSAL: Applies to ALL platforms (ADO, JIRA, GitHub) for consistent handling
260
282
  if (!groupKey) {
261
- if (item.platform === 'ado') {
262
- // Each ADO orphan gets its own feature folder with unique group key
263
- groupKey = `orphan:${item.id}`;
264
- }
265
- else {
266
- // Non-ADO items: fallback to sourceRepo or default
267
- groupKey = item.sourceRepo || 'default';
268
- }
283
+ // Each orphan gets its own feature folder with unique group key
284
+ // This ensures consistent behavior across all platforms
285
+ groupKey = `orphan:${item.id}`;
269
286
  }
270
287
  if (!groups.has(groupKey)) {
271
288
  groups.set(groupKey, []);
@@ -365,36 +382,52 @@ export class ItemConverter {
365
382
  const featurePath = path.join(baseDir, featureId);
366
383
  // Create directory
367
384
  fs.mkdirSync(featurePath, { recursive: true });
368
- // Check if this is an ADO feature-level item (Capability/Epic/Feature)
385
+ // Check if this is a feature-level item or orphan
369
386
  const isAdoFeatureGroup = groupKey.startsWith('feature:');
370
- const isAdoOrphanGroup = groupKey.startsWith('orphan:');
387
+ const isOrphanGroup = groupKey.startsWith('orphan:');
371
388
  const featureLevelTypes = new Set(['capability', 'epic', 'feature']);
372
389
  const adoWitType = firstItem.adoWorkItemType?.toLowerCase();
373
390
  const isAdoFeatureLevelItem = isAdoFeatureGroup &&
374
391
  firstItem.platform === 'ado' &&
375
392
  featureLevelTypes.has(adoWitType || firstItem.type);
376
- // Generate FEATURE.md content based on item type
393
+ // Generate FEATURE.md content based on item type and platform
377
394
  let featureTitle;
378
395
  let description;
379
396
  let externalLink;
380
397
  let witTypeLabel;
398
+ let platformLabel;
399
+ // Platform-specific labels and links
400
+ switch (firstItem.platform) {
401
+ case 'ado':
402
+ platformLabel = 'Azure DevOps';
403
+ break;
404
+ case 'jira':
405
+ platformLabel = 'JIRA';
406
+ break;
407
+ case 'github':
408
+ platformLabel = 'GitHub';
409
+ break;
410
+ default:
411
+ platformLabel = firstItem.platform || 'external tool';
412
+ }
381
413
  if (isAdoFeatureLevelItem) {
382
414
  // For ADO Capability/Epic/Feature, use the item's actual info
383
415
  witTypeLabel = firstItem.adoWorkItemType || 'Feature';
384
416
  featureTitle = `${witTypeLabel}: ${firstItem.title}`;
385
- description = firstItem.description || `This ${witTypeLabel.toLowerCase()} was imported from Azure DevOps.`;
386
- externalLink = `[${witTypeLabel} in Azure DevOps](${firstItem.url})`;
387
- }
388
- else if (isAdoOrphanGroup && firstItem.platform === 'ado') {
389
- // CRITICAL FIX (2025-12-01): For ADO orphan User Stories (no parent Epic),
390
- // create feature with the User Story info. This happens when:
391
- // - User Story has no parent in ADO
392
- // - Parent Epic/Feature wasn't imported (outside time range)
417
+ description = firstItem.description || `This ${witTypeLabel.toLowerCase()} was imported from ${platformLabel}.`;
418
+ externalLink = `[${witTypeLabel} in ${platformLabel}](${firstItem.url})`;
419
+ }
420
+ else if (isOrphanGroup) {
421
+ // CRITICAL FIX (2025-12-01): For orphan items (no parent Epic/Feature),
422
+ // create feature with the item's info. This happens when:
423
+ // - Item has no parent in external tool
424
+ // - Parent wasn't imported (outside time range or different project)
425
+ // UNIVERSAL: Applies to ALL platforms (ADO, JIRA, GitHub)
393
426
  witTypeLabel = firstItem.adoWorkItemType || 'User Story';
394
427
  featureTitle = `${witTypeLabel}: ${firstItem.title}`;
395
428
  description = firstItem.description ||
396
- `This ${witTypeLabel.toLowerCase()} was imported from Azure DevOps without a parent Epic/Feature.`;
397
- externalLink = `[${witTypeLabel} in Azure DevOps](${firstItem.url})`;
429
+ `This ${witTypeLabel.toLowerCase()} was imported from ${platformLabel} without a parent Epic/Feature.`;
430
+ externalLink = firstItem.url ? `[${witTypeLabel} in ${platformLabel}](${firstItem.url})` : '';
398
431
  }
399
432
  else if (firstItem.sourceRepo) {
400
433
  featureTitle = `Feature: ${firstItem.sourceRepo} External Items`;
@@ -403,13 +436,13 @@ export class ItemConverter {
403
436
  witTypeLabel = 'Feature';
404
437
  }
405
438
  else {
406
- featureTitle = `Feature: Imported from ${firstItem.platform}`;
439
+ featureTitle = `Feature: Imported from ${platformLabel}`;
407
440
  description = 'This feature folder contains User Stories imported from external tools.';
408
441
  externalLink = '';
409
442
  witTypeLabel = 'Feature';
410
443
  }
411
- // Include external metadata for both feature-level items and orphan ADO items
412
- const includeAdoMetadata = isAdoFeatureLevelItem || isAdoOrphanGroup;
444
+ // Include external metadata for feature-level items and all orphans
445
+ const includeExternalMetadata = isAdoFeatureLevelItem || isOrphanGroup;
413
446
  const featureContent = `---
414
447
  id: ${featureId}
415
448
  title: ${featureTitle}
@@ -418,15 +451,15 @@ source: ${firstItem.platform}
418
451
  ${firstItem.sourceRepo ? `source_repo: ${firstItem.sourceRepo}` : ''}
419
452
  ${firstItem.adoProjectName ? `ado_project: ${firstItem.adoProjectName}` : ''}
420
453
  ${firstItem.adoAreaPath ? `ado_area_path: ${firstItem.adoAreaPath}` : ''}
421
- ${includeAdoMetadata ? `ado_work_item_type: ${witTypeLabel}` : ''}
422
- ${includeAdoMetadata ? `external_id: ${firstItem.id}` : ''}
423
- ${isAdoOrphanGroup ? `orphan: true` : ''}
454
+ ${includeExternalMetadata ? `work_item_type: ${witTypeLabel}` : ''}
455
+ ${includeExternalMetadata ? `external_id: ${firstItem.id}` : ''}
456
+ ${isOrphanGroup ? `orphan: true` : ''}
424
457
  created: ${new Date().toISOString()}
425
458
  ---
426
459
 
427
460
  # ${featureTitle}
428
461
 
429
- **Origin**: 🔗 ${externalLink || `Imported from ${firstItem.platform}`}
462
+ **Origin**: 🔗 ${externalLink || `Imported from ${platformLabel}`}
430
463
 
431
464
  ## Description
432
465
 
@@ -434,7 +467,7 @@ ${description}
434
467
 
435
468
  ${firstItem.sourceRepo ? `**Source Repository**: ${firstItem.sourceRepo}` : ''}
436
469
  ${firstItem.adoAreaPath ? `**Area Path**: ${firstItem.adoAreaPath}` : ''}
437
- ${isAdoOrphanGroup ? `\n> **Note**: This feature was created from an orphan User Story (no parent Epic/Feature in ADO or parent not imported).` : ''}
470
+ ${isOrphanGroup ? `\n> **Note**: This feature was created from an orphan item (no parent Epic/Feature in ${platformLabel} or parent not imported).` : ''}
438
471
 
439
472
  ## User Stories
440
473
 
@@ -443,9 +476,9 @@ User stories in this ${witTypeLabel.toLowerCase()} will be listed here.
443
476
  ## Status
444
477
 
445
478
  - **Created**: ${new Date().toISOString()}
446
- - **Source**: ${firstItem.platform}
447
- ${includeAdoMetadata ? `- **External ID**: ${firstItem.id}` : ''}
448
- ${isAdoOrphanGroup ? `- **Type**: Orphan (no parent Epic)` : ''}
479
+ - **Source**: ${platformLabel}
480
+ ${includeExternalMetadata ? `- **External ID**: ${firstItem.id}` : ''}
481
+ ${isOrphanGroup ? `- **Type**: Orphan (no parent Epic)` : ''}
449
482
  `;
450
483
  // Write FEATURE.md
451
484
  const featureFile = path.join(featurePath, 'FEATURE.md');
@@ -480,6 +513,136 @@ ${isAdoOrphanGroup ? `- **Type**: Orphan (no parent Epic)` : ''}
480
513
  const ageDays = Math.floor(ageMs / (1000 * 60 * 60 * 24));
481
514
  return ageDays >= threshold;
482
515
  }
516
+ // ============================================================================
517
+ // Parent Change Detection (v0.29.0+ - Re-Import Hierarchy Updates)
518
+ // ============================================================================
519
+ /**
520
+ * Check if parent has changed between existing reference and new item
521
+ *
522
+ * CRITICAL (2025-12-01): Detects orphan → has parent, or parent ID change
523
+ *
524
+ * @param existingRef - Existing reference from living docs
525
+ * @param newItem - New item being imported
526
+ * @returns True if parent has changed and file should be moved
527
+ */
528
+ hasParentChanged(existingRef, newItem) {
529
+ // Only check for ADO items with hierarchy support
530
+ if (newItem.platform !== 'ado') {
531
+ return false;
532
+ }
533
+ // Case 1: Was orphan, now has parent
534
+ if (existingRef.isOrphan && newItem.parentId) {
535
+ return true;
536
+ }
537
+ // Case 2: Parent ID changed (including has parent → different parent)
538
+ if (existingRef.parentId && newItem.parentId && existingRef.parentId !== newItem.parentId) {
539
+ return true;
540
+ }
541
+ return false;
542
+ }
543
+ /**
544
+ * Handle parent change by moving file to new feature folder
545
+ *
546
+ * CRITICAL (2025-12-01): Moves US file when hierarchy changes on re-import
547
+ *
548
+ * @param existingRef - Existing reference with old location
549
+ * @param newItem - New item with updated parent info
550
+ * @param newFeatureId - New feature folder ID (if already allocated for group)
551
+ */
552
+ async handleParentChange(existingRef, newItem, newFeatureId) {
553
+ const oldFilePath = existingRef.filePath;
554
+ const oldFeatureId = existingRef.featureId || 'unknown';
555
+ // Determine the new feature folder
556
+ // If newFeatureId not provided, allocate one based on new parent
557
+ let targetFeatureId = newFeatureId;
558
+ if (!targetFeatureId && this.fsIdAllocator && this.options.enableFeatureAllocation) {
559
+ // Create a group key based on new parent
560
+ const groupKey = `parent:${newItem.parentId}`;
561
+ targetFeatureId = await this.allocateFeatureForGroup(newItem, groupKey);
562
+ }
563
+ if (!targetFeatureId || targetFeatureId === oldFeatureId) {
564
+ // No move needed - same feature folder
565
+ return;
566
+ }
567
+ // Calculate new file path
568
+ const baseDir = this.getBaseDirectory();
569
+ const fileName = path.basename(oldFilePath);
570
+ const newFilePath = path.join(baseDir, targetFeatureId, fileName);
571
+ // Read existing file content
572
+ const existingContent = fs.readFileSync(oldFilePath, 'utf-8');
573
+ // Update metadata in content
574
+ const updatedContent = this.updateParentMetadataInContent(existingContent, newItem.parentId, targetFeatureId, false // No longer orphan
575
+ );
576
+ // Ensure target directory exists
577
+ const targetDir = path.dirname(newFilePath);
578
+ fs.mkdirSync(targetDir, { recursive: true });
579
+ // Write to new location
580
+ fs.writeFileSync(newFilePath, updatedContent, 'utf-8');
581
+ // Remove old file
582
+ fs.unlinkSync(oldFilePath);
583
+ // Check if old directory is now empty and clean up
584
+ const oldDir = path.dirname(oldFilePath);
585
+ await this.cleanupEmptyFeatureFolder(oldDir, oldFeatureId);
586
+ // Notify callback
587
+ if (this.options.onParentChanged) {
588
+ const reason = existingRef.isOrphan
589
+ ? `Orphan now has parent: ${newItem.parentId}`
590
+ : `Parent changed from ${existingRef.parentId} to ${newItem.parentId}`;
591
+ this.options.onParentChanged(existingRef.usId, oldFeatureId, targetFeatureId, reason);
592
+ }
593
+ // Clear duplicate detector cache since file moved
594
+ if (this.duplicateDetector) {
595
+ this.duplicateDetector.clearCache();
596
+ }
597
+ }
598
+ /**
599
+ * Update parent metadata in file content
600
+ */
601
+ updateParentMetadataInContent(content, newParentId, newFeatureId, isOrphan) {
602
+ let updated = content;
603
+ // Update Feature ID
604
+ updated = updated.replace(/^- \*\*Feature ID\*\*: .+$/m, `- **Feature ID**: ${newFeatureId}`);
605
+ // Update or add Parent ID
606
+ if (newParentId) {
607
+ if (updated.match(/^- \*\*Parent ID\*\*: .+$/m)) {
608
+ updated = updated.replace(/^- \*\*Parent ID\*\*: .+$/m, `- **Parent ID**: ${newParentId}`);
609
+ }
610
+ else {
611
+ // Add Parent ID after Feature ID
612
+ updated = updated.replace(/^(- \*\*Feature ID\*\*: .+)$/m, `$1\n- **Parent ID**: ${newParentId}`);
613
+ }
614
+ }
615
+ // Remove Orphan line if no longer orphan
616
+ if (!isOrphan) {
617
+ updated = updated.replace(/^- \*\*Orphan\*\*: .+\n?/m, '');
618
+ }
619
+ return updated;
620
+ }
621
+ /**
622
+ * Clean up empty feature folder after file move
623
+ *
624
+ * Checks if folder is empty (except FEATURE.md) and removes it if orphan folder
625
+ */
626
+ async cleanupEmptyFeatureFolder(folderPath, featureId) {
627
+ try {
628
+ const files = fs.readdirSync(folderPath);
629
+ // Check if only FEATURE.md remains (or empty)
630
+ const nonTemplateFiles = files.filter(f => f.toLowerCase() !== 'feature.md');
631
+ if (nonTemplateFiles.length === 0) {
632
+ // Remove FEATURE.md if exists
633
+ const featureMdPath = path.join(folderPath, 'FEATURE.md');
634
+ if (fs.existsSync(featureMdPath)) {
635
+ fs.unlinkSync(featureMdPath);
636
+ }
637
+ // Remove empty folder
638
+ fs.removeSync(folderPath);
639
+ console.log(` 🗑️ Cleaned up empty orphan folder: ${featureId}`);
640
+ }
641
+ }
642
+ catch (error) {
643
+ // Folder cleanup is best-effort, don't fail on errors
644
+ }
645
+ }
483
646
  /**
484
647
  * Generate origin badge for living docs
485
648
  */
@@ -511,6 +674,7 @@ ${isAdoOrphanGroup ? `- **Type**: Orphan (no parent Epic)` : ''}
511
674
  }
512
675
  /**
513
676
  * Generate markdown content for living docs User Story
677
+ * CRITICAL (2025-12-01): Includes parent tracking info for re-import hierarchy updates
514
678
  */
515
679
  generateMarkdown(data) {
516
680
  const parts = [];
@@ -564,6 +728,22 @@ ${isAdoOrphanGroup ? `- **Type**: Orphan (no parent Epic)` : ''}
564
728
  if (data.metadata.sourceRepo) {
565
729
  parts.push(`- **Source Repository**: ${data.metadata.sourceRepo}`);
566
730
  }
731
+ // Parent tracking for re-import hierarchy updates (CRITICAL for parent change detection)
732
+ if (data.metadata.featureId) {
733
+ parts.push(`- **Feature ID**: ${data.metadata.featureId}`);
734
+ }
735
+ if (data.metadata.parentId) {
736
+ parts.push(`- **Parent ID**: ${data.metadata.parentId}`);
737
+ }
738
+ if (data.metadata.isOrphan) {
739
+ parts.push(`- **Orphan**: true (no parent in external tool)`);
740
+ }
741
+ if (data.metadata.adoWorkItemType) {
742
+ parts.push(`- **ADO Work Item Type**: ${data.metadata.adoWorkItemType}`);
743
+ }
744
+ if (data.metadata.adoAreaPath) {
745
+ parts.push(`- **ADO Area Path**: ${data.metadata.adoAreaPath}`);
746
+ }
567
747
  return parts.join('\n');
568
748
  }
569
749
  /**
@@ -605,5 +785,12 @@ ${isAdoOrphanGroup ? `- **Type**: Orphan (no parent Epic)` : ''}
605
785
  `Import should ONLY create living docs, not increments.`);
606
786
  }
607
787
  }
788
+ /**
789
+ * TESTING ONLY: Expose private method for unit tests
790
+ * DO NOT use in production code
791
+ */
792
+ __test__groupItemsByFeature(items) {
793
+ return this.groupItemsByFeature(items);
794
+ }
608
795
  }
609
796
  //# sourceMappingURL=item-converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"item-converter.js","sourceRoot":"","sources":["../../../src/importers/item-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"item-converter.js","sourceRoot":"","sources":["../../../src/importers/item-converter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAyB,MAAM,mCAAmC,CAAC;AAGzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAA0B,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AA4HhG;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAOxB,YAAY,OAA6B;QALjC,sBAAiB,GAA6B,IAAI,CAAC;QACnD,kBAAa,GAAyB,IAAI,CAAC;QACnD,2DAA2D;QACnD,oBAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;QAGvD,IAAI,CAAC,OAAO,GAAG;YACb,wBAAwB,EAAE,IAAI;YAC9B,8DAA8D;YAC9D,uEAAuE;YACvE,wDAAwD;YACxD,+DAA+D;YAC/D,oBAAoB,EAAE,EAAE,EAAG,4CAA4C;YACvE,8BAA8B,EAAE,KAAK,EAAE,6CAA6C;YACpF,GAAG,OAAO;SACX,CAAC;QAEF,2CAA2C;QAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;YAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;gBAC7C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;aAChC,CAAC,CAAC;QACL,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACrE,oEAAoE;YACpE,mEAAmE;YACnE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CACpC,IAAI,CAAC,OAAO,CAAC,WAAW,EACxB,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,EAAE,wBAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,IAAkB,EAAE,IAAY,EAAE,SAAkB;QAC9D,+BAA+B;QAC/B,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;QAElD,0CAA0C;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3C,8BAA8B;QAC9B,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAEzD,wBAAwB;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEnD,4CAA4C;QAC5C,0FAA0F;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrC,EAAE;YACF,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;YACN,WAAW;YACX,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,WAAW,EAAE,IAAI,CAAC,GAAG;gBACrB,gBAAgB,EAAE,IAAI,CAAC,QAAQ;gBAC/B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,kDAAkD;gBAClD,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ;gBACxB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B;SACF,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,QAAgB,CAAC;QAErB,+DAA+D;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7D,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACtD,4BAA4B;YAC5B,wFAAwF;YACxF,qEAAqE;YACrE,4DAA4D;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,aAAa;gBAC7B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;gBAC3C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAClC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,aAAa;gBAC7B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;gBAChC,CAAC,CAAC,OAAO,CAAC;YACZ,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,uCAAuC;QACvC,IAAI,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,WAAW,GAAG,yBAAyB,IAAI,CAAC,OAAO,CAAC,oBAAoB,QAAQ,CAAC,CAAC;QACpH,CAAC;QAED,OAAO;YACL,EAAE;YACF,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;YACN,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,WAAW,EAAE,IAAI,CAAC,GAAG;gBACrB,gBAAgB,EAAE,IAAI,CAAC,QAAQ;gBAC/B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B;YACD,QAAQ;YACR,QAAQ;YACR,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,KAAqB;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAChD,MAAM,SAAS,GAAyB,EAAE,CAAC;QAC3C,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,oCAAoC;QACpC,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,CAAC,MAAM,uBAAuB,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;QAEvH,gCAAgC;QAChC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzD,4DAA4D;QAC5D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAC7C,CAAC;QAED,kEAAkE;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEnD,mCAAmC;QACnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,UAAU,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,KAAK,UAAU,CAAC,MAAM,QAAQ,CAAC,CAAC;QACjE,CAAC;QAED,qBAAqB;QACrB,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,sEAAsE;YACtE,IAAI,SAA6B,CAAC;YAElC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,SAAS,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtE,CAAC;YAED,iCAAiC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAE3B,yDAAyD;gBACzD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxF,IAAI,iBAAiB,EAAE,CAAC;wBACtB,8FAA8F;wBAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;wBAErE,IAAI,aAAa,EAAE,CAAC;4BAClB,yDAAyD;4BACzD,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;4BAClE,wDAAwD;4BACxD,YAAY,EAAE,CAAC;4BACf,SAAS;wBACX,CAAC;wBAED,YAAY,EAAE,CAAC;wBAEf,8BAA8B;wBAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;4BACpC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;wBACnE,CAAC;wBAED,6BAA6B;wBAC7B,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,MAAM,IAAI,GAAG,UAAU,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC1D,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE1B,8CAA8C;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACjD,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE3C,yBAAyB;gBACzB,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACK,mBAAmB,CAAC,KAAqB;QAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;QAEjD,0EAA0E;QAC1E,oDAAoD;QACpD,0FAA0F;QAC1F,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;QACvF,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxC,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CACnE,CAAC;QAEF,sFAAsF;QACtF,IAAI,WAAW,EAAE,CAAC;YAChB,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;YACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC;YAED,6DAA6D;YAC7D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YACrE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;gBACjE,OAAO,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,4CAA4C;YAC5C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,WAAW,WAAW,CAAC,EAAE,EAAE,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3B,CAAC;gBACD,mEAAmE;gBACnE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;YAED,wEAAwE;YACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;gBACjE,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,SAAS,CAAC,0CAA0C;gBACtD,CAAC;gBAED,wBAAwB;gBACxB,IAAI,QAA4B,CAAC;gBAEjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,kCAAkC;oBAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC3C,IAAI,MAAM,EAAE,CAAC;wBACX,kCAAkC;wBAClC,IAAI,OAAO,GAA6B,MAAM,CAAC;wBAC/C,OAAO,OAAO,EAAE,CAAC;4BACf,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;4BAC3E,IAAI,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gCACvC,QAAQ,GAAG,WAAW,OAAO,CAAC,EAAE,EAAE,CAAC;gCACnC,MAAM;4BACR,CAAC;4BACD,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBAC1E,CAAC;oBACH,CAAC;oBACD,wEAAwE;oBACxE,yEAAyE;gBAC3E,CAAC;gBAED,yEAAyE;gBACzE,uCAAuC;gBACvC,uCAAuC;gBACvC,6EAA6E;gBAC7E,6EAA6E;gBAC7E,kFAAkF;gBAClF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,gEAAgE;oBAChE,wDAAwD;oBACxD,QAAQ,GAAG,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC;gBACjC,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3B,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,oEAAoE;QACpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;YAE9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,uBAAuB,CAAC,SAAuB,EAAE,QAAgB;QAC7E,uDAAuD;QACvD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,uFAAuF;QACvF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACrE,MAAM,kBAAkB,GAAG,iBAAiB;YAC1C,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAEpF,2CAA2C;QAC3C,8EAA8E;QAC9E,MAAM,QAAQ,GAAqB;YACjC,UAAU,EAAE,SAAS,CAAC,EAAE;YACxB,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,KAAK,CAAC;YACvF,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;YAC5C,WAAW,EAAE,SAAS,CAAC,GAAG;SAC3B,CAAC;QAEF,sBAAsB;QACtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC;QAEhC,wCAAwC;QACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEnF,kBAAkB;QAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE9C,kBAAkB;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAEjD,IAAI,SAAS,EAAE,CAAC;YACd,iCAAiC;YACjC,6CAA6C;YAC7C,yEAAyE;YACzE,IAAI,gBAAwB,CAAC;YAC7B,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACtC,gBAAgB,GAAG,QAAQ,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,gBAAgB,GAAG,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;YAEtD,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,CAAC,OAAO,CAAC,QAAQ,EACrB,gBAAgB,EAChB,SAAS,CACV,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClE,CAAC;QAED,2BAA2B;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,SAAuB,EAAE,QAAgB;QAC5F,8DAA8D;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAElD,mBAAmB;QACnB,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/C,kDAAkD;QAClD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC;QAC5D,MAAM,qBAAqB,GAAG,iBAAiB;YAC7C,SAAS,CAAC,QAAQ,KAAK,KAAK;YAC5B,iBAAiB,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAEtD,8DAA8D;QAC9D,IAAI,YAAoB,CAAC;QACzB,IAAI,WAAmB,CAAC;QACxB,IAAI,YAAoB,CAAC;QACzB,IAAI,YAAoB,CAAC;QACzB,IAAI,aAAqB,CAAC;QAE1B,qCAAqC;QACrC,QAAQ,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC3B,KAAK,KAAK;gBACR,aAAa,GAAG,cAAc,CAAC;gBAC/B,MAAM;YACR,KAAK,MAAM;gBACT,aAAa,GAAG,MAAM,CAAC;gBACvB,MAAM;YACR,KAAK,QAAQ;gBACX,aAAa,GAAG,QAAQ,CAAC;gBACzB,MAAM;YACR;gBACE,aAAa,GAAG,SAAS,CAAC,QAAQ,IAAI,eAAe,CAAC;QAC1D,CAAC;QAED,IAAI,qBAAqB,EAAE,CAAC;YAC1B,8DAA8D;YAC9D,YAAY,GAAG,SAAS,CAAC,eAAe,IAAI,SAAS,CAAC;YACtD,YAAY,GAAG,GAAG,YAAY,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;YACrD,WAAW,GAAG,SAAS,CAAC,WAAW,IAAI,QAAQ,YAAY,CAAC,WAAW,EAAE,sBAAsB,aAAa,GAAG,CAAC;YAChH,YAAY,GAAG,IAAI,YAAY,OAAO,aAAa,KAAK,SAAS,CAAC,GAAG,GAAG,CAAC;QAC3E,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,wEAAwE;YACxE,0DAA0D;YAC1D,wCAAwC;YACxC,qEAAqE;YACrE,0DAA0D;YAC1D,YAAY,GAAG,SAAS,CAAC,eAAe,IAAI,YAAY,CAAC;YACzD,YAAY,GAAG,GAAG,YAAY,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;YACrD,WAAW,GAAG,SAAS,CAAC,WAAW;gBACjC,QAAQ,YAAY,CAAC,WAAW,EAAE,sBAAsB,aAAa,iCAAiC,CAAC;YACzG,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,OAAO,aAAa,KAAK,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,CAAC;aAAM,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YAChC,YAAY,GAAG,YAAY,SAAS,CAAC,UAAU,iBAAiB,CAAC;YACjE,WAAW,GAAG,yEAAyE,CAAC;YACxF,YAAY,GAAG,EAAE,CAAC;YAClB,YAAY,GAAG,SAAS,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,0BAA0B,aAAa,EAAE,CAAC;YACzD,WAAW,GAAG,yEAAyE,CAAC;YACxF,YAAY,GAAG,EAAE,CAAC;YAClB,YAAY,GAAG,SAAS,CAAC;QAC3B,CAAC;QAED,oEAAoE;QACpE,MAAM,uBAAuB,GAAG,qBAAqB,IAAI,aAAa,CAAC;QAEvE,MAAM,cAAc,GAAG;MACrB,SAAS;SACN,YAAY;;UAEX,SAAS,CAAC,QAAQ;EAC1B,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;EAClE,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;EAC1E,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EACtE,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;EAChE,uBAAuB,CAAC,CAAC,CAAC,gBAAgB,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;EAC7D,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;WAC1B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;IAG/B,YAAY;;iBAEC,YAAY,IAAI,iBAAiB,aAAa,EAAE;;;;EAI/D,WAAW;;EAEX,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,0BAA0B,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;EAC5E,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EACtE,aAAa,CAAC,CAAC,CAAC,yFAAyF,aAAa,2BAA2B,CAAC,CAAC,CAAC,EAAE;;;;uBAIjI,YAAY,CAAC,WAAW,EAAE;;;;iBAIhC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACzB,aAAa;EAC3B,uBAAuB,CAAC,CAAC,CAAC,sBAAsB,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;EACnE,aAAa,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE;CAC3D,CAAC;QAEE,mBAAmB;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACzD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAEvD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,cAAsC;QACtD,MAAM,SAAS,GAA2B;YACxC,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,aAAa;YAC5B,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,WAAW;SACtB,CAAC;QAEF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,SAAe;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;QAEpD,0CAA0C;QAC1C,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAE1D,OAAO,OAAO,IAAI,SAAS,CAAC;IAC9B,CAAC;IAED,+EAA+E;IAC/E,mEAAmE;IACnE,+EAA+E;IAE/E;;;;;;;;OAQG;IACK,gBAAgB,CACtB,WAAkE,EAClE,OAAqB;QAErB,kDAAkD;QAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qCAAqC;QACrC,IAAI,WAAW,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sEAAsE;QACtE,IAAI,WAAW,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1F,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,kBAAkB,CAC9B,WAAkE,EAClE,OAAqB,EACrB,YAAgC;QAEhC,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;QACzC,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,IAAI,SAAS,CAAC;QAExD,mCAAmC;QACnC,iEAAiE;QACjE,IAAI,eAAe,GAAG,YAAY,CAAC;QACnC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACnF,yCAAyC;YACzC,MAAM,QAAQ,GAAG,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9C,eAAe,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,eAAe,IAAI,eAAe,KAAK,YAAY,EAAE,CAAC;YACzD,uCAAuC;YACvC,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAElE,6BAA6B;QAC7B,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE9D,6BAA6B;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA6B,CACvD,eAAe,EACf,OAAO,CAAC,QAAQ,EAChB,eAAe,EACf,KAAK,CAAC,mBAAmB;SAC1B,CAAC;QAEF,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,wBAAwB;QACxB,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAEvD,kBAAkB;QAClB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAE3B,mDAAmD;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAE3D,kBAAkB;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ;gBACjC,CAAC,CAAC,0BAA0B,OAAO,CAAC,QAAQ,EAAE;gBAC9C,CAAC,CAAC,uBAAuB,WAAW,CAAC,QAAQ,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QACxF,CAAC;QAED,kDAAkD;QAClD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,6BAA6B,CACnC,OAAe,EACf,WAA+B,EAC/B,YAAoB,EACpB,QAAiB;QAEjB,IAAI,OAAO,GAAG,OAAO,CAAC;QAEtB,oBAAoB;QACpB,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,6BAA6B,EAC7B,qBAAqB,YAAY,EAAE,CACpC,CAAC;QAEF,0BAA0B;QAC1B,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC;gBAChD,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,4BAA4B,EAC5B,oBAAoB,WAAW,EAAE,CAClC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iCAAiC;gBACjC,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,+BAA+B,EAC/B,wBAAwB,WAAW,EAAE,CACtC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,yBAAyB,CAAC,UAAkB,EAAE,SAAiB;QAC3E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAEzC,8CAA8C;YAC9C,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;YAE7E,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,8BAA8B;gBAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;gBAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oBACjC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC/B,CAAC;gBAED,sBAAsB;gBACtB,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAE1B,OAAO,CAAC,GAAG,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sDAAsD;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,IAAkB;QAC5C,MAAM,aAAa,GAA2B;YAC5C,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;SACZ,CAAC;QAEF,MAAM,YAAY,GAA2B;YAC3C,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,cAAc;SACtB,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;QACnD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;QAE1D,+CAA+C;QAC/C,uDAAuD;QACvD,4CAA4C;QAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,cAAc,EAAE,CAAC;YACnB,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,GAAG,KAAK,KAAK,IAAI,KAAK,WAAW,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,IAwBxB;QACC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,QAAQ;QACR,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,eAAe;QACf,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,sBAAsB;QACtB,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,cAAc;QACd,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,0BAA0B,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,sBAAsB;QACtB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;gBAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACpF,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,QAAQ;QACR,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,yCAAyC;QACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,yFAAyF;QACzF,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,IAAY,EAAE,KAAa;QAClD,6BAA6B;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,8BAA8B;QAC9B,MAAM,SAAS,GAAG,KAAK;aACpB,WAAW,EAAE;aACb,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,uBAAuB;aACpD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAU,8BAA8B;aAC5D,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAW,2BAA2B;aACzD,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAiB,oBAAoB;QAErD,OAAO,GAAG,MAAM,IAAI,SAAS,KAAK,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,2BAA2B,CAAC,WAAmB;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAEzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,wCAAwC;QAClD,CAAC;QAED,+CAA+C;QAC/C,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,iEAAiE;gBACjE,UAAU,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACtC,wDAAwD,CACzD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,2BAA2B,CAAC,KAAqB;QACtD,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -176,6 +176,13 @@ export declare class FSIdAllocator {
176
176
  * @returns Allocation result with ID and strategy
177
177
  */
178
178
  allocateId(workItem: ExternalWorkItem): Promise<AllocationResult>;
179
+ /**
180
+ * Track a newly allocated ID to prevent duplicates in the same session
181
+ * CRITICAL FIX (2025-12-01): Without this, multiple calls to allocateId()
182
+ * would all return the same ID (e.g., FS-001E) because existingFeatures
183
+ * wasn't updated after allocation.
184
+ */
185
+ private trackAllocatedId;
179
186
  /**
180
187
  * Check if ID has collision (exact match or variant)
181
188
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fs-id-allocator.d.ts","sourceRoot":"","sources":["../../../src/living-docs/fs-id-allocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAgB,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAEpF,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IAEX,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAElB,mCAAmC;IACnC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAEhC,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IAEnB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IAEd,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAElB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IAEX,+BAA+B;IAC/B,QAAQ,EAAE,sBAAsB,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEtD,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,wBAAwB,CAAU;IAC1C,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,MAAM,CAAS;gBAEX,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAcnF;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;;;;;;;;;;OAYG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BtC;;;;;;;;;;OAUG;YACW,eAAe;IAqD7B;;;OAGG;YACW,cAAc;IAoB5B;;;;;;;;;;OAUG;YACW,mBAAmB;IAqBjC;;OAEG;YACW,aAAa;IAqB3B;;OAEG;YACW,oBAAoB;IA4ClC;;;;;;;;;;;;;;;;OAgBG;IACG,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+FvE;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAcjC;;;;OAIG;IACH,QAAQ,IAAI,MAAM;IASlB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAQrB;;;;OAIG;IACH,mBAAmB,IAAI,eAAe,EAAE;IAMxC;;OAEG;IACH,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf;IAaD;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;;;;OAKG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAM1C;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAavB;;;;;;;;;;;;;OAaG;IACG,mBAAmB,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC;CAwDnB"}
1
+ {"version":3,"file":"fs-id-allocator.d.ts","sourceRoot":"","sources":["../../../src/living-docs/fs-id-allocator.ts"],"names":[],"mappings":"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"}