codevault 1.6.0 → 1.6.1
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/chunking/file-grouper.d.ts +39 -0
- package/dist/chunking/file-grouper.d.ts.map +1 -0
- package/dist/chunking/file-grouper.js +164 -0
- package/dist/chunking/file-grouper.js.map +1 -0
- package/dist/chunking/semantic-chunker.d.ts +37 -0
- package/dist/chunking/semantic-chunker.d.ts.map +1 -0
- package/dist/chunking/semantic-chunker.js +157 -0
- package/dist/chunking/semantic-chunker.js.map +1 -0
- package/dist/chunking/token-counter.d.ts +28 -0
- package/dist/chunking/token-counter.d.ts.map +1 -0
- package/dist/chunking/token-counter.js +207 -0
- package/dist/chunking/token-counter.js.map +1 -0
- package/dist/cli/commands/ask-cmd.d.ts +3 -0
- package/dist/cli/commands/ask-cmd.d.ts.map +1 -0
- package/dist/cli/commands/ask-cmd.js +130 -0
- package/dist/cli/commands/ask-cmd.js.map +1 -0
- package/dist/cli/commands/chat-cmd.d.ts +3 -0
- package/dist/cli/commands/chat-cmd.d.ts.map +1 -0
- package/dist/cli/commands/chat-cmd.js +194 -0
- package/dist/cli/commands/chat-cmd.js.map +1 -0
- package/dist/cli/commands/config-cmd.d.ts +3 -0
- package/dist/cli/commands/config-cmd.d.ts.map +1 -0
- package/dist/cli/commands/config-cmd.js +245 -0
- package/dist/cli/commands/config-cmd.js.map +1 -0
- package/dist/cli/commands/context.d.ts +3 -0
- package/dist/cli/commands/context.d.ts.map +1 -0
- package/dist/cli/commands/context.js +98 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/interactive-config.d.ts +2 -0
- package/dist/cli/commands/interactive-config.d.ts.map +1 -0
- package/dist/cli/commands/interactive-config.js +274 -0
- package/dist/cli/commands/interactive-config.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +403 -0
- package/dist/cli.js.map +1 -0
- package/dist/codemap/io.d.ts +5 -0
- package/dist/codemap/io.d.ts.map +1 -0
- package/dist/codemap/io.js +30 -0
- package/dist/codemap/io.js.map +1 -0
- package/dist/config/apply-env.d.ts +15 -0
- package/dist/config/apply-env.d.ts.map +1 -0
- package/dist/config/apply-env.js +91 -0
- package/dist/config/apply-env.js.map +1 -0
- package/dist/config/constants.d.ts +326 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +214 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/loader.d.ts +57 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +287 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/types.d.ts +46 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/context/packs.d.ts +33 -0
- package/dist/context/packs.d.ts.map +1 -0
- package/dist/context/packs.js +180 -0
- package/dist/context/packs.js.map +1 -0
- package/dist/core/batch-indexer.d.ts +56 -0
- package/dist/core/batch-indexer.d.ts.map +1 -0
- package/dist/core/batch-indexer.js +189 -0
- package/dist/core/batch-indexer.js.map +1 -0
- package/dist/core/indexer.d.ts +3 -0
- package/dist/core/indexer.d.ts.map +1 -0
- package/dist/core/indexer.js +600 -0
- package/dist/core/indexer.js.map +1 -0
- package/dist/core/metadata.d.ts +19 -0
- package/dist/core/metadata.d.ts.map +1 -0
- package/dist/core/metadata.js +161 -0
- package/dist/core/metadata.js.map +1 -0
- package/dist/core/search.d.ts +7 -0
- package/dist/core/search.d.ts.map +1 -0
- package/dist/core/search.js +545 -0
- package/dist/core/search.js.map +1 -0
- package/dist/core/symbol-extractor.d.ts +3 -0
- package/dist/core/symbol-extractor.d.ts.map +1 -0
- package/dist/core/symbol-extractor.js +78 -0
- package/dist/core/symbol-extractor.js.map +1 -0
- package/dist/core/types.d.ts +104 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/database/db.d.ts +102 -0
- package/dist/database/db.d.ts.map +1 -0
- package/dist/database/db.js +366 -0
- package/dist/database/db.js.map +1 -0
- package/dist/indexer/merkle.d.ts +13 -0
- package/dist/indexer/merkle.d.ts.map +1 -0
- package/dist/indexer/merkle.js +86 -0
- package/dist/indexer/merkle.js.map +1 -0
- package/dist/indexer/update.d.ts +19 -0
- package/dist/indexer/update.d.ts.map +1 -0
- package/dist/indexer/update.js +40 -0
- package/dist/indexer/update.js.map +1 -0
- package/dist/indexer/watch.d.ts +21 -0
- package/dist/indexer/watch.d.ts.map +1 -0
- package/dist/indexer/watch.js +222 -0
- package/dist/indexer/watch.js.map +1 -0
- package/dist/languages/rules.d.ts +11 -0
- package/dist/languages/rules.d.ts.map +1 -0
- package/dist/languages/rules.js +371 -0
- package/dist/languages/rules.js.map +1 -0
- package/dist/languages/tree-sitter-loader.d.ts +27 -0
- package/dist/languages/tree-sitter-loader.d.ts.map +1 -0
- package/dist/languages/tree-sitter-loader.js +76 -0
- package/dist/languages/tree-sitter-loader.js.map +1 -0
- package/dist/mcp/schemas.d.ts +166 -0
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +159 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/tools/ask-codebase.d.ts +85 -0
- package/dist/mcp/tools/ask-codebase.d.ts.map +1 -0
- package/dist/mcp/tools/ask-codebase.js +125 -0
- package/dist/mcp/tools/ask-codebase.js.map +1 -0
- package/dist/mcp/tools/use-context-pack.d.ts +57 -0
- package/dist/mcp/tools/use-context-pack.d.ts.map +1 -0
- package/dist/mcp/tools/use-context-pack.js +91 -0
- package/dist/mcp/tools/use-context-pack.js.map +1 -0
- package/dist/mcp-server.d.ts +3 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +511 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/providers/base.d.ts +39 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +198 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/chat-llm.d.ts +30 -0
- package/dist/providers/chat-llm.d.ts.map +1 -0
- package/dist/providers/chat-llm.js +85 -0
- package/dist/providers/chat-llm.js.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +12 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai.d.ts +14 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +122 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/token-counter.d.ts +2 -0
- package/dist/providers/token-counter.d.ts.map +1 -0
- package/dist/providers/token-counter.js +18 -0
- package/dist/providers/token-counter.js.map +1 -0
- package/dist/ranking/api-reranker.d.ts +18 -0
- package/dist/ranking/api-reranker.d.ts.map +1 -0
- package/dist/ranking/api-reranker.js +134 -0
- package/dist/ranking/api-reranker.js.map +1 -0
- package/dist/ranking/symbol-boost.d.ts +15 -0
- package/dist/ranking/symbol-boost.d.ts.map +1 -0
- package/dist/ranking/symbol-boost.js +175 -0
- package/dist/ranking/symbol-boost.js.map +1 -0
- package/dist/search/bm25.d.ts +17 -0
- package/dist/search/bm25.d.ts.map +1 -0
- package/dist/search/bm25.js +56 -0
- package/dist/search/bm25.js.map +1 -0
- package/dist/search/hybrid.d.ts +21 -0
- package/dist/search/hybrid.d.ts.map +1 -0
- package/dist/search/hybrid.js +50 -0
- package/dist/search/hybrid.js.map +1 -0
- package/dist/search/scope.d.ts +5 -0
- package/dist/search/scope.d.ts.map +1 -0
- package/dist/search/scope.js +107 -0
- package/dist/search/scope.js.map +1 -0
- package/dist/storage/encrypted-chunks.d.ts +40 -0
- package/dist/storage/encrypted-chunks.d.ts.map +1 -0
- package/dist/storage/encrypted-chunks.js +238 -0
- package/dist/storage/encrypted-chunks.js.map +1 -0
- package/dist/symbols/extract.d.ts +15 -0
- package/dist/symbols/extract.d.ts.map +1 -0
- package/dist/symbols/extract.js +208 -0
- package/dist/symbols/extract.js.map +1 -0
- package/dist/symbols/graph.d.ts +3 -0
- package/dist/symbols/graph.d.ts.map +1 -0
- package/dist/symbols/graph.js +89 -0
- package/dist/symbols/graph.js.map +1 -0
- package/dist/synthesis/conversational-synthesizer.d.ts +61 -0
- package/dist/synthesis/conversational-synthesizer.d.ts.map +1 -0
- package/dist/synthesis/conversational-synthesizer.js +286 -0
- package/dist/synthesis/conversational-synthesizer.js.map +1 -0
- package/dist/synthesis/markdown-formatter.d.ts +13 -0
- package/dist/synthesis/markdown-formatter.d.ts.map +1 -0
- package/dist/synthesis/markdown-formatter.js +104 -0
- package/dist/synthesis/markdown-formatter.js.map +1 -0
- package/dist/synthesis/prompt-builder.d.ts +21 -0
- package/dist/synthesis/prompt-builder.d.ts.map +1 -0
- package/dist/synthesis/prompt-builder.js +129 -0
- package/dist/synthesis/prompt-builder.js.map +1 -0
- package/dist/synthesis/synthesizer.d.ts +30 -0
- package/dist/synthesis/synthesizer.d.ts.map +1 -0
- package/dist/synthesis/synthesizer.js +210 -0
- package/dist/synthesis/synthesizer.js.map +1 -0
- package/dist/types/ast.d.ts +3 -0
- package/dist/types/ast.d.ts.map +1 -0
- package/dist/types/ast.js +2 -0
- package/dist/types/ast.js.map +1 -0
- package/dist/types/codemap.d.ts +58 -0
- package/dist/types/codemap.d.ts.map +1 -0
- package/dist/types/codemap.js +224 -0
- package/dist/types/codemap.js.map +1 -0
- package/dist/types/context-pack.d.ts +47 -0
- package/dist/types/context-pack.d.ts.map +1 -0
- package/dist/types/context-pack.js +44 -0
- package/dist/types/context-pack.js.map +1 -0
- package/dist/types/search.d.ts +15 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +11 -0
- package/dist/types/search.js.map +1 -0
- package/dist/utils/cli-ui.d.ts +44 -0
- package/dist/utils/cli-ui.d.ts.map +1 -0
- package/dist/utils/cli-ui.js +139 -0
- package/dist/utils/cli-ui.js.map +1 -0
- package/dist/utils/indexer-with-progress.d.ts +10 -0
- package/dist/utils/indexer-with-progress.d.ts.map +1 -0
- package/dist/utils/indexer-with-progress.js +43 -0
- package/dist/utils/indexer-with-progress.js.map +1 -0
- package/dist/utils/logger.d.ts +55 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +121 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mutex.d.ts +63 -0
- package/dist/utils/mutex.d.ts.map +1 -0
- package/dist/utils/mutex.js +123 -0
- package/dist/utils/mutex.js.map +1 -0
- package/dist/utils/path-helpers.d.ts +27 -0
- package/dist/utils/path-helpers.d.ts.map +1 -0
- package/dist/utils/path-helpers.js +55 -0
- package/dist/utils/path-helpers.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +34 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +178 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/scan-patterns.d.ts +5 -0
- package/dist/utils/scan-patterns.d.ts.map +1 -0
- package/dist/utils/scan-patterns.js +29 -0
- package/dist/utils/scan-patterns.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mutex implementation for coordinating async operations
|
|
3
|
+
*
|
|
4
|
+
* Provides a proper mutex/lock mechanism to replace polling-based
|
|
5
|
+
* concurrency control patterns.
|
|
6
|
+
*/
|
|
7
|
+
export class Mutex {
|
|
8
|
+
locked = false;
|
|
9
|
+
queue = [];
|
|
10
|
+
/**
|
|
11
|
+
* Check if the mutex is currently locked
|
|
12
|
+
*/
|
|
13
|
+
isLocked() {
|
|
14
|
+
return this.locked;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Acquire the mutex lock
|
|
18
|
+
* Waits if already locked
|
|
19
|
+
*/
|
|
20
|
+
async acquire() {
|
|
21
|
+
if (!this.locked) {
|
|
22
|
+
this.locked = true;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Wait for lock to be released
|
|
26
|
+
await new Promise((resolve) => {
|
|
27
|
+
this.queue.push(resolve);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Release the mutex lock
|
|
32
|
+
* Allows next queued operation to proceed
|
|
33
|
+
*/
|
|
34
|
+
release() {
|
|
35
|
+
if (this.queue.length > 0) {
|
|
36
|
+
const resolve = this.queue.shift();
|
|
37
|
+
resolve();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.locked = false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Run a function with automatic acquire/release
|
|
45
|
+
* Ensures lock is always released even if function throws
|
|
46
|
+
*/
|
|
47
|
+
async runExclusive(fn) {
|
|
48
|
+
await this.acquire();
|
|
49
|
+
try {
|
|
50
|
+
return await fn();
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
this.release();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get queue length (for debugging)
|
|
58
|
+
*/
|
|
59
|
+
getQueueLength() {
|
|
60
|
+
return this.queue.length;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Async semaphore for limiting concurrent operations
|
|
65
|
+
*/
|
|
66
|
+
export class Semaphore {
|
|
67
|
+
permits;
|
|
68
|
+
maxPermits;
|
|
69
|
+
queue = [];
|
|
70
|
+
constructor(permits) {
|
|
71
|
+
this.permits = permits;
|
|
72
|
+
this.maxPermits = permits;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Acquire a permit
|
|
76
|
+
*/
|
|
77
|
+
async acquire() {
|
|
78
|
+
if (this.permits > 0) {
|
|
79
|
+
this.permits--;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
await new Promise((resolve) => {
|
|
83
|
+
this.queue.push(resolve);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Release a permit
|
|
88
|
+
*/
|
|
89
|
+
release() {
|
|
90
|
+
if (this.queue.length > 0) {
|
|
91
|
+
const resolve = this.queue.shift();
|
|
92
|
+
resolve();
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.permits = Math.min(this.permits + 1, this.maxPermits);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Run function with automatic acquire/release
|
|
100
|
+
*/
|
|
101
|
+
async runExclusive(fn) {
|
|
102
|
+
await this.acquire();
|
|
103
|
+
try {
|
|
104
|
+
return await fn();
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
this.release();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get available permits
|
|
112
|
+
*/
|
|
113
|
+
getAvailablePermits() {
|
|
114
|
+
return this.permits;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get queue length
|
|
118
|
+
*/
|
|
119
|
+
getQueueLength() {
|
|
120
|
+
return this.queue.length;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=mutex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../src/utils/mutex.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,OAAO,KAAK;IACR,MAAM,GAAG,KAAK,CAAC;IACf,KAAK,GAAsB,EAAE,CAAC;IAEtC;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAI,EAAoB;QACxC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IACZ,OAAO,CAAS;IAChB,UAAU,CAAS;IACnB,KAAK,GAAsB,EAAE,CAAC;IAEtC,YAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAI,EAAoB;QACxC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for path resolution and normalization
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the project root path from various input options
|
|
6
|
+
* Supports multiple parameter names for backwards compatibility (project, directory, path)
|
|
7
|
+
*
|
|
8
|
+
* @param input - Object containing potential path parameters
|
|
9
|
+
* @returns Normalized path string, defaults to '.' if no path provided
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveProjectRoot(input?: {
|
|
12
|
+
project?: string;
|
|
13
|
+
directory?: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
}): string;
|
|
16
|
+
/**
|
|
17
|
+
* Wraps a function execution with quiet logging mode enabled
|
|
18
|
+
* Automatically restores previous environment state after execution
|
|
19
|
+
*
|
|
20
|
+
* @param fn - Async function to execute with quiet logging
|
|
21
|
+
* @param opts - Options for additional environment flags
|
|
22
|
+
* @returns Result of the wrapped function
|
|
23
|
+
*/
|
|
24
|
+
export declare function withQuietLogs<T>(fn: () => Promise<T>, opts?: {
|
|
25
|
+
cacheModelProfile?: boolean;
|
|
26
|
+
}): Promise<T>;
|
|
27
|
+
//# sourceMappingURL=path-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/path-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAST;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,OAAO,CAAC,CAAC,CAAC,CA2BZ"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for path resolution and normalization
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the project root path from various input options
|
|
6
|
+
* Supports multiple parameter names for backwards compatibility (project, directory, path)
|
|
7
|
+
*
|
|
8
|
+
* @param input - Object containing potential path parameters
|
|
9
|
+
* @returns Normalized path string, defaults to '.' if no path provided
|
|
10
|
+
*/
|
|
11
|
+
export function resolveProjectRoot(input) {
|
|
12
|
+
if (!input) {
|
|
13
|
+
return '.';
|
|
14
|
+
}
|
|
15
|
+
const rawPath = input.project || input.directory || input.path || '.';
|
|
16
|
+
const trimmed = typeof rawPath === 'string' ? rawPath.trim() : '.';
|
|
17
|
+
return trimmed.length > 0 ? trimmed : '.';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Wraps a function execution with quiet logging mode enabled
|
|
21
|
+
* Automatically restores previous environment state after execution
|
|
22
|
+
*
|
|
23
|
+
* @param fn - Async function to execute with quiet logging
|
|
24
|
+
* @param opts - Options for additional environment flags
|
|
25
|
+
* @returns Result of the wrapped function
|
|
26
|
+
*/
|
|
27
|
+
export async function withQuietLogs(fn, opts) {
|
|
28
|
+
const prevQuiet = process.env.CODEVAULT_QUIET;
|
|
29
|
+
const prevCache = process.env.CODEVAULT_MODEL_PROFILE_CACHED;
|
|
30
|
+
process.env.CODEVAULT_QUIET = 'true';
|
|
31
|
+
if (opts?.cacheModelProfile) {
|
|
32
|
+
process.env.CODEVAULT_MODEL_PROFILE_CACHED = 'true';
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
return await fn();
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
// Restore previous state
|
|
39
|
+
if (prevQuiet === undefined) {
|
|
40
|
+
delete process.env.CODEVAULT_QUIET;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
process.env.CODEVAULT_QUIET = prevQuiet;
|
|
44
|
+
}
|
|
45
|
+
if (opts?.cacheModelProfile) {
|
|
46
|
+
if (prevCache === undefined) {
|
|
47
|
+
delete process.env.CODEVAULT_MODEL_PROFILE_CACHED;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
process.env.CODEVAULT_MODEL_PROFILE_CACHED = prevCache;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=path-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-helpers.js","sourceRoot":"","sources":["../../src/utils/path-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAIlC;IACC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC;IACtE,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAEnE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAoB,EACpB,IAAsC;IAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;IACrC,IAAI,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,MAAM,CAAC;IACtD,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,yBAAyB;QACzB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,SAAS,CAAC;QAC1C,CAAC;QAED,IAAI,IAAI,EAAE,iBAAiB,EAAE,CAAC;YAC5B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,SAAS,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare class RateLimiter {
|
|
2
|
+
private rpm;
|
|
3
|
+
private tpm;
|
|
4
|
+
private queue;
|
|
5
|
+
private processing;
|
|
6
|
+
private requestTimes;
|
|
7
|
+
private tokenUsage;
|
|
8
|
+
private retryDelays;
|
|
9
|
+
private maxQueueSize;
|
|
10
|
+
constructor(requestsPerMinute?: number | null, tokensPerMinute?: number | null, maxQueueSize?: number);
|
|
11
|
+
private getDefaultRPM;
|
|
12
|
+
private getDefaultTPM;
|
|
13
|
+
private canMakeRequest;
|
|
14
|
+
private recordRequest;
|
|
15
|
+
private getDelayUntilNextSlot;
|
|
16
|
+
execute<T>(fn: () => Promise<T>, retryCount?: number, estimatedTokens?: number): Promise<T>;
|
|
17
|
+
private processQueue;
|
|
18
|
+
private isRateLimitError;
|
|
19
|
+
getStats(): {
|
|
20
|
+
rpm: number | null;
|
|
21
|
+
tpm: number | null;
|
|
22
|
+
queueLength: number;
|
|
23
|
+
maxQueueSize: number;
|
|
24
|
+
queueUtilization: string;
|
|
25
|
+
requestsInLastMinute: number;
|
|
26
|
+
tokensInLastMinute: number;
|
|
27
|
+
isRpmLimited: boolean;
|
|
28
|
+
isTpmLimited: boolean;
|
|
29
|
+
isLimited: boolean;
|
|
30
|
+
};
|
|
31
|
+
reset(): void;
|
|
32
|
+
}
|
|
33
|
+
export declare function createRateLimiter(providerName: string): RateLimiter;
|
|
34
|
+
//# sourceMappingURL=rate-limiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAaA,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,YAAY,CAAS;gBAEjB,iBAAiB,GAAE,MAAM,GAAG,IAAW,EAAE,eAAe,GAAE,MAAM,GAAG,IAAW,EAAE,YAAY,GAAE,MAAc;IAMxH,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,qBAAqB;IAsBvB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,SAAI,EAAE,eAAe,SAAI,GAAG,OAAO,CAAC,CAAC,CAAC;YAazE,YAAY;IAkD1B,OAAO,CAAC,gBAAgB;IAYxB,QAAQ;;;;;;;;;;;;IAqBR,KAAK,IAAI,IAAI;CAMd;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAYnE"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
export class RateLimiter {
|
|
2
|
+
rpm;
|
|
3
|
+
tpm;
|
|
4
|
+
queue = [];
|
|
5
|
+
processing = false;
|
|
6
|
+
requestTimes = [];
|
|
7
|
+
tokenUsage = [];
|
|
8
|
+
retryDelays = [1000, 2000, 5000, 10000];
|
|
9
|
+
// FIX: Add max queue size to prevent unbounded growth
|
|
10
|
+
maxQueueSize;
|
|
11
|
+
constructor(requestsPerMinute = null, tokensPerMinute = null, maxQueueSize = 10000) {
|
|
12
|
+
this.rpm = requestsPerMinute ?? this.getDefaultRPM();
|
|
13
|
+
this.tpm = tokensPerMinute ?? this.getDefaultTPM();
|
|
14
|
+
this.maxQueueSize = maxQueueSize;
|
|
15
|
+
}
|
|
16
|
+
getDefaultRPM() {
|
|
17
|
+
const envVar = process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT;
|
|
18
|
+
if (envVar) {
|
|
19
|
+
const limit = parseInt(envVar, 10);
|
|
20
|
+
if (!isNaN(limit) && limit > 0) {
|
|
21
|
+
return limit;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
getDefaultTPM() {
|
|
27
|
+
const envVar = process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_TPM || process.env.CODEVAULT_RATE_LIMIT_TPM;
|
|
28
|
+
if (envVar) {
|
|
29
|
+
const limit = parseInt(envVar, 10);
|
|
30
|
+
if (!isNaN(limit) && limit > 0) {
|
|
31
|
+
return limit;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
canMakeRequest(estimatedTokens = 0) {
|
|
37
|
+
const now = Date.now();
|
|
38
|
+
const oneMinuteAgo = now - 60000;
|
|
39
|
+
this.requestTimes = this.requestTimes.filter(time => time > oneMinuteAgo);
|
|
40
|
+
this.tokenUsage = this.tokenUsage.filter(entry => entry.time > oneMinuteAgo);
|
|
41
|
+
if (this.rpm !== null && this.requestTimes.length >= this.rpm) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
if (this.tpm !== null && estimatedTokens > 0) {
|
|
45
|
+
const tokensInLastMinute = this.tokenUsage.reduce((sum, entry) => sum + entry.tokens, 0);
|
|
46
|
+
if (tokensInLastMinute + estimatedTokens > this.tpm) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
recordRequest(tokensUsed = 0) {
|
|
53
|
+
const now = Date.now();
|
|
54
|
+
if (this.rpm !== null) {
|
|
55
|
+
this.requestTimes.push(now);
|
|
56
|
+
}
|
|
57
|
+
if (this.tpm !== null && tokensUsed > 0) {
|
|
58
|
+
this.tokenUsage.push({ time: now, tokens: tokensUsed });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
getDelayUntilNextSlot(estimatedTokens = 0) {
|
|
62
|
+
const now = Date.now();
|
|
63
|
+
let delay = 0;
|
|
64
|
+
if (this.rpm !== null && this.requestTimes.length > 0) {
|
|
65
|
+
const oldestRequest = this.requestTimes[0];
|
|
66
|
+
const rpmDelay = 60000 - (now - oldestRequest);
|
|
67
|
+
delay = Math.max(delay, rpmDelay);
|
|
68
|
+
}
|
|
69
|
+
if (this.tpm !== null && estimatedTokens > 0 && this.tokenUsage.length > 0) {
|
|
70
|
+
const tokensInLastMinute = this.tokenUsage.reduce((sum, entry) => sum + entry.tokens, 0);
|
|
71
|
+
if (tokensInLastMinute + estimatedTokens > this.tpm) {
|
|
72
|
+
const oldestToken = this.tokenUsage[0];
|
|
73
|
+
const tpmDelay = 60000 - (now - oldestToken.time);
|
|
74
|
+
delay = Math.max(delay, tpmDelay);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return Math.max(0, delay + 100);
|
|
78
|
+
}
|
|
79
|
+
async execute(fn, retryCount = 0, estimatedTokens = 0) {
|
|
80
|
+
return new Promise((resolve, reject) => {
|
|
81
|
+
// FIX: Reject if queue is at max capacity to prevent memory exhaustion
|
|
82
|
+
if (this.queue.length >= this.maxQueueSize) {
|
|
83
|
+
reject(new Error(`Rate limiter queue is full (${this.maxQueueSize} items). Too many concurrent requests.`));
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.queue.push({ fn, resolve, reject, retryCount, estimatedTokens });
|
|
87
|
+
void this.processQueue();
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
async processQueue() {
|
|
91
|
+
if (this.processing || this.queue.length === 0) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
this.processing = true;
|
|
95
|
+
while (this.queue.length > 0) {
|
|
96
|
+
const item = this.queue[0];
|
|
97
|
+
const { fn, resolve, reject, retryCount, estimatedTokens } = item;
|
|
98
|
+
while (!this.canMakeRequest(estimatedTokens || 0)) {
|
|
99
|
+
const delay = this.getDelayUntilNextSlot(estimatedTokens || 0);
|
|
100
|
+
if (delay > 0) {
|
|
101
|
+
await new Promise(r => setTimeout(r, delay));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
this.queue.shift();
|
|
105
|
+
try {
|
|
106
|
+
const result = await fn();
|
|
107
|
+
const tokensUsed = estimatedTokens || result?.usage?.total_tokens || 0;
|
|
108
|
+
this.recordRequest(tokensUsed);
|
|
109
|
+
resolve(result);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
if (this.isRateLimitError(error)) {
|
|
113
|
+
const maxRetries = this.retryDelays.length;
|
|
114
|
+
if (retryCount < maxRetries) {
|
|
115
|
+
const delay = this.retryDelays[retryCount];
|
|
116
|
+
console.warn(`⚠️ Rate limit hit (429). Retrying in ${delay}ms... (attempt ${retryCount + 1}/${maxRetries})`);
|
|
117
|
+
await new Promise(r => setTimeout(r, delay));
|
|
118
|
+
this.queue.unshift({ fn, resolve, reject, retryCount: retryCount + 1, estimatedTokens });
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
reject(new Error(`Rate limit exceeded after ${maxRetries} retries: ${error.message}`));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
reject(error);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
this.processing = false;
|
|
130
|
+
}
|
|
131
|
+
isRateLimitError(error) {
|
|
132
|
+
if (!error)
|
|
133
|
+
return false;
|
|
134
|
+
const message = error.message || '';
|
|
135
|
+
const status = error.status || error.statusCode || 0;
|
|
136
|
+
return status === 429 ||
|
|
137
|
+
message.includes('429') ||
|
|
138
|
+
message.includes('rate limit') ||
|
|
139
|
+
message.includes('too many requests');
|
|
140
|
+
}
|
|
141
|
+
getStats() {
|
|
142
|
+
const now = Date.now();
|
|
143
|
+
const oneMinuteAgo = now - 60000;
|
|
144
|
+
const tokensInLastMinute = this.tokenUsage
|
|
145
|
+
.filter(entry => entry.time > oneMinuteAgo)
|
|
146
|
+
.reduce((sum, entry) => sum + entry.tokens, 0);
|
|
147
|
+
return {
|
|
148
|
+
rpm: this.rpm,
|
|
149
|
+
tpm: this.tpm,
|
|
150
|
+
queueLength: this.queue.length,
|
|
151
|
+
maxQueueSize: this.maxQueueSize,
|
|
152
|
+
queueUtilization: ((this.queue.length / this.maxQueueSize) * 100).toFixed(1) + '%',
|
|
153
|
+
requestsInLastMinute: this.requestTimes.filter(t => t > oneMinuteAgo).length,
|
|
154
|
+
tokensInLastMinute,
|
|
155
|
+
isRpmLimited: this.rpm !== null,
|
|
156
|
+
isTpmLimited: this.tpm !== null,
|
|
157
|
+
isLimited: this.rpm !== null || this.tpm !== null
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
reset() {
|
|
161
|
+
this.queue = [];
|
|
162
|
+
this.requestTimes = [];
|
|
163
|
+
this.tokenUsage = [];
|
|
164
|
+
this.processing = false;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
export function createRateLimiter(providerName) {
|
|
168
|
+
const defaultLimits = {
|
|
169
|
+
'OpenAI': { rpm: 50, tpm: null },
|
|
170
|
+
'Qwen': { rpm: 10000, tpm: 600000 },
|
|
171
|
+
};
|
|
172
|
+
if (process.env.CODEVAULT_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT || process.env.CODEVAULT_RATE_LIMIT_TPM) {
|
|
173
|
+
return new RateLimiter();
|
|
174
|
+
}
|
|
175
|
+
const limits = defaultLimits[providerName] ?? { rpm: null, tpm: null };
|
|
176
|
+
return new RateLimiter(limits.rpm, limits.tpm);
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=rate-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-patterns.d.ts","sourceRoot":"","sources":["../../src/utils/scan-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAwBhC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default file and directory patterns to ignore during project scanning
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_SCAN_IGNORES = [
|
|
5
|
+
'**/vendor/**',
|
|
6
|
+
'**/node_modules/**',
|
|
7
|
+
'**/.git/**',
|
|
8
|
+
'**/storage/**',
|
|
9
|
+
'**/dist/**',
|
|
10
|
+
'**/build/**',
|
|
11
|
+
'**/tmp/**',
|
|
12
|
+
'**/temp/**',
|
|
13
|
+
'**/.npm/**',
|
|
14
|
+
'**/.yarn/**',
|
|
15
|
+
'**/Library/**',
|
|
16
|
+
'**/System/**',
|
|
17
|
+
'**/.Trash/**',
|
|
18
|
+
'**/.codevault/**',
|
|
19
|
+
'**/codevault.codemap.json',
|
|
20
|
+
'**/codevault.codemap.json.backup-*',
|
|
21
|
+
'**/package-lock.json',
|
|
22
|
+
'**/yarn.lock',
|
|
23
|
+
'**/pnpm-lock.yaml',
|
|
24
|
+
'**/*.json',
|
|
25
|
+
'**/*.sh',
|
|
26
|
+
'**/examples/**',
|
|
27
|
+
'**/assets/**'
|
|
28
|
+
];
|
|
29
|
+
//# sourceMappingURL=scan-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-patterns.js","sourceRoot":"","sources":["../../src/utils/scan-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,oBAAoB;IACpB,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,aAAa;IACb,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,eAAe;IACf,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,2BAA2B;IAC3B,oCAAoC;IACpC,sBAAsB;IACtB,cAAc;IACd,mBAAmB;IACnB,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,cAAc;CACf,CAAC"}
|