cmp-standards 2.8.1 → 3.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.
- package/dist/analytics/CrossProjectAnalytics.d.ts +128 -0
- package/dist/analytics/CrossProjectAnalytics.d.ts.map +1 -0
- package/dist/analytics/CrossProjectAnalytics.js +434 -0
- package/dist/analytics/CrossProjectAnalytics.js.map +1 -0
- package/dist/analytics/index.d.ts +1 -0
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +2 -0
- package/dist/analytics/index.js.map +1 -1
- package/dist/cache/EmbeddingCache.d.ts +6 -4
- package/dist/cache/EmbeddingCache.d.ts.map +1 -1
- package/dist/cache/EmbeddingCache.js +28 -17
- package/dist/cache/EmbeddingCache.js.map +1 -1
- package/dist/cli/index.js +658 -141
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/ui.d.ts +134 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/ui.js +311 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/dashboard/tokens.d.ts +228 -0
- package/dist/dashboard/tokens.d.ts.map +1 -0
- package/dist/dashboard/tokens.js +450 -0
- package/dist/dashboard/tokens.js.map +1 -0
- package/dist/dashboard/ui.d.ts +3 -0
- package/dist/dashboard/ui.d.ts.map +1 -1
- package/dist/dashboard/ui.js +95 -61
- package/dist/dashboard/ui.js.map +1 -1
- package/dist/db/cloud.d.ts +11 -0
- package/dist/db/cloud.d.ts.map +1 -1
- package/dist/db/cloud.js +49 -1
- package/dist/db/cloud.js.map +1 -1
- package/dist/db/migrations.d.ts +1 -0
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +109 -0
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/turso-client.d.ts.map +1 -1
- package/dist/db/turso-client.js +3 -0
- package/dist/db/turso-client.js.map +1 -1
- package/dist/events/EventBus.d.ts +21 -0
- package/dist/events/EventBus.d.ts.map +1 -1
- package/dist/events/EventBus.js +81 -30
- package/dist/events/EventBus.js.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +1 -1
- package/dist/events/index.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/startup-verify.d.ts +31 -0
- package/dist/hooks/startup-verify.d.ts.map +1 -0
- package/dist/hooks/startup-verify.js +360 -0
- package/dist/hooks/startup-verify.js.map +1 -0
- package/dist/plugins/PluginManager.d.ts +160 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -0
- package/dist/plugins/PluginManager.js +417 -0
- package/dist/plugins/PluginManager.js.map +1 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +7 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/schema/expert-types.d.ts +2 -2
- package/dist/services/AuditLog.d.ts +205 -0
- package/dist/services/AuditLog.d.ts.map +1 -0
- package/dist/services/AuditLog.js +352 -0
- package/dist/services/AuditLog.js.map +1 -0
- package/dist/services/FeedbackCollector.d.ts +8 -0
- package/dist/services/FeedbackCollector.d.ts.map +1 -1
- package/dist/services/FeedbackCollector.js +19 -2
- package/dist/services/FeedbackCollector.js.map +1 -1
- package/dist/services/GitIntegration.d.ts +140 -0
- package/dist/services/GitIntegration.d.ts.map +1 -0
- package/dist/services/GitIntegration.js +423 -0
- package/dist/services/GitIntegration.js.map +1 -0
- package/dist/services/HookVerifier.d.ts +95 -0
- package/dist/services/HookVerifier.d.ts.map +1 -0
- package/dist/services/HookVerifier.js +493 -0
- package/dist/services/HookVerifier.js.map +1 -0
- package/dist/services/MemoryRelationshipService.d.ts +187 -0
- package/dist/services/MemoryRelationshipService.d.ts.map +1 -0
- package/dist/services/MemoryRelationshipService.js +375 -0
- package/dist/services/MemoryRelationshipService.js.map +1 -0
- package/dist/services/MemoryVersioning.d.ts +108 -0
- package/dist/services/MemoryVersioning.d.ts.map +1 -0
- package/dist/services/MemoryVersioning.js +281 -0
- package/dist/services/MemoryVersioning.js.map +1 -0
- package/dist/services/context-injector.d.ts +8 -0
- package/dist/services/context-injector.d.ts.map +1 -1
- package/dist/services/context-injector.js +19 -2
- package/dist/services/context-injector.js.map +1 -1
- package/dist/services/index.d.ts +5 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +7 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/memory-router.d.ts +8 -0
- package/dist/services/memory-router.d.ts.map +1 -1
- package/dist/services/memory-router.js +19 -2
- package/dist/services/memory-router.js.map +1 -1
- package/dist/services/pattern-tracker.d.ts +13 -0
- package/dist/services/pattern-tracker.d.ts.map +1 -1
- package/dist/services/pattern-tracker.js +33 -3
- package/dist/services/pattern-tracker.js.map +1 -1
- package/dist/services/semantic-search.d.ts +12 -0
- package/dist/services/semantic-search.d.ts.map +1 -1
- package/dist/services/semantic-search.js +93 -17
- package/dist/services/semantic-search.js.map +1 -1
- package/dist/testing/index.d.ts +148 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +370 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/resilience.d.ts +256 -0
- package/dist/utils/resilience.d.ts.map +1 -0
- package/dist/utils/resilience.js +499 -0
- package/dist/utils/resilience.js.map +1 -0
- package/package.json +12 -1
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resilience Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides fault-tolerant patterns for network operations:
|
|
5
|
+
* - Retry with exponential backoff
|
|
6
|
+
* - Timeout protection
|
|
7
|
+
* - Circuit breaker pattern
|
|
8
|
+
* - Rate limiting helpers
|
|
9
|
+
*
|
|
10
|
+
* @version 2.9.1
|
|
11
|
+
*/
|
|
12
|
+
export interface RetryOptions {
|
|
13
|
+
/** Maximum number of retry attempts (default: 3) */
|
|
14
|
+
maxRetries: number;
|
|
15
|
+
/** Base delay in milliseconds (default: 1000) */
|
|
16
|
+
baseDelay: number;
|
|
17
|
+
/** Maximum delay cap in milliseconds (default: 30000) */
|
|
18
|
+
maxDelay: number;
|
|
19
|
+
/** Multiplier for exponential backoff (default: 2) */
|
|
20
|
+
backoffMultiplier: number;
|
|
21
|
+
/** Jitter factor 0-1 to randomize delays (default: 0.1) */
|
|
22
|
+
jitter: number;
|
|
23
|
+
/** Function to determine if error is retryable (default: all errors) */
|
|
24
|
+
isRetryable?: (error: unknown) => boolean;
|
|
25
|
+
/** Callback on each retry attempt */
|
|
26
|
+
onRetry?: (attempt: number, error: unknown, nextDelay: number) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface TimeoutOptions<T> {
|
|
29
|
+
/** Timeout in milliseconds */
|
|
30
|
+
timeoutMs: number;
|
|
31
|
+
/** Fallback value if timeout occurs */
|
|
32
|
+
fallback?: T;
|
|
33
|
+
/** Error message for timeout */
|
|
34
|
+
message?: string;
|
|
35
|
+
/** Callback when timeout occurs */
|
|
36
|
+
onTimeout?: () => void;
|
|
37
|
+
}
|
|
38
|
+
export interface CircuitBreakerOptions {
|
|
39
|
+
/** Number of failures before opening circuit (default: 5) */
|
|
40
|
+
failureThreshold: number;
|
|
41
|
+
/** Time in ms to wait before half-open state (default: 30000) */
|
|
42
|
+
resetTimeout: number;
|
|
43
|
+
/** Number of successes needed in half-open to close (default: 2) */
|
|
44
|
+
successThreshold: number;
|
|
45
|
+
/** Callback when circuit state changes */
|
|
46
|
+
onStateChange?: (state: CircuitState) => void;
|
|
47
|
+
}
|
|
48
|
+
export type CircuitState = 'closed' | 'open' | 'half-open';
|
|
49
|
+
export declare class RetryableError extends Error {
|
|
50
|
+
readonly retryAfter?: number | undefined;
|
|
51
|
+
constructor(message: string, retryAfter?: number | undefined);
|
|
52
|
+
}
|
|
53
|
+
export declare class TimeoutError extends Error {
|
|
54
|
+
constructor(message?: string);
|
|
55
|
+
}
|
|
56
|
+
export declare class CircuitOpenError extends Error {
|
|
57
|
+
readonly resetAt?: number | undefined;
|
|
58
|
+
constructor(message?: string, resetAt?: number | undefined);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Execute operation with retry logic and exponential backoff
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const result = await withRetry(
|
|
66
|
+
* () => fetch('https://api.example.com/data'),
|
|
67
|
+
* { maxRetries: 3, baseDelay: 1000 }
|
|
68
|
+
* )
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function withRetry<T>(operation: () => Promise<T>, options?: Partial<RetryOptions>): Promise<T>;
|
|
72
|
+
/**
|
|
73
|
+
* Check if an HTTP status code is retryable
|
|
74
|
+
*/
|
|
75
|
+
export declare function isRetryableHttpStatus(status: number): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Check if an error is a network/transient error
|
|
78
|
+
*/
|
|
79
|
+
export declare function isTransientError(error: unknown): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Execute operation with timeout protection
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* const result = await withTimeout(
|
|
86
|
+
* fetch('https://api.example.com/data'),
|
|
87
|
+
* { timeoutMs: 5000, fallback: null }
|
|
88
|
+
* )
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export declare function withTimeout<T>(promise: Promise<T>, options: TimeoutOptions<T>): Promise<T>;
|
|
92
|
+
/**
|
|
93
|
+
* Create an AbortController with automatic timeout
|
|
94
|
+
*/
|
|
95
|
+
export declare function createTimeoutController(timeoutMs: number): {
|
|
96
|
+
controller: AbortController;
|
|
97
|
+
cleanup: () => void;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Circuit Breaker for protecting against cascade failures
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* const breaker = new CircuitBreaker({ failureThreshold: 5 })
|
|
105
|
+
*
|
|
106
|
+
* try {
|
|
107
|
+
* const result = await breaker.execute(() => riskyOperation())
|
|
108
|
+
* } catch (error) {
|
|
109
|
+
* if (error instanceof CircuitOpenError) {
|
|
110
|
+
* // Circuit is open, use fallback
|
|
111
|
+
* }
|
|
112
|
+
* }
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
export declare class CircuitBreaker {
|
|
116
|
+
private state;
|
|
117
|
+
private failures;
|
|
118
|
+
private successes;
|
|
119
|
+
private lastFailureTime;
|
|
120
|
+
private options;
|
|
121
|
+
constructor(options?: Partial<CircuitBreakerOptions>);
|
|
122
|
+
/**
|
|
123
|
+
* Get current circuit state
|
|
124
|
+
*/
|
|
125
|
+
getState(): CircuitState;
|
|
126
|
+
/**
|
|
127
|
+
* Get circuit statistics
|
|
128
|
+
*/
|
|
129
|
+
getStats(): {
|
|
130
|
+
state: CircuitState;
|
|
131
|
+
failures: number;
|
|
132
|
+
successes: number;
|
|
133
|
+
lastFailureTime: number;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Execute operation through circuit breaker
|
|
137
|
+
*/
|
|
138
|
+
execute<T>(operation: () => Promise<T>): Promise<T>;
|
|
139
|
+
/**
|
|
140
|
+
* Record successful operation
|
|
141
|
+
*/
|
|
142
|
+
private onSuccess;
|
|
143
|
+
/**
|
|
144
|
+
* Record failed operation
|
|
145
|
+
*/
|
|
146
|
+
private onFailure;
|
|
147
|
+
/**
|
|
148
|
+
* Transition to new state
|
|
149
|
+
*/
|
|
150
|
+
private transitionTo;
|
|
151
|
+
/**
|
|
152
|
+
* Manually reset the circuit breaker
|
|
153
|
+
*/
|
|
154
|
+
reset(): void;
|
|
155
|
+
/**
|
|
156
|
+
* Manually trip the circuit breaker
|
|
157
|
+
*/
|
|
158
|
+
trip(): void;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Execute operation with retry, timeout, and circuit breaker
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```typescript
|
|
165
|
+
* const breaker = new CircuitBreaker()
|
|
166
|
+
*
|
|
167
|
+
* const result = await withResilience(
|
|
168
|
+
* () => fetch('https://api.example.com/data'),
|
|
169
|
+
* {
|
|
170
|
+
* retry: { maxRetries: 3 },
|
|
171
|
+
* timeout: { timeoutMs: 5000 },
|
|
172
|
+
* circuitBreaker: breaker
|
|
173
|
+
* }
|
|
174
|
+
* )
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
export declare function withResilience<T>(operation: () => Promise<T>, options: {
|
|
178
|
+
retry?: Partial<RetryOptions>;
|
|
179
|
+
timeout?: TimeoutOptions<T>;
|
|
180
|
+
circuitBreaker?: CircuitBreaker;
|
|
181
|
+
}): Promise<T>;
|
|
182
|
+
/**
|
|
183
|
+
* Simple mutex for protecting async initialization
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* const initMutex = new AsyncMutex()
|
|
188
|
+
* let instance: Client | null = null
|
|
189
|
+
*
|
|
190
|
+
* async function getInstance() {
|
|
191
|
+
* if (instance) return instance
|
|
192
|
+
* return initMutex.runExclusive(async () => {
|
|
193
|
+
* if (instance) return instance // Double-check after acquiring lock
|
|
194
|
+
* instance = await createClient()
|
|
195
|
+
* return instance
|
|
196
|
+
* })
|
|
197
|
+
* }
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export declare class AsyncMutex {
|
|
201
|
+
private locked;
|
|
202
|
+
private queue;
|
|
203
|
+
/**
|
|
204
|
+
* Check if mutex is currently locked
|
|
205
|
+
*/
|
|
206
|
+
isLocked(): boolean;
|
|
207
|
+
/**
|
|
208
|
+
* Acquire the mutex lock
|
|
209
|
+
*/
|
|
210
|
+
acquire(): Promise<void>;
|
|
211
|
+
/**
|
|
212
|
+
* Release the mutex lock
|
|
213
|
+
*/
|
|
214
|
+
release(): void;
|
|
215
|
+
/**
|
|
216
|
+
* Run operation exclusively (acquires and releases automatically)
|
|
217
|
+
*/
|
|
218
|
+
runExclusive<T>(operation: () => Promise<T>): Promise<T>;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Execute cache operation safely (returns null on error instead of throwing)
|
|
222
|
+
*/
|
|
223
|
+
export declare function safeCacheGet<T>(operation: () => Promise<T | null>, context?: string): Promise<T | null>;
|
|
224
|
+
/**
|
|
225
|
+
* Execute cache set operation safely (returns success boolean)
|
|
226
|
+
*/
|
|
227
|
+
export declare function safeCacheSet(operation: () => Promise<void>, context?: string): Promise<boolean>;
|
|
228
|
+
export interface BatchResult<T, E = unknown> {
|
|
229
|
+
succeeded: T[];
|
|
230
|
+
failed: Array<{
|
|
231
|
+
item: unknown;
|
|
232
|
+
error: E;
|
|
233
|
+
}>;
|
|
234
|
+
total: number;
|
|
235
|
+
successRate: number;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Process items in batches with individual error handling
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* ```typescript
|
|
242
|
+
* const result = await processBatch(
|
|
243
|
+
* items,
|
|
244
|
+
* async (item) => await processItem(item),
|
|
245
|
+
* { chunkSize: 10, concurrency: 5 }
|
|
246
|
+
* )
|
|
247
|
+
* console.log(`Processed ${result.succeeded.length}/${result.total}`)
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
export declare function processBatch<T, R>(items: T[], processor: (item: T, index: number) => Promise<R>, options?: {
|
|
251
|
+
chunkSize?: number;
|
|
252
|
+
concurrency?: number;
|
|
253
|
+
delayBetweenChunks?: number;
|
|
254
|
+
onProgress?: (processed: number, total: number) => void;
|
|
255
|
+
}): Promise<BatchResult<R>>;
|
|
256
|
+
//# sourceMappingURL=resilience.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resilience.d.ts","sourceRoot":"","sources":["../../src/utils/resilience.ts"],"names":[],"mappings":"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"}
|