opc-agent 3.0.1 → 4.0.1

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 (216) hide show
  1. package/README.md +404 -74
  2. package/README.zh-CN.md +82 -0
  3. package/dist/channels/dingtalk.d.ts +17 -0
  4. package/dist/channels/dingtalk.js +38 -0
  5. package/dist/channels/googlechat.d.ts +14 -0
  6. package/dist/channels/googlechat.js +37 -0
  7. package/dist/channels/imessage.d.ts +13 -0
  8. package/dist/channels/imessage.js +28 -0
  9. package/dist/channels/irc.d.ts +20 -0
  10. package/dist/channels/irc.js +71 -0
  11. package/dist/channels/line.d.ts +14 -0
  12. package/dist/channels/line.js +28 -0
  13. package/dist/channels/matrix.d.ts +15 -0
  14. package/dist/channels/matrix.js +28 -0
  15. package/dist/channels/mattermost.d.ts +18 -0
  16. package/dist/channels/mattermost.js +49 -0
  17. package/dist/channels/msteams.d.ts +14 -0
  18. package/dist/channels/msteams.js +28 -0
  19. package/dist/channels/nostr.d.ts +14 -0
  20. package/dist/channels/nostr.js +28 -0
  21. package/dist/channels/qq.d.ts +15 -0
  22. package/dist/channels/qq.js +28 -0
  23. package/dist/channels/signal.d.ts +14 -0
  24. package/dist/channels/signal.js +28 -0
  25. package/dist/channels/sms.d.ts +15 -0
  26. package/dist/channels/sms.js +28 -0
  27. package/dist/channels/twitch.d.ts +17 -0
  28. package/dist/channels/twitch.js +59 -0
  29. package/dist/channels/voice-call.d.ts +27 -0
  30. package/dist/channels/voice-call.js +82 -0
  31. package/dist/channels/whatsapp.d.ts +14 -0
  32. package/dist/channels/whatsapp.js +28 -0
  33. package/dist/cli/chat.d.ts +2 -0
  34. package/dist/cli/chat.js +134 -0
  35. package/dist/cli/setup.d.ts +4 -0
  36. package/dist/cli/setup.js +303 -0
  37. package/dist/cli.js +142 -6
  38. package/dist/core/api-server.d.ts +25 -0
  39. package/dist/core/api-server.js +286 -0
  40. package/dist/core/audio.d.ts +50 -0
  41. package/dist/core/audio.js +68 -0
  42. package/dist/core/context-discovery.d.ts +16 -0
  43. package/dist/core/context-discovery.js +107 -0
  44. package/dist/core/context-refs.d.ts +29 -0
  45. package/dist/core/context-refs.js +162 -0
  46. package/dist/core/gateway.d.ts +53 -0
  47. package/dist/core/gateway.js +80 -0
  48. package/dist/core/heartbeat.d.ts +19 -0
  49. package/dist/core/heartbeat.js +50 -0
  50. package/dist/core/hooks.d.ts +28 -0
  51. package/dist/core/hooks.js +82 -0
  52. package/dist/core/ide-bridge.d.ts +53 -0
  53. package/dist/core/ide-bridge.js +97 -0
  54. package/dist/core/node-network.d.ts +23 -0
  55. package/dist/core/node-network.js +77 -0
  56. package/dist/core/profiles.d.ts +27 -0
  57. package/dist/core/profiles.js +131 -0
  58. package/dist/core/sandbox.d.ts +25 -0
  59. package/dist/core/sandbox.js +84 -1
  60. package/dist/core/session-manager.d.ts +33 -0
  61. package/dist/core/session-manager.js +157 -0
  62. package/dist/core/vision.d.ts +45 -0
  63. package/dist/core/vision.js +177 -0
  64. package/dist/hub/brain-seed.d.ts +14 -0
  65. package/dist/hub/brain-seed.js +77 -0
  66. package/dist/hub/client.d.ts +25 -0
  67. package/dist/hub/client.js +44 -0
  68. package/dist/index.d.ts +66 -1
  69. package/dist/index.js +95 -3
  70. package/dist/memory/context-compressor.d.ts +43 -0
  71. package/dist/memory/context-compressor.js +167 -0
  72. package/dist/memory/index.d.ts +4 -0
  73. package/dist/memory/index.js +5 -1
  74. package/dist/memory/user-profiler.d.ts +50 -0
  75. package/dist/memory/user-profiler.js +201 -0
  76. package/dist/providers/index.d.ts +1 -1
  77. package/dist/providers/index.js +54 -1
  78. package/dist/scheduler/cron-engine.d.ts +41 -0
  79. package/dist/scheduler/cron-engine.js +200 -0
  80. package/dist/scheduler/index.d.ts +3 -0
  81. package/dist/scheduler/index.js +7 -0
  82. package/dist/schema/oad.d.ts +12 -12
  83. package/dist/security/approvals.d.ts +53 -0
  84. package/dist/security/approvals.js +115 -0
  85. package/dist/security/elevated.d.ts +41 -0
  86. package/dist/security/elevated.js +89 -0
  87. package/dist/security/index.d.ts +6 -0
  88. package/dist/security/index.js +7 -1
  89. package/dist/security/secrets.d.ts +34 -0
  90. package/dist/security/secrets.js +115 -0
  91. package/dist/skills/builtin/index.d.ts +6 -0
  92. package/dist/skills/builtin/index.js +402 -0
  93. package/dist/skills/marketplace.d.ts +30 -0
  94. package/dist/skills/marketplace.js +142 -0
  95. package/dist/skills/types.d.ts +34 -0
  96. package/dist/skills/types.js +16 -0
  97. package/dist/studio/server.d.ts +25 -0
  98. package/dist/studio/server.js +780 -0
  99. package/dist/studio/templates-data.d.ts +21 -0
  100. package/dist/studio/templates-data.js +148 -0
  101. package/dist/studio-ui/index.html +2502 -1073
  102. package/dist/tools/builtin/browser.d.ts +47 -0
  103. package/dist/tools/builtin/browser.js +284 -0
  104. package/dist/tools/builtin/home-assistant.d.ts +12 -0
  105. package/dist/tools/builtin/home-assistant.js +126 -0
  106. package/dist/tools/builtin/index.d.ts +7 -1
  107. package/dist/tools/builtin/index.js +23 -2
  108. package/dist/tools/builtin/rl-tools.d.ts +13 -0
  109. package/dist/tools/builtin/rl-tools.js +228 -0
  110. package/dist/tools/builtin/vision.d.ts +6 -0
  111. package/dist/tools/builtin/vision.js +61 -0
  112. package/dist/tools/builtin/web-search.d.ts +9 -0
  113. package/dist/tools/builtin/web-search.js +150 -0
  114. package/dist/tools/document-processor.d.ts +39 -0
  115. package/dist/tools/document-processor.js +188 -0
  116. package/dist/tools/image-generator.d.ts +42 -0
  117. package/dist/tools/image-generator.js +136 -0
  118. package/dist/tools/web-scraper.d.ts +20 -0
  119. package/dist/tools/web-scraper.js +148 -0
  120. package/dist/tools/web-search.d.ts +51 -0
  121. package/dist/tools/web-search.js +152 -0
  122. package/install.ps1 +154 -0
  123. package/install.sh +164 -0
  124. package/package.json +63 -52
  125. package/src/channels/dingtalk.ts +46 -0
  126. package/src/channels/googlechat.ts +42 -0
  127. package/src/channels/imessage.ts +32 -0
  128. package/src/channels/irc.ts +82 -0
  129. package/src/channels/line.ts +33 -0
  130. package/src/channels/matrix.ts +34 -0
  131. package/src/channels/mattermost.ts +57 -0
  132. package/src/channels/msteams.ts +33 -0
  133. package/src/channels/nostr.ts +33 -0
  134. package/src/channels/qq.ts +34 -0
  135. package/src/channels/signal.ts +33 -0
  136. package/src/channels/sms.ts +34 -0
  137. package/src/channels/twitch.ts +65 -0
  138. package/src/channels/voice-call.ts +100 -0
  139. package/src/channels/whatsapp.ts +33 -0
  140. package/src/cli/chat.ts +99 -0
  141. package/src/cli/setup.ts +314 -0
  142. package/src/cli.ts +148 -6
  143. package/src/core/api-server.ts +277 -0
  144. package/src/core/audio.ts +98 -0
  145. package/src/core/context-discovery.ts +85 -0
  146. package/src/core/context-refs.ts +140 -0
  147. package/src/core/gateway.ts +106 -0
  148. package/src/core/heartbeat.ts +51 -0
  149. package/src/core/hooks.ts +105 -0
  150. package/src/core/ide-bridge.ts +133 -0
  151. package/src/core/node-network.ts +86 -0
  152. package/src/core/profiles.ts +122 -0
  153. package/src/core/sandbox.ts +100 -0
  154. package/src/core/session-manager.ts +137 -0
  155. package/src/core/vision.ts +180 -0
  156. package/src/hub/brain-seed.ts +54 -0
  157. package/src/hub/client.ts +60 -0
  158. package/src/index.ts +86 -1
  159. package/src/memory/context-compressor.ts +189 -0
  160. package/src/memory/index.ts +4 -0
  161. package/src/memory/user-profiler.ts +215 -0
  162. package/src/providers/index.ts +64 -1
  163. package/src/scheduler/cron-engine.ts +191 -0
  164. package/src/scheduler/index.ts +2 -0
  165. package/src/security/approvals.ts +143 -0
  166. package/src/security/elevated.ts +105 -0
  167. package/src/security/index.ts +6 -0
  168. package/src/security/secrets.ts +129 -0
  169. package/src/skills/builtin/index.ts +408 -0
  170. package/src/skills/marketplace.ts +113 -0
  171. package/src/skills/types.ts +42 -0
  172. package/src/studio/server.ts +1591 -791
  173. package/src/studio/templates-data.ts +178 -0
  174. package/src/studio-ui/index.html +2502 -1073
  175. package/src/tools/builtin/browser.ts +299 -0
  176. package/src/tools/builtin/home-assistant.ts +116 -0
  177. package/src/tools/builtin/index.ts +37 -28
  178. package/src/tools/builtin/rl-tools.ts +243 -0
  179. package/src/tools/builtin/vision.ts +64 -0
  180. package/src/tools/builtin/web-search.ts +126 -0
  181. package/src/tools/document-processor.ts +213 -0
  182. package/src/tools/image-generator.ts +150 -0
  183. package/src/tools/web-scraper.ts +179 -0
  184. package/src/tools/web-search.ts +180 -0
  185. package/tests/api-server.test.ts +148 -0
  186. package/tests/approvals.test.ts +89 -0
  187. package/tests/audio.test.ts +40 -0
  188. package/tests/browser.test.ts +179 -0
  189. package/tests/builtin-tools.test.ts +83 -83
  190. package/tests/channels-extra.test.ts +45 -0
  191. package/tests/context-compressor.test.ts +172 -0
  192. package/tests/context-refs.test.ts +121 -0
  193. package/tests/cron-engine.test.ts +101 -0
  194. package/tests/document-processor.test.ts +69 -0
  195. package/tests/e2e-nocode.test.ts +442 -0
  196. package/tests/elevated.test.ts +69 -0
  197. package/tests/gateway.test.ts +63 -71
  198. package/tests/home-assistant.test.ts +40 -0
  199. package/tests/hooks.test.ts +79 -0
  200. package/tests/ide-bridge.test.ts +38 -0
  201. package/tests/image-generator.test.ts +84 -0
  202. package/tests/node-network.test.ts +74 -0
  203. package/tests/profiles.test.ts +61 -0
  204. package/tests/rl-tools.test.ts +93 -0
  205. package/tests/sandbox-manager.test.ts +46 -0
  206. package/tests/secrets.test.ts +107 -0
  207. package/tests/settings-api.test.ts +148 -0
  208. package/tests/setup.test.ts +73 -0
  209. package/tests/studio.test.ts +402 -229
  210. package/tests/tools/builtin-extended.test.ts +138 -138
  211. package/tests/user-profiler.test.ts +169 -0
  212. package/tests/v090-features.test.ts +254 -0
  213. package/tests/vision.test.ts +61 -0
  214. package/tests/voice-call.test.ts +47 -0
  215. package/tests/voice-interaction.test.ts +38 -0
  216. package/tests/web-search.test.ts +155 -0
