dep-context-mcp 1.0.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/README.md +380 -0
- package/dist/analysis/relationships.d.ts +25 -0
- package/dist/analysis/relationships.d.ts.map +1 -0
- package/dist/analysis/relationships.js +26 -0
- package/dist/analysis/relationships.js.map +1 -0
- package/dist/build-info.d.ts +15 -0
- package/dist/build-info.d.ts.map +1 -0
- package/dist/build-info.js +24 -0
- package/dist/build-info.js.map +1 -0
- package/dist/cache/manager.d.ts +19 -0
- package/dist/cache/manager.d.ts.map +1 -0
- package/dist/cache/manager.js +131 -0
- package/dist/cache/manager.js.map +1 -0
- package/dist/cache/registry.d.ts +44 -0
- package/dist/cache/registry.d.ts.map +1 -0
- package/dist/cache/registry.js +92 -0
- package/dist/cache/registry.js.map +1 -0
- package/dist/config/loader.d.ts +62 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +193 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/extraction/examples.d.ts +22 -0
- package/dist/extraction/examples.d.ts.map +1 -0
- package/dist/extraction/examples.js +109 -0
- package/dist/extraction/examples.js.map +1 -0
- package/dist/extraction/external-resolver.d.ts +26 -0
- package/dist/extraction/external-resolver.d.ts.map +1 -0
- package/dist/extraction/external-resolver.js +79 -0
- package/dist/extraction/external-resolver.js.map +1 -0
- package/dist/extraction/import-tracker.d.ts +58 -0
- package/dist/extraction/import-tracker.d.ts.map +1 -0
- package/dist/extraction/import-tracker.js +113 -0
- package/dist/extraction/import-tracker.js.map +1 -0
- package/dist/extraction/readme.d.ts +19 -0
- package/dist/extraction/readme.d.ts.map +1 -0
- package/dist/extraction/readme.js +79 -0
- package/dist/extraction/readme.js.map +1 -0
- package/dist/extraction/snapshot.d.ts +32 -0
- package/dist/extraction/snapshot.d.ts.map +1 -0
- package/dist/extraction/snapshot.js +258 -0
- package/dist/extraction/snapshot.js.map +1 -0
- package/dist/extraction/typescript.d.ts +104 -0
- package/dist/extraction/typescript.d.ts.map +1 -0
- package/dist/extraction/typescript.js +647 -0
- package/dist/extraction/typescript.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +329 -0
- package/dist/index.js.map +1 -0
- package/dist/resolver/package.d.ts +62 -0
- package/dist/resolver/package.d.ts.map +1 -0
- package/dist/resolver/package.js +334 -0
- package/dist/resolver/package.js.map +1 -0
- package/dist/tools/get-dependency.d.ts +55 -0
- package/dist/tools/get-dependency.d.ts.map +1 -0
- package/dist/tools/get-dependency.js +105 -0
- package/dist/tools/get-dependency.js.map +1 -0
- package/dist/tools/index-dependencies.d.ts +51 -0
- package/dist/tools/index-dependencies.d.ts.map +1 -0
- package/dist/tools/index-dependencies.js +90 -0
- package/dist/tools/index-dependencies.js.map +1 -0
- package/dist/tools/index-status.d.ts +36 -0
- package/dist/tools/index-status.d.ts.map +1 -0
- package/dist/tools/index-status.js +45 -0
- package/dist/tools/index-status.js.map +1 -0
- package/dist/tools/list.d.ts +48 -0
- package/dist/tools/list.d.ts.map +1 -0
- package/dist/tools/list.js +55 -0
- package/dist/tools/list.js.map +1 -0
- package/dist/tools/refresh.d.ts +59 -0
- package/dist/tools/refresh.d.ts.map +1 -0
- package/dist/tools/refresh.js +109 -0
- package/dist/tools/refresh.js.map +1 -0
- package/dist/tools/relationships.d.ts +41 -0
- package/dist/tools/relationships.d.ts.map +1 -0
- package/dist/tools/relationships.js +36 -0
- package/dist/tools/relationships.js.map +1 -0
- package/dist/tools/search-codebase.d.ts +64 -0
- package/dist/tools/search-codebase.d.ts.map +1 -0
- package/dist/tools/search-codebase.js +117 -0
- package/dist/tools/search-codebase.js.map +1 -0
- package/dist/tools/search.d.ts +37 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +77 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/utils/logger.d.ts +19 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +71 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/vector/chroma.d.ts +38 -0
- package/dist/vector/chroma.d.ts.map +1 -0
- package/dist/vector/chroma.js +69 -0
- package/dist/vector/chroma.js.map +1 -0
- package/dist/vector/chunker.d.ts +29 -0
- package/dist/vector/chunker.d.ts.map +1 -0
- package/dist/vector/chunker.js +205 -0
- package/dist/vector/chunker.js.map +1 -0
- package/dist/vector/embeddings.d.ts +36 -0
- package/dist/vector/embeddings.d.ts.map +1 -0
- package/dist/vector/embeddings.js +106 -0
- package/dist/vector/embeddings.js.map +1 -0
- package/dist/vector/file-store.d.ts +10 -0
- package/dist/vector/file-store.d.ts.map +1 -0
- package/dist/vector/file-store.js +80 -0
- package/dist/vector/file-store.js.map +1 -0
- package/dist/vector/index-manager.d.ts +39 -0
- package/dist/vector/index-manager.d.ts.map +1 -0
- package/dist/vector/index-manager.js +105 -0
- package/dist/vector/index-manager.js.map +1 -0
- package/dist/vector/provider-factory.d.ts +23 -0
- package/dist/vector/provider-factory.d.ts.map +1 -0
- package/dist/vector/provider-factory.js +50 -0
- package/dist/vector/provider-factory.js.map +1 -0
- package/dist/vector/storage-factory.d.ts +17 -0
- package/dist/vector/storage-factory.d.ts.map +1 -0
- package/dist/vector/storage-factory.js +55 -0
- package/dist/vector/storage-factory.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding provider factory - auto-detects available providers
|
|
3
|
+
*/
|
|
4
|
+
import { createOllamaProvider, createOpenAIProvider } from './embeddings.js';
|
|
5
|
+
async function checkOllamaAvailable(baseUrl) {
|
|
6
|
+
try {
|
|
7
|
+
const response = await fetch(`${baseUrl}/api/tags`, {
|
|
8
|
+
signal: AbortSignal.timeout(2000)
|
|
9
|
+
});
|
|
10
|
+
return response.ok;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export async function createEmbeddingProviderAuto(config) {
|
|
17
|
+
const ollamaUrl = config.ollama?.baseUrl ?? 'http://localhost:11434';
|
|
18
|
+
// Try configured provider first
|
|
19
|
+
if (config.provider === 'openai') {
|
|
20
|
+
const apiKey = config.openai?.apiKey;
|
|
21
|
+
if (!apiKey) {
|
|
22
|
+
return {
|
|
23
|
+
provider: null,
|
|
24
|
+
name: 'none',
|
|
25
|
+
message: 'OpenAI configured but OPENAI_API_KEY not set'
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const provider = createOpenAIProvider({
|
|
29
|
+
apiKey,
|
|
30
|
+
model: config.openai?.model,
|
|
31
|
+
baseUrl: config.openai?.baseUrl
|
|
32
|
+
});
|
|
33
|
+
return { provider, name: 'openai', message: `Using OpenAI embeddings (${config.openai?.model ?? 'text-embedding-3-small'})` };
|
|
34
|
+
}
|
|
35
|
+
// Ollama (default)
|
|
36
|
+
const ollamaAvailable = await checkOllamaAvailable(ollamaUrl);
|
|
37
|
+
if (!ollamaAvailable) {
|
|
38
|
+
return {
|
|
39
|
+
provider: null,
|
|
40
|
+
name: 'none',
|
|
41
|
+
message: `Ollama not available at ${ollamaUrl}. Install from https://ollama.ai and run: ollama pull nomic-embed-text`
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const provider = createOllamaProvider({
|
|
45
|
+
baseUrl: ollamaUrl,
|
|
46
|
+
model: config.ollama?.model
|
|
47
|
+
});
|
|
48
|
+
return { provider, name: 'ollama', message: `Using Ollama embeddings (${config.ollama?.model ?? 'nomic-embed-text'})` };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=provider-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-factory.js","sourceRoot":"","sources":["../../src/vector/provider-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAqB5E,KAAK,UAAU,oBAAoB,CAAC,OAAe;IACjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,EAAE;YAClD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,EAAE,CAAA;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,MAAuB;IACvE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,wBAAwB,CAAA;IAEpE,gCAAgC;IAChC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAA;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,8CAA8C;aACxD,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC;YACpC,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;YAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO;SAChC,CAAC,CAAA;QACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,wBAAwB,GAAG,EAAE,CAAA;IAC/H,CAAC;IAED,mBAAmB;IACnB,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,2BAA2B,SAAS,wEAAwE;SACtH,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC;QACpC,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;KAC5B,CAAC,CAAA;IACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,kBAAkB,GAAG,EAAE,CAAA;AACzH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage factory - auto-detects available vector storage
|
|
3
|
+
*/
|
|
4
|
+
import type { VectorStore } from './chroma.js';
|
|
5
|
+
export type StorageType = 'auto' | 'chroma' | 'file' | 'none';
|
|
6
|
+
export interface StorageConfig {
|
|
7
|
+
type: StorageType;
|
|
8
|
+
chromaHost?: string;
|
|
9
|
+
localPath?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface StorageResult {
|
|
12
|
+
store: VectorStore | null;
|
|
13
|
+
tier: 'chroma' | 'file' | 'none';
|
|
14
|
+
message: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function createStorage(config: StorageConfig): Promise<StorageResult>;
|
|
17
|
+
//# sourceMappingURL=storage-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-factory.d.ts","sourceRoot":"","sources":["../../src/vector/storage-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAI9C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;AAE7D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,OAAO,EAAE,MAAM,CAAA;CAChB;AAaD,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA0CjF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage factory - auto-detects available vector storage
|
|
3
|
+
*/
|
|
4
|
+
import { createChromaStore } from './chroma.js';
|
|
5
|
+
import { createFileStore } from './file-store.js';
|
|
6
|
+
async function checkChromaAvailable(host) {
|
|
7
|
+
try {
|
|
8
|
+
const response = await fetch(`${host}/api/v2/heartbeat`, {
|
|
9
|
+
signal: AbortSignal.timeout(2000)
|
|
10
|
+
});
|
|
11
|
+
return response.ok;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export async function createStorage(config) {
|
|
18
|
+
const chromaHost = config.chromaHost ?? 'http://localhost:8000';
|
|
19
|
+
const localPath = config.localPath ?? '.cache/dep-context/vectors/index.json';
|
|
20
|
+
// Explicit none
|
|
21
|
+
if (config.type === 'none') {
|
|
22
|
+
return { store: null, tier: 'none', message: 'Vector storage disabled' };
|
|
23
|
+
}
|
|
24
|
+
// Explicit chroma
|
|
25
|
+
if (config.type === 'chroma') {
|
|
26
|
+
const available = await checkChromaAvailable(chromaHost);
|
|
27
|
+
if (!available) {
|
|
28
|
+
return {
|
|
29
|
+
store: null,
|
|
30
|
+
tier: 'none',
|
|
31
|
+
message: `ChromaDB not available at ${chromaHost}`
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const store = await createChromaStore({ host: chromaHost });
|
|
35
|
+
return { store, tier: 'chroma', message: `Using ChromaDB at ${chromaHost}` };
|
|
36
|
+
}
|
|
37
|
+
// Explicit file
|
|
38
|
+
if (config.type === 'file') {
|
|
39
|
+
const store = await createFileStore({ path: localPath });
|
|
40
|
+
return { store, tier: 'file', message: `Using file-based storage at ${localPath}` };
|
|
41
|
+
}
|
|
42
|
+
// Auto: try chroma first, fall back to file
|
|
43
|
+
const chromaAvailable = await checkChromaAvailable(chromaHost);
|
|
44
|
+
if (chromaAvailable) {
|
|
45
|
+
const store = await createChromaStore({ host: chromaHost });
|
|
46
|
+
return { store, tier: 'chroma', message: `Using ChromaDB at ${chromaHost}` };
|
|
47
|
+
}
|
|
48
|
+
const store = await createFileStore({ path: localPath });
|
|
49
|
+
return {
|
|
50
|
+
store,
|
|
51
|
+
tier: 'file',
|
|
52
|
+
message: `ChromaDB not available, using file-based storage. For better performance: docker run -d -p 8000:8000 chromadb/chroma`
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=storage-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-factory.js","sourceRoot":"","sources":["../../src/vector/storage-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAgBjD,KAAK,UAAU,oBAAoB,CAAC,IAAY;IAC9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,mBAAmB,EAAE;YACvD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,EAAE,CAAA;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAqB;IACvD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,uBAAuB,CAAA;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,uCAAuC,CAAA;IAE7E,gBAAgB;IAChB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAA;IAC1E,CAAC;IAED,kBAAkB;IAClB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAA;QACxD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,6BAA6B,UAAU,EAAE;aACnD,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,UAAU,EAAE,EAAE,CAAA;IAC9E,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACxD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,+BAA+B,SAAS,EAAE,EAAE,CAAA;IACrF,CAAC;IAED,4CAA4C;IAC5C,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAA;IAC9D,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,UAAU,EAAE,EAAE,CAAA;IAC9E,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IACxD,OAAO;QACL,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,sHAAsH;KAChI,CAAA;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dep-context-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server providing AI coding assistants with dependency context from node_modules",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"dep-context-mcp": "dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mcp",
|
|
17
|
+
"model-context-protocol",
|
|
18
|
+
"ai",
|
|
19
|
+
"coding-assistant",
|
|
20
|
+
"typescript",
|
|
21
|
+
"dependencies",
|
|
22
|
+
"node-modules"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "node scripts/generate-build-info.js && tsc",
|
|
26
|
+
"dev": "tsc --watch",
|
|
27
|
+
"start": "node dist/index.js",
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"test:watch": "vitest",
|
|
30
|
+
"lint": "eslint src/",
|
|
31
|
+
"clean": "rm -rf dist",
|
|
32
|
+
"release": "node scripts/release.js",
|
|
33
|
+
"generate-build-info": "node scripts/generate-build-info.js"
|
|
34
|
+
},
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://github.com/jarecsni/dep-context-mcp.git"
|
|
38
|
+
},
|
|
39
|
+
"author": "Johnny Jarecsni",
|
|
40
|
+
"license": "MIT",
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
43
|
+
"chromadb": "^3.2.2",
|
|
44
|
+
"dotenv": "^17.2.3"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@fast-check/vitest": "^0.2.4",
|
|
48
|
+
"@types/node": "^22.0.0",
|
|
49
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
50
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
51
|
+
"@vitest/coverage-v8": "^2.1.9",
|
|
52
|
+
"eslint": "^9.0.0",
|
|
53
|
+
"fast-check": "^3.23.0",
|
|
54
|
+
"typescript": "^5.7.0",
|
|
55
|
+
"vitest": "^2.1.0"
|
|
56
|
+
},
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": ">=20.0.0"
|
|
59
|
+
}
|
|
60
|
+
}
|