specweave 0.30.12 → 0.30.14

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 (127) hide show
  1. package/.claude-plugin/marketplace.json +0 -11
  2. package/CLAUDE.md +1 -1
  3. package/bin/fix-marketplace-errors.sh +1 -1
  4. package/dist/src/cli/commands/init.d.ts.map +1 -1
  5. package/dist/src/cli/commands/init.js +13 -0
  6. package/dist/src/cli/commands/init.js.map +1 -1
  7. package/dist/src/cli/helpers/ado-area-selector.d.ts.map +1 -1
  8. package/dist/src/cli/helpers/ado-area-selector.js +13 -0
  9. package/dist/src/cli/helpers/ado-area-selector.js.map +1 -1
  10. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  11. package/dist/src/cli/helpers/issue-tracker/index.js +7 -2
  12. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  13. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts +7 -0
  14. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts.map +1 -1
  15. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js +33 -2
  16. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js.map +1 -1
  17. package/dist/src/cli/workers/clone-worker.js +19 -3
  18. package/dist/src/cli/workers/clone-worker.js.map +1 -1
  19. package/dist/src/core/living-docs/board-matcher.d.ts +120 -0
  20. package/dist/src/core/living-docs/board-matcher.d.ts.map +1 -0
  21. package/dist/src/core/living-docs/board-matcher.js +466 -0
  22. package/dist/src/core/living-docs/board-matcher.js.map +1 -0
  23. package/dist/src/core/living-docs/foundation-builder.js +1 -1
  24. package/dist/src/core/living-docs/foundation-builder.js.map +1 -1
  25. package/dist/src/core/living-docs/living-docs-sync.d.ts +19 -8
  26. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  27. package/dist/src/core/living-docs/living-docs-sync.js +148 -52
  28. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  29. package/dist/src/core/living-docs/suggestions-generator.js +1 -1
  30. package/dist/src/core/living-docs/suggestions-generator.js.map +1 -1
  31. package/dist/src/core/living-docs/umbrella-detector.d.ts +4 -0
  32. package/dist/src/core/living-docs/umbrella-detector.d.ts.map +1 -1
  33. package/dist/src/core/living-docs/umbrella-detector.js +20 -1
  34. package/dist/src/core/living-docs/umbrella-detector.js.map +1 -1
  35. package/dist/src/core/living-docs/workitem-matcher.js +5 -5
  36. package/dist/src/core/living-docs/workitem-matcher.js.map +1 -1
  37. package/dist/src/importers/item-converter.d.ts +4 -0
  38. package/dist/src/importers/item-converter.d.ts.map +1 -1
  39. package/dist/src/importers/item-converter.js +4 -0
  40. package/dist/src/importers/item-converter.js.map +1 -1
  41. package/dist/src/init/repo/types.d.ts +1 -1
  42. package/dist/src/living-docs/enterprise-analyzer.d.ts.map +1 -1
  43. package/dist/src/living-docs/enterprise-analyzer.js +70 -19
  44. package/dist/src/living-docs/enterprise-analyzer.js.map +1 -1
  45. package/dist/src/living-docs/epic-id-allocator.d.ts +4 -0
  46. package/dist/src/living-docs/epic-id-allocator.d.ts.map +1 -1
  47. package/dist/src/living-docs/epic-id-allocator.js +4 -0
  48. package/dist/src/living-docs/epic-id-allocator.js.map +1 -1
  49. package/dist/src/living-docs/fs-id-allocator.d.ts +4 -0
  50. package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
  51. package/dist/src/living-docs/fs-id-allocator.js +4 -0
  52. package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
  53. package/dist/src/living-docs/smart-doc-organizer.d.ts +114 -0
  54. package/dist/src/living-docs/smart-doc-organizer.d.ts.map +1 -0
  55. package/dist/src/living-docs/smart-doc-organizer.js +535 -0
  56. package/dist/src/living-docs/smart-doc-organizer.js.map +1 -0
  57. package/package.json +13 -13
  58. package/plugins/PLUGINS-INDEX.md +2 -3
  59. package/plugins/specweave/commands/specweave-judge.md +265 -0
  60. package/plugins/specweave/commands/specweave-organize-docs.md +185 -0
  61. package/plugins/specweave/hooks/hooks.json +3 -3
  62. package/plugins/specweave/hooks/universal/hook-wrapper.cmd +26 -0
  63. package/plugins/specweave/hooks/universal/hook-wrapper.sh +67 -0
  64. package/plugins/specweave-ado/commands/{specweave-ado-close-workitem.md → close.md} +9 -5
  65. package/plugins/specweave-ado/commands/{specweave-ado-create-workitem.md → create.md} +9 -5
  66. package/plugins/specweave-ado/commands/pull.md +459 -0
  67. package/plugins/specweave-ado/commands/push.md +361 -0
  68. package/plugins/specweave-ado/commands/{specweave-ado-status.md → status.md} +12 -0
  69. package/plugins/specweave-ado/commands/{specweave-ado-sync.md → sync.md} +64 -3
  70. package/plugins/specweave-ado/hooks/README.md +1 -1
  71. package/plugins/specweave-docs/commands/build.md +158 -0
  72. package/plugins/specweave-docs/commands/{docs-generate.md → generate.md} +10 -5
  73. package/plugins/specweave-docs/commands/health.md +268 -0
  74. package/plugins/specweave-docs/commands/{docs-init.md → init.md} +11 -6
  75. package/plugins/specweave-docs/commands/organize.md +184 -0
  76. package/plugins/specweave-docs/commands/preview.md +138 -0
  77. package/plugins/specweave-docs/skills/preview/SKILL.md +105 -0
  78. package/plugins/specweave-github/agents/user-story-updater/AGENT.md +1 -1
  79. package/plugins/specweave-github/commands/{specweave-github-close-issue.md → close.md} +2 -2
  80. package/plugins/specweave-github/commands/{specweave-github-create-issue.md → create.md} +2 -2
  81. package/plugins/specweave-github/commands/pull.md +142 -0
  82. package/plugins/specweave-github/commands/push.md +154 -0
  83. package/plugins/specweave-github/commands/{specweave-github-sync.md → sync.md} +19 -5
  84. package/plugins/specweave-github/commands/{specweave-github-update-user-story.md → update-user-story.md} +1 -1
  85. package/plugins/specweave-github/hooks/README.md +1 -1
  86. package/plugins/specweave-jira/commands/pull.md +164 -0
  87. package/plugins/specweave-jira/commands/push.md +170 -0
  88. package/plugins/specweave-jira/commands/{specweave-jira-sync.md → sync.md} +18 -3
  89. package/plugins/specweave-jira/hooks/README.md +1 -1
  90. package/plugins/specweave-kafka/README.md +20 -0
  91. package/plugins/specweave-kafka/benchmarks/kafka-throughput.benchmark.ts +551 -0
  92. package/plugins/specweave-kafka/examples/README.md +191 -0
  93. package/plugins/specweave-kafka/examples/avro-schema-registry/.env.example +8 -0
  94. package/plugins/specweave-kafka/examples/avro-schema-registry/README.md +69 -0
  95. package/plugins/specweave-kafka/examples/avro-schema-registry/consumer.js +37 -0
  96. package/plugins/specweave-kafka/examples/avro-schema-registry/package.json +14 -0
  97. package/plugins/specweave-kafka/examples/avro-schema-registry/producer.js +57 -0
  98. package/plugins/specweave-kafka/examples/exactly-once-semantics/.env.example +5 -0
  99. package/plugins/specweave-kafka/examples/exactly-once-semantics/README.md +30 -0
  100. package/plugins/specweave-kafka/examples/exactly-once-semantics/eos-pipeline.js +79 -0
  101. package/plugins/specweave-kafka/examples/exactly-once-semantics/package.json +11 -0
  102. package/plugins/specweave-kafka/examples/kafka-streams-app/.env.example +4 -0
  103. package/plugins/specweave-kafka/examples/kafka-streams-app/README.md +30 -0
  104. package/plugins/specweave-kafka/examples/kafka-streams-app/package.json +11 -0
  105. package/plugins/specweave-kafka/examples/kafka-streams-app/windowed-aggregation.js +66 -0
  106. package/plugins/specweave-kafka/examples/n8n-workflow/README.md +54 -0
  107. package/plugins/specweave-kafka/examples/n8n-workflow/docker-compose.yml +19 -0
  108. package/plugins/specweave-kafka/examples/n8n-workflow/kafka-to-slack.json +50 -0
  109. package/plugins/specweave-kafka/examples/simple-producer-consumer/.env.example +15 -0
  110. package/plugins/specweave-kafka/examples/simple-producer-consumer/README.md +183 -0
  111. package/plugins/specweave-kafka/examples/simple-producer-consumer/consumer.js +60 -0
  112. package/plugins/specweave-kafka/examples/simple-producer-consumer/docker-compose.yml +30 -0
  113. package/plugins/specweave-kafka/examples/simple-producer-consumer/package.json +18 -0
  114. package/plugins/specweave-kafka/examples/simple-producer-consumer/producer.js +52 -0
  115. package/plugins/specweave-release/commands/specweave-release-npm.md +26 -239
  116. package/plugins/specweave-docs-preview/.claude-plugin/plugin.json +0 -21
  117. package/plugins/specweave-docs-preview/commands/build.md +0 -489
  118. package/plugins/specweave-docs-preview/commands/preview.md +0 -355
  119. package/plugins/specweave-docs-preview/skills/docs-preview/SKILL.md +0 -386
  120. /package/plugins/specweave-ado/commands/{specweave-ado-clone-repos.md → clone.md} +0 -0
  121. /package/plugins/specweave-ado/commands/{specweave-ado-import-areas.md → import-areas.md} +0 -0
  122. /package/plugins/specweave-ado/commands/{specweave-ado-import-projects.md → import-projects.md} +0 -0
  123. /package/plugins/specweave-github/commands/{specweave-github-cleanup-duplicates.md → cleanup-duplicates.md} +0 -0
  124. /package/plugins/specweave-github/commands/{specweave-github-reconcile.md → reconcile.md} +0 -0
  125. /package/plugins/specweave-github/commands/{specweave-github-status.md → status.md} +0 -0
  126. /package/plugins/specweave-jira/commands/{specweave-jira-import-boards.md → import-boards.md} +0 -0
  127. /package/plugins/specweave-jira/commands/{specweave-jira-import-projects.md → import-projects-full.md} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"clone-worker.js","sourceRoot":"","sources":["../../../../src/cli/workers/clone-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clone-worker.js","sourceRoot":"","sources":["../../../../src/cli/workers/clone-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * BoardMatcher - Intelligent board/area path matching for living docs sync
3
+ *
4
+ * Matches increments to the correct board/area path based on:
5
+ * - Increment title and description keywords
6
+ * - Area path names from config
7
+ * - ChildRepo names/teams from umbrella config
8
+ * - Configured keywords (areaPathMapping.mappings[].keywords)
9
+ *
10
+ * @see ADR-0178: Intelligent Board/Area Path Matching
11
+ */
12
+ import { Logger } from '../../utils/logger.js';
13
+ /**
14
+ * Information about an available board/area path
15
+ */
16
+ export interface BoardInfo {
17
+ /** Unique identifier (area path name, childRepo id, or folder name) */
18
+ id: string;
19
+ /** Human-readable name */
20
+ name: string;
21
+ /** Source of this board info */
22
+ source: 'areaPath' | 'areaPathMapping' | 'childRepo' | 'existing-folder' | 'multiProject';
23
+ /** ADO profile name (if from ADO config) */
24
+ adoProfile?: string;
25
+ /** ADO project name (for 2-level folder structure: {project}/{areaPath}) */
26
+ adoProject?: string;
27
+ /** Configured keywords for matching */
28
+ keywords?: string[];
29
+ /** Team name (from childRepo) */
30
+ team?: string;
31
+ /** Full path in specs folder (if existing) */
32
+ specsPath?: string;
33
+ }
34
+ /**
35
+ * Result of matching an increment against boards
36
+ */
37
+ export interface BoardMatchResult {
38
+ /** Board identifier */
39
+ boardId: string;
40
+ /** Human-readable board name */
41
+ boardName: string;
42
+ /** Confidence score (0-100) */
43
+ confidence: number;
44
+ /** Terms that matched */
45
+ matchedTerms: string[];
46
+ /** Source of the match */
47
+ source: BoardInfo['source'];
48
+ /** Match type explanation */
49
+ matchType: 'exact' | 'partial' | 'keyword' | 'fuzzy';
50
+ /** ADO project name (for 2-level folder structure: {project}/{boardId}) */
51
+ adoProject?: string;
52
+ }
53
+ /**
54
+ * Decision from the matcher
55
+ */
56
+ export interface MatchDecision {
57
+ /** Whether user input is needed */
58
+ needsUserInput: boolean;
59
+ /** Reason for the decision */
60
+ reason: string;
61
+ /** Best match (if any) */
62
+ bestMatch?: BoardMatchResult;
63
+ /** All matches sorted by confidence */
64
+ allMatches: BoardMatchResult[];
65
+ /** Available boards (for user selection) */
66
+ availableBoards: BoardInfo[];
67
+ }
68
+ export declare class BoardMatcher {
69
+ private projectRoot;
70
+ private options;
71
+ private config;
72
+ private configLoaded;
73
+ constructor(projectRoot: string, options?: {
74
+ logger?: Logger;
75
+ });
76
+ private get logger();
77
+ /**
78
+ * Load config from project root
79
+ */
80
+ private loadConfig;
81
+ /**
82
+ * Extract keywords from increment spec content
83
+ *
84
+ * Extracts meaningful words from:
85
+ * - Title (# heading)
86
+ * - Description (first paragraph)
87
+ * - User stories (## US-XXX sections)
88
+ * - Type field
89
+ */
90
+ extractIncrementKeywords(specContent: string): string[];
91
+ /**
92
+ * Add words from text to a Set
93
+ */
94
+ private addWordsToSet;
95
+ /**
96
+ * Get all available boards from config
97
+ */
98
+ getAvailableBoards(): Promise<BoardInfo[]>;
99
+ /**
100
+ * Normalize board ID to kebab-case
101
+ */
102
+ private normalizeId;
103
+ /**
104
+ * Match increment content against available boards
105
+ */
106
+ matchIncrement(incrementId: string, specContent: string): Promise<MatchDecision>;
107
+ /**
108
+ * Calculate match score for a board against keywords
109
+ */
110
+ private calculateMatch;
111
+ /**
112
+ * Fuzzy match for common variations
113
+ */
114
+ private fuzzyMatch;
115
+ /**
116
+ * Check if this is a utility/cross-cutting increment that shouldn't auto-match
117
+ */
118
+ isUtilityIncrement(specContent: string): boolean;
119
+ }
120
+ //# sourceMappingURL=board-matcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board-matcher.d.ts","sourceRoot":"","sources":["../../../../src/core/living-docs/board-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uEAAuE;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,MAAM,EAAE,UAAU,GAAG,iBAAiB,GAAG,WAAW,GAAG,iBAAiB,GAAG,cAAc,CAAC;IAC1F,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0BAA0B;IAC1B,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,6BAA6B;IAC7B,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACrD,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,cAAc,EAAE,OAAO,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,uCAAuC;IACvC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,4CAA4C;IAC5C,eAAe,EAAE,SAAS,EAAE,CAAC;CAC9B;AAsCD,qBAAa,YAAY;IAKrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,YAAY,CAAS;gBAGnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;IAG3C,OAAO,KAAK,MAAM,GAEjB;IAED;;OAEG;YACW,UAAU;IAoBxB;;;;;;;;OAQG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAoDvD;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IA8GhD;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAoGtF;;OAEG;IACH,OAAO,CAAC,cAAc;IA4FtB;;OAEG;IACH,OAAO,CAAC,UAAU;IA4BlB;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAejD"}
@@ -0,0 +1,466 @@
1
+ /**
2
+ * BoardMatcher - Intelligent board/area path matching for living docs sync
3
+ *
4
+ * Matches increments to the correct board/area path based on:
5
+ * - Increment title and description keywords
6
+ * - Area path names from config
7
+ * - ChildRepo names/teams from umbrella config
8
+ * - Configured keywords (areaPathMapping.mappings[].keywords)
9
+ *
10
+ * @see ADR-0178: Intelligent Board/Area Path Matching
11
+ */
12
+ import { existsSync } from 'fs';
13
+ import * as fs from 'fs/promises';
14
+ import * as path from 'path';
15
+ import { consoleLogger } from '../../utils/logger.js';
16
+ export class BoardMatcher {
17
+ constructor(projectRoot, options = {}) {
18
+ this.projectRoot = projectRoot;
19
+ this.options = options;
20
+ this.config = null;
21
+ this.configLoaded = false;
22
+ }
23
+ get logger() {
24
+ return this.options.logger ?? consoleLogger;
25
+ }
26
+ /**
27
+ * Load config from project root
28
+ */
29
+ async loadConfig() {
30
+ if (this.configLoaded)
31
+ return this.config;
32
+ const configPath = path.join(this.projectRoot, '.specweave/config.json');
33
+ if (!existsSync(configPath)) {
34
+ this.configLoaded = true;
35
+ return null;
36
+ }
37
+ try {
38
+ const content = await fs.readFile(configPath, 'utf-8');
39
+ this.config = JSON.parse(content);
40
+ this.configLoaded = true;
41
+ return this.config;
42
+ }
43
+ catch {
44
+ this.configLoaded = true;
45
+ return null;
46
+ }
47
+ }
48
+ /**
49
+ * Extract keywords from increment spec content
50
+ *
51
+ * Extracts meaningful words from:
52
+ * - Title (# heading)
53
+ * - Description (first paragraph)
54
+ * - User stories (## US-XXX sections)
55
+ * - Type field
56
+ */
57
+ extractIncrementKeywords(specContent) {
58
+ const keywords = new Set();
59
+ // Extract title (first # heading)
60
+ const titleMatch = specContent.match(/^#\s+(.+)$/m);
61
+ if (titleMatch) {
62
+ this.addWordsToSet(titleMatch[1], keywords);
63
+ }
64
+ // Extract increment name from YAML frontmatter
65
+ const incrementMatch = specContent.match(/^increment:\s*(.+)$/m);
66
+ if (incrementMatch) {
67
+ this.addWordsToSet(incrementMatch[1], keywords);
68
+ }
69
+ // Extract type field
70
+ const typeMatch = specContent.match(/\*\*Type\*\*:\s*(.+)/i);
71
+ if (typeMatch) {
72
+ this.addWordsToSet(typeMatch[1], keywords);
73
+ }
74
+ // Extract description (text after ## Description or first paragraph after title)
75
+ const descMatch = specContent.match(/##\s*Description\s*\n([\s\S]*?)(?=\n##|\n\*\*|$)/i);
76
+ if (descMatch) {
77
+ this.addWordsToSet(descMatch[1], keywords);
78
+ }
79
+ // Extract user story titles
80
+ const usMatches = specContent.matchAll(/##\s*(?:US-\d+[:\s]+)?(.+)/g);
81
+ for (const match of usMatches) {
82
+ this.addWordsToSet(match[1], keywords);
83
+ }
84
+ // Remove common stop words
85
+ const stopWords = new Set([
86
+ 'the', 'a', 'an', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
87
+ 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
88
+ 'should', 'may', 'might', 'must', 'shall', 'can', 'need', 'dare',
89
+ 'for', 'and', 'nor', 'but', 'or', 'yet', 'so', 'as', 'to', 'of',
90
+ 'in', 'on', 'at', 'by', 'with', 'from', 'up', 'about', 'into',
91
+ 'through', 'during', 'before', 'after', 'above', 'below', 'between',
92
+ 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when',
93
+ 'where', 'why', 'how', 'all', 'each', 'few', 'more', 'most', 'other',
94
+ 'some', 'such', 'no', 'not', 'only', 'own', 'same', 'than', 'too',
95
+ 'very', 'just', 'also', 'now', 'new', 'user', 'feature', 'implement',
96
+ 'add', 'create', 'update', 'fix', 'bug', 'enhancement', 'story',
97
+ 'increment', 'spec', 'task', 'status', 'completed', 'pending', 'active'
98
+ ]);
99
+ return Array.from(keywords).filter(w => !stopWords.has(w) && w.length > 2);
100
+ }
101
+ /**
102
+ * Add words from text to a Set
103
+ */
104
+ addWordsToSet(text, set) {
105
+ // Split on non-word characters, normalize
106
+ const words = text
107
+ .toLowerCase()
108
+ .replace(/[^a-z0-9\s-]/g, ' ')
109
+ .split(/[\s-]+/)
110
+ .filter(w => w.length > 2);
111
+ for (const word of words) {
112
+ set.add(word);
113
+ }
114
+ // Also add hyphenated combinations (e.g., "clinical-insights")
115
+ const hyphenated = text
116
+ .toLowerCase()
117
+ .replace(/[^a-z0-9-]/g, '-')
118
+ .replace(/-+/g, '-')
119
+ .replace(/^-|-$/g, '');
120
+ if (hyphenated.includes('-') && hyphenated.length > 3) {
121
+ set.add(hyphenated);
122
+ }
123
+ }
124
+ /**
125
+ * Get all available boards from config
126
+ */
127
+ async getAvailableBoards() {
128
+ const config = await this.loadConfig();
129
+ const boards = [];
130
+ const seenIds = new Set();
131
+ // 1. Check ADO area paths (both formats)
132
+ if (config?.sync?.profiles) {
133
+ for (const [profileName, profile] of Object.entries(config.sync.profiles)) {
134
+ if (profile.provider !== 'ado')
135
+ continue;
136
+ // Get ADO project name for 2-level folder structure
137
+ const adoProject = profile.config?.project
138
+ ? this.normalizeId(profile.config.project)
139
+ : undefined;
140
+ // Format 1: areaPathMapping.mappings[] (with keywords)
141
+ if (profile.config?.areaPathMapping?.mappings?.length) {
142
+ for (const mapping of profile.config.areaPathMapping.mappings) {
143
+ const id = this.normalizeId(mapping.specweaveProject);
144
+ if (!seenIds.has(id)) {
145
+ seenIds.add(id);
146
+ boards.push({
147
+ id,
148
+ name: mapping.specweaveProject,
149
+ source: 'areaPathMapping',
150
+ adoProfile: profileName,
151
+ adoProject,
152
+ keywords: mapping.keywords
153
+ });
154
+ }
155
+ }
156
+ }
157
+ // Format 2: areaPaths[] (simple list)
158
+ if (profile.config?.areaPaths?.length) {
159
+ for (const areaPath of profile.config.areaPaths) {
160
+ const id = this.normalizeId(areaPath);
161
+ if (!seenIds.has(id)) {
162
+ seenIds.add(id);
163
+ boards.push({
164
+ id,
165
+ name: areaPath,
166
+ source: 'areaPath',
167
+ adoProfile: profileName,
168
+ adoProject
169
+ });
170
+ }
171
+ }
172
+ }
173
+ }
174
+ }
175
+ // 2. Check umbrella childRepos
176
+ if (config?.umbrella?.enabled && config.umbrella.childRepos?.length) {
177
+ for (const repo of config.umbrella.childRepos) {
178
+ const id = this.normalizeId(repo.name || repo.id);
179
+ if (!seenIds.has(id)) {
180
+ seenIds.add(id);
181
+ boards.push({
182
+ id,
183
+ name: repo.name || repo.id,
184
+ source: 'childRepo',
185
+ team: repo.team
186
+ });
187
+ }
188
+ }
189
+ }
190
+ // 3. Check multiProject.projects
191
+ if (config?.multiProject?.enabled && config.multiProject.projects) {
192
+ for (const [projectId, project] of Object.entries(config.multiProject.projects)) {
193
+ const id = this.normalizeId(projectId);
194
+ if (!seenIds.has(id)) {
195
+ seenIds.add(id);
196
+ boards.push({
197
+ id,
198
+ name: project.name || projectId,
199
+ source: 'multiProject'
200
+ });
201
+ }
202
+ }
203
+ }
204
+ // 4. Check existing folders in specs/
205
+ const specsBase = path.join(this.projectRoot, '.specweave/docs/internal/specs');
206
+ if (existsSync(specsBase)) {
207
+ try {
208
+ const entries = await fs.readdir(specsBase, { withFileTypes: true });
209
+ for (const entry of entries) {
210
+ if (entry.isDirectory() && !entry.name.startsWith('_') && !entry.name.startsWith('FS-')) {
211
+ const id = this.normalizeId(entry.name);
212
+ if (!seenIds.has(id)) {
213
+ seenIds.add(id);
214
+ boards.push({
215
+ id,
216
+ name: entry.name,
217
+ source: 'existing-folder',
218
+ specsPath: entry.name
219
+ });
220
+ }
221
+ }
222
+ }
223
+ }
224
+ catch {
225
+ // Ignore read errors
226
+ }
227
+ }
228
+ return boards;
229
+ }
230
+ /**
231
+ * Normalize board ID to kebab-case
232
+ */
233
+ normalizeId(name) {
234
+ return name
235
+ .toLowerCase()
236
+ .replace(/\s+/g, '-')
237
+ .replace(/[^a-z0-9-]/g, '')
238
+ .replace(/-+/g, '-')
239
+ .replace(/^-|-$/g, '');
240
+ }
241
+ /**
242
+ * Match increment content against available boards
243
+ */
244
+ async matchIncrement(incrementId, specContent) {
245
+ const boards = await this.getAvailableBoards();
246
+ const keywords = this.extractIncrementKeywords(specContent);
247
+ this.logger.log(` 🔍 Extracted keywords: ${keywords.slice(0, 10).join(', ')}${keywords.length > 10 ? '...' : ''}`);
248
+ if (boards.length === 0) {
249
+ return {
250
+ needsUserInput: false,
251
+ reason: 'no-boards-configured',
252
+ allMatches: [],
253
+ availableBoards: []
254
+ };
255
+ }
256
+ if (boards.length === 1) {
257
+ // Single board - auto-assign
258
+ return {
259
+ needsUserInput: false,
260
+ reason: 'single-board',
261
+ bestMatch: {
262
+ boardId: boards[0].id,
263
+ boardName: boards[0].name,
264
+ confidence: 100,
265
+ matchedTerms: [],
266
+ source: boards[0].source,
267
+ matchType: 'exact',
268
+ adoProject: boards[0].adoProject
269
+ },
270
+ allMatches: [{
271
+ boardId: boards[0].id,
272
+ boardName: boards[0].name,
273
+ confidence: 100,
274
+ matchedTerms: [],
275
+ source: boards[0].source,
276
+ matchType: 'exact',
277
+ adoProject: boards[0].adoProject
278
+ }],
279
+ availableBoards: boards
280
+ };
281
+ }
282
+ // Multiple boards - calculate matches
283
+ const matches = [];
284
+ for (const board of boards) {
285
+ const result = this.calculateMatch(board, keywords, incrementId);
286
+ if (result.confidence > 0) {
287
+ matches.push(result);
288
+ }
289
+ }
290
+ // Sort by confidence (descending)
291
+ matches.sort((a, b) => b.confidence - a.confidence);
292
+ const bestMatch = matches[0];
293
+ const secondBest = matches[1];
294
+ // Decision logic
295
+ if (!bestMatch || bestMatch.confidence === 0) {
296
+ return {
297
+ needsUserInput: true,
298
+ reason: 'no-match-found',
299
+ allMatches: matches,
300
+ availableBoards: boards
301
+ };
302
+ }
303
+ // High confidence (>80%) AND significantly better than second best
304
+ if (bestMatch.confidence > 80 && (!secondBest || bestMatch.confidence - secondBest.confidence > 20)) {
305
+ return {
306
+ needsUserInput: false,
307
+ reason: 'high-confidence-match',
308
+ bestMatch,
309
+ allMatches: matches,
310
+ availableBoards: boards
311
+ };
312
+ }
313
+ // Medium confidence (50-80%) OR close to second best - ask for confirmation
314
+ if (bestMatch.confidence >= 50) {
315
+ return {
316
+ needsUserInput: true,
317
+ reason: 'medium-confidence-needs-confirmation',
318
+ bestMatch,
319
+ allMatches: matches,
320
+ availableBoards: boards
321
+ };
322
+ }
323
+ // Low confidence (<50%) - ask user
324
+ return {
325
+ needsUserInput: true,
326
+ reason: 'low-confidence',
327
+ bestMatch,
328
+ allMatches: matches,
329
+ availableBoards: boards
330
+ };
331
+ }
332
+ /**
333
+ * Calculate match score for a board against keywords
334
+ */
335
+ calculateMatch(board, keywords, incrementId) {
336
+ let confidence = 0;
337
+ const matchedTerms = [];
338
+ let matchType = 'fuzzy';
339
+ const boardNameNormalized = this.normalizeId(board.name);
340
+ const boardNameWords = boardNameNormalized.split('-').filter(w => w.length > 2);
341
+ // Check for exact match in increment ID
342
+ if (incrementId.toLowerCase().includes(boardNameNormalized)) {
343
+ confidence += 50;
344
+ matchedTerms.push(`increment-id:${boardNameNormalized}`);
345
+ matchType = 'exact';
346
+ }
347
+ // Check each keyword against board name
348
+ for (const keyword of keywords) {
349
+ const keywordNorm = this.normalizeId(keyword);
350
+ // Exact match with board name
351
+ if (keywordNorm === boardNameNormalized) {
352
+ confidence += 40;
353
+ matchedTerms.push(`exact:${keyword}`);
354
+ matchType = 'exact';
355
+ continue;
356
+ }
357
+ // Keyword is part of board name (e.g., "clinical" in "clinical-insights")
358
+ if (boardNameNormalized.includes(keywordNorm) && keywordNorm.length > 3) {
359
+ confidence += 25;
360
+ matchedTerms.push(`partial:${keyword}`);
361
+ if (matchType !== 'exact')
362
+ matchType = 'partial';
363
+ continue;
364
+ }
365
+ // Board name word matches keyword
366
+ for (const boardWord of boardNameWords) {
367
+ if (boardWord === keywordNorm) {
368
+ confidence += 20;
369
+ matchedTerms.push(`word:${keyword}`);
370
+ if (matchType !== 'exact' && matchType !== 'partial')
371
+ matchType = 'keyword';
372
+ break;
373
+ }
374
+ // Fuzzy match (singularization)
375
+ if (this.fuzzyMatch(boardWord, keywordNorm)) {
376
+ confidence += 10;
377
+ matchedTerms.push(`fuzzy:${keyword}`);
378
+ break;
379
+ }
380
+ }
381
+ }
382
+ // Check configured keywords
383
+ if (board.keywords) {
384
+ for (const configKeyword of board.keywords) {
385
+ const configNorm = this.normalizeId(configKeyword);
386
+ for (const keyword of keywords) {
387
+ if (this.normalizeId(keyword) === configNorm) {
388
+ confidence += 30;
389
+ matchedTerms.push(`config-keyword:${keyword}`);
390
+ matchType = 'keyword';
391
+ }
392
+ }
393
+ }
394
+ }
395
+ // Check team name (from childRepo)
396
+ if (board.team) {
397
+ const teamNorm = this.normalizeId(board.team);
398
+ for (const keyword of keywords) {
399
+ if (this.normalizeId(keyword) === teamNorm) {
400
+ confidence += 25;
401
+ matchedTerms.push(`team:${keyword}`);
402
+ if (matchType !== 'exact')
403
+ matchType = 'partial';
404
+ }
405
+ }
406
+ }
407
+ // Cap at 100
408
+ confidence = Math.min(confidence, 100);
409
+ return {
410
+ boardId: board.id,
411
+ boardName: board.name,
412
+ confidence,
413
+ matchedTerms,
414
+ source: board.source,
415
+ matchType,
416
+ adoProject: board.adoProject
417
+ };
418
+ }
419
+ /**
420
+ * Fuzzy match for common variations
421
+ */
422
+ fuzzyMatch(a, b) {
423
+ // Singularization
424
+ if (a + 's' === b || b + 's' === a)
425
+ return true;
426
+ if (a.replace(/s$/, '') === b.replace(/s$/, ''))
427
+ return true;
428
+ // Common variations
429
+ const variations = {
430
+ 'ops': ['operations', 'operation'],
431
+ 'dev': ['development', 'developer'],
432
+ 'eng': ['engineering', 'engineer'],
433
+ 'mgmt': ['management'],
434
+ 'mgt': ['management'],
435
+ 'svc': ['service', 'services'],
436
+ 'sys': ['system', 'systems'],
437
+ 'config': ['configuration'],
438
+ 'auth': ['authentication', 'authorization'],
439
+ 'admin': ['administration', 'administrator']
440
+ };
441
+ for (const [abbr, full] of Object.entries(variations)) {
442
+ if ((a === abbr && full.includes(b)) || (b === abbr && full.includes(a))) {
443
+ return true;
444
+ }
445
+ }
446
+ return false;
447
+ }
448
+ /**
449
+ * Check if this is a utility/cross-cutting increment that shouldn't auto-match
450
+ */
451
+ isUtilityIncrement(specContent) {
452
+ const utilityIndicators = [
453
+ /\*\*Type\*\*:\s*utility/i,
454
+ /\*\*Type\*\*:\s*cross-cutting/i,
455
+ /\*\*Type\*\*:\s*infrastructure/i,
456
+ /\*\*Type\*\*:\s*tooling/i,
457
+ /cross-cutting/i,
458
+ /utility\s+increment/i,
459
+ /shared\s+infrastructure/i,
460
+ /platform-wide/i,
461
+ /all\s+teams/i
462
+ ];
463
+ return utilityIndicators.some(pattern => pattern.test(specContent));
464
+ }
465
+ }
466
+ //# sourceMappingURL=board-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board-matcher.js","sourceRoot":"","sources":["../../../../src/core/living-docs/board-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAU,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAgG9D,MAAM,OAAO,YAAY;IAIvB,YACU,WAAmB,EACnB,UAA+B,EAAE;QADjC,gBAAW,GAAX,WAAW,CAAQ;QACnB,YAAO,GAAP,OAAO,CAA0B;QALnC,WAAM,GAAwB,IAAI,CAAC;QACnC,iBAAY,GAAG,KAAK,CAAC;IAK1B,CAAC;IAEJ,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAE1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,wBAAwB,CAAC,WAAmB;QAC1C,MAAM,QAAQ,GAAgB,IAAI,GAAG,EAAE,CAAC;QAExC,kCAAkC;QAClC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,+CAA+C;QAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACjE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,qBAAqB;QACrB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7D,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,iFAAiF;QACjF,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACzF,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,4BAA4B;QAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QACtE,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;YACxB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;YACnE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;YACnE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;YAChE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAC/D,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM;YAC7D,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;YACnE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;YACpE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;YACpE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;YACjE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW;YACpE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO;YAC/D,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ;SACxE,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAY,EAAE,GAAgB;QAClD,0CAA0C;QAC1C,MAAM,KAAK,GAAG,IAAI;aACf,WAAW,EAAE;aACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;aAC7B,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,+DAA+D;QAC/D,MAAM,UAAU,GAAG,IAAI;aACpB,WAAW,EAAE;aACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEzB,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,yCAAyC;QACzC,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1E,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK;oBAAE,SAAS;gBAEzC,oDAAoD;gBACpD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO;oBACxC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;oBAC1C,CAAC,CAAC,SAAS,CAAC;gBAEd,uDAAuD;gBACvD,IAAI,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;oBACtD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;wBAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;wBACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChB,MAAM,CAAC,IAAI,CAAC;gCACV,EAAE;gCACF,IAAI,EAAE,OAAO,CAAC,gBAAgB;gCAC9B,MAAM,EAAE,iBAAiB;gCACzB,UAAU,EAAE,WAAW;gCACvB,UAAU;gCACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;6BAC3B,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,sCAAsC;gBACtC,IAAI,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;oBACtC,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;wBAChD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChB,MAAM,CAAC,IAAI,CAAC;gCACV,EAAE;gCACF,IAAI,EAAE,QAAQ;gCACd,MAAM,EAAE,UAAU;gCAClB,UAAU,EAAE,WAAW;gCACvB,UAAU;6BACX,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YACpE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE;wBACF,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;wBAC1B,MAAM,EAAE,WAAW;wBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,MAAM,EAAE,YAAY,EAAE,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAClE,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChF,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE;wBACF,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;wBAC/B,MAAM,EAAE,cAAc;qBACvB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;QAChF,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxF,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChB,MAAM,CAAC,IAAI,CAAC;gCACV,EAAE;gCACF,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,MAAM,EAAE,iBAAiB;gCACzB,SAAS,EAAE,KAAK,CAAC,IAAI;6BACtB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB;YACvB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAY;QAC9B,OAAO,IAAI;aACR,WAAW,EAAE;aACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;aAC1B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,WAAmB;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,sBAAsB;gBAC9B,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;aACpB,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,6BAA6B;YAC7B,OAAO;gBACL,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,cAAc;gBACtB,SAAS,EAAE;oBACT,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBACrB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;oBACzB,UAAU,EAAE,GAAG;oBACf,YAAY,EAAE,EAAE;oBAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;oBACxB,SAAS,EAAE,OAAO;oBAClB,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU;iBACjC;gBACD,UAAU,EAAE,CAAC;wBACX,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;wBACrB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;wBACzB,UAAU,EAAE,GAAG;wBACf,YAAY,EAAE,EAAE;wBAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;wBACxB,SAAS,EAAE,OAAO;wBAClB,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU;qBACjC,CAAC;gBACF,eAAe,EAAE,MAAM;aACxB,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE9B,iBAAiB;QACjB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO;gBACL,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,gBAAgB;gBACxB,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,MAAM;aACxB,CAAC;QACJ,CAAC;QAED,mEAAmE;QACnE,IAAI,SAAS,CAAC,UAAU,GAAG,EAAE,IAAI,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC;YACpG,OAAO;gBACL,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,uBAAuB;gBAC/B,SAAS;gBACT,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,MAAM;aACxB,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,IAAI,SAAS,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC/B,OAAO;gBACL,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,sCAAsC;gBAC9C,SAAS;gBACT,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,MAAM;aACxB,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,OAAO;YACL,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,gBAAgB;YACxB,SAAS;YACT,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,MAAM;SACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAgB,EAAE,QAAkB,EAAE,WAAmB;QAC9E,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,SAAS,GAAkC,OAAO,CAAC;QAEvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEhF,wCAAwC;QACxC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC5D,UAAU,IAAI,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,gBAAgB,mBAAmB,EAAE,CAAC,CAAC;YACzD,SAAS,GAAG,OAAO,CAAC;QACtB,CAAC;QAED,wCAAwC;QACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAE9C,8BAA8B;YAC9B,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;gBACxC,UAAU,IAAI,EAAE,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;gBACtC,SAAS,GAAG,OAAO,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,0EAA0E;YAC1E,IAAI,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxE,UAAU,IAAI,EAAE,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;gBACxC,IAAI,SAAS,KAAK,OAAO;oBAAE,SAAS,GAAG,SAAS,CAAC;gBACjD,SAAS;YACX,CAAC;YAED,kCAAkC;YAClC,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;gBACvC,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;oBAC9B,UAAU,IAAI,EAAE,CAAC;oBACjB,YAAY,CAAC,IAAI,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC;oBACrC,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS;wBAAE,SAAS,GAAG,SAAS,CAAC;oBAC5E,MAAM;gBACR,CAAC;gBACD,gCAAgC;gBAChC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;oBAC5C,UAAU,IAAI,EAAE,CAAC;oBACjB,YAAY,CAAC,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;oBACtC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACnD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;wBAC7C,UAAU,IAAI,EAAE,CAAC;wBACjB,YAAY,CAAC,IAAI,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;wBAC/C,SAAS,GAAG,SAAS,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC3C,UAAU,IAAI,EAAE,CAAC;oBACjB,YAAY,CAAC,IAAI,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC;oBACrC,IAAI,SAAS,KAAK,OAAO;wBAAE,SAAS,GAAG,SAAS,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;QAED,aAAa;QACb,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAEvC,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,UAAU;YACV,YAAY;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS;YACT,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,CAAS,EAAE,CAAS;QACrC,kBAAkB;QAClB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAChD,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7D,oBAAoB;QACpB,MAAM,UAAU,GAA6B;YAC3C,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;YAClC,KAAK,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;YACnC,KAAK,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;YAClC,MAAM,EAAE,CAAC,YAAY,CAAC;YACtB,KAAK,EAAE,CAAC,YAAY,CAAC;YACrB,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;YAC9B,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC5B,QAAQ,EAAE,CAAC,eAAe,CAAC;YAC3B,MAAM,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;YAC3C,OAAO,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;SAC7C,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,WAAmB;QACpC,MAAM,iBAAiB,GAAG;YACxB,0BAA0B;YAC1B,gCAAgC;YAChC,iCAAiC;YACjC,0BAA0B;YAC1B,gBAAgB;YAChB,sBAAsB;YACtB,0BAA0B;YAC1B,gBAAgB;YAChB,cAAc;SACf,CAAC;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACtE,CAAC;CACF"}