@@ -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
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Brain-seed downloader and auto-learner.
3
+ * Downloads brain-seed files from Hub and optionally imports into DeepBrain.
4
+ */
5
+ import type { HubBrainSeed } from './client';
6
+ export interface BrainSeedResult {
7
+ savedFiles: string[];
8
+ learnedCount: number;
9
+ }
10
+ /**
11
+ * Save brain-seed files to disk and optionally auto-learn into DeepBrain.
12
+ */
13
+ export declare function downloadAndLearnBrainSeeds(projectDir: string, seeds: HubBrainSeed[]): Promise<BrainSeedResult>;
14
+ //# sourceMappingURL=brain-seed.d.ts.map
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * Brain-seed downloader and auto-learner.
4
+ * Downloads brain-seed files from Hub and optionally imports into DeepBrain.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.downloadAndLearnBrainSeeds = downloadAndLearnBrainSeeds;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ /**
44
+ * Save brain-seed files to disk and optionally auto-learn into DeepBrain.
45
+ */
46
+ async function downloadAndLearnBrainSeeds(projectDir, seeds) {
47
+ if (!seeds || seeds.length === 0) {
48
+ return { savedFiles: [], learnedCount: 0 };
49
+ }
50
+ const seedDir = path.join(projectDir, 'brain-seed');
51
+ fs.mkdirSync(seedDir, { recursive: true });
52
+ const savedFiles = [];
53
+ for (const seed of seeds) {
54
+ const filePath = path.join(seedDir, seed.filename);
55
+ fs.writeFileSync(filePath, seed.content, 'utf-8');
56
+ savedFiles.push(seed.filename);
57
+ }
58
+ // Try auto-learn into DeepBrain (optional dependency)
59
+ let learnedCount = 0;
60
+ try {
61
+ const { Brain } = require('deepbrain');
62
+ const brain = new Brain({ database: path.join(projectDir, 'data', 'brain.db') });
63
+ for (const seed of seeds) {
64
+ await brain.learn(seed.content, {
65
+ slug: `brain-seed/${seed.filename.replace(/\.md$/, '')}`,
66
+ title: `Brain Seed: ${seed.tier}`,
67
+ namespace: `seed/${seed.tier}`,
68
+ });
69
+ learnedCount++;
70
+ }
71
+ }
72
+ catch {
73
+ // deepbrain not installed — that's fine, files are saved
74
+ }
75
+ return { savedFiles, learnedCount };
76
+ }
77
+ //# sourceMappingURL=brain-seed.js.map
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Workstation Hub API client
3
+ * Fetches agent templates and brain-seed knowledge from the Hub.
4
+ */
5
+ export interface HubTemplate {
6
+ id: string;
7
+ name: string;
8
+ description: string;
9
+ category: string;
10
+ tags?: string[];
11
+ }
12
+ export interface HubTemplateDetail extends HubTemplate {
13
+ files: Record<string, string>;
14
+ brainSeeds: HubBrainSeed[];
15
+ }
16
+ export interface HubBrainSeed {
17
+ filename: string;
18
+ content: string;
19
+ tier: 'industry' | 'job' | 'workstation';
20
+ }
21
+ export declare function fetchTemplates(query?: string): Promise<HubTemplate[]>;
22
+ export declare function fetchTemplate(id: string): Promise<HubTemplateDetail>;
23
+ export declare function fetchBrainSeeds(templateId: string): Promise<HubBrainSeed[]>;
24
+ export declare function isHubAvailable(): Promise<boolean>;
25
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * Workstation Hub API client
4
+ * Fetches agent templates and brain-seed knowledge from the Hub.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.fetchTemplates = fetchTemplates;
8
+ exports.fetchTemplate = fetchTemplate;
9
+ exports.fetchBrainSeeds = fetchBrainSeeds;
10
+ exports.isHubAvailable = isHubAvailable;
11
+ const HUB_URL = process.env.OPC_HUB_URL || 'https://hub.deepleaper.com';
12
+ const HUB_TIMEOUT = 5000;
13
+ async function hubFetch(path) {
14
+ const controller = new AbortController();
15
+ const timer = setTimeout(() => controller.abort(), HUB_TIMEOUT);
16
+ try {
17
+ const res = await fetch(`${HUB_URL}${path}`, {
18
+ signal: controller.signal,
19
+ headers: { 'Accept': 'application/json', 'User-Agent': 'opc-agent/2.0' },
20
+ });
21
+ if (!res.ok)
22
+ throw new Error(`Hub API ${res.status} ${res.statusText}`);
23
+ return (await res.json());
24
+ }
25
+ finally {
26
+ clearTimeout(timer);
27
+ }
28
+ }
29
+ async function fetchTemplates(query) {
30
+ const qs = query ? `?q=${encodeURIComponent(query)}` : '';
31
+ return hubFetch(`/api/templates${qs}`);
32
+ }
33
+ async function fetchTemplate(id) {
34
+ return hubFetch(`/api/templates/${encodeURIComponent(id)}`);
35
+ }
36
+ async function fetchBrainSeeds(templateId) {
37
+ return hubFetch(`/api/templates/${encodeURIComponent(templateId)}/brain-seeds`);
38
+ }
39
+ function isHubAvailable() {
40
+ return hubFetch('/api/health')
41
+ .then(() => true)
42
+ .catch(() => false);
43
+ }
44
+ //# sourceMappingURL=client.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,9 @@ 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, webSearchTools, webSearchTool, webReadTool } from './tools/builtin';
141
+ export { webSearch, parseDuckDuckGoHTML, type SearchResult as WebSearchResult, type WebSearchConfig, type SearchEngine } from './tools/web-search';
142
+ export { scrapeUrl, extractReadableContent, type ScrapedContent } from './tools/web-scraper';
115
143
  export { MCPClient } from './tools/mcp-client';
