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
package/dist/memory.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAG Memory system backed by SemanticMemory (TF-IDF + SQLite)
|
|
3
|
+
* No external dependencies like lancedb required.
|
|
4
|
+
*/
|
|
5
|
+
export declare class RAGMemory {
|
|
6
|
+
projectRoot: string;
|
|
7
|
+
available: boolean;
|
|
8
|
+
private semanticMemory;
|
|
9
|
+
private indexedCount;
|
|
10
|
+
constructor(projectRoot: string);
|
|
11
|
+
/**
|
|
12
|
+
* Initialize memory
|
|
13
|
+
*/
|
|
14
|
+
init(): Promise<boolean>;
|
|
15
|
+
/**
|
|
16
|
+
* Index project codebase
|
|
17
|
+
*/
|
|
18
|
+
indexProject(force?: boolean): Promise<number>;
|
|
19
|
+
/**
|
|
20
|
+
* Parse file into chunks
|
|
21
|
+
*/
|
|
22
|
+
private parseFile;
|
|
23
|
+
/**
|
|
24
|
+
* Extract name from definition line
|
|
25
|
+
*/
|
|
26
|
+
private extractName;
|
|
27
|
+
/**
|
|
28
|
+
* Search codebase with smart context
|
|
29
|
+
*/
|
|
30
|
+
search(query: string, k?: number): Promise<string>;
|
|
31
|
+
/**
|
|
32
|
+
* Get memory stats
|
|
33
|
+
*/
|
|
34
|
+
getStats(): {
|
|
35
|
+
count: number;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Get related code for a symbol
|
|
39
|
+
*/
|
|
40
|
+
getRelated(symbol: string, k?: number): string;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,qBAAa,SAAS;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAa;gBAErB,WAAW,EAAE,MAAM;IAO/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB9B;;OAEG;IACG,YAAY,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAuF3D;;OAEG;IACH,OAAO,CAAC,SAAS;IA+DjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B3D;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAc7B;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,MAAM;CAwBlD"}
|
package/dist/memory.js
ADDED
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RAG Memory system backed by SemanticMemory (TF-IDF + SQLite)
|
|
4
|
+
* No external dependencies like lancedb required.
|
|
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.RAGMemory = void 0;
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const fs_1 = __importDefault(require("fs"));
|
|
13
|
+
const logger_1 = require("./logger");
|
|
14
|
+
const semantic_memory_1 = require("./semantic-memory");
|
|
15
|
+
const code_parser_1 = require("./code-parser");
|
|
16
|
+
const logger = (0, logger_1.getLogger)();
|
|
17
|
+
class RAGMemory {
|
|
18
|
+
projectRoot;
|
|
19
|
+
available;
|
|
20
|
+
semanticMemory;
|
|
21
|
+
indexedCount = 0;
|
|
22
|
+
constructor(projectRoot) {
|
|
23
|
+
this.projectRoot = path_1.default.resolve(projectRoot);
|
|
24
|
+
const dbPath = path_1.default.join(this.projectRoot, '.linguclaw', 'rag-memory.db');
|
|
25
|
+
this.semanticMemory = new semantic_memory_1.SemanticMemory(dbPath);
|
|
26
|
+
this.available = false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Initialize memory
|
|
30
|
+
*/
|
|
31
|
+
async init() {
|
|
32
|
+
try {
|
|
33
|
+
const ok = this.semanticMemory.init();
|
|
34
|
+
if (ok) {
|
|
35
|
+
this.available = true;
|
|
36
|
+
const stats = this.semanticMemory.getStats();
|
|
37
|
+
this.indexedCount = stats.totalDocuments;
|
|
38
|
+
logger.info(`RAG memory initialized (${this.indexedCount} chunks indexed)`);
|
|
39
|
+
}
|
|
40
|
+
return ok;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
logger.warn(`RAG memory init failed: ${error.message}`);
|
|
44
|
+
this.available = false;
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Index project codebase
|
|
50
|
+
*/
|
|
51
|
+
async indexProject(force = false) {
|
|
52
|
+
if (!this.available) {
|
|
53
|
+
logger.warn('RAG memory not available');
|
|
54
|
+
return 0;
|
|
55
|
+
}
|
|
56
|
+
const stats = this.getStats();
|
|
57
|
+
if (stats.count > 0 && !force) {
|
|
58
|
+
logger.info(`Memory already has ${stats.count} chunks, use force=true to reindex`);
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
// Find all code files
|
|
62
|
+
const extensions = ['.ts', '.tsx', '.js', '.jsx', '.py', '.java', '.go', '.rs', '.cpp', '.c', '.h'];
|
|
63
|
+
const files = [];
|
|
64
|
+
const findFiles = (dir, depth = 0) => {
|
|
65
|
+
if (depth > 15)
|
|
66
|
+
return; // Prevent excessive recursion
|
|
67
|
+
try {
|
|
68
|
+
const entries = fs_1.default.readdirSync(dir);
|
|
69
|
+
for (const entry of entries) {
|
|
70
|
+
const fullPath = path_1.default.join(dir, entry);
|
|
71
|
+
const stat = fs_1.default.statSync(fullPath);
|
|
72
|
+
if (stat.isDirectory() && !entry.startsWith('.') && entry !== 'node_modules' && entry !== 'dist' && entry !== 'tests' && entry !== '__pycache__') {
|
|
73
|
+
findFiles(fullPath, depth + 1);
|
|
74
|
+
}
|
|
75
|
+
else if (stat.isFile() && extensions.some(ext => entry.endsWith(ext))) {
|
|
76
|
+
files.push(fullPath);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
logger.debug(`Skipping unreadable directory ${dir}: ${err.message}`);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
findFiles(this.projectRoot);
|
|
85
|
+
// Parse and index files with AST for TypeScript
|
|
86
|
+
let indexed = 0;
|
|
87
|
+
const parsedChunks = [];
|
|
88
|
+
for (const file of files) {
|
|
89
|
+
try {
|
|
90
|
+
const ext = path_1.default.extname(file);
|
|
91
|
+
if (ext === '.ts' || ext === '.tsx' || ext === '.js' || ext === '.jsx') {
|
|
92
|
+
// Use AST-based parsing for TypeScript/JavaScript
|
|
93
|
+
const chunks = (0, code_parser_1.parseTypeScriptFile)(file);
|
|
94
|
+
parsedChunks.push(...chunks);
|
|
95
|
+
indexed += chunks.length;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// Use regex-based parsing for other languages
|
|
99
|
+
const content = fs_1.default.readFileSync(file, 'utf-8');
|
|
100
|
+
const chunks = (0, code_parser_1.parseGenericFile)(file, content);
|
|
101
|
+
parsedChunks.push(...chunks);
|
|
102
|
+
indexed += chunks.length;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
logger.warn(`Failed to index ${file}: ${error}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Store chunks in semantic memory with rich metadata
|
|
110
|
+
for (const chunk of parsedChunks) {
|
|
111
|
+
this.semanticMemory.store(chunk.id, chunk.content, 'code', {
|
|
112
|
+
file_path: chunk.filePath,
|
|
113
|
+
chunk_type: chunk.chunkType,
|
|
114
|
+
name: chunk.name,
|
|
115
|
+
line_start: chunk.lineStart,
|
|
116
|
+
line_end: chunk.lineEnd,
|
|
117
|
+
signature: chunk.signature,
|
|
118
|
+
documentation: chunk.documentation,
|
|
119
|
+
is_exported: chunk.isExported,
|
|
120
|
+
dependencies: chunk.dependencies,
|
|
121
|
+
dependents: chunk.dependents,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// Rebuild TF-IDF index after batch insert
|
|
125
|
+
if (parsedChunks.length > 0) {
|
|
126
|
+
this.semanticMemory.rebuildIndex();
|
|
127
|
+
}
|
|
128
|
+
this.indexedCount = parsedChunks.length;
|
|
129
|
+
logger.info(`Indexed ${indexed} AST chunks from ${files.length} files`);
|
|
130
|
+
return indexed;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Parse file into chunks
|
|
134
|
+
*/
|
|
135
|
+
parseFile(filePath, content) {
|
|
136
|
+
const chunks = [];
|
|
137
|
+
const lines = content.split('\n');
|
|
138
|
+
const ext = path_1.default.extname(filePath);
|
|
139
|
+
const baseName = path_1.default.basename(filePath);
|
|
140
|
+
// Simple parsing: Split into logical sections
|
|
141
|
+
// In production, you'd use AST parsing
|
|
142
|
+
let currentChunk = {
|
|
143
|
+
id: `${filePath}-chunk-0`,
|
|
144
|
+
file_path: filePath,
|
|
145
|
+
content: '',
|
|
146
|
+
chunk_type: 'other',
|
|
147
|
+
name: baseName,
|
|
148
|
+
line_start: 1,
|
|
149
|
+
line_end: 1,
|
|
150
|
+
};
|
|
151
|
+
let chunkIndex = 0;
|
|
152
|
+
for (let i = 0; i < lines.length; i++) {
|
|
153
|
+
const line = lines[i];
|
|
154
|
+
// Detect function/class definitions (simplified)
|
|
155
|
+
const isFunction = /^(export\s+)?(async\s+)?function\s+\w+/.test(line) ||
|
|
156
|
+
/^(export\s+)?(async\s+)?\w+\s*\([^)]*\)\s*\{?\s*$/.test(line);
|
|
157
|
+
const isClass = /^(export\s+)?class\s+\w+/.test(line);
|
|
158
|
+
if ((isFunction || isClass) && currentChunk.content) {
|
|
159
|
+
// Save previous chunk
|
|
160
|
+
chunks.push({
|
|
161
|
+
...currentChunk,
|
|
162
|
+
id: `${filePath}-chunk-${chunkIndex++}`,
|
|
163
|
+
line_end: i,
|
|
164
|
+
});
|
|
165
|
+
// Start new chunk
|
|
166
|
+
currentChunk = {
|
|
167
|
+
id: '',
|
|
168
|
+
file_path: filePath,
|
|
169
|
+
content: line,
|
|
170
|
+
chunk_type: isFunction ? 'function' : 'class',
|
|
171
|
+
name: this.extractName(line) || baseName,
|
|
172
|
+
line_start: i + 1,
|
|
173
|
+
line_end: i + 1,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
currentChunk.content += '\n' + line;
|
|
178
|
+
currentChunk.line_end = i + 1;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// Add final chunk
|
|
182
|
+
if (currentChunk.content) {
|
|
183
|
+
chunks.push({
|
|
184
|
+
...currentChunk,
|
|
185
|
+
id: `${filePath}-chunk-${chunkIndex}`,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
return chunks;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Extract name from definition line
|
|
192
|
+
*/
|
|
193
|
+
extractName(line) {
|
|
194
|
+
const match = line.match(/(?:function|class)\s+(\w+)/);
|
|
195
|
+
return match ? match[1] : null;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Search codebase with smart context
|
|
199
|
+
*/
|
|
200
|
+
async search(query, k = 5) {
|
|
201
|
+
if (!this.available) {
|
|
202
|
+
return '[Memory unavailable]';
|
|
203
|
+
}
|
|
204
|
+
try {
|
|
205
|
+
const results = this.semanticMemory.search(query, k, 'code');
|
|
206
|
+
if (!results || results.length === 0) {
|
|
207
|
+
return '[No relevant code found]';
|
|
208
|
+
}
|
|
209
|
+
const formatted = results.map((r, i) => {
|
|
210
|
+
const meta = r.metadata || {};
|
|
211
|
+
let context = `[${i + 1}] ${meta.chunk_type || 'code'}: ${meta.name || 'unknown'} (${meta.file_path || '?'}:${meta.line_start || '?'})`;
|
|
212
|
+
if (meta.signature)
|
|
213
|
+
context += `\n Signature: ${meta.signature}`;
|
|
214
|
+
if (meta.documentation)
|
|
215
|
+
context += `\n Docs: ${meta.documentation.substring(0, 100)}...`;
|
|
216
|
+
if (meta.dependencies?.length > 0)
|
|
217
|
+
context += `\n Uses: ${meta.dependencies.slice(0, 5).join(', ')}`;
|
|
218
|
+
context += `\n${r.content.slice(0, 200)}...`;
|
|
219
|
+
return context;
|
|
220
|
+
});
|
|
221
|
+
return formatted.join('\n\n');
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
logger.error(`Search error: ${error.message}`);
|
|
225
|
+
return `[Search error: ${error.message}]`;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get memory stats
|
|
230
|
+
*/
|
|
231
|
+
getStats() {
|
|
232
|
+
if (!this.available) {
|
|
233
|
+
return { count: 0 };
|
|
234
|
+
}
|
|
235
|
+
try {
|
|
236
|
+
const stats = this.semanticMemory.getStats();
|
|
237
|
+
return { count: stats.totalDocuments };
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
logger.debug(`getStats error: ${err.message}`);
|
|
241
|
+
return { count: 0 };
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Get related code for a symbol
|
|
246
|
+
*/
|
|
247
|
+
getRelated(symbol, k = 3) {
|
|
248
|
+
if (!this.available)
|
|
249
|
+
return '[Memory unavailable]';
|
|
250
|
+
try {
|
|
251
|
+
// Find the symbol
|
|
252
|
+
const all = this.semanticMemory.search(symbol, 50, 'code');
|
|
253
|
+
const target = all.find(r => r.metadata?.name === symbol);
|
|
254
|
+
if (!target)
|
|
255
|
+
return `[Symbol '${symbol}' not found]`;
|
|
256
|
+
// Get dependencies and dependents
|
|
257
|
+
const meta = target.metadata || {};
|
|
258
|
+
const deps = meta.dependencies || [];
|
|
259
|
+
const dps = meta.dependents || [];
|
|
260
|
+
let result = `Related to ${symbol}:\n\n`;
|
|
261
|
+
if (deps.length > 0)
|
|
262
|
+
result += `Dependencies: ${deps.slice(0, k).join(', ')}\n`;
|
|
263
|
+
if (dps.length > 0)
|
|
264
|
+
result += `Used by: ${dps.slice(0, k).join(', ')}\n`;
|
|
265
|
+
return result;
|
|
266
|
+
}
|
|
267
|
+
catch (err) {
|
|
268
|
+
logger.error(`getRelated error: ${err.message}`);
|
|
269
|
+
return `[Error: ${err.message}]`;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
exports.RAGMemory = RAGMemory;
|
|
274
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,gDAAwB;AACxB,4CAAoB;AAEpB,qCAAqC;AACrC,uDAAmD;AACnD,+CAAmF;AAEnF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;AAE3B,MAAa,SAAS;IACpB,WAAW,CAAS;IACpB,SAAS,CAAU;IACX,cAAc,CAAiB;IAC/B,YAAY,GAAW,CAAC,CAAC;IAEjC,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC7C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,YAAY,kBAAkB,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAiB,KAAK;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,KAAK,oCAAoC,CAAC,CAAC;YACnF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,sBAAsB;QACtB,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpG,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,QAAgB,CAAC,EAAE,EAAE;YACnD,IAAI,KAAK,GAAG,EAAE;gBAAE,OAAO,CAAC,8BAA8B;YACtD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACvC,MAAM,IAAI,GAAG,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAEnC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;wBACjJ,SAAS,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACjC,CAAC;yBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACxE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,iCAAiC,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE5B,gDAAgD;QAChD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,YAAY,GAAkB,EAAE,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;oBACvE,kDAAkD;oBAClD,MAAM,MAAM,GAAG,IAAA,iCAAmB,EAAC,IAAI,CAAC,CAAC;oBACzC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;oBAC7B,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,8CAA8C;oBAC9C,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC/C,MAAM,MAAM,GAAG,IAAA,8BAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC/C,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;oBAC7B,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;gBAC3B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE;gBACzD,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,QAAQ,EAAE,KAAK,CAAC,OAAO;gBACvB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,WAAW,EAAE,KAAK,CAAC,UAAU;gBAC7B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,0CAA0C;QAC1C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,oBAAoB,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,QAAgB,EAAE,OAAe;QACjD,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEzC,8CAA8C;QAC9C,uCAAuC;QACvC,IAAI,YAAY,GAAuB;YACrC,EAAE,EAAE,GAAG,QAAQ,UAAU;YACzB,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,OAAO;YACnB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC;SACZ,CAAC;QAEF,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,iDAAiD;YACjD,MAAM,UAAU,GAAG,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpD,mDAAmD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjF,MAAM,OAAO,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtD,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACpD,sBAAsB;gBACtB,MAAM,CAAC,IAAI,CAAC;oBACV,GAAG,YAAyB;oBAC5B,EAAE,EAAE,GAAG,QAAQ,UAAU,UAAU,EAAE,EAAE;oBACvC,QAAQ,EAAE,CAAC;iBACZ,CAAC,CAAC;gBAEH,kBAAkB;gBAClB,YAAY,GAAG;oBACb,EAAE,EAAE,EAAE;oBACN,SAAS,EAAE,QAAQ;oBACnB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;oBAC7C,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,QAAQ;oBACxC,UAAU,EAAE,CAAC,GAAG,CAAC;oBACjB,QAAQ,EAAE,CAAC,GAAG,CAAC;iBAChB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC;gBACpC,YAAY,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,YAAyB;gBAC5B,EAAE,EAAE,GAAG,QAAQ,UAAU,UAAU,EAAE;aACtC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAY;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAY,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,sBAAsB,CAAC;QAChC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAE7D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,0BAA0B,CAAC;YACpC,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC;gBACxI,IAAI,IAAI,CAAC,SAAS;oBAAE,OAAO,IAAI,mBAAmB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnE,IAAI,IAAI,CAAC,aAAa;oBAAE,OAAO,IAAI,cAAc,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;gBAC3F,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC;oBAAE,OAAO,IAAI,cAAc,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvG,OAAO,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;gBAC7C,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,OAAO,kBAAkB,KAAK,CAAC,OAAO,GAAG,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc,EAAE,IAAY,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,sBAAsB,CAAC;QAEnD,IAAI,CAAC;YACH,kBAAkB;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM;gBAAE,OAAO,YAAY,MAAM,cAAc,CAAC;YAErD,kCAAkC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YAElC,IAAI,MAAM,GAAG,cAAc,MAAM,OAAO,CAAC;YACzC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAChF,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAEzE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,WAAW,GAAG,CAAC,OAAO,GAAG,CAAC;QACnC,CAAC;IACH,CAAC;CACF;AAjRD,8BAiRC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Messaging platform integrations - Telegram, Discord, Slack, WhatsApp
|
|
3
|
+
* Real implementations using HTTP APIs via axios
|
|
4
|
+
*/
|
|
5
|
+
import { MessagingPlatform, ChatMessage, ChatResponse } from './types';
|
|
6
|
+
type MessageHandler = (msg: ChatMessage) => ChatResponse | null | Promise<ChatResponse | null>;
|
|
7
|
+
export declare abstract class BaseMessagingPlatform {
|
|
8
|
+
platform: MessagingPlatform;
|
|
9
|
+
messageHandlers: MessageHandler[];
|
|
10
|
+
running: boolean;
|
|
11
|
+
constructor(platform: MessagingPlatform);
|
|
12
|
+
onMessage(handler: MessageHandler): void;
|
|
13
|
+
protected handleMessage(msg: ChatMessage): Promise<ChatResponse | null>;
|
|
14
|
+
abstract start(): Promise<void>;
|
|
15
|
+
abstract stop(): Promise<void>;
|
|
16
|
+
abstract send(response: ChatResponse): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Telegram Bot - Uses Telegram Bot API via HTTP long polling
|
|
20
|
+
* Requires: TELEGRAM_BOT_TOKEN from @BotFather
|
|
21
|
+
*/
|
|
22
|
+
export declare class TelegramBot extends BaseMessagingPlatform {
|
|
23
|
+
private token;
|
|
24
|
+
private allowedChats?;
|
|
25
|
+
private api;
|
|
26
|
+
private pollTimer;
|
|
27
|
+
private lastUpdateId;
|
|
28
|
+
constructor(token: string);
|
|
29
|
+
allowChats(chatIds: number[]): void;
|
|
30
|
+
start(): Promise<void>;
|
|
31
|
+
private poll;
|
|
32
|
+
stop(): Promise<void>;
|
|
33
|
+
send(response: ChatResponse): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Discord Bot - Uses Discord Gateway API for receiving, REST for sending
|
|
37
|
+
* Requires: DISCORD_BOT_TOKEN from Discord Developer Portal
|
|
38
|
+
*/
|
|
39
|
+
export declare class DiscordBot extends BaseMessagingPlatform {
|
|
40
|
+
private token;
|
|
41
|
+
private api;
|
|
42
|
+
private ws;
|
|
43
|
+
private heartbeatInterval;
|
|
44
|
+
private lastSequence;
|
|
45
|
+
private reconnectAttempts;
|
|
46
|
+
constructor(token: string);
|
|
47
|
+
start(): Promise<void>;
|
|
48
|
+
private connectGateway;
|
|
49
|
+
private handleGatewayEvent;
|
|
50
|
+
stop(): Promise<void>;
|
|
51
|
+
send(response: ChatResponse): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Slack Bot - Uses Slack Web API + Socket Mode for real-time events
|
|
55
|
+
* Requires: SLACK_BOT_TOKEN (xoxb-...) and SLACK_APP_TOKEN (xapp-...)
|
|
56
|
+
*/
|
|
57
|
+
export declare class SlackBot extends BaseMessagingPlatform {
|
|
58
|
+
private botToken;
|
|
59
|
+
private appToken?;
|
|
60
|
+
private api;
|
|
61
|
+
private ws;
|
|
62
|
+
constructor(botToken: string, appToken?: string);
|
|
63
|
+
start(): Promise<void>;
|
|
64
|
+
private connectSocketMode;
|
|
65
|
+
stop(): Promise<void>;
|
|
66
|
+
send(response: ChatResponse): Promise<void>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* WhatsApp Bot - Uses Twilio API for sending/receiving messages
|
|
70
|
+
* Requires: TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_WHATSAPP_FROM
|
|
71
|
+
*/
|
|
72
|
+
export declare class WhatsAppBot extends BaseMessagingPlatform {
|
|
73
|
+
private accountSid;
|
|
74
|
+
private authToken;
|
|
75
|
+
private fromNumber;
|
|
76
|
+
private api;
|
|
77
|
+
constructor(accountSid?: string, authToken?: string, fromNumber?: string);
|
|
78
|
+
start(): Promise<void>;
|
|
79
|
+
stop(): Promise<void>;
|
|
80
|
+
send(response: ChatResponse): Promise<void>;
|
|
81
|
+
handleWebhook(body: Record<string, string>): ChatMessage | null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* MessagingHub - Central manager for all messaging platforms
|
|
85
|
+
*/
|
|
86
|
+
export declare class MessagingHub {
|
|
87
|
+
platforms: Map<MessagingPlatform, BaseMessagingPlatform>;
|
|
88
|
+
private agentCallback?;
|
|
89
|
+
constructor();
|
|
90
|
+
registerAgent(callback: MessageHandler): void;
|
|
91
|
+
addPlatform(platform: BaseMessagingPlatform): void;
|
|
92
|
+
startAll(): Promise<void>;
|
|
93
|
+
stopAll(): Promise<void>;
|
|
94
|
+
sendToPlatform(platform: MessagingPlatform, response: ChatResponse): Promise<void>;
|
|
95
|
+
getStatus(): Record<string, boolean>;
|
|
96
|
+
createPlatformsFromEnv(): BaseMessagingPlatform[];
|
|
97
|
+
}
|
|
98
|
+
export declare function createTelegramBot(token: string, allowedChats?: number[]): TelegramBot;
|
|
99
|
+
export declare function createDiscordBot(token: string): DiscordBot;
|
|
100
|
+
export declare function createSlackBot(botToken: string, appToken?: string): SlackBot;
|
|
101
|
+
export declare function createWhatsAppTwilio(): WhatsAppBot;
|
|
102
|
+
export {};
|
|
103
|
+
//# sourceMappingURL=messaging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../src/messaging.ts"],"names":[],"mappings":"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"}
|