specweave 0.30.1 → 0.30.2
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/plugins/specweave-ado/lib/ado-permission-gate.d.ts +113 -0
- package/dist/plugins/specweave-ado/lib/ado-permission-gate.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-permission-gate.js +169 -0
- package/dist/plugins/specweave-ado/lib/ado-permission-gate.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-profile-resolver.d.ts +137 -0
- package/dist/plugins/specweave-ado/lib/ado-profile-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-profile-resolver.js +200 -0
- package/dist/plugins/specweave-ado/lib/ado-profile-resolver.js.map +1 -0
- package/dist/src/cli/commands/sync-scheduled.d.ts.map +1 -1
- package/dist/src/cli/commands/sync-scheduled.js +1 -0
- package/dist/src/cli/commands/sync-scheduled.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts +3 -1
- package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js +9 -7
- package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js.map +1 -1
- package/dist/src/core/background/job-launcher.d.ts +5 -0
- package/dist/src/core/background/job-launcher.d.ts.map +1 -1
- package/dist/src/core/background/job-launcher.js +14 -3
- package/dist/src/core/background/job-launcher.js.map +1 -1
- package/dist/src/core/errors/index.d.ts +174 -0
- package/dist/src/core/errors/index.d.ts.map +1 -0
- package/dist/src/core/errors/index.js +238 -0
- package/dist/src/core/errors/index.js.map +1 -0
- package/dist/src/core/scheduler/session-sync-executor.d.ts +3 -0
- package/dist/src/core/scheduler/session-sync-executor.d.ts.map +1 -1
- package/dist/src/core/scheduler/session-sync-executor.js +27 -2
- package/dist/src/core/scheduler/session-sync-executor.js.map +1 -1
- package/dist/src/core/specs/spec-metadata-manager.d.ts +5 -1
- package/dist/src/core/specs/spec-metadata-manager.d.ts.map +1 -1
- package/dist/src/core/specs/spec-metadata-manager.js +4 -2
- package/dist/src/core/specs/spec-metadata-manager.js.map +1 -1
- package/dist/src/importers/item-converter.d.ts +5 -0
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +15 -4
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/integrations/ado/ado-client-factory.d.ts +102 -0
- package/dist/src/integrations/ado/ado-client-factory.d.ts.map +1 -0
- package/dist/src/integrations/ado/ado-client-factory.js +115 -0
- package/dist/src/integrations/ado/ado-client-factory.js.map +1 -0
- package/dist/src/integrations/ado/ado-client.d.ts +24 -1
- package/dist/src/integrations/ado/ado-client.d.ts.map +1 -1
- package/dist/src/integrations/ado/ado-client.js +48 -17
- package/dist/src/integrations/ado/ado-client.js.map +1 -1
- package/dist/src/integrations/ado/ado-pat-provider.d.ts +45 -0
- package/dist/src/integrations/ado/ado-pat-provider.d.ts.map +1 -0
- package/dist/src/integrations/ado/ado-pat-provider.js +70 -0
- package/dist/src/integrations/ado/ado-pat-provider.js.map +1 -0
- package/dist/src/integrations/jira/jira-client.d.ts +5 -0
- package/dist/src/integrations/jira/jira-client.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-client.js +24 -13
- package/dist/src/integrations/jira/jira-client.js.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +5 -0
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.js +13 -2
- package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
- package/dist/src/integrations/jira/jira-mapper.d.ts +5 -0
- package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-mapper.js +14 -3
- package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
- package/dist/src/sync/sync-coordinator.d.ts +11 -0
- package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
- package/dist/src/sync/sync-coordinator.js +80 -3
- package/dist/src/sync/sync-coordinator.js.map +1 -1
- package/dist/src/testing/test-generator.d.ts +5 -0
- package/dist/src/testing/test-generator.d.ts.map +1 -1
- package/dist/src/testing/test-generator.js +17 -6
- package/dist/src/testing/test-generator.js.map +1 -1
- package/dist/src/utils/fs-native.d.ts +5 -2
- package/dist/src/utils/fs-native.d.ts.map +1 -1
- package/dist/src/utils/fs-native.js +6 -2
- package/dist/src/utils/fs-native.js.map +1 -1
- package/dist/src/utils/logger.d.ts +5 -1
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/src/utils/logger.js +6 -3
- package/dist/src/utils/logger.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/lib/vendor/utils/fs-native.d.ts +5 -2
- package/plugins/specweave/lib/vendor/utils/fs-native.js +6 -2
- package/plugins/specweave/lib/vendor/utils/fs-native.js.map +1 -1
- package/plugins/specweave/lib/vendor/utils/logger.d.ts +5 -1
- package/plugins/specweave/lib/vendor/utils/logger.js +6 -3
- package/plugins/specweave/lib/vendor/utils/logger.js.map +1 -1
- package/plugins/specweave-ado/agents/ado-manager/AGENT.md +62 -4
- package/plugins/specweave-ado/commands/specweave-ado-close-workitem.md +197 -12
- package/plugins/specweave-ado/commands/specweave-ado-create-workitem.md +148 -24
- package/plugins/specweave-ado/commands/specweave-ado-sync.md +170 -77
- package/plugins/specweave-ado/lib/ado-permission-gate.js +127 -0
- package/plugins/specweave-ado/lib/ado-permission-gate.ts +231 -0
- package/plugins/specweave-ado/lib/ado-profile-resolver.js +153 -0
- package/plugins/specweave-ado/lib/ado-profile-resolver.ts +323 -0
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +84 -0
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +126 -0
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SpecWeave Error Hierarchy
|
|
3
|
+
*
|
|
4
|
+
* Centralized error types for the SpecWeave framework.
|
|
5
|
+
* All custom errors extend SpecWeaveError for consistent error handling.
|
|
6
|
+
*
|
|
7
|
+
* @module core/errors
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Error codes for categorization
|
|
11
|
+
*/
|
|
12
|
+
export var ErrorCode;
|
|
13
|
+
(function (ErrorCode) {
|
|
14
|
+
// Configuration errors (1xxx)
|
|
15
|
+
ErrorCode[ErrorCode["CONFIG_NOT_FOUND"] = 1001] = "CONFIG_NOT_FOUND";
|
|
16
|
+
ErrorCode[ErrorCode["CONFIG_INVALID"] = 1002] = "CONFIG_INVALID";
|
|
17
|
+
ErrorCode[ErrorCode["CONFIG_PARSE_ERROR"] = 1003] = "CONFIG_PARSE_ERROR";
|
|
18
|
+
// Sync errors (2xxx)
|
|
19
|
+
ErrorCode[ErrorCode["SYNC_FAILED"] = 2001] = "SYNC_FAILED";
|
|
20
|
+
ErrorCode[ErrorCode["SYNC_CONFLICT"] = 2002] = "SYNC_CONFLICT";
|
|
21
|
+
ErrorCode[ErrorCode["SYNC_RATE_LIMITED"] = 2003] = "SYNC_RATE_LIMITED";
|
|
22
|
+
ErrorCode[ErrorCode["SYNC_PERMISSION_DENIED"] = 2004] = "SYNC_PERMISSION_DENIED";
|
|
23
|
+
ErrorCode[ErrorCode["SYNC_NETWORK_ERROR"] = 2005] = "SYNC_NETWORK_ERROR";
|
|
24
|
+
// Import errors (3xxx)
|
|
25
|
+
ErrorCode[ErrorCode["IMPORT_FAILED"] = 3001] = "IMPORT_FAILED";
|
|
26
|
+
ErrorCode[ErrorCode["IMPORT_PARSE_ERROR"] = 3002] = "IMPORT_PARSE_ERROR";
|
|
27
|
+
ErrorCode[ErrorCode["IMPORT_INVALID_FORMAT"] = 3003] = "IMPORT_INVALID_FORMAT";
|
|
28
|
+
ErrorCode[ErrorCode["IMPORT_DUPLICATE"] = 3004] = "IMPORT_DUPLICATE";
|
|
29
|
+
// Validation errors (4xxx)
|
|
30
|
+
ErrorCode[ErrorCode["VALIDATION_FAILED"] = 4001] = "VALIDATION_FAILED";
|
|
31
|
+
ErrorCode[ErrorCode["VALIDATION_SCHEMA_ERROR"] = 4002] = "VALIDATION_SCHEMA_ERROR";
|
|
32
|
+
ErrorCode[ErrorCode["VALIDATION_REQUIRED_FIELD"] = 4003] = "VALIDATION_REQUIRED_FIELD";
|
|
33
|
+
// Increment errors (5xxx)
|
|
34
|
+
ErrorCode[ErrorCode["INCREMENT_NOT_FOUND"] = 5001] = "INCREMENT_NOT_FOUND";
|
|
35
|
+
ErrorCode[ErrorCode["INCREMENT_INVALID_STATUS"] = 5002] = "INCREMENT_INVALID_STATUS";
|
|
36
|
+
ErrorCode[ErrorCode["INCREMENT_LOCKED"] = 5003] = "INCREMENT_LOCKED";
|
|
37
|
+
ErrorCode[ErrorCode["INCREMENT_METADATA_ERROR"] = 5004] = "INCREMENT_METADATA_ERROR";
|
|
38
|
+
// Plugin errors (6xxx)
|
|
39
|
+
ErrorCode[ErrorCode["PLUGIN_NOT_FOUND"] = 6001] = "PLUGIN_NOT_FOUND";
|
|
40
|
+
ErrorCode[ErrorCode["PLUGIN_LOAD_ERROR"] = 6002] = "PLUGIN_LOAD_ERROR";
|
|
41
|
+
ErrorCode[ErrorCode["PLUGIN_EXECUTION_ERROR"] = 6003] = "PLUGIN_EXECUTION_ERROR";
|
|
42
|
+
// Integration errors (7xxx)
|
|
43
|
+
ErrorCode[ErrorCode["INTEGRATION_AUTH_ERROR"] = 7001] = "INTEGRATION_AUTH_ERROR";
|
|
44
|
+
ErrorCode[ErrorCode["INTEGRATION_API_ERROR"] = 7002] = "INTEGRATION_API_ERROR";
|
|
45
|
+
ErrorCode[ErrorCode["INTEGRATION_TIMEOUT"] = 7003] = "INTEGRATION_TIMEOUT";
|
|
46
|
+
// File system errors (8xxx)
|
|
47
|
+
ErrorCode[ErrorCode["FS_READ_ERROR"] = 8001] = "FS_READ_ERROR";
|
|
48
|
+
ErrorCode[ErrorCode["FS_WRITE_ERROR"] = 8002] = "FS_WRITE_ERROR";
|
|
49
|
+
ErrorCode[ErrorCode["FS_NOT_FOUND"] = 8003] = "FS_NOT_FOUND";
|
|
50
|
+
ErrorCode[ErrorCode["FS_PERMISSION_DENIED"] = 8004] = "FS_PERMISSION_DENIED";
|
|
51
|
+
// Unknown
|
|
52
|
+
ErrorCode[ErrorCode["UNKNOWN"] = 9999] = "UNKNOWN";
|
|
53
|
+
})(ErrorCode || (ErrorCode = {}));
|
|
54
|
+
/**
|
|
55
|
+
* Base error for all SpecWeave errors
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* throw new SpecWeaveError('Something went wrong', {
|
|
60
|
+
* code: ErrorCode.UNKNOWN,
|
|
61
|
+
* context: { incrementId: '0001' }
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export class SpecWeaveError extends Error {
|
|
66
|
+
constructor(message, options = {}) {
|
|
67
|
+
super(message);
|
|
68
|
+
this.name = 'SpecWeaveError';
|
|
69
|
+
this.code = options.code ?? ErrorCode.UNKNOWN;
|
|
70
|
+
this.context = options.context;
|
|
71
|
+
this.timestamp = new Date();
|
|
72
|
+
this.originalCause = options.cause;
|
|
73
|
+
// Maintain proper stack trace for where error was thrown
|
|
74
|
+
if (Error.captureStackTrace) {
|
|
75
|
+
Error.captureStackTrace(this, this.constructor);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Format error for logging
|
|
80
|
+
*/
|
|
81
|
+
toLogString() {
|
|
82
|
+
const parts = [`[${this.name}] ${this.message}`];
|
|
83
|
+
parts.push(`Code: ${this.code}`);
|
|
84
|
+
if (this.context) {
|
|
85
|
+
parts.push(`Context: ${JSON.stringify(this.context)}`);
|
|
86
|
+
}
|
|
87
|
+
if (this.originalCause) {
|
|
88
|
+
parts.push(`Caused by: ${this.originalCause.message}`);
|
|
89
|
+
}
|
|
90
|
+
return parts.join(' | ');
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Serialize error for API responses
|
|
94
|
+
*/
|
|
95
|
+
toJSON() {
|
|
96
|
+
return {
|
|
97
|
+
name: this.name,
|
|
98
|
+
message: this.message,
|
|
99
|
+
code: this.code,
|
|
100
|
+
context: this.context,
|
|
101
|
+
timestamp: this.timestamp.toISOString(),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Configuration-related errors
|
|
107
|
+
*/
|
|
108
|
+
export class ConfigError extends SpecWeaveError {
|
|
109
|
+
constructor(message, options = {}) {
|
|
110
|
+
super(message, {
|
|
111
|
+
code: options.code ?? ErrorCode.CONFIG_INVALID,
|
|
112
|
+
context: options.context,
|
|
113
|
+
cause: options.cause,
|
|
114
|
+
});
|
|
115
|
+
this.name = 'ConfigError';
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Sync/integration-related errors
|
|
120
|
+
*/
|
|
121
|
+
export class SyncError extends SpecWeaveError {
|
|
122
|
+
constructor(message, options = {}) {
|
|
123
|
+
super(message, {
|
|
124
|
+
code: options.code ?? ErrorCode.SYNC_FAILED,
|
|
125
|
+
context: options.context,
|
|
126
|
+
cause: options.cause,
|
|
127
|
+
});
|
|
128
|
+
this.name = 'SyncError';
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Import-related errors
|
|
133
|
+
*/
|
|
134
|
+
export class ImportError extends SpecWeaveError {
|
|
135
|
+
constructor(message, options = {}) {
|
|
136
|
+
super(message, {
|
|
137
|
+
code: options.code ?? ErrorCode.IMPORT_FAILED,
|
|
138
|
+
context: options.context,
|
|
139
|
+
cause: options.cause,
|
|
140
|
+
});
|
|
141
|
+
this.name = 'ImportError';
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Validation-related errors
|
|
146
|
+
*/
|
|
147
|
+
export class ValidationError extends SpecWeaveError {
|
|
148
|
+
constructor(message, options = {}) {
|
|
149
|
+
super(message, {
|
|
150
|
+
code: options.code ?? ErrorCode.VALIDATION_FAILED,
|
|
151
|
+
context: options.context,
|
|
152
|
+
cause: options.cause,
|
|
153
|
+
});
|
|
154
|
+
this.name = 'ValidationError';
|
|
155
|
+
this.field = options.field;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Increment-related errors
|
|
160
|
+
*/
|
|
161
|
+
export class IncrementError extends SpecWeaveError {
|
|
162
|
+
constructor(message, options = {}) {
|
|
163
|
+
super(message, {
|
|
164
|
+
code: options.code ?? ErrorCode.INCREMENT_NOT_FOUND,
|
|
165
|
+
context: { ...options.context, incrementId: options.incrementId },
|
|
166
|
+
cause: options.cause,
|
|
167
|
+
});
|
|
168
|
+
this.name = 'IncrementError';
|
|
169
|
+
this.incrementId = options.incrementId;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Plugin-related errors
|
|
174
|
+
*/
|
|
175
|
+
export class PluginError extends SpecWeaveError {
|
|
176
|
+
constructor(message, options = {}) {
|
|
177
|
+
super(message, {
|
|
178
|
+
code: options.code ?? ErrorCode.PLUGIN_LOAD_ERROR,
|
|
179
|
+
context: { ...options.context, pluginName: options.pluginName },
|
|
180
|
+
cause: options.cause,
|
|
181
|
+
});
|
|
182
|
+
this.name = 'PluginError';
|
|
183
|
+
this.pluginName = options.pluginName;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Integration/API-related errors (GitHub, Jira, ADO)
|
|
188
|
+
*/
|
|
189
|
+
export class IntegrationError extends SpecWeaveError {
|
|
190
|
+
constructor(message, options = {}) {
|
|
191
|
+
super(message, {
|
|
192
|
+
code: options.code ?? ErrorCode.INTEGRATION_API_ERROR,
|
|
193
|
+
context: {
|
|
194
|
+
...options.context,
|
|
195
|
+
provider: options.provider,
|
|
196
|
+
statusCode: options.statusCode,
|
|
197
|
+
},
|
|
198
|
+
cause: options.cause,
|
|
199
|
+
});
|
|
200
|
+
this.name = 'IntegrationError';
|
|
201
|
+
this.provider = options.provider;
|
|
202
|
+
this.statusCode = options.statusCode;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* File system-related errors
|
|
207
|
+
*/
|
|
208
|
+
export class FileSystemError extends SpecWeaveError {
|
|
209
|
+
constructor(message, options = {}) {
|
|
210
|
+
super(message, {
|
|
211
|
+
code: options.code ?? ErrorCode.FS_READ_ERROR,
|
|
212
|
+
context: { ...options.context, path: options.path },
|
|
213
|
+
cause: options.cause,
|
|
214
|
+
});
|
|
215
|
+
this.name = 'FileSystemError';
|
|
216
|
+
this.path = options.path;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Type guard to check if an error is a SpecWeaveError
|
|
221
|
+
*/
|
|
222
|
+
export function isSpecWeaveError(error) {
|
|
223
|
+
return error instanceof SpecWeaveError;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Wrap an unknown error in a SpecWeaveError
|
|
227
|
+
*/
|
|
228
|
+
export function wrapError(error, message, code) {
|
|
229
|
+
if (error instanceof SpecWeaveError) {
|
|
230
|
+
return error;
|
|
231
|
+
}
|
|
232
|
+
const cause = error instanceof Error ? error : new Error(String(error));
|
|
233
|
+
return new SpecWeaveError(message ?? cause.message, {
|
|
234
|
+
code: code ?? ErrorCode.UNKNOWN,
|
|
235
|
+
cause,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/errors/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,6 +108,9 @@ export declare class SessionSyncExecutor {
|
|
|
108
108
|
private executeJob;
|
|
109
109
|
/**
|
|
110
110
|
* Execute external sync (GitHub/JIRA/ADO)
|
|
111
|
+
*
|
|
112
|
+
* Multi-project support: Each increment can have its own ADO profile
|
|
113
|
+
* stored in metadata.json -> external_sync.ado.profile
|
|
111
114
|
*/
|
|
112
115
|
private executeExternalSync;
|
|
113
116
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sync-executor.d.ts","sourceRoot":"","sources":["../../../../src/core/scheduler/session-sync-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-sync-executor.d.ts","sourceRoot":"","sources":["../../../../src/core/scheduler/session-sync-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAI9D;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,gBAAgB,EAAE,CAAC;IAEjC;;OAEG;IACH,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,OAAO,EAAE,0BAA0B;IAW/C;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAgGlD;;OAEG;IACH,OAAO,CAAC,UAAU;IAmBlB;;OAEG;YACW,oBAAoB;IAsClC;;OAEG;YACW,UAAU;IA8ExB;;;;;OAKG;YACW,mBAAmB;IA4DjC;;;;;OAKG;YACW,mBAAmB;IAcjC;;OAEG;YACW,UAAU;CAUzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC,MAAM,CAAC,CAmBjB"}
|
|
@@ -19,6 +19,7 @@ import { markJobComplete, markJobFailed, markJobRunning } from './scheduled-job.
|
|
|
19
19
|
import { SchedulePersistence } from './schedule-persistence.js';
|
|
20
20
|
import { consoleLogger } from '../../utils/logger.js';
|
|
21
21
|
import { SyncCoordinator } from '../../sync/sync-coordinator.js';
|
|
22
|
+
import { AdoClientFactory } from '../../integrations/ado/ado-client-factory.js';
|
|
22
23
|
/**
|
|
23
24
|
* SessionSyncExecutor - Runs due sync jobs on session start
|
|
24
25
|
*
|
|
@@ -240,10 +241,18 @@ export class SessionSyncExecutor {
|
|
|
240
241
|
}
|
|
241
242
|
/**
|
|
242
243
|
* Execute external sync (GitHub/JIRA/ADO)
|
|
244
|
+
*
|
|
245
|
+
* Multi-project support: Each increment can have its own ADO profile
|
|
246
|
+
* stored in metadata.json -> external_sync.ado.profile
|
|
243
247
|
*/
|
|
244
248
|
async executeExternalSync(config) {
|
|
245
249
|
// Find active increments
|
|
246
250
|
const incrementsDir = path.join(this.projectRoot, '.specweave', 'increments');
|
|
251
|
+
// Initialize ADO profile factory for multi-project resolution
|
|
252
|
+
const adoFactory = new AdoClientFactory({
|
|
253
|
+
projectRoot: this.projectRoot,
|
|
254
|
+
logger: this.logger,
|
|
255
|
+
});
|
|
247
256
|
try {
|
|
248
257
|
const entries = await fs.readdir(incrementsDir, { withFileTypes: true });
|
|
249
258
|
for (const entry of entries) {
|
|
@@ -255,11 +264,27 @@ export class SessionSyncExecutor {
|
|
|
255
264
|
try {
|
|
256
265
|
const metadata = JSON.parse(await fs.readFile(metadataPath, 'utf-8'));
|
|
257
266
|
if (metadata.status === 'active' || metadata.status === 'in_progress') {
|
|
258
|
-
//
|
|
267
|
+
// Resolve ADO profile for this specific increment (multi-project support)
|
|
268
|
+
let adoProfile;
|
|
269
|
+
try {
|
|
270
|
+
const profileResult = await adoFactory.resolveProfile(entry.name);
|
|
271
|
+
if (profileResult.success && profileResult.profile) {
|
|
272
|
+
adoProfile = profileResult.profile;
|
|
273
|
+
this.logger.debug(` 📊 Increment ${entry.name} → ADO profile: ${adoProfile.profileName} ` +
|
|
274
|
+
`(${adoProfile.organization}/${adoProfile.project}) [${adoProfile.source}]`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
// Log the error at debug level for troubleshooting
|
|
279
|
+
this.logger.debug(` ⚠️ Could not resolve ADO profile for ${entry.name}: ${error}`);
|
|
280
|
+
// No ADO profile configured - that's OK, might use GitHub/JIRA
|
|
281
|
+
}
|
|
282
|
+
// Sync this increment with resolved ADO profile
|
|
259
283
|
const coordinator = new SyncCoordinator({
|
|
260
284
|
projectRoot: this.projectRoot,
|
|
261
285
|
incrementId: entry.name,
|
|
262
286
|
logger: this.logger,
|
|
287
|
+
adoProfile, // Pass the resolved profile for multi-project sync
|
|
263
288
|
});
|
|
264
289
|
await coordinator.syncIncrementCompletion();
|
|
265
290
|
}
|
|
@@ -314,7 +339,7 @@ export class SessionSyncExecutor {
|
|
|
314
339
|
* @returns JSON result for hook consumption
|
|
315
340
|
*/
|
|
316
341
|
export async function executeSessionSync(projectRoot, options = {}) {
|
|
317
|
-
const logger = options.silent ? { log: () => { }, debug: () => { }, warn: () => { }, error: () => { } } : consoleLogger;
|
|
342
|
+
const logger = options.silent ? { log: () => { }, info: () => { }, debug: () => { }, warn: () => { }, error: () => { } } : consoleLogger;
|
|
318
343
|
const executor = new SessionSyncExecutor({
|
|
319
344
|
projectRoot,
|
|
320
345
|
logger,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sync-executor.js","sourceRoot":"","sources":["../../../../src/core/scheduler/session-sync-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAgB,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAU,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"session-sync-executor.js","sourceRoot":"","sources":["../../../../src/core/scheduler/session-sync-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,14 @@
|
|
|
12
12
|
* @module spec-metadata-manager
|
|
13
13
|
*/
|
|
14
14
|
import { SpecMetadata, SpecContent, SpecValidationResult } from '../types/spec-metadata.js';
|
|
15
|
+
import { Logger } from '../../utils/logger.js';
|
|
15
16
|
export declare class SpecMetadataManager {
|
|
16
17
|
private specsDir;
|
|
17
18
|
private projectManager;
|
|
18
|
-
|
|
19
|
+
private logger;
|
|
20
|
+
constructor(projectRoot?: string, projectId?: string, options?: {
|
|
21
|
+
logger?: Logger;
|
|
22
|
+
});
|
|
19
23
|
/**
|
|
20
24
|
* Get all spec files
|
|
21
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-metadata-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/specs/spec-metadata-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EACL,YAAY,EACZ,WAAW,EAIX,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"spec-metadata-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/specs/spec-metadata-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EACL,YAAY,EACZ,WAAW,EAIX,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAE9D,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,MAAM,CAAS;gBAEX,WAAW,GAAE,MAAsB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;IAWtG;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAStC;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoC3D;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BlF;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,EACnC,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,GACA,OAAO,CAAC,IAAI,CAAC;IAqChB;;OAEG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAClC,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,EACnC,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,OAAO,EAC1C,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAgBhB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4CjE;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgDxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAoCvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CA2D7G"}
|
|
@@ -15,8 +15,10 @@ import * as fs from '../../utils/fs-native.js';
|
|
|
15
15
|
import path from 'path';
|
|
16
16
|
import matter from 'gray-matter';
|
|
17
17
|
import { ProjectManager } from '../project/project-manager.js';
|
|
18
|
+
import { consoleLogger } from '../../utils/logger.js';
|
|
18
19
|
export class SpecMetadataManager {
|
|
19
|
-
constructor(projectRoot = process.cwd(), projectId) {
|
|
20
|
+
constructor(projectRoot = process.cwd(), projectId, options = {}) {
|
|
21
|
+
this.logger = options.logger ?? consoleLogger;
|
|
20
22
|
this.projectManager = new ProjectManager(projectRoot);
|
|
21
23
|
// Use flattened structure via ProjectManager
|
|
22
24
|
this.specsDir = this.projectManager.getSpecsPath(projectId);
|
|
@@ -62,7 +64,7 @@ export class SpecMetadataManager {
|
|
|
62
64
|
};
|
|
63
65
|
}
|
|
64
66
|
catch (error) {
|
|
65
|
-
|
|
67
|
+
this.logger.error(`Error loading spec ${specId}:`, error);
|
|
66
68
|
return null;
|
|
67
69
|
}
|
|
68
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-metadata-manager.js","sourceRoot":"","sources":["../../../../src/core/specs/spec-metadata-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,aAAa,CAAC;AAUjC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"spec-metadata-manager.js","sourceRoot":"","sources":["../../../../src/core/specs/spec-metadata-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { ExternalItem } from './external-importer.js';
|
|
8
8
|
import type { ExternalContainerContext } from '../core/types/increment-metadata.js';
|
|
9
|
+
import { Logger } from '../utils/logger.js';
|
|
10
|
+
/**
|
|
11
|
+
* Set the logger for this module
|
|
12
|
+
*/
|
|
13
|
+
export declare function setItemConverterLogger(logger: Logger): void;
|
|
9
14
|
export interface ConvertedUserStory {
|
|
10
15
|
/** User Story ID with E suffix (e.g., US-001E) */
|
|
11
16
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-converter.d.ts","sourceRoot":"","sources":["../../../src/importers/item-converter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQ3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"item-converter.d.ts","sourceRoot":"","sources":["../../../src/importers/item-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,17 @@ import { createExternalMetadata } from '../core/types/origin-metadata.js';
|
|
|
12
12
|
import { DuplicateDetector } from './duplicate-detector.js';
|
|
13
13
|
import { normalizeToProjectId } from '../utils/project-id-generator.js';
|
|
14
14
|
import { MarkdownGenerator } from './markdown-generator.js';
|
|
15
|
+
import { consoleLogger } from '../utils/logger.js';
|
|
16
|
+
/**
|
|
17
|
+
* Module logger - can be replaced for testing
|
|
18
|
+
*/
|
|
19
|
+
let moduleLogger = consoleLogger;
|
|
20
|
+
/**
|
|
21
|
+
* Set the logger for this module
|
|
22
|
+
*/
|
|
23
|
+
export function setItemConverterLogger(logger) {
|
|
24
|
+
moduleLogger = logger;
|
|
25
|
+
}
|
|
15
26
|
/**
|
|
16
27
|
* Convert external items to living docs User Stories
|
|
17
28
|
*
|
|
@@ -161,7 +172,7 @@ export class ItemConverter {
|
|
|
161
172
|
const converted = [];
|
|
162
173
|
let skippedCount = 0;
|
|
163
174
|
// DIAGNOSTIC: Log input items count
|
|
164
|
-
|
|
175
|
+
moduleLogger.debug(` 📥 ItemConverter received: ${items.length} items for project: ${this.options.projectId || 'default'}`);
|
|
165
176
|
// Ensure specs directory exists
|
|
166
177
|
fs.mkdirSync(this.options.specsDir, { recursive: true });
|
|
167
178
|
// If feature allocation is enabled, scan existing IDs first
|
|
@@ -171,9 +182,9 @@ export class ItemConverter {
|
|
|
171
182
|
// Group items by source (for multi-repo) or treat as single group
|
|
172
183
|
const itemGroups = this.groupItemsByFeature(items);
|
|
173
184
|
// DIAGNOSTIC: Log grouping results
|
|
174
|
-
|
|
185
|
+
moduleLogger.debug(` 📁 Grouped into ${itemGroups.size} groups:`);
|
|
175
186
|
for (const [groupKey, groupItems] of itemGroups) {
|
|
176
|
-
|
|
187
|
+
moduleLogger.debug(` → ${groupKey}: ${groupItems.length} items`);
|
|
177
188
|
}
|
|
178
189
|
// Process each group
|
|
179
190
|
for (const [groupKey, groupItems] of itemGroups.entries()) {
|
|
@@ -793,7 +804,7 @@ ${isOrphanGroup ? `- **Type**: Orphan (no parent Epic)` : ''}
|
|
|
793
804
|
}
|
|
794
805
|
// Remove empty folder
|
|
795
806
|
fs.removeSync(folderPath);
|
|
796
|
-
|
|
807
|
+
moduleLogger.debug(` 🗑️ Cleaned up empty orphan folder: ${featureId}`);
|
|
797
808
|
}
|
|
798
809
|
}
|
|
799
810
|
catch (error) {
|