116
144
  export type { MCPServerConfig } from './tools/mcp-client';
117
145
  export { AgentPackager, AgentPublisher, AgentInstaller } from './publish';
@@ -130,5 +158,42 @@ export { AGUI_EVENT_TYPES, isValidEventType } from './protocols/agui';
130
158
  export { DebatePattern, VotingPattern, PipelinePattern, HierarchyPattern, SharedContext, ConversationProtocol } from './core/collaboration';
131
159
  export type { DebateResult, DebateArgument, VoteResult, VoteEntry, PipelineResult, PipelineStageResult, HierarchyResult, WorkerResult } from './core/collaboration';
132
160
  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';
161
+ export { APIServer } from './core/api-server';
162
+ export type { APIServerConfig } from './core/api-server';
163
+ export { ContextRefResolver } from './core/context-refs';
164
+ export type { ContextRef, RefType } from './core/context-refs';
165
+ export { VisionManager, detectMimeType } from './core/vision';
166
+ export type { ImageInput, VisionResult, VisionManagerConfig } from './core/vision';
167
+ export { visionTools, visionAnalyzeTool, visionExtractTextTool, visionCompareTool } from './tools/builtin/vision';
168
+ export { WhatsAppChannel } from './channels/whatsapp';
169
+ export type { WhatsAppChannelConfig } from './channels/whatsapp';
170
+ export { SignalChannel } from './channels/signal';
171
+ export type { SignalChannelConfig } from './channels/signal';
172
+ export { MatrixChannel } from './channels/matrix';
173
+ export type { MatrixChannelConfig } from './channels/matrix';
174
+ export { IMessageChannel } from './channels/imessage';
175
+ export type { IMessageChannelConfig } from './channels/imessage';
176
+ export { LINEChannel } from './channels/line';
177
+ export type { LINEChannelConfig } from './channels/line';
178
+ export { MSTeamsChannel } from './channels/msteams';
179
+ export type { MSTeamsChannelConfig } from './channels/msteams';
180
+ export { QQChannel } from './channels/qq';
181
+ export type { QQChannelConfig } from './channels/qq';
182
+ export { NostrChannel } from './channels/nostr';
183
+ export type { NostrChannelConfig } from './channels/nostr';
184
+ export { SMSChannel } from './channels/sms';
185
+ export type { SMSChannelConfig } from './channels/sms';
186
+ export { VoiceCallManager } from './channels/voice-call';
187
+ export type { VoiceCallConfig } from './channels/voice-call';
188
+ export { IDEBridge } from './core/ide-bridge';
189
+ export type { IDEConfig, Diagnostic, TextEdit, Range, SearchOptions, SearchResult as IDESearchResult } from './core/ide-bridge';
190
+ export { NodeNetwork } from './core/node-network';
191
+ export type { RemoteNode } from './core/node-network';
192
+ export { Gateway } from './core/gateway';
193
+ export type { AgentConfig as GatewayAgentConfig, ChannelConfig as GatewayChannelConfig, GatewayConfig } from './core/gateway';
194
+ export { SandboxManager } from './core/sandbox';
195
+ export type { RemoteSandboxConfig, ExecResult } from './core/sandbox';
196
+ export { ProfileManager } from './core/profiles';
197
+ export type { Profile, ProfileConfig } from './core/profiles';
133
198
  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
