specweave 0.28.54 → 0.28.56
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/dist/src/cli/helpers/init/config-detection.d.ts +4 -0
- package/dist/src/cli/helpers/init/config-detection.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/config-detection.js +37 -13
- package/dist/src/cli/helpers/init/config-detection.js.map +1 -1
- package/dist/src/importers/ado-importer.d.ts +10 -0
- package/dist/src/importers/ado-importer.d.ts.map +1 -1
- package/dist/src/importers/ado-importer.js +49 -2
- package/dist/src/importers/ado-importer.js.map +1 -1
- package/package.json +1 -1
|
@@ -25,6 +25,10 @@ export declare function detectJiraConfig(targetDir: string): JiraConfig | null;
|
|
|
25
25
|
* - PAT (secret) → .env as AZURE_DEVOPS_PAT
|
|
26
26
|
* - org/project/teams/areas (non-secret) → config.json sync profiles
|
|
27
27
|
*
|
|
28
|
+
* CRITICAL FIX (2025-12-01): Aggregate ALL ADO profiles into projects array
|
|
29
|
+
* Bug: Only one profile was being read, causing multi-project selection to be ignored
|
|
30
|
+
* Fix: Find all ADO profiles and build projects array from each profile's config
|
|
31
|
+
*
|
|
28
32
|
* @param targetDir - Project directory to check
|
|
29
33
|
* @returns ADO config or null if not detected
|
|
30
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-detection.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/config-detection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA2BzE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8BrE;AAED
|
|
1
|
+
{"version":3,"file":"config-detection.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/config-detection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA2BzE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8BrE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAuGnE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG;IACnD,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAWA"}
|
|
@@ -77,6 +77,10 @@ export function detectJiraConfig(targetDir) {
|
|
|
77
77
|
* - PAT (secret) → .env as AZURE_DEVOPS_PAT
|
|
78
78
|
* - org/project/teams/areas (non-secret) → config.json sync profiles
|
|
79
79
|
*
|
|
80
|
+
* CRITICAL FIX (2025-12-01): Aggregate ALL ADO profiles into projects array
|
|
81
|
+
* Bug: Only one profile was being read, causing multi-project selection to be ignored
|
|
82
|
+
* Fix: Find all ADO profiles and build projects array from each profile's config
|
|
83
|
+
*
|
|
80
84
|
* @param targetDir - Project directory to check
|
|
81
85
|
* @returns ADO config or null if not detected
|
|
82
86
|
*/
|
|
@@ -100,26 +104,46 @@ export function detectADOConfig(targetDir) {
|
|
|
100
104
|
if (fs.existsSync(configPath)) {
|
|
101
105
|
const configContent = fs.readFileSync(configPath, 'utf-8');
|
|
102
106
|
const config = JSON.parse(configContent);
|
|
103
|
-
//
|
|
107
|
+
// CRITICAL FIX: Find ALL ADO profiles and aggregate into projects array
|
|
108
|
+
// Each profile represents one ADO project with its area paths
|
|
104
109
|
const profiles = config.sync?.profiles || {};
|
|
105
|
-
const
|
|
106
|
-
if (
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
const adoProfiles = Object.entries(profiles).filter(([, p]) => p.provider === 'ado');
|
|
111
|
+
if (adoProfiles.length > 0) {
|
|
112
|
+
// Get organization from first profile (all profiles share the same org)
|
|
113
|
+
const firstProfile = adoProfiles[0][1];
|
|
114
|
+
const organization = firstProfile.config?.organization;
|
|
115
|
+
if (!organization) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
// Build projects array from ALL ADO profiles
|
|
119
|
+
const projectsFromProfiles = [];
|
|
120
|
+
for (const [profileId, profile] of adoProfiles) {
|
|
121
|
+
const profileConfig = profile.config || {};
|
|
122
|
+
const projectName = profileConfig.project;
|
|
123
|
+
if (projectName) {
|
|
124
|
+
projectsFromProfiles.push({
|
|
125
|
+
name: projectName,
|
|
126
|
+
areaPaths: profileConfig.areaPaths,
|
|
127
|
+
isDefault: profileId === config.sync?.activeProfile,
|
|
128
|
+
isUmbrella: profileConfig.isUmbrella
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Determine primary project for backwards compatibility
|
|
133
|
+
const defaultProject = projectsFromProfiles.find(p => p.isDefault) || projectsFromProfiles[0];
|
|
134
|
+
const primaryProject = defaultProject?.name;
|
|
135
|
+
if (primaryProject) {
|
|
136
|
+
// Get additional fields from first profile for backwards compat
|
|
137
|
+
const { teams, strategy } = firstProfile.config || {};
|
|
114
138
|
return {
|
|
115
139
|
orgUrl: `https://dev.azure.com/${organization}`,
|
|
116
140
|
project: primaryProject,
|
|
117
141
|
pat,
|
|
118
142
|
teams,
|
|
119
|
-
areaPaths,
|
|
143
|
+
areaPaths: defaultProject?.areaPaths,
|
|
120
144
|
strategy,
|
|
121
|
-
// Pass the
|
|
122
|
-
projects:
|
|
145
|
+
// Pass the aggregated projects array for multi-project import
|
|
146
|
+
projects: projectsFromProfiles.length > 0 ? projectsFromProfiles : undefined
|
|
123
147
|
};
|
|
124
148
|
}
|
|
125
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-detection.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/config-detection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE1D,gDAAgD;QAChD,2CAA2C;QAC3C,qCAAqC;QACrC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACnG,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAE1F,MAAM,KAAK,GAAG,UAAU,IAAI,QAAQ,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACf,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAE5C,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAChE,CAAC;QAED,kBAAkB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YAEzC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;YACnC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;YACrC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC;YAEzC,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"config-detection.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/config-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,18 @@ export declare class ADOImporter implements Importer {
|
|
|
20
20
|
import(config?: ImportConfig): Promise<ExternalItem[]>;
|
|
21
21
|
/**
|
|
22
22
|
* Paginate through work items using WIQL (200 per page)
|
|
23
|
+
*
|
|
24
|
+
* CRITICAL FIX (2025-12-01): Also fetch missing parent items (Epics/Capabilities)
|
|
25
|
+
* Problem: If a parent Epic wasn't modified recently, it won't be in the WIQL results,
|
|
26
|
+
* causing all its child User Stories to be grouped into one generic folder.
|
|
27
|
+
* Solution: After fetching all items, identify missing parents and fetch them separately.
|
|
23
28
|
*/
|
|
24
29
|
paginate(config?: ImportConfig): AsyncGenerator<ExternalItem[], void, unknown>;
|
|
30
|
+
/**
|
|
31
|
+
* Find parent IDs that are referenced but not in our fetched items
|
|
32
|
+
* These are typically Epics/Capabilities that weren't modified recently
|
|
33
|
+
*/
|
|
34
|
+
private findMissingParentIds;
|
|
25
35
|
/**
|
|
26
36
|
* Fetch work items in batch (up to 200 IDs)
|
|
27
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-importer.d.ts","sourceRoot":"","sources":["../../../src/importers/ado-importer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAoCnF;;GAEG;AACH,qBAAa,WAAY,YAAW,QAAQ;IAC1C,QAAQ,CAAC,QAAQ,EAAG,KAAK,CAAU;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAAS;gBAER,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAYzD;;OAEG;IACG,MAAM,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAUhE
|
|
1
|
+
{"version":3,"file":"ado-importer.d.ts","sourceRoot":"","sources":["../../../src/importers/ado-importer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAoCnF;;GAEG;AACH,qBAAa,WAAY,YAAW,QAAQ;IAC1C,QAAQ,CAAC,QAAQ,EAAG,KAAK,CAAU;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAAS;gBAER,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAYzD;;OAEG;IACG,MAAM,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAUhE;;;;;;;OAOG;IACI,QAAQ,CAAC,MAAM,GAAE,YAAiB,GAAG,cAAc,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC;IAyHzF;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;YACW,iBAAiB;IA4B/B;;OAEG;YACW,cAAc;IA8B5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0E7B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;CAkBhC"}
|
|
@@ -29,6 +29,11 @@ export class ADOImporter {
|
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Paginate through work items using WIQL (200 per page)
|
|
32
|
+
*
|
|
33
|
+
* CRITICAL FIX (2025-12-01): Also fetch missing parent items (Epics/Capabilities)
|
|
34
|
+
* Problem: If a parent Epic wasn't modified recently, it won't be in the WIQL results,
|
|
35
|
+
* causing all its child User Stories to be grouped into one generic folder.
|
|
36
|
+
* Solution: After fetching all items, identify missing parents and fetch them separately.
|
|
32
37
|
*/
|
|
33
38
|
async *paginate(config = {}) {
|
|
34
39
|
const { timeRangeMonths = 3, includeClosed = false, labels = [], maxItems = Infinity, } = config;
|
|
@@ -60,12 +65,16 @@ export class ADOImporter {
|
|
|
60
65
|
wiqlParts.push(`ORDER BY [System.ChangedDate] DESC`);
|
|
61
66
|
const wiql = wiqlParts.join(' ');
|
|
62
67
|
try {
|
|
63
|
-
// Step 1: Execute WIQL query
|
|
64
|
-
|
|
68
|
+
// Step 1: Execute WIQL query to get all work item IDs
|
|
69
|
+
// CRITICAL: WIQL returns max 20,000 IDs by default. For larger projects, use $top parameter.
|
|
70
|
+
const queryResult = await this.makeADORequest(`/_apis/wit/wiql?$top=50000&api-version=7.0`, {
|
|
65
71
|
method: 'POST',
|
|
66
72
|
body: JSON.stringify({ query: wiql }),
|
|
67
73
|
});
|
|
68
74
|
const allWorkItemIds = queryResult.workItems.map((wi) => wi.id);
|
|
75
|
+
// Collect all items to find missing parents after pagination
|
|
76
|
+
const allFetchedItems = [];
|
|
77
|
+
const fetchedIds = new Set();
|
|
69
78
|
// Step 2: Paginate through work item IDs
|
|
70
79
|
let skip = 0;
|
|
71
80
|
const top = 200; // ADO pagination size (max 200)
|
|
@@ -78,8 +87,13 @@ export class ADOImporter {
|
|
|
78
87
|
}
|
|
79
88
|
// Fetch full work item details
|
|
80
89
|
const workItems = await this.getWorkItemsBatch(ids);
|
|
90
|
+
// Track fetched IDs
|
|
91
|
+
for (const wi of workItems) {
|
|
92
|
+
fetchedIds.add(wi.fields['System.Id']);
|
|
93
|
+
}
|
|
81
94
|
// Convert to ExternalItems
|
|
82
95
|
const items = workItems.map((wi) => this.convertToExternalItem(wi));
|
|
96
|
+
allFetchedItems.push(...items);
|
|
83
97
|
// Yield page
|
|
84
98
|
if (items.length > 0) {
|
|
85
99
|
yield items.slice(0, maxItems - totalFetched);
|
|
@@ -87,6 +101,22 @@ export class ADOImporter {
|
|
|
87
101
|
}
|
|
88
102
|
skip += top;
|
|
89
103
|
}
|
|
104
|
+
// Step 3: CRITICAL - Fetch missing parent items (Epics/Capabilities not in time range)
|
|
105
|
+
// This ensures proper hierarchy grouping even for old parent items
|
|
106
|
+
const missingParentIds = this.findMissingParentIds(allFetchedItems, fetchedIds);
|
|
107
|
+
if (missingParentIds.length > 0) {
|
|
108
|
+
console.log(` 📥 Fetching ${missingParentIds.length} parent items (Epics/Capabilities) for hierarchy...`);
|
|
109
|
+
// Fetch missing parents in batches
|
|
110
|
+
for (let i = 0; i < missingParentIds.length; i += top) {
|
|
111
|
+
const batchIds = missingParentIds.slice(i, i + top);
|
|
112
|
+
const parentWorkItems = await this.getWorkItemsBatch(batchIds);
|
|
113
|
+
const parentItems = parentWorkItems.map((wi) => this.convertToExternalItem(wi));
|
|
114
|
+
// Yield parent items (they need to be processed for grouping)
|
|
115
|
+
if (parentItems.length > 0) {
|
|
116
|
+
yield parentItems;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
90
120
|
}
|
|
91
121
|
catch (error) {
|
|
92
122
|
if (error.status === 401) {
|
|
@@ -98,6 +128,23 @@ export class ADOImporter {
|
|
|
98
128
|
throw error;
|
|
99
129
|
}
|
|
100
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Find parent IDs that are referenced but not in our fetched items
|
|
133
|
+
* These are typically Epics/Capabilities that weren't modified recently
|
|
134
|
+
*/
|
|
135
|
+
findMissingParentIds(items, fetchedIds) {
|
|
136
|
+
const missingIds = new Set();
|
|
137
|
+
for (const item of items) {
|
|
138
|
+
if (item.parentId) {
|
|
139
|
+
// Extract numeric ID from "ADO-123" format
|
|
140
|
+
const numericId = parseInt(item.parentId.replace('ADO-', ''), 10);
|
|
141
|
+
if (!isNaN(numericId) && !fetchedIds.has(numericId)) {
|
|
142
|
+
missingIds.add(numericId);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return Array.from(missingIds);
|
|
147
|
+
}
|
|
101
148
|
/**
|
|
102
149
|
* Fetch work items in batch (up to 200 IDs)
|
|
103
150
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-importer.js","sourceRoot":"","sources":["../../../src/importers/ado-importer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsCH;;GAEG;AACH,MAAM,OAAO,WAAW;IAMtB,YAAY,MAAc,EAAE,OAAe,EAAE,GAAY;QALhD,aAAQ,GAAG,KAAc,CAAC;QAMjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,0BAA0B;QACpE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAE5E,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,SAAuB,EAAE;QACpC,MAAM,KAAK,GAAmB,EAAE,CAAC;QAEjC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"ado-importer.js","sourceRoot":"","sources":["../../../src/importers/ado-importer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "0.28.
|
|
3
|
+
"version": "0.28.56",
|
|
4
4
|
"description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|