agentic-qe 2.0.0 → 2.1.0

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 (116) hide show
  1. package/.claude/agents/qx-partner.md +17 -4
  2. package/.claude/skills/accessibility-testing/SKILL.md +144 -692
  3. package/.claude/skills/agentic-quality-engineering/SKILL.md +176 -529
  4. package/.claude/skills/api-testing-patterns/SKILL.md +180 -560
  5. package/.claude/skills/brutal-honesty-review/SKILL.md +113 -603
  6. package/.claude/skills/bug-reporting-excellence/SKILL.md +116 -517
  7. package/.claude/skills/chaos-engineering-resilience/SKILL.md +127 -72
  8. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +209 -404
  9. package/.claude/skills/code-review-quality/SKILL.md +158 -608
  10. package/.claude/skills/compatibility-testing/SKILL.md +148 -38
  11. package/.claude/skills/compliance-testing/SKILL.md +132 -63
  12. package/.claude/skills/consultancy-practices/SKILL.md +114 -446
  13. package/.claude/skills/context-driven-testing/SKILL.md +117 -381
  14. package/.claude/skills/contract-testing/SKILL.md +176 -141
  15. package/.claude/skills/database-testing/SKILL.md +137 -130
  16. package/.claude/skills/exploratory-testing-advanced/SKILL.md +160 -629
  17. package/.claude/skills/holistic-testing-pact/SKILL.md +140 -188
  18. package/.claude/skills/localization-testing/SKILL.md +145 -33
  19. package/.claude/skills/mobile-testing/SKILL.md +132 -448
  20. package/.claude/skills/mutation-testing/SKILL.md +147 -41
  21. package/.claude/skills/performance-testing/SKILL.md +200 -546
  22. package/.claude/skills/quality-metrics/SKILL.md +164 -519
  23. package/.claude/skills/refactoring-patterns/SKILL.md +132 -699
  24. package/.claude/skills/regression-testing/SKILL.md +120 -926
  25. package/.claude/skills/risk-based-testing/SKILL.md +157 -660
  26. package/.claude/skills/security-testing/SKILL.md +199 -538
  27. package/.claude/skills/sherlock-review/SKILL.md +163 -699
  28. package/.claude/skills/shift-left-testing/SKILL.md +161 -465
  29. package/.claude/skills/shift-right-testing/SKILL.md +161 -519
  30. package/.claude/skills/six-thinking-hats/SKILL.md +175 -1110
  31. package/.claude/skills/skills-manifest.json +71 -20
  32. package/.claude/skills/tdd-london-chicago/SKILL.md +131 -448
  33. package/.claude/skills/technical-writing/SKILL.md +103 -154
  34. package/.claude/skills/test-automation-strategy/SKILL.md +166 -772
  35. package/.claude/skills/test-data-management/SKILL.md +126 -910
  36. package/.claude/skills/test-design-techniques/SKILL.md +179 -89
  37. package/.claude/skills/test-environment-management/SKILL.md +136 -91
  38. package/.claude/skills/test-reporting-analytics/SKILL.md +169 -92
  39. package/.claude/skills/testability-scoring/SKILL.md +172 -538
  40. package/.claude/skills/testability-scoring/scripts/generate-html-report.js +0 -0
  41. package/.claude/skills/visual-testing-advanced/SKILL.md +155 -78
  42. package/.claude/skills/xp-practices/SKILL.md +151 -587
  43. package/CHANGELOG.md +48 -0
  44. package/README.md +23 -16
  45. package/dist/agents/QXPartnerAgent.d.ts +8 -1
  46. package/dist/agents/QXPartnerAgent.d.ts.map +1 -1
  47. package/dist/agents/QXPartnerAgent.js +1174 -112
  48. package/dist/agents/QXPartnerAgent.js.map +1 -1
  49. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  50. package/dist/agents/lifecycle/AgentLifecycleManager.js +34 -31
  51. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  52. package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -1
  53. package/dist/cli/commands/init-claude-md-template.js +14 -0
  54. package/dist/cli/commands/init-claude-md-template.js.map +1 -1
  55. package/dist/core/SwarmCoordinator.d.ts +180 -0
  56. package/dist/core/SwarmCoordinator.d.ts.map +1 -0
  57. package/dist/core/SwarmCoordinator.js +473 -0
  58. package/dist/core/SwarmCoordinator.js.map +1 -0
  59. package/dist/core/metrics/MetricsAggregator.d.ts +228 -0
  60. package/dist/core/metrics/MetricsAggregator.d.ts.map +1 -0
  61. package/dist/core/metrics/MetricsAggregator.js +482 -0
  62. package/dist/core/metrics/MetricsAggregator.js.map +1 -0
  63. package/dist/core/metrics/index.d.ts +5 -0
  64. package/dist/core/metrics/index.d.ts.map +1 -0
  65. package/dist/core/metrics/index.js +11 -0
  66. package/dist/core/metrics/index.js.map +1 -0
  67. package/dist/core/optimization/SwarmOptimizer.d.ts +5 -0
  68. package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -1
  69. package/dist/core/optimization/SwarmOptimizer.js +17 -0
  70. package/dist/core/optimization/SwarmOptimizer.js.map +1 -1
  71. package/dist/core/orchestration/AdaptiveScheduler.d.ts +190 -0
  72. package/dist/core/orchestration/AdaptiveScheduler.d.ts.map +1 -0
  73. package/dist/core/orchestration/AdaptiveScheduler.js +460 -0
  74. package/dist/core/orchestration/AdaptiveScheduler.js.map +1 -0
  75. package/dist/core/orchestration/WorkflowOrchestrator.d.ts +13 -0
  76. package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -1
  77. package/dist/core/orchestration/WorkflowOrchestrator.js +32 -0
  78. package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -1
  79. package/dist/core/recovery/CircuitBreaker.d.ts +176 -0
  80. package/dist/core/recovery/CircuitBreaker.d.ts.map +1 -0
  81. package/dist/core/recovery/CircuitBreaker.js +382 -0
  82. package/dist/core/recovery/CircuitBreaker.js.map +1 -0
  83. package/dist/core/recovery/RecoveryOrchestrator.d.ts +186 -0
  84. package/dist/core/recovery/RecoveryOrchestrator.d.ts.map +1 -0
  85. package/dist/core/recovery/RecoveryOrchestrator.js +476 -0
  86. package/dist/core/recovery/RecoveryOrchestrator.js.map +1 -0
  87. package/dist/core/recovery/RetryStrategy.d.ts +127 -0
  88. package/dist/core/recovery/RetryStrategy.d.ts.map +1 -0
  89. package/dist/core/recovery/RetryStrategy.js +314 -0
  90. package/dist/core/recovery/RetryStrategy.js.map +1 -0
  91. package/dist/core/recovery/index.d.ts +8 -0
  92. package/dist/core/recovery/index.d.ts.map +1 -0
  93. package/dist/core/recovery/index.js +27 -0
  94. package/dist/core/recovery/index.js.map +1 -0
  95. package/dist/core/skills/DependencyResolver.d.ts +99 -0
  96. package/dist/core/skills/DependencyResolver.d.ts.map +1 -0
  97. package/dist/core/skills/DependencyResolver.js +260 -0
  98. package/dist/core/skills/DependencyResolver.js.map +1 -0
  99. package/dist/core/skills/ManifestGenerator.d.ts +114 -0
  100. package/dist/core/skills/ManifestGenerator.d.ts.map +1 -0
  101. package/dist/core/skills/ManifestGenerator.js +449 -0
  102. package/dist/core/skills/ManifestGenerator.js.map +1 -0
  103. package/dist/core/skills/index.d.ts +9 -0
  104. package/dist/core/skills/index.d.ts.map +1 -0
  105. package/dist/core/skills/index.js +24 -0
  106. package/dist/core/skills/index.js.map +1 -0
  107. package/dist/mcp/server.d.ts +9 -9
  108. package/dist/mcp/server.d.ts.map +1 -1
  109. package/dist/mcp/server.js +1 -2
  110. package/dist/mcp/server.js.map +1 -1
  111. package/dist/types/qx.d.ts +39 -7
  112. package/dist/types/qx.d.ts.map +1 -1
  113. package/dist/types/qx.js.map +1 -1
  114. package/dist/visualization/api/RestEndpoints.js +1 -1
  115. package/dist/visualization/api/RestEndpoints.js.map +1 -1
  116. package/package.json +13 -55
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecoveryOrchestrator.js","sourceRoot":"","sources":["../../../src/core/recovery/RecoveryOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Retry Strategy with Multiple Backoff Algorithms
3
+ * Provides configurable retry logic for transient failures
4
+ */
5
+ /**
6
+ * Backoff strategy types
7
+ */
8
+ export type BackoffType = 'exponential' | 'linear' | 'constant' | 'fibonacci' | 'decorrelated-jitter';
9
+ /**
10
+ * Retry configuration
11
+ */
12
+ export interface RetryConfig {
13
+ /** Maximum number of retry attempts */
14
+ maxAttempts: number;
15
+ /** Initial delay in milliseconds */
16
+ initialDelay: number;
17
+ /** Maximum delay in milliseconds */
18
+ maxDelay: number;
19
+ /** Backoff strategy */
20
+ backoffType: BackoffType;
21
+ /** Multiplier for exponential backoff */
22
+ multiplier: number;
23
+ /** Add randomization to delays */
24
+ jitter: boolean;
25
+ /** Jitter factor (0-1) */
26
+ jitterFactor: number;
27
+ /** Errors that should trigger retry */
28
+ retryableErrors?: string[];
29
+ /** Errors that should NOT trigger retry */
30
+ nonRetryableErrors?: string[];
31
+ /** Custom function to determine if error is retryable */
32
+ isRetryable?: (error: Error) => boolean;
33
+ /** Callback on each retry attempt */
34
+ onRetry?: (attempt: number, error: Error, delay: number) => void;
35
+ }
36
+ /**
37
+ * Retry result with metadata
38
+ */
39
+ export interface RetryResult<T> {
40
+ success: boolean;
41
+ result?: T;
42
+ error?: Error;
43
+ attempts: number;
44
+ totalDelay: number;
45
+ retryHistory: {
46
+ attempt: number;
47
+ delay: number;
48
+ error: string;
49
+ }[];
50
+ }
51
+ /**
52
+ * Retry context for tracking state
53
+ */
54
+ export interface RetryContext {
55
+ attempt: number;
56
+ totalAttempts: number;
57
+ lastDelay: number;
58
+ totalDelay: number;
59
+ startTime: number;
60
+ errors: Error[];
61
+ }
62
+ /**
63
+ * Retry Strategy Implementation
64
+ */
65
+ export declare class RetryStrategy {
66
+ private config;
67
+ private fibonacciCache;
68
+ constructor(config?: Partial<RetryConfig>);
69
+ /**
70
+ * Execute operation with retry logic
71
+ */
72
+ execute<T>(operation: () => Promise<T>): Promise<RetryResult<T>>;
73
+ /**
74
+ * Determine if error is retryable
75
+ */
76
+ shouldRetry(error: Error, context: RetryContext): boolean;
77
+ /**
78
+ * Calculate delay for next retry attempt
79
+ */
80
+ calculateDelay(context: RetryContext): number;
81
+ /**
82
+ * Apply jitter to delay
83
+ */
84
+ private applyJitter;
85
+ /**
86
+ * Get fibonacci number (cached for performance)
87
+ */
88
+ private getFibonacci;
89
+ /**
90
+ * Random number between min and max
91
+ */
92
+ private randomBetween;
93
+ /**
94
+ * Sleep for specified milliseconds
95
+ */
96
+ private sleep;
97
+ /**
98
+ * Get current configuration
99
+ */
100
+ getConfig(): RetryConfig;
101
+ }
102
+ /**
103
+ * Retry decorator for async functions
104
+ */
105
+ export declare function withRetry<T>(operation: () => Promise<T>, config?: Partial<RetryConfig>): Promise<T>;
106
+ /**
107
+ * Create a retryable wrapper for a function
108
+ */
109
+ export declare function createRetryable<TArgs extends any[], TResult>(fn: (...args: TArgs) => Promise<TResult>, config?: Partial<RetryConfig>): (...args: TArgs) => Promise<RetryResult<TResult>>;
110
+ /**
111
+ * Predefined retry strategies for common use cases
112
+ */
113
+ export declare const RetryStrategies: {
114
+ /** Fast retry for quick transient failures */
115
+ fast: RetryStrategy;
116
+ /** Standard retry for most operations */
117
+ standard: RetryStrategy;
118
+ /** Aggressive retry for critical operations */
119
+ aggressive: RetryStrategy;
120
+ /** Gentle retry for rate-limited APIs */
121
+ rateLimited: RetryStrategy;
122
+ /** Database retry for connection issues */
123
+ database: RetryStrategy;
124
+ /** Network retry for HTTP calls */
125
+ network: RetryStrategy;
126
+ };
127
+ //# sourceMappingURL=RetryStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetryStrategy.d.ts","sourceRoot":"","sources":["../../../src/core/recovery/RetryStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,314 @@
1
+ "use strict";
2
+ /**
3
+ * Retry Strategy with Multiple Backoff Algorithms
4
+ * Provides configurable retry logic for transient failures
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.RetryStrategies = exports.RetryStrategy = void 0;
8
+ exports.withRetry = withRetry;
9
+ exports.createRetryable = createRetryable;
10
+ /**
11
+ * Default retryable error patterns (transient failures)
12
+ */
13
+ const DEFAULT_RETRYABLE_PATTERNS = [
14
+ 'ECONNRESET',
15
+ 'ECONNREFUSED',
16
+ 'ETIMEDOUT',
17
+ 'ENOTFOUND',
18
+ 'EAI_AGAIN',
19
+ 'ENETUNREACH',
20
+ 'EHOSTUNREACH',
21
+ 'timeout',
22
+ 'rate limit',
23
+ 'too many requests',
24
+ '429',
25
+ '502',
26
+ '503',
27
+ '504',
28
+ ];
29
+ /**
30
+ * Default non-retryable error patterns (permanent failures)
31
+ */
32
+ const DEFAULT_NON_RETRYABLE_PATTERNS = [
33
+ '400',
34
+ '401',
35
+ '403',
36
+ '404',
37
+ '405',
38
+ '422',
39
+ 'validation',
40
+ 'invalid',
41
+ 'unauthorized',
42
+ 'forbidden',
43
+ 'not found',
44
+ ];
45
+ /**
46
+ * Retry Strategy Implementation
47
+ */
48
+ class RetryStrategy {
49
+ constructor(config = {}) {
50
+ this.fibonacciCache = [1, 1];
51
+ this.config = {
52
+ maxAttempts: 3,
53
+ initialDelay: 1000,
54
+ maxDelay: 30000,
55
+ backoffType: 'exponential',
56
+ multiplier: 2,
57
+ jitter: true,
58
+ jitterFactor: 0.25,
59
+ retryableErrors: DEFAULT_RETRYABLE_PATTERNS,
60
+ nonRetryableErrors: DEFAULT_NON_RETRYABLE_PATTERNS,
61
+ ...config,
62
+ };
63
+ }
64
+ /**
65
+ * Execute operation with retry logic
66
+ */
67
+ async execute(operation) {
68
+ const context = {
69
+ attempt: 0,
70
+ totalAttempts: this.config.maxAttempts,
71
+ lastDelay: 0,
72
+ totalDelay: 0,
73
+ startTime: Date.now(),
74
+ errors: [],
75
+ };
76
+ const retryHistory = [];
77
+ while (context.attempt < this.config.maxAttempts) {
78
+ context.attempt++;
79
+ try {
80
+ const result = await operation();
81
+ return {
82
+ success: true,
83
+ result,
84
+ attempts: context.attempt,
85
+ totalDelay: context.totalDelay,
86
+ retryHistory,
87
+ };
88
+ }
89
+ catch (error) {
90
+ const err = error instanceof Error ? error : new Error(String(error));
91
+ context.errors.push(err);
92
+ // Check if we should retry
93
+ if (!this.shouldRetry(err, context)) {
94
+ return {
95
+ success: false,
96
+ error: err,
97
+ attempts: context.attempt,
98
+ totalDelay: context.totalDelay,
99
+ retryHistory,
100
+ };
101
+ }
102
+ // Check if we've exhausted attempts
103
+ if (context.attempt >= this.config.maxAttempts) {
104
+ return {
105
+ success: false,
106
+ error: err,
107
+ attempts: context.attempt,
108
+ totalDelay: context.totalDelay,
109
+ retryHistory,
110
+ };
111
+ }
112
+ // Calculate delay
113
+ const delay = this.calculateDelay(context);
114
+ context.lastDelay = delay;
115
+ context.totalDelay += delay;
116
+ retryHistory.push({
117
+ attempt: context.attempt,
118
+ delay,
119
+ error: err.message,
120
+ });
121
+ // Notify callback
122
+ if (this.config.onRetry) {
123
+ this.config.onRetry(context.attempt, err, delay);
124
+ }
125
+ // Wait before retry
126
+ await this.sleep(delay);
127
+ }
128
+ }
129
+ // Should not reach here, but just in case
130
+ return {
131
+ success: false,
132
+ error: context.errors[context.errors.length - 1],
133
+ attempts: context.attempt,
134
+ totalDelay: context.totalDelay,
135
+ retryHistory,
136
+ };
137
+ }
138
+ /**
139
+ * Determine if error is retryable
140
+ */
141
+ shouldRetry(error, context) {
142
+ // Check custom function first
143
+ if (this.config.isRetryable) {
144
+ return this.config.isRetryable(error);
145
+ }
146
+ const errorStr = error.message.toLowerCase();
147
+ // Check non-retryable patterns (takes precedence)
148
+ if (this.config.nonRetryableErrors) {
149
+ for (const pattern of this.config.nonRetryableErrors) {
150
+ if (errorStr.includes(pattern.toLowerCase())) {
151
+ return false;
152
+ }
153
+ }
154
+ }
155
+ // Check retryable patterns
156
+ if (this.config.retryableErrors) {
157
+ for (const pattern of this.config.retryableErrors) {
158
+ if (errorStr.includes(pattern.toLowerCase())) {
159
+ return true;
160
+ }
161
+ }
162
+ }
163
+ // Default to retrying for unknown errors (safer for transient issues)
164
+ return true;
165
+ }
166
+ /**
167
+ * Calculate delay for next retry attempt
168
+ */
169
+ calculateDelay(context) {
170
+ let delay;
171
+ switch (this.config.backoffType) {
172
+ case 'constant':
173
+ delay = this.config.initialDelay;
174
+ break;
175
+ case 'linear':
176
+ delay = this.config.initialDelay * context.attempt;
177
+ break;
178
+ case 'exponential':
179
+ delay = this.config.initialDelay * Math.pow(this.config.multiplier, context.attempt - 1);
180
+ break;
181
+ case 'fibonacci':
182
+ delay = this.config.initialDelay * this.getFibonacci(context.attempt);
183
+ break;
184
+ case 'decorrelated-jitter':
185
+ // AWS-style decorrelated jitter
186
+ const prevDelay = context.lastDelay || this.config.initialDelay;
187
+ delay = Math.min(this.config.maxDelay, this.randomBetween(this.config.initialDelay, prevDelay * 3));
188
+ break;
189
+ default:
190
+ delay = this.config.initialDelay;
191
+ }
192
+ // Apply max delay cap
193
+ delay = Math.min(delay, this.config.maxDelay);
194
+ // Apply jitter if enabled (except for decorrelated-jitter which has built-in randomization)
195
+ if (this.config.jitter && this.config.backoffType !== 'decorrelated-jitter') {
196
+ delay = this.applyJitter(delay);
197
+ }
198
+ return Math.round(delay);
199
+ }
200
+ /**
201
+ * Apply jitter to delay
202
+ */
203
+ applyJitter(delay) {
204
+ const jitterRange = delay * this.config.jitterFactor;
205
+ const jitter = this.randomBetween(-jitterRange, jitterRange);
206
+ return Math.max(0, delay + jitter);
207
+ }
208
+ /**
209
+ * Get fibonacci number (cached for performance)
210
+ */
211
+ getFibonacci(n) {
212
+ while (this.fibonacciCache.length <= n) {
213
+ const len = this.fibonacciCache.length;
214
+ this.fibonacciCache.push(this.fibonacciCache[len - 1] + this.fibonacciCache[len - 2]);
215
+ }
216
+ return this.fibonacciCache[n - 1];
217
+ }
218
+ /**
219
+ * Random number between min and max
220
+ */
221
+ randomBetween(min, max) {
222
+ return min + Math.random() * (max - min);
223
+ }
224
+ /**
225
+ * Sleep for specified milliseconds
226
+ */
227
+ sleep(ms) {
228
+ return new Promise(resolve => setTimeout(resolve, ms));
229
+ }
230
+ /**
231
+ * Get current configuration
232
+ */
233
+ getConfig() {
234
+ return { ...this.config };
235
+ }
236
+ }
237
+ exports.RetryStrategy = RetryStrategy;
238
+ /**
239
+ * Retry decorator for async functions
240
+ */
241
+ function withRetry(operation, config) {
242
+ const strategy = new RetryStrategy(config);
243
+ return strategy.execute(operation).then(result => {
244
+ if (result.success) {
245
+ return result.result;
246
+ }
247
+ throw result.error;
248
+ });
249
+ }
250
+ /**
251
+ * Create a retryable wrapper for a function
252
+ */
253
+ function createRetryable(fn, config) {
254
+ const strategy = new RetryStrategy(config);
255
+ return (...args) => strategy.execute(() => fn(...args));
256
+ }
257
+ /**
258
+ * Predefined retry strategies for common use cases
259
+ */
260
+ exports.RetryStrategies = {
261
+ /** Fast retry for quick transient failures */
262
+ fast: new RetryStrategy({
263
+ maxAttempts: 3,
264
+ initialDelay: 100,
265
+ maxDelay: 1000,
266
+ backoffType: 'exponential',
267
+ multiplier: 2,
268
+ }),
269
+ /** Standard retry for most operations */
270
+ standard: new RetryStrategy({
271
+ maxAttempts: 5,
272
+ initialDelay: 1000,
273
+ maxDelay: 30000,
274
+ backoffType: 'exponential',
275
+ multiplier: 2,
276
+ jitter: true,
277
+ }),
278
+ /** Aggressive retry for critical operations */
279
+ aggressive: new RetryStrategy({
280
+ maxAttempts: 10,
281
+ initialDelay: 500,
282
+ maxDelay: 60000,
283
+ backoffType: 'decorrelated-jitter',
284
+ jitter: true,
285
+ }),
286
+ /** Gentle retry for rate-limited APIs */
287
+ rateLimited: new RetryStrategy({
288
+ maxAttempts: 5,
289
+ initialDelay: 5000,
290
+ maxDelay: 120000,
291
+ backoffType: 'fibonacci',
292
+ jitter: true,
293
+ }),
294
+ /** Database retry for connection issues */
295
+ database: new RetryStrategy({
296
+ maxAttempts: 3,
297
+ initialDelay: 500,
298
+ maxDelay: 5000,
299
+ backoffType: 'exponential',
300
+ multiplier: 1.5,
301
+ jitter: true,
302
+ retryableErrors: ['SQLITE_BUSY', 'SQLITE_LOCKED', 'connection', 'timeout'],
303
+ }),
304
+ /** Network retry for HTTP calls */
305
+ network: new RetryStrategy({
306
+ maxAttempts: 4,
307
+ initialDelay: 1000,
308
+ maxDelay: 15000,
309
+ backoffType: 'exponential',
310
+ multiplier: 2,
311
+ jitter: true,
312
+ }),
313
+ };
314
+ //# sourceMappingURL=RetryStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetryStrategy.js","sourceRoot":"","sources":["../../../src/core/recovery/RetryStrategy.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAuUH,8BAWC;AAKD,0CAMC;AAlSD;;GAEG;AACH,MAAM,0BAA0B,GAAG;IACjC,YAAY;IACZ,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,aAAa;IACb,cAAc;IACd,SAAS;IACT,YAAY;IACZ,mBAAmB;IACnB,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAEF;;GAEG;AACH,MAAM,8BAA8B,GAAG;IACrC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,YAAY;IACZ,SAAS;IACT,cAAc;IACd,WAAW;IACX,WAAW;CACZ,CAAC;AAEF;;GAEG;AACH,MAAa,aAAa;IAIxB,YAAY,SAA+B,EAAE;QAFrC,mBAAc,GAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAGxC,IAAI,CAAC,MAAM,GAAG;YACZ,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,aAAa;YAC1B,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,0BAA0B;YAC3C,kBAAkB,EAAE,8BAA8B;YAClD,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAI,SAA2B;QAC1C,MAAM,OAAO,GAAiB;YAC5B,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACtC,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,EAAE;SACX,CAAC;QAEF,MAAM,YAAY,GAAwD,EAAE,CAAC;QAE7E,OAAO,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACjD,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM;oBACN,QAAQ,EAAE,OAAO,CAAC,OAAO;oBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,YAAY;iBACb,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEzB,2BAA2B;gBAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;oBACpC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,GAAG;wBACV,QAAQ,EAAE,OAAO,CAAC,OAAO;wBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,YAAY;qBACb,CAAC;gBACJ,CAAC;gBAED,oCAAoC;gBACpC,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC/C,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,GAAG;wBACV,QAAQ,EAAE,OAAO,CAAC,OAAO;wBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,YAAY;qBACb,CAAC;gBACJ,CAAC;gBAED,kBAAkB;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC3C,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;gBAE5B,YAAY,CAAC,IAAI,CAAC;oBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK;oBACL,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB,CAAC,CAAC;gBAEH,kBAAkB;gBAClB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnD,CAAC;gBAED,oBAAoB;gBACpB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAChD,QAAQ,EAAE,OAAO,CAAC,OAAO;YACzB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY;SACb,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAY,EAAE,OAAqB;QAC7C,8BAA8B;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAE7C,kDAAkD;QAClD,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACrD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC7C,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC7C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,OAAqB;QAClC,IAAI,KAAa,CAAC;QAElB,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAChC,KAAK,UAAU;gBACb,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBACjC,MAAM;YAER,KAAK,QAAQ;gBACX,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;gBACnD,MAAM;YAER,KAAK,aAAa;gBAChB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACzF,MAAM;YAER,KAAK,WAAW;gBACd,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtE,MAAM;YAER,KAAK,qBAAqB;gBACxB,gCAAgC;gBAChC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAChE,KAAK,GAAG,IAAI,CAAC,GAAG,CACd,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,GAAG,CAAC,CAAC,CAC5D,CAAC;gBACF,MAAM;YAER;gBACE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QACrC,CAAC;QAED,sBAAsB;QACtB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE9C,4FAA4F;QAC5F,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,qBAAqB,EAAE,CAAC;YAC5E,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,KAAa;QAC/B,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,CAAS;QAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,GAAW,EAAE,GAAW;QAC5C,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AA/ND,sCA+NC;AAED;;GAEG;AACH,SAAgB,SAAS,CACvB,SAA2B,EAC3B,MAA6B;IAE7B,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAC/C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,MAAO,CAAC;QACxB,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,EAAwC,EACxC,MAA6B;IAE7B,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACU,QAAA,eAAe,GAAG;IAC7B,8CAA8C;IAC9C,IAAI,EAAE,IAAI,aAAa,CAAC;QACtB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,GAAG;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,CAAC;KACd,CAAC;IAEF,yCAAyC;IACzC,QAAQ,EAAE,IAAI,aAAa,CAAC;QAC1B,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,IAAI;KACb,CAAC;IAEF,+CAA+C;IAC/C,UAAU,EAAE,IAAI,aAAa,CAAC;QAC5B,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,GAAG;QACjB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,qBAAqB;QAClC,MAAM,EAAE,IAAI;KACb,CAAC;IAEF,yCAAyC;IACzC,WAAW,EAAE,IAAI,aAAa,CAAC;QAC7B,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,WAAW;QACxB,MAAM,EAAE,IAAI;KACb,CAAC;IAEF,2CAA2C;IAC3C,QAAQ,EAAE,IAAI,aAAa,CAAC;QAC1B,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,GAAG;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,GAAG;QACf,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,CAAC;KAC3E,CAAC;IAEF,mCAAmC;IACnC,OAAO,EAAE,IAAI,aAAa,CAAC;QACzB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,IAAI;KACb,CAAC;CACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Recovery Module - Error Recovery and Resilience
3
+ * Provides circuit breakers, retry strategies, and coordinated recovery
4
+ */
5
+ export { CircuitBreaker, CircuitBreakerManager, CircuitState, CircuitBreakerConfig, CircuitBreakerMetrics, CircuitBreakerOpenError, getCircuitBreakerManager, resetCircuitBreakerManager, } from './CircuitBreaker.js';
6
+ export { RetryStrategy, RetryConfig, RetryResult, RetryContext, BackoffType, withRetry, createRetryable, RetryStrategies, } from './RetryStrategy.js';
7
+ export { RecoveryOrchestrator, RecoveryStrategyType, RecoverableComponent, HealthStatus, RecoveryActionResult, ComponentHealth, RecoveryPolicy, RecoveryEvent, getRecoveryOrchestrator, resetRecoveryOrchestrator, } from './RecoveryOrchestrator.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/recovery/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ /**
3
+ * Recovery Module - Error Recovery and Resilience
4
+ * Provides circuit breakers, retry strategies, and coordinated recovery
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.resetRecoveryOrchestrator = exports.getRecoveryOrchestrator = exports.RecoveryOrchestrator = exports.RetryStrategies = exports.createRetryable = exports.withRetry = exports.RetryStrategy = exports.resetCircuitBreakerManager = exports.getCircuitBreakerManager = exports.CircuitBreakerOpenError = exports.CircuitState = exports.CircuitBreakerManager = exports.CircuitBreaker = void 0;
8
+ // Circuit Breaker
9
+ var CircuitBreaker_js_1 = require("./CircuitBreaker.js");
10
+ Object.defineProperty(exports, "CircuitBreaker", { enumerable: true, get: function () { return CircuitBreaker_js_1.CircuitBreaker; } });
11
+ Object.defineProperty(exports, "CircuitBreakerManager", { enumerable: true, get: function () { return CircuitBreaker_js_1.CircuitBreakerManager; } });
12
+ Object.defineProperty(exports, "CircuitState", { enumerable: true, get: function () { return CircuitBreaker_js_1.CircuitState; } });
13
+ Object.defineProperty(exports, "CircuitBreakerOpenError", { enumerable: true, get: function () { return CircuitBreaker_js_1.CircuitBreakerOpenError; } });
14
+ Object.defineProperty(exports, "getCircuitBreakerManager", { enumerable: true, get: function () { return CircuitBreaker_js_1.getCircuitBreakerManager; } });
15
+ Object.defineProperty(exports, "resetCircuitBreakerManager", { enumerable: true, get: function () { return CircuitBreaker_js_1.resetCircuitBreakerManager; } });
16
+ // Retry Strategy
17
+ var RetryStrategy_js_1 = require("./RetryStrategy.js");
18
+ Object.defineProperty(exports, "RetryStrategy", { enumerable: true, get: function () { return RetryStrategy_js_1.RetryStrategy; } });
19
+ Object.defineProperty(exports, "withRetry", { enumerable: true, get: function () { return RetryStrategy_js_1.withRetry; } });
20
+ Object.defineProperty(exports, "createRetryable", { enumerable: true, get: function () { return RetryStrategy_js_1.createRetryable; } });
21
+ Object.defineProperty(exports, "RetryStrategies", { enumerable: true, get: function () { return RetryStrategy_js_1.RetryStrategies; } });
22
+ // Recovery Orchestrator
23
+ var RecoveryOrchestrator_js_1 = require("./RecoveryOrchestrator.js");
24
+ Object.defineProperty(exports, "RecoveryOrchestrator", { enumerable: true, get: function () { return RecoveryOrchestrator_js_1.RecoveryOrchestrator; } });
25
+ Object.defineProperty(exports, "getRecoveryOrchestrator", { enumerable: true, get: function () { return RecoveryOrchestrator_js_1.getRecoveryOrchestrator; } });
26
+ Object.defineProperty(exports, "resetRecoveryOrchestrator", { enumerable: true, get: function () { return RecoveryOrchestrator_js_1.resetRecoveryOrchestrator; } });
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/recovery/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kBAAkB;AAClB,yDAS6B;AAR3B,mHAAA,cAAc,OAAA;AACd,0HAAA,qBAAqB,OAAA;AACrB,iHAAA,YAAY,OAAA;AAGZ,4HAAA,uBAAuB,OAAA;AACvB,6HAAA,wBAAwB,OAAA;AACxB,+HAAA,0BAA0B,OAAA;AAG5B,iBAAiB;AACjB,uDAS4B;AAR1B,iHAAA,aAAa,OAAA;AAKb,6GAAA,SAAS,OAAA;AACT,mHAAA,eAAe,OAAA;AACf,mHAAA,eAAe,OAAA;AAGjB,wBAAwB;AACxB,qEAWmC;AAVjC,+HAAA,oBAAoB,OAAA;AAQpB,kIAAA,uBAAuB,OAAA;AACvB,oIAAA,yBAAyB,OAAA"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Dependency Resolver for Skill Loading
3
+ * Handles skill dependency graphs with cycle detection and optimal load ordering
4
+ */
5
+ import { SkillManifest } from './types.js';
6
+ /**
7
+ * Dependency resolution result
8
+ */
9
+ export interface DependencyResolution {
10
+ /** Skills in optimal load order (dependencies first) */
11
+ loadOrder: string[];
12
+ /** Dependency tree for visualization */
13
+ tree: DependencyNode;
14
+ /** Any circular dependencies detected */
15
+ cycles: string[][];
16
+ /** Skills that couldn't be resolved (missing dependencies) */
17
+ unresolved: {
18
+ skillId: string;
19
+ missing: string[];
20
+ }[];
21
+ }
22
+ /**
23
+ * Dependency tree node
24
+ */
25
+ export interface DependencyNode {
26
+ id: string;
27
+ depth: number;
28
+ dependencies: DependencyNode[];
29
+ }
30
+ /**
31
+ * Resolution options
32
+ */
33
+ export interface ResolverOptions {
34
+ /** Maximum dependency depth to prevent infinite recursion */
35
+ maxDepth: number;
36
+ /** Include optional dependencies */
37
+ includeOptional: boolean;
38
+ /** Strategy for handling cycles */
39
+ cycleStrategy: 'error' | 'warn' | 'break';
40
+ }
41
+ /**
42
+ * Skill Dependency Resolver
43
+ * Resolves skill dependencies with cycle detection and optimal ordering
44
+ */
45
+ export declare class DependencyResolver {
46
+ private manifest;
47
+ private skillMap;
48
+ private options;
49
+ constructor(manifest: SkillManifest, options?: Partial<ResolverOptions>);
50
+ /**
51
+ * Resolve dependencies for a single skill
52
+ */
53
+ resolve(skillId: string): DependencyResolution;
54
+ /**
55
+ * Resolve dependencies for multiple skills
56
+ */
57
+ resolveMultiple(skillIds: string[]): DependencyResolution;
58
+ /**
59
+ * Get all skills that depend on a given skill (reverse dependencies)
60
+ */
61
+ getDependents(skillId: string): string[];
62
+ /**
63
+ * Get direct dependencies of a skill
64
+ */
65
+ getDirectDependencies(skillId: string): string[];
66
+ /**
67
+ * Get all transitive dependencies (full dependency closure)
68
+ */
69
+ getTransitiveDependencies(skillId: string): string[];
70
+ /**
71
+ * Check if adding a dependency would create a cycle
72
+ */
73
+ wouldCreateCycle(fromSkillId: string, toSkillId: string): boolean;
74
+ /**
75
+ * Build dependency tree recursively
76
+ */
77
+ private buildDependencyTree;
78
+ /**
79
+ * Topological sort for optimal load order (dependencies first)
80
+ */
81
+ private topologicalSort;
82
+ /**
83
+ * Deduplicate cycle arrays (same cycle may be detected from different starting points)
84
+ */
85
+ private deduplicateCycles;
86
+ /**
87
+ * Normalize cycle to start from smallest element for deduplication
88
+ */
89
+ private normalizeCycle;
90
+ }
91
+ /**
92
+ * Create a dependency resolver from manifest
93
+ */
94
+ export declare function createDependencyResolver(manifest: SkillManifest, options?: Partial<ResolverOptions>): DependencyResolver;
95
+ /**
96
+ * Visualize dependency tree as ASCII art
97
+ */
98
+ export declare function visualizeDependencyTree(node: DependencyNode, prefix?: string): string;
99
+ //# sourceMappingURL=DependencyResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyResolver.d.ts","sourceRoot":"","sources":["../../../src/core/skills/DependencyResolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,wCAAwC;IACxC,IAAI,EAAE,cAAc,CAAC;IACrB,yCAAyC;IACzC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,8DAA8D;IAC9D,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,cAAc,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAC;IACzB,mCAAmC;IACnC,aAAa,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;CAC3C;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAkB;gBAErB,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;IAW3E;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;IAI9C;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,oBAAoB;IAmCzD;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAYxC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAKhD;;OAEG;IACH,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAKpD;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAMjE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8E3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAiCvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,cAAc;CAmBvB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACjC,kBAAkB,CAEpB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,GAAE,MAAW,GAAG,MAAM,CAuBzF"}