@quarry-systems/drift-vector-chroma 0.1.0-alpha.1 → 0.1.1-alpha.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/package.json +2 -2
- package/src/index.d.ts +72 -0
- package/src/index.js +205 -0
- package/src/index.js.map +1 -0
- package/src/plugin.manifest.d.ts +9 -0
- package/src/plugin.manifest.js +47 -0
- package/src/plugin.manifest.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quarry-systems/drift-vector-chroma",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1-alpha.1",
|
|
4
4
|
"description": "Chroma vector store adapter for Drift RAG pipelines",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"vitest": "^2.1.0"
|
|
31
31
|
},
|
|
32
32
|
"files": [
|
|
33
|
-
"
|
|
33
|
+
"src",
|
|
34
34
|
"README.md",
|
|
35
35
|
"LICENSE.md",
|
|
36
36
|
"CHANGELOG.md"
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-2026 Quarry Systems (Brett Nye)
|
|
3
|
+
*
|
|
4
|
+
* This file is part of MCG (Managed Cyclic Graph).
|
|
5
|
+
*
|
|
6
|
+
* MCG is dual-licensed under:
|
|
7
|
+
* 1. GNU Affero General Public License v3.0 (AGPL-3.0)
|
|
8
|
+
* See LICENSE-AGPL or https://www.gnu.org/licenses/agpl-3.0.html
|
|
9
|
+
* 2. Commercial License
|
|
10
|
+
* See LICENSE-COMMERCIAL.md or contact licensing@quarry-systems.com
|
|
11
|
+
*
|
|
12
|
+
* You may use this file under the terms of either license.
|
|
13
|
+
*
|
|
14
|
+
* For commercial licensing inquiries:
|
|
15
|
+
* Email: licensing@quarry-systems.com
|
|
16
|
+
* Web: https://quarry-systems.com/license
|
|
17
|
+
*/
|
|
18
|
+
import type { VectorAdapter } from '@quarry-systems/drift-contracts';
|
|
19
|
+
/**
|
|
20
|
+
* Chroma vector store configuration.
|
|
21
|
+
*/
|
|
22
|
+
export interface ChromaVectorConfig {
|
|
23
|
+
/** Collection name (default: 'mcg_vectors') */
|
|
24
|
+
collection?: string;
|
|
25
|
+
/** Chroma server URL (default: 'http://localhost:8000' for server mode) */
|
|
26
|
+
url?: string;
|
|
27
|
+
/** Path for local persistence (default: in-memory if not specified) */
|
|
28
|
+
persistPath?: string;
|
|
29
|
+
/** Embedding dimension (optional, auto-detected from first insert) */
|
|
30
|
+
dimension?: number;
|
|
31
|
+
/** Distance metric (default: 'cosine') */
|
|
32
|
+
distanceMetric?: 'cosine' | 'l2' | 'ip';
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a Chroma vector adapter.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* // In-memory (for testing)
|
|
40
|
+
* const vectors = await createChromaVector({ collection: 'test' });
|
|
41
|
+
*
|
|
42
|
+
* // Local persistence
|
|
43
|
+
* const vectors = await createChromaVector({
|
|
44
|
+
* collection: 'docs',
|
|
45
|
+
* persistPath: './chroma_data'
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* // Server mode
|
|
49
|
+
* const vectors = await createChromaVector({
|
|
50
|
+
* collection: 'docs',
|
|
51
|
+
* url: 'http://localhost:8000'
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* // Upsert vectors
|
|
55
|
+
* await vectors.upsert([
|
|
56
|
+
* {
|
|
57
|
+
* id: 'doc-1-chunk-0',
|
|
58
|
+
* vector: [0.1, 0.2, 0.3, ...],
|
|
59
|
+
* metadata: { docId: 'doc-1', sequence: 0 },
|
|
60
|
+
* document: 'First paragraph...'
|
|
61
|
+
* }
|
|
62
|
+
* ]);
|
|
63
|
+
*
|
|
64
|
+
* // Query
|
|
65
|
+
* const results = await vectors.query({
|
|
66
|
+
* vector: [0.15, 0.25, 0.35, ...],
|
|
67
|
+
* topK: 5
|
|
68
|
+
* });
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function createChromaVector(config?: ChromaVectorConfig): Promise<VectorAdapter>;
|
|
72
|
+
export type { VectorAdapter, VectorItem, VectorQueryOptions, VectorMatch, } from '@quarry-systems/drift-contracts';
|
package/src/index.js
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2025-2026 Quarry Systems (Brett Nye)
|
|
4
|
+
*
|
|
5
|
+
* This file is part of MCG (Managed Cyclic Graph).
|
|
6
|
+
*
|
|
7
|
+
* MCG is dual-licensed under:
|
|
8
|
+
* 1. GNU Affero General Public License v3.0 (AGPL-3.0)
|
|
9
|
+
* See LICENSE-AGPL or https://www.gnu.org/licenses/agpl-3.0.html
|
|
10
|
+
* 2. Commercial License
|
|
11
|
+
* See LICENSE-COMMERCIAL.md or contact licensing@quarry-systems.com
|
|
12
|
+
*
|
|
13
|
+
* You may use this file under the terms of either license.
|
|
14
|
+
*
|
|
15
|
+
* For commercial licensing inquiries:
|
|
16
|
+
* Email: licensing@quarry-systems.com
|
|
17
|
+
* Web: https://quarry-systems.com/license
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.createChromaVector = createChromaVector;
|
|
21
|
+
/**
|
|
22
|
+
* MCG Chroma Vector Adapter
|
|
23
|
+
*
|
|
24
|
+
* Chroma-based vector storage for semantic search and RAG.
|
|
25
|
+
* Ideal for local development, demos, and indie-tier deployments.
|
|
26
|
+
*
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
const chromadb_1 = require("chromadb");
|
|
30
|
+
// ============================================================================
|
|
31
|
+
// Chroma Vector Implementation
|
|
32
|
+
// ============================================================================
|
|
33
|
+
/**
|
|
34
|
+
* Create a Chroma vector adapter.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* // In-memory (for testing)
|
|
39
|
+
* const vectors = await createChromaVector({ collection: 'test' });
|
|
40
|
+
*
|
|
41
|
+
* // Local persistence
|
|
42
|
+
* const vectors = await createChromaVector({
|
|
43
|
+
* collection: 'docs',
|
|
44
|
+
* persistPath: './chroma_data'
|
|
45
|
+
* });
|
|
46
|
+
*
|
|
47
|
+
* // Server mode
|
|
48
|
+
* const vectors = await createChromaVector({
|
|
49
|
+
* collection: 'docs',
|
|
50
|
+
* url: 'http://localhost:8000'
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* // Upsert vectors
|
|
54
|
+
* await vectors.upsert([
|
|
55
|
+
* {
|
|
56
|
+
* id: 'doc-1-chunk-0',
|
|
57
|
+
* vector: [0.1, 0.2, 0.3, ...],
|
|
58
|
+
* metadata: { docId: 'doc-1', sequence: 0 },
|
|
59
|
+
* document: 'First paragraph...'
|
|
60
|
+
* }
|
|
61
|
+
* ]);
|
|
62
|
+
*
|
|
63
|
+
* // Query
|
|
64
|
+
* const results = await vectors.query({
|
|
65
|
+
* vector: [0.15, 0.25, 0.35, ...],
|
|
66
|
+
* topK: 5
|
|
67
|
+
* });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
async function createChromaVector(config = {}) {
|
|
71
|
+
const collectionName = config.collection || 'mcg_vectors';
|
|
72
|
+
const distanceMetric = config.distanceMetric || 'cosine';
|
|
73
|
+
// Initialize Chroma client
|
|
74
|
+
// Note: ChromaDB JS client defaults to in-memory mode when no path is provided
|
|
75
|
+
const clientConfig = {};
|
|
76
|
+
if (config.url) {
|
|
77
|
+
clientConfig.path = config.url;
|
|
78
|
+
}
|
|
79
|
+
// persistPath is not directly supported by chromadb JS client
|
|
80
|
+
// For persistence, users should run a Chroma server
|
|
81
|
+
const client = new chromadb_1.ChromaClient(clientConfig);
|
|
82
|
+
// Get or create collection
|
|
83
|
+
let collection;
|
|
84
|
+
try {
|
|
85
|
+
collection = await client.getOrCreateCollection({
|
|
86
|
+
name: collectionName,
|
|
87
|
+
metadata: {
|
|
88
|
+
'hnsw:space': distanceMetric,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
throw new Error(`Failed to initialize Chroma collection: ${error}`);
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
name: 'chroma',
|
|
97
|
+
async upsert(items) {
|
|
98
|
+
if (items.length === 0)
|
|
99
|
+
return;
|
|
100
|
+
const ids = items.map(item => item.id);
|
|
101
|
+
const embeddings = items.map(item => item.vector);
|
|
102
|
+
// Convert metadata to Chroma's strict type (string | number | boolean values only)
|
|
103
|
+
const metadatas = items.map(item => {
|
|
104
|
+
if (!item.metadata)
|
|
105
|
+
return {};
|
|
106
|
+
const chromaMeta = {};
|
|
107
|
+
for (const [key, value] of Object.entries(item.metadata)) {
|
|
108
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
109
|
+
chromaMeta[key] = value;
|
|
110
|
+
}
|
|
111
|
+
else if (value !== null && value !== undefined) {
|
|
112
|
+
// Serialize complex values as JSON strings
|
|
113
|
+
chromaMeta[key] = JSON.stringify(value);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return chromaMeta;
|
|
117
|
+
});
|
|
118
|
+
// Filter out undefined documents
|
|
119
|
+
const documents = items.map(item => item.document ?? '');
|
|
120
|
+
await collection.upsert({
|
|
121
|
+
ids,
|
|
122
|
+
embeddings,
|
|
123
|
+
metadatas,
|
|
124
|
+
documents,
|
|
125
|
+
});
|
|
126
|
+
},
|
|
127
|
+
async query(options) {
|
|
128
|
+
const results = await collection.query({
|
|
129
|
+
queryEmbeddings: [options.vector],
|
|
130
|
+
nResults: options.topK,
|
|
131
|
+
where: options.filter,
|
|
132
|
+
include: [
|
|
133
|
+
chromadb_1.IncludeEnum.Metadatas,
|
|
134
|
+
chromadb_1.IncludeEnum.Documents,
|
|
135
|
+
chromadb_1.IncludeEnum.Distances,
|
|
136
|
+
],
|
|
137
|
+
});
|
|
138
|
+
if (!results.ids[0] || results.ids[0].length === 0) {
|
|
139
|
+
return [];
|
|
140
|
+
}
|
|
141
|
+
const matches = [];
|
|
142
|
+
for (let i = 0; i < results.ids[0].length; i++) {
|
|
143
|
+
const id = results.ids[0][i];
|
|
144
|
+
const distance = results.distances?.[0]?.[i] ?? 1;
|
|
145
|
+
// Convert distance to similarity score (0-1, higher is better)
|
|
146
|
+
// For cosine: distance is already 0-2, convert to similarity
|
|
147
|
+
// For L2: distance is euclidean, convert to similarity
|
|
148
|
+
let score;
|
|
149
|
+
if (distanceMetric === 'cosine') {
|
|
150
|
+
// Cosine distance: 0 = identical, 2 = opposite
|
|
151
|
+
score = 1 - (distance / 2);
|
|
152
|
+
}
|
|
153
|
+
else if (distanceMetric === 'l2') {
|
|
154
|
+
// L2 distance: 0 = identical, higher = more different
|
|
155
|
+
// Use exponential decay for similarity
|
|
156
|
+
score = Math.exp(-distance);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Inner product: higher is better (already similarity-like)
|
|
160
|
+
score = distance;
|
|
161
|
+
}
|
|
162
|
+
// Apply minimum score filter
|
|
163
|
+
if (options.minScore !== undefined && score < options.minScore) {
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
matches.push({
|
|
167
|
+
id,
|
|
168
|
+
score,
|
|
169
|
+
metadata: results.metadatas?.[0]?.[i],
|
|
170
|
+
document: results.documents?.[0]?.[i] ?? undefined,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
return matches;
|
|
174
|
+
},
|
|
175
|
+
async delete(ids) {
|
|
176
|
+
if (ids.length === 0)
|
|
177
|
+
return;
|
|
178
|
+
await collection.delete({ ids });
|
|
179
|
+
},
|
|
180
|
+
async get(id) {
|
|
181
|
+
const results = await collection.get({
|
|
182
|
+
ids: [id],
|
|
183
|
+
include: [
|
|
184
|
+
chromadb_1.IncludeEnum.Metadatas,
|
|
185
|
+
chromadb_1.IncludeEnum.Documents,
|
|
186
|
+
chromadb_1.IncludeEnum.Embeddings,
|
|
187
|
+
],
|
|
188
|
+
});
|
|
189
|
+
if (!results.ids || results.ids.length === 0) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
id: results.ids[0],
|
|
194
|
+
vector: results.embeddings?.[0] ?? [],
|
|
195
|
+
metadata: results.metadatas?.[0],
|
|
196
|
+
document: results.documents?.[0] ?? undefined,
|
|
197
|
+
};
|
|
198
|
+
},
|
|
199
|
+
async count() {
|
|
200
|
+
const result = await collection.count();
|
|
201
|
+
return result;
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/drift/drift-plugins/mcg-vector-chroma/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin Manifest for @quarry-systems/mcg-vector-chroma
|
|
3
|
+
*
|
|
4
|
+
* This manifest declares the plugin's metadata, capabilities, and requirements.
|
|
5
|
+
* It enables future security policies, sandboxing, and hosted execution.
|
|
6
|
+
*/
|
|
7
|
+
import type { PluginManifest } from '@quarry-systems/drift-contracts';
|
|
8
|
+
export declare const manifest: PluginManifest;
|
|
9
|
+
export default manifest;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Plugin Manifest for @quarry-systems/mcg-vector-chroma
|
|
4
|
+
*
|
|
5
|
+
* This manifest declares the plugin's metadata, capabilities, and requirements.
|
|
6
|
+
* It enables future security policies, sandboxing, and hosted execution.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.manifest = void 0;
|
|
10
|
+
exports.manifest = {
|
|
11
|
+
name: '@quarry-systems/mcg-vector-chroma',
|
|
12
|
+
version: '0.6.0',
|
|
13
|
+
apiVersion: '1.0',
|
|
14
|
+
description: 'ChromaDB vector store plugin for Managed Cyclic Graph (MCG)',
|
|
15
|
+
author: {
|
|
16
|
+
name: 'Quarry Systems',
|
|
17
|
+
email: 'support@quarrysystems.com',
|
|
18
|
+
},
|
|
19
|
+
license: 'ISC',
|
|
20
|
+
type: ['node'],
|
|
21
|
+
capabilities: {
|
|
22
|
+
network: true, // Makes API calls to ChromaDB
|
|
23
|
+
filesystem: false,
|
|
24
|
+
secrets: false,
|
|
25
|
+
subprocess: false,
|
|
26
|
+
},
|
|
27
|
+
nodes: [],
|
|
28
|
+
services: [
|
|
29
|
+
{
|
|
30
|
+
id: 'chromaVectorStore',
|
|
31
|
+
name: 'Chroma Vector Store Service',
|
|
32
|
+
description: 'ChromaDB-based vector storage and similarity search service',
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
peerDependencies: {
|
|
36
|
+
'@quarry-systems/drift-core': '^0.6.0',
|
|
37
|
+
'@quarry-systems/drift-contracts': '^0.6.0',
|
|
38
|
+
},
|
|
39
|
+
keywords: ['drift', 'mcg', 'managed-cyclic-graph', 'plugin', 'vector', 'chroma', 'chromadb', 'embeddings', 'similarity'],
|
|
40
|
+
repository: {
|
|
41
|
+
type: 'git',
|
|
42
|
+
url: 'https://github.com/quarry-systems/quarry-systems',
|
|
43
|
+
directory: 'libs/drift/drift-plugins/mcg-vector-chroma',
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
exports.default = exports.manifest;
|
|
47
|
+
//# sourceMappingURL=plugin.manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.manifest.js","sourceRoot":"","sources":["../../../../../../libs/drift/drift-plugins/mcg-vector-chroma/src/plugin.manifest.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIU,QAAA,QAAQ,GAAmB;IACtC,IAAI,EAAE,mCAAmC;IACzC,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,KAAK;IAEjB,WAAW,EAAE,6DAA6D;IAE1E,MAAM,EAAE;QACN,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,2BAA2B;KACnC;IAED,OAAO,EAAE,KAAK;IAEd,IAAI,EAAE,CAAC,MAAM,CAAC;IAEd,YAAY,EAAE;QACZ,OAAO,EAAE,IAAI,EAAO,8BAA8B;QAClD,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,KAAK;KAClB;IAED,KAAK,EAAE,EAAE;IAET,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,6BAA6B;YACnC,WAAW,EAAE,6DAA6D;SAC3E;KACF;IAED,gBAAgB,EAAE;QAChB,4BAA4B,EAAE,QAAQ;QACtC,iCAAiC,EAAE,QAAQ;KAC5C;IAED,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC;IAExH,UAAU,EAAE;QACV,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,kDAAkD;QACvD,SAAS,EAAE,4CAA4C;KACxD;CACF,CAAC;AAEF,kBAAe,gBAAQ,CAAC"}
|