grepmind-config 0.1.0-alpha

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAejC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6B3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAkB,CAAC"}
package/dist/schema.js ADDED
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Zod schema for grepmind.json
3
+ *
4
+ * This schema validates the project configuration file.
5
+ * Note: Secrets (API keys) are NOT stored in the config file.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Embedding provider configuration schema.
10
+ * No secrets - voyageApiKey is passed separately via Secrets.
11
+ */
12
+ export const embeddingConfigSchema = z.object({
13
+ provider: z.enum(['wasm', 'voyage', 'ollama', 'localai']).default('wasm'),
14
+ model: z.string().optional(),
15
+ dimensions: z.number().optional(),
16
+ voyageModel: z.string().optional(),
17
+ localaiBaseUrl: z.string().url().optional(),
18
+ localaiModel: z.string().optional(),
19
+ }).refine((data) => {
20
+ if (data.provider === 'localai' && !data.localaiBaseUrl) {
21
+ return false;
22
+ }
23
+ return true;
24
+ }, { message: "LocalAI provider requires localaiBaseUrl" });
25
+ /**
26
+ * Reranking configuration schema.
27
+ */
28
+ export const rerankingConfigSchema = z.object({
29
+ enabled: z.boolean().default(false),
30
+ provider: z.enum(['none', 'wasm', 'voyage', 'localai']).default('none'),
31
+ topK: z.number().min(10).max(200).default(50),
32
+ prerankThreshold: z.number().min(0).max(1).default(0.3),
33
+ maxDocumentLength: z.number().min(100).max(10000).default(2000),
34
+ batchSize: z.number().min(10).max(1000).default(100),
35
+ wasmModel: z.string().default('Xenova/ms-marco-MiniLM-L-6-v2'),
36
+ voyageModel: z.string().default('rerank-2.5-lite'),
37
+ localaiBaseUrl: z.string().url().default('http://localhost:8080'),
38
+ localaiRerankModel: z.string().default('jina-reranker-v1-base-en'),
39
+ }).refine((data) => {
40
+ if (data.enabled && data.provider === 'none') {
41
+ return false;
42
+ }
43
+ return true;
44
+ }, { message: "Reranking enabled but provider is 'none'" }).refine((data) => {
45
+ if (data.provider === 'localai' && !data.localaiBaseUrl) {
46
+ return false;
47
+ }
48
+ return true;
49
+ }, { message: 'LocalAI reranking provider requires localaiBaseUrl' });
50
+ /**
51
+ * Code indexing configuration schema.
52
+ */
53
+ export const codeConfigSchema = z.object({
54
+ enabled: z.boolean().default(false),
55
+ include: z.array(z.string()).optional(),
56
+ exclude: z.array(z.string()).optional(),
57
+ graph: z.object({
58
+ enabled: z.boolean().default(true),
59
+ quality: z.enum(['fast', 'balanced', 'accurate']).default('balanced'),
60
+ semantic: z.object({
61
+ enabled: z.boolean().default(true),
62
+ maxClosureDepth: z.number().default(3),
63
+ maxClosureFiles: z.number().default(50),
64
+ }).default({}),
65
+ embedded: z.object({
66
+ graphql: z.boolean().default(true),
67
+ css: z.boolean().default(true),
68
+ }).default({}),
69
+ resolution: z.object({
70
+ tsConfigPath: z.string().optional(),
71
+ respectTSPaths: z.boolean().default(true),
72
+ }).default({}),
73
+ }).default({}),
74
+ tree: z.object({
75
+ enabled: z.boolean().default(true),
76
+ embedFiles: z.boolean().default(true),
77
+ repoMapMaxDepth: z.number().int().min(1).max(100).default(10),
78
+ repoMapMaxSymbols: z.number().int().min(1).max(100).default(10),
79
+ retrievalBudgetTokens: z.number().int().min(100).max(50_000).default(3000),
80
+ staleAfterMs: z.number().int().min(1000).max(24 * 60 * 60 * 1000).default(120000),
81
+ }).default({}),
82
+ });
83
+ /**
84
+ * Notes full-text search configuration schema.
85
+ */
86
+ export const notesFtsConfigSchema = z.object({
87
+ enabled: z.boolean().default(true),
88
+ stem: z.boolean().default(true),
89
+ language: z.string().default('English'),
90
+ withPosition: z.boolean().default(true),
91
+ removeStopWords: z.boolean().default(true),
92
+ baseTokenizer: z.enum(['raw', 'simple', 'whitespace', 'ngram']).default('simple'),
93
+ lowercase: z.boolean().optional(),
94
+ asciiFolding: z.boolean().optional(),
95
+ maxTokenLength: z.number().int().positive().optional(),
96
+ });
97
+ /**
98
+ * Code full-text search configuration schema.
99
+ */
100
+ export const codeFtsConfigSchema = z.object({
101
+ enabled: z.boolean().default(true),
102
+ stem: z.boolean().default(false),
103
+ withPosition: z.boolean().default(false),
104
+ removeStopWords: z.boolean().default(false),
105
+ baseTokenizer: z.enum(['raw', 'simple', 'whitespace', 'ngram']).default('ngram'),
106
+ ngramMinLength: z.number().int().positive().optional(),
107
+ ngramMaxLength: z.number().int().positive().optional(),
108
+ prefixOnly: z.boolean().optional(),
109
+ normalizeIdentifiers: z.boolean().default(true),
110
+ });
111
+ /**
112
+ * Git sync configuration schema.
113
+ */
114
+ export const gitSyncConfigSchema = z.object({
115
+ enabled: z.boolean().default(true),
116
+ autoSyncOnStartup: z.boolean().default(true),
117
+ });
118
+ /**
119
+ * LanceDB configuration schema.
120
+ */
121
+ export const lancedbConfigSchema = z.object({
122
+ dbPath: z.string(),
123
+ storageOptions: z.record(z.string()).optional(),
124
+ });
125
+ /**
126
+ * Main config schema.
127
+ * This is what gets saved to grepmind.json.
128
+ */
129
+ export const RAGConfigSchema = z.object({
130
+ name: z.string().optional(),
131
+ vaultPaths: z.array(z.string()).default(['./vault']),
132
+ lancedb: lancedbConfigSchema,
133
+ embedding: embeddingConfigSchema.default({}),
134
+ reranking: rerankingConfigSchema.default({}),
135
+ code: codeConfigSchema.default({}),
136
+ notesFts: notesFtsConfigSchema.default({}),
137
+ codeFts: codeFtsConfigSchema.default({}),
138
+ gitSync: gitSyncConfigSchema.default({}),
139
+ });
140
+ /**
141
+ * Breaking release: no legacy config shape support.
142
+ */
143
+ export const RAGConfigSchemaWithLegacy = RAGConfigSchema;
144
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Secrets handling utilities.
3
+ *
4
+ * Secrets are passed at runtime:
5
+ * - MCP: via environment variables
6
+ * - API: via HTTP headers from frontend
7
+ */
8
+ import type { RAGConfig, Secrets, RuntimeConfig } from './types.js';
9
+ /**
10
+ * Environment variable names for secrets.
11
+ */
12
+ export declare const ENV_VOYAGE_API_KEY = "VOYAGE_API_KEY";
13
+ export declare const ENV_LOCALAI_API_KEY = "LOCALAI_API_KEY";
14
+ export declare const ENV_OLLAMA_BASE_URL = "OLLAMA_BASE_URL";
15
+ export declare const ENV_S3_ACCESS_KEY_ID = "S3_ACCESS_KEY_ID";
16
+ export declare const ENV_S3_SECRET_ACCESS_KEY = "S3_SECRET_ACCESS_KEY";
17
+ export declare const ENV_S3_SESSION_TOKEN = "S3_SESSION_TOKEN";
18
+ export declare const ENV_S3_REGION = "S3_REGION";
19
+ export declare const ENV_S3_ENDPOINT = "S3_ENDPOINT";
20
+ export declare const ENV_AWS_ACCESS_KEY_ID = "AWS_ACCESS_KEY_ID";
21
+ export declare const ENV_AWS_SECRET_ACCESS_KEY = "AWS_SECRET_ACCESS_KEY";
22
+ export declare const ENV_AWS_SESSION_TOKEN = "AWS_SESSION_TOKEN";
23
+ export declare const ENV_AWS_REGION = "AWS_REGION";
24
+ /**
25
+ * HTTP header names for secrets.
26
+ */
27
+ export declare const HEADER_VOYAGE_API_KEY = "x-voyage-api-key";
28
+ export declare const HEADER_LOCALAI_API_KEY = "x-localai-api-key";
29
+ export declare const HEADER_OLLAMA_BASE_URL = "x-ollama-base-url";
30
+ export declare const HEADER_S3_ACCESS_KEY_ID = "x-s3-access-key-id";
31
+ export declare const HEADER_S3_SECRET_ACCESS_KEY = "x-s3-secret-access-key";
32
+ export declare const HEADER_S3_SESSION_TOKEN = "x-s3-session-token";
33
+ export declare const HEADER_S3_REGION = "x-s3-region";
34
+ export declare const HEADER_S3_ENDPOINT = "x-s3-endpoint";
35
+ /**
36
+ * Load secrets from environment variables.
37
+ * Used by MCP server.
38
+ *
39
+ * @returns Secrets loaded from environment
40
+ */
41
+ export declare function loadSecretsFromEnv(): Secrets;
42
+ /**
43
+ * Load secrets from HTTP headers.
44
+ * Used by API server.
45
+ *
46
+ * @param headers - HTTP headers object
47
+ * @returns Secrets extracted from headers
48
+ */
49
+ export declare function loadSecretsFromHeaders(headers: Record<string, string | string[] | undefined>): Secrets;
50
+ /**
51
+ * Create runtime config by combining file config with secrets.
52
+ *
53
+ * @param config - File-based config
54
+ * @param secrets - Runtime secrets
55
+ * @param projectPath - Absolute path to project directory
56
+ * @returns Complete runtime configuration
57
+ */
58
+ export declare function createRuntimeConfig(config: RAGConfig, secrets: Secrets, projectPath: string): RuntimeConfig;
59
+ /**
60
+ * Check if required secrets are present for the configured provider.
61
+ *
62
+ * @param config - RAG configuration
63
+ * @param secrets - Runtime secrets
64
+ * @returns Error message if secrets are missing, null otherwise
65
+ */
66
+ export declare function validateSecrets(config: RAGConfig, secrets: Secrets): string | null;
67
+ /**
68
+ * Merge multiple secrets sources.
69
+ * Later sources override earlier ones.
70
+ *
71
+ * @param sources - Secrets sources to merge
72
+ * @returns Merged secrets
73
+ */
74
+ export declare function mergeSecrets(...sources: Secrets[]): Secrets;
75
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AACjE,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAC1D,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAC5D,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AACpE,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAC5D,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAW5C;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAiBtG;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,GAClB,aAAa,CAMf;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQlF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CA+B3D"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Secrets handling utilities.
3
+ *
4
+ * Secrets are passed at runtime:
5
+ * - MCP: via environment variables
6
+ * - API: via HTTP headers from frontend
7
+ */
8
+ /**
9
+ * Environment variable names for secrets.
10
+ */
11
+ export const ENV_VOYAGE_API_KEY = 'VOYAGE_API_KEY';
12
+ export const ENV_LOCALAI_API_KEY = 'LOCALAI_API_KEY';
13
+ export const ENV_OLLAMA_BASE_URL = 'OLLAMA_BASE_URL';
14
+ export const ENV_S3_ACCESS_KEY_ID = 'S3_ACCESS_KEY_ID';
15
+ export const ENV_S3_SECRET_ACCESS_KEY = 'S3_SECRET_ACCESS_KEY';
16
+ export const ENV_S3_SESSION_TOKEN = 'S3_SESSION_TOKEN';
17
+ export const ENV_S3_REGION = 'S3_REGION';
18
+ export const ENV_S3_ENDPOINT = 'S3_ENDPOINT';
19
+ export const ENV_AWS_ACCESS_KEY_ID = 'AWS_ACCESS_KEY_ID';
20
+ export const ENV_AWS_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY';
21
+ export const ENV_AWS_SESSION_TOKEN = 'AWS_SESSION_TOKEN';
22
+ export const ENV_AWS_REGION = 'AWS_REGION';
23
+ /**
24
+ * HTTP header names for secrets.
25
+ */
26
+ export const HEADER_VOYAGE_API_KEY = 'x-voyage-api-key';
27
+ export const HEADER_LOCALAI_API_KEY = 'x-localai-api-key';
28
+ export const HEADER_OLLAMA_BASE_URL = 'x-ollama-base-url';
29
+ export const HEADER_S3_ACCESS_KEY_ID = 'x-s3-access-key-id';
30
+ export const HEADER_S3_SECRET_ACCESS_KEY = 'x-s3-secret-access-key';
31
+ export const HEADER_S3_SESSION_TOKEN = 'x-s3-session-token';
32
+ export const HEADER_S3_REGION = 'x-s3-region';
33
+ export const HEADER_S3_ENDPOINT = 'x-s3-endpoint';
34
+ /**
35
+ * Load secrets from environment variables.
36
+ * Used by MCP server.
37
+ *
38
+ * @returns Secrets loaded from environment
39
+ */
40
+ export function loadSecretsFromEnv() {
41
+ return {
42
+ voyageApiKey: process.env[ENV_VOYAGE_API_KEY],
43
+ localaiApiKey: process.env[ENV_LOCALAI_API_KEY],
44
+ ollamaBaseUrl: process.env[ENV_OLLAMA_BASE_URL],
45
+ s3AccessKeyId: process.env[ENV_S3_ACCESS_KEY_ID] || process.env[ENV_AWS_ACCESS_KEY_ID],
46
+ s3SecretAccessKey: process.env[ENV_S3_SECRET_ACCESS_KEY] || process.env[ENV_AWS_SECRET_ACCESS_KEY],
47
+ s3SessionToken: process.env[ENV_S3_SESSION_TOKEN] || process.env[ENV_AWS_SESSION_TOKEN],
48
+ s3Region: process.env[ENV_S3_REGION] || process.env[ENV_AWS_REGION],
49
+ s3Endpoint: process.env[ENV_S3_ENDPOINT],
50
+ };
51
+ }
52
+ /**
53
+ * Load secrets from HTTP headers.
54
+ * Used by API server.
55
+ *
56
+ * @param headers - HTTP headers object
57
+ * @returns Secrets extracted from headers
58
+ */
59
+ export function loadSecretsFromHeaders(headers) {
60
+ const getHeader = (name) => {
61
+ const value = headers[name];
62
+ if (Array.isArray(value))
63
+ return value[0];
64
+ return value;
65
+ };
66
+ return {
67
+ voyageApiKey: getHeader(HEADER_VOYAGE_API_KEY),
68
+ localaiApiKey: getHeader(HEADER_LOCALAI_API_KEY),
69
+ ollamaBaseUrl: getHeader(HEADER_OLLAMA_BASE_URL),
70
+ s3AccessKeyId: getHeader(HEADER_S3_ACCESS_KEY_ID),
71
+ s3SecretAccessKey: getHeader(HEADER_S3_SECRET_ACCESS_KEY),
72
+ s3SessionToken: getHeader(HEADER_S3_SESSION_TOKEN),
73
+ s3Region: getHeader(HEADER_S3_REGION),
74
+ s3Endpoint: getHeader(HEADER_S3_ENDPOINT),
75
+ };
76
+ }
77
+ /**
78
+ * Create runtime config by combining file config with secrets.
79
+ *
80
+ * @param config - File-based config
81
+ * @param secrets - Runtime secrets
82
+ * @param projectPath - Absolute path to project directory
83
+ * @returns Complete runtime configuration
84
+ */
85
+ export function createRuntimeConfig(config, secrets, projectPath) {
86
+ return {
87
+ ...config,
88
+ secrets,
89
+ projectPath,
90
+ };
91
+ }
92
+ /**
93
+ * Check if required secrets are present for the configured provider.
94
+ *
95
+ * @param config - RAG configuration
96
+ * @param secrets - Runtime secrets
97
+ * @returns Error message if secrets are missing, null otherwise
98
+ */
99
+ export function validateSecrets(config, secrets) {
100
+ if (config.embedding.provider === 'voyage' && !secrets.voyageApiKey) {
101
+ return 'Voyage API key is required for Voyage embedding provider';
102
+ }
103
+ if (config.reranking.enabled && config.reranking.provider === 'voyage' && !secrets.voyageApiKey) {
104
+ return 'Voyage API key is required for Voyage reranking provider';
105
+ }
106
+ return null;
107
+ }
108
+ /**
109
+ * Merge multiple secrets sources.
110
+ * Later sources override earlier ones.
111
+ *
112
+ * @param sources - Secrets sources to merge
113
+ * @returns Merged secrets
114
+ */
115
+ export function mergeSecrets(...sources) {
116
+ const result = {};
117
+ for (const source of sources) {
118
+ if (source.voyageApiKey) {
119
+ result.voyageApiKey = source.voyageApiKey;
120
+ }
121
+ if (source.localaiApiKey) {
122
+ result.localaiApiKey = source.localaiApiKey;
123
+ }
124
+ if (source.ollamaBaseUrl) {
125
+ result.ollamaBaseUrl = source.ollamaBaseUrl;
126
+ }
127
+ if (source.s3AccessKeyId) {
128
+ result.s3AccessKeyId = source.s3AccessKeyId;
129
+ }
130
+ if (source.s3SecretAccessKey) {
131
+ result.s3SecretAccessKey = source.s3SecretAccessKey;
132
+ }
133
+ if (source.s3SessionToken) {
134
+ result.s3SessionToken = source.s3SessionToken;
135
+ }
136
+ if (source.s3Region) {
137
+ result.s3Region = source.s3Region;
138
+ }
139
+ if (source.s3Endpoint) {
140
+ result.s3Endpoint = source.s3Endpoint;
141
+ }
142
+ }
143
+ return result;
144
+ }
145
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Type definitions for RAG configuration.
3
+ */
4
+ import type { z } from 'zod';
5
+ import type { RAGConfigSchema, embeddingConfigSchema, rerankingConfigSchema, codeConfigSchema, notesFtsConfigSchema, codeFtsConfigSchema, gitSyncConfigSchema, lancedbConfigSchema } from './schema.js';
6
+ /**
7
+ * Embedding configuration (no secrets).
8
+ */
9
+ export type EmbeddingConfig = z.infer<typeof embeddingConfigSchema>;
10
+ /**
11
+ * Reranking configuration (no secrets).
12
+ */
13
+ export type RerankingConfig = z.infer<typeof rerankingConfigSchema>;
14
+ /**
15
+ * Code indexing configuration.
16
+ */
17
+ export type CodeConfig = z.infer<typeof codeConfigSchema>;
18
+ /**
19
+ * Notes FTS configuration.
20
+ */
21
+ export type NotesFtsConfig = z.infer<typeof notesFtsConfigSchema>;
22
+ /**
23
+ * Code FTS configuration.
24
+ */
25
+ export type CodeFtsConfig = z.infer<typeof codeFtsConfigSchema>;
26
+ /**
27
+ * Git sync configuration.
28
+ */
29
+ export type GitSyncConfig = z.infer<typeof gitSyncConfigSchema>;
30
+ /**
31
+ * LanceDB configuration.
32
+ */
33
+ export type LanceDBConfig = z.infer<typeof lancedbConfigSchema>;
34
+ /**
35
+ * Project configuration (stored in grepmind.json).
36
+ * This is the file-based configuration without any secrets.
37
+ */
38
+ export type RAGConfig = z.infer<typeof RAGConfigSchema>;
39
+ /**
40
+ * Embedding provider type.
41
+ */
42
+ export type EmbeddingProvider = 'wasm' | 'voyage' | 'ollama' | 'localai';
43
+ /**
44
+ * Reranking provider type.
45
+ */
46
+ export type RerankingProvider = 'none' | 'wasm' | 'voyage' | 'localai';
47
+ /**
48
+ * Secrets that are passed at runtime.
49
+ * - In MCP: loaded from environment variables
50
+ * - In API: passed via HTTP headers from frontend
51
+ */
52
+ export interface Secrets {
53
+ voyageApiKey?: string;
54
+ localaiApiKey?: string;
55
+ ollamaBaseUrl?: string;
56
+ s3AccessKeyId?: string;
57
+ s3SecretAccessKey?: string;
58
+ s3SessionToken?: string;
59
+ s3Region?: string;
60
+ s3Endpoint?: string;
61
+ }
62
+ /**
63
+ * Runtime configuration that combines file config with secrets.
64
+ * This is what gets used by the indexer and other services.
65
+ */
66
+ export interface RuntimeConfig extends RAGConfig {
67
+ secrets: Secrets;
68
+ projectPath: string;
69
+ }
70
+ /**
71
+ * Options for creating a new project.
72
+ */
73
+ export interface CreateProjectOptions {
74
+ name?: string;
75
+ vaultPaths?: string[];
76
+ lancedb?: Partial<LanceDBConfig>;
77
+ embedding?: Partial<EmbeddingConfig>;
78
+ reranking?: Partial<RerankingConfig>;
79
+ code?: Partial<CodeConfig>;
80
+ notesFts?: Partial<NotesFtsConfig>;
81
+ codeFts?: Partial<CodeFtsConfig>;
82
+ gitSync?: Partial<GitSyncConfig>;
83
+ }
84
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvE;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type definitions for RAG configuration.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "grepmind-config",
3
+ "version": "0.1.0-alpha",
4
+ "description": "Unified config package for RAG project configuration",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md",
17
+ "CLAUDE.md",
18
+ "LICENSE"
19
+ ],
20
+ "license": "Apache-2.0",
21
+ "author": "Zaytra",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/zaytra/rag.git",
25
+ "directory": "packages/config"
26
+ },
27
+ "scripts": {
28
+ "build": "tsc",
29
+ "dev": "tsc --watch",
30
+ "clean": "rm -rf dist"
31
+ },
32
+ "dependencies": {
33
+ "zod": "^3.23.0"
34
+ },
35
+ "devDependencies": {
36
+ "@types/node": "^20.10.0",
37
+ "typescript": "^5.3.0"
38
+ },
39
+ "engines": {
40
+ "node": ">=18.0.0"
41
+ }
42
+ }