codevault 1.6.0 → 1.7.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/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 +178 -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 +401 -0
- package/dist/cli.js.map +1 -0
- package/dist/codemap/io.d.ts +6 -0
- package/dist/codemap/io.d.ts.map +1 -0
- package/dist/codemap/io.js +46 -0
- package/dist/codemap/io.js.map +1 -0
- package/dist/config/apply-env.d.ts +23 -0
- package/dist/config/apply-env.d.ts.map +1 -0
- package/dist/config/apply-env.js +89 -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/resolver.d.ts +30 -0
- package/dist/config/resolver.d.ts.map +1 -0
- package/dist/config/resolver.js +29 -0
- package/dist/config/resolver.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/IndexerEngine.d.ts +24 -0
- package/dist/core/IndexerEngine.d.ts.map +1 -0
- package/dist/core/IndexerEngine.js +372 -0
- package/dist/core/IndexerEngine.js.map +1 -0
- package/dist/core/SearchService.d.ts +25 -0
- package/dist/core/SearchService.d.ts.map +1 -0
- package/dist/core/SearchService.js +455 -0
- package/dist/core/SearchService.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 +192 -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 +6 -0
- package/dist/core/indexer.js.map +1 -0
- package/dist/core/indexing/chunk-pipeline.d.ts +39 -0
- package/dist/core/indexing/chunk-pipeline.d.ts.map +1 -0
- package/dist/core/indexing/chunk-pipeline.js +210 -0
- package/dist/core/indexing/chunk-pipeline.js.map +1 -0
- package/dist/core/indexing/file-scanner.d.ts +11 -0
- package/dist/core/indexing/file-scanner.d.ts.map +1 -0
- package/dist/core/indexing/file-scanner.js +49 -0
- package/dist/core/indexing/file-scanner.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 +16 -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 +101 -0
- package/dist/database/db.d.ts.map +1 -0
- package/dist/database/db.js +326 -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 +224 -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/handlers/context.d.ts +15 -0
- package/dist/mcp/handlers/context.d.ts.map +1 -0
- package/dist/mcp/handlers/context.js +31 -0
- package/dist/mcp/handlers/context.js.map +1 -0
- package/dist/mcp/handlers/index.d.ts +5 -0
- package/dist/mcp/handlers/index.d.ts.map +1 -0
- package/dist/mcp/handlers/index.js +5 -0
- package/dist/mcp/handlers/index.js.map +1 -0
- package/dist/mcp/handlers/project.d.ts +41 -0
- package/dist/mcp/handlers/project.d.ts.map +1 -0
- package/dist/mcp/handlers/project.js +76 -0
- package/dist/mcp/handlers/project.js.map +1 -0
- package/dist/mcp/handlers/search.d.ts +27 -0
- package/dist/mcp/handlers/search.d.ts.map +1 -0
- package/dist/mcp/handlers/search.js +108 -0
- package/dist/mcp/handlers/search.js.map +1 -0
- package/dist/mcp/handlers/synthesis.d.ts +15 -0
- package/dist/mcp/handlers/synthesis.d.ts.map +1 -0
- package/dist/mcp/handlers/synthesis.js +58 -0
- package/dist/mcp/handlers/synthesis.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 +13 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +263 -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 +35 -0
- package/dist/providers/chat-llm.d.ts.map +1 -0
- package/dist/providers/chat-llm.js +98 -0
- package/dist/providers/chat-llm.js.map +1 -0
- package/dist/providers/index.d.ts +6 -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 +18 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +132 -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 +137 -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 +289 -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 +213 -0
- package/dist/synthesis/synthesizer.js.map +1 -0
- package/dist/tests/rate-limiter.test.d.ts +2 -0
- package/dist/tests/rate-limiter.test.d.ts.map +1 -0
- package/dist/tests/rate-limiter.test.js +11 -0
- package/dist/tests/rate-limiter.test.js.map +1 -0
- package/dist/tests/search-normalization.test.d.ts +2 -0
- package/dist/tests/search-normalization.test.d.ts.map +1 -0
- package/dist/tests/search-normalization.test.js +9 -0
- package/dist/tests/search-normalization.test.js.map +1 -0
- package/dist/tests/semantic-chunker.test.d.ts +2 -0
- package/dist/tests/semantic-chunker.test.d.ts.map +1 -0
- package/dist/tests/semantic-chunker.test.js +48 -0
- package/dist/tests/semantic-chunker.test.js.map +1 -0
- package/dist/tests/simple-lru.test.d.ts +2 -0
- package/dist/tests/simple-lru.test.d.ts.map +1 -0
- package/dist/tests/simple-lru.test.js +21 -0
- package/dist/tests/simple-lru.test.js.map +1 -0
- package/dist/tests/symbol-boost.test.d.ts +2 -0
- package/dist/tests/symbol-boost.test.d.ts.map +1 -0
- package/dist/tests/symbol-boost.test.js +21 -0
- package/dist/tests/symbol-boost.test.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/dist/utils/simple-lru.d.ts +10 -0
- package/dist/utils/simple-lru.d.ts.map +1 -0
- package/dist/utils/simple-lru.js +38 -0
- package/dist/utils/simple-lru.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logging utility for CodeVault
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent logging with levels, structured metadata, and
|
|
5
|
+
* environment-based configuration.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum LogLevel {
|
|
8
|
+
DEBUG = 0,
|
|
9
|
+
INFO = 1,
|
|
10
|
+
WARN = 2,
|
|
11
|
+
ERROR = 3,
|
|
12
|
+
SILENT = 4
|
|
13
|
+
}
|
|
14
|
+
interface LogMetadata {
|
|
15
|
+
[key: string]: any;
|
|
16
|
+
}
|
|
17
|
+
declare class Logger {
|
|
18
|
+
private level;
|
|
19
|
+
private quiet;
|
|
20
|
+
constructor();
|
|
21
|
+
private parseLogLevel;
|
|
22
|
+
private shouldLog;
|
|
23
|
+
private formatMessage;
|
|
24
|
+
debug(message: string, meta?: LogMetadata): void;
|
|
25
|
+
info(message: string, meta?: LogMetadata): void;
|
|
26
|
+
warn(message: string, meta?: LogMetadata): void;
|
|
27
|
+
error(message: string, error?: Error | any, meta?: LogMetadata): void;
|
|
28
|
+
/**
|
|
29
|
+
* Check if quiet mode is enabled
|
|
30
|
+
*/
|
|
31
|
+
isQuiet(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Set quiet mode (suppresses INFO and DEBUG)
|
|
34
|
+
*/
|
|
35
|
+
setQuiet(quiet: boolean): void;
|
|
36
|
+
/**
|
|
37
|
+
* Set log level
|
|
38
|
+
*/
|
|
39
|
+
setLevel(level: LogLevel): void;
|
|
40
|
+
/**
|
|
41
|
+
* Get current log level
|
|
42
|
+
*/
|
|
43
|
+
getLevel(): LogLevel;
|
|
44
|
+
}
|
|
45
|
+
export declare const logger: Logger;
|
|
46
|
+
export declare const log: {
|
|
47
|
+
debug: (message: string, meta?: LogMetadata) => void;
|
|
48
|
+
info: (message: string, meta?: LogMetadata) => void;
|
|
49
|
+
warn: (message: string, meta?: LogMetadata) => void;
|
|
50
|
+
error: (message: string, error?: Error | any, meta?: LogMetadata) => void;
|
|
51
|
+
isQuiet: () => boolean;
|
|
52
|
+
setQuiet: (quiet: boolean) => void;
|
|
53
|
+
};
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;IACT,MAAM,IAAI;CACX;AAED,UAAU,WAAW;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,KAAK,CAAU;;IAOvB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;IAYrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI;IAKhD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI;IAK/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI;IAK/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI;IAiBrE;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAO9B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B;;OAEG;IACH,QAAQ,IAAI,QAAQ;CAGrB;AAGD,eAAO,MAAM,MAAM,QAAe,CAAC;AAGnC,eAAO,MAAM,GAAG;qBACG,MAAM,SAAS,WAAW;oBAC3B,MAAM,SAAS,WAAW;oBAC1B,MAAM,SAAS,WAAW;qBACzB,MAAM,UAAU,KAAK,GAAG,GAAG,SAAS,WAAW;;sBAG9C,OAAO;CAC1B,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logging utility for CodeVault
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent logging with levels, structured metadata, and
|
|
5
|
+
* environment-based configuration.
|
|
6
|
+
*/
|
|
7
|
+
export var LogLevel;
|
|
8
|
+
(function (LogLevel) {
|
|
9
|
+
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
|
|
10
|
+
LogLevel[LogLevel["INFO"] = 1] = "INFO";
|
|
11
|
+
LogLevel[LogLevel["WARN"] = 2] = "WARN";
|
|
12
|
+
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
|
|
13
|
+
LogLevel[LogLevel["SILENT"] = 4] = "SILENT";
|
|
14
|
+
})(LogLevel || (LogLevel = {}));
|
|
15
|
+
class Logger {
|
|
16
|
+
level;
|
|
17
|
+
quiet;
|
|
18
|
+
constructor() {
|
|
19
|
+
this.quiet = process.env.CODEVAULT_QUIET === 'true';
|
|
20
|
+
this.level = this.parseLogLevel(process.env.CODEVAULT_LOG_LEVEL);
|
|
21
|
+
}
|
|
22
|
+
parseLogLevel(level) {
|
|
23
|
+
if (!level)
|
|
24
|
+
return this.quiet ? LogLevel.ERROR : LogLevel.INFO;
|
|
25
|
+
switch (level.toLowerCase()) {
|
|
26
|
+
case 'debug':
|
|
27
|
+
return LogLevel.DEBUG;
|
|
28
|
+
case 'info':
|
|
29
|
+
return LogLevel.INFO;
|
|
30
|
+
case 'warn':
|
|
31
|
+
return LogLevel.WARN;
|
|
32
|
+
case 'error':
|
|
33
|
+
return LogLevel.ERROR;
|
|
34
|
+
case 'silent':
|
|
35
|
+
return LogLevel.SILENT;
|
|
36
|
+
default:
|
|
37
|
+
return LogLevel.INFO;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
shouldLog(level) {
|
|
41
|
+
return level >= this.level;
|
|
42
|
+
}
|
|
43
|
+
formatMessage(level, message, meta) {
|
|
44
|
+
const timestamp = new Date().toISOString();
|
|
45
|
+
const prefix = `[${timestamp}] [${level}]`;
|
|
46
|
+
if (meta && Object.keys(meta).length > 0) {
|
|
47
|
+
const metaStr = JSON.stringify(meta);
|
|
48
|
+
return `${prefix} ${message} ${metaStr}`;
|
|
49
|
+
}
|
|
50
|
+
return `${prefix} ${message}`;
|
|
51
|
+
}
|
|
52
|
+
debug(message, meta) {
|
|
53
|
+
if (!this.shouldLog(LogLevel.DEBUG))
|
|
54
|
+
return;
|
|
55
|
+
console.log(this.formatMessage('DEBUG', message, meta));
|
|
56
|
+
}
|
|
57
|
+
info(message, meta) {
|
|
58
|
+
if (!this.shouldLog(LogLevel.INFO))
|
|
59
|
+
return;
|
|
60
|
+
console.log(this.formatMessage('INFO', message, meta));
|
|
61
|
+
}
|
|
62
|
+
warn(message, meta) {
|
|
63
|
+
if (!this.shouldLog(LogLevel.WARN))
|
|
64
|
+
return;
|
|
65
|
+
console.warn(this.formatMessage('WARN', message, meta));
|
|
66
|
+
}
|
|
67
|
+
error(message, error, meta) {
|
|
68
|
+
if (!this.shouldLog(LogLevel.ERROR))
|
|
69
|
+
return;
|
|
70
|
+
const errorMeta = {
|
|
71
|
+
...meta,
|
|
72
|
+
...(error instanceof Error
|
|
73
|
+
? {
|
|
74
|
+
errorMessage: error.message,
|
|
75
|
+
errorStack: error.stack,
|
|
76
|
+
errorName: error.name,
|
|
77
|
+
}
|
|
78
|
+
: { error: String(error) }),
|
|
79
|
+
};
|
|
80
|
+
console.error(this.formatMessage('ERROR', message, errorMeta));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if quiet mode is enabled
|
|
84
|
+
*/
|
|
85
|
+
isQuiet() {
|
|
86
|
+
return this.quiet;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Set quiet mode (suppresses INFO and DEBUG)
|
|
90
|
+
*/
|
|
91
|
+
setQuiet(quiet) {
|
|
92
|
+
this.quiet = quiet;
|
|
93
|
+
if (quiet && this.level < LogLevel.WARN) {
|
|
94
|
+
this.level = LogLevel.WARN;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Set log level
|
|
99
|
+
*/
|
|
100
|
+
setLevel(level) {
|
|
101
|
+
this.level = level;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get current log level
|
|
105
|
+
*/
|
|
106
|
+
getLevel() {
|
|
107
|
+
return this.level;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Export singleton instance
|
|
111
|
+
export const logger = new Logger();
|
|
112
|
+
// Export convenience functions
|
|
113
|
+
export const log = {
|
|
114
|
+
debug: (message, meta) => logger.debug(message, meta),
|
|
115
|
+
info: (message, meta) => logger.info(message, meta),
|
|
116
|
+
warn: (message, meta) => logger.warn(message, meta),
|
|
117
|
+
error: (message, error, meta) => logger.error(message, error, meta),
|
|
118
|
+
isQuiet: () => logger.isQuiet(),
|
|
119
|
+
setQuiet: (quiet) => logger.setQuiet(quiet),
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;IACT,2CAAU,CAAA;AACZ,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAMD,MAAM,MAAM;IACF,KAAK,CAAW;IAChB,KAAK,CAAU;IAEvB;QACE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnE,CAAC;IAEO,aAAa,CAAC,KAAc;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAE/D,QAAQ,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,KAAK,OAAO;gBACV,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,KAAK,OAAO;gBACV,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC,MAAM,CAAC;YACzB;gBACE,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,OAAe,EAAE,IAAkB;QACtE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,SAAS,MAAM,KAAK,GAAG,CAAC;QAE3C,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,GAAG,MAAM,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QAC3C,CAAC;QAED,OAAO,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAkB;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO;QAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAkB;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAkB;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO;QAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAmB,EAAE,IAAkB;QAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO;QAE5C,MAAM,SAAS,GAAG;YAChB,GAAG,IAAI;YACP,GAAG,CAAC,KAAK,YAAY,KAAK;gBACxB,CAAC,CAAC;oBACE,YAAY,EAAE,KAAK,CAAC,OAAO;oBAC3B,UAAU,EAAE,KAAK,CAAC,KAAK;oBACvB,SAAS,EAAE,KAAK,CAAC,IAAI;iBACtB;gBACH,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SAC9B,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAe;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAEnC,+BAA+B;AAC/B,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,KAAK,EAAE,CAAC,OAAe,EAAE,IAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IAC3E,IAAI,EAAE,CAAC,OAAe,EAAE,IAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;IACzE,IAAI,EAAE,CAAC,OAAe,EAAE,IAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;IACzE,KAAK,EAAE,CAAC,OAAe,EAAE,KAAmB,EAAE,IAAkB,EAAE,EAAE,CAClE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;IACpC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;IAC/B,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;CACrD,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
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 declare class Mutex {
|
|
8
|
+
private locked;
|
|
9
|
+
private queue;
|
|
10
|
+
/**
|
|
11
|
+
* Check if the mutex is currently locked
|
|
12
|
+
*/
|
|
13
|
+
isLocked(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Acquire the mutex lock
|
|
16
|
+
* Waits if already locked
|
|
17
|
+
*/
|
|
18
|
+
acquire(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Release the mutex lock
|
|
21
|
+
* Allows next queued operation to proceed
|
|
22
|
+
*/
|
|
23
|
+
release(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Run a function with automatic acquire/release
|
|
26
|
+
* Ensures lock is always released even if function throws
|
|
27
|
+
*/
|
|
28
|
+
runExclusive<T>(fn: () => Promise<T>): Promise<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Get queue length (for debugging)
|
|
31
|
+
*/
|
|
32
|
+
getQueueLength(): number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Async semaphore for limiting concurrent operations
|
|
36
|
+
*/
|
|
37
|
+
export declare class Semaphore {
|
|
38
|
+
private permits;
|
|
39
|
+
private maxPermits;
|
|
40
|
+
private queue;
|
|
41
|
+
constructor(permits: number);
|
|
42
|
+
/**
|
|
43
|
+
* Acquire a permit
|
|
44
|
+
*/
|
|
45
|
+
acquire(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Release a permit
|
|
48
|
+
*/
|
|
49
|
+
release(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Run function with automatic acquire/release
|
|
52
|
+
*/
|
|
53
|
+
runExclusive<T>(fn: () => Promise<T>): Promise<T>;
|
|
54
|
+
/**
|
|
55
|
+
* Get available permits
|
|
56
|
+
*/
|
|
57
|
+
getAvailablePermits(): number;
|
|
58
|
+
/**
|
|
59
|
+
* Get queue length
|
|
60
|
+
*/
|
|
61
|
+
getQueueLength(): number;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=mutex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../../src/utils/mutex.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAyB;IAEtC;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B;;;OAGG;IACH,OAAO,IAAI,IAAI;IASf;;;OAGG;IACG,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASvD;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAyB;gBAE1B,OAAO,EAAE,MAAM;IAK3B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;OAEG;IACG,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASvD;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB"}
|
|
@@ -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"}
|