specweave 0.14.0 → 0.15.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.
- package/README.md +58 -9
- package/bin/specweave.js +65 -0
- package/dist/cli/commands/migrate-to-profiles.d.ts.map +1 -1
- package/dist/cli/commands/migrate-to-profiles.js +0 -2
- package/dist/cli/commands/migrate-to-profiles.js.map +1 -1
- package/dist/core/sync/folder-mapper.d.ts.map +1 -1
- package/dist/core/sync/folder-mapper.js +70 -35
- package/dist/core/sync/folder-mapper.js.map +1 -1
- package/dist/core/sync/profile-validator.d.ts.map +1 -1
- package/dist/core/sync/profile-validator.js +35 -90
- package/dist/core/sync/profile-validator.js.map +1 -1
- package/dist/core/types/sync-profile.d.ts +101 -155
- package/dist/core/types/sync-profile.d.ts.map +1 -1
- package/dist/core/types/sync-profile.js +46 -22
- package/dist/core/types/sync-profile.js.map +1 -1
- package/dist/utils/env-multi-project-parser.d.ts.map +1 -1
- package/dist/utils/env-multi-project-parser.js +0 -2
- package/dist/utils/env-multi-project-parser.js.map +1 -1
- package/dist/utils/project-mapper.d.ts +19 -1
- package/dist/utils/project-mapper.d.ts.map +1 -1
- package/dist/utils/project-mapper.js +7 -4
- package/dist/utils/project-mapper.js.map +1 -1
- package/dist/utils/spec-splitter.d.ts +7 -0
- package/dist/utils/spec-splitter.d.ts.map +1 -1
- package/dist/utils/spec-splitter.js +20 -2
- package/dist/utils/spec-splitter.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave-ado/lib/ado-multi-project-sync.js +40 -7
- package/plugins/specweave-ado/lib/ado-multi-project-sync.ts +49 -7
- package/plugins/specweave-github/hooks/hooks.json +0 -11
- package/plugins/specweave-github/lib/github-multi-project-sync.js +58 -5
- package/plugins/specweave-github/lib/github-multi-project-sync.ts +80 -4
- package/plugins/specweave-jira/lib/jira-multi-project-sync.js +30 -5
- package/plugins/specweave-jira/lib/jira-multi-project-sync.ts +34 -5
|
@@ -6,180 +6,111 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export type SyncProvider = 'github' | 'jira' | 'ado';
|
|
8
8
|
/**
|
|
9
|
-
* Sync Strategy (v0.
|
|
9
|
+
* Sync Strategy (v0.13.0+ - Simplified Two-Tier Architecture)
|
|
10
10
|
*
|
|
11
11
|
* Determines how work is organized and synced:
|
|
12
|
-
* -
|
|
13
|
-
*
|
|
14
|
-
* - custom: Raw query (JQL/GraphQL/WIQL) for power users (
|
|
15
|
-
*/
|
|
16
|
-
export type SyncStrategy = 'simple' | 'filtered' | 'custom';
|
|
17
|
-
export type JiraStrategy = 'project-per-team' | 'shared-project-with-components';
|
|
18
|
-
/**
|
|
19
|
-
* Container filters (provider-specific)
|
|
12
|
+
* - intelligent: Auto-maps user stories to projects based on content analysis (default, 90% of users)
|
|
13
|
+
* Supports single project (backward compatible) OR multiple projects (auto-classify)
|
|
14
|
+
* - custom: Raw query (JQL/GraphQL/WIQL) for power users (advanced, 10% of users)
|
|
20
15
|
*
|
|
21
|
-
*
|
|
16
|
+
* REMOVED in v0.13.0:
|
|
17
|
+
* - filtered: Too complex (containers, sub-organizations, filters) → Use intelligent instead
|
|
18
|
+
* - simple: Now an alias for 'intelligent' (backward compatibility)
|
|
22
19
|
*/
|
|
23
|
-
export
|
|
24
|
-
/** Include items with these labels */
|
|
25
|
-
includeLabels?: string[];
|
|
26
|
-
/** Exclude items with these labels */
|
|
27
|
-
excludeLabels?: string[];
|
|
28
|
-
/** Filter by assignees (email or ID) */
|
|
29
|
-
assignees?: string[];
|
|
30
|
-
/** Filter by status categories */
|
|
31
|
-
statusCategories?: string[];
|
|
32
|
-
/** Filter by components */
|
|
33
|
-
components?: string[];
|
|
34
|
-
/** Filter by sprints */
|
|
35
|
-
sprints?: string[];
|
|
36
|
-
/** Filter by issue types (Epic, Story, Task, Bug) */
|
|
37
|
-
issueTypes?: string[];
|
|
38
|
-
/** Filter by milestones */
|
|
39
|
-
milestones?: string[];
|
|
40
|
-
/** Filter by states */
|
|
41
|
-
states?: ('open' | 'closed')[];
|
|
42
|
-
/** Filter by area paths */
|
|
43
|
-
areaPaths?: string[];
|
|
44
|
-
/** Filter by iteration paths */
|
|
45
|
-
iterationPaths?: string[];
|
|
46
|
-
/** Filter by work item types (Epic, Feature, User Story, Bug) */
|
|
47
|
-
workItemTypes?: string[];
|
|
48
|
-
}
|
|
20
|
+
export type SyncStrategy = 'intelligent' | 'custom';
|
|
49
21
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* Represents a single container (Jira project, GitHub repo, ADO project) with optional sub-organizations.
|
|
22
|
+
* Legacy sync strategy (backward compatibility)
|
|
23
|
+
* 'simple' maps to 'intelligent' automatically
|
|
53
24
|
*/
|
|
54
|
-
export
|
|
55
|
-
/**
|
|
56
|
-
* Container ID
|
|
57
|
-
* - Jira: Project key (e.g., "PROJECT-A")
|
|
58
|
-
* - GitHub: Repository (e.g., "owner/repo-name")
|
|
59
|
-
* - ADO: Project name (e.g., "Platform")
|
|
60
|
-
*/
|
|
61
|
-
id: string;
|
|
62
|
-
/**
|
|
63
|
-
* Sub-organizations within the container
|
|
64
|
-
* - Jira: Board names (e.g., ["Team Alpha Board", "Team Beta Board"])
|
|
65
|
-
* - GitHub: Project board titles (e.g., ["Frontend Board", "UI Components"])
|
|
66
|
-
* - ADO: Team board names (e.g., ["API Team Board"])
|
|
67
|
-
*/
|
|
68
|
-
subOrganizations?: string[];
|
|
69
|
-
/**
|
|
70
|
-
* Filters applied to this container
|
|
71
|
-
*/
|
|
72
|
-
filters?: SyncContainerFilters;
|
|
73
|
-
}
|
|
25
|
+
export type LegacySyncStrategy = 'simple' | 'intelligent' | 'custom';
|
|
74
26
|
/**
|
|
75
|
-
* GitHub Configuration (
|
|
27
|
+
* GitHub Configuration (v0.13.0+ - Simplified Multi-Project Architecture)
|
|
28
|
+
*
|
|
29
|
+
* Supports four patterns:
|
|
30
|
+
* 1. Single repo (backward compatible): owner + repo
|
|
31
|
+
* 2. Multiple repos (intelligent mapping): owner + repos[]
|
|
32
|
+
* 3. Master + nested repos (epic-level tracking): owner + masterRepo + repos[]
|
|
33
|
+
* 4. Custom query (power users): customQuery (GitHub search syntax)
|
|
76
34
|
*
|
|
77
|
-
*
|
|
78
|
-
* -
|
|
79
|
-
* - Custom strategy: customQuery (GitHub search syntax)
|
|
35
|
+
* REMOVED in v0.13.0:
|
|
36
|
+
* - containers: Too complex → Use repos[] instead
|
|
80
37
|
*/
|
|
81
38
|
export interface GitHubConfig {
|
|
82
39
|
owner?: string;
|
|
83
40
|
repo?: string;
|
|
84
|
-
|
|
41
|
+
repos?: string[];
|
|
42
|
+
masterRepo?: string;
|
|
43
|
+
masterRepoLevel?: 'epic';
|
|
44
|
+
nestedRepoLevel?: 'story-task';
|
|
45
|
+
crossLinking?: boolean;
|
|
46
|
+
confidenceThreshold?: number;
|
|
85
47
|
customQuery?: string;
|
|
86
48
|
}
|
|
87
49
|
/**
|
|
88
|
-
* Jira Configuration (
|
|
50
|
+
* Jira Configuration (v0.13.0+ - Simplified Multi-Project Architecture)
|
|
51
|
+
*
|
|
52
|
+
* Supports three patterns:
|
|
53
|
+
* 1. Single project (backward compatible): domain + projectKey
|
|
54
|
+
* 2. Multiple projects (intelligent mapping): domain + projects[]
|
|
55
|
+
* 3. Custom query (power users): domain + customQuery (raw JQL)
|
|
89
56
|
*
|
|
90
|
-
*
|
|
91
|
-
* -
|
|
92
|
-
* -
|
|
93
|
-
* -
|
|
57
|
+
* REMOVED in v0.13.0:
|
|
58
|
+
* - strategy (JiraStrategy): Deprecated → Use intelligent mapping instead
|
|
59
|
+
* - components: Too granular → Use projects[] or customQuery
|
|
60
|
+
* - containers: Too complex → Use projects[] instead
|
|
94
61
|
*
|
|
95
62
|
* Backward Compatibility:
|
|
96
|
-
* - Old config: { domain, projectKey } - still works (
|
|
97
|
-
* - Old config: { domain,
|
|
98
|
-
* - New config: { domain, containers: [{id, subOrganizations, filters}] } - hierarchical
|
|
63
|
+
* - Old config: { domain, projectKey } - still works (intelligent with 1 project)
|
|
64
|
+
* - Old config: { domain, projects } - still works (intelligent with N projects)
|
|
99
65
|
*/
|
|
100
66
|
export interface JiraConfig {
|
|
101
67
|
domain: string;
|
|
102
|
-
issueType?: 'Epic' | 'Story' | 'Task';
|
|
103
|
-
/**
|
|
104
|
-
* @deprecated Use SyncStrategy instead (simple/filtered/custom)
|
|
105
|
-
* Old field: How teams are organized in Jira
|
|
106
|
-
*/
|
|
107
|
-
strategy?: JiraStrategy;
|
|
108
|
-
/**
|
|
109
|
-
* @deprecated Use containers array instead
|
|
110
|
-
* Strategy 1: Multiple projects (one per team)
|
|
111
|
-
*/
|
|
112
|
-
projects?: string[];
|
|
113
|
-
/**
|
|
114
|
-
* @deprecated Use containers array instead
|
|
115
|
-
* Strategy 2: Single project key OR shared project
|
|
116
|
-
*/
|
|
117
68
|
projectKey?: string;
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
* ]
|
|
129
|
-
*/
|
|
130
|
-
containers?: SyncContainer[];
|
|
131
|
-
/**
|
|
132
|
-
* Custom strategy: Raw JQL query
|
|
133
|
-
* Example: "project IN (PROJECT-A, PROJECT-B) AND labels IN (feature)"
|
|
134
|
-
*/
|
|
69
|
+
projects?: string[];
|
|
70
|
+
intelligentMapping?: boolean;
|
|
71
|
+
autoCreateEpics?: boolean;
|
|
72
|
+
confidenceThreshold?: number;
|
|
73
|
+
itemTypeMapping?: {
|
|
74
|
+
epic: string;
|
|
75
|
+
story: string;
|
|
76
|
+
task: string;
|
|
77
|
+
subtask: string;
|
|
78
|
+
};
|
|
135
79
|
customQuery?: string;
|
|
136
80
|
}
|
|
137
81
|
/**
|
|
138
|
-
* Azure DevOps Configuration (
|
|
82
|
+
* Azure DevOps Configuration (v0.13.0+ - Simplified Multi-Project Architecture)
|
|
83
|
+
*
|
|
84
|
+
* Supports four patterns:
|
|
85
|
+
* 1. Single project (backward compatible): organization + project
|
|
86
|
+
* 2. Multiple projects (intelligent mapping): organization + projects[]
|
|
87
|
+
* 3. Single project + area paths (advanced): organization + project + areaPaths[]
|
|
88
|
+
* 4. Custom query (power users): organization + customQuery (raw WIQL)
|
|
139
89
|
*
|
|
140
|
-
*
|
|
141
|
-
* -
|
|
142
|
-
* -
|
|
143
|
-
* -
|
|
90
|
+
* REMOVED in v0.13.0:
|
|
91
|
+
* - teams: Too granular → Use projects[] or areaPaths[]
|
|
92
|
+
* - areaPaths (Record<string, string>): Changed to string[] for simpler config
|
|
93
|
+
* - iterationPath: Use customQuery for complex filtering
|
|
94
|
+
* - containers: Too complex → Use projects[] or areaPaths[] instead
|
|
144
95
|
*
|
|
145
96
|
* Backward Compatibility:
|
|
146
|
-
* - Old config: { organization, project
|
|
147
|
-
* -
|
|
97
|
+
* - Old config: { organization, project } - still works (intelligent with 1 project)
|
|
98
|
+
* - Old config: { organization, project, teams } - deprecated, use areaPaths[] instead
|
|
148
99
|
*/
|
|
149
100
|
export interface AdoConfig {
|
|
150
101
|
organization: string;
|
|
151
|
-
/**
|
|
152
|
-
* @deprecated Use containers array instead
|
|
153
|
-
* Single project name
|
|
154
|
-
*/
|
|
155
102
|
project?: string;
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
* @deprecated Use filters in SyncContainer instead
|
|
168
|
-
*/
|
|
169
|
-
iterationPath?: string;
|
|
170
|
-
workItemType?: 'Epic' | 'Feature' | 'User Story';
|
|
171
|
-
/**
|
|
172
|
-
* Filtered strategy: Multiple projects + area paths
|
|
173
|
-
* Example: [
|
|
174
|
-
* {id: "Platform", filters: {areaPaths: ["Platform\\Core"], workItemTypes: ["User Story"]}},
|
|
175
|
-
* {id: "Services", filters: {areaPaths: ["Services\\API"]}}
|
|
176
|
-
* ]
|
|
177
|
-
*/
|
|
178
|
-
containers?: SyncContainer[];
|
|
179
|
-
/**
|
|
180
|
-
* Custom strategy: Raw WIQL query
|
|
181
|
-
* Example: "SELECT * FROM WorkItems WHERE [System.TeamProject] = 'Platform' AND [System.AreaPath] UNDER 'Platform\\Core'"
|
|
182
|
-
*/
|
|
103
|
+
projects?: string[];
|
|
104
|
+
areaPaths?: string[];
|
|
105
|
+
intelligentMapping?: boolean;
|
|
106
|
+
autoCreateEpics?: boolean;
|
|
107
|
+
confidenceThreshold?: number;
|
|
108
|
+
workItemTypes?: {
|
|
109
|
+
epic: string;
|
|
110
|
+
feature: string;
|
|
111
|
+
story: string;
|
|
112
|
+
task: string;
|
|
113
|
+
};
|
|
183
114
|
customQuery?: string;
|
|
184
115
|
}
|
|
185
116
|
export type ProviderConfig = GitHubConfig | JiraConfig | AdoConfig;
|
|
@@ -373,31 +304,46 @@ export interface ProjectDetectionResult {
|
|
|
373
304
|
suggestedProfile?: string;
|
|
374
305
|
}
|
|
375
306
|
/**
|
|
376
|
-
* Check if profile uses
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
*
|
|
307
|
+
* Check if profile uses intelligent strategy (auto-mapping, default)
|
|
308
|
+
*
|
|
309
|
+
* Intelligent strategy supports:
|
|
310
|
+
* - Single project/repo (backward compatible)
|
|
311
|
+
* - Multiple projects/repos (auto-classification)
|
|
381
312
|
*/
|
|
382
|
-
export declare function
|
|
313
|
+
export declare function isIntelligentStrategy(profile: SyncProfile): boolean;
|
|
383
314
|
/**
|
|
384
315
|
* Check if profile uses custom strategy (raw query)
|
|
385
316
|
*/
|
|
386
317
|
export declare function isCustomStrategy(profile: SyncProfile): boolean;
|
|
387
318
|
/**
|
|
388
|
-
* Check if config
|
|
319
|
+
* Check if GitHub config uses multi-repo pattern
|
|
320
|
+
*/
|
|
321
|
+
export declare function hasMultipleGitHubRepos(config: GitHubConfig): boolean;
|
|
322
|
+
/**
|
|
323
|
+
* Check if GitHub config uses master+nested repos pattern
|
|
324
|
+
*/
|
|
325
|
+
export declare function hasGitHubMasterNested(config: GitHubConfig): boolean;
|
|
326
|
+
/**
|
|
327
|
+
* Check if Jira config uses multi-project pattern
|
|
389
328
|
*/
|
|
390
|
-
export declare function
|
|
329
|
+
export declare function hasMultipleJiraProjects(config: JiraConfig): boolean;
|
|
391
330
|
/**
|
|
392
|
-
* Check if config
|
|
331
|
+
* Check if ADO config uses multi-project pattern
|
|
393
332
|
*/
|
|
394
|
-
export declare function
|
|
333
|
+
export declare function hasMultipleAdoProjects(config: AdoConfig): boolean;
|
|
395
334
|
/**
|
|
396
|
-
* Check if config
|
|
335
|
+
* Check if ADO config uses area path pattern (single project with area paths)
|
|
397
336
|
*/
|
|
398
|
-
export declare function
|
|
337
|
+
export declare function hasAdoAreaPaths(config: AdoConfig): boolean;
|
|
399
338
|
/**
|
|
400
|
-
* Get effective strategy (defaults to '
|
|
339
|
+
* Get effective strategy (defaults to 'intelligent' if not specified)
|
|
340
|
+
*
|
|
341
|
+
* Backward compatibility: 'simple' is treated as 'intelligent'
|
|
401
342
|
*/
|
|
402
343
|
export declare function getEffectiveStrategy(profile: SyncProfile): SyncStrategy;
|
|
344
|
+
/**
|
|
345
|
+
* DEPRECATED: Use isIntelligentStrategy() instead
|
|
346
|
+
* Kept for backward compatibility only
|
|
347
|
+
*/
|
|
348
|
+
export declare function isSimpleStrategy(profile: SyncProfile): boolean;
|
|
403
349
|
//# sourceMappingURL=sync-profile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-profile.d.ts","sourceRoot":"","sources":["../../../src/core/types/sync-profile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"sync-profile.d.ts","sourceRoot":"","sources":["../../../src/core/types/sync-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,22 +5,20 @@
|
|
|
5
5
|
* with time range filtering and rate limiting protection.
|
|
6
6
|
*/
|
|
7
7
|
// ============================================================================
|
|
8
|
-
// Type Guard Functions (v0.
|
|
8
|
+
// Type Guard Functions (v0.13.0+ - Simplified)
|
|
9
9
|
// ============================================================================
|
|
10
10
|
/**
|
|
11
|
-
* Check if profile uses
|
|
11
|
+
* Check if profile uses intelligent strategy (auto-mapping, default)
|
|
12
|
+
*
|
|
13
|
+
* Intelligent strategy supports:
|
|
14
|
+
* - Single project/repo (backward compatible)
|
|
15
|
+
* - Multiple projects/repos (auto-classification)
|
|
12
16
|
*/
|
|
13
|
-
export function
|
|
14
|
-
// If strategy not specified, default to
|
|
17
|
+
export function isIntelligentStrategy(profile) {
|
|
18
|
+
// If strategy not specified, default to intelligent (backward compatibility)
|
|
15
19
|
if (!profile.strategy)
|
|
16
20
|
return true;
|
|
17
|
-
return profile.strategy === '
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Check if profile uses filtered strategy (multiple containers + boards)
|
|
21
|
-
*/
|
|
22
|
-
export function isFilteredStrategy(profile) {
|
|
23
|
-
return profile.strategy === 'filtered';
|
|
21
|
+
return profile.strategy === 'intelligent';
|
|
24
22
|
}
|
|
25
23
|
/**
|
|
26
24
|
* Check if profile uses custom strategy (raw query)
|
|
@@ -29,27 +27,53 @@ export function isCustomStrategy(profile) {
|
|
|
29
27
|
return profile.strategy === 'custom';
|
|
30
28
|
}
|
|
31
29
|
/**
|
|
32
|
-
* Check if config
|
|
30
|
+
* Check if GitHub config uses multi-repo pattern
|
|
31
|
+
*/
|
|
32
|
+
export function hasMultipleGitHubRepos(config) {
|
|
33
|
+
return !!(config.repos && config.repos.length > 1);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check if GitHub config uses master+nested repos pattern
|
|
33
37
|
*/
|
|
34
|
-
export function
|
|
35
|
-
return !!(config.
|
|
38
|
+
export function hasGitHubMasterNested(config) {
|
|
39
|
+
return !!(config.masterRepo && config.repos && config.repos.length > 0);
|
|
36
40
|
}
|
|
37
41
|
/**
|
|
38
|
-
* Check if config
|
|
42
|
+
* Check if Jira config uses multi-project pattern
|
|
39
43
|
*/
|
|
40
|
-
export function
|
|
41
|
-
return !!(config.
|
|
44
|
+
export function hasMultipleJiraProjects(config) {
|
|
45
|
+
return !!(config.projects && config.projects.length > 1);
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
|
-
* Check if config
|
|
48
|
+
* Check if ADO config uses multi-project pattern
|
|
45
49
|
*/
|
|
46
|
-
export function
|
|
47
|
-
return !!(config.
|
|
50
|
+
export function hasMultipleAdoProjects(config) {
|
|
51
|
+
return !!(config.projects && config.projects.length > 1);
|
|
48
52
|
}
|
|
49
53
|
/**
|
|
50
|
-
*
|
|
54
|
+
* Check if ADO config uses area path pattern (single project with area paths)
|
|
55
|
+
*/
|
|
56
|
+
export function hasAdoAreaPaths(config) {
|
|
57
|
+
return !!(config.project && config.areaPaths && config.areaPaths.length > 0);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get effective strategy (defaults to 'intelligent' if not specified)
|
|
61
|
+
*
|
|
62
|
+
* Backward compatibility: 'simple' is treated as 'intelligent'
|
|
51
63
|
*/
|
|
52
64
|
export function getEffectiveStrategy(profile) {
|
|
53
|
-
|
|
65
|
+
const strategy = profile.strategy;
|
|
66
|
+
// Backward compatibility: 'simple' → 'intelligent'
|
|
67
|
+
if (strategy === 'simple' || !strategy) {
|
|
68
|
+
return 'intelligent';
|
|
69
|
+
}
|
|
70
|
+
return strategy;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* DEPRECATED: Use isIntelligentStrategy() instead
|
|
74
|
+
* Kept for backward compatibility only
|
|
75
|
+
*/
|
|
76
|
+
export function isSimpleStrategy(profile) {
|
|
77
|
+
return isIntelligentStrategy(profile);
|
|
54
78
|
}
|
|
55
79
|
//# sourceMappingURL=sync-profile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-profile.js","sourceRoot":"","sources":["../../../src/core/types/sync-profile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"sync-profile.js","sourceRoot":"","sources":["../../../src/core/types/sync-profile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0cH,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,6EAA6E;IAC7E,IAAI,CAAC,OAAO,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,OAAO,CAAC,QAAQ,KAAK,aAAa,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAoB;IACnD,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAoB;IACzD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAoB;IACxD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IACxD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA8B,CAAC;IAExD,mDAAmD;IACnD,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,QAAwB,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAoB;IACnD,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-multi-project-parser.d.ts","sourceRoot":"","sources":["../../src/utils/env-multi-project-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAM5D,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,GAAG,EAAE,gBAAgB,EAAE,CAAC;CACzB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CASvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,IAAI,iBAAiB,EAAE,CAoCvD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,EAAE,CA8BrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,EAAE,CAkBrD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,qBAAqB,CAM5D;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,
|
|
1
|
+
{"version":3,"file":"env-multi-project-parser.d.ts","sourceRoot":"","sources":["../../src/utils/env-multi-project-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAM5D,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,GAAG,EAAE,gBAAgB,EAAE,CAAC;CACzB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CASvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,IAAI,iBAAiB,EAAE,CAoCvD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,EAAE,CA8BrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,EAAE,CAkBrD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,qBAAqB,CAM5D;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAuBA;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAuBA;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAuBA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,IAAI,KAAK,CAAC;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAAC,CAoBD;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAcjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAqB9D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAUjE"}
|
|
@@ -227,7 +227,6 @@ export function createJiraSyncProfile(config) {
|
|
|
227
227
|
config: {
|
|
228
228
|
domain: config.domain,
|
|
229
229
|
projectKey: config.projectKey,
|
|
230
|
-
issueType: 'Epic',
|
|
231
230
|
},
|
|
232
231
|
timeRange: {
|
|
233
232
|
default: '1M',
|
|
@@ -282,7 +281,6 @@ export function createAdoSyncProfile(config) {
|
|
|
282
281
|
config: {
|
|
283
282
|
organization: config.organization,
|
|
284
283
|
project: config.project,
|
|
285
|
-
workItemType: 'Epic',
|
|
286
284
|
},
|
|
287
285
|
timeRange: {
|
|
288
286
|
default: '1M',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-multi-project-parser.js","sourceRoot":"","sources":["../../src/utils/env-multi-project-parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"env-multi-project-parser.js","sourceRoot":"","sources":["../../src/utils/env-multi-project-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,23 @@ export interface ProjectRule {
|
|
|
26
26
|
componentTypes: string[];
|
|
27
27
|
excludeKeywords?: string[];
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Project mapper configuration
|
|
31
|
+
*/
|
|
32
|
+
export interface ProjectMapperConfig {
|
|
33
|
+
/**
|
|
34
|
+
* Minimum confidence threshold (0.0-1.0) for primary project match
|
|
35
|
+
* Default: 0.3 (30%)
|
|
36
|
+
*
|
|
37
|
+
* Lower values (0.15-0.2) work better for business-focused specs
|
|
38
|
+
* Higher values (0.4-0.5) work better for tech-focused specs
|
|
39
|
+
*/
|
|
40
|
+
confidenceThreshold?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Custom project rules (overrides default rules)
|
|
43
|
+
*/
|
|
44
|
+
customRules?: ProjectRule[];
|
|
45
|
+
}
|
|
29
46
|
/**
|
|
30
47
|
* Default project mapping rules
|
|
31
48
|
* These can be customized via .specweave/config.json
|
|
@@ -45,9 +62,10 @@ export declare function mapUserStoryToProjects(userStory: UserStory, projectRule
|
|
|
45
62
|
*
|
|
46
63
|
* @param userStory User story to analyze
|
|
47
64
|
* @param projectRules Project mapping rules
|
|
65
|
+
* @param config Optional configuration (confidence threshold, custom rules)
|
|
48
66
|
* @returns Primary project mapping or null if no confident match
|
|
49
67
|
*/
|
|
50
|
-
export declare function getPrimaryProject(userStory: UserStory, projectRules?: ProjectRule[]): ProjectMapping | null;
|
|
68
|
+
export declare function getPrimaryProject(userStory: UserStory, projectRules?: ProjectRule[], config?: ProjectMapperConfig): ProjectMapping | null;
|
|
51
69
|
/**
|
|
52
70
|
* Split spec into project-specific specs based on user story mappings
|
|
53
71
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-mapper.d.ts","sourceRoot":"","sources":["../../src/utils/project-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAwF9C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,EACpB,YAAY,GAAE,WAAW,EAA0B,GAClD,cAAc,EAAE,CAiFlB;AAED
|
|
1
|
+
{"version":3,"file":"project-mapper.d.ts","sourceRoot":"","sources":["../../src/utils/project-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAwF9C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,EACpB,YAAY,GAAE,WAAW,EAA0B,GAClD,cAAc,EAAE,CAiFlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,YAAY,GAAE,WAAW,EAA0B,EACnD,MAAM,CAAC,EAAE,mBAAmB,GAC3B,cAAc,GAAG,IAAI,CAUvB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,SAAS,EAAE,EACxB,YAAY,GAAE,WAAW,EAA0B,GAClD,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAmB1B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAoB/F;AAeD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,cAAc,EAAE,GACzB,MAAM,CA4BR"}
|
|
@@ -172,12 +172,15 @@ export function mapUserStoryToProjects(userStory, projectRules = DEFAULT_PROJECT
|
|
|
172
172
|
*
|
|
173
173
|
* @param userStory User story to analyze
|
|
174
174
|
* @param projectRules Project mapping rules
|
|
175
|
+
* @param config Optional configuration (confidence threshold, custom rules)
|
|
175
176
|
* @returns Primary project mapping or null if no confident match
|
|
176
177
|
*/
|
|
177
|
-
export function getPrimaryProject(userStory, projectRules = DEFAULT_PROJECT_RULES) {
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
export function getPrimaryProject(userStory, projectRules = DEFAULT_PROJECT_RULES, config) {
|
|
179
|
+
const rules = config?.customRules || projectRules;
|
|
180
|
+
const threshold = config?.confidenceThreshold ?? 0.3; // Default: 30%
|
|
181
|
+
const mappings = mapUserStoryToProjects(userStory, rules);
|
|
182
|
+
// Require confidence >= threshold for primary project
|
|
183
|
+
return mappings.length > 0 && mappings[0].confidence >= threshold
|
|
181
184
|
? mappings[0]
|
|
182
185
|
: null;
|
|
183
186
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-mapper.js","sourceRoot":"","sources":["../../src/utils/project-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"project-mapper.js","sourceRoot":"","sources":["../../src/utils/project-mapper.ts"],"names":[],"mappings":"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"}
|