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.
- package/README.md +404 -74
- package/README.zh-CN.md +82 -0
- package/dist/channels/dingtalk.d.ts +17 -0
- package/dist/channels/dingtalk.js +38 -0
- package/dist/channels/googlechat.d.ts +14 -0
- package/dist/channels/googlechat.js +37 -0
- package/dist/channels/imessage.d.ts +13 -0
- package/dist/channels/imessage.js +28 -0
- package/dist/channels/irc.d.ts +20 -0
- package/dist/channels/irc.js +71 -0
- package/dist/channels/line.d.ts +14 -0
- package/dist/channels/line.js +28 -0
- package/dist/channels/matrix.d.ts +15 -0
- package/dist/channels/matrix.js +28 -0
- package/dist/channels/mattermost.d.ts +18 -0
- package/dist/channels/mattermost.js +49 -0
- package/dist/channels/msteams.d.ts +14 -0
- package/dist/channels/msteams.js +28 -0
- package/dist/channels/nostr.d.ts +14 -0
- package/dist/channels/nostr.js +28 -0
- package/dist/channels/qq.d.ts +15 -0
- package/dist/channels/qq.js +28 -0
- package/dist/channels/signal.d.ts +14 -0
- package/dist/channels/signal.js +28 -0
- package/dist/channels/sms.d.ts +15 -0
- package/dist/channels/sms.js +28 -0
- package/dist/channels/twitch.d.ts +17 -0
- package/dist/channels/twitch.js +59 -0
- package/dist/channels/voice-call.d.ts +27 -0
- package/dist/channels/voice-call.js +82 -0
- package/dist/channels/whatsapp.d.ts +14 -0
- package/dist/channels/whatsapp.js +28 -0
- package/dist/cli/chat.d.ts +2 -0
- package/dist/cli/chat.js +134 -0
- package/dist/cli/setup.d.ts +4 -0
- package/dist/cli/setup.js +303 -0
- package/dist/cli.js +142 -6
- package/dist/core/api-server.d.ts +25 -0
- package/dist/core/api-server.js +286 -0
- package/dist/core/audio.d.ts +50 -0
- package/dist/core/audio.js +68 -0
- package/dist/core/context-discovery.d.ts +16 -0
- package/dist/core/context-discovery.js +107 -0
- package/dist/core/context-refs.d.ts +29 -0
- package/dist/core/context-refs.js +162 -0
- package/dist/core/gateway.d.ts +53 -0
- package/dist/core/gateway.js +80 -0
- package/dist/core/heartbeat.d.ts +19 -0
- package/dist/core/heartbeat.js +50 -0
- package/dist/core/hooks.d.ts +28 -0
- package/dist/core/hooks.js +82 -0
- package/dist/core/ide-bridge.d.ts +53 -0
- package/dist/core/ide-bridge.js +97 -0
- package/dist/core/node-network.d.ts +23 -0
- package/dist/core/node-network.js +77 -0
- package/dist/core/profiles.d.ts +27 -0
- package/dist/core/profiles.js +131 -0
- package/dist/core/sandbox.d.ts +25 -0
- package/dist/core/sandbox.js +84 -1
- package/dist/core/session-manager.d.ts +33 -0
- package/dist/core/session-manager.js +157 -0
- package/dist/core/vision.d.ts +45 -0
- package/dist/core/vision.js +177 -0
- package/dist/hub/brain-seed.d.ts +14 -0
- package/dist/hub/brain-seed.js +77 -0
- package/dist/hub/client.d.ts +25 -0
- package/dist/hub/client.js +44 -0
- package/dist/index.d.ts +66 -1
- package/dist/index.js +95 -3
- package/dist/memory/context-compressor.d.ts +43 -0
- package/dist/memory/context-compressor.js +167 -0
- package/dist/memory/index.d.ts +4 -0
- package/dist/memory/index.js +5 -1
- package/dist/memory/user-profiler.d.ts +50 -0
- package/dist/memory/user-profiler.js +201 -0
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.js +54 -1
- package/dist/scheduler/cron-engine.d.ts +41 -0
- package/dist/scheduler/cron-engine.js +200 -0
- package/dist/scheduler/index.d.ts +3 -0
- package/dist/scheduler/index.js +7 -0
- package/dist/schema/oad.d.ts +12 -12
- package/dist/security/approvals.d.ts +53 -0
- package/dist/security/approvals.js +115 -0
- package/dist/security/elevated.d.ts +41 -0
- package/dist/security/elevated.js +89 -0
- package/dist/security/index.d.ts +6 -0
- package/dist/security/index.js +7 -1
- package/dist/security/secrets.d.ts +34 -0
- package/dist/security/secrets.js +115 -0
- package/dist/skills/builtin/index.d.ts +6 -0
- package/dist/skills/builtin/index.js +402 -0
- package/dist/skills/marketplace.d.ts +30 -0
- package/dist/skills/marketplace.js +142 -0
- package/dist/skills/types.d.ts +34 -0
- package/dist/skills/types.js +16 -0
- package/dist/studio/server.d.ts +25 -0
- package/dist/studio/server.js +780 -0
- package/dist/studio/templates-data.d.ts +21 -0
- package/dist/studio/templates-data.js +148 -0
- package/dist/studio-ui/index.html +2502 -1073
- package/dist/tools/builtin/browser.d.ts +47 -0
- package/dist/tools/builtin/browser.js +284 -0
- package/dist/tools/builtin/home-assistant.d.ts +12 -0
- package/dist/tools/builtin/home-assistant.js +126 -0
- package/dist/tools/builtin/index.d.ts +7 -1
- package/dist/tools/builtin/index.js +23 -2
- package/dist/tools/builtin/rl-tools.d.ts +13 -0
- package/dist/tools/builtin/rl-tools.js +228 -0
- package/dist/tools/builtin/vision.d.ts +6 -0
- package/dist/tools/builtin/vision.js +61 -0
- package/dist/tools/builtin/web-search.d.ts +9 -0
- package/dist/tools/builtin/web-search.js +150 -0
- package/dist/tools/document-processor.d.ts +39 -0
- package/dist/tools/document-processor.js +188 -0
- package/dist/tools/image-generator.d.ts +42 -0
- package/dist/tools/image-generator.js +136 -0
- package/dist/tools/web-scraper.d.ts +20 -0
- package/dist/tools/web-scraper.js +148 -0
- package/dist/tools/web-search.d.ts +51 -0
- package/dist/tools/web-search.js +152 -0
- package/install.ps1 +154 -0
- package/install.sh +164 -0
- package/package.json +63 -52
- package/src/channels/dingtalk.ts +46 -0
- package/src/channels/googlechat.ts +42 -0
- package/src/channels/imessage.ts +32 -0
- package/src/channels/irc.ts +82 -0
- package/src/channels/line.ts +33 -0
- package/src/channels/matrix.ts +34 -0
- package/src/channels/mattermost.ts +57 -0
- package/src/channels/msteams.ts +33 -0
- package/src/channels/nostr.ts +33 -0
- package/src/channels/qq.ts +34 -0
- package/src/channels/signal.ts +33 -0
- package/src/channels/sms.ts +34 -0
- package/src/channels/twitch.ts +65 -0
- package/src/channels/voice-call.ts +100 -0
- package/src/channels/whatsapp.ts +33 -0
- package/src/cli/chat.ts +99 -0
- package/src/cli/setup.ts +314 -0
- package/src/cli.ts +148 -6
- package/src/core/api-server.ts +277 -0
- package/src/core/audio.ts +98 -0
- package/src/core/context-discovery.ts +85 -0
- package/src/core/context-refs.ts +140 -0
- package/src/core/gateway.ts +106 -0
- package/src/core/heartbeat.ts +51 -0
- package/src/core/hooks.ts +105 -0
- package/src/core/ide-bridge.ts +133 -0
- package/src/core/node-network.ts +86 -0
- package/src/core/profiles.ts +122 -0
- package/src/core/sandbox.ts +100 -0
- package/src/core/session-manager.ts +137 -0
- package/src/core/vision.ts +180 -0
- package/src/hub/brain-seed.ts +54 -0
- package/src/hub/client.ts +60 -0
- package/src/index.ts +86 -1
- package/src/memory/context-compressor.ts +189 -0
- package/src/memory/index.ts +4 -0
- package/src/memory/user-profiler.ts +215 -0
- package/src/providers/index.ts +64 -1
- package/src/scheduler/cron-engine.ts +191 -0
- package/src/scheduler/index.ts +2 -0
- package/src/security/approvals.ts +143 -0
- package/src/security/elevated.ts +105 -0
- package/src/security/index.ts +6 -0
- package/src/security/secrets.ts +129 -0
- package/src/skills/builtin/index.ts +408 -0
- package/src/skills/marketplace.ts +113 -0
- package/src/skills/types.ts +42 -0
- package/src/studio/server.ts +1591 -791
- package/src/studio/templates-data.ts +178 -0
- package/src/studio-ui/index.html +2502 -1073
- package/src/tools/builtin/browser.ts +299 -0
- package/src/tools/builtin/home-assistant.ts +116 -0
- package/src/tools/builtin/index.ts +37 -28
- package/src/tools/builtin/rl-tools.ts +243 -0
- package/src/tools/builtin/vision.ts +64 -0
- package/src/tools/builtin/web-search.ts +126 -0
- package/src/tools/document-processor.ts +213 -0
- package/src/tools/image-generator.ts +150 -0
- package/src/tools/web-scraper.ts +179 -0
- package/src/tools/web-search.ts +180 -0
- package/tests/api-server.test.ts +148 -0
- package/tests/approvals.test.ts +89 -0
- package/tests/audio.test.ts +40 -0
- package/tests/browser.test.ts +179 -0
- package/tests/builtin-tools.test.ts +83 -83
- package/tests/channels-extra.test.ts +45 -0
- package/tests/context-compressor.test.ts +172 -0
- package/tests/context-refs.test.ts +121 -0
- package/tests/cron-engine.test.ts +101 -0
- package/tests/document-processor.test.ts +69 -0
- package/tests/e2e-nocode.test.ts +442 -0
- package/tests/elevated.test.ts +69 -0
- package/tests/gateway.test.ts +63 -71
- package/tests/home-assistant.test.ts +40 -0
- package/tests/hooks.test.ts +79 -0
- package/tests/ide-bridge.test.ts +38 -0
- package/tests/image-generator.test.ts +84 -0
- package/tests/node-network.test.ts +74 -0
- package/tests/profiles.test.ts +61 -0
- package/tests/rl-tools.test.ts +93 -0
- package/tests/sandbox-manager.test.ts +46 -0
- package/tests/secrets.test.ts +107 -0
- package/tests/settings-api.test.ts +148 -0
- package/tests/setup.test.ts +73 -0
- package/tests/studio.test.ts +402 -229
- package/tests/tools/builtin-extended.test.ts +138 -138
- package/tests/user-profiler.test.ts +169 -0
- package/tests/v090-features.test.ts +254 -0
- package/tests/vision.test.ts +61 -0
- package/tests/voice-call.test.ts +47 -0
- package/tests/voice-interaction.test.ts +38 -0
- 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.
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
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
|