opc-agent 3.0.1 → 4.0.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.
Files changed (151) hide show
  1. package/README.md +30 -24
  2. package/dist/channels/dingtalk.d.ts +17 -0
  3. package/dist/channels/dingtalk.js +38 -0
  4. package/dist/channels/googlechat.d.ts +14 -0
  5. package/dist/channels/googlechat.js +37 -0
  6. package/dist/channels/imessage.d.ts +13 -0
  7. package/dist/channels/imessage.js +28 -0
  8. package/dist/channels/irc.d.ts +20 -0
  9. package/dist/channels/irc.js +71 -0
  10. package/dist/channels/line.d.ts +14 -0
  11. package/dist/channels/line.js +28 -0
  12. package/dist/channels/matrix.d.ts +15 -0
  13. package/dist/channels/matrix.js +28 -0
  14. package/dist/channels/mattermost.d.ts +18 -0
  15. package/dist/channels/mattermost.js +49 -0
  16. package/dist/channels/msteams.d.ts +14 -0
  17. package/dist/channels/msteams.js +28 -0
  18. package/dist/channels/nostr.d.ts +14 -0
  19. package/dist/channels/nostr.js +28 -0
  20. package/dist/channels/qq.d.ts +15 -0
  21. package/dist/channels/qq.js +28 -0
  22. package/dist/channels/signal.d.ts +14 -0
  23. package/dist/channels/signal.js +28 -0
  24. package/dist/channels/sms.d.ts +15 -0
  25. package/dist/channels/sms.js +28 -0
  26. package/dist/channels/twitch.d.ts +17 -0
  27. package/dist/channels/twitch.js +59 -0
  28. package/dist/channels/voice-call.d.ts +27 -0
  29. package/dist/channels/voice-call.js +82 -0
  30. package/dist/channels/whatsapp.d.ts +14 -0
  31. package/dist/channels/whatsapp.js +28 -0
  32. package/dist/cli.js +36 -0
  33. package/dist/core/api-server.d.ts +25 -0
  34. package/dist/core/api-server.js +286 -0
  35. package/dist/core/audio.d.ts +50 -0
  36. package/dist/core/audio.js +68 -0
  37. package/dist/core/context-discovery.d.ts +16 -0
  38. package/dist/core/context-discovery.js +107 -0
  39. package/dist/core/context-refs.d.ts +29 -0
  40. package/dist/core/context-refs.js +162 -0
  41. package/dist/core/gateway.d.ts +53 -0
  42. package/dist/core/gateway.js +80 -0
  43. package/dist/core/heartbeat.d.ts +19 -0
  44. package/dist/core/heartbeat.js +50 -0
  45. package/dist/core/hooks.d.ts +28 -0
  46. package/dist/core/hooks.js +82 -0
  47. package/dist/core/ide-bridge.d.ts +53 -0
  48. package/dist/core/ide-bridge.js +97 -0
  49. package/dist/core/node-network.d.ts +23 -0
  50. package/dist/core/node-network.js +77 -0
  51. package/dist/core/profiles.d.ts +27 -0
  52. package/dist/core/profiles.js +131 -0
  53. package/dist/core/sandbox.d.ts +25 -0
  54. package/dist/core/sandbox.js +84 -1
  55. package/dist/core/session-manager.d.ts +33 -0
  56. package/dist/core/session-manager.js +157 -0
  57. package/dist/core/vision.d.ts +45 -0
  58. package/dist/core/vision.js +177 -0
  59. package/dist/index.d.ts +64 -1
  60. package/dist/index.js +86 -3
  61. package/dist/memory/context-compressor.d.ts +43 -0
  62. package/dist/memory/context-compressor.js +167 -0
  63. package/dist/memory/index.d.ts +4 -0
  64. package/dist/memory/index.js +5 -1
  65. package/dist/memory/user-profiler.d.ts +50 -0
  66. package/dist/memory/user-profiler.js +201 -0
  67. package/dist/schema/oad.d.ts +12 -12
  68. package/dist/security/approvals.d.ts +53 -0
  69. package/dist/security/approvals.js +115 -0
  70. package/dist/security/elevated.d.ts +41 -0
  71. package/dist/security/elevated.js +89 -0
  72. package/dist/security/index.d.ts +6 -0
  73. package/dist/security/index.js +7 -1
  74. package/dist/security/secrets.d.ts +34 -0
  75. package/dist/security/secrets.js +115 -0
  76. package/dist/tools/builtin/browser.d.ts +47 -0
  77. package/dist/tools/builtin/browser.js +284 -0
  78. package/dist/tools/builtin/home-assistant.d.ts +12 -0
  79. package/dist/tools/builtin/home-assistant.js +126 -0
  80. package/dist/tools/builtin/index.d.ts +6 -1
  81. package/dist/tools/builtin/index.js +18 -2
  82. package/dist/tools/builtin/rl-tools.d.ts +13 -0
  83. package/dist/tools/builtin/rl-tools.js +228 -0
  84. package/dist/tools/builtin/vision.d.ts +6 -0
  85. package/dist/tools/builtin/vision.js +61 -0
  86. package/package.json +2 -2
  87. package/src/channels/dingtalk.ts +46 -0
  88. package/src/channels/googlechat.ts +42 -0
  89. package/src/channels/imessage.ts +32 -0
  90. package/src/channels/irc.ts +82 -0
  91. package/src/channels/line.ts +33 -0
  92. package/src/channels/matrix.ts +34 -0
  93. package/src/channels/mattermost.ts +57 -0
  94. package/src/channels/msteams.ts +33 -0
  95. package/src/channels/nostr.ts +33 -0
  96. package/src/channels/qq.ts +34 -0
  97. package/src/channels/signal.ts +33 -0
  98. package/src/channels/sms.ts +34 -0
  99. package/src/channels/twitch.ts +65 -0
  100. package/src/channels/voice-call.ts +100 -0
  101. package/src/channels/whatsapp.ts +33 -0
  102. package/src/cli.ts +40 -0
  103. package/src/core/api-server.ts +277 -0
  104. package/src/core/audio.ts +98 -0
  105. package/src/core/context-discovery.ts +85 -0
  106. package/src/core/context-refs.ts +140 -0
  107. package/src/core/gateway.ts +106 -0
  108. package/src/core/heartbeat.ts +51 -0
  109. package/src/core/hooks.ts +105 -0
  110. package/src/core/ide-bridge.ts +133 -0
  111. package/src/core/node-network.ts +86 -0
  112. package/src/core/profiles.ts +122 -0
  113. package/src/core/sandbox.ts +100 -0
  114. package/src/core/session-manager.ts +137 -0
  115. package/src/core/vision.ts +180 -0
  116. package/src/index.ts +84 -1
  117. package/src/memory/context-compressor.ts +189 -0
  118. package/src/memory/index.ts +4 -0
  119. package/src/memory/user-profiler.ts +215 -0
  120. package/src/security/approvals.ts +143 -0
  121. package/src/security/elevated.ts +105 -0
  122. package/src/security/index.ts +6 -0
  123. package/src/security/secrets.ts +129 -0
  124. package/src/tools/builtin/browser.ts +299 -0
  125. package/src/tools/builtin/home-assistant.ts +116 -0
  126. package/src/tools/builtin/index.ts +9 -2
  127. package/src/tools/builtin/rl-tools.ts +243 -0
  128. package/src/tools/builtin/vision.ts +64 -0
  129. package/tests/api-server.test.ts +148 -0
  130. package/tests/approvals.test.ts +89 -0
  131. package/tests/audio.test.ts +40 -0
  132. package/tests/browser.test.ts +179 -0
  133. package/tests/builtin-tools.test.ts +83 -83
  134. package/tests/channels-extra.test.ts +45 -0
  135. package/tests/context-compressor.test.ts +172 -0
  136. package/tests/context-refs.test.ts +121 -0
  137. package/tests/elevated.test.ts +69 -0
  138. package/tests/gateway.test.ts +63 -71
  139. package/tests/home-assistant.test.ts +40 -0
  140. package/tests/hooks.test.ts +79 -0
  141. package/tests/ide-bridge.test.ts +38 -0
  142. package/tests/node-network.test.ts +74 -0
  143. package/tests/profiles.test.ts +61 -0
  144. package/tests/rl-tools.test.ts +93 -0
  145. package/tests/sandbox-manager.test.ts +46 -0
  146. package/tests/secrets.test.ts +107 -0
  147. package/tests/tools/builtin-extended.test.ts +138 -138
  148. package/tests/user-profiler.test.ts +169 -0
  149. package/tests/v090-features.test.ts +254 -0
  150. package/tests/vision.test.ts +61 -0
  151. package/tests/voice-call.test.ts +47 -0
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SessionManager = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const crypto = __importStar(require("crypto"));
40
+ class SessionManager {
41
+ sessions = new Map();
42
+ storageDir;
43
+ constructor(storageDir) {
44
+ this.storageDir = storageDir || path.join(process.env.HOME || process.env.USERPROFILE || '~', '.opc', 'sessions');
45
+ }
46
+ create(agentId, channel, parentId) {
47
+ const session = {
48
+ id: crypto.randomUUID(),
49
+ agentId,
50
+ channel,
51
+ messages: [],
52
+ metadata: {},
53
+ createdAt: Date.now(),
54
+ lastActivity: Date.now(),
55
+ parentId,
56
+ };
57
+ this.sessions.set(session.id, session);
58
+ return session;
59
+ }
60
+ get(id) {
61
+ return this.sessions.get(id) || null;
62
+ }
63
+ list(filter) {
64
+ let result = Array.from(this.sessions.values());
65
+ if (filter?.agentId)
66
+ result = result.filter(s => s.agentId === filter.agentId);
67
+ if (filter?.channel)
68
+ result = result.filter(s => s.channel === filter.channel);
69
+ if (filter?.active !== undefined) {
70
+ const cutoff = Date.now() - 30 * 60 * 1000; // 30 min
71
+ result = result.filter(s => filter.active ? s.lastActivity > cutoff : s.lastActivity <= cutoff);
72
+ }
73
+ return result;
74
+ }
75
+ addMessage(sessionId, message) {
76
+ const session = this.sessions.get(sessionId);
77
+ if (!session)
78
+ throw new Error(`Session ${sessionId} not found`);
79
+ session.messages.push(message);
80
+ session.lastActivity = Date.now();
81
+ }
82
+ async compact(sessionId, brain) {
83
+ const session = this.sessions.get(sessionId);
84
+ if (!session)
85
+ throw new Error(`Session ${sessionId} not found`);
86
+ if (brain && typeof brain.compress === 'function') {
87
+ const compressed = await brain.compress(session.messages);
88
+ session.messages = [{ id: 'compacted', role: 'system', content: compressed, timestamp: Date.now() }];
89
+ }
90
+ else {
91
+ // Simple: keep first and last 5 messages
92
+ if (session.messages.length > 10) {
93
+ const first = session.messages.slice(0, 2);
94
+ const last = session.messages.slice(-5);
95
+ session.messages = [...first, { id: 'compacted', role: 'system', content: `[${session.messages.length - 7} messages compacted]`, timestamp: Date.now() }, ...last];
96
+ }
97
+ }
98
+ session.compactedAt = Date.now();
99
+ }
100
+ prune(maxAge) {
101
+ const cutoff = Date.now() - maxAge;
102
+ let pruned = 0;
103
+ for (const [id, session] of this.sessions) {
104
+ if (session.lastActivity < cutoff) {
105
+ this.sessions.delete(id);
106
+ pruned++;
107
+ }
108
+ }
109
+ return pruned;
110
+ }
111
+ getLineage(sessionId) {
112
+ const lineage = [];
113
+ let current = this.sessions.get(sessionId);
114
+ while (current) {
115
+ lineage.unshift(current);
116
+ current = current.parentId ? this.sessions.get(current.parentId) || undefined : undefined;
117
+ }
118
+ return lineage;
119
+ }
120
+ fork(sessionId) {
121
+ const parent = this.sessions.get(sessionId);
122
+ if (!parent)
123
+ throw new Error(`Session ${sessionId} not found`);
124
+ return this.create(parent.agentId, parent.channel, parent.id);
125
+ }
126
+ export(sessionId) {
127
+ const session = this.sessions.get(sessionId);
128
+ if (!session)
129
+ throw new Error(`Session ${sessionId} not found`);
130
+ const lines = [`# Session ${session.id}`, `Agent: ${session.agentId} | Channel: ${session.channel}`, `Created: ${new Date(session.createdAt).toISOString()}`, ''];
131
+ for (const msg of session.messages) {
132
+ lines.push(`**${msg.role}** (${new Date(msg.timestamp).toISOString()}):`);
133
+ lines.push(msg.content);
134
+ lines.push('');
135
+ }
136
+ return lines.join('\n');
137
+ }
138
+ save() {
139
+ if (!fs.existsSync(this.storageDir)) {
140
+ fs.mkdirSync(this.storageDir, { recursive: true });
141
+ }
142
+ for (const [id, session] of this.sessions) {
143
+ fs.writeFileSync(path.join(this.storageDir, `${id}.json`), JSON.stringify(session, null, 2));
144
+ }
145
+ }
146
+ load() {
147
+ if (!fs.existsSync(this.storageDir))
148
+ return;
149
+ const files = fs.readdirSync(this.storageDir).filter(f => f.endsWith('.json'));
150
+ for (const file of files) {
151
+ const data = JSON.parse(fs.readFileSync(path.join(this.storageDir, file), 'utf-8'));
152
+ this.sessions.set(data.id, data);
153
+ }
154
+ }
155
+ }
156
+ exports.SessionManager = SessionManager;
157
+ //# sourceMappingURL=session-manager.js.map
@@ -0,0 +1,45 @@
1
+ export interface ImageInput {
2
+ type: 'base64' | 'url' | 'file';
3
+ data: string;
4
+ mimeType?: string;
5
+ }
6
+ export interface VisionResult {
7
+ description: string;
8
+ text_content?: string;
9
+ objects?: string[];
10
+ }
11
+ export declare function detectMimeType(buffer: Buffer): string;
12
+ export interface VisionManagerConfig {
13
+ model?: string;
14
+ apiKey?: string;
15
+ baseURL?: string;
16
+ maxImageSize?: number;
17
+ }
18
+ export declare class VisionManager {
19
+ private config;
20
+ constructor(config?: VisionManagerConfig);
21
+ /**
22
+ * Load image data as base64, detecting MIME type.
23
+ */
24
+ loadImage(input: ImageInput): Promise<{
25
+ base64: string;
26
+ mimeType: string;
27
+ }>;
28
+ /**
29
+ * Prepare messages in OpenAI multimodal format.
30
+ */
31
+ prepareMessage(images: ImageInput[], text: string): Array<Record<string, unknown>>;
32
+ /**
33
+ * Analyze an image with optional prompt.
34
+ */
35
+ analyze(image: ImageInput, prompt?: string): Promise<VisionResult>;
36
+ /**
37
+ * Extract text (OCR) from an image.
38
+ */
39
+ extractText(image: ImageInput): Promise<string>;
40
+ /**
41
+ * Compare multiple images.
42
+ */
43
+ compareImages(images: ImageInput[], prompt?: string): Promise<string>;
44
+ }
45
+ //# sourceMappingURL=vision.d.ts.map
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.VisionManager = void 0;
37
+ exports.detectMimeType = detectMimeType;
38
+ const fs = __importStar(require("fs"));
39
+ // ─── MIME detection from magic bytes ─────────────────────────
40
+ const MAGIC_BYTES = [
41
+ { bytes: [0x89, 0x50, 0x4E, 0x47], mime: 'image/png' },
42
+ { bytes: [0xFF, 0xD8, 0xFF], mime: 'image/jpeg' },
43
+ { bytes: [0x47, 0x49, 0x46, 0x38], mime: 'image/gif' },
44
+ { bytes: [0x52, 0x49, 0x46, 0x46], mime: 'image/webp' }, // RIFF header (WebP)
45
+ ];
46
+ function detectMimeType(buffer) {
47
+ for (const { bytes, mime } of MAGIC_BYTES) {
48
+ if (bytes.every((b, i) => buffer[i] === b)) {
49
+ return mime;
50
+ }
51
+ }
52
+ return 'application/octet-stream';
53
+ }
54
+ class VisionManager {
55
+ config;
56
+ constructor(config = {}) {
57
+ this.config = {
58
+ model: config.model ?? 'gpt-4o',
59
+ apiKey: config.apiKey ?? process.env.OPENAI_API_KEY ?? '',
60
+ baseURL: config.baseURL ?? 'https://api.openai.com/v1',
61
+ maxImageSize: config.maxImageSize ?? 20 * 1024 * 1024,
62
+ };
63
+ }
64
+ /**
65
+ * Load image data as base64, detecting MIME type.
66
+ */
67
+ async loadImage(input) {
68
+ if (input.type === 'base64') {
69
+ const buf = Buffer.from(input.data, 'base64');
70
+ return { base64: input.data, mimeType: input.mimeType ?? detectMimeType(buf) };
71
+ }
72
+ if (input.type === 'file') {
73
+ const buf = fs.readFileSync(input.data);
74
+ if (buf.length > this.config.maxImageSize) {
75
+ throw new Error(`Image exceeds max size: ${buf.length} > ${this.config.maxImageSize}`);
76
+ }
77
+ return { base64: buf.toString('base64'), mimeType: input.mimeType ?? detectMimeType(buf) };
78
+ }
79
+ // URL — return as-is for API
80
+ return { base64: '', mimeType: input.mimeType ?? 'image/jpeg' };
81
+ }
82
+ /**
83
+ * Prepare messages in OpenAI multimodal format.
84
+ */
85
+ prepareMessage(images, text) {
86
+ const content = [];
87
+ if (text) {
88
+ content.push({ type: 'text', text });
89
+ }
90
+ for (const img of images) {
91
+ if (img.type === 'url') {
92
+ content.push({
93
+ type: 'image_url',
94
+ image_url: { url: img.data },
95
+ });
96
+ }
97
+ else {
98
+ // base64 or file — will need to be loaded first
99
+ const mime = img.mimeType ?? 'image/jpeg';
100
+ const data = img.type === 'base64' ? img.data : fs.readFileSync(img.data).toString('base64');
101
+ content.push({
102
+ type: 'image_url',
103
+ image_url: { url: `data:${mime};base64,${data}` },
104
+ });
105
+ }
106
+ }
107
+ return [{ role: 'user', content }];
108
+ }
109
+ /**
110
+ * Analyze an image with optional prompt.
111
+ */
112
+ async analyze(image, prompt) {
113
+ const messages = this.prepareMessage([image], prompt ?? 'Describe this image in detail.');
114
+ if (!this.config.apiKey) {
115
+ throw new Error('Vision API key not configured. Set OPENAI_API_KEY or pass apiKey in config.');
116
+ }
117
+ const response = await fetch(`${this.config.baseURL}/chat/completions`, {
118
+ method: 'POST',
119
+ headers: {
120
+ 'Content-Type': 'application/json',
121
+ 'Authorization': `Bearer ${this.config.apiKey}`,
122
+ },
123
+ body: JSON.stringify({
124
+ model: this.config.model,
125
+ messages,
126
+ max_tokens: 1000,
127
+ }),
128
+ });
129
+ if (!response.ok) {
130
+ throw new Error(`Vision API error: ${response.status} ${response.statusText}`);
131
+ }
132
+ const data = await response.json();
133
+ const text = data.choices?.[0]?.message?.content ?? '';
134
+ return {
135
+ description: text,
136
+ text_content: undefined,
137
+ objects: [],
138
+ };
139
+ }
140
+ /**
141
+ * Extract text (OCR) from an image.
142
+ */
143
+ async extractText(image) {
144
+ const result = await this.analyze(image, 'Extract all visible text from this image. Return only the text, nothing else.');
145
+ return result.description;
146
+ }
147
+ /**
148
+ * Compare multiple images.
149
+ */
150
+ async compareImages(images, prompt) {
151
+ if (images.length < 2)
152
+ throw new Error('Need at least 2 images to compare');
153
+ const messages = this.prepareMessage(images, prompt ?? 'Compare these images and describe the differences.');
154
+ if (!this.config.apiKey) {
155
+ throw new Error('Vision API key not configured.');
156
+ }
157
+ const response = await fetch(`${this.config.baseURL}/chat/completions`, {
158
+ method: 'POST',
159
+ headers: {
160
+ 'Content-Type': 'application/json',
161
+ 'Authorization': `Bearer ${this.config.apiKey}`,
162
+ },
163
+ body: JSON.stringify({
164
+ model: this.config.model,
165
+ messages,
166
+ max_tokens: 1000,
167
+ }),
168
+ });
169
+ if (!response.ok) {
170
+ throw new Error(`Vision API error: ${response.status} ${response.statusText}`);
171
+ }
172
+ const data = await response.json();
173
+ return data.choices?.[0]?.message?.content ?? '';
174
+ }
175
+ }
176
+ exports.VisionManager = VisionManager;
177
+ //# sourceMappingURL=vision.js.map
package/dist/index.d.ts CHANGED
@@ -67,6 +67,22 @@ export { TextAnalysisTool } from './tools/text-analysis';
67
67
  export { HttpSkill } from './skills/http';
