linguclaw 0.4.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/LICENSE +21 -0
- package/README.md +161 -0
- package/dist/agent-system.d.ts +196 -0
- package/dist/agent-system.d.ts.map +1 -0
- package/dist/agent-system.js +738 -0
- package/dist/agent-system.js.map +1 -0
- package/dist/alphabeta.d.ts +54 -0
- package/dist/alphabeta.d.ts.map +1 -0
- package/dist/alphabeta.js +193 -0
- package/dist/alphabeta.js.map +1 -0
- package/dist/browser.d.ts +62 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +224 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +565 -0
- package/dist/cli.js.map +1 -0
- package/dist/code-parser.d.ts +39 -0
- package/dist/code-parser.d.ts.map +1 -0
- package/dist/code-parser.js +385 -0
- package/dist/code-parser.js.map +1 -0
- package/dist/config.d.ts +66 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +232 -0
- package/dist/config.js.map +1 -0
- package/dist/core/engine.d.ts +359 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +127 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/daemon.d.ts +29 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +212 -0
- package/dist/daemon.js.map +1 -0
- package/dist/email-receiver.d.ts +63 -0
- package/dist/email-receiver.d.ts.map +1 -0
- package/dist/email-receiver.js +553 -0
- package/dist/email-receiver.js.map +1 -0
- package/dist/git-integration.d.ts +180 -0
- package/dist/git-integration.d.ts.map +1 -0
- package/dist/git-integration.js +850 -0
- package/dist/git-integration.js.map +1 -0
- package/dist/inbox.d.ts +84 -0
- package/dist/inbox.d.ts.map +1 -0
- package/dist/inbox.js +198 -0
- package/dist/inbox.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/cpp.d.ts +51 -0
- package/dist/languages/cpp.d.ts.map +1 -0
- package/dist/languages/cpp.js +930 -0
- package/dist/languages/cpp.js.map +1 -0
- package/dist/languages/csharp.d.ts +79 -0
- package/dist/languages/csharp.d.ts.map +1 -0
- package/dist/languages/csharp.js +1776 -0
- package/dist/languages/csharp.js.map +1 -0
- package/dist/languages/go.d.ts +50 -0
- package/dist/languages/go.d.ts.map +1 -0
- package/dist/languages/go.js +882 -0
- package/dist/languages/go.js.map +1 -0
- package/dist/languages/java.d.ts +47 -0
- package/dist/languages/java.d.ts.map +1 -0
- package/dist/languages/java.js +649 -0
- package/dist/languages/java.js.map +1 -0
- package/dist/languages/python.d.ts +47 -0
- package/dist/languages/python.d.ts.map +1 -0
- package/dist/languages/python.js +655 -0
- package/dist/languages/python.js.map +1 -0
- package/dist/languages/rust.d.ts +61 -0
- package/dist/languages/rust.d.ts.map +1 -0
- package/dist/languages/rust.js +1064 -0
- package/dist/languages/rust.js.map +1 -0
- package/dist/logger.d.ts +20 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +133 -0
- package/dist/logger.js.map +1 -0
- package/dist/longterm-memory.d.ts +47 -0
- package/dist/longterm-memory.d.ts.map +1 -0
- package/dist/longterm-memory.js +300 -0
- package/dist/longterm-memory.js.map +1 -0
- package/dist/memory.d.ts +42 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +274 -0
- package/dist/memory.js.map +1 -0
- package/dist/messaging.d.ts +103 -0
- package/dist/messaging.d.ts.map +1 -0
- package/dist/messaging.js +645 -0
- package/dist/messaging.js.map +1 -0
- package/dist/multi-provider.d.ts +69 -0
- package/dist/multi-provider.d.ts.map +1 -0
- package/dist/multi-provider.js +484 -0
- package/dist/multi-provider.js.map +1 -0
- package/dist/orchestrator.d.ts +65 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +441 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/plugins.d.ts +52 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +215 -0
- package/dist/plugins.js.map +1 -0
- package/dist/prism-orchestrator.d.ts +26 -0
- package/dist/prism-orchestrator.d.ts.map +1 -0
- package/dist/prism-orchestrator.js +191 -0
- package/dist/prism-orchestrator.js.map +1 -0
- package/dist/prism.d.ts +46 -0
- package/dist/prism.d.ts.map +1 -0
- package/dist/prism.js +188 -0
- package/dist/prism.js.map +1 -0
- package/dist/privacy.d.ts +23 -0
- package/dist/privacy.d.ts.map +1 -0
- package/dist/privacy.js +220 -0
- package/dist/privacy.js.map +1 -0
- package/dist/proactive.d.ts +30 -0
- package/dist/proactive.d.ts.map +1 -0
- package/dist/proactive.js +260 -0
- package/dist/proactive.js.map +1 -0
- package/dist/refactoring-engine.d.ts +100 -0
- package/dist/refactoring-engine.d.ts.map +1 -0
- package/dist/refactoring-engine.js +717 -0
- package/dist/refactoring-engine.js.map +1 -0
- package/dist/resilience.d.ts +43 -0
- package/dist/resilience.d.ts.map +1 -0
- package/dist/resilience.js +200 -0
- package/dist/resilience.js.map +1 -0
- package/dist/safety.d.ts +40 -0
- package/dist/safety.d.ts.map +1 -0
- package/dist/safety.js +133 -0
- package/dist/safety.js.map +1 -0
- package/dist/sandbox.d.ts +33 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +173 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/scheduler.d.ts +72 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +374 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/semantic-memory.d.ts +70 -0
- package/dist/semantic-memory.d.ts.map +1 -0
- package/dist/semantic-memory.js +430 -0
- package/dist/semantic-memory.js.map +1 -0
- package/dist/skills.d.ts +97 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +575 -0
- package/dist/skills.js.map +1 -0
- package/dist/static/dashboard.html +853 -0
- package/dist/static/hub.html +772 -0
- package/dist/static/index.html +818 -0
- package/dist/static/logo.svg +24 -0
- package/dist/static/workflow-editor.html +913 -0
- package/dist/tools.d.ts +67 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +303 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +295 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +90 -0
- package/dist/types.js.map +1 -0
- package/dist/web.d.ts +76 -0
- package/dist/web.d.ts.map +1 -0
- package/dist/web.js +2139 -0
- package/dist/web.js.map +1 -0
- package/dist/workflow-engine.d.ts +114 -0
- package/dist/workflow-engine.d.ts.map +1 -0
- package/dist/workflow-engine.js +855 -0
- package/dist/workflow-engine.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Memory - TF-IDF based vector search using SQLite
|
|
3
|
+
* No external API or ML library required. Production-ready.
|
|
4
|
+
*/
|
|
5
|
+
interface SearchResult {
|
|
6
|
+
id: string;
|
|
7
|
+
content: string;
|
|
8
|
+
category: string;
|
|
9
|
+
metadata: Record<string, any>;
|
|
10
|
+
score: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* SemanticMemory - Full semantic search with TF-IDF vectors stored in SQLite
|
|
14
|
+
*/
|
|
15
|
+
export declare class SemanticMemory {
|
|
16
|
+
private db;
|
|
17
|
+
private vectorizer;
|
|
18
|
+
private dbPath;
|
|
19
|
+
private dirty;
|
|
20
|
+
private initialized;
|
|
21
|
+
constructor(dbPath?: string);
|
|
22
|
+
init(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Store a document with automatic embedding
|
|
25
|
+
*/
|
|
26
|
+
store(id: string, content: string, category?: string, metadata?: Record<string, any>): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Semantic search - find documents similar to query
|
|
29
|
+
*/
|
|
30
|
+
search(query: string, limit?: number, category?: string, minScore?: number): SearchResult[];
|
|
31
|
+
/**
|
|
32
|
+
* Text-based fallback search
|
|
33
|
+
*/
|
|
34
|
+
private textSearch;
|
|
35
|
+
/**
|
|
36
|
+
* Rebuild TF-IDF index from all documents
|
|
37
|
+
*/
|
|
38
|
+
rebuildIndex(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Retrieve a specific document by ID
|
|
41
|
+
*/
|
|
42
|
+
get(id: string): {
|
|
43
|
+
content: string;
|
|
44
|
+
category: string;
|
|
45
|
+
metadata: Record<string, any>;
|
|
46
|
+
} | null;
|
|
47
|
+
/**
|
|
48
|
+
* Delete a document
|
|
49
|
+
*/
|
|
50
|
+
delete(id: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Get stats
|
|
53
|
+
*/
|
|
54
|
+
getStats(): {
|
|
55
|
+
totalDocuments: number;
|
|
56
|
+
categories: Record<string, number>;
|
|
57
|
+
vocabularySize: number;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Find similar documents to a given document
|
|
61
|
+
*/
|
|
62
|
+
findSimilar(docId: string, limit?: number): SearchResult[];
|
|
63
|
+
/**
|
|
64
|
+
* Close database connection
|
|
65
|
+
*/
|
|
66
|
+
close(): void;
|
|
67
|
+
}
|
|
68
|
+
export declare function getSemanticMemory(): SemanticMemory;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=semantic-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-memory.d.ts","sourceRoot":"","sources":["../src/semantic-memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAqJD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,CAAC,EAAE,MAAM;IAK3B,IAAI,IAAI,OAAO;IA8Cf;;OAEG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO;IAoB7G;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAa,GAAG,YAAY,EAAE;IAwDrG;;OAEG;IACH,OAAO,CAAC,UAAU;IA2BlB;;OAEG;IACH,YAAY,IAAI,IAAI;IAqCpB;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,IAAI;IAa5F;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAY3B;;OAEG;IACH,QAAQ,IAAI;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAsBlG;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,YAAY,EAAE;IAM7D;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd;AAKD,wBAAgB,iBAAiB,IAAI,cAAc,CAMlD"}
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Semantic Memory - TF-IDF based vector search using SQLite
|
|
4
|
+
* No external API or ML library required. Production-ready.
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SemanticMemory = void 0;
|
|
11
|
+
exports.getSemanticMemory = getSemanticMemory;
|
|
12
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const logger_1 = require("./logger");
|
|
16
|
+
const logger = (0, logger_1.getLogger)();
|
|
17
|
+
/**
|
|
18
|
+
* TF-IDF Vectorizer - converts text to numerical vectors for similarity search
|
|
19
|
+
*/
|
|
20
|
+
class TFIDFVectorizer {
|
|
21
|
+
vocabulary = new Map();
|
|
22
|
+
idf = new Map();
|
|
23
|
+
vocabSize = 0;
|
|
24
|
+
documentCount = 0;
|
|
25
|
+
documentFreq = new Map();
|
|
26
|
+
// Tokenize text into terms
|
|
27
|
+
tokenize(text) {
|
|
28
|
+
return text
|
|
29
|
+
.toLowerCase()
|
|
30
|
+
.replace(/[^\w\s]/g, ' ')
|
|
31
|
+
.split(/\s+/)
|
|
32
|
+
.filter(t => t.length > 1 && t.length < 50)
|
|
33
|
+
.filter(t => !this.isStopWord(t));
|
|
34
|
+
}
|
|
35
|
+
isStopWord(word) {
|
|
36
|
+
const stopWords = new Set([
|
|
37
|
+
'the', 'a', 'an', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
|
|
38
|
+
'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
|
|
39
|
+
'should', 'may', 'might', 'shall', 'can', 'need', 'dare', 'ought',
|
|
40
|
+
'used', 'to', 'of', 'in', 'for', 'on', 'with', 'at', 'by', 'from',
|
|
41
|
+
'as', 'into', 'through', 'during', 'before', 'after', 'above', 'below',
|
|
42
|
+
'between', 'out', 'off', 'over', 'under', 'again', 'further', 'then',
|
|
43
|
+
'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'each',
|
|
44
|
+
'every', 'both', 'few', 'more', 'most', 'other', 'some', 'such', 'no',
|
|
45
|
+
'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 'just',
|
|
46
|
+
'because', 'but', 'and', 'or', 'if', 'while', 'that', 'this', 'it',
|
|
47
|
+
'its', 'his', 'her', 'their', 'my', 'your', 'our', 'we', 'they',
|
|
48
|
+
'he', 'she', 'me', 'him', 'them', 'what', 'which', 'who', 'whom',
|
|
49
|
+
've', 've', 'll', 're', 'don', 'doesn', 'didn', 'won', 'wouldn',
|
|
50
|
+
'bir', 've', 'ile', 'bu', 'da', 'de', 'den', 'dan', 'bir',
|
|
51
|
+
'var', 'yok', 'ama', 'fakat', 'icin', 'için', 'gibi', 'kadar',
|
|
52
|
+
]);
|
|
53
|
+
return stopWords.has(word);
|
|
54
|
+
}
|
|
55
|
+
// Build or update vocabulary from a set of documents
|
|
56
|
+
buildVocabulary(documents) {
|
|
57
|
+
this.documentCount = documents.length;
|
|
58
|
+
this.documentFreq.clear();
|
|
59
|
+
// Count document frequency for each term
|
|
60
|
+
for (const doc of documents) {
|
|
61
|
+
const terms = new Set(this.tokenize(doc));
|
|
62
|
+
for (const term of terms) {
|
|
63
|
+
this.documentFreq.set(term, (this.documentFreq.get(term) || 0) + 1);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Build vocabulary (top N terms by document frequency, excluding very rare)
|
|
67
|
+
const maxVocab = 5000;
|
|
68
|
+
const sorted = Array.from(this.documentFreq.entries())
|
|
69
|
+
.filter(([_, freq]) => freq >= 1) // At least 1 document
|
|
70
|
+
.sort((a, b) => b[1] - a[1])
|
|
71
|
+
.slice(0, maxVocab);
|
|
72
|
+
this.vocabulary.clear();
|
|
73
|
+
sorted.forEach(([term], idx) => this.vocabulary.set(term, idx));
|
|
74
|
+
this.vocabSize = this.vocabulary.size;
|
|
75
|
+
// Compute IDF
|
|
76
|
+
this.idf.clear();
|
|
77
|
+
for (const [term, freq] of this.documentFreq) {
|
|
78
|
+
if (this.vocabulary.has(term)) {
|
|
79
|
+
this.idf.set(term, Math.log((this.documentCount + 1) / (freq + 1)) + 1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Convert text to TF-IDF vector
|
|
84
|
+
vectorize(text) {
|
|
85
|
+
if (this.vocabSize === 0)
|
|
86
|
+
return [];
|
|
87
|
+
const terms = this.tokenize(text);
|
|
88
|
+
const tf = new Map();
|
|
89
|
+
// Count term frequency
|
|
90
|
+
for (const term of terms) {
|
|
91
|
+
tf.set(term, (tf.get(term) || 0) + 1);
|
|
92
|
+
}
|
|
93
|
+
// Build TF-IDF vector
|
|
94
|
+
const vector = new Array(this.vocabSize).fill(0);
|
|
95
|
+
const totalTerms = terms.length || 1;
|
|
96
|
+
for (const [term, count] of tf) {
|
|
97
|
+
const idx = this.vocabulary.get(term);
|
|
98
|
+
if (idx !== undefined) {
|
|
99
|
+
const termFreq = count / totalTerms;
|
|
100
|
+
const idfVal = this.idf.get(term) || 1;
|
|
101
|
+
vector[idx] = termFreq * idfVal;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// L2 normalize
|
|
105
|
+
const norm = Math.sqrt(vector.reduce((sum, v) => sum + v * v, 0));
|
|
106
|
+
if (norm > 0) {
|
|
107
|
+
for (let i = 0; i < vector.length; i++) {
|
|
108
|
+
vector[i] /= norm;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return vector;
|
|
112
|
+
}
|
|
113
|
+
// Compute cosine similarity between two vectors
|
|
114
|
+
static cosineSimilarity(a, b) {
|
|
115
|
+
if (a.length !== b.length || a.length === 0)
|
|
116
|
+
return 0;
|
|
117
|
+
let dot = 0;
|
|
118
|
+
for (let i = 0; i < a.length; i++) {
|
|
119
|
+
dot += a[i] * b[i];
|
|
120
|
+
}
|
|
121
|
+
return dot; // Vectors are already L2 normalized
|
|
122
|
+
}
|
|
123
|
+
// Serialize/deserialize for persistence
|
|
124
|
+
serialize() {
|
|
125
|
+
return JSON.stringify({
|
|
126
|
+
vocabulary: Array.from(this.vocabulary.entries()),
|
|
127
|
+
idf: Array.from(this.idf.entries()),
|
|
128
|
+
vocabSize: this.vocabSize,
|
|
129
|
+
documentCount: this.documentCount,
|
|
130
|
+
documentFreq: Array.from(this.documentFreq.entries()),
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
static deserialize(data) {
|
|
134
|
+
const v = new TFIDFVectorizer();
|
|
135
|
+
try {
|
|
136
|
+
const parsed = JSON.parse(data);
|
|
137
|
+
v.vocabulary = new Map(parsed.vocabulary);
|
|
138
|
+
v.idf = new Map(parsed.idf);
|
|
139
|
+
v.vocabSize = parsed.vocabSize;
|
|
140
|
+
v.documentCount = parsed.documentCount;
|
|
141
|
+
v.documentFreq = new Map(parsed.documentFreq);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
logger.warn(`Failed to deserialize vectorizer: ${err.message}`);
|
|
145
|
+
}
|
|
146
|
+
return v;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* SemanticMemory - Full semantic search with TF-IDF vectors stored in SQLite
|
|
151
|
+
*/
|
|
152
|
+
class SemanticMemory {
|
|
153
|
+
db = null;
|
|
154
|
+
vectorizer;
|
|
155
|
+
dbPath;
|
|
156
|
+
dirty = false; // Needs re-vectorization
|
|
157
|
+
initialized = false;
|
|
158
|
+
constructor(dbPath) {
|
|
159
|
+
this.dbPath = dbPath || path_1.default.join(process.env.HOME || '~', '.linguclaw', 'semantic-memory.db');
|
|
160
|
+
this.vectorizer = new TFIDFVectorizer();
|
|
161
|
+
}
|
|
162
|
+
init() {
|
|
163
|
+
try {
|
|
164
|
+
const dir = path_1.default.dirname(this.dbPath);
|
|
165
|
+
if (!fs_1.default.existsSync(dir))
|
|
166
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
167
|
+
this.db = new better_sqlite3_1.default(this.dbPath);
|
|
168
|
+
// Create tables
|
|
169
|
+
this.db.exec(`
|
|
170
|
+
CREATE TABLE IF NOT EXISTS documents (
|
|
171
|
+
id TEXT PRIMARY KEY,
|
|
172
|
+
content TEXT NOT NULL,
|
|
173
|
+
category TEXT DEFAULT 'general',
|
|
174
|
+
metadata TEXT DEFAULT '{}',
|
|
175
|
+
embedding TEXT DEFAULT '[]',
|
|
176
|
+
created_at TEXT NOT NULL,
|
|
177
|
+
updated_at TEXT NOT NULL
|
|
178
|
+
)
|
|
179
|
+
`);
|
|
180
|
+
this.db.exec(`
|
|
181
|
+
CREATE TABLE IF NOT EXISTS vectorizer_state (
|
|
182
|
+
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
183
|
+
state TEXT NOT NULL,
|
|
184
|
+
updated_at TEXT NOT NULL
|
|
185
|
+
)
|
|
186
|
+
`);
|
|
187
|
+
this.db.exec('CREATE INDEX IF NOT EXISTS idx_doc_category ON documents(category)');
|
|
188
|
+
this.db.exec('CREATE INDEX IF NOT EXISTS idx_doc_created ON documents(created_at)');
|
|
189
|
+
// Restore vectorizer state
|
|
190
|
+
const stateRow = this.db.prepare('SELECT state FROM vectorizer_state WHERE id = 1').get();
|
|
191
|
+
if (stateRow) {
|
|
192
|
+
this.vectorizer = TFIDFVectorizer.deserialize(stateRow.state);
|
|
193
|
+
}
|
|
194
|
+
this.initialized = true;
|
|
195
|
+
logger.info(`Semantic memory initialized at ${this.dbPath}`);
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
logger.error(`Semantic memory init failed: ${err.message}`);
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Store a document with automatic embedding
|
|
205
|
+
*/
|
|
206
|
+
store(id, content, category = 'general', metadata = {}) {
|
|
207
|
+
if (!this.db || !this.initialized)
|
|
208
|
+
return false;
|
|
209
|
+
try {
|
|
210
|
+
const now = new Date().toISOString();
|
|
211
|
+
const embedding = this.vectorizer.vectorize(content);
|
|
212
|
+
this.db.prepare(`
|
|
213
|
+
INSERT OR REPLACE INTO documents (id, content, category, metadata, embedding, created_at, updated_at)
|
|
214
|
+
VALUES (?, ?, ?, ?, ?, COALESCE((SELECT created_at FROM documents WHERE id = ?), ?), ?)
|
|
215
|
+
`).run(id, content, category, JSON.stringify(metadata), JSON.stringify(embedding), id, now, now);
|
|
216
|
+
this.dirty = true;
|
|
217
|
+
return true;
|
|
218
|
+
}
|
|
219
|
+
catch (err) {
|
|
220
|
+
logger.error(`Semantic store failed for ${id}: ${err.message}`);
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Semantic search - find documents similar to query
|
|
226
|
+
*/
|
|
227
|
+
search(query, limit = 10, category, minScore = 0.05) {
|
|
228
|
+
if (!this.db || !this.initialized)
|
|
229
|
+
return [];
|
|
230
|
+
try {
|
|
231
|
+
// Rebuild index if needed
|
|
232
|
+
if (this.dirty) {
|
|
233
|
+
this.rebuildIndex();
|
|
234
|
+
}
|
|
235
|
+
const queryVector = this.vectorizer.vectorize(query);
|
|
236
|
+
if (queryVector.length === 0) {
|
|
237
|
+
// Fallback to text search if vectorizer has no vocabulary
|
|
238
|
+
return this.textSearch(query, limit, category);
|
|
239
|
+
}
|
|
240
|
+
// Load all documents and compute similarity
|
|
241
|
+
let sql = 'SELECT id, content, category, metadata, embedding FROM documents';
|
|
242
|
+
const params = [];
|
|
243
|
+
if (category) {
|
|
244
|
+
sql += ' WHERE category = ?';
|
|
245
|
+
params.push(category);
|
|
246
|
+
}
|
|
247
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
248
|
+
const scored = [];
|
|
249
|
+
for (const row of rows) {
|
|
250
|
+
try {
|
|
251
|
+
const docVector = JSON.parse(row.embedding);
|
|
252
|
+
if (docVector.length !== queryVector.length)
|
|
253
|
+
continue;
|
|
254
|
+
const score = TFIDFVectorizer.cosineSimilarity(queryVector, docVector);
|
|
255
|
+
if (score >= minScore) {
|
|
256
|
+
scored.push({
|
|
257
|
+
id: row.id,
|
|
258
|
+
content: row.content,
|
|
259
|
+
category: row.category,
|
|
260
|
+
metadata: JSON.parse(row.metadata),
|
|
261
|
+
score,
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
// Skip documents with invalid embeddings
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// Sort by score descending
|
|
270
|
+
scored.sort((a, b) => b.score - a.score);
|
|
271
|
+
return scored.slice(0, limit);
|
|
272
|
+
}
|
|
273
|
+
catch (err) {
|
|
274
|
+
logger.error(`Semantic search failed: ${err.message}`);
|
|
275
|
+
return [];
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Text-based fallback search
|
|
280
|
+
*/
|
|
281
|
+
textSearch(query, limit, category) {
|
|
282
|
+
if (!this.db)
|
|
283
|
+
return [];
|
|
284
|
+
let sql = 'SELECT id, content, category, metadata FROM documents WHERE content LIKE ?';
|
|
285
|
+
const params = [`%${query}%`];
|
|
286
|
+
if (category) {
|
|
287
|
+
sql += ' AND category = ?';
|
|
288
|
+
params.push(category);
|
|
289
|
+
}
|
|
290
|
+
sql += ' LIMIT ?';
|
|
291
|
+
params.push(limit);
|
|
292
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
293
|
+
return rows.map(row => {
|
|
294
|
+
let metadata = {};
|
|
295
|
+
try {
|
|
296
|
+
metadata = JSON.parse(row.metadata || '{}');
|
|
297
|
+
}
|
|
298
|
+
catch { /* skip invalid */ }
|
|
299
|
+
return {
|
|
300
|
+
id: row.id,
|
|
301
|
+
content: row.content,
|
|
302
|
+
category: row.category,
|
|
303
|
+
metadata,
|
|
304
|
+
score: 0.5,
|
|
305
|
+
};
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Rebuild TF-IDF index from all documents
|
|
310
|
+
*/
|
|
311
|
+
rebuildIndex() {
|
|
312
|
+
if (!this.db)
|
|
313
|
+
return;
|
|
314
|
+
try {
|
|
315
|
+
const rows = this.db.prepare('SELECT id, content FROM documents').all();
|
|
316
|
+
if (rows.length === 0) {
|
|
317
|
+
this.dirty = false;
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
// Rebuild vocabulary
|
|
321
|
+
this.vectorizer.buildVocabulary(rows.map(r => r.content));
|
|
322
|
+
// Re-embed all documents
|
|
323
|
+
const updateStmt = this.db.prepare('UPDATE documents SET embedding = ? WHERE id = ?');
|
|
324
|
+
const transaction = this.db.transaction(() => {
|
|
325
|
+
for (const row of rows) {
|
|
326
|
+
const embedding = this.vectorizer.vectorize(row.content);
|
|
327
|
+
updateStmt.run(JSON.stringify(embedding), row.id);
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
transaction();
|
|
331
|
+
// Save vectorizer state
|
|
332
|
+
this.db.prepare(`
|
|
333
|
+
INSERT OR REPLACE INTO vectorizer_state (id, state, updated_at)
|
|
334
|
+
VALUES (1, ?, ?)
|
|
335
|
+
`).run(this.vectorizer.serialize(), new Date().toISOString());
|
|
336
|
+
this.dirty = false;
|
|
337
|
+
logger.info(`Semantic index rebuilt: ${rows.length} documents`);
|
|
338
|
+
}
|
|
339
|
+
catch (err) {
|
|
340
|
+
logger.error(`Index rebuild failed: ${err.message}`);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Retrieve a specific document by ID
|
|
345
|
+
*/
|
|
346
|
+
get(id) {
|
|
347
|
+
if (!this.db)
|
|
348
|
+
return null;
|
|
349
|
+
try {
|
|
350
|
+
const row = this.db.prepare('SELECT content, category, metadata FROM documents WHERE id = ?').get(id);
|
|
351
|
+
if (!row)
|
|
352
|
+
return null;
|
|
353
|
+
return { content: row.content, category: row.category, metadata: JSON.parse(row.metadata || '{}') };
|
|
354
|
+
}
|
|
355
|
+
catch (err) {
|
|
356
|
+
logger.error(`Semantic get failed for ${id}: ${err.message}`);
|
|
357
|
+
return null;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Delete a document
|
|
362
|
+
*/
|
|
363
|
+
delete(id) {
|
|
364
|
+
if (!this.db)
|
|
365
|
+
return false;
|
|
366
|
+
try {
|
|
367
|
+
const result = this.db.prepare('DELETE FROM documents WHERE id = ?').run(id);
|
|
368
|
+
if (result.changes > 0)
|
|
369
|
+
this.dirty = true;
|
|
370
|
+
return result.changes > 0;
|
|
371
|
+
}
|
|
372
|
+
catch (err) {
|
|
373
|
+
logger.error(`Semantic delete failed for ${id}: ${err.message}`);
|
|
374
|
+
return false;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Get stats
|
|
379
|
+
*/
|
|
380
|
+
getStats() {
|
|
381
|
+
if (!this.db)
|
|
382
|
+
return { totalDocuments: 0, categories: {}, vocabularySize: 0 };
|
|
383
|
+
try {
|
|
384
|
+
const total = this.db.prepare('SELECT COUNT(*) as count FROM documents').get().count;
|
|
385
|
+
const catRows = this.db.prepare('SELECT category, COUNT(*) as count FROM documents GROUP BY category').all();
|
|
386
|
+
const categories = {};
|
|
387
|
+
for (const row of catRows) {
|
|
388
|
+
categories[row.category] = row.count;
|
|
389
|
+
}
|
|
390
|
+
return {
|
|
391
|
+
totalDocuments: total,
|
|
392
|
+
categories,
|
|
393
|
+
vocabularySize: this.vectorizer['vocabSize'] || 0,
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
catch (err) {
|
|
397
|
+
logger.error(`Semantic stats failed: ${err.message}`);
|
|
398
|
+
return { totalDocuments: 0, categories: {}, vocabularySize: 0 };
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Find similar documents to a given document
|
|
403
|
+
*/
|
|
404
|
+
findSimilar(docId, limit = 5) {
|
|
405
|
+
const doc = this.get(docId);
|
|
406
|
+
if (!doc)
|
|
407
|
+
return [];
|
|
408
|
+
return this.search(doc.content, limit + 1).filter(r => r.id !== docId).slice(0, limit);
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Close database connection
|
|
412
|
+
*/
|
|
413
|
+
close() {
|
|
414
|
+
if (this.db) {
|
|
415
|
+
this.db.close();
|
|
416
|
+
this.db = null;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
exports.SemanticMemory = SemanticMemory;
|
|
421
|
+
// Global instance
|
|
422
|
+
let semanticMemoryInstance = null;
|
|
423
|
+
function getSemanticMemory() {
|
|
424
|
+
if (!semanticMemoryInstance) {
|
|
425
|
+
semanticMemoryInstance = new SemanticMemory();
|
|
426
|
+
semanticMemoryInstance.init();
|
|
427
|
+
}
|
|
428
|
+
return semanticMemoryInstance;
|
|
429
|
+
}
|
|
430
|
+
//# sourceMappingURL=semantic-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-memory.js","sourceRoot":"","sources":["../src/semantic-memory.ts"],"names":[],"mappings":"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"}
|
package/dist/skills.d.ts
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills system - modular automation and task execution
|
|
3
|
+
* TypeScript equivalent of Python skills.py
|
|
4
|
+
*/
|
|
5
|
+
import { SkillType, SkillResult } from './types';
|
|
6
|
+
export declare abstract class BaseSkill {
|
|
7
|
+
abstract readonly NAME: string;
|
|
8
|
+
abstract readonly DESCRIPTION: string;
|
|
9
|
+
abstract readonly VERSION: string;
|
|
10
|
+
abstract readonly AUTHOR: string;
|
|
11
|
+
abstract readonly TYPE: SkillType;
|
|
12
|
+
config: Record<string, any>;
|
|
13
|
+
constructor(config?: Record<string, any>);
|
|
14
|
+
abstract execute(params: Record<string, any>): Promise<SkillResult>;
|
|
15
|
+
getSchema(): Record<string, any>;
|
|
16
|
+
}
|
|
17
|
+
export declare class EmailSkill extends BaseSkill {
|
|
18
|
+
NAME: string;
|
|
19
|
+
DESCRIPTION: string;
|
|
20
|
+
VERSION: string;
|
|
21
|
+
AUTHOR: string;
|
|
22
|
+
TYPE: SkillType;
|
|
23
|
+
execute(params: Record<string, any>): Promise<SkillResult>;
|
|
24
|
+
private sendEmail;
|
|
25
|
+
}
|
|
26
|
+
export declare class CalendarSkill extends BaseSkill {
|
|
27
|
+
NAME: string;
|
|
28
|
+
DESCRIPTION: string;
|
|
29
|
+
VERSION: string;
|
|
30
|
+
AUTHOR: string;
|
|
31
|
+
TYPE: SkillType;
|
|
32
|
+
execute(params: Record<string, any>): Promise<SkillResult>;
|
|
33
|
+
private createEvent;
|
|
34
|
+
}
|
|
35
|
+
export declare class FileSkill extends BaseSkill {
|
|
36
|
+
NAME: string;
|
|
37
|
+
DESCRIPTION: string;
|
|
38
|
+
VERSION: string;
|
|
39
|
+
AUTHOR: string;
|
|
40
|
+
TYPE: SkillType;
|
|
41
|
+
execute(params: Record<string, any>): Promise<SkillResult>;
|
|
42
|
+
private organizeFiles;
|
|
43
|
+
private searchFiles;
|
|
44
|
+
private backupFiles;
|
|
45
|
+
private copyRecursive;
|
|
46
|
+
}
|
|
47
|
+
export declare class WebSearchSkill extends BaseSkill {
|
|
48
|
+
NAME: string;
|
|
49
|
+
DESCRIPTION: string;
|
|
50
|
+
VERSION: string;
|
|
51
|
+
AUTHOR: string;
|
|
52
|
+
TYPE: SkillType;
|
|
53
|
+
execute(params: Record<string, any>): Promise<SkillResult>;
|
|
54
|
+
private search;
|
|
55
|
+
private fetchPage;
|
|
56
|
+
}
|
|
57
|
+
export declare class SystemSkill extends BaseSkill {
|
|
58
|
+
NAME: string;
|
|
59
|
+
DESCRIPTION: string;
|
|
60
|
+
VERSION: string;
|
|
61
|
+
AUTHOR: string;
|
|
62
|
+
TYPE: SkillType;
|
|
63
|
+
execute(params: Record<string, any>): Promise<SkillResult>;
|
|
64
|
+
private systemInfo;
|
|
65
|
+
private getUptime;
|
|
66
|
+
private getDisk;
|
|
67
|
+
private safeExec;
|
|
68
|
+
}
|
|
69
|
+
export declare class NoteSkill extends BaseSkill {
|
|
70
|
+
NAME: string;
|
|
71
|
+
DESCRIPTION: string;
|
|
72
|
+
VERSION: string;
|
|
73
|
+
AUTHOR: string;
|
|
74
|
+
TYPE: SkillType;
|
|
75
|
+
private notesPath;
|
|
76
|
+
constructor(config?: Record<string, any>);
|
|
77
|
+
execute(params: Record<string, any>): Promise<SkillResult>;
|
|
78
|
+
private loadNotes;
|
|
79
|
+
private saveNotes;
|
|
80
|
+
private addNote;
|
|
81
|
+
private listNotes;
|
|
82
|
+
private searchNotes;
|
|
83
|
+
private deleteNote;
|
|
84
|
+
}
|
|
85
|
+
export declare class SkillManager {
|
|
86
|
+
skills: Map<string, BaseSkill>;
|
|
87
|
+
skillsDir: string;
|
|
88
|
+
constructor(skillsDir?: string);
|
|
89
|
+
register(skill: BaseSkill): void;
|
|
90
|
+
unregister(name: string): void;
|
|
91
|
+
get(name: string): BaseSkill | undefined;
|
|
92
|
+
listSkills(): Array<Record<string, any>>;
|
|
93
|
+
execute(skillName: string, params: Record<string, any>): Promise<SkillResult>;
|
|
94
|
+
loadBuiltinSkills(): void;
|
|
95
|
+
}
|
|
96
|
+
export declare function getSkillManager(): SkillManager;
|
|
97
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|