199
  //# 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.scrapeUrl = exports.parseDuckDuckGoHTML = exports.webSearch = exports.webReadTool = exports.webSearchTool = exports.webSearchTools = 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.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 = exports.A2AServer = exports.StudioServer = exports.AgentInstaller = exports.AgentPublisher = exports.AgentPackager = exports.MCPClient = exports.extractReadableContent = 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 = exports.WebSearchTool = exports.TrelloTool = exports.CalendarTool = exports.JiraTool = exports.GitHubTool = exports.NotionTool = exports.WebhookTool = 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,18 @@ 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; } });
257
+ Object.defineProperty(exports, "webSearchTools", { enumerable: true, get: function () { return builtin_1.webSearchTools; } });
258
+ Object.defineProperty(exports, "webSearchTool", { enumerable: true, get: function () { return builtin_1.webSearchTool; } });
259
+ Object.defineProperty(exports, "webReadTool", { enumerable: true, get: function () { return builtin_1.webReadTool; } });
260
+ var web_search_1 = require("./tools/web-search");
261
+ Object.defineProperty(exports, "webSearch", { enumerable: true, get: function () { return web_search_1.webSearch; } });
262
+ Object.defineProperty(exports, "parseDuckDuckGoHTML", { enumerable: true, get: function () { return web_search_1.parseDuckDuckGoHTML; } });
263
+ var web_scraper_1 = require("./tools/web-scraper");
264
+ Object.defineProperty(exports, "scrapeUrl", { enumerable: true, get: function () { return web_scraper_1.scrapeUrl; } });
265
+ Object.defineProperty(exports, "extractReadableContent", { enumerable: true, get: function () { return web_scraper_1.extractReadableContent; } });
222
266
  var mcp_client_1 = require("./tools/mcp-client");
223
267
  Object.defineProperty(exports, "MCPClient", { enumerable: true, get: function () { return mcp_client_1.MCPClient; } });
224
268
  // v1.6.0 — publish/pack/install
@@ -260,6 +304,54 @@ Object.defineProperty(exports, "PipelinePattern", { enumerable: true, get: funct
260
304
  Object.defineProperty(exports, "HierarchyPattern", { enumerable: true, get: function () { return collaboration_1.HierarchyPattern; } });
261
305
  Object.defineProperty(exports, "SharedContext", { enumerable: true, get: function () { return collaboration_1.SharedContext; } });
262
306
  Object.defineProperty(exports, "ConversationProtocol", { enumerable: true, get: function () { return collaboration_1.ConversationProtocol; } });
307
+ // v2.1.0 — API Server + Context References
308
+ var api_server_1 = require("./core/api-server");
309
+ Object.defineProperty(exports, "APIServer", { enumerable: true, get: function () { return api_server_1.APIServer; } });
310
+ var context_refs_1 = require("./core/context-refs");
311
+ Object.defineProperty(exports, "ContextRefResolver", { enumerable: true, get: function () { return context_refs_1.ContextRefResolver; } });
312
+ // v2.2.0 — Vision
313
+ var vision_1 = require("./core/vision");
314
+ Object.defineProperty(exports, "VisionManager", { enumerable: true, get: function () { return vision_1.VisionManager; } });
315
+ Object.defineProperty(exports, "detectMimeType", { enumerable: true, get: function () { return vision_1.detectMimeType; } });
316
+ var vision_2 = require("./tools/builtin/vision");
317
+ Object.defineProperty(exports, "visionTools", { enumerable: true, get: function () { return vision_2.visionTools; } });
318
+ Object.defineProperty(exports, "visionAnalyzeTool", { enumerable: true, get: function () { return vision_2.visionAnalyzeTool; } });
319
+ Object.defineProperty(exports, "visionExtractTextTool", { enumerable: true, get: function () { return vision_2.visionExtractTextTool; } });
320
+ Object.defineProperty(exports, "visionCompareTool", { enumerable: true, get: function () { return vision_2.visionCompareTool; } });
321
+ // v2.2.0 — Additional channels
322
+ var whatsapp_1 = require("./channels/whatsapp");
323
+ Object.defineProperty(exports, "WhatsAppChannel", { enumerable: true, get: function () { return whatsapp_1.WhatsAppChannel; } });
324
+ var signal_1 = require("./channels/signal");
325
+ Object.defineProperty(exports, "SignalChannel", { enumerable: true, get: function () { return signal_1.SignalChannel; } });
326
+ var matrix_1 = require("./channels/matrix");
327
+ Object.defineProperty(exports, "MatrixChannel", { enumerable: true, get: function () { return matrix_1.MatrixChannel; } });
328
+ var imessage_1 = require("./channels/imessage");
329
+ Object.defineProperty(exports, "IMessageChannel", { enumerable: true, get: function () { return imessage_1.IMessageChannel; } });
330
+ var line_1 = require("./channels/line");
331
+ Object.defineProperty(exports, "LINEChannel", { enumerable: true, get: function () { return line_1.LINEChannel; } });
332
+ var msteams_1 = require("./channels/msteams");
333
+ Object.defineProperty(exports, "MSTeamsChannel", { enumerable: true, get: function () { return msteams_1.MSTeamsChannel; } });
334
+ var qq_1 = require("./channels/qq");
335
+ Object.defineProperty(exports, "QQChannel", { enumerable: true, get: function () { return qq_1.QQChannel; } });
336
+ var nostr_1 = require("./channels/nostr");
337
+ Object.defineProperty(exports, "NostrChannel", { enumerable: true, get: function () { return nostr_1.NostrChannel; } });
338
+ var sms_1 = require("./channels/sms");
339
+ Object.defineProperty(exports, "SMSChannel", { enumerable: true, get: function () { return sms_1.SMSChannel; } });
340
+ // v2.3.0 — Voice Calls + IDE + Node Network + Gateway
341
+ var voice_call_1 = require("./channels/voice-call");
342
+ Object.defineProperty(exports, "VoiceCallManager", { enumerable: true, get: function () { return voice_call_1.VoiceCallManager; } });
343
+ var ide_bridge_1 = require("./core/ide-bridge");
344
+ Object.defineProperty(exports, "IDEBridge", { enumerable: true, get: function () { return ide_bridge_1.IDEBridge; } });
345
+ var node_network_1 = require("./core/node-network");
346
+ Object.defineProperty(exports, "NodeNetwork", { enumerable: true, get: function () { return node_network_1.NodeNetwork; } });
347
+ var gateway_2 = require("./core/gateway");
348
+ Object.defineProperty(exports, "Gateway", { enumerable: true, get: function () { return gateway_2.Gateway; } });
349
+ // v2.2.0 — Remote Sandbox
350
+ var sandbox_2 = require("./core/sandbox");
351
+ Object.defineProperty(exports, "SandboxManager", { enumerable: true, get: function () { return sandbox_2.SandboxManager; } });
352
+ // v2.2.0 — Profiles
353
+ var profiles_1 = require("./core/profiles");
354
+ Object.defineProperty(exports, "ProfileManager", { enumerable: true, get: function () { return profiles_1.ProfileManager; } });
263
355
  // v2.0.0 - Pre-built tool integrations (20 tools)
264
356
  var integrations_1 = require("./tools/integrations");
265
357
  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