dino-spec 17.4.3 → 17.5.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/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +10 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/core/agents/__tests__/confidence-gate.test.d.ts +5 -0
- package/dist/core/agents/__tests__/confidence-gate.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/confidence-gate.test.js +329 -0
- package/dist/core/agents/__tests__/confidence-gate.test.js.map +1 -0
- package/dist/core/agents/__tests__/gap-detector.test.d.ts +5 -0
- package/dist/core/agents/__tests__/gap-detector.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/gap-detector.test.js +609 -0
- package/dist/core/agents/__tests__/gap-detector.test.js.map +1 -0
- package/dist/core/agents/__tests__/learning-loop.test.d.ts +5 -0
- package/dist/core/agents/__tests__/learning-loop.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/learning-loop.test.js +663 -0
- package/dist/core/agents/__tests__/learning-loop.test.js.map +1 -0
- package/dist/core/agents/__tests__/parallel-executor.test.d.ts +5 -0
- package/dist/core/agents/__tests__/parallel-executor.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/parallel-executor.test.js +610 -0
- package/dist/core/agents/__tests__/parallel-executor.test.js.map +1 -0
- package/dist/core/agents/__tests__/research-validator.test.js +5 -5
- package/dist/core/agents/__tests__/research-validator.test.js.map +1 -1
- package/dist/core/agents/__tests__/skill-creator.test.d.ts +5 -0
- package/dist/core/agents/__tests__/skill-creator.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/skill-creator.test.js +443 -0
- package/dist/core/agents/__tests__/skill-creator.test.js.map +1 -0
- package/dist/core/agents/__tests__/state-persistence.test.d.ts +2 -0
- package/dist/core/agents/__tests__/state-persistence.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/state-persistence.test.js +270 -0
- package/dist/core/agents/__tests__/state-persistence.test.js.map +1 -0
- package/dist/core/agents/__tests__/validation-cache.test.d.ts +2 -0
- package/dist/core/agents/__tests__/validation-cache.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/validation-cache.test.js +181 -0
- package/dist/core/agents/__tests__/validation-cache.test.js.map +1 -0
- package/dist/core/agents/blackboard.d.ts +22 -3
- package/dist/core/agents/blackboard.d.ts.map +1 -1
- package/dist/core/agents/blackboard.js +52 -2
- package/dist/core/agents/blackboard.js.map +1 -1
- package/dist/core/agents/circuit-breaker.d.ts +79 -1
- package/dist/core/agents/circuit-breaker.d.ts.map +1 -1
- package/dist/core/agents/circuit-breaker.js +175 -1
- package/dist/core/agents/circuit-breaker.js.map +1 -1
- package/dist/core/agents/clarification-phase.d.ts +128 -0
- package/dist/core/agents/clarification-phase.d.ts.map +1 -0
- package/dist/core/agents/clarification-phase.js +375 -0
- package/dist/core/agents/clarification-phase.js.map +1 -0
- package/dist/core/agents/confidence-gate.d.ts +116 -3
- package/dist/core/agents/confidence-gate.d.ts.map +1 -1
- package/dist/core/agents/confidence-gate.js +363 -3
- package/dist/core/agents/confidence-gate.js.map +1 -1
- package/dist/core/agents/correction-tracker.d.ts +197 -0
- package/dist/core/agents/correction-tracker.d.ts.map +1 -0
- package/dist/core/agents/correction-tracker.js +366 -0
- package/dist/core/agents/correction-tracker.js.map +1 -0
- package/dist/core/agents/dependency-graph.d.ts +193 -0
- package/dist/core/agents/dependency-graph.d.ts.map +1 -0
- package/dist/core/agents/dependency-graph.js +462 -0
- package/dist/core/agents/dependency-graph.js.map +1 -0
- package/dist/core/agents/gap-detector.d.ts +277 -0
- package/dist/core/agents/gap-detector.d.ts.map +1 -0
- package/dist/core/agents/gap-detector.js +540 -0
- package/dist/core/agents/gap-detector.js.map +1 -0
- package/dist/core/agents/index.d.ts +14 -1
- package/dist/core/agents/index.d.ts.map +1 -1
- package/dist/core/agents/index.js +26 -1
- package/dist/core/agents/index.js.map +1 -1
- package/dist/core/agents/message-protocol.d.ts +13 -2
- package/dist/core/agents/message-protocol.d.ts.map +1 -1
- package/dist/core/agents/message-protocol.js +20 -1
- package/dist/core/agents/message-protocol.js.map +1 -1
- package/dist/core/agents/parallel-executor.d.ts +182 -0
- package/dist/core/agents/parallel-executor.d.ts.map +1 -0
- package/dist/core/agents/parallel-executor.js +474 -0
- package/dist/core/agents/parallel-executor.js.map +1 -0
- package/dist/core/agents/pattern-detector.d.ts +157 -0
- package/dist/core/agents/pattern-detector.d.ts.map +1 -0
- package/dist/core/agents/pattern-detector.js +370 -0
- package/dist/core/agents/pattern-detector.js.map +1 -0
- package/dist/core/agents/registry-client.d.ts +6 -0
- package/dist/core/agents/registry-client.d.ts.map +1 -1
- package/dist/core/agents/registry-client.js +3 -0
- package/dist/core/agents/registry-client.js.map +1 -1
- package/dist/core/agents/research-phase.d.ts +114 -0
- package/dist/core/agents/research-phase.d.ts.map +1 -0
- package/dist/core/agents/research-phase.js +355 -0
- package/dist/core/agents/research-phase.js.map +1 -0
- package/dist/core/agents/research-validator.d.ts +13 -2
- package/dist/core/agents/research-validator.d.ts.map +1 -1
- package/dist/core/agents/research-validator.js +63 -31
- package/dist/core/agents/research-validator.js.map +1 -1
- package/dist/core/agents/skill-creator.d.ts +174 -0
- package/dist/core/agents/skill-creator.d.ts.map +1 -0
- package/dist/core/agents/skill-creator.js +570 -0
- package/dist/core/agents/skill-creator.js.map +1 -0
- package/dist/core/agents/state-persistence.d.ts +184 -0
- package/dist/core/agents/state-persistence.d.ts.map +1 -0
- package/dist/core/agents/state-persistence.js +394 -0
- package/dist/core/agents/state-persistence.js.map +1 -0
- package/dist/core/agents/validation-cache.d.ts +122 -0
- package/dist/core/agents/validation-cache.d.ts.map +1 -0
- package/dist/core/agents/validation-cache.js +280 -0
- package/dist/core/agents/validation-cache.js.map +1 -0
- package/dist/core/agents/validators/__tests__/validators.test.d.ts +5 -0
- package/dist/core/agents/validators/__tests__/validators.test.d.ts.map +1 -0
- package/dist/core/agents/validators/__tests__/validators.test.js +321 -0
- package/dist/core/agents/validators/__tests__/validators.test.js.map +1 -0
- package/dist/core/agents/validators/base-validator.d.ts +191 -0
- package/dist/core/agents/validators/base-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/base-validator.js +192 -0
- package/dist/core/agents/validators/base-validator.js.map +1 -0
- package/dist/core/agents/validators/index.d.ts +7 -0
- package/dist/core/agents/validators/index.d.ts.map +1 -0
- package/dist/core/agents/validators/index.js +7 -0
- package/dist/core/agents/validators/index.js.map +1 -0
- package/dist/core/agents/validators/npm-validator.d.ts +50 -0
- package/dist/core/agents/validators/npm-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/npm-validator.js +211 -0
- package/dist/core/agents/validators/npm-validator.js.map +1 -0
- package/dist/core/agents/validators/pip-validator.d.ts +49 -0
- package/dist/core/agents/validators/pip-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/pip-validator.js +191 -0
- package/dist/core/agents/validators/pip-validator.js.map +1 -0
- package/dist/core/agents/validators/validator-registry.d.ts +122 -0
- package/dist/core/agents/validators/validator-registry.d.ts.map +1 -0
- package/dist/core/agents/validators/validator-registry.js +321 -0
- package/dist/core/agents/validators/validator-registry.js.map +1 -0
- package/dist/core/context-repl/types.d.ts +4 -4
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +2 -0
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/memory/learning-store.d.ts +222 -0
- package/dist/core/memory/learning-store.d.ts.map +1 -0
- package/dist/core/memory/learning-store.js +477 -0
- package/dist/core/memory/learning-store.js.map +1 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts +5 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts.map +1 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js +401 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js.map +1 -0
- package/dist/core/spec-analyzer/ambiguity-detector.d.ts +99 -0
- package/dist/core/spec-analyzer/ambiguity-detector.d.ts.map +1 -0
- package/dist/core/spec-analyzer/ambiguity-detector.js +250 -0
- package/dist/core/spec-analyzer/ambiguity-detector.js.map +1 -0
- package/dist/core/spec-analyzer/clarification-generator.d.ts +76 -0
- package/dist/core/spec-analyzer/clarification-generator.d.ts.map +1 -0
- package/dist/core/spec-analyzer/clarification-generator.js +257 -0
- package/dist/core/spec-analyzer/clarification-generator.js.map +1 -0
- package/dist/core/spec-analyzer/index.d.ts +10 -1
- package/dist/core/spec-analyzer/index.d.ts.map +1 -1
- package/dist/core/spec-analyzer/index.js +13 -1
- package/dist/core/spec-analyzer/index.js.map +1 -1
- package/dist/core/spec-analyzer/patterns.d.ts +73 -0
- package/dist/core/spec-analyzer/patterns.d.ts.map +1 -0
- package/dist/core/spec-analyzer/patterns.js +412 -0
- package/dist/core/spec-analyzer/patterns.js.map +1 -0
- package/dist/hooks/__tests__/dynamic-generator.test.d.ts +5 -0
- package/dist/hooks/__tests__/dynamic-generator.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/dynamic-generator.test.js +425 -0
- package/dist/hooks/__tests__/dynamic-generator.test.js.map +1 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts +5 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.js +315 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.js.map +1 -0
- package/dist/hooks/dynamic-generator.d.ts +158 -0
- package/dist/hooks/dynamic-generator.d.ts.map +1 -0
- package/dist/hooks/dynamic-generator.js +448 -0
- package/dist/hooks/dynamic-generator.js.map +1 -0
- package/dist/hooks/hook-agent-bridge.d.ts +252 -0
- package/dist/hooks/hook-agent-bridge.d.ts.map +1 -0
- package/dist/hooks/hook-agent-bridge.js +489 -0
- package/dist/hooks/hook-agent-bridge.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +5 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/mcp/tool-catalog.d.ts.map +1 -1
- package/dist/mcp/tool-catalog.js +47 -0
- package/dist/mcp/tool-catalog.js.map +1 -1
- package/dist/mcp/tool-tiers.d.ts.map +1 -1
- package/dist/mcp/tool-tiers.js +4 -0
- package/dist/mcp/tool-tiers.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +2 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +15 -1
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/learning-store.d.ts +30 -0
- package/dist/mcp/tools/learning-store.d.ts.map +1 -0
- package/dist/mcp/tools/learning-store.js +286 -0
- package/dist/mcp/tools/learning-store.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Cache - Advanced caching with rate limiting
|
|
3
|
+
*
|
|
4
|
+
* Provides:
|
|
5
|
+
* - Configurable TTL cache for validation results
|
|
6
|
+
* - Rate limiter per API source
|
|
7
|
+
* - Cache statistics and management
|
|
8
|
+
*/
|
|
9
|
+
export interface CacheConfig {
|
|
10
|
+
/** Time-to-live in milliseconds. Default: 1 hour */
|
|
11
|
+
ttlMs: number;
|
|
12
|
+
/** Maximum cache entries. Default: 1000 */
|
|
13
|
+
maxEntries: number;
|
|
14
|
+
}
|
|
15
|
+
export interface RateLimitConfig {
|
|
16
|
+
/** Maximum requests per second */
|
|
17
|
+
requestsPerSecond: number;
|
|
18
|
+
/** Burst allowance (max requests in queue) */
|
|
19
|
+
burstLimit: number;
|
|
20
|
+
}
|
|
21
|
+
export declare const DEFAULT_CACHE_CONFIG: CacheConfig;
|
|
22
|
+
/** Rate limits per API source */
|
|
23
|
+
export declare const API_RATE_LIMITS: Record<string, RateLimitConfig>;
|
|
24
|
+
/**
|
|
25
|
+
* Generic cache with TTL and LRU eviction
|
|
26
|
+
*/
|
|
27
|
+
export declare class ValidationCache<T> {
|
|
28
|
+
private cache;
|
|
29
|
+
private config;
|
|
30
|
+
private hits;
|
|
31
|
+
private misses;
|
|
32
|
+
constructor(config?: Partial<CacheConfig>);
|
|
33
|
+
/**
|
|
34
|
+
* Get item from cache
|
|
35
|
+
*/
|
|
36
|
+
get(key: string): T | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Set item in cache
|
|
39
|
+
*/
|
|
40
|
+
set(key: string, data: T, ttlMs?: number): void;
|
|
41
|
+
/**
|
|
42
|
+
* Check if key exists and is valid
|
|
43
|
+
*/
|
|
44
|
+
has(key: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Delete item from cache
|
|
47
|
+
*/
|
|
48
|
+
delete(key: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Clear all cache entries
|
|
51
|
+
*/
|
|
52
|
+
clear(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Get cache statistics
|
|
55
|
+
*/
|
|
56
|
+
getStats(): {
|
|
57
|
+
size: number;
|
|
58
|
+
maxSize: number;
|
|
59
|
+
hits: number;
|
|
60
|
+
misses: number;
|
|
61
|
+
hitRate: number;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Evict expired entries
|
|
65
|
+
*/
|
|
66
|
+
cleanup(): number;
|
|
67
|
+
/**
|
|
68
|
+
* Evict oldest entries to make room
|
|
69
|
+
*/
|
|
70
|
+
private evictOldest;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Token bucket rate limiter with async support
|
|
74
|
+
*/
|
|
75
|
+
export declare class RateLimiter {
|
|
76
|
+
private states;
|
|
77
|
+
private refillIntervalMs;
|
|
78
|
+
/**
|
|
79
|
+
* Initialize rate limiter for a source
|
|
80
|
+
*/
|
|
81
|
+
private getState;
|
|
82
|
+
/**
|
|
83
|
+
* Refill tokens based on elapsed time
|
|
84
|
+
*/
|
|
85
|
+
private refill;
|
|
86
|
+
/**
|
|
87
|
+
* Acquire a token for rate-limited request
|
|
88
|
+
* Returns immediately if tokens available, otherwise waits
|
|
89
|
+
*/
|
|
90
|
+
acquire(source: string): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Schedule processing of queued requests
|
|
93
|
+
*/
|
|
94
|
+
private scheduleProcess;
|
|
95
|
+
/**
|
|
96
|
+
* Get current rate limiter stats
|
|
97
|
+
*/
|
|
98
|
+
getStats(source: string): {
|
|
99
|
+
availableTokens: number;
|
|
100
|
+
queueLength: number;
|
|
101
|
+
config: RateLimitConfig;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Reset rate limiter for a source
|
|
105
|
+
*/
|
|
106
|
+
reset(source: string): void;
|
|
107
|
+
/**
|
|
108
|
+
* Reset all rate limiters
|
|
109
|
+
*/
|
|
110
|
+
resetAll(): void;
|
|
111
|
+
}
|
|
112
|
+
/** Global rate limiter instance */
|
|
113
|
+
export declare const rateLimiter: RateLimiter;
|
|
114
|
+
/**
|
|
115
|
+
* Execute a function with rate limiting
|
|
116
|
+
*/
|
|
117
|
+
export declare function withRateLimit<T>(source: string, fn: () => Promise<T>): Promise<T>;
|
|
118
|
+
/**
|
|
119
|
+
* Create a rate-limited version of a function
|
|
120
|
+
*/
|
|
121
|
+
export declare function rateLimited<T, Args extends unknown[]>(source: string, fn: (...args: Args) => Promise<T>): (...args: Args) => Promise<T>;
|
|
122
|
+
//# sourceMappingURL=validation-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-cache.d.ts","sourceRoot":"","sources":["../../../src/core/agents/validation-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,CAAA;IACzB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAA;CACnB;AAqBD,eAAO,MAAM,oBAAoB,EAAE,WAGlC,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAM3D,CAAA;AAMD;;GAEG;AACH,qBAAa,eAAe,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,MAAM,CAAI;gBAEN,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAI7C;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAkB/B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAc/C;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,QAAQ,IAAI;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;KAChB;IAWD;;OAEG;IACH,OAAO,IAAI,MAAM;IAYjB;;OAEG;IACH,OAAO,CAAC,WAAW;CAgBpB;AAMD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,gBAAgB,CAAc;IAEtC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAchB;;OAEG;IACH,OAAO,CAAC,MAAM;IAcd;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5C;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG;QACxB,eAAe,EAAE,MAAM,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,eAAe,CAAA;KACxB;IAYD;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAW3B;;OAEG;IACH,QAAQ,IAAI,IAAI;CAKjB;AAMD,mCAAmC;AACnC,eAAO,MAAM,WAAW,aAAoB,CAAA;AAM5C;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAGvF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EACnD,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAChC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAK/B"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Cache - Advanced caching with rate limiting
|
|
3
|
+
*
|
|
4
|
+
* Provides:
|
|
5
|
+
* - Configurable TTL cache for validation results
|
|
6
|
+
* - Rate limiter per API source
|
|
7
|
+
* - Cache statistics and management
|
|
8
|
+
*/
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// Constants
|
|
11
|
+
// =============================================================================
|
|
12
|
+
export const DEFAULT_CACHE_CONFIG = {
|
|
13
|
+
ttlMs: 60 * 60 * 1000, // 1 hour
|
|
14
|
+
maxEntries: 1000,
|
|
15
|
+
};
|
|
16
|
+
/** Rate limits per API source */
|
|
17
|
+
export const API_RATE_LIMITS = {
|
|
18
|
+
npm: { requestsPerSecond: 10, burstLimit: 20 },
|
|
19
|
+
bundlephobia: { requestsPerSecond: 5, burstLimit: 10 },
|
|
20
|
+
audit: { requestsPerSecond: 1, burstLimit: 3 },
|
|
21
|
+
'deps.dev': { requestsPerSecond: 5, burstLimit: 10 },
|
|
22
|
+
github: { requestsPerSecond: 5, burstLimit: 10 },
|
|
23
|
+
};
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// ValidationCache Class
|
|
26
|
+
// =============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Generic cache with TTL and LRU eviction
|
|
29
|
+
*/
|
|
30
|
+
export class ValidationCache {
|
|
31
|
+
cache = new Map();
|
|
32
|
+
config;
|
|
33
|
+
hits = 0;
|
|
34
|
+
misses = 0;
|
|
35
|
+
constructor(config = {}) {
|
|
36
|
+
this.config = { ...DEFAULT_CACHE_CONFIG, ...config };
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get item from cache
|
|
40
|
+
*/
|
|
41
|
+
get(key) {
|
|
42
|
+
const entry = this.cache.get(key);
|
|
43
|
+
if (!entry) {
|
|
44
|
+
this.misses++;
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
if (Date.now() > entry.expiresAt) {
|
|
48
|
+
this.cache.delete(key);
|
|
49
|
+
this.misses++;
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
this.hits++;
|
|
53
|
+
return entry.data;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Set item in cache
|
|
57
|
+
*/
|
|
58
|
+
set(key, data, ttlMs) {
|
|
59
|
+
// Evict oldest entries if at capacity
|
|
60
|
+
if (this.cache.size >= this.config.maxEntries) {
|
|
61
|
+
this.evictOldest();
|
|
62
|
+
}
|
|
63
|
+
const now = Date.now();
|
|
64
|
+
this.cache.set(key, {
|
|
65
|
+
data,
|
|
66
|
+
timestamp: now,
|
|
67
|
+
expiresAt: now + (ttlMs ?? this.config.ttlMs),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check if key exists and is valid
|
|
72
|
+
*/
|
|
73
|
+
has(key) {
|
|
74
|
+
const entry = this.cache.get(key);
|
|
75
|
+
if (!entry)
|
|
76
|
+
return false;
|
|
77
|
+
if (Date.now() > entry.expiresAt) {
|
|
78
|
+
this.cache.delete(key);
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Delete item from cache
|
|
85
|
+
*/
|
|
86
|
+
delete(key) {
|
|
87
|
+
return this.cache.delete(key);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Clear all cache entries
|
|
91
|
+
*/
|
|
92
|
+
clear() {
|
|
93
|
+
this.cache.clear();
|
|
94
|
+
this.hits = 0;
|
|
95
|
+
this.misses = 0;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get cache statistics
|
|
99
|
+
*/
|
|
100
|
+
getStats() {
|
|
101
|
+
const total = this.hits + this.misses;
|
|
102
|
+
return {
|
|
103
|
+
size: this.cache.size,
|
|
104
|
+
maxSize: this.config.maxEntries,
|
|
105
|
+
hits: this.hits,
|
|
106
|
+
misses: this.misses,
|
|
107
|
+
hitRate: total > 0 ? this.hits / total : 0,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Evict expired entries
|
|
112
|
+
*/
|
|
113
|
+
cleanup() {
|
|
114
|
+
const now = Date.now();
|
|
115
|
+
let evicted = 0;
|
|
116
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
117
|
+
if (now > entry.expiresAt) {
|
|
118
|
+
this.cache.delete(key);
|
|
119
|
+
evicted++;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return evicted;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Evict oldest entries to make room
|
|
126
|
+
*/
|
|
127
|
+
evictOldest() {
|
|
128
|
+
// Find oldest entry
|
|
129
|
+
let oldestKey = null;
|
|
130
|
+
let oldestTime = Number.POSITIVE_INFINITY;
|
|
131
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
132
|
+
if (entry.timestamp < oldestTime) {
|
|
133
|
+
oldestTime = entry.timestamp;
|
|
134
|
+
oldestKey = key;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (oldestKey) {
|
|
138
|
+
this.cache.delete(oldestKey);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// =============================================================================
|
|
143
|
+
// RateLimiter Class
|
|
144
|
+
// =============================================================================
|
|
145
|
+
/**
|
|
146
|
+
* Token bucket rate limiter with async support
|
|
147
|
+
*/
|
|
148
|
+
export class RateLimiter {
|
|
149
|
+
states = new Map();
|
|
150
|
+
refillIntervalMs = 100;
|
|
151
|
+
/**
|
|
152
|
+
* Initialize rate limiter for a source
|
|
153
|
+
*/
|
|
154
|
+
getState(source) {
|
|
155
|
+
let state = this.states.get(source);
|
|
156
|
+
if (!state) {
|
|
157
|
+
const config = API_RATE_LIMITS[source] ?? { requestsPerSecond: 5, burstLimit: 10 };
|
|
158
|
+
state = {
|
|
159
|
+
tokens: config.burstLimit,
|
|
160
|
+
lastRefill: Date.now(),
|
|
161
|
+
queue: [],
|
|
162
|
+
};
|
|
163
|
+
this.states.set(source, state);
|
|
164
|
+
}
|
|
165
|
+
return state;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Refill tokens based on elapsed time
|
|
169
|
+
*/
|
|
170
|
+
refill(source) {
|
|
171
|
+
const state = this.getState(source);
|
|
172
|
+
const config = API_RATE_LIMITS[source] ?? { requestsPerSecond: 5, burstLimit: 10 };
|
|
173
|
+
const now = Date.now();
|
|
174
|
+
const elapsed = now - state.lastRefill;
|
|
175
|
+
const tokensToAdd = (elapsed / 1000) * config.requestsPerSecond;
|
|
176
|
+
if (tokensToAdd > 0) {
|
|
177
|
+
state.tokens = Math.min(config.burstLimit, state.tokens + tokensToAdd);
|
|
178
|
+
state.lastRefill = now;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Acquire a token for rate-limited request
|
|
183
|
+
* Returns immediately if tokens available, otherwise waits
|
|
184
|
+
*/
|
|
185
|
+
async acquire(source) {
|
|
186
|
+
this.refill(source);
|
|
187
|
+
const state = this.getState(source);
|
|
188
|
+
const config = API_RATE_LIMITS[source] ?? { requestsPerSecond: 5, burstLimit: 10 };
|
|
189
|
+
if (state.tokens >= 1) {
|
|
190
|
+
state.tokens--;
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
// Queue the request
|
|
194
|
+
if (state.queue.length >= config.burstLimit) {
|
|
195
|
+
throw new Error(`Rate limit exceeded for ${source}: queue full`);
|
|
196
|
+
}
|
|
197
|
+
return new Promise((resolve, reject) => {
|
|
198
|
+
state.queue.push({ resolve, reject });
|
|
199
|
+
this.scheduleProcess(source);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Schedule processing of queued requests
|
|
204
|
+
*/
|
|
205
|
+
scheduleProcess(source) {
|
|
206
|
+
setTimeout(() => {
|
|
207
|
+
this.refill(source);
|
|
208
|
+
const state = this.getState(source);
|
|
209
|
+
while (state.tokens >= 1 && state.queue.length > 0) {
|
|
210
|
+
state.tokens--;
|
|
211
|
+
const request = state.queue.shift();
|
|
212
|
+
if (request) {
|
|
213
|
+
request.resolve();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
if (state.queue.length > 0) {
|
|
217
|
+
this.scheduleProcess(source);
|
|
218
|
+
}
|
|
219
|
+
}, this.refillIntervalMs);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get current rate limiter stats
|
|
223
|
+
*/
|
|
224
|
+
getStats(source) {
|
|
225
|
+
this.refill(source);
|
|
226
|
+
const state = this.getState(source);
|
|
227
|
+
const config = API_RATE_LIMITS[source] ?? { requestsPerSecond: 5, burstLimit: 10 };
|
|
228
|
+
return {
|
|
229
|
+
availableTokens: Math.floor(state.tokens),
|
|
230
|
+
queueLength: state.queue.length,
|
|
231
|
+
config,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Reset rate limiter for a source
|
|
236
|
+
*/
|
|
237
|
+
reset(source) {
|
|
238
|
+
const state = this.states.get(source);
|
|
239
|
+
if (state) {
|
|
240
|
+
// Reject any pending requests
|
|
241
|
+
for (const request of state.queue) {
|
|
242
|
+
request.reject(new Error('Rate limiter reset'));
|
|
243
|
+
}
|
|
244
|
+
this.states.delete(source);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Reset all rate limiters
|
|
249
|
+
*/
|
|
250
|
+
resetAll() {
|
|
251
|
+
for (const source of this.states.keys()) {
|
|
252
|
+
this.reset(source);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// =============================================================================
|
|
257
|
+
// Singleton Instances
|
|
258
|
+
// =============================================================================
|
|
259
|
+
/** Global rate limiter instance */
|
|
260
|
+
export const rateLimiter = new RateLimiter();
|
|
261
|
+
// =============================================================================
|
|
262
|
+
// Utility Functions
|
|
263
|
+
// =============================================================================
|
|
264
|
+
/**
|
|
265
|
+
* Execute a function with rate limiting
|
|
266
|
+
*/
|
|
267
|
+
export async function withRateLimit(source, fn) {
|
|
268
|
+
await rateLimiter.acquire(source);
|
|
269
|
+
return fn();
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Create a rate-limited version of a function
|
|
273
|
+
*/
|
|
274
|
+
export function rateLimited(source, fn) {
|
|
275
|
+
return async (...args) => {
|
|
276
|
+
await rateLimiter.acquire(source);
|
|
277
|
+
return fn(...args);
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=validation-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-cache.js","sourceRoot":"","sources":["../../../src/core/agents/validation-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.test.d.ts","sourceRoot":"","sources":["../../../../../src/core/agents/validators/__tests__/validators.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|