mcard-js 2.0.0 → 2.1.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 +91 -3
- package/dist/model/ContentTypeInterpreter.d.ts +16 -0
- package/dist/model/ContentTypeInterpreter.d.ts.map +1 -0
- package/dist/model/ContentTypeInterpreter.js +78 -0
- package/dist/model/ContentTypeInterpreter.js.map +1 -0
- package/dist/model/GTime.d.ts +15 -0
- package/dist/model/GTime.d.ts.map +1 -1
- package/dist/model/GTime.js +44 -2
- package/dist/model/GTime.js.map +1 -1
- package/dist/model/detectors/BaseDetector.d.ts +26 -0
- package/dist/model/detectors/BaseDetector.d.ts.map +1 -0
- package/dist/model/detectors/BaseDetector.js +5 -0
- package/dist/model/detectors/BaseDetector.js.map +1 -0
- package/dist/model/detectors/BinaryDetector.d.ts +12 -0
- package/dist/model/detectors/BinaryDetector.d.ts.map +1 -0
- package/dist/model/detectors/BinaryDetector.js +82 -0
- package/dist/model/detectors/BinaryDetector.js.map +1 -0
- package/dist/model/detectors/DataFormatDetectors.d.ts +29 -0
- package/dist/model/detectors/DataFormatDetectors.d.ts.map +1 -0
- package/dist/model/detectors/DataFormatDetectors.js +223 -0
- package/dist/model/detectors/DataFormatDetectors.js.map +1 -0
- package/dist/model/detectors/LanguageDetector.d.ts +11 -0
- package/dist/model/detectors/LanguageDetector.d.ts.map +1 -0
- package/dist/model/detectors/LanguageDetector.js +148 -0
- package/dist/model/detectors/LanguageDetector.js.map +1 -0
- package/dist/model/detectors/MarkupDetectors.d.ts +22 -0
- package/dist/model/detectors/MarkupDetectors.d.ts.map +1 -0
- package/dist/model/detectors/MarkupDetectors.js +132 -0
- package/dist/model/detectors/MarkupDetectors.js.map +1 -0
- package/dist/model/detectors/OBJDetector.d.ts +8 -0
- package/dist/model/detectors/OBJDetector.d.ts.map +1 -0
- package/dist/model/detectors/OBJDetector.js +48 -0
- package/dist/model/detectors/OBJDetector.js.map +1 -0
- package/dist/model/detectors/registry.d.ts +13 -0
- package/dist/model/detectors/registry.d.ts.map +1 -0
- package/dist/model/detectors/registry.js +67 -0
- package/dist/model/detectors/registry.js.map +1 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts +20 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js +42 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js.map +1 -0
- package/dist/ptr/node/CLMLoader.d.ts.map +1 -1
- package/dist/ptr/node/CLMLoader.js +8 -0
- package/dist/ptr/node/CLMLoader.js.map +1 -1
- package/dist/ptr/node/CLMRunner.d.ts.map +1 -1
- package/dist/ptr/node/CLMRunner.js +4 -3
- package/dist/ptr/node/CLMRunner.js.map +1 -1
- package/dist/ptr/node/Runtimes.d.ts +7 -0
- package/dist/ptr/node/Runtimes.d.ts.map +1 -1
- package/dist/ptr/node/Runtimes.js +94 -3
- package/dist/ptr/node/Runtimes.js.map +1 -1
- package/dist/rag/HandleVectorStore.d.ts +201 -0
- package/dist/rag/HandleVectorStore.d.ts.map +1 -0
- package/dist/rag/HandleVectorStore.js +527 -0
- package/dist/rag/HandleVectorStore.js.map +1 -0
- package/dist/rag/PersistentIndexer.d.ts +144 -0
- package/dist/rag/PersistentIndexer.d.ts.map +1 -0
- package/dist/rag/PersistentIndexer.js +275 -0
- package/dist/rag/PersistentIndexer.js.map +1 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts +87 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts.map +1 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.js +164 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.js.map +1 -0
- package/dist/rag/graph/community.d.ts +56 -0
- package/dist/rag/graph/community.d.ts.map +1 -0
- package/dist/rag/graph/community.js +247 -0
- package/dist/rag/graph/community.js.map +1 -0
- package/dist/rag/graph/extractor.d.ts +99 -0
- package/dist/rag/graph/extractor.d.ts.map +1 -0
- package/dist/rag/graph/extractor.js +210 -0
- package/dist/rag/graph/extractor.js.map +1 -0
- package/dist/rag/graph/store.d.ts +176 -0
- package/dist/rag/graph/store.d.ts.map +1 -0
- package/dist/rag/graph/store.js +504 -0
- package/dist/rag/graph/store.js.map +1 -0
- package/dist/rag/index.d.ts +19 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +24 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/semanticVersioning.d.ts +187 -0
- package/dist/rag/semanticVersioning.d.ts.map +1 -0
- package/dist/rag/semanticVersioning.js +253 -0
- package/dist/rag/semanticVersioning.js.map +1 -0
- package/dist/storage/IndexedDBEngine.d.ts.map +1 -1
- package/dist/storage/IndexedDBEngine.js +9 -1
- package/dist/storage/IndexedDBEngine.js.map +1 -1
- package/dist/storage/SqliteNodeEngine.d.ts.map +1 -1
- package/dist/storage/SqliteNodeEngine.js +26 -4
- package/dist/storage/SqliteNodeEngine.js.map +1 -1
- package/dist/storage/SqliteWasmEngine.d.ts.map +1 -1
- package/dist/storage/SqliteWasmEngine.js +9 -1
- package/dist/storage/SqliteWasmEngine.js.map +1 -1
- package/dist/storage/StorageAdapter.d.ts +2 -0
- package/dist/storage/StorageAdapter.d.ts.map +1 -1
- package/dist/storage/VectorStore.d.ts +28 -5
- package/dist/storage/VectorStore.d.ts.map +1 -1
- package/dist/storage/VectorStore.js +110 -50
- package/dist/storage/VectorStore.js.map +1 -1
- package/dist/storage/schema.d.ts +123 -80
- package/dist/storage/schema.d.ts.map +1 -1
- package/dist/storage/schema.js +305 -217
- package/dist/storage/schema.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handle-Aware Vector Store for Semantic Versioning
|
|
3
|
+
*
|
|
4
|
+
* Extends VectorStore to enable semantic similarity detection
|
|
5
|
+
* across MCard versions linked to handles.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* - Link MCards to handles during indexing
|
|
9
|
+
* - Compare versions within a handle by semantic similarity
|
|
10
|
+
* - Filter searches by handle
|
|
11
|
+
* - Sort version history by distance to current or query
|
|
12
|
+
* - Automatic upgrade type classification based on semantic delta
|
|
13
|
+
*
|
|
14
|
+
* @module mcard-js/rag/HandleVectorStore
|
|
15
|
+
*/
|
|
16
|
+
import { MCard } from '../model/MCard';
|
|
17
|
+
import { MCardVectorStore, VectorStoreConfig } from '../storage/VectorStore';
|
|
18
|
+
export { VectorStoreConfig } from '../storage/VectorStore';
|
|
19
|
+
/**
|
|
20
|
+
* A version in a handle's history with embedding info.
|
|
21
|
+
*/
|
|
22
|
+
export interface HandleVersion {
|
|
23
|
+
hash: string;
|
|
24
|
+
versionOrder: number;
|
|
25
|
+
isCurrent: boolean;
|
|
26
|
+
createdAt: string;
|
|
27
|
+
parentHash?: string;
|
|
28
|
+
embeddingId?: number;
|
|
29
|
+
semanticDelta?: number;
|
|
30
|
+
upgradeType?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Result from version similarity comparison.
|
|
34
|
+
*/
|
|
35
|
+
export interface VersionSimilarityResult {
|
|
36
|
+
hash: string;
|
|
37
|
+
versionOrder: number;
|
|
38
|
+
similarityToCurrent: number;
|
|
39
|
+
distanceToCurrent: number;
|
|
40
|
+
similarityToQuery?: number;
|
|
41
|
+
parentHash?: string;
|
|
42
|
+
upgradeType?: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Classify upgrade type based on semantic similarity to parent.
|
|
46
|
+
*
|
|
47
|
+
* Thresholds:
|
|
48
|
+
* - >= 0.95: trivial (formatting, typo fixes)
|
|
49
|
+
* - 0.85 - 0.94: minor (small edits, clarifications)
|
|
50
|
+
* - 0.70 - 0.84: major (significant content changes)
|
|
51
|
+
* - < 0.70: breaking (major semantic drift)
|
|
52
|
+
*
|
|
53
|
+
* @param semanticDelta Cosine similarity to parent version
|
|
54
|
+
* @returns Upgrade type string
|
|
55
|
+
*/
|
|
56
|
+
export declare function classifyUpgradeType(semanticDelta: number): string;
|
|
57
|
+
/**
|
|
58
|
+
* Calculate Euclidean distance between two vectors.
|
|
59
|
+
*/
|
|
60
|
+
export declare function euclideanDistance(a: number[], b: number[]): number;
|
|
61
|
+
/**
|
|
62
|
+
* Extended vector store with handle-aware version similarity.
|
|
63
|
+
*
|
|
64
|
+
* This class implements the Handle-Hash Duality pattern with semantic
|
|
65
|
+
* awareness, enabling:
|
|
66
|
+
*
|
|
67
|
+
* - Version tracking via handles
|
|
68
|
+
* - Semantic similarity detection across versions
|
|
69
|
+
* - Intelligent upgrade classification
|
|
70
|
+
* - Cross-version semantic search
|
|
71
|
+
*
|
|
72
|
+
* Architecture:
|
|
73
|
+
* - Handles remain stable identifiers (Proxy Pattern)
|
|
74
|
+
* - Hashes reference immutable content (Content-Addressing)
|
|
75
|
+
* - Embeddings enable semantic understanding (Vector Search)
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* const store = new HandleVectorStore(':memory:');
|
|
80
|
+
*
|
|
81
|
+
* // Index with handle association
|
|
82
|
+
* await store.indexWithHandle(mcard, 'my_document');
|
|
83
|
+
*
|
|
84
|
+
* // Get versions sorted by similarity to current
|
|
85
|
+
* const versions = await store.getVersionsBySimilarity('my_document');
|
|
86
|
+
*
|
|
87
|
+
* // Find versions similar to a query
|
|
88
|
+
* const results = await store.searchHandleVersions('my_document', 'machine learning');
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export declare class HandleVectorStore extends MCardVectorStore {
|
|
92
|
+
constructor(dbPath?: string, config?: Partial<VectorStoreConfig>);
|
|
93
|
+
/**
|
|
94
|
+
* Create handle-vector bridge tables for semantic versioning.
|
|
95
|
+
*/
|
|
96
|
+
private initHandleTables;
|
|
97
|
+
/**
|
|
98
|
+
* Index an MCard and associate it with a handle.
|
|
99
|
+
*
|
|
100
|
+
* This method:
|
|
101
|
+
* 1. Indexes the MCard content with embeddings (via base class)
|
|
102
|
+
* 2. Links the MCard hash to the handle with version tracking
|
|
103
|
+
* 3. Computes semantic delta from parent version (if exists)
|
|
104
|
+
* 4. Classifies the upgrade type based on similarity
|
|
105
|
+
*
|
|
106
|
+
* @param mcard MCard to index
|
|
107
|
+
* @param handle Handle name to associate with
|
|
108
|
+
* @param isCurrent Whether this is the current version
|
|
109
|
+
* @param chunk Whether to chunk long content
|
|
110
|
+
* @returns Number of vectors indexed (0 if content couldn't be indexed)
|
|
111
|
+
*/
|
|
112
|
+
indexWithHandle(mcard: MCard, handle: string, isCurrent?: boolean, chunk?: boolean): Promise<number>;
|
|
113
|
+
/**
|
|
114
|
+
* Get all versions for a handle.
|
|
115
|
+
*
|
|
116
|
+
* @param handle Handle name to query
|
|
117
|
+
* @returns List of HandleVersion objects, ordered by version_order (0 = current)
|
|
118
|
+
*/
|
|
119
|
+
getHandleVersions(handle: string): HandleVersion[];
|
|
120
|
+
/**
|
|
121
|
+
* Get all version hashes for a handle.
|
|
122
|
+
*
|
|
123
|
+
* @param handle Handle name to query
|
|
124
|
+
* @returns List of hashes, ordered by version_order
|
|
125
|
+
*/
|
|
126
|
+
getHandleVersionHashes(handle: string): string[];
|
|
127
|
+
/**
|
|
128
|
+
* Get the current version for a handle.
|
|
129
|
+
*
|
|
130
|
+
* @param handle Handle name to query
|
|
131
|
+
* @returns HandleVersion for current version, or undefined if handle not found
|
|
132
|
+
*/
|
|
133
|
+
getCurrentVersion(handle: string): HandleVersion | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* Get versions for a handle, sorted by similarity to a reference.
|
|
136
|
+
*
|
|
137
|
+
* @param handle Handle name
|
|
138
|
+
* @param referenceHash Hash to compare against (default: current version)
|
|
139
|
+
* @param metric 'cosine' (higher = more similar) or 'euclidean' (lower = more similar)
|
|
140
|
+
* @returns List of VersionSimilarityResult, sorted by similarity
|
|
141
|
+
*/
|
|
142
|
+
getVersionsBySimilarity(handle: string, referenceHash?: string, metric?: 'cosine' | 'euclidean'): VersionSimilarityResult[];
|
|
143
|
+
/**
|
|
144
|
+
* Search within a handle's versions by semantic query.
|
|
145
|
+
*
|
|
146
|
+
* Useful for finding which version of a document best matches
|
|
147
|
+
* a specific concept or topic.
|
|
148
|
+
*
|
|
149
|
+
* @param handle Handle name to filter by
|
|
150
|
+
* @param query Search query text
|
|
151
|
+
* @param k Number of results
|
|
152
|
+
* @returns List of VersionSimilarityResult with query similarity scores
|
|
153
|
+
*/
|
|
154
|
+
searchHandleVersions(handle: string, query: string, k?: number): Promise<VersionSimilarityResult[]>;
|
|
155
|
+
/**
|
|
156
|
+
* Compute pairwise cosine similarities between all versions of a handle.
|
|
157
|
+
*
|
|
158
|
+
* Optionally caches results in the version_similarity_cache table.
|
|
159
|
+
*
|
|
160
|
+
* @param handle Handle name
|
|
161
|
+
* @param cache Whether to cache computed similarities
|
|
162
|
+
* @returns Map of (hash_a, hash_b) string key to cosine similarity
|
|
163
|
+
*/
|
|
164
|
+
computeVersionDistances(handle: string, cache?: boolean): Map<string, number>;
|
|
165
|
+
/**
|
|
166
|
+
* Get embedding vector for a hash.
|
|
167
|
+
*
|
|
168
|
+
* @param hash MCard hash
|
|
169
|
+
* @param chunkIndex Chunk index (default 0 for first/whole chunk)
|
|
170
|
+
* @returns Embedding vector as array of floats, or undefined if not found
|
|
171
|
+
*/
|
|
172
|
+
private getEmbedding;
|
|
173
|
+
/**
|
|
174
|
+
* List all handles with indexed versions.
|
|
175
|
+
*
|
|
176
|
+
* @returns List of unique handle names
|
|
177
|
+
*/
|
|
178
|
+
listHandles(): string[];
|
|
179
|
+
/**
|
|
180
|
+
* Count versions for a handle.
|
|
181
|
+
*
|
|
182
|
+
* @param handle Handle name
|
|
183
|
+
* @returns Number of versions
|
|
184
|
+
*/
|
|
185
|
+
countVersions(handle: string): number;
|
|
186
|
+
/**
|
|
187
|
+
* Delete all version records for a handle.
|
|
188
|
+
*
|
|
189
|
+
* Note: This only removes the handle-version associations,
|
|
190
|
+
* not the underlying MCard embeddings.
|
|
191
|
+
*
|
|
192
|
+
* @param handle Handle name
|
|
193
|
+
* @returns Number of version records deleted
|
|
194
|
+
*/
|
|
195
|
+
deleteHandle(handle: string): number;
|
|
196
|
+
/**
|
|
197
|
+
* Get extended vector store information including handle stats.
|
|
198
|
+
*/
|
|
199
|
+
getInfo(): Record<string, unknown>;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=HandleVectorStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HandleVectorStore.d.ts","sourceRoot":"","sources":["../../src/rag/HandleVectorStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAmG,MAAM,wBAAwB,CAAC;AAI9K,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAM3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAUjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAUlE;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;gBAEvC,MAAM,GAAE,MAAmB,EAAE,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAKhF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;;;;;;;;;;;;OAcG;IACG,eAAe,CACjB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,OAAc,EACzB,KAAK,GAAE,OAAc,GACtB,OAAO,CAAC,MAAM,CAAC;IAgHlB;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE;IA8BlD;;;;;OAKG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAKhD;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAsC5D;;;;;;;OAOG;IACH,uBAAuB,CACnB,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,GAAE,QAAQ,GAAG,WAAsB,GAC1C,uBAAuB,EAAE;IA6D5B;;;;;;;;;;OAUG;IACG,oBAAoB,CACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,CAAC,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,uBAAuB,EAAE,CAAC;IA2CrC;;;;;;;;OAQG;IACH,uBAAuB,CACnB,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,OAAc,GACtB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAsDtB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IA4BpB;;;;OAIG;IACH,WAAW,IAAI,MAAM,EAAE;IAOvB;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOrC;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAepC;;OAEG;IACM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAqB9C"}
|