68
68
  export { WebhookTriggerSkill } from './skills/webhook-trigger';
69
69
  export type { WebhookTarget } from './skills/webhook-trigger';
70
+ export { DingTalkChannel } from './channels/dingtalk';
71
+ export type { DingTalkChannelConfig } from './channels/dingtalk';
72
+ export { MattermostChannel } from './channels/mattermost';
73
+ export type { MattermostChannelConfig } from './channels/mattermost';
74
+ export { GoogleChatChannel } from './channels/googlechat';
75
+ export type { GoogleChatChannelConfig } from './channels/googlechat';
76
+ export { TwitchChannel } from './channels/twitch';
77
+ export type { TwitchChannelConfig } from './channels/twitch';
78
+ export { IRCChannel } from './channels/irc';
79
+ export type { IRCChannelConfig } from './channels/irc';
80
+ export { ContextDiscovery } from './core/context-discovery';
81
+ export type { ContextFile } from './core/context-discovery';
82
+ export { SessionManager } from './core/session-manager';
83
+ export type { Session } from './core/session-manager';
84
+ export { HeartbeatManager } from './core/heartbeat';
85
+ export type { HeartbeatConfig } from './core/heartbeat';
70
86
  export { SchedulerSkill } from './skills/scheduler';
71
87
  export type { ScheduledTask } from './skills/scheduler';
72
88
  export { DocumentSkill } from './skills/document';
@@ -93,6 +109,16 @@ export { rateLimiterPlugin, createRateLimiterPlugin as createEnhancedRateLimiter
93
109
  export { contentFilterPlugin, createContentFilterPlugin } from './plugins/content-filter';
94
110
  export { GuardrailManager, createGuardrailsFromConfig } from './security/guardrails';
95
111
  export type { GuardrailConfig, GuardrailRule, GuardrailResult, GuardrailViolation } from './security/guardrails';
112
+ export { ExecApprovalManager } from './security/approvals';
113
+ export type { ExecApprovalPolicy, ExecApprovalRequest, ExecApprovalHistory, ApprovalRequestCallback } from './security/approvals';
114
+ export { ElevatedManager } from './security/elevated';
115
+ export type { ElevationMode, ElevationAuditEntry } from './security/elevated';
116
+ export { SecretsManager } from './security/secrets';
117
+ export type { SecretsStore } from './security/secrets';
118
+ export { HookManager, ALL_HOOK_EVENTS } from './core/hooks';
119
+ export type { HookEvent, HookContext, HookHandler } from './core/hooks';
120
+ export { AudioProcessor } from './core/audio';
121
+ export type { AudioFormat, TranscribeOptions, SynthesizeOptions, TranscribeResult, SynthesizeResult } from './core/audio';
96
122
  export { FeishuChannel } from './channels/feishu';
97
123
  export type { FeishuChannelConfig } from './channels/feishu';
98
124
  export { DiscordChannel } from './channels/discord';
@@ -111,7 +137,7 @@ export { SubAgentManager } from './core/subagent';
111
137
  export type { SubAgentConfig, SubAgentResult } from './core/subagent';
112
138
  export { Scheduler, parseCron, cronMatches } from './core/scheduler';
113
139
  export type { CronJob, JobHandler } from './core/scheduler';
114
- export { getBuiltinTools, getBuiltinToolsByName } from './tools/builtin';
140
+ export { getBuiltinTools, getBuiltinToolsByName, rlTools, homeAssistantTools, configureHomeAssistant } from './tools/builtin';
115
141
  export { MCPClient } from './tools/mcp-client';
116
142
  export type { MCPServerConfig } from './tools/mcp-client';
117
143
  export { AgentPackager, AgentPublisher, AgentInstaller } from './publish';
@@ -130,5 +156,42 @@ export { AGUI_EVENT_TYPES, isValidEventType } from './protocols/agui';
130
156
  export { DebatePattern, VotingPattern, PipelinePattern, HierarchyPattern, SharedContext, ConversationProtocol } from './core/collaboration';
131
157
  export type { DebateResult, DebateArgument, VoteResult, VoteEntry, PipelineResult, PipelineStageResult, HierarchyResult, WorkerResult } from './core/collaboration';
132
158
  export type { AGUIEvent, AGUIEventType, AGUIMessage, AGUIRunRequest, AGUIToolCall, AGUIToolDefinition, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, RunStartedEvent, RunFinishedEvent, RunErrorEvent, StepStartedEvent, StepFinishedEvent, CustomEvent, } from './protocols/agui';
159
+ export { APIServer } from './core/api-server';
160
+ export type { APIServerConfig } from './core/api-server';
161
+ export { ContextRefResolver } from './core/context-refs';
162
+ export type { ContextRef, RefType } from './core/context-refs';
163
+ export { VisionManager, detectMimeType } from './core/vision';
164
+ export type { ImageInput, VisionResult, VisionManagerConfig } from './core/vision';
165
+ export { visionTools, visionAnalyzeTool, visionExtractTextTool, visionCompareTool } from './tools/builtin/vision';
166
+ export { WhatsAppChannel } from './channels/whatsapp';
167
+ export type { WhatsAppChannelConfig } from './channels/whatsapp';
168
+ export { SignalChannel } from './channels/signal';
169
+ export type { SignalChannelConfig } from './channels/signal';
170
+ export { MatrixChannel } from './channels/matrix';
171
+ export type { MatrixChannelConfig } from './channels/matrix';
172
+ export { IMessageChannel } from './channels/imessage';
173
+ export type { IMessageChannelConfig } from './channels/imessage';
174
+ export { LINEChannel } from './channels/line';
175
+ export type { LINEChannelConfig } from './channels/line';
176
+ export { MSTeamsChannel } from './channels/msteams';
177
+ export type { MSTeamsChannelConfig } from './channels/msteams';
178
+ export { QQChannel } from './channels/qq';
179
+ export type { QQChannelConfig } from './channels/qq';
180
+ export { NostrChannel } from './channels/nostr';
181
+ export type { NostrChannelConfig } from './channels/nostr';
182
+ export { SMSChannel } from './channels/sms';
183
+ export type { SMSChannelConfig } from './channels/sms';
184
+ export { VoiceCallManager } from './channels/voice-call';
185
+ export type { VoiceCallConfig } from './channels/voice-call';
186
+ export { IDEBridge } from './core/ide-bridge';
187
+ export type { IDEConfig, Diagnostic, TextEdit, Range, SearchOptions, SearchResult } from './core/ide-bridge';
188
+ export { NodeNetwork } from './core/node-network';
189
+ export type { RemoteNode } from './core/node-network';
190
+ export { Gateway } from './core/gateway';
191
+ export type { AgentConfig as GatewayAgentConfig, ChannelConfig as GatewayChannelConfig, GatewayConfig } from './core/gateway';
192
+ export { SandboxManager } from './core/sandbox';
193
+ export type { RemoteSandboxConfig, ExecResult } from './core/sandbox';
194
+ export { ProfileManager } from './core/profiles';
195
+ export type { Profile, ProfileConfig } from './core/profiles';
133
196
  export { SlackTool, EmailSendTool, WebhookTool, NotionTool, GitHubTool, JiraTool, CalendarTool, TrelloTool, WebSearchTool, WebScraperTool, DatabaseTool, VectorSearchTool, CodeExecutionTool, GitTool, NpmTool, ImageGenerationTool, PDFReaderTool, CSVAnalyzerTool, SummarizerTool, TranslatorTool, getAllIntegrationTools, getIntegrationTool, } from './tools/integrations';
134
197
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KnowledgeBase = exports.addMessages = exports.detectLocale = exports.getLocale = exports.setLocale = exports.t = exports.LazyLoader = exports.RequestBatcher = exports.ConnectionPool = exports.VersionManager = exports.WebhookChannel = exports.createVoiceProviders = exports.ElevenLabsTTSProvider = exports.OpenAITTSProvider = exports.EdgeTTSProvider = exports.DeepgramSTTProvider = exports.WhisperSTTProvider = exports.VoiceChannel = exports.HITLManager = exports.AgentCardRegistry = exports.AgentRegistry = exports.parseOADWorkflow = exports.WorkflowBuilder = exports.GraphWorkflowEngine = exports.WorkflowEngine = exports.Analytics = exports.KeyManager = exports.ApprovalManager = exports.Sandbox = exports.PluginManager = exports.createMCPTool = exports.MCPToolRegistry = exports.Room = exports.SUPPORTED_PROVIDERS = exports.createProvider = exports.DeepBrainMemoryStore = exports.InMemoryStore = exports.SkillRegistry = exports.BaseSkill = exports.WebSocketChannel = exports.TelegramChannel = exports.WebChannel = exports.BaseChannel = exports.OADSchema = exports.validateOAD = exports.loadOAD = exports.Logger = exports.truncateOutput = exports.AgentRuntime = exports.BaseAgent = void 0;
4
- exports.loggerPlugin = exports.createRateLimitPlugin = exports.createAnalyticsPlugin = exports.createLoggingPlugin = exports.inputValidation = exports.APIKeyManager = exports.corsMiddleware = exports.securityHeaders = exports.detectInjection = exports.sanitizeInput = exports.formatErrorForUser = exports.wrapError = exports.TimeoutError = exports.SecurityError = exports.RateLimitError = exports.PluginError = exports.ChannelError = exports.ConfigError = exports.ValidationError = exports.ProviderError = exports.OPCError = exports.createTeacherConfig = exports.createDataAnalystConfig = exports.getSupportedLocales = exports.LLMCache = exports.RateLimiter = exports.AnalyticsEngine = exports.formatReport = exports.loadTestCases = exports.runTests = exports.parseSkillMarkdown = exports.skillToMarkdown = exports.SkillLearner = exports.DocumentSkill = exports.SchedulerSkill = exports.WebhookTriggerSkill = exports.HttpSkill = exports.TextAnalysisTool = exports.JsonTransformTool = exports.DateTimeTool = exports.CalculatorTool = exports.WeChatChannel = exports.SlackChannel = exports.EmailChannel = exports.compose = exports.AgentPipeline = exports.Orchestrator = exports.getActiveSessions = exports.createAuthMiddleware = exports.deployToHermes = void 0;
5
- exports.SharedContext = exports.HierarchyPattern = exports.PipelinePattern = exports.VotingPattern = exports.DebatePattern = exports.isValidEventType = exports.AGUI_EVENT_TYPES = exports.AGUIClient = exports.AGUIEventEmitter = exports.AGUIServer = exports.AgentEvaluator = exports.agentToMCPResources = exports.agentToMCPTools = exports.MCPServer = exports.JSON_RPC_ERRORS = exports.oadToAgentCard = exports.A2AClient = exports.A2AServer = exports.StudioServer = exports.AgentInstaller = exports.AgentPublisher = exports.AgentPackager = exports.MCPClient = exports.getBuiltinToolsByName = exports.getBuiltinTools = exports.cronMatches = exports.parseCron = exports.Scheduler = exports.SubAgentManager = exports.generateSpanId = exports.generateTraceId = exports.OTLPHttpExporter = exports.FileExporter = exports.ConsoleExporter = exports.Tracer = exports.DeepBrainExporter = exports.TraceConsoleExporter = exports.TraceCollector = exports.StreamableResponse = exports.StreamingManager = exports.ToolGateway = exports.ProcessWatcher = exports.DiscordChannel = exports.FeishuChannel = exports.createGuardrailsFromConfig = exports.GuardrailManager = exports.createContentFilterPlugin = exports.contentFilterPlugin = exports.createEnhancedRateLimiterPlugin = exports.rateLimiterPlugin = void 0;
6
- exports.getIntegrationTool = exports.getAllIntegrationTools = exports.TranslatorTool = exports.SummarizerTool = exports.CSVAnalyzerTool = exports.PDFReaderTool = exports.ImageGenerationTool = exports.NpmTool = exports.GitTool = exports.CodeExecutionTool = exports.VectorSearchTool = exports.DatabaseTool = exports.WebScraperTool = exports.WebSearchTool = exports.TrelloTool = exports.CalendarTool = exports.JiraTool = exports.GitHubTool = exports.NotionTool = exports.WebhookTool = exports.EmailSendTool = exports.SlackTool = exports.ConversationProtocol = void 0;
4
+ exports.detectInjection = exports.sanitizeInput = exports.formatErrorForUser = exports.wrapError = exports.TimeoutError = exports.SecurityError = exports.RateLimitError = exports.PluginError = exports.ChannelError = exports.ConfigError = exports.ValidationError = exports.ProviderError = exports.OPCError = exports.createTeacherConfig = exports.createDataAnalystConfig = exports.getSupportedLocales = exports.LLMCache = exports.RateLimiter = exports.AnalyticsEngine = exports.formatReport = exports.loadTestCases = exports.runTests = exports.parseSkillMarkdown = exports.skillToMarkdown = exports.SkillLearner = exports.DocumentSkill = exports.SchedulerSkill = exports.HeartbeatManager = exports.SessionManager = exports.ContextDiscovery = exports.IRCChannel = exports.TwitchChannel = exports.GoogleChatChannel = exports.MattermostChannel = exports.DingTalkChannel = exports.WebhookTriggerSkill = exports.HttpSkill = exports.TextAnalysisTool = exports.JsonTransformTool = exports.DateTimeTool = exports.CalculatorTool = exports.WeChatChannel = exports.SlackChannel = exports.EmailChannel = exports.compose = exports.AgentPipeline = exports.Orchestrator = exports.getActiveSessions = exports.createAuthMiddleware = exports.deployToHermes = void 0;
5
+ exports.A2AServer = exports.StudioServer = exports.AgentInstaller = exports.AgentPublisher = exports.AgentPackager = exports.MCPClient = exports.configureHomeAssistant = exports.homeAssistantTools = exports.rlTools = exports.getBuiltinToolsByName = exports.getBuiltinTools = exports.cronMatches = exports.parseCron = exports.Scheduler = exports.SubAgentManager = exports.generateSpanId = exports.generateTraceId = exports.OTLPHttpExporter = exports.FileExporter = exports.ConsoleExporter = exports.Tracer = exports.DeepBrainExporter = exports.TraceConsoleExporter = exports.TraceCollector = exports.StreamableResponse = exports.StreamingManager = exports.ToolGateway = exports.ProcessWatcher = exports.DiscordChannel = exports.FeishuChannel = exports.AudioProcessor = exports.ALL_HOOK_EVENTS = exports.HookManager = exports.SecretsManager = exports.ElevatedManager = exports.ExecApprovalManager = exports.createGuardrailsFromConfig = exports.GuardrailManager = exports.createContentFilterPlugin = exports.contentFilterPlugin = exports.createEnhancedRateLimiterPlugin = exports.rateLimiterPlugin = exports.loggerPlugin = exports.createRateLimitPlugin = exports.createAnalyticsPlugin = exports.createLoggingPlugin = exports.inputValidation = exports.APIKeyManager = exports.corsMiddleware = exports.securityHeaders = void 0;
6
+ exports.WebSearchTool = exports.TrelloTool = exports.CalendarTool = exports.JiraTool = exports.GitHubTool = exports.NotionTool = exports.WebhookTool = exports.EmailSendTool = exports.SlackTool = exports.ProfileManager = exports.SandboxManager = exports.Gateway = exports.NodeNetwork = exports.IDEBridge = exports.VoiceCallManager = exports.SMSChannel = exports.NostrChannel = exports.QQChannel = exports.MSTeamsChannel = exports.LINEChannel = exports.IMessageChannel = exports.MatrixChannel = exports.SignalChannel = exports.WhatsAppChannel = exports.visionCompareTool = exports.visionExtractTextTool = exports.visionAnalyzeTool = exports.visionTools = exports.detectMimeType = exports.VisionManager = exports.ContextRefResolver = exports.APIServer = exports.ConversationProtocol = exports.SharedContext = exports.HierarchyPattern = exports.PipelinePattern = exports.VotingPattern = exports.DebatePattern = exports.isValidEventType = exports.AGUI_EVENT_TYPES = exports.AGUIClient = exports.AGUIEventEmitter = exports.AGUIServer = exports.AgentEvaluator = exports.agentToMCPResources = exports.agentToMCPTools = exports.MCPServer = exports.JSON_RPC_ERRORS = exports.oadToAgentCard = exports.A2AClient = void 0;
7
+ exports.getIntegrationTool = exports.getAllIntegrationTools = exports.TranslatorTool = exports.SummarizerTool = exports.CSVAnalyzerTool = exports.PDFReaderTool = exports.ImageGenerationTool = exports.NpmTool = exports.GitTool = exports.CodeExecutionTool = exports.VectorSearchTool = exports.DatabaseTool = exports.WebScraperTool = void 0;
7
8
  // OPC Agent — Open Agent Framework
8
9
  var agent_1 = require("./core/agent");
9
10
  Object.defineProperty(exports, "BaseAgent", { enumerable: true, get: function () { return agent_1.BaseAgent; } });
@@ -120,6 +121,24 @@ var http_1 = require("./skills/http");
120
121
  Object.defineProperty(exports, "HttpSkill", { enumerable: true, get: function () { return http_1.HttpSkill; } });
121
122
  var webhook_trigger_1 = require("./skills/webhook-trigger");
122
123
  Object.defineProperty(exports, "WebhookTriggerSkill", { enumerable: true, get: function () { return webhook_trigger_1.WebhookTriggerSkill; } });
124
+ // v0.9.0 channels
125
+ var dingtalk_1 = require("./channels/dingtalk");
126
+ Object.defineProperty(exports, "DingTalkChannel", { enumerable: true, get: function () { return dingtalk_1.DingTalkChannel; } });
127
+ var mattermost_1 = require("./channels/mattermost");
128
+ Object.defineProperty(exports, "MattermostChannel", { enumerable: true, get: function () { return mattermost_1.MattermostChannel; } });
129
+ var googlechat_1 = require("./channels/googlechat");
130
+ Object.defineProperty(exports, "GoogleChatChannel", { enumerable: true, get: function () { return googlechat_1.GoogleChatChannel; } });
131
+ var twitch_1 = require("./channels/twitch");
132
+ Object.defineProperty(exports, "TwitchChannel", { enumerable: true, get: function () { return twitch_1.TwitchChannel; } });
133
+ var irc_1 = require("./channels/irc");
134
+ Object.defineProperty(exports, "IRCChannel", { enumerable: true, get: function () { return irc_1.IRCChannel; } });
135
+ // v0.9.0 core
136
+ var context_discovery_1 = require("./core/context-discovery");
137
+ Object.defineProperty(exports, "ContextDiscovery", { enumerable: true, get: function () { return context_discovery_1.ContextDiscovery; } });
138
+ var session_manager_1 = require("./core/session-manager");
139
+ Object.defineProperty(exports, "SessionManager", { enumerable: true, get: function () { return session_manager_1.SessionManager; } });
140
+ var heartbeat_1 = require("./core/heartbeat");
141
+ Object.defineProperty(exports, "HeartbeatManager", { enumerable: true, get: function () { return heartbeat_1.HeartbeatManager; } });
123
142
  var scheduler_1 = require("./skills/scheduler");
124
143
  Object.defineProperty(exports, "SchedulerSkill", { enumerable: true, get: function () { return scheduler_1.SchedulerSkill; } });
125
144
  var document_1 = require("./skills/document");
@@ -181,6 +200,19 @@ Object.defineProperty(exports, "createContentFilterPlugin", { enumerable: true,
181
200
  var guardrails_1 = require("./security/guardrails");
182
201
  Object.defineProperty(exports, "GuardrailManager", { enumerable: true, get: function () { return guardrails_1.GuardrailManager; } });
183
202
  Object.defineProperty(exports, "createGuardrailsFromConfig", { enumerable: true, get: function () { return guardrails_1.createGuardrailsFromConfig; } });
203
+ // v3.1.0 — Exec Approvals + Elevated + Secrets
204
+ var approvals_1 = require("./security/approvals");
205
+ Object.defineProperty(exports, "ExecApprovalManager", { enumerable: true, get: function () { return approvals_1.ExecApprovalManager; } });
206
+ var elevated_1 = require("./security/elevated");
207
+ Object.defineProperty(exports, "ElevatedManager", { enumerable: true, get: function () { return elevated_1.ElevatedManager; } });
208
+ var secrets_1 = require("./security/secrets");
209
+ Object.defineProperty(exports, "SecretsManager", { enumerable: true, get: function () { return secrets_1.SecretsManager; } });
210
+ // v3.1.0 — Hooks + Audio
211
+ var hooks_1 = require("./core/hooks");
212
+ Object.defineProperty(exports, "HookManager", { enumerable: true, get: function () { return hooks_1.HookManager; } });
213
+ Object.defineProperty(exports, "ALL_HOOK_EVENTS", { enumerable: true, get: function () { return hooks_1.ALL_HOOK_EVENTS; } });
214
+ var audio_1 = require("./core/audio");
215
+ Object.defineProperty(exports, "AudioProcessor", { enumerable: true, get: function () { return audio_1.AudioProcessor; } });
184
216
  // v1.1.0 modules
185
217
  var feishu_1 = require("./channels/feishu");
186
218
  Object.defineProperty(exports, "FeishuChannel", { enumerable: true, get: function () { return feishu_1.FeishuChannel; } });
@@ -219,6 +251,9 @@ Object.defineProperty(exports, "cronMatches", { enumerable: true, get: function
219
251
  var builtin_1 = require("./tools/builtin");
220
252
  Object.defineProperty(exports, "getBuiltinTools", { enumerable: true, get: function () { return builtin_1.getBuiltinTools; } });
221
253
  Object.defineProperty(exports, "getBuiltinToolsByName", { enumerable: true, get: function () { return builtin_1.getBuiltinToolsByName; } });
254
+ Object.defineProperty(exports, "rlTools", { enumerable: true, get: function () { return builtin_1.rlTools; } });
255
+ Object.defineProperty(exports, "homeAssistantTools", { enumerable: true, get: function () { return builtin_1.homeAssistantTools; } });
256
+ Object.defineProperty(exports, "configureHomeAssistant", { enumerable: true, get: function () { return builtin_1.configureHomeAssistant; } });
222
257
  var mcp_client_1 = require("./tools/mcp-client");
223
258
  Object.defineProperty(exports, "MCPClient", { enumerable: true, get: function () { return mcp_client_1.MCPClient; } });
224
259
  // v1.6.0 — publish/pack/install
@@ -260,6 +295,54 @@ Object.defineProperty(exports, "PipelinePattern", { enumerable: true, get: funct
260
295
  Object.defineProperty(exports, "HierarchyPattern", { enumerable: true, get: function () { return collaboration_1.HierarchyPattern; } });
261
296
  Object.defineProperty(exports, "SharedContext", { enumerable: true, get: function () { return collaboration_1.SharedContext; } });
262
297
  Object.defineProperty(exports, "ConversationProtocol", { enumerable: true, get: function () { return collaboration_1.ConversationProtocol; } });
298
+ // v2.1.0 — API Server + Context References
299
+ var api_server_1 = require("./core/api-server");
300
+ Object.defineProperty(exports, "APIServer", { enumerable: true, get: function () { return api_server_1.APIServer; } });
301
+ var context_refs_1 = require("./core/context-refs");
302
+ Object.defineProperty(exports, "ContextRefResolver", { enumerable: true, get: function () { return context_refs_1.ContextRefResolver; } });
303
+ // v2.2.0 — Vision
304
+ var vision_1 = require("./core/vision");
305
+ Object.defineProperty(exports, "VisionManager", { enumerable: true, get: function () { return vision_1.VisionManager; } });
306
+ Object.defineProperty(exports, "detectMimeType", { enumerable: true, get: function () { return vision_1.detectMimeType; } });
307
+ var vision_2 = require("./tools/builtin/vision");
308
+ Object.defineProperty(exports, "visionTools", { enumerable: true, get: function () { return vision_2.visionTools; } });
309
+ Object.defineProperty(exports, "visionAnalyzeTool", { enumerable: true, get: function () { return vision_2.visionAnalyzeTool; } });
310
+ Object.defineProperty(exports, "visionExtractTextTool", { enumerable: true, get: function () { return vision_2.visionExtractTextTool; } });
311
+ Object.defineProperty(exports, "visionCompareTool", { enumerable: true, get: function () { return vision_2.visionCompareTool; } });
312
+ // v2.2.0 — Additional channels
313
+ var whatsapp_1 = require("./channels/whatsapp");
314
+ Object.defineProperty(exports, "WhatsAppChannel", { enumerable: true, get: function () { return whatsapp_1.WhatsAppChannel; } });
315
+ var signal_1 = require("./channels/signal");
316
+ Object.defineProperty(exports, "SignalChannel", { enumerable: true, get: function () { return signal_1.SignalChannel; } });
317
+ var matrix_1 = require("./channels/matrix");
318
+ Object.defineProperty(exports, "MatrixChannel", { enumerable: true, get: function () { return matrix_1.MatrixChannel; } });
319
+ var imessage_1 = require("./channels/imessage");
320
+ Object.defineProperty(exports, "IMessageChannel", { enumerable: true, get: function () { return imessage_1.IMessageChannel; } });
321
+ var line_1 = require("./channels/line");
322
+ Object.defineProperty(exports, "LINEChannel", { enumerable: true, get: function () { return line_1.LINEChannel; } });
323
+ var msteams_1 = require("./channels/msteams");
324
+ Object.defineProperty(exports, "MSTeamsChannel", { enumerable: true, get: function () { return msteams_1.MSTeamsChannel; } });
325
+ var qq_1 = require("./channels/qq");
326
+ Object.defineProperty(exports, "QQChannel", { enumerable: true, get: function () { return qq_1.QQChannel; } });
327
+ var nostr_1 = require("./channels/nostr");
328
+ Object.defineProperty(exports, "NostrChannel", { enumerable: true, get: function () { return nostr_1.NostrChannel; } });
329
+ var sms_1 = require("./channels/sms");
330
+ Object.defineProperty(exports, "SMSChannel", { enumerable: true, get: function () { return sms_1.SMSChannel; } });
331
+ // v2.3.0 — Voice Calls + IDE + Node Network + Gateway
332
+ var voice_call_1 = require("./channels/voice-call");
333
+ Object.defineProperty(exports, "VoiceCallManager", { enumerable: true, get: function () { return voice_call_1.VoiceCallManager; } });
334
+ var ide_bridge_1 = require("./core/ide-bridge");
335
+ Object.defineProperty(exports, "IDEBridge", { enumerable: true, get: function () { return ide_bridge_1.IDEBridge; } });
336
+ var node_network_1 = require("./core/node-network");
337
+ Object.defineProperty(exports, "NodeNetwork", { enumerable: true, get: function () { return node_network_1.NodeNetwork; } });
338
+ var gateway_2 = require("./core/gateway");
339
+ Object.defineProperty(exports, "Gateway", { enumerable: true, get: function () { return gateway_2.Gateway; } });
340
+ // v2.2.0 — Remote Sandbox
341
+ var sandbox_2 = require("./core/sandbox");
342
+ Object.defineProperty(exports, "SandboxManager", { enumerable: true, get: function () { return sandbox_2.SandboxManager; } });
343
+ // v2.2.0 — Profiles
344
+ var profiles_1 = require("./core/profiles");
345
+ Object.defineProperty(exports, "ProfileManager", { enumerable: true, get: function () { return profiles_1.ProfileManager; } });
263
346
  // v2.0.0 - Pre-built tool integrations (20 tools)
264
347
  var integrations_1 = require("./tools/integrations");
265
348
  Object.defineProperty(exports, "SlackTool", { enumerable: true, get: function () { return integrations_1.SlackTool; } });
@@ -0,0 +1,43 @@
1
+ import type { Message } from '../core/types';
2
+ export interface CompressorConfig {
3
+ maxTokens: number;
4
+ compressThreshold: number;
5
+ preserveRecent: number;
6
+ brain?: any;
7
+ }
8
+ export interface CompressResult {
9
+ messages: Message[];
10
+ learnedCount: number;
11
+ savedTokens: number;
12
+ summary: string;
13
+ }
14
+ /**
15
+ * Context compression with optional DeepBrain memory offloading.
16
+ */
17
+ export declare class ContextCompressor {
18
+ private config;
19
+ constructor(config?: Partial<CompressorConfig>);
20
+ /**
21
+ * Estimate token count using language-aware heuristic.
22
+ * English: ~1 token per 4 chars. Chinese: ~1 token per 2 chars.
23
+ */
24
+ estimateTokens(text: string): number;
25
+ private estimateMessagesTokens;
26
+ /**
27
+ * Extract key insights from messages for brain storage.
28
+ */
29
+ private extractInsights;
30
+ /**
31
+ * Generate a simple summary from messages (no-brain fallback).
32
+ */
33
+ private summarize;
34
+ /**
35
+ * Compress messages when token count exceeds threshold.
36
+ */
37
+ compress(messages: Message[], config?: Partial<CompressorConfig>): Promise<CompressResult>;
38
+ /**
39
+ * Restore context from brain for a given query.
40
+ */
41
+ restore(query: string, brain: any): Promise<string[]>;
42
+ }
43
+ //# sourceMappingURL=context-compressor.d.ts.map