codevault 1.4.1 → 1.6.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/.env.example +79 -44
- package/README.md +115 -343
- package/package.json +4 -4
- package/dist/chunking/file-grouper.d.ts +0 -39
- package/dist/chunking/file-grouper.d.ts.map +0 -1
- package/dist/chunking/file-grouper.js +0 -181
- package/dist/chunking/file-grouper.js.map +0 -1
- package/dist/chunking/semantic-chunker.d.ts +0 -37
- package/dist/chunking/semantic-chunker.d.ts.map +0 -1
- package/dist/chunking/semantic-chunker.js +0 -172
- package/dist/chunking/semantic-chunker.js.map +0 -1
- package/dist/chunking/token-counter.d.ts +0 -28
- package/dist/chunking/token-counter.d.ts.map +0 -1
- package/dist/chunking/token-counter.js +0 -207
- package/dist/chunking/token-counter.js.map +0 -1
- package/dist/cli/commands/ask-cmd.d.ts +0 -3
- package/dist/cli/commands/ask-cmd.d.ts.map +0 -1
- package/dist/cli/commands/ask-cmd.js +0 -130
- package/dist/cli/commands/ask-cmd.js.map +0 -1
- package/dist/cli/commands/config-cmd.d.ts +0 -3
- package/dist/cli/commands/config-cmd.d.ts.map +0 -1
- package/dist/cli/commands/config-cmd.js +0 -245
- package/dist/cli/commands/config-cmd.js.map +0 -1
- package/dist/cli/commands/context.d.ts +0 -3
- package/dist/cli/commands/context.d.ts.map +0 -1
- package/dist/cli/commands/context.js +0 -98
- package/dist/cli/commands/context.js.map +0 -1
- package/dist/cli/commands/interactive-config.d.ts +0 -2
- package/dist/cli/commands/interactive-config.d.ts.map +0 -1
- package/dist/cli/commands/interactive-config.js +0 -304
- package/dist/cli/commands/interactive-config.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -398
- package/dist/cli.js.map +0 -1
- package/dist/codemap/io.d.ts +0 -5
- package/dist/codemap/io.d.ts.map +0 -1
- package/dist/codemap/io.js +0 -30
- package/dist/codemap/io.js.map +0 -1
- package/dist/config/apply-env.d.ts +0 -15
- package/dist/config/apply-env.d.ts.map +0 -1
- package/dist/config/apply-env.js +0 -107
- package/dist/config/apply-env.js.map +0 -1
- package/dist/config/loader.d.ts +0 -57
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -304
- package/dist/config/loader.js.map +0 -1
- package/dist/config/types.d.ts +0 -48
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -2
- package/dist/config/types.js.map +0 -1
- package/dist/context/packs.d.ts +0 -33
- package/dist/context/packs.d.ts.map +0 -1
- package/dist/context/packs.js +0 -180
- package/dist/context/packs.js.map +0 -1
- package/dist/core/batch-indexer.d.ts +0 -44
- package/dist/core/batch-indexer.d.ts.map +0 -1
- package/dist/core/batch-indexer.js +0 -161
- package/dist/core/batch-indexer.js.map +0 -1
- package/dist/core/indexer.d.ts +0 -3
- package/dist/core/indexer.d.ts.map +0 -1
- package/dist/core/indexer.js +0 -624
- package/dist/core/indexer.js.map +0 -1
- package/dist/core/metadata.d.ts +0 -19
- package/dist/core/metadata.d.ts.map +0 -1
- package/dist/core/metadata.js +0 -161
- package/dist/core/metadata.js.map +0 -1
- package/dist/core/search.d.ts +0 -7
- package/dist/core/search.d.ts.map +0 -1
- package/dist/core/search.js +0 -542
- package/dist/core/search.js.map +0 -1
- package/dist/core/symbol-extractor.d.ts +0 -3
- package/dist/core/symbol-extractor.d.ts.map +0 -1
- package/dist/core/symbol-extractor.js +0 -78
- package/dist/core/symbol-extractor.js.map +0 -1
- package/dist/core/types.d.ts +0 -104
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -2
- package/dist/core/types.js.map +0 -1
- package/dist/database/db.d.ts +0 -63
- package/dist/database/db.d.ts.map +0 -1
- package/dist/database/db.js +0 -205
- package/dist/database/db.js.map +0 -1
- package/dist/indexer/merkle.d.ts +0 -13
- package/dist/indexer/merkle.d.ts.map +0 -1
- package/dist/indexer/merkle.js +0 -86
- package/dist/indexer/merkle.js.map +0 -1
- package/dist/indexer/update.d.ts +0 -19
- package/dist/indexer/update.d.ts.map +0 -1
- package/dist/indexer/update.js +0 -40
- package/dist/indexer/update.js.map +0 -1
- package/dist/indexer/watch.d.ts +0 -21
- package/dist/indexer/watch.d.ts.map +0 -1
- package/dist/indexer/watch.js +0 -222
- package/dist/indexer/watch.js.map +0 -1
- package/dist/languages/rules.d.ts +0 -11
- package/dist/languages/rules.d.ts.map +0 -1
- package/dist/languages/rules.js +0 -371
- package/dist/languages/rules.js.map +0 -1
- package/dist/languages/tree-sitter-loader.d.ts +0 -27
- package/dist/languages/tree-sitter-loader.d.ts.map +0 -1
- package/dist/languages/tree-sitter-loader.js +0 -76
- package/dist/languages/tree-sitter-loader.js.map +0 -1
- package/dist/mcp/tools/ask-codebase.d.ts +0 -85
- package/dist/mcp/tools/ask-codebase.d.ts.map +0 -1
- package/dist/mcp/tools/ask-codebase.js +0 -125
- package/dist/mcp/tools/ask-codebase.js.map +0 -1
- package/dist/mcp/tools/use-context-pack.d.ts +0 -57
- package/dist/mcp/tools/use-context-pack.d.ts.map +0 -1
- package/dist/mcp/tools/use-context-pack.js +0 -91
- package/dist/mcp/tools/use-context-pack.js.map +0 -1
- package/dist/mcp-server.d.ts +0 -3
- package/dist/mcp-server.d.ts.map +0 -1
- package/dist/mcp-server.js +0 -518
- package/dist/mcp-server.js.map +0 -1
- package/dist/providers/base.d.ts +0 -39
- package/dist/providers/base.d.ts.map +0 -1
- package/dist/providers/base.js +0 -199
- package/dist/providers/base.js.map +0 -1
- package/dist/providers/chat-llm.d.ts +0 -41
- package/dist/providers/chat-llm.d.ts.map +0 -1
- package/dist/providers/chat-llm.js +0 -155
- package/dist/providers/chat-llm.js.map +0 -1
- package/dist/providers/index.d.ts +0 -6
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -23
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/ollama.d.ts +0 -13
- package/dist/providers/ollama.d.ts.map +0 -1
- package/dist/providers/ollama.js +0 -50
- package/dist/providers/ollama.js.map +0 -1
- package/dist/providers/openai.d.ts +0 -14
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/providers/openai.js +0 -122
- package/dist/providers/openai.js.map +0 -1
- package/dist/providers/token-counter.d.ts +0 -2
- package/dist/providers/token-counter.d.ts.map +0 -1
- package/dist/providers/token-counter.js +0 -18
- package/dist/providers/token-counter.js.map +0 -1
- package/dist/ranking/api-reranker.d.ts +0 -18
- package/dist/ranking/api-reranker.d.ts.map +0 -1
- package/dist/ranking/api-reranker.js +0 -134
- package/dist/ranking/api-reranker.js.map +0 -1
- package/dist/ranking/symbol-boost.d.ts +0 -15
- package/dist/ranking/symbol-boost.d.ts.map +0 -1
- package/dist/ranking/symbol-boost.js +0 -154
- package/dist/ranking/symbol-boost.js.map +0 -1
- package/dist/search/bm25.d.ts +0 -17
- package/dist/search/bm25.d.ts.map +0 -1
- package/dist/search/bm25.js +0 -56
- package/dist/search/bm25.js.map +0 -1
- package/dist/search/hybrid.d.ts +0 -21
- package/dist/search/hybrid.d.ts.map +0 -1
- package/dist/search/hybrid.js +0 -50
- package/dist/search/hybrid.js.map +0 -1
- package/dist/search/scope.d.ts +0 -5
- package/dist/search/scope.d.ts.map +0 -1
- package/dist/search/scope.js +0 -107
- package/dist/search/scope.js.map +0 -1
- package/dist/storage/encrypted-chunks.d.ts +0 -40
- package/dist/storage/encrypted-chunks.d.ts.map +0 -1
- package/dist/storage/encrypted-chunks.js +0 -237
- package/dist/storage/encrypted-chunks.js.map +0 -1
- package/dist/symbols/extract.d.ts +0 -15
- package/dist/symbols/extract.d.ts.map +0 -1
- package/dist/symbols/extract.js +0 -187
- package/dist/symbols/extract.js.map +0 -1
- package/dist/symbols/graph.d.ts +0 -3
- package/dist/symbols/graph.d.ts.map +0 -1
- package/dist/symbols/graph.js +0 -89
- package/dist/symbols/graph.js.map +0 -1
- package/dist/synthesis/markdown-formatter.d.ts +0 -13
- package/dist/synthesis/markdown-formatter.d.ts.map +0 -1
- package/dist/synthesis/markdown-formatter.js +0 -104
- package/dist/synthesis/markdown-formatter.js.map +0 -1
- package/dist/synthesis/prompt-builder.d.ts +0 -21
- package/dist/synthesis/prompt-builder.d.ts.map +0 -1
- package/dist/synthesis/prompt-builder.js +0 -129
- package/dist/synthesis/prompt-builder.js.map +0 -1
- package/dist/synthesis/synthesizer.d.ts +0 -30
- package/dist/synthesis/synthesizer.d.ts.map +0 -1
- package/dist/synthesis/synthesizer.js +0 -210
- package/dist/synthesis/synthesizer.js.map +0 -1
- package/dist/types/ast.d.ts +0 -3
- package/dist/types/ast.d.ts.map +0 -1
- package/dist/types/ast.js +0 -2
- package/dist/types/ast.js.map +0 -1
- package/dist/types/codemap.d.ts +0 -58
- package/dist/types/codemap.d.ts.map +0 -1
- package/dist/types/codemap.js +0 -224
- package/dist/types/codemap.js.map +0 -1
- package/dist/types/context-pack.d.ts +0 -47
- package/dist/types/context-pack.d.ts.map +0 -1
- package/dist/types/context-pack.js +0 -44
- package/dist/types/context-pack.js.map +0 -1
- package/dist/types/search.d.ts +0 -15
- package/dist/types/search.d.ts.map +0 -1
- package/dist/types/search.js +0 -11
- package/dist/types/search.js.map +0 -1
- package/dist/utils/cli-ui.d.ts +0 -44
- package/dist/utils/cli-ui.d.ts.map +0 -1
- package/dist/utils/cli-ui.js +0 -139
- package/dist/utils/cli-ui.js.map +0 -1
- package/dist/utils/indexer-with-progress.d.ts +0 -10
- package/dist/utils/indexer-with-progress.d.ts.map +0 -1
- package/dist/utils/indexer-with-progress.js +0 -58
- package/dist/utils/indexer-with-progress.js.map +0 -1
- package/dist/utils/rate-limiter.d.ts +0 -34
- package/dist/utils/rate-limiter.d.ts.map +0 -1
- package/dist/utils/rate-limiter.js +0 -179
- package/dist/utils/rate-limiter.js.map +0 -1
package/dist/config/loader.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { CodevaultConfig, ConfigSource } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Read global configuration from ~/.codevault/config.json
|
|
4
|
-
* @readonly Never modifies files
|
|
5
|
-
*/
|
|
6
|
-
export declare function readGlobalConfig(): CodevaultConfig | null;
|
|
7
|
-
/**
|
|
8
|
-
* Read project-local configuration from .codevault/config.json
|
|
9
|
-
* @readonly Never modifies files
|
|
10
|
-
*/
|
|
11
|
-
export declare function readProjectConfig(basePath?: string): CodevaultConfig | null;
|
|
12
|
-
/**
|
|
13
|
-
* Read configuration from environment variables
|
|
14
|
-
* @readonly Never modifies files or environment
|
|
15
|
-
*/
|
|
16
|
-
export declare function readEnvConfig(): CodevaultConfig;
|
|
17
|
-
/**
|
|
18
|
-
* Load merged configuration from all sources
|
|
19
|
-
* Priority: env > project > global
|
|
20
|
-
*
|
|
21
|
-
* @readonly Never modifies config files
|
|
22
|
-
* @param basePath Project path for project-local config
|
|
23
|
-
* @returns Merged configuration (in-memory only)
|
|
24
|
-
*/
|
|
25
|
-
export declare function loadConfig(basePath?: string): CodevaultConfig;
|
|
26
|
-
/**
|
|
27
|
-
* Get configuration sources for debugging
|
|
28
|
-
* @readonly Never modifies files
|
|
29
|
-
*/
|
|
30
|
-
export declare function getConfigSources(basePath?: string): ConfigSource;
|
|
31
|
-
/**
|
|
32
|
-
* Write global configuration (CLI only)
|
|
33
|
-
* This is the ONLY function that writes to disk
|
|
34
|
-
*/
|
|
35
|
-
export declare function saveGlobalConfig(config: CodevaultConfig): void;
|
|
36
|
-
/**
|
|
37
|
-
* Write project-local configuration (CLI only)
|
|
38
|
-
* This is the ONLY function that writes project config
|
|
39
|
-
*/
|
|
40
|
-
export declare function saveProjectConfig(config: CodevaultConfig, basePath?: string): void;
|
|
41
|
-
/**
|
|
42
|
-
* Check if global config exists
|
|
43
|
-
*/
|
|
44
|
-
export declare function hasGlobalConfig(): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Check if project config exists
|
|
47
|
-
*/
|
|
48
|
-
export declare function hasProjectConfig(basePath?: string): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Get global config file path
|
|
51
|
-
*/
|
|
52
|
-
export declare function getGlobalConfigPath(): string;
|
|
53
|
-
/**
|
|
54
|
-
* Get project config file path
|
|
55
|
-
*/
|
|
56
|
-
export declare function getProjectConfigPath(basePath?: string): string;
|
|
57
|
-
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMhE;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,GAAG,IAAI,CAWzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,SAAM,GAAG,eAAe,GAAG,IAAI,CAYxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,eAAe,CAqI/C;AAiFD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,QAAQ,SAAM,GAAG,eAAe,CAO1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,SAAM,GAAG,YAAY,CAM7D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAQ9D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,SAAM,GAAG,IAAI,CAW/E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,SAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,SAAM,GAAG,MAAM,CAE3D"}
|
package/dist/config/loader.js
DELETED
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import os from 'os';
|
|
4
|
-
const GLOBAL_CONFIG_DIR = path.join(os.homedir(), '.codevault');
|
|
5
|
-
const GLOBAL_CONFIG_FILE = path.join(GLOBAL_CONFIG_DIR, 'config.json');
|
|
6
|
-
const PROJECT_CONFIG_FILE = '.codevault/config.json';
|
|
7
|
-
/**
|
|
8
|
-
* Read global configuration from ~/.codevault/config.json
|
|
9
|
-
* @readonly Never modifies files
|
|
10
|
-
*/
|
|
11
|
-
export function readGlobalConfig() {
|
|
12
|
-
try {
|
|
13
|
-
if (!fs.existsSync(GLOBAL_CONFIG_FILE)) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
const content = fs.readFileSync(GLOBAL_CONFIG_FILE, 'utf8');
|
|
17
|
-
return JSON.parse(content);
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
console.warn(`Warning: Failed to read global config: ${error.message}`);
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Read project-local configuration from .codevault/config.json
|
|
26
|
-
* @readonly Never modifies files
|
|
27
|
-
*/
|
|
28
|
-
export function readProjectConfig(basePath = '.') {
|
|
29
|
-
try {
|
|
30
|
-
const configPath = path.join(path.resolve(basePath), PROJECT_CONFIG_FILE);
|
|
31
|
-
if (!fs.existsSync(configPath)) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
const content = fs.readFileSync(configPath, 'utf8');
|
|
35
|
-
return JSON.parse(content);
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
console.warn(`Warning: Failed to read project config: ${error.message}`);
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Read configuration from environment variables
|
|
44
|
-
* @readonly Never modifies files or environment
|
|
45
|
-
*/
|
|
46
|
-
export function readEnvConfig() {
|
|
47
|
-
const config = {};
|
|
48
|
-
// Provider settings - New variables with backward compatibility
|
|
49
|
-
if (process.env.CODEVAULT_EMBEDDING_API_KEY || process.env.OPENAI_API_KEY) {
|
|
50
|
-
config.providers = config.providers || {};
|
|
51
|
-
config.providers.openai = config.providers.openai || {};
|
|
52
|
-
config.providers.openai.apiKey = process.env.CODEVAULT_EMBEDDING_API_KEY || process.env.OPENAI_API_KEY;
|
|
53
|
-
}
|
|
54
|
-
if (process.env.CODEVAULT_EMBEDDING_BASE_URL || process.env.OPENAI_BASE_URL) {
|
|
55
|
-
config.providers = config.providers || {};
|
|
56
|
-
config.providers.openai = config.providers.openai || {};
|
|
57
|
-
config.providers.openai.baseUrl = process.env.CODEVAULT_EMBEDDING_BASE_URL || process.env.OPENAI_BASE_URL;
|
|
58
|
-
}
|
|
59
|
-
if (process.env.CODEVAULT_EMBEDDING_MODEL || process.env.CODEVAULT_OPENAI_EMBEDDING_MODEL || process.env.OPENAI_MODEL) {
|
|
60
|
-
config.providers = config.providers || {};
|
|
61
|
-
config.providers.openai = config.providers.openai || {};
|
|
62
|
-
config.providers.openai.model = process.env.CODEVAULT_EMBEDDING_MODEL || process.env.CODEVAULT_OPENAI_EMBEDDING_MODEL || process.env.OPENAI_MODEL;
|
|
63
|
-
}
|
|
64
|
-
if (process.env.CODEVAULT_OLLAMA_EMBEDDING_MODEL || process.env.CODEVAULT_OLLAMA_MODEL) {
|
|
65
|
-
config.providers = config.providers || {};
|
|
66
|
-
config.providers.ollama = config.providers.ollama || {};
|
|
67
|
-
config.providers.ollama.model = process.env.CODEVAULT_OLLAMA_EMBEDDING_MODEL || process.env.CODEVAULT_OLLAMA_MODEL;
|
|
68
|
-
}
|
|
69
|
-
// Dimensions - New variable with backward compatibility
|
|
70
|
-
if (process.env.CODEVAULT_EMBEDDING_DIMENSIONS || process.env.CODEVAULT_DIMENSIONS) {
|
|
71
|
-
const dims = parseInt(process.env.CODEVAULT_EMBEDDING_DIMENSIONS || process.env.CODEVAULT_DIMENSIONS || '0', 10);
|
|
72
|
-
if (!isNaN(dims) && dims > 0) {
|
|
73
|
-
if (config.providers?.openai) {
|
|
74
|
-
config.providers.openai.dimensions = dims;
|
|
75
|
-
}
|
|
76
|
-
if (config.providers?.ollama) {
|
|
77
|
-
config.providers.ollama.dimensions = dims;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// Max tokens - New variable with backward compatibility
|
|
82
|
-
if (process.env.CODEVAULT_EMBEDDING_MAX_TOKENS || process.env.CODEVAULT_MAX_TOKENS) {
|
|
83
|
-
const tokens = parseInt(process.env.CODEVAULT_EMBEDDING_MAX_TOKENS || process.env.CODEVAULT_MAX_TOKENS || '0', 10);
|
|
84
|
-
if (!isNaN(tokens) && tokens > 0) {
|
|
85
|
-
config.maxTokens = tokens;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
// Rate limiting - New variables with backward compatibility
|
|
89
|
-
if (process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT) {
|
|
90
|
-
const rpm = parseInt(process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT_RPM || process.env.CODEVAULT_RATE_LIMIT || '0', 10);
|
|
91
|
-
if (!isNaN(rpm) && rpm > 0) {
|
|
92
|
-
config.rateLimit = config.rateLimit || {};
|
|
93
|
-
config.rateLimit.rpm = rpm;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
if (process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_TPM || process.env.CODEVAULT_RATE_LIMIT_TPM) {
|
|
97
|
-
const tpm = parseInt(process.env.CODEVAULT_EMBEDDING_RATE_LIMIT_TPM || process.env.CODEVAULT_RATE_LIMIT_TPM || '0', 10);
|
|
98
|
-
if (!isNaN(tpm) && tpm > 0) {
|
|
99
|
-
config.rateLimit = config.rateLimit || {};
|
|
100
|
-
config.rateLimit.tpm = tpm;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// Encryption
|
|
104
|
-
if (process.env.CODEVAULT_ENCRYPTION_KEY) {
|
|
105
|
-
config.encryption = config.encryption || {};
|
|
106
|
-
config.encryption.key = process.env.CODEVAULT_ENCRYPTION_KEY;
|
|
107
|
-
config.encryption.enabled = true;
|
|
108
|
-
}
|
|
109
|
-
// Reranker
|
|
110
|
-
if (process.env.CODEVAULT_RERANK_API_URL) {
|
|
111
|
-
config.reranker = config.reranker || {};
|
|
112
|
-
config.reranker.apiUrl = process.env.CODEVAULT_RERANK_API_URL;
|
|
113
|
-
}
|
|
114
|
-
if (process.env.CODEVAULT_RERANK_API_KEY) {
|
|
115
|
-
config.reranker = config.reranker || {};
|
|
116
|
-
config.reranker.apiKey = process.env.CODEVAULT_RERANK_API_KEY;
|
|
117
|
-
}
|
|
118
|
-
if (process.env.CODEVAULT_RERANK_MODEL) {
|
|
119
|
-
config.reranker = config.reranker || {};
|
|
120
|
-
config.reranker.model = process.env.CODEVAULT_RERANK_MODEL;
|
|
121
|
-
}
|
|
122
|
-
// Chat LLM Configuration
|
|
123
|
-
if (process.env.CODEVAULT_CHAT_API_KEY || process.env.OPENAI_API_KEY) {
|
|
124
|
-
config.chatLLM = config.chatLLM || {};
|
|
125
|
-
config.chatLLM.openai = config.chatLLM.openai || {};
|
|
126
|
-
config.chatLLM.openai.apiKey = process.env.CODEVAULT_CHAT_API_KEY || process.env.OPENAI_API_KEY;
|
|
127
|
-
}
|
|
128
|
-
if (process.env.CODEVAULT_CHAT_BASE_URL || process.env.OPENAI_BASE_URL) {
|
|
129
|
-
config.chatLLM = config.chatLLM || {};
|
|
130
|
-
config.chatLLM.openai = config.chatLLM.openai || {};
|
|
131
|
-
config.chatLLM.openai.baseUrl = process.env.CODEVAULT_CHAT_BASE_URL || process.env.OPENAI_BASE_URL;
|
|
132
|
-
}
|
|
133
|
-
if (process.env.CODEVAULT_CHAT_MODEL || process.env.CODEVAULT_OPENAI_CHAT_MODEL) {
|
|
134
|
-
config.chatLLM = config.chatLLM || {};
|
|
135
|
-
config.chatLLM.openai = config.chatLLM.openai || {};
|
|
136
|
-
config.chatLLM.openai.model = process.env.CODEVAULT_CHAT_MODEL || process.env.CODEVAULT_OPENAI_CHAT_MODEL;
|
|
137
|
-
}
|
|
138
|
-
if (process.env.CODEVAULT_CHAT_MAX_TOKENS) {
|
|
139
|
-
const maxTokens = parseInt(process.env.CODEVAULT_CHAT_MAX_TOKENS, 10);
|
|
140
|
-
if (!isNaN(maxTokens) && maxTokens > 0) {
|
|
141
|
-
config.chatLLM = config.chatLLM || {};
|
|
142
|
-
config.chatLLM.openai = config.chatLLM.openai || {};
|
|
143
|
-
config.chatLLM.openai.maxTokens = maxTokens;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
if (process.env.CODEVAULT_CHAT_TEMPERATURE) {
|
|
147
|
-
const temperature = parseFloat(process.env.CODEVAULT_CHAT_TEMPERATURE);
|
|
148
|
-
if (!isNaN(temperature)) {
|
|
149
|
-
config.chatLLM = config.chatLLM || {};
|
|
150
|
-
config.chatLLM.openai = config.chatLLM.openai || {};
|
|
151
|
-
config.chatLLM.openai.temperature = temperature;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
if (process.env.CODEVAULT_OLLAMA_CHAT_MODEL) {
|
|
155
|
-
config.chatLLM = config.chatLLM || {};
|
|
156
|
-
config.chatLLM.ollama = config.chatLLM.ollama || {};
|
|
157
|
-
config.chatLLM.ollama.model = process.env.CODEVAULT_OLLAMA_CHAT_MODEL;
|
|
158
|
-
}
|
|
159
|
-
return config;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Deep merge configuration objects
|
|
163
|
-
* Later configs override earlier ones
|
|
164
|
-
*/
|
|
165
|
-
function deepMerge(...configs) {
|
|
166
|
-
const result = {};
|
|
167
|
-
for (const config of configs) {
|
|
168
|
-
if (!config)
|
|
169
|
-
continue;
|
|
170
|
-
if (config.defaultProvider) {
|
|
171
|
-
result.defaultProvider = config.defaultProvider;
|
|
172
|
-
}
|
|
173
|
-
if (config.maxTokens) {
|
|
174
|
-
result.maxTokens = config.maxTokens;
|
|
175
|
-
}
|
|
176
|
-
if (config.providers) {
|
|
177
|
-
result.providers = result.providers || {};
|
|
178
|
-
if (config.providers.openai) {
|
|
179
|
-
result.providers.openai = {
|
|
180
|
-
...result.providers.openai,
|
|
181
|
-
...config.providers.openai
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
if (config.providers.ollama) {
|
|
185
|
-
result.providers.ollama = {
|
|
186
|
-
...result.providers.ollama,
|
|
187
|
-
...config.providers.ollama
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
if (config.rateLimit) {
|
|
192
|
-
result.rateLimit = {
|
|
193
|
-
...result.rateLimit,
|
|
194
|
-
...config.rateLimit
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
if (config.encryption) {
|
|
198
|
-
result.encryption = {
|
|
199
|
-
...result.encryption,
|
|
200
|
-
...config.encryption
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
if (config.reranker) {
|
|
204
|
-
result.reranker = {
|
|
205
|
-
...result.reranker,
|
|
206
|
-
...config.reranker
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
if (config.chatLLM) {
|
|
210
|
-
result.chatLLM = result.chatLLM || {};
|
|
211
|
-
if (config.chatLLM.openai) {
|
|
212
|
-
result.chatLLM.openai = {
|
|
213
|
-
...result.chatLLM.openai,
|
|
214
|
-
...config.chatLLM.openai
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
if (config.chatLLM.ollama) {
|
|
218
|
-
result.chatLLM.ollama = {
|
|
219
|
-
...result.chatLLM.ollama,
|
|
220
|
-
...config.chatLLM.ollama
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
return result;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Load merged configuration from all sources
|
|
229
|
-
* Priority: env > project > global
|
|
230
|
-
*
|
|
231
|
-
* @readonly Never modifies config files
|
|
232
|
-
* @param basePath Project path for project-local config
|
|
233
|
-
* @returns Merged configuration (in-memory only)
|
|
234
|
-
*/
|
|
235
|
-
export function loadConfig(basePath = '.') {
|
|
236
|
-
const global = readGlobalConfig();
|
|
237
|
-
const project = readProjectConfig(basePath);
|
|
238
|
-
const env = readEnvConfig();
|
|
239
|
-
// Merge with priority: env overrides project overrides global
|
|
240
|
-
return deepMerge(global, project, env);
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Get configuration sources for debugging
|
|
244
|
-
* @readonly Never modifies files
|
|
245
|
-
*/
|
|
246
|
-
export function getConfigSources(basePath = '.') {
|
|
247
|
-
return {
|
|
248
|
-
global: readGlobalConfig(),
|
|
249
|
-
project: readProjectConfig(basePath),
|
|
250
|
-
env: readEnvConfig()
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Write global configuration (CLI only)
|
|
255
|
-
* This is the ONLY function that writes to disk
|
|
256
|
-
*/
|
|
257
|
-
export function saveGlobalConfig(config) {
|
|
258
|
-
// Ensure directory exists
|
|
259
|
-
if (!fs.existsSync(GLOBAL_CONFIG_DIR)) {
|
|
260
|
-
fs.mkdirSync(GLOBAL_CONFIG_DIR, { recursive: true });
|
|
261
|
-
}
|
|
262
|
-
// Write config
|
|
263
|
-
fs.writeFileSync(GLOBAL_CONFIG_FILE, JSON.stringify(config, null, 2));
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Write project-local configuration (CLI only)
|
|
267
|
-
* This is the ONLY function that writes project config
|
|
268
|
-
*/
|
|
269
|
-
export function saveProjectConfig(config, basePath = '.') {
|
|
270
|
-
const configDir = path.join(path.resolve(basePath), '.codevault');
|
|
271
|
-
const configPath = path.join(configDir, 'config.json');
|
|
272
|
-
// Ensure directory exists
|
|
273
|
-
if (!fs.existsSync(configDir)) {
|
|
274
|
-
fs.mkdirSync(configDir, { recursive: true });
|
|
275
|
-
}
|
|
276
|
-
// Write config
|
|
277
|
-
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Check if global config exists
|
|
281
|
-
*/
|
|
282
|
-
export function hasGlobalConfig() {
|
|
283
|
-
return fs.existsSync(GLOBAL_CONFIG_FILE);
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Check if project config exists
|
|
287
|
-
*/
|
|
288
|
-
export function hasProjectConfig(basePath = '.') {
|
|
289
|
-
const configPath = path.join(path.resolve(basePath), PROJECT_CONFIG_FILE);
|
|
290
|
-
return fs.existsSync(configPath);
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Get global config file path
|
|
294
|
-
*/
|
|
295
|
-
export function getGlobalConfigPath() {
|
|
296
|
-
return GLOBAL_CONFIG_FILE;
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Get project config file path
|
|
300
|
-
*/
|
|
301
|
-
export function getProjectConfigPath(basePath = '.') {
|
|
302
|
-
return path.join(path.resolve(basePath), PROJECT_CONFIG_FILE);
|
|
303
|
-
}
|
|
304
|
-
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
export interface ProviderConfig {
|
|
2
|
-
apiKey?: string;
|
|
3
|
-
model?: string;
|
|
4
|
-
baseUrl?: string;
|
|
5
|
-
dimensions?: number;
|
|
6
|
-
}
|
|
7
|
-
export interface RateLimitConfig {
|
|
8
|
-
rpm?: number;
|
|
9
|
-
tpm?: number;
|
|
10
|
-
}
|
|
11
|
-
export interface EncryptionConfig {
|
|
12
|
-
enabled?: boolean;
|
|
13
|
-
key?: string;
|
|
14
|
-
}
|
|
15
|
-
export interface ChatLLMConfig {
|
|
16
|
-
apiKey?: string;
|
|
17
|
-
baseUrl?: string;
|
|
18
|
-
model?: string;
|
|
19
|
-
maxTokens?: number;
|
|
20
|
-
temperature?: number;
|
|
21
|
-
}
|
|
22
|
-
export interface CodevaultConfig {
|
|
23
|
-
defaultProvider?: string;
|
|
24
|
-
providers?: {
|
|
25
|
-
openai?: ProviderConfig;
|
|
26
|
-
ollama?: ProviderConfig;
|
|
27
|
-
};
|
|
28
|
-
chatLLM?: {
|
|
29
|
-
openai?: ChatLLMConfig;
|
|
30
|
-
ollama?: ChatLLMConfig;
|
|
31
|
-
};
|
|
32
|
-
rateLimit?: RateLimitConfig;
|
|
33
|
-
encryption?: EncryptionConfig;
|
|
34
|
-
maxTokens?: number;
|
|
35
|
-
reranker?: {
|
|
36
|
-
apiUrl?: string;
|
|
37
|
-
apiKey?: string;
|
|
38
|
-
model?: string;
|
|
39
|
-
maxCandidates?: number;
|
|
40
|
-
maxTokens?: number;
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
export interface ConfigSource {
|
|
44
|
-
global: CodevaultConfig | null;
|
|
45
|
-
project: CodevaultConfig | null;
|
|
46
|
-
env: CodevaultConfig;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,cAAc,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,GAAG,EAAE,eAAe,CAAC;CACtB"}
|
package/dist/config/types.js
DELETED
package/dist/config/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":""}
|
package/dist/context/packs.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { ScopeFilters } from '../types/search.js';
|
|
2
|
-
interface PackInfo {
|
|
3
|
-
key: string;
|
|
4
|
-
name: string;
|
|
5
|
-
description: string | null;
|
|
6
|
-
scope: Record<string, any>;
|
|
7
|
-
path: string;
|
|
8
|
-
invalid?: boolean;
|
|
9
|
-
}
|
|
10
|
-
interface SessionPack extends PackInfo {
|
|
11
|
-
basePath: string;
|
|
12
|
-
}
|
|
13
|
-
export declare function getContextPackDirectory(basePath?: string): string;
|
|
14
|
-
export declare function loadContextPack(name: string, basePath?: string): PackInfo;
|
|
15
|
-
export declare function listContextPacks(basePath?: string): PackInfo[];
|
|
16
|
-
export declare function getActiveContextPack(basePath?: string): (PackInfo & {
|
|
17
|
-
appliedAt: string | null;
|
|
18
|
-
}) | null;
|
|
19
|
-
export declare function setActiveContextPack(name: string, basePath?: string): PackInfo;
|
|
20
|
-
export declare function resolveScopeWithPack(overrides?: any, options?: {
|
|
21
|
-
basePath?: string;
|
|
22
|
-
sessionPack?: SessionPack | null;
|
|
23
|
-
}): {
|
|
24
|
-
scope: ScopeFilters;
|
|
25
|
-
pack: {
|
|
26
|
-
key: string;
|
|
27
|
-
name: string;
|
|
28
|
-
description: string | null;
|
|
29
|
-
} | null;
|
|
30
|
-
};
|
|
31
|
-
export declare function clearContextPackCache(): void;
|
|
32
|
-
export {};
|
|
33
|
-
//# sourceMappingURL=packs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packs.d.ts","sourceRoot":"","sources":["../../src/context/packs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMvD,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,WAAY,SAAQ,QAAQ;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgED,wBAAgB,uBAAuB,CAAC,QAAQ,SAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAM,GAAG,QAAQ,CA0BtE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,SAAM,GAAG,QAAQ,EAAE,CA2B3D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,SAAM,GAAG,CAAC,QAAQ,GAAG;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAAG,IAAI,CAyBrG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAM,GAAG,QAAQ,CAW3E;AAED,wBAAgB,oBAAoB,CAClC,SAAS,GAAE,GAAQ,EACnB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;CAAO,GACpE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAuCjG;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|
package/dist/context/packs.js
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { ContextPackSchema, extractScopeFromPackDefinition } from '../types/context-pack.js';
|
|
4
|
-
import { normalizeScopeFilters } from '../search/scope.js';
|
|
5
|
-
const CONTEXT_PACK_DIR = '.codevault/contextpacks';
|
|
6
|
-
const ACTIVE_STATE_FILENAME = 'active-pack.json';
|
|
7
|
-
const PACK_SCOPE_KEYS = ['path_glob', 'tags', 'lang', 'provider', 'reranker', 'hybrid', 'bm25', 'symbol_boost'];
|
|
8
|
-
const packCache = new Map();
|
|
9
|
-
function resolveBasePath(basePath = '.') {
|
|
10
|
-
return path.resolve(basePath || '.');
|
|
11
|
-
}
|
|
12
|
-
function getPackDir(basePath = '.') {
|
|
13
|
-
return path.join(resolveBasePath(basePath), CONTEXT_PACK_DIR);
|
|
14
|
-
}
|
|
15
|
-
function getStatePath(basePath = '.') {
|
|
16
|
-
return path.join(getPackDir(basePath), ACTIVE_STATE_FILENAME);
|
|
17
|
-
}
|
|
18
|
-
function ensurePackDir(basePath = '.') {
|
|
19
|
-
const dir = getPackDir(basePath);
|
|
20
|
-
if (!fs.existsSync(dir)) {
|
|
21
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
22
|
-
}
|
|
23
|
-
return dir;
|
|
24
|
-
}
|
|
25
|
-
function buildCacheKey(filePath) {
|
|
26
|
-
return path.resolve(filePath);
|
|
27
|
-
}
|
|
28
|
-
function readJsonFile(filePath) {
|
|
29
|
-
const content = fs.readFileSync(filePath, 'utf8');
|
|
30
|
-
try {
|
|
31
|
-
return JSON.parse(content);
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
throw new Error(`Invalid JSON in context pack ${path.basename(filePath)}: ${error.message}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function toContextPackObject(key, filePath, data) {
|
|
38
|
-
const parsed = ContextPackSchema.parse(data);
|
|
39
|
-
const scope = extractScopeFromPackDefinition(parsed);
|
|
40
|
-
const packName = typeof parsed.name === 'string' && parsed.name.trim().length > 0
|
|
41
|
-
? parsed.name.trim()
|
|
42
|
-
: key;
|
|
43
|
-
const description = typeof parsed.description === 'string' && parsed.description.trim().length > 0
|
|
44
|
-
? parsed.description.trim()
|
|
45
|
-
: undefined;
|
|
46
|
-
const scopeDefinition = {};
|
|
47
|
-
for (const scopeKey of PACK_SCOPE_KEYS) {
|
|
48
|
-
if (Object.prototype.hasOwnProperty.call(scope, scopeKey) && typeof scope[scopeKey] !== 'undefined') {
|
|
49
|
-
scopeDefinition[scopeKey] = scope[scopeKey];
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
key,
|
|
54
|
-
name: packName,
|
|
55
|
-
description: description || null,
|
|
56
|
-
scope: scopeDefinition,
|
|
57
|
-
path: filePath
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export function getContextPackDirectory(basePath = '.') {
|
|
61
|
-
return getPackDir(basePath);
|
|
62
|
-
}
|
|
63
|
-
export function loadContextPack(name, basePath = '.') {
|
|
64
|
-
if (!name || typeof name !== 'string') {
|
|
65
|
-
throw new Error('Context pack name must be a non-empty string');
|
|
66
|
-
}
|
|
67
|
-
const packDir = getPackDir(basePath);
|
|
68
|
-
const fileName = `${name}.json`;
|
|
69
|
-
const filePath = path.join(packDir, fileName);
|
|
70
|
-
if (!fs.existsSync(filePath)) {
|
|
71
|
-
throw new Error(`Context pack "${name}" not found in ${packDir}`);
|
|
72
|
-
}
|
|
73
|
-
const stats = fs.statSync(filePath);
|
|
74
|
-
const cacheKey = buildCacheKey(filePath);
|
|
75
|
-
const cached = packCache.get(cacheKey);
|
|
76
|
-
if (cached && cached.mtimeMs === stats.mtimeMs) {
|
|
77
|
-
return cached.pack;
|
|
78
|
-
}
|
|
79
|
-
const rawData = readJsonFile(filePath);
|
|
80
|
-
const pack = toContextPackObject(name, filePath, rawData);
|
|
81
|
-
packCache.set(cacheKey, { pack, mtimeMs: stats.mtimeMs });
|
|
82
|
-
return pack;
|
|
83
|
-
}
|
|
84
|
-
export function listContextPacks(basePath = '.') {
|
|
85
|
-
const packDir = getPackDir(basePath);
|
|
86
|
-
if (!fs.existsSync(packDir)) {
|
|
87
|
-
return [];
|
|
88
|
-
}
|
|
89
|
-
const files = fs.readdirSync(packDir).filter(file => file.endsWith('.json'));
|
|
90
|
-
const packs = [];
|
|
91
|
-
for (const file of files) {
|
|
92
|
-
const key = path.basename(file, '.json');
|
|
93
|
-
try {
|
|
94
|
-
const pack = loadContextPack(key, basePath);
|
|
95
|
-
packs.push(pack);
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
packs.push({
|
|
99
|
-
key,
|
|
100
|
-
name: key,
|
|
101
|
-
description: `Invalid pack: ${error.message}`,
|
|
102
|
-
scope: {},
|
|
103
|
-
path: path.join(packDir, file),
|
|
104
|
-
invalid: true
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return packs;
|
|
109
|
-
}
|
|
110
|
-
export function getActiveContextPack(basePath = '.') {
|
|
111
|
-
const statePath = getStatePath(basePath);
|
|
112
|
-
if (!fs.existsSync(statePath)) {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
try {
|
|
116
|
-
const rawState = readJsonFile(statePath);
|
|
117
|
-
if (!rawState || typeof rawState !== 'object') {
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
const key = typeof rawState.key === 'string' ? rawState.key : null;
|
|
121
|
-
if (!key) {
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
const pack = loadContextPack(key, basePath);
|
|
125
|
-
return {
|
|
126
|
-
...pack,
|
|
127
|
-
appliedAt: rawState.appliedAt || null
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
catch (error) {
|
|
131
|
-
return null;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
export function setActiveContextPack(name, basePath = '.') {
|
|
135
|
-
const pack = loadContextPack(name, basePath);
|
|
136
|
-
const dir = ensurePackDir(basePath);
|
|
137
|
-
const statePath = path.join(dir, ACTIVE_STATE_FILENAME);
|
|
138
|
-
const state = {
|
|
139
|
-
key: pack.key,
|
|
140
|
-
appliedAt: new Date().toISOString()
|
|
141
|
-
};
|
|
142
|
-
fs.writeFileSync(statePath, JSON.stringify(state, null, 2));
|
|
143
|
-
return pack;
|
|
144
|
-
}
|
|
145
|
-
export function resolveScopeWithPack(overrides = {}, options = {}) {
|
|
146
|
-
const basePath = options.basePath || '.';
|
|
147
|
-
const sessionPack = options.sessionPack || null;
|
|
148
|
-
let basePack = null;
|
|
149
|
-
const resolvedBasePath = resolveBasePath(basePath);
|
|
150
|
-
if (sessionPack && sessionPack.scope) {
|
|
151
|
-
if (!sessionPack.basePath || resolveBasePath(sessionPack.basePath) === resolvedBasePath) {
|
|
152
|
-
basePack = sessionPack;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
if (!basePack) {
|
|
156
|
-
basePack = getActiveContextPack(basePath);
|
|
157
|
-
}
|
|
158
|
-
const combined = {};
|
|
159
|
-
if (basePack && basePack.scope) {
|
|
160
|
-
for (const key of PACK_SCOPE_KEYS) {
|
|
161
|
-
if (Object.prototype.hasOwnProperty.call(basePack.scope, key)) {
|
|
162
|
-
combined[key] = basePack.scope[key];
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
for (const key of PACK_SCOPE_KEYS) {
|
|
167
|
-
if (Object.prototype.hasOwnProperty.call(overrides, key) && typeof overrides[key] !== 'undefined') {
|
|
168
|
-
combined[key] = overrides[key];
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
const scope = normalizeScopeFilters(combined);
|
|
172
|
-
const packInfo = basePack
|
|
173
|
-
? { key: basePack.key, name: basePack.name, description: basePack.description || null }
|
|
174
|
-
: null;
|
|
175
|
-
return { scope, pack: packInfo };
|
|
176
|
-
}
|
|
177
|
-
export function clearContextPackCache() {
|
|
178
|
-
packCache.clear();
|
|
179
|
-
}
|
|
180
|
-
//# sourceMappingURL=packs.js.map
|