@nxuss/lemma 0.8.0 → 0.8.2
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 +56 -1
- package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/cjs/cli/lemma-proxy.js +80 -126
- package/dist/cjs/cli/lemma-proxy.js.map +1 -1
- package/dist/cjs/cloud/server.d.ts.map +1 -1
- package/dist/cjs/cloud/server.js +81 -3
- package/dist/cjs/cloud/server.js.map +1 -1
- package/dist/cjs/config/index.d.ts.map +1 -1
- package/dist/cjs/config/index.js +2 -1
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/mcp/tools.js +23 -0
- package/dist/cjs/mcp/tools.js.map +1 -1
- package/dist/cjs/mcp/utils.d.ts +13 -0
- package/dist/cjs/mcp/utils.d.ts.map +1 -1
- package/dist/cjs/mcp/utils.js +61 -0
- package/dist/cjs/mcp/utils.js.map +1 -1
- package/dist/cjs/observability/IdeContextSync.js +3 -3
- package/dist/cjs/observability/IdeContextSync.js.map +1 -1
- package/dist/cjs/proxy/KeyManager.d.ts.map +1 -1
- package/dist/cjs/proxy/KeyManager.js +9 -1
- package/dist/cjs/proxy/KeyManager.js.map +1 -1
- package/dist/cjs/proxy/ProjectStore.d.ts +2 -0
- package/dist/cjs/proxy/ProjectStore.d.ts.map +1 -1
- package/dist/cjs/proxy/ProjectStore.js +3 -1
- package/dist/cjs/proxy/ProjectStore.js.map +1 -1
- package/dist/cjs/proxy/SseRelay.d.ts +4 -25
- package/dist/cjs/proxy/SseRelay.d.ts.map +1 -1
- package/dist/cjs/proxy/SseRelay.js +60 -63
- package/dist/cjs/proxy/SseRelay.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +52 -98
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/cloud/server.d.ts.map +1 -1
- package/dist/esm/cloud/server.js +81 -3
- package/dist/esm/cloud/server.js.map +1 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/index.js +2 -1
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/mcp/tools.js +24 -1
- package/dist/esm/mcp/tools.js.map +1 -1
- package/dist/esm/mcp/utils.d.ts +13 -0
- package/dist/esm/mcp/utils.d.ts.map +1 -1
- package/dist/esm/mcp/utils.js +59 -0
- package/dist/esm/mcp/utils.js.map +1 -1
- package/dist/esm/observability/IdeContextSync.js +1 -1
- package/dist/esm/observability/IdeContextSync.js.map +1 -1
- package/dist/esm/proxy/KeyManager.d.ts.map +1 -1
- package/dist/esm/proxy/KeyManager.js +9 -1
- package/dist/esm/proxy/KeyManager.js.map +1 -1
- package/dist/esm/proxy/ProjectStore.d.ts +2 -0
- package/dist/esm/proxy/ProjectStore.d.ts.map +1 -1
- package/dist/esm/proxy/ProjectStore.js +2 -0
- package/dist/esm/proxy/ProjectStore.js.map +1 -1
- package/dist/esm/proxy/SseRelay.d.ts +4 -25
- package/dist/esm/proxy/SseRelay.d.ts.map +1 -1
- package/dist/esm/proxy/SseRelay.js +60 -60
- package/dist/esm/proxy/SseRelay.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/package.json +4 -1
- package/dist/cjs/protocol/iap.d.ts +0 -54
- package/dist/cjs/protocol/iap.d.ts.map +0 -1
- package/dist/cjs/protocol/iap.js +0 -108
- package/dist/cjs/protocol/iap.js.map +0 -1
- package/dist/cjs/subconscious/cache.d.ts +0 -34
- package/dist/cjs/subconscious/cache.d.ts.map +0 -1
- package/dist/cjs/subconscious/cache.js +0 -156
- package/dist/cjs/subconscious/cache.js.map +0 -1
- package/dist/cjs/subconscious/embeddings.d.ts +0 -25
- package/dist/cjs/subconscious/embeddings.d.ts.map +0 -1
- package/dist/cjs/subconscious/embeddings.js +0 -65
- package/dist/cjs/subconscious/embeddings.js.map +0 -1
- package/dist/esm/protocol/iap.d.ts +0 -54
- package/dist/esm/protocol/iap.d.ts.map +0 -1
- package/dist/esm/protocol/iap.js +0 -104
- package/dist/esm/protocol/iap.js.map +0 -1
- package/dist/esm/subconscious/cache.d.ts +0 -34
- package/dist/esm/subconscious/cache.d.ts.map +0 -1
- package/dist/esm/subconscious/cache.js +0 -152
- package/dist/esm/subconscious/cache.js.map +0 -1
- package/dist/esm/subconscious/embeddings.d.ts +0 -25
- package/dist/esm/subconscious/embeddings.d.ts.map +0 -1
- package/dist/esm/subconscious/embeddings.js +0 -58
- package/dist/esm/subconscious/embeddings.js.map +0 -1
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Semantic cache using ChromaDB for vector storage
|
|
3
|
-
*/
|
|
4
|
-
import { ChromaClient } from 'chromadb';
|
|
5
|
-
import { EmbeddingService } from './embeddings.js';
|
|
6
|
-
export class SemanticCache {
|
|
7
|
-
constructor(host, port, collectionName, embeddingService, similarityThreshold = 0.95) {
|
|
8
|
-
this.collection = null;
|
|
9
|
-
this.client = new ChromaClient({ path: `http://${host}:${port}` });
|
|
10
|
-
this.collectionName = collectionName;
|
|
11
|
-
this.embeddingService = embeddingService;
|
|
12
|
-
this.similarityThreshold = similarityThreshold;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Initialize the ChromaDB collection
|
|
16
|
-
*/
|
|
17
|
-
async initialize() {
|
|
18
|
-
try {
|
|
19
|
-
this.collection = await this.client.getOrCreateCollection({
|
|
20
|
-
name: this.collectionName,
|
|
21
|
-
metadata: { description: 'Subconscious Router semantic cache' },
|
|
22
|
-
});
|
|
23
|
-
console.log(`✓ Semantic cache initialized: ${this.collectionName}`);
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
console.error('Failed to initialize semantic cache:', error);
|
|
27
|
-
throw error;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Search for similar cached tasks
|
|
32
|
-
*/
|
|
33
|
-
async search(taskRequest) {
|
|
34
|
-
if (!this.collection) {
|
|
35
|
-
throw new Error('Cache not initialized');
|
|
36
|
-
}
|
|
37
|
-
try {
|
|
38
|
-
// Generate embedding for the incoming task
|
|
39
|
-
const taskText = EmbeddingService.serializeTask(taskRequest);
|
|
40
|
-
const queryEmbedding = await this.embeddingService.generateEmbedding(taskText);
|
|
41
|
-
// Query ChromaDB for similar entries
|
|
42
|
-
const results = await this.collection.query({
|
|
43
|
-
queryEmbeddings: [queryEmbedding],
|
|
44
|
-
nResults: 1,
|
|
45
|
-
});
|
|
46
|
-
// Check if we have results and if similarity exceeds threshold
|
|
47
|
-
if (results.ids[0].length === 0) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
const similarity = 1 - (results.distances?.[0]?.[0] ?? 1);
|
|
51
|
-
if (similarity < this.similarityThreshold) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
// Retrieve the cached entry
|
|
55
|
-
const metadata = results.metadatas[0][0];
|
|
56
|
-
const document = results.documents[0][0];
|
|
57
|
-
if (!metadata || !document) {
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
const cacheEntry = {
|
|
61
|
-
id: results.ids[0][0],
|
|
62
|
-
taskRequest: JSON.parse(metadata.taskRequest),
|
|
63
|
-
taskResponse: JSON.parse(metadata.taskResponse),
|
|
64
|
-
embedding: queryEmbedding,
|
|
65
|
-
timestamp: metadata.timestamp,
|
|
66
|
-
accessCount: metadata.accessCount + 1,
|
|
67
|
-
};
|
|
68
|
-
// Update access count
|
|
69
|
-
await this.updateAccessCount(cacheEntry.id, cacheEntry.accessCount);
|
|
70
|
-
return cacheEntry;
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
console.error('Cache search failed:', error);
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Store a new task-response pair in the cache
|
|
79
|
-
*/
|
|
80
|
-
async store(taskRequest, taskResponse) {
|
|
81
|
-
if (!this.collection) {
|
|
82
|
-
throw new Error('Cache not initialized');
|
|
83
|
-
}
|
|
84
|
-
try {
|
|
85
|
-
const taskText = EmbeddingService.serializeTask(taskRequest);
|
|
86
|
-
const embedding = await this.embeddingService.generateEmbedding(taskText);
|
|
87
|
-
const id = `cache_${taskRequest.taskId}_${Date.now()}`;
|
|
88
|
-
await this.collection.add({
|
|
89
|
-
ids: [id],
|
|
90
|
-
embeddings: [embedding],
|
|
91
|
-
documents: [taskText],
|
|
92
|
-
metadatas: [{
|
|
93
|
-
taskRequest: JSON.stringify(taskRequest),
|
|
94
|
-
taskResponse: JSON.stringify(taskResponse),
|
|
95
|
-
timestamp: Date.now(),
|
|
96
|
-
accessCount: 0,
|
|
97
|
-
}],
|
|
98
|
-
});
|
|
99
|
-
console.log(`✓ Cached task ${taskRequest.taskId} with similarity indexing`);
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
console.error('Failed to store in cache:', error);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Update access count for a cache entry
|
|
107
|
-
*/
|
|
108
|
-
async updateAccessCount(id, newCount) {
|
|
109
|
-
if (!this.collection)
|
|
110
|
-
return;
|
|
111
|
-
try {
|
|
112
|
-
const result = await this.collection.get({ ids: [id] });
|
|
113
|
-
if (result.metadatas[0]) {
|
|
114
|
-
const metadata = result.metadatas[0];
|
|
115
|
-
metadata.accessCount = newCount;
|
|
116
|
-
await this.collection.update({
|
|
117
|
-
ids: [id],
|
|
118
|
-
metadatas: [metadata],
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
console.error('Failed to update access count:', error);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Clear old cache entries (TTL cleanup)
|
|
128
|
-
*/
|
|
129
|
-
async cleanup(ttl) {
|
|
130
|
-
if (!this.collection)
|
|
131
|
-
return;
|
|
132
|
-
try {
|
|
133
|
-
const now = Date.now();
|
|
134
|
-
const cutoff = now - ttl * 1000;
|
|
135
|
-
const allEntries = await this.collection.get();
|
|
136
|
-
const idsToDelete = [];
|
|
137
|
-
allEntries.metadatas.forEach((metadata, index) => {
|
|
138
|
-
if (metadata && metadata.timestamp < cutoff) {
|
|
139
|
-
idsToDelete.push(allEntries.ids[index]);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
if (idsToDelete.length > 0) {
|
|
143
|
-
await this.collection.delete({ ids: idsToDelete });
|
|
144
|
-
console.log(`✓ Cleaned up ${idsToDelete.length} expired cache entries`);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
catch (error) {
|
|
148
|
-
console.error('Cache cleanup failed:', error);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
//# sourceMappingURL=cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/subconscious/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedding service using Ollama for semantic vectorization
|
|
3
|
-
*/
|
|
4
|
-
export declare class EmbeddingService {
|
|
5
|
-
private baseUrl;
|
|
6
|
-
private model;
|
|
7
|
-
constructor(baseUrl: string, model: string);
|
|
8
|
-
/**
|
|
9
|
-
* Generate embeddings for a given text using Ollama
|
|
10
|
-
*/
|
|
11
|
-
generateEmbedding(text: string): Promise<number[]>;
|
|
12
|
-
/**
|
|
13
|
-
* Calculate cosine similarity between two vectors
|
|
14
|
-
*/
|
|
15
|
-
static cosineSimilarity(vecA: number[], vecB: number[]): number;
|
|
16
|
-
/**
|
|
17
|
-
* Serialize a task request into a searchable string
|
|
18
|
-
*/
|
|
19
|
-
static serializeTask(task: Record<string, unknown> | {
|
|
20
|
-
taskType: string;
|
|
21
|
-
payload?: any;
|
|
22
|
-
context?: any;
|
|
23
|
-
}): string;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=embeddings.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/subconscious/embeddings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;gBAEV,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAK1C;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAcxD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM;IAwB/D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,MAAM;CAOjH"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedding service using Ollama for semantic vectorization
|
|
3
|
-
*/
|
|
4
|
-
import axios from 'axios';
|
|
5
|
-
export class EmbeddingService {
|
|
6
|
-
constructor(baseUrl, model) {
|
|
7
|
-
this.baseUrl = baseUrl;
|
|
8
|
-
this.model = model;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Generate embeddings for a given text using Ollama
|
|
12
|
-
*/
|
|
13
|
-
async generateEmbedding(text) {
|
|
14
|
-
try {
|
|
15
|
-
const response = await axios.post(`${this.baseUrl}/api/embeddings`, {
|
|
16
|
-
model: this.model,
|
|
17
|
-
prompt: text,
|
|
18
|
-
});
|
|
19
|
-
return response.data.embedding;
|
|
20
|
-
}
|
|
21
|
-
catch (error) {
|
|
22
|
-
console.error('Failed to generate embedding:', error);
|
|
23
|
-
throw new Error(`Embedding generation failed: ${error}`);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Calculate cosine similarity between two vectors
|
|
28
|
-
*/
|
|
29
|
-
static cosineSimilarity(vecA, vecB) {
|
|
30
|
-
if (vecA.length !== vecB.length) {
|
|
31
|
-
throw new Error('Vectors must have the same length');
|
|
32
|
-
}
|
|
33
|
-
let dotProduct = 0;
|
|
34
|
-
let normA = 0;
|
|
35
|
-
let normB = 0;
|
|
36
|
-
for (let i = 0; i < vecA.length; i++) {
|
|
37
|
-
dotProduct += vecA[i] * vecB[i];
|
|
38
|
-
normA += vecA[i] * vecA[i];
|
|
39
|
-
normB += vecB[i] * vecB[i];
|
|
40
|
-
}
|
|
41
|
-
const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
|
|
42
|
-
if (magnitude === 0) {
|
|
43
|
-
return 0;
|
|
44
|
-
}
|
|
45
|
-
return dotProduct / magnitude;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Serialize a task request into a searchable string
|
|
49
|
-
*/
|
|
50
|
-
static serializeTask(task) {
|
|
51
|
-
return JSON.stringify({
|
|
52
|
-
taskType: task.taskType,
|
|
53
|
-
payload: task.payload || task.parameters,
|
|
54
|
-
context: task.context,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=embeddings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../../src/subconscious/embeddings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,gBAAgB;IAI3B,YAAY,OAAe,EAAE,KAAa;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,EAAE;gBAClE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAc,EAAE,IAAc;QACpD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAkF;QACrG,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAG,IAAY,CAAC,OAAO,IAAK,IAAY,CAAC,UAAU;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;CACF"}
|