rag-lite-ts 1.0.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/LICENSE +21 -0
- package/README.md +240 -0
- package/dist/api-errors.d.ts +90 -0
- package/dist/api-errors.d.ts.map +1 -0
- package/dist/api-errors.js +320 -0
- package/dist/api-errors.js.map +1 -0
- package/dist/chunker.d.ts +47 -0
- package/dist/chunker.d.ts.map +1 -0
- package/dist/chunker.js +256 -0
- package/dist/chunker.js.map +1 -0
- package/dist/cli/indexer.d.ts +11 -0
- package/dist/cli/indexer.d.ts.map +1 -0
- package/dist/cli/indexer.js +272 -0
- package/dist/cli/indexer.js.map +1 -0
- package/dist/cli/search.d.ts +7 -0
- package/dist/cli/search.d.ts.map +1 -0
- package/dist/cli/search.js +206 -0
- package/dist/cli/search.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +362 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +90 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +281 -0
- package/dist/config.js.map +1 -0
- package/dist/db.d.ts +90 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +340 -0
- package/dist/db.js.map +1 -0
- package/dist/embedder.d.ts +101 -0
- package/dist/embedder.d.ts.map +1 -0
- package/dist/embedder.js +323 -0
- package/dist/embedder.js.map +1 -0
- package/dist/error-handler.d.ts +91 -0
- package/dist/error-handler.d.ts.map +1 -0
- package/dist/error-handler.js +196 -0
- package/dist/error-handler.js.map +1 -0
- package/dist/file-processor.d.ts +59 -0
- package/dist/file-processor.d.ts.map +1 -0
- package/dist/file-processor.js +312 -0
- package/dist/file-processor.js.map +1 -0
- package/dist/index-manager.d.ts +99 -0
- package/dist/index-manager.d.ts.map +1 -0
- package/dist/index-manager.js +444 -0
- package/dist/index-manager.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer.d.ts +7 -0
- package/dist/indexer.d.ts.map +1 -0
- package/dist/indexer.js +51 -0
- package/dist/indexer.js.map +1 -0
- package/dist/ingestion.d.ts +175 -0
- package/dist/ingestion.d.ts.map +1 -0
- package/dist/ingestion.js +705 -0
- package/dist/ingestion.js.map +1 -0
- package/dist/mcp-server.d.ts +14 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +680 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/path-manager.d.ts +42 -0
- package/dist/path-manager.d.ts.map +1 -0
- package/dist/path-manager.js +66 -0
- package/dist/path-manager.js.map +1 -0
- package/dist/preprocess.d.ts +19 -0
- package/dist/preprocess.d.ts.map +1 -0
- package/dist/preprocess.js +203 -0
- package/dist/preprocess.js.map +1 -0
- package/dist/preprocessors/index.d.ts +17 -0
- package/dist/preprocessors/index.d.ts.map +1 -0
- package/dist/preprocessors/index.js +38 -0
- package/dist/preprocessors/index.js.map +1 -0
- package/dist/preprocessors/mdx.d.ts +25 -0
- package/dist/preprocessors/mdx.d.ts.map +1 -0
- package/dist/preprocessors/mdx.js +101 -0
- package/dist/preprocessors/mdx.js.map +1 -0
- package/dist/preprocessors/mermaid.d.ts +68 -0
- package/dist/preprocessors/mermaid.d.ts.map +1 -0
- package/dist/preprocessors/mermaid.js +329 -0
- package/dist/preprocessors/mermaid.js.map +1 -0
- package/dist/preprocessors/registry.d.ts +56 -0
- package/dist/preprocessors/registry.d.ts.map +1 -0
- package/dist/preprocessors/registry.js +179 -0
- package/dist/preprocessors/registry.js.map +1 -0
- package/dist/reranker.d.ts +40 -0
- package/dist/reranker.d.ts.map +1 -0
- package/dist/reranker.js +212 -0
- package/dist/reranker.js.map +1 -0
- package/dist/resource-manager-demo.d.ts +7 -0
- package/dist/resource-manager-demo.d.ts.map +1 -0
- package/dist/resource-manager-demo.js +52 -0
- package/dist/resource-manager-demo.js.map +1 -0
- package/dist/resource-manager.d.ts +129 -0
- package/dist/resource-manager.d.ts.map +1 -0
- package/dist/resource-manager.js +389 -0
- package/dist/resource-manager.js.map +1 -0
- package/dist/search-standalone.d.ts +7 -0
- package/dist/search-standalone.d.ts.map +1 -0
- package/dist/search-standalone.js +117 -0
- package/dist/search-standalone.js.map +1 -0
- package/dist/search.d.ts +92 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +454 -0
- package/dist/search.js.map +1 -0
- package/dist/test-utils.d.ts +36 -0
- package/dist/test-utils.d.ts.map +1 -0
- package/dist/test-utils.js +27 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/tokenizer.d.ts +21 -0
- package/dist/tokenizer.d.ts.map +1 -0
- package/dist/tokenizer.js +59 -0
- package/dist/tokenizer.js.map +1 -0
- package/dist/types.d.ts +44 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/vector-index.d.ts +64 -0
- package/dist/vector-index.d.ts.map +1 -0
- package/dist/vector-index.js +308 -0
- package/dist/vector-index.js.map +1 -0
- package/package.json +80 -0
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { PreprocessingConfig } from './types.js';
|
|
2
|
+
export interface Config {
|
|
3
|
+
embedding_model: string;
|
|
4
|
+
chunk_size: number;
|
|
5
|
+
chunk_overlap: number;
|
|
6
|
+
batch_size: number;
|
|
7
|
+
top_k: number;
|
|
8
|
+
db_file: string;
|
|
9
|
+
index_file: string;
|
|
10
|
+
rerank_enabled: boolean;
|
|
11
|
+
preprocessing: PreprocessingConfig;
|
|
12
|
+
model_cache_path?: string;
|
|
13
|
+
path_storage_strategy: 'absolute' | 'relative';
|
|
14
|
+
}
|
|
15
|
+
export interface ModelDefaults {
|
|
16
|
+
dimensions: number;
|
|
17
|
+
chunk_size: number;
|
|
18
|
+
chunk_overlap: number;
|
|
19
|
+
batch_size: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Default preprocessing configuration - "balanced" mode
|
|
23
|
+
*/
|
|
24
|
+
export declare const defaultPreprocessingConfig: PreprocessingConfig;
|
|
25
|
+
/**
|
|
26
|
+
* Returns model-specific default configuration values
|
|
27
|
+
* @param modelName - The embedding model name
|
|
28
|
+
* @returns Model-specific defaults for dimensions, chunk_size, chunk_overlap, and batch_size
|
|
29
|
+
*/
|
|
30
|
+
export declare function getModelDefaults(modelName: string): ModelDefaults;
|
|
31
|
+
export declare const config: Config;
|
|
32
|
+
/**
|
|
33
|
+
* Standard exit codes for different error conditions
|
|
34
|
+
*/
|
|
35
|
+
export declare const EXIT_CODES: {
|
|
36
|
+
readonly SUCCESS: 0;
|
|
37
|
+
readonly GENERAL_ERROR: 1;
|
|
38
|
+
readonly INVALID_ARGUMENTS: 2;
|
|
39
|
+
readonly CONFIGURATION_ERROR: 3;
|
|
40
|
+
readonly FILE_NOT_FOUND: 4;
|
|
41
|
+
readonly DATABASE_ERROR: 5;
|
|
42
|
+
readonly MODEL_ERROR: 6;
|
|
43
|
+
readonly INDEX_ERROR: 7;
|
|
44
|
+
readonly PERMISSION_ERROR: 8;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Configuration validation error with specific exit code
|
|
48
|
+
*/
|
|
49
|
+
export declare class ConfigurationError extends Error {
|
|
50
|
+
exitCode: number;
|
|
51
|
+
constructor(message: string, exitCode?: number);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Validates preprocessing configuration
|
|
55
|
+
* @param config - Preprocessing configuration to validate
|
|
56
|
+
* @throws {ConfigurationError} If preprocessing configuration is invalid
|
|
57
|
+
*/
|
|
58
|
+
export declare function validatePreprocessingConfig(config: any): asserts config is PreprocessingConfig;
|
|
59
|
+
/**
|
|
60
|
+
* Merges preprocessing mode with overrides to create final configuration
|
|
61
|
+
* @param config - Base preprocessing configuration
|
|
62
|
+
* @returns Resolved preprocessing options for each content type
|
|
63
|
+
*/
|
|
64
|
+
export declare function mergePreprocessingConfig(config: PreprocessingConfig): {
|
|
65
|
+
mdx: 'strip' | 'keep' | 'placeholder';
|
|
66
|
+
mermaid: 'strip' | 'extract' | 'placeholder';
|
|
67
|
+
code: 'strip' | 'keep' | 'placeholder';
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Validates the configuration object
|
|
71
|
+
* @param config - Configuration object to validate
|
|
72
|
+
* @throws {ConfigurationError} If configuration is invalid
|
|
73
|
+
*/
|
|
74
|
+
export declare function validateConfig(config: any): asserts config is Config;
|
|
75
|
+
/**
|
|
76
|
+
* Utility function to handle unrecoverable errors with descriptive messages
|
|
77
|
+
* Logs error and exits immediately with appropriate exit code
|
|
78
|
+
* @param error - Error object or message
|
|
79
|
+
* @param context - Context where the error occurred
|
|
80
|
+
* @param exitCode - Exit code to use (defaults to GENERAL_ERROR)
|
|
81
|
+
*/
|
|
82
|
+
export declare function handleUnrecoverableError(error: Error | string, context: string, exitCode?: number): never;
|
|
83
|
+
/**
|
|
84
|
+
* Utility function for safe error logging with context
|
|
85
|
+
* @param error - Error to log
|
|
86
|
+
* @param context - Context where error occurred
|
|
87
|
+
* @param skipError - Whether to skip this error and continue (default: false)
|
|
88
|
+
*/
|
|
89
|
+
export declare function logError(error: Error | string, context: string, skipError?: boolean): void;
|
|
90
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,WAAW,MAAM;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,mBAAmB,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,UAAU,GAAG,UAAU,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,mBAExC,CAAC;AAUF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAiBjE;AAMD,eAAO,MAAM,MAAM,EAAE,MAYpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;CAUb,CAAC;AAEX;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IACP,QAAQ,EAAE,MAAM;gBAAxC,OAAO,EAAE,MAAM,EAAS,QAAQ,GAAE,MAAuC;CAItF;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,mBAAmB,CAyD9F;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG;IACrE,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;IACtC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;IAC7C,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;CACxC,CA2CA;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CA6EpE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAiC,GAC1C,KAAK,CAgCP;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,OAAe,GAAG,IAAI,CAQjG"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { homedir } from 'os';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
/**
|
|
4
|
+
* Default preprocessing configuration - "balanced" mode
|
|
5
|
+
*/
|
|
6
|
+
export const defaultPreprocessingConfig = {
|
|
7
|
+
mode: 'balanced'
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Get the default model cache path as specified in the requirements
|
|
11
|
+
* @returns Default cache path (~/.raglite/models/)
|
|
12
|
+
*/
|
|
13
|
+
function getDefaultModelCachePath() {
|
|
14
|
+
return join(homedir(), '.raglite', 'models');
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Returns model-specific default configuration values
|
|
18
|
+
* @param modelName - The embedding model name
|
|
19
|
+
* @returns Model-specific defaults for dimensions, chunk_size, chunk_overlap, and batch_size
|
|
20
|
+
*/
|
|
21
|
+
export function getModelDefaults(modelName) {
|
|
22
|
+
if (modelName === 'Xenova/all-mpnet-base-v2') {
|
|
23
|
+
return {
|
|
24
|
+
dimensions: 768,
|
|
25
|
+
chunk_size: 400,
|
|
26
|
+
chunk_overlap: 80,
|
|
27
|
+
batch_size: 8
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// Default to sentence-transformers/all-MiniLM-L6-v2 settings (current defaults)
|
|
31
|
+
return {
|
|
32
|
+
dimensions: 384,
|
|
33
|
+
chunk_size: 250,
|
|
34
|
+
chunk_overlap: 50,
|
|
35
|
+
batch_size: 16
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// Create config with model-specific defaults
|
|
39
|
+
const embeddingModel = process.env.RAG_EMBEDDING_MODEL || 'sentence-transformers/all-MiniLM-L6-v2';
|
|
40
|
+
const modelDefaults = getModelDefaults(embeddingModel);
|
|
41
|
+
export const config = {
|
|
42
|
+
embedding_model: embeddingModel,
|
|
43
|
+
chunk_size: parseInt(process.env.RAG_CHUNK_SIZE || modelDefaults.chunk_size.toString(), 10),
|
|
44
|
+
chunk_overlap: parseInt(process.env.RAG_CHUNK_OVERLAP || modelDefaults.chunk_overlap.toString(), 10),
|
|
45
|
+
batch_size: parseInt(process.env.RAG_BATCH_SIZE || modelDefaults.batch_size.toString(), 10),
|
|
46
|
+
top_k: parseInt(process.env.RAG_TOP_K || '10', 10),
|
|
47
|
+
db_file: process.env.RAG_DB_FILE || 'db.sqlite',
|
|
48
|
+
index_file: process.env.RAG_INDEX_FILE || 'vector-index.bin',
|
|
49
|
+
rerank_enabled: process.env.RAG_RERANK_ENABLED === 'true',
|
|
50
|
+
preprocessing: defaultPreprocessingConfig,
|
|
51
|
+
model_cache_path: process.env.RAG_MODEL_CACHE_PATH || getDefaultModelCachePath(),
|
|
52
|
+
path_storage_strategy: process.env.RAG_PATH_STORAGE_STRATEGY || 'relative'
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Standard exit codes for different error conditions
|
|
56
|
+
*/
|
|
57
|
+
export const EXIT_CODES = {
|
|
58
|
+
SUCCESS: 0,
|
|
59
|
+
GENERAL_ERROR: 1,
|
|
60
|
+
INVALID_ARGUMENTS: 2,
|
|
61
|
+
CONFIGURATION_ERROR: 3,
|
|
62
|
+
FILE_NOT_FOUND: 4,
|
|
63
|
+
DATABASE_ERROR: 5,
|
|
64
|
+
MODEL_ERROR: 6,
|
|
65
|
+
INDEX_ERROR: 7,
|
|
66
|
+
PERMISSION_ERROR: 8
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Configuration validation error with specific exit code
|
|
70
|
+
*/
|
|
71
|
+
export class ConfigurationError extends Error {
|
|
72
|
+
exitCode;
|
|
73
|
+
constructor(message, exitCode = EXIT_CODES.CONFIGURATION_ERROR) {
|
|
74
|
+
super(message);
|
|
75
|
+
this.exitCode = exitCode;
|
|
76
|
+
this.name = 'ConfigurationError';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Validates preprocessing configuration
|
|
81
|
+
* @param config - Preprocessing configuration to validate
|
|
82
|
+
* @throws {ConfigurationError} If preprocessing configuration is invalid
|
|
83
|
+
*/
|
|
84
|
+
export function validatePreprocessingConfig(config) {
|
|
85
|
+
if (!config || typeof config !== 'object') {
|
|
86
|
+
throw new ConfigurationError('Preprocessing configuration must be an object');
|
|
87
|
+
}
|
|
88
|
+
// Validate mode
|
|
89
|
+
const validModes = ['strict', 'balanced', 'rich'];
|
|
90
|
+
if (!config.mode || !validModes.includes(config.mode)) {
|
|
91
|
+
throw new ConfigurationError(`Configuration error: preprocessing.mode must be one of: ${validModes.join(', ')}.\n` +
|
|
92
|
+
`Current value: ${JSON.stringify(config.mode)}\n` +
|
|
93
|
+
`Please set it to 'strict', 'balanced', or 'rich'.`);
|
|
94
|
+
}
|
|
95
|
+
// Validate overrides if present
|
|
96
|
+
if (config.overrides !== undefined) {
|
|
97
|
+
if (typeof config.overrides !== 'object' || config.overrides === null) {
|
|
98
|
+
throw new ConfigurationError(`Configuration error: preprocessing.overrides must be an object.\n` +
|
|
99
|
+
`Current value: ${JSON.stringify(config.overrides)}`);
|
|
100
|
+
}
|
|
101
|
+
// Validate MDX override
|
|
102
|
+
if (config.overrides.mdx !== undefined) {
|
|
103
|
+
const validMdxOptions = ['strip', 'keep', 'placeholder'];
|
|
104
|
+
if (!validMdxOptions.includes(config.overrides.mdx)) {
|
|
105
|
+
throw new ConfigurationError(`Configuration error: preprocessing.overrides.mdx must be one of: ${validMdxOptions.join(', ')}.\n` +
|
|
106
|
+
`Current value: ${JSON.stringify(config.overrides.mdx)}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Validate Mermaid override
|
|
110
|
+
if (config.overrides.mermaid !== undefined) {
|
|
111
|
+
const validMermaidOptions = ['strip', 'extract', 'placeholder'];
|
|
112
|
+
if (!validMermaidOptions.includes(config.overrides.mermaid)) {
|
|
113
|
+
throw new ConfigurationError(`Configuration error: preprocessing.overrides.mermaid must be one of: ${validMermaidOptions.join(', ')}.\n` +
|
|
114
|
+
`Current value: ${JSON.stringify(config.overrides.mermaid)}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Validate code override
|
|
118
|
+
if (config.overrides.code !== undefined) {
|
|
119
|
+
const validCodeOptions = ['strip', 'keep', 'placeholder'];
|
|
120
|
+
if (!validCodeOptions.includes(config.overrides.code)) {
|
|
121
|
+
throw new ConfigurationError(`Configuration error: preprocessing.overrides.code must be one of: ${validCodeOptions.join(', ')}.\n` +
|
|
122
|
+
`Current value: ${JSON.stringify(config.overrides.code)}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Merges preprocessing mode with overrides to create final configuration
|
|
129
|
+
* @param config - Base preprocessing configuration
|
|
130
|
+
* @returns Resolved preprocessing options for each content type
|
|
131
|
+
*/
|
|
132
|
+
export function mergePreprocessingConfig(config) {
|
|
133
|
+
// Define mode defaults
|
|
134
|
+
const modeDefaults = {
|
|
135
|
+
strict: {
|
|
136
|
+
mdx: 'strip',
|
|
137
|
+
mermaid: 'strip',
|
|
138
|
+
code: 'strip'
|
|
139
|
+
},
|
|
140
|
+
balanced: {
|
|
141
|
+
mdx: 'placeholder',
|
|
142
|
+
mermaid: 'placeholder',
|
|
143
|
+
code: 'keep'
|
|
144
|
+
},
|
|
145
|
+
rich: {
|
|
146
|
+
mdx: 'keep',
|
|
147
|
+
mermaid: 'extract',
|
|
148
|
+
code: 'keep'
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
// Start with mode defaults
|
|
152
|
+
const result = { ...modeDefaults[config.mode] };
|
|
153
|
+
// Apply overrides (shallow override only)
|
|
154
|
+
if (config.overrides) {
|
|
155
|
+
if (config.overrides.mdx !== undefined) {
|
|
156
|
+
result.mdx = config.overrides.mdx;
|
|
157
|
+
}
|
|
158
|
+
if (config.overrides.mermaid !== undefined) {
|
|
159
|
+
result.mermaid = config.overrides.mermaid;
|
|
160
|
+
}
|
|
161
|
+
if (config.overrides.code !== undefined) {
|
|
162
|
+
result.code = config.overrides.code;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Validates the configuration object
|
|
169
|
+
* @param config - Configuration object to validate
|
|
170
|
+
* @throws {ConfigurationError} If configuration is invalid
|
|
171
|
+
*/
|
|
172
|
+
export function validateConfig(config) {
|
|
173
|
+
if (!config || typeof config !== 'object') {
|
|
174
|
+
throw new ConfigurationError('Configuration must be an object');
|
|
175
|
+
}
|
|
176
|
+
// Check required string fields
|
|
177
|
+
const requiredStrings = ['embedding_model', 'db_file', 'index_file'];
|
|
178
|
+
for (const field of requiredStrings) {
|
|
179
|
+
if (!config[field] || typeof config[field] !== 'string') {
|
|
180
|
+
throw new ConfigurationError(`Configuration error: '${field}' must be a non-empty string.\n` +
|
|
181
|
+
`Current value: ${JSON.stringify(config[field])}\n` +
|
|
182
|
+
`Please check your configuration file.`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// Validate path_storage_strategy
|
|
186
|
+
if (!['absolute', 'relative'].includes(config.path_storage_strategy)) {
|
|
187
|
+
throw new ConfigurationError(`Configuration error: 'path_storage_strategy' must be either 'absolute' or 'relative'.\n` +
|
|
188
|
+
`Current value: ${JSON.stringify(config.path_storage_strategy)}\n` +
|
|
189
|
+
`Please set it to 'absolute' or 'relative'.`);
|
|
190
|
+
}
|
|
191
|
+
// Check required numeric fields are positive
|
|
192
|
+
const requiredNumbers = ['chunk_size', 'chunk_overlap', 'batch_size', 'top_k'];
|
|
193
|
+
for (const field of requiredNumbers) {
|
|
194
|
+
if (typeof config[field] !== 'number' || config[field] <= 0) {
|
|
195
|
+
throw new ConfigurationError(`Configuration error: '${field}' must be a positive number.\n` +
|
|
196
|
+
`Current value: ${JSON.stringify(config[field])}\n` +
|
|
197
|
+
`Please ensure all numeric values are greater than 0.`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Check boolean fields
|
|
201
|
+
if (typeof config.rerank_enabled !== 'boolean') {
|
|
202
|
+
throw new ConfigurationError(`Configuration error: 'rerank_enabled' must be a boolean (true or false).\n` +
|
|
203
|
+
`Current value: ${JSON.stringify(config.rerank_enabled)}\n` +
|
|
204
|
+
`Please set it to either true or false.`);
|
|
205
|
+
}
|
|
206
|
+
// Validate preprocessing configuration
|
|
207
|
+
validatePreprocessingConfig(config.preprocessing);
|
|
208
|
+
// Validate optional model_cache_path field
|
|
209
|
+
if (config.model_cache_path !== undefined && (typeof config.model_cache_path !== 'string' || config.model_cache_path.trim() === '')) {
|
|
210
|
+
throw new ConfigurationError(`Configuration error: 'model_cache_path' must be a non-empty string when provided.\n` +
|
|
211
|
+
`Current value: ${JSON.stringify(config.model_cache_path)}\n` +
|
|
212
|
+
`Please provide a valid directory path or remove the field to use default caching.`);
|
|
213
|
+
}
|
|
214
|
+
// Validate chunk_overlap is less than chunk_size
|
|
215
|
+
if (config.chunk_overlap >= config.chunk_size) {
|
|
216
|
+
throw new ConfigurationError(`Configuration error: chunk_overlap (${config.chunk_overlap}) must be less than chunk_size (${config.chunk_size}).\n` +
|
|
217
|
+
`Recommended: Set chunk_overlap to about 20% of chunk_size (e.g., chunk_size: 250, chunk_overlap: 50).`);
|
|
218
|
+
}
|
|
219
|
+
// Validate reasonable ranges for performance
|
|
220
|
+
if (config.chunk_size > 1000) {
|
|
221
|
+
console.warn(`Warning: Large chunk_size (${config.chunk_size}) may impact performance. Recommended range: 200-400 tokens.`);
|
|
222
|
+
}
|
|
223
|
+
if (config.batch_size > 64) {
|
|
224
|
+
console.warn(`Warning: Large batch_size (${config.batch_size}) may cause memory issues. Recommended range: 8-32.`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Utility function to handle unrecoverable errors with descriptive messages
|
|
229
|
+
* Logs error and exits immediately with appropriate exit code
|
|
230
|
+
* @param error - Error object or message
|
|
231
|
+
* @param context - Context where the error occurred
|
|
232
|
+
* @param exitCode - Exit code to use (defaults to GENERAL_ERROR)
|
|
233
|
+
*/
|
|
234
|
+
export function handleUnrecoverableError(error, context, exitCode = EXIT_CODES.GENERAL_ERROR) {
|
|
235
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
236
|
+
console.error(`\nFatal Error in ${context}:`);
|
|
237
|
+
console.error(errorMessage);
|
|
238
|
+
console.error('\nThe system cannot continue and will exit immediately.');
|
|
239
|
+
// Provide context-specific guidance
|
|
240
|
+
switch (exitCode) {
|
|
241
|
+
case EXIT_CODES.CONFIGURATION_ERROR:
|
|
242
|
+
console.error('\nPlease check your configuration and try again.');
|
|
243
|
+
break;
|
|
244
|
+
case EXIT_CODES.DATABASE_ERROR:
|
|
245
|
+
console.error('\nTry running "raglite rebuild" to fix database issues.');
|
|
246
|
+
break;
|
|
247
|
+
case EXIT_CODES.MODEL_ERROR:
|
|
248
|
+
console.error('\nEnsure you have internet connection for model download and sufficient disk space.');
|
|
249
|
+
break;
|
|
250
|
+
case EXIT_CODES.INDEX_ERROR:
|
|
251
|
+
console.error('\nTry running "raglite rebuild" to recreate the vector index.');
|
|
252
|
+
break;
|
|
253
|
+
case EXIT_CODES.FILE_NOT_FOUND:
|
|
254
|
+
console.error('\nPlease check that the specified files or directories exist and are accessible.');
|
|
255
|
+
break;
|
|
256
|
+
case EXIT_CODES.PERMISSION_ERROR:
|
|
257
|
+
console.error('\nPlease check file and directory permissions.');
|
|
258
|
+
break;
|
|
259
|
+
default:
|
|
260
|
+
console.error('\nIf this problem persists, please report it as a bug.');
|
|
261
|
+
}
|
|
262
|
+
process.exit(exitCode);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Utility function for safe error logging with context
|
|
266
|
+
* @param error - Error to log
|
|
267
|
+
* @param context - Context where error occurred
|
|
268
|
+
* @param skipError - Whether to skip this error and continue (default: false)
|
|
269
|
+
*/
|
|
270
|
+
export function logError(error, context, skipError = false) {
|
|
271
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
272
|
+
if (skipError) {
|
|
273
|
+
console.error(`Warning in ${context}: ${errorMessage} (skipping and continuing)`);
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
console.error(`Error in ${context}: ${errorMessage}`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// Validate the default config on module load
|
|
280
|
+
validateConfig(config);
|
|
281
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAuB5B;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAwB;IAC7D,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF;;;GAGG;AACH,SAAS,wBAAwB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,IAAI,SAAS,KAAK,0BAA0B,EAAE,CAAC;QAC7C,OAAO;YACL,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,OAAO;QACL,UAAU,EAAE,GAAG;QACf,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE;KACf,CAAC;AACJ,CAAC;AAED,6CAA6C;AAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,wCAAwC,CAAC;AACnG,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,eAAe,EAAE,cAAc;IAC/B,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3F,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;IACpG,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3F,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,EAAE,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,WAAW;IAC/C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,kBAAkB;IAC5D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM;IACzD,aAAa,EAAE,0BAA0B;IACzC,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,wBAAwB,EAAE;IAChF,qBAAqB,EAAG,OAAO,CAAC,GAAG,CAAC,yBAAqD,IAAI,UAAU;CACxG,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,CAAC;IACtB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC;IACjB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,CAAC;CACX,CAAC;AAEX;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACP;IAApC,YAAY,OAAe,EAAS,WAAmB,UAAU,CAAC,mBAAmB;QACnF,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,aAAQ,GAAR,QAAQ,CAAyC;QAEnF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAW;IACrD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,kBAAkB,CAAC,+CAA+C,CAAC,CAAC;IAChF,CAAC;IAED,gBAAgB;IAChB,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,kBAAkB,CAC1B,2DAA2D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YACrF,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;YACjD,mDAAmD,CACpD,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACtE,MAAM,IAAI,kBAAkB,CAC1B,mEAAmE;gBACnE,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CACrD,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,kBAAkB,CAC1B,oEAAoE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;oBACnG,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CACzD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YAChE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,kBAAkB,CAC1B,wEAAwE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;oBAC3G,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC7D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC1D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,kBAAkB,CAC1B,qEAAqE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;oBACrG,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA2B;IAKlE,uBAAuB;IACvB,MAAM,YAAY,GAMd;QACF,MAAM,EAAE;YACN,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,OAAO;SACd;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,aAAa;YAClB,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,MAAM;SACb;QACD,IAAI,EAAE;YACJ,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,MAAM;SACb;KACF,CAAC;IAEF,2BAA2B;IAC3B,MAAM,MAAM,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAEhD,0CAA0C;IAC1C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QACpC,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QAC5C,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAW;IACxC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,kBAAkB,CAAC,iCAAiC,CAAC,CAAC;IAClE,CAAC;IAED,+BAA+B;IAC/B,MAAM,eAAe,GAAqB,CAAC,iBAAiB,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACvF,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,kBAAkB,CAC1B,yBAAyB,KAAK,iCAAiC;gBAC/D,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI;gBACnD,uCAAuC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,kBAAkB,CAC1B,yFAAyF;YACzF,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI;YAClE,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,MAAM,eAAe,GAAqB,CAAC,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACjG,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,kBAAkB,CAC1B,yBAAyB,KAAK,gCAAgC;gBAC9D,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI;gBACnD,sDAAsD,CACvD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,IAAI,kBAAkB,CAC1B,4EAA4E;YAC5E,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI;YAC3D,wCAAwC,CACzC,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,2BAA2B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAElD,2CAA2C;IAC3C,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpI,MAAM,IAAI,kBAAkB,CAC1B,qFAAqF;YACrF,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI;YAC7D,mFAAmF,CACpF,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,kBAAkB,CAC1B,uCAAuC,MAAM,CAAC,aAAa,mCAAmC,MAAM,CAAC,UAAU,MAAM;YACrH,uGAAuG,CACxG,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,UAAU,8DAA8D,CAAC,CAAC;IAC9H,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,UAAU,qDAAqD,CAAC,CAAC;IACrH,CAAC;AAGH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAqB,EACrB,OAAe,EACf,WAAmB,UAAU,CAAC,aAAa;IAE3C,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5E,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,GAAG,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAEzE,oCAAoC;IACpC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU,CAAC,mBAAmB;YACjC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAClE,MAAM;QACR,KAAK,UAAU,CAAC,cAAc;YAC5B,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,MAAM;QACR,KAAK,UAAU,CAAC,WAAW;YACzB,OAAO,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;YACrG,MAAM;QACR,KAAK,UAAU,CAAC,WAAW;YACzB,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YAC/E,MAAM;QACR,KAAK,UAAU,CAAC,cAAc;YAC5B,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;YAClG,MAAM;QACR,KAAK,UAAU,CAAC,gBAAgB;YAC9B,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAqB,EAAE,OAAe,EAAE,YAAqB,KAAK;IACzF,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5E,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,cAAc,OAAO,KAAK,YAAY,4BAA4B,CAAC,CAAC;IACpF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,KAAK,YAAY,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,cAAc,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/db.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import sqlite3 from 'sqlite3';
|
|
2
|
+
export interface DatabaseConnection {
|
|
3
|
+
db: sqlite3.Database;
|
|
4
|
+
run: (sql: string, params?: any[]) => Promise<sqlite3.RunResult>;
|
|
5
|
+
get: (sql: string, params?: any[]) => Promise<any>;
|
|
6
|
+
all: (sql: string, params?: any[]) => Promise<any[]>;
|
|
7
|
+
close: () => Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export interface ChunkResult {
|
|
10
|
+
id: number;
|
|
11
|
+
embedding_id: string;
|
|
12
|
+
document_id: number;
|
|
13
|
+
text: string;
|
|
14
|
+
chunk_index: number;
|
|
15
|
+
created_at: string;
|
|
16
|
+
document_source: string;
|
|
17
|
+
document_title: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Opens a SQLite database connection with promisified methods
|
|
21
|
+
* @param dbPath - Path to the SQLite database file
|
|
22
|
+
* @returns Promise that resolves to a database connection object
|
|
23
|
+
*/
|
|
24
|
+
export declare function openDatabase(dbPath: string): Promise<DatabaseConnection>;
|
|
25
|
+
/**
|
|
26
|
+
* Initializes the database schema with all required tables and indexes
|
|
27
|
+
* @param connection - Database connection object
|
|
28
|
+
*/
|
|
29
|
+
export declare function initializeSchema(connection: DatabaseConnection): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Inserts a new document into the database
|
|
32
|
+
* @param connection - Database connection object
|
|
33
|
+
* @param source - Source path of the document
|
|
34
|
+
* @param title - Title of the document
|
|
35
|
+
* @returns Promise that resolves to the document ID
|
|
36
|
+
*/
|
|
37
|
+
export declare function insertDocument(connection: DatabaseConnection, source: string, title: string): Promise<number>;
|
|
38
|
+
/**
|
|
39
|
+
* Inserts or updates a chunk in the database (upsert operation)
|
|
40
|
+
* @param connection - Database connection object
|
|
41
|
+
* @param embeddingId - Unique embedding ID for the chunk
|
|
42
|
+
* @param documentId - ID of the parent document
|
|
43
|
+
* @param text - Text content of the chunk
|
|
44
|
+
* @param chunkIndex - Index of the chunk within the document
|
|
45
|
+
*/
|
|
46
|
+
export declare function insertChunk(connection: DatabaseConnection, embeddingId: string, documentId: number, text: string, chunkIndex: number): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Inserts a new document or returns existing document ID if it already exists
|
|
49
|
+
* @param connection - Database connection object
|
|
50
|
+
* @param source - Source path of the document
|
|
51
|
+
* @param title - Title of the document
|
|
52
|
+
* @returns Promise that resolves to the document ID
|
|
53
|
+
*/
|
|
54
|
+
export declare function upsertDocument(connection: DatabaseConnection, source: string, title: string): Promise<number>;
|
|
55
|
+
/**
|
|
56
|
+
* Retrieves chunks by their embedding IDs with document metadata
|
|
57
|
+
* @param connection - Database connection object
|
|
58
|
+
* @param embeddingIds - Array of embedding IDs to retrieve
|
|
59
|
+
* @returns Promise that resolves to an array of chunk results with document metadata
|
|
60
|
+
*/
|
|
61
|
+
export declare function getChunksByEmbeddingIds(connection: DatabaseConnection, embeddingIds: string[]): Promise<ChunkResult[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Gets the current model version from system_info table
|
|
64
|
+
* @param connection - Database connection object
|
|
65
|
+
* @returns Promise that resolves to the model version string or null if not set
|
|
66
|
+
*/
|
|
67
|
+
export declare function getModelVersion(connection: DatabaseConnection): Promise<string | null>;
|
|
68
|
+
/**
|
|
69
|
+
* Sets the model version in system_info table
|
|
70
|
+
* @param connection - Database connection object
|
|
71
|
+
* @param modelVersion - Model version string to store
|
|
72
|
+
*/
|
|
73
|
+
export declare function setModelVersion(connection: DatabaseConnection, modelVersion: string): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Gets the stored model information from system_info table
|
|
76
|
+
* @param connection - Database connection object
|
|
77
|
+
* @returns Promise that resolves to model info object or null if not set
|
|
78
|
+
*/
|
|
79
|
+
export declare function getStoredModelInfo(connection: DatabaseConnection): Promise<{
|
|
80
|
+
modelName: string;
|
|
81
|
+
dimensions: number;
|
|
82
|
+
} | null>;
|
|
83
|
+
/**
|
|
84
|
+
* Sets the model information in system_info table
|
|
85
|
+
* @param connection - Database connection object
|
|
86
|
+
* @param modelName - Name of the embedding model
|
|
87
|
+
* @param dimensions - Number of dimensions for the model
|
|
88
|
+
*/
|
|
89
|
+
export declare function setStoredModelInfo(connection: DatabaseConnection, modelName: string, dimensions: number): Promise<void>;
|
|
90
|
+
//# sourceMappingURL=db.d.ts.map
|
package/dist/db.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAK9B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC;IACrB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyDxE;AA2BD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEpF;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,kBAAkB,EAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,kBAAkB,EAC9B,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,WAAW,EAAE,CAAC,CA4BxB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAO5F;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBzG;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAAC,CAiBR;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|