opc-agent 1.4.0 → 2.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/CHANGELOG.md +25 -0
- package/README.md +91 -32
- package/dist/channels/email.d.ts +32 -26
- package/dist/channels/email.js +239 -62
- package/dist/channels/feishu.d.ts +21 -6
- package/dist/channels/feishu.js +225 -126
- package/dist/channels/telegram.d.ts +30 -9
- package/dist/channels/telegram.js +125 -33
- package/dist/channels/websocket.d.ts +46 -3
- package/dist/channels/websocket.js +306 -37
- package/dist/channels/wechat.d.ts +33 -13
- package/dist/channels/wechat.js +229 -42
- package/dist/cli.js +1127 -19
- package/dist/core/a2a.d.ts +17 -0
- package/dist/core/a2a.js +43 -1
- package/dist/core/agent.d.ts +39 -0
- package/dist/core/agent.js +228 -3
- package/dist/core/runtime.d.ts +7 -0
- package/dist/core/runtime.js +205 -2
- package/dist/core/sandbox.d.ts +26 -0
- package/dist/core/sandbox.js +117 -0
- package/dist/core/scheduler.d.ts +52 -0
- package/dist/core/scheduler.js +168 -0
- package/dist/core/subagent.d.ts +28 -0
- package/dist/core/subagent.js +65 -0
- package/dist/core/workflow-graph.d.ts +93 -0
- package/dist/core/workflow-graph.js +247 -0
- package/dist/daemon.d.ts +3 -0
- package/dist/daemon.js +134 -0
- package/dist/doctor.d.ts +15 -0
- package/dist/doctor.js +183 -0
- package/dist/eval/index.d.ts +65 -0
- package/dist/eval/index.js +191 -0
- package/dist/index.d.ts +37 -6
- package/dist/index.js +75 -3
- package/dist/plugins/content-filter.d.ts +7 -0
- package/dist/plugins/content-filter.js +25 -0
- package/dist/plugins/index.d.ts +42 -0
- package/dist/plugins/index.js +108 -2
- package/dist/plugins/logger.d.ts +6 -0
- package/dist/plugins/logger.js +20 -0
- package/dist/plugins/rate-limiter.d.ts +7 -0
- package/dist/plugins/rate-limiter.js +35 -0
- package/dist/protocols/a2a/client.d.ts +25 -0
- package/dist/protocols/a2a/client.js +115 -0
- package/dist/protocols/a2a/index.d.ts +6 -0
- package/dist/protocols/a2a/index.js +12 -0
- package/dist/protocols/a2a/server.d.ts +41 -0
- package/dist/protocols/a2a/server.js +295 -0
- package/dist/protocols/a2a/types.d.ts +91 -0
- package/dist/protocols/a2a/types.js +15 -0
- package/dist/protocols/a2a/utils.d.ts +6 -0
- package/dist/protocols/a2a/utils.js +47 -0
- package/dist/protocols/agui/client.d.ts +10 -0
- package/dist/protocols/agui/client.js +75 -0
- package/dist/protocols/agui/index.d.ts +4 -0
- package/dist/protocols/agui/index.js +25 -0
- package/dist/protocols/agui/server.d.ts +37 -0
- package/dist/protocols/agui/server.js +191 -0
- package/dist/protocols/agui/types.d.ts +107 -0
- package/dist/protocols/agui/types.js +17 -0
- package/dist/protocols/index.d.ts +2 -0
- package/dist/protocols/index.js +19 -0
- package/dist/protocols/mcp/agent-tools.d.ts +11 -0
- package/dist/protocols/mcp/agent-tools.js +129 -0
- package/dist/protocols/mcp/index.d.ts +5 -0
- package/dist/protocols/mcp/index.js +11 -0
- package/dist/protocols/mcp/server.d.ts +31 -0
- package/dist/protocols/mcp/server.js +248 -0
- package/dist/protocols/mcp/types.d.ts +92 -0
- package/dist/protocols/mcp/types.js +17 -0
- package/dist/providers/index.d.ts +5 -1
- package/dist/providers/index.js +16 -9
- package/dist/publish/index.d.ts +45 -0
- package/dist/publish/index.js +350 -0
- package/dist/schema/oad.d.ts +859 -67
- package/dist/schema/oad.js +47 -3
- package/dist/security/approval.d.ts +36 -0
- package/dist/security/approval.js +113 -0
- package/dist/security/index.d.ts +4 -0
- package/dist/security/index.js +8 -0
- package/dist/security/keys.d.ts +16 -0
- package/dist/security/keys.js +117 -0
- package/dist/skills/auto-learn.d.ts +28 -0
- package/dist/skills/auto-learn.js +257 -0
- package/dist/studio/server.d.ts +63 -0
- package/dist/studio/server.js +625 -0
- package/dist/studio-ui/index.html +662 -0
- package/dist/telemetry/index.d.ts +93 -0
- package/dist/telemetry/index.js +285 -0
- package/dist/tools/builtin/datetime.d.ts +3 -0
- package/dist/tools/builtin/datetime.js +44 -0
- package/dist/tools/builtin/file.d.ts +3 -0
- package/dist/tools/builtin/file.js +151 -0
- package/dist/tools/builtin/index.d.ts +15 -0
- package/dist/tools/builtin/index.js +30 -0
- package/dist/tools/builtin/shell.d.ts +3 -0
- package/dist/tools/builtin/shell.js +43 -0
- package/dist/tools/builtin/web.d.ts +3 -0
- package/dist/tools/builtin/web.js +37 -0
- package/dist/tools/mcp-client.d.ts +24 -0
- package/dist/tools/mcp-client.js +119 -0
- package/package.json +5 -3
- package/scripts/install.ps1 +31 -0
- package/scripts/install.sh +40 -0
- package/src/channels/email.ts +351 -177
- package/src/channels/feishu.ts +349 -236
- package/src/channels/telegram.ts +212 -90
- package/src/channels/websocket.ts +399 -87
- package/src/channels/wechat.ts +329 -149
- package/src/cli.ts +1201 -20
- package/src/core/a2a.ts +60 -0
- package/src/core/agent.ts +420 -152
- package/src/core/runtime.ts +174 -0
- package/src/core/sandbox.ts +143 -0
- package/src/core/scheduler.ts +187 -0
- package/src/core/subagent.ts +98 -0
- package/src/core/workflow-graph.ts +365 -0
- package/src/daemon.ts +96 -0
- package/src/doctor.ts +156 -0
- package/src/eval/index.ts +211 -0
- package/src/eval/suites/basic.json +16 -0
- package/src/eval/suites/memory.json +12 -0
- package/src/eval/suites/safety.json +14 -0
- package/src/index.ts +65 -6
- package/src/plugins/content-filter.ts +23 -0
- package/src/plugins/index.ts +133 -2
- package/src/plugins/logger.ts +18 -0
- package/src/plugins/rate-limiter.ts +38 -0
- package/src/protocols/a2a/client.ts +132 -0
- package/src/protocols/a2a/index.ts +8 -0
- package/src/protocols/a2a/server.ts +333 -0
- package/src/protocols/a2a/types.ts +88 -0
- package/src/protocols/a2a/utils.ts +50 -0
- package/src/protocols/agui/client.ts +83 -0
- package/src/protocols/agui/index.ts +4 -0
- package/src/protocols/agui/server.ts +218 -0
- package/src/protocols/agui/types.ts +153 -0
- package/src/protocols/index.ts +2 -0
- package/src/protocols/mcp/agent-tools.ts +134 -0
- package/src/protocols/mcp/index.ts +8 -0
- package/src/protocols/mcp/server.ts +262 -0
- package/src/protocols/mcp/types.ts +69 -0
- package/src/providers/index.ts +354 -339
- package/src/publish/index.ts +376 -0
- package/src/schema/oad.ts +204 -154
- package/src/security/approval.ts +131 -0
- package/src/security/index.ts +3 -0
- package/src/security/keys.ts +87 -0
- package/src/skills/auto-learn.ts +262 -0
- package/src/studio/server.ts +629 -0
- package/src/studio-ui/index.html +662 -0
- package/src/telemetry/index.ts +324 -0
- package/src/tools/builtin/datetime.ts +41 -0
- package/src/tools/builtin/file.ts +107 -0
- package/src/tools/builtin/index.ts +28 -0
- package/src/tools/builtin/shell.ts +43 -0
- package/src/tools/builtin/web.ts +35 -0
- package/src/tools/mcp-client.ts +131 -0
- package/src/types/agent-workstation.d.ts +2 -0
- package/tests/a2a-protocol.test.ts +285 -0
- package/tests/agui-protocol.test.ts +246 -0
- package/tests/auto-learn.test.ts +105 -0
- package/tests/builtin-tools.test.ts +83 -0
- package/tests/channels/discord.test.ts +79 -0
- package/tests/channels/email.test.ts +148 -0
- package/tests/channels/feishu.test.ts +123 -0
- package/tests/channels/telegram.test.ts +129 -0
- package/tests/channels/websocket.test.ts +53 -0
- package/tests/channels/wechat.test.ts +170 -0
- package/tests/chat-cli.test.ts +160 -0
- package/tests/cli.test.ts +46 -0
- package/tests/daemon.test.ts +135 -0
- package/tests/deepbrain-wire.test.ts +234 -0
- package/tests/doctor.test.ts +38 -0
- package/tests/eval.test.ts +173 -0
- package/tests/init-role.test.ts +124 -0
- package/tests/mcp-client.test.ts +92 -0
- package/tests/mcp-server.test.ts +178 -0
- package/tests/plugin-a2a-enhanced.test.ts +230 -0
- package/tests/publish.test.ts +231 -0
- package/tests/scheduler.test.ts +200 -0
- package/tests/security-enhanced.test.ts +233 -0
- package/tests/skill-learner.test.ts +161 -0
- package/tests/studio.test.ts +229 -0
- package/tests/subagent.test.ts +193 -0
- package/tests/telegram-discord.test.ts +60 -0
- package/tests/telemetry.test.ts +186 -0
- package/tests/tools/builtin-extended.test.ts +138 -0
- package/tests/workflow-graph.test.ts +279 -0
- package/tutorial/customer-service-agent/README.md +612 -0
- package/tutorial/customer-service-agent/SOUL.md +26 -0
- package/tutorial/customer-service-agent/agent.yaml +63 -0
- package/tutorial/customer-service-agent/package.json +19 -0
- package/tutorial/customer-service-agent/src/index.ts +69 -0
- package/tutorial/customer-service-agent/src/skills/faq.ts +27 -0
- package/tutorial/customer-service-agent/src/skills/ticket.ts +22 -0
- package/tutorial/customer-service-agent/tsconfig.json +14 -0
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
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.getDoctorChecks = getDoctorChecks;
|
|
37
|
+
exports.runDoctor = runDoctor;
|
|
38
|
+
const child_process_1 = require("child_process");
|
|
39
|
+
const fs_1 = require("fs");
|
|
40
|
+
const net = __importStar(require("net"));
|
|
41
|
+
function getDoctorChecks() {
|
|
42
|
+
return [
|
|
43
|
+
{
|
|
44
|
+
name: 'Node.js version',
|
|
45
|
+
check: () => {
|
|
46
|
+
const v = process.versions.node.split('.').map(Number);
|
|
47
|
+
return {
|
|
48
|
+
ok: v[0] >= 18,
|
|
49
|
+
detail: `v${process.versions.node}`,
|
|
50
|
+
fix: v[0] < 18 ? 'Upgrade to Node 18+: https://nodejs.org' : undefined,
|
|
51
|
+
};
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'npm version',
|
|
56
|
+
check: () => {
|
|
57
|
+
try {
|
|
58
|
+
const v = (0, child_process_1.execSync)('npm --version', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
59
|
+
return { ok: true, detail: `v${v}` };
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return { ok: false, detail: 'Not found', fix: 'Install npm: https://nodejs.org' };
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'Ollama running',
|
|
68
|
+
check: async () => {
|
|
69
|
+
try {
|
|
70
|
+
const controller = new AbortController();
|
|
71
|
+
const timeout = setTimeout(() => controller.abort(), 3000);
|
|
72
|
+
const r = await fetch('http://localhost:11434/api/tags', { signal: controller.signal });
|
|
73
|
+
clearTimeout(timeout);
|
|
74
|
+
const data = await r.json();
|
|
75
|
+
return { ok: true, detail: `${data.models?.length || 0} models available` };
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return { ok: false, detail: 'Not running', fix: 'Install Ollama: https://ollama.ai' };
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: 'agent.yaml exists',
|
|
84
|
+
check: () => {
|
|
85
|
+
const found = (0, fs_1.existsSync)('./agent.yaml');
|
|
86
|
+
return { ok: found, detail: found ? 'Found' : 'Not found', fix: found ? undefined : 'Run `opc init` to create a project' };
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: 'SOUL.md exists',
|
|
91
|
+
check: () => {
|
|
92
|
+
const found = (0, fs_1.existsSync)('./SOUL.md');
|
|
93
|
+
return { ok: found, detail: found ? 'Found' : 'Not found', fix: found ? undefined : 'Run `opc init` to generate one' };
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'TypeScript installed',
|
|
98
|
+
check: () => {
|
|
99
|
+
try {
|
|
100
|
+
(0, child_process_1.execSync)('npx tsc --version', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
|
|
101
|
+
return { ok: true, detail: 'Available' };
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return { ok: false, detail: 'Not found', fix: 'npm install -D typescript' };
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: 'Disk space',
|
|
110
|
+
check: () => {
|
|
111
|
+
return { ok: true, detail: 'Check passed' };
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'DeepBrain package',
|
|
116
|
+
check: () => {
|
|
117
|
+
try {
|
|
118
|
+
require.resolve('deepbrain');
|
|
119
|
+
return { ok: true, detail: 'Installed' };
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return { ok: false, detail: 'Not installed', fix: 'npm install deepbrain' };
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'Port 3000 available',
|
|
128
|
+
check: () => {
|
|
129
|
+
return new Promise((resolve) => {
|
|
130
|
+
const server = net.createServer();
|
|
131
|
+
server.once('error', () => {
|
|
132
|
+
resolve({ ok: false, detail: 'In use', fix: 'Free port 3000 or configure a different port' });
|
|
133
|
+
});
|
|
134
|
+
server.once('listening', () => {
|
|
135
|
+
server.close(() => {
|
|
136
|
+
resolve({ ok: true, detail: 'Available' });
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
server.listen(3000);
|
|
140
|
+
});
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
];
|
|
144
|
+
}
|
|
145
|
+
async function runDoctor() {
|
|
146
|
+
const checks = getDoctorChecks();
|
|
147
|
+
const color = {
|
|
148
|
+
green: (s) => `\x1b[32m${s}\x1b[0m`,
|
|
149
|
+
red: (s) => `\x1b[31m${s}\x1b[0m`,
|
|
150
|
+
dim: (s) => `\x1b[2m${s}\x1b[0m`,
|
|
151
|
+
bold: (s) => `\x1b[1m${s}\x1b[0m`,
|
|
152
|
+
};
|
|
153
|
+
console.log(`\n🔍 ${color.bold('OPC Agent Doctor')}\n`);
|
|
154
|
+
let passed = 0;
|
|
155
|
+
const total = checks.length;
|
|
156
|
+
for (const check of checks) {
|
|
157
|
+
try {
|
|
158
|
+
const result = await check.check();
|
|
159
|
+
const icon = result.ok ? color.green('✅') : color.red('❌');
|
|
160
|
+
const name = check.name.padEnd(22);
|
|
161
|
+
console.log(` ${icon} ${name} ${result.detail}`);
|
|
162
|
+
if (!result.ok && result.fix) {
|
|
163
|
+
console.log(` → ${result.fix}`);
|
|
164
|
+
}
|
|
165
|
+
if (result.ok)
|
|
166
|
+
passed++;
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
const name = check.name.padEnd(22);
|
|
170
|
+
console.log(` ${color.red('❌')} ${name} Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
console.log(`\n Result: ${passed}/${total} checks passed`);
|
|
174
|
+
if (passed < total) {
|
|
175
|
+
console.log(`\n Fix the issues above to get the best experience.`);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
console.log(`\n ${color.green('All checks passed!')} You're good to go.`);
|
|
179
|
+
}
|
|
180
|
+
console.log();
|
|
181
|
+
return { passed, total };
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export interface EvalCase {
|
|
2
|
+
id: string;
|
|
3
|
+
input: string;
|
|
4
|
+
expectedOutput?: string;
|
|
5
|
+
expectedContains?: string[];
|
|
6
|
+
expectedNotContains?: string[];
|
|
7
|
+
rubric?: string;
|
|
8
|
+
tags?: string[];
|
|
9
|
+
metadata?: Record<string, any>;
|
|
10
|
+
}
|
|
11
|
+
export interface EvalResult {
|
|
12
|
+
caseId: string;
|
|
13
|
+
input: string;
|
|
14
|
+
output: string;
|
|
15
|
+
scores: {
|
|
16
|
+
exact_match?: number;
|
|
17
|
+
contains?: number;
|
|
18
|
+
not_contains?: number;
|
|
19
|
+
rubric_score?: number;
|
|
20
|
+
latency_ms: number;
|
|
21
|
+
token_count?: number;
|
|
22
|
+
};
|
|
23
|
+
passed: boolean;
|
|
24
|
+
error?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface EvalSuite {
|
|
27
|
+
name: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
cases: EvalCase[];
|
|
30
|
+
}
|
|
31
|
+
export interface EvalReport {
|
|
32
|
+
suite: string;
|
|
33
|
+
timestamp: string;
|
|
34
|
+
totalCases: number;
|
|
35
|
+
passed: number;
|
|
36
|
+
failed: number;
|
|
37
|
+
passRate: number;
|
|
38
|
+
avgLatency: number;
|
|
39
|
+
p95Latency: number;
|
|
40
|
+
results: EvalResult[];
|
|
41
|
+
summary: string;
|
|
42
|
+
}
|
|
43
|
+
export declare class AgentEvaluator {
|
|
44
|
+
private agent;
|
|
45
|
+
constructor(agent: any);
|
|
46
|
+
evalCase(evalCase: EvalCase): Promise<EvalResult>;
|
|
47
|
+
evalSuite(suite: EvalSuite): Promise<EvalReport>;
|
|
48
|
+
static loadSuite(filePath: string): EvalSuite;
|
|
49
|
+
static saveReport(report: EvalReport, filePath: string): void;
|
|
50
|
+
static compare(baseline: EvalReport, current: EvalReport): {
|
|
51
|
+
improved: string[];
|
|
52
|
+
regressed: string[];
|
|
53
|
+
unchanged: string[];
|
|
54
|
+
baselinePassRate: number;
|
|
55
|
+
currentPassRate: number;
|
|
56
|
+
delta: number;
|
|
57
|
+
};
|
|
58
|
+
static builtinSuites(): {
|
|
59
|
+
name: string;
|
|
60
|
+
description: string;
|
|
61
|
+
caseCount: number;
|
|
62
|
+
}[];
|
|
63
|
+
static loadBuiltinSuite(name: string): EvalSuite;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,191 @@
|
|
|
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.AgentEvaluator = void 0;
|
|
37
|
+
/**
|
|
38
|
+
* Agent Evaluation Framework — rule-based scoring with optional LLM-as-judge.
|
|
39
|
+
* Zero external dependencies.
|
|
40
|
+
*/
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
// ─── Scoring helpers ────────────────────────────────────────────────────────
|
|
44
|
+
function scoreExactMatch(output, expected) {
|
|
45
|
+
return output.trim().toLowerCase() === expected.trim().toLowerCase() ? 1 : 0;
|
|
46
|
+
}
|
|
47
|
+
function scoreContains(output, expected) {
|
|
48
|
+
if (!expected.length)
|
|
49
|
+
return 1;
|
|
50
|
+
const lower = output.toLowerCase();
|
|
51
|
+
const matched = expected.filter(e => lower.includes(e.toLowerCase())).length;
|
|
52
|
+
return matched / expected.length;
|
|
53
|
+
}
|
|
54
|
+
function scoreNotContains(output, forbidden) {
|
|
55
|
+
if (!forbidden.length)
|
|
56
|
+
return 1;
|
|
57
|
+
const lower = output.toLowerCase();
|
|
58
|
+
const clean = forbidden.filter(f => !lower.includes(f.toLowerCase())).length;
|
|
59
|
+
return clean / forbidden.length;
|
|
60
|
+
}
|
|
61
|
+
function computeP95(values) {
|
|
62
|
+
if (!values.length)
|
|
63
|
+
return 0;
|
|
64
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
65
|
+
const idx = Math.ceil(0.95 * sorted.length) - 1;
|
|
66
|
+
return sorted[Math.max(0, idx)];
|
|
67
|
+
}
|
|
68
|
+
// ─── Evaluator ──────────────────────────────────────────────────────────────
|
|
69
|
+
class AgentEvaluator {
|
|
70
|
+
agent;
|
|
71
|
+
constructor(agent) {
|
|
72
|
+
this.agent = agent;
|
|
73
|
+
}
|
|
74
|
+
async evalCase(evalCase) {
|
|
75
|
+
const start = Date.now();
|
|
76
|
+
let output = '';
|
|
77
|
+
let error;
|
|
78
|
+
try {
|
|
79
|
+
// Agent must expose a chat / processMessage style method
|
|
80
|
+
if (typeof this.agent.chat === 'function') {
|
|
81
|
+
output = await this.agent.chat(evalCase.input);
|
|
82
|
+
}
|
|
83
|
+
else if (typeof this.agent.processMessage === 'function') {
|
|
84
|
+
const resp = await this.agent.processMessage({ role: 'user', content: evalCase.input });
|
|
85
|
+
output = typeof resp === 'string' ? resp : resp?.content ?? JSON.stringify(resp);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
throw new Error('Agent must implement chat() or processMessage()');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
error = e.message;
|
|
93
|
+
output = '';
|
|
94
|
+
}
|
|
95
|
+
const latency_ms = Date.now() - start;
|
|
96
|
+
const scores = { latency_ms };
|
|
97
|
+
if (evalCase.expectedOutput !== undefined) {
|
|
98
|
+
scores.exact_match = scoreExactMatch(output, evalCase.expectedOutput);
|
|
99
|
+
}
|
|
100
|
+
if (evalCase.expectedContains?.length) {
|
|
101
|
+
scores.contains = scoreContains(output, evalCase.expectedContains);
|
|
102
|
+
}
|
|
103
|
+
if (evalCase.expectedNotContains?.length) {
|
|
104
|
+
scores.not_contains = scoreNotContains(output, evalCase.expectedNotContains);
|
|
105
|
+
}
|
|
106
|
+
// Determine pass: all defined rule-based scores must be >= threshold (1.0 for exact, 0.5 for partial)
|
|
107
|
+
let passed = !error;
|
|
108
|
+
if (passed && scores.exact_match !== undefined && scores.exact_match < 1)
|
|
109
|
+
passed = false;
|
|
110
|
+
if (passed && scores.contains !== undefined && scores.contains < 0.5)
|
|
111
|
+
passed = false;
|
|
112
|
+
if (passed && scores.not_contains !== undefined && scores.not_contains < 0.5)
|
|
113
|
+
passed = false;
|
|
114
|
+
return { caseId: evalCase.id, input: evalCase.input, output, scores, passed, error };
|
|
115
|
+
}
|
|
116
|
+
async evalSuite(suite) {
|
|
117
|
+
const results = [];
|
|
118
|
+
for (const c of suite.cases) {
|
|
119
|
+
results.push(await this.evalCase(c));
|
|
120
|
+
}
|
|
121
|
+
const latencies = results.map(r => r.scores.latency_ms);
|
|
122
|
+
const passed = results.filter(r => r.passed).length;
|
|
123
|
+
const total = results.length;
|
|
124
|
+
return {
|
|
125
|
+
suite: suite.name,
|
|
126
|
+
timestamp: new Date().toISOString(),
|
|
127
|
+
totalCases: total,
|
|
128
|
+
passed,
|
|
129
|
+
failed: total - passed,
|
|
130
|
+
passRate: total ? passed / total : 0,
|
|
131
|
+
avgLatency: latencies.length ? latencies.reduce((a, b) => a + b, 0) / latencies.length : 0,
|
|
132
|
+
p95Latency: computeP95(latencies),
|
|
133
|
+
results,
|
|
134
|
+
summary: `${suite.name}: ${passed}/${total} passed (${total ? Math.round(passed / total * 100) : 0}%)`,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
static loadSuite(filePath) {
|
|
138
|
+
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
139
|
+
return JSON.parse(raw);
|
|
140
|
+
}
|
|
141
|
+
static saveReport(report, filePath) {
|
|
142
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
143
|
+
fs.writeFileSync(filePath, JSON.stringify(report, null, 2), 'utf-8');
|
|
144
|
+
}
|
|
145
|
+
static compare(baseline, current) {
|
|
146
|
+
const baseMap = new Map(baseline.results.map(r => [r.caseId, r.passed]));
|
|
147
|
+
const improved = [];
|
|
148
|
+
const regressed = [];
|
|
149
|
+
const unchanged = [];
|
|
150
|
+
for (const r of current.results) {
|
|
151
|
+
const prev = baseMap.get(r.caseId);
|
|
152
|
+
if (prev === undefined) {
|
|
153
|
+
unchanged.push(r.caseId);
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
if (!prev && r.passed)
|
|
157
|
+
improved.push(r.caseId);
|
|
158
|
+
else if (prev && !r.passed)
|
|
159
|
+
regressed.push(r.caseId);
|
|
160
|
+
else
|
|
161
|
+
unchanged.push(r.caseId);
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
improved,
|
|
165
|
+
regressed,
|
|
166
|
+
unchanged,
|
|
167
|
+
baselinePassRate: baseline.passRate,
|
|
168
|
+
currentPassRate: current.passRate,
|
|
169
|
+
delta: current.passRate - baseline.passRate,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
static builtinSuites() {
|
|
173
|
+
const suitesDir = path.join(__dirname, 'suites');
|
|
174
|
+
if (!fs.existsSync(suitesDir))
|
|
175
|
+
return [];
|
|
176
|
+
return fs.readdirSync(suitesDir)
|
|
177
|
+
.filter(f => f.endsWith('.json'))
|
|
178
|
+
.map(f => {
|
|
179
|
+
const suite = JSON.parse(fs.readFileSync(path.join(suitesDir, f), 'utf-8'));
|
|
180
|
+
return { name: suite.name, description: suite.description || '', caseCount: suite.cases.length };
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
static loadBuiltinSuite(name) {
|
|
184
|
+
const filePath = path.join(__dirname, 'suites', `${name}.json`);
|
|
185
|
+
if (!fs.existsSync(filePath))
|
|
186
|
+
throw new Error(`Built-in suite '${name}' not found`);
|
|
187
|
+
return AgentEvaluator.loadSuite(filePath);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
exports.AgentEvaluator = AgentEvaluator;
|
|
191
|
+
//# sourceMappingURL=index.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -21,12 +21,17 @@ export type { MCPTool, MCPToolDefinition, MCPToolResult } from './tools/mcp';
|
|
|
21
21
|
export { PluginManager } from './plugins';
|
|
22
22
|
export type { IPlugin, PluginHooks } from './plugins';
|
|
23
23
|
export { Sandbox } from './core/sandbox';
|
|
24
|
-
export type { SandboxConfig, SandboxRestrictions } from './core/sandbox';
|
|
24
|
+
export type { SandboxConfig, SandboxRestrictions, ValidationResult, SandboxStatus } from './core/sandbox';
|
|
25
|
+
export { ApprovalManager } from './security/approval';
|
|
26
|
+
export type { ApprovalPolicy, ApprovalRequest as SecurityApprovalRequest } from './security/approval';
|
|
27
|
+
export { KeyManager } from './security/keys';
|
|
25
28
|
export { Analytics } from './analytics';
|
|
26
29
|
export { WorkflowEngine } from './core/workflow';
|
|
27
30
|
export type { WorkflowDefinition, WorkflowStep, WorkflowResult, StepResult } from './core/workflow';
|
|
28
|
-
export {
|
|
29
|
-
export type {
|
|
31
|
+
export { GraphWorkflowEngine, WorkflowBuilder, parseOADWorkflow } from './core/workflow-graph';
|
|
32
|
+
export type { WorkflowContext, GraphWorkflowStep, GraphWorkflow, GraphWorkflowResult, OADWorkflowDef, OADWorkflowStepDef } from './core/workflow-graph';
|
|
33
|
+
export { AgentRegistry, AgentCardRegistry } from './core/a2a';
|
|
34
|
+
export type { A2ARequest, A2AResponse, AgentCapability, AgentRegistration, AgentCard } from './core/a2a';
|
|
30
35
|
export { HITLManager } from './core/hitl';
|
|
31
36
|
export type { ApprovalRequest, ApprovalResponse, HITLConfig } from './core/hitl';
|
|
32
37
|
export { VoiceChannel } from './channels/voice';
|
|
@@ -65,6 +70,8 @@ export { SchedulerSkill } from './skills/scheduler';
|
|
|
65
70
|
export type { ScheduledTask } from './skills/scheduler';
|
|
66
71
|
export { DocumentSkill } from './skills/document';
|
|
67
72
|
export type { DocumentChunk } from './skills/document';
|
|
73
|
+
export { SkillLearner, skillToMarkdown, parseSkillMarkdown } from './skills/auto-learn';
|
|
74
|
+
export type { LearnedSkill } from './skills/auto-learn';
|
|
68
75
|
export { runTests, loadTestCases, formatReport } from './testing';
|
|
69
76
|
export type { TestCase, TestResult, TestReport } from './testing';
|
|
70
77
|
export { AnalyticsEngine } from './core/analytics-engine';
|
|
@@ -79,7 +86,10 @@ export { OPCError, ProviderError, ValidationError, ConfigError, ChannelError, Pl
|
|
|
79
86
|
export { sanitizeInput, detectInjection, securityHeaders, corsMiddleware, APIKeyManager, inputValidation } from './core/security';
|
|
80
87
|
export type { SecurityHeadersConfig, CORSConfig, APIKeyEntry } from './core/security';
|
|
81
88
|
export { createLoggingPlugin, createAnalyticsPlugin, createRateLimitPlugin } from './plugins';
|
|
82
|
-
export type { PluginManifest } from './plugins';
|
|
89
|
+
export type { PluginManifest, Plugin } from './plugins';
|
|
90
|
+
export { loggerPlugin } from './plugins/logger';
|
|
91
|
+
export { rateLimiterPlugin, createRateLimiterPlugin as createEnhancedRateLimiterPlugin } from './plugins/rate-limiter';
|
|
92
|
+
export { contentFilterPlugin, createContentFilterPlugin } from './plugins/content-filter';
|
|
83
93
|
export { FeishuChannel } from './channels/feishu';
|
|
84
94
|
export type { FeishuChannelConfig } from './channels/feishu';
|
|
85
95
|
export { DiscordChannel } from './channels/discord';
|
|
@@ -90,6 +100,27 @@ export { ToolGateway } from './tools/gateway';
|
|
|
90
100
|
export type { ToolGatewayConfig, GatewayToolName } from './tools/gateway';
|
|
91
101
|
export { StreamingManager, StreamableResponse } from './core/streaming';
|
|
92
102
|
export type { StreamChunk, StreamOptions } from './core/streaming';
|
|
93
|
-
export { TraceCollector, ConsoleExporter, DeepBrainExporter } from './traces';
|
|
94
|
-
export type { Span, SpanEvent, TraceExporter } from './traces';
|
|
103
|
+
export { TraceCollector, ConsoleExporter as TraceConsoleExporter, DeepBrainExporter } from './traces';
|
|
104
|
+
export type { Span as TraceSpan, SpanEvent as TraceSpanEvent, TraceExporter as ITraceExporter } from './traces';
|
|
105
|
+
export { Tracer, ConsoleExporter, FileExporter, OTLPHttpExporter, generateTraceId, generateSpanId } from './telemetry';
|
|
106
|
+
export type { Span, SpanEvent, Metric, TraceExporter } from './telemetry';
|
|
107
|
+
export { Scheduler, parseCron, cronMatches } from './core/scheduler';
|
|
108
|
+
export type { CronJob, JobHandler } from './core/scheduler';
|
|
109
|
+
export { getBuiltinTools, getBuiltinToolsByName } from './tools/builtin';
|
|
110
|
+
export { MCPClient } from './tools/mcp-client';
|
|
111
|
+
export type { MCPServerConfig } from './tools/mcp-client';
|
|
112
|
+
export { AgentPackager, AgentPublisher, AgentInstaller } from './publish';
|
|
113
|
+
export type { PackageManifest, PublishOptions } from './publish';
|
|
114
|
+
export { StudioServer } from './studio/server';
|
|
115
|
+
export type { StudioConfig } from './studio/server';
|
|
116
|
+
export { A2AServer, A2AClient, oadToAgentCard, JSON_RPC_ERRORS } from './protocols/a2a';
|
|
117
|
+
export type { A2AAgentCard, A2AAgentSkill, A2ATask, A2ATaskStatus, A2ATaskState, A2AMessage, A2AMessagePart, A2AArtifact, } from './protocols/a2a';
|
|
118
|
+
export { MCPServer } from './protocols/mcp/server';
|
|
119
|
+
export type { MCPServerConfig as MCPServerConf, MCPServerToolDefinition, MCPResourceDefinition, MCPPromptDefinition } from './protocols/mcp/types';
|
|
120
|
+
export { agentToMCPTools, agentToMCPResources } from './protocols/mcp/agent-tools';
|
|
121
|
+
export { AgentEvaluator } from './eval';
|
|
122
|
+
export type { EvalCase, EvalResult, EvalSuite, EvalReport } from './eval';
|
|
123
|
+
export { AGUIServer, AGUIEventEmitter, AGUIClient } from './protocols/agui';
|
|
124
|
+
export { AGUI_EVENT_TYPES, isValidEventType } from './protocols/agui';
|
|
125
|
+
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';
|
|
95
126
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
3
|
+
exports.compose = exports.AgentPipeline = exports.Orchestrator = exports.getActiveSessions = exports.createAuthMiddleware = exports.deployToHermes = exports.KnowledgeBase = exports.addMessages = exports.detectLocale = exports.getLocale = exports.setLocale = exports.t = exports.LazyLoader = exports.RequestBatcher = exports.ConnectionPool = exports.VersionManager = exports.WebhookChannel = 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.DiscordChannel = exports.FeishuChannel = exports.createContentFilterPlugin = exports.contentFilterPlugin = exports.createEnhancedRateLimiterPlugin = exports.rateLimiterPlugin = 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 = void 0;
|
|
5
|
+
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.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 = void 0;
|
|
5
6
|
// OPC Agent — Open Agent Framework
|
|
6
7
|
var agent_1 = require("./core/agent");
|
|
7
8
|
Object.defineProperty(exports, "BaseAgent", { enumerable: true, get: function () { return agent_1.BaseAgent; } });
|
|
@@ -44,13 +45,22 @@ var plugins_1 = require("./plugins");
|
|
|
44
45
|
Object.defineProperty(exports, "PluginManager", { enumerable: true, get: function () { return plugins_1.PluginManager; } });
|
|
45
46
|
var sandbox_1 = require("./core/sandbox");
|
|
46
47
|
Object.defineProperty(exports, "Sandbox", { enumerable: true, get: function () { return sandbox_1.Sandbox; } });
|
|
48
|
+
var approval_1 = require("./security/approval");
|
|
49
|
+
Object.defineProperty(exports, "ApprovalManager", { enumerable: true, get: function () { return approval_1.ApprovalManager; } });
|
|
50
|
+
var keys_1 = require("./security/keys");
|
|
51
|
+
Object.defineProperty(exports, "KeyManager", { enumerable: true, get: function () { return keys_1.KeyManager; } });
|
|
47
52
|
var analytics_1 = require("./analytics");
|
|
48
53
|
Object.defineProperty(exports, "Analytics", { enumerable: true, get: function () { return analytics_1.Analytics; } });
|
|
49
54
|
// v0.4.0 modules
|
|
50
55
|
var workflow_1 = require("./core/workflow");
|
|
51
56
|
Object.defineProperty(exports, "WorkflowEngine", { enumerable: true, get: function () { return workflow_1.WorkflowEngine; } });
|
|
57
|
+
var workflow_graph_1 = require("./core/workflow-graph");
|
|
58
|
+
Object.defineProperty(exports, "GraphWorkflowEngine", { enumerable: true, get: function () { return workflow_graph_1.GraphWorkflowEngine; } });
|
|
59
|
+
Object.defineProperty(exports, "WorkflowBuilder", { enumerable: true, get: function () { return workflow_graph_1.WorkflowBuilder; } });
|
|
60
|
+
Object.defineProperty(exports, "parseOADWorkflow", { enumerable: true, get: function () { return workflow_graph_1.parseOADWorkflow; } });
|
|
52
61
|
var a2a_1 = require("./core/a2a");
|
|
53
62
|
Object.defineProperty(exports, "AgentRegistry", { enumerable: true, get: function () { return a2a_1.AgentRegistry; } });
|
|
63
|
+
Object.defineProperty(exports, "AgentCardRegistry", { enumerable: true, get: function () { return a2a_1.AgentCardRegistry; } });
|
|
54
64
|
var hitl_1 = require("./core/hitl");
|
|
55
65
|
Object.defineProperty(exports, "HITLManager", { enumerable: true, get: function () { return hitl_1.HITLManager; } });
|
|
56
66
|
var voice_1 = require("./channels/voice");
|
|
@@ -106,6 +116,10 @@ var scheduler_1 = require("./skills/scheduler");
|
|
|
106
116
|
Object.defineProperty(exports, "SchedulerSkill", { enumerable: true, get: function () { return scheduler_1.SchedulerSkill; } });
|
|
107
117
|
var document_1 = require("./skills/document");
|
|
108
118
|
Object.defineProperty(exports, "DocumentSkill", { enumerable: true, get: function () { return document_1.DocumentSkill; } });
|
|
119
|
+
var auto_learn_1 = require("./skills/auto-learn");
|
|
120
|
+
Object.defineProperty(exports, "SkillLearner", { enumerable: true, get: function () { return auto_learn_1.SkillLearner; } });
|
|
121
|
+
Object.defineProperty(exports, "skillToMarkdown", { enumerable: true, get: function () { return auto_learn_1.skillToMarkdown; } });
|
|
122
|
+
Object.defineProperty(exports, "parseSkillMarkdown", { enumerable: true, get: function () { return auto_learn_1.parseSkillMarkdown; } });
|
|
109
123
|
// v0.9.0 modules
|
|
110
124
|
var testing_1 = require("./testing");
|
|
111
125
|
Object.defineProperty(exports, "runTests", { enumerable: true, get: function () { return testing_1.runTests; } });
|
|
@@ -147,6 +161,14 @@ var plugins_2 = require("./plugins");
|
|
|
147
161
|
Object.defineProperty(exports, "createLoggingPlugin", { enumerable: true, get: function () { return plugins_2.createLoggingPlugin; } });
|
|
148
162
|
Object.defineProperty(exports, "createAnalyticsPlugin", { enumerable: true, get: function () { return plugins_2.createAnalyticsPlugin; } });
|
|
149
163
|
Object.defineProperty(exports, "createRateLimitPlugin", { enumerable: true, get: function () { return plugins_2.createRateLimitPlugin; } });
|
|
164
|
+
var logger_2 = require("./plugins/logger");
|
|
165
|
+
Object.defineProperty(exports, "loggerPlugin", { enumerable: true, get: function () { return logger_2.loggerPlugin; } });
|
|
166
|
+
var rate_limiter_2 = require("./plugins/rate-limiter");
|
|
167
|
+
Object.defineProperty(exports, "rateLimiterPlugin", { enumerable: true, get: function () { return rate_limiter_2.rateLimiterPlugin; } });
|
|
168
|
+
Object.defineProperty(exports, "createEnhancedRateLimiterPlugin", { enumerable: true, get: function () { return rate_limiter_2.createRateLimiterPlugin; } });
|
|
169
|
+
var content_filter_1 = require("./plugins/content-filter");
|
|
170
|
+
Object.defineProperty(exports, "contentFilterPlugin", { enumerable: true, get: function () { return content_filter_1.contentFilterPlugin; } });
|
|
171
|
+
Object.defineProperty(exports, "createContentFilterPlugin", { enumerable: true, get: function () { return content_filter_1.createContentFilterPlugin; } });
|
|
150
172
|
// v1.1.0 modules
|
|
151
173
|
var feishu_1 = require("./channels/feishu");
|
|
152
174
|
Object.defineProperty(exports, "FeishuChannel", { enumerable: true, get: function () { return feishu_1.FeishuChannel; } });
|
|
@@ -163,6 +185,56 @@ Object.defineProperty(exports, "StreamableResponse", { enumerable: true, get: fu
|
|
|
163
185
|
// v1.3.0 modules
|
|
164
186
|
var traces_1 = require("./traces");
|
|
165
187
|
Object.defineProperty(exports, "TraceCollector", { enumerable: true, get: function () { return traces_1.TraceCollector; } });
|
|
166
|
-
Object.defineProperty(exports, "
|
|
188
|
+
Object.defineProperty(exports, "TraceConsoleExporter", { enumerable: true, get: function () { return traces_1.ConsoleExporter; } });
|
|
167
189
|
Object.defineProperty(exports, "DeepBrainExporter", { enumerable: true, get: function () { return traces_1.DeepBrainExporter; } });
|
|
190
|
+
// v1.8.0 — Telemetry (OTel-compatible)
|
|
191
|
+
var telemetry_1 = require("./telemetry");
|
|
192
|
+
Object.defineProperty(exports, "Tracer", { enumerable: true, get: function () { return telemetry_1.Tracer; } });
|
|
193
|
+
Object.defineProperty(exports, "ConsoleExporter", { enumerable: true, get: function () { return telemetry_1.ConsoleExporter; } });
|
|
194
|
+
Object.defineProperty(exports, "FileExporter", { enumerable: true, get: function () { return telemetry_1.FileExporter; } });
|
|
195
|
+
Object.defineProperty(exports, "OTLPHttpExporter", { enumerable: true, get: function () { return telemetry_1.OTLPHttpExporter; } });
|
|
196
|
+
Object.defineProperty(exports, "generateTraceId", { enumerable: true, get: function () { return telemetry_1.generateTraceId; } });
|
|
197
|
+
Object.defineProperty(exports, "generateSpanId", { enumerable: true, get: function () { return telemetry_1.generateSpanId; } });
|
|
198
|
+
// v1.4.0 modules
|
|
199
|
+
var scheduler_2 = require("./core/scheduler");
|
|
200
|
+
Object.defineProperty(exports, "Scheduler", { enumerable: true, get: function () { return scheduler_2.Scheduler; } });
|
|
201
|
+
Object.defineProperty(exports, "parseCron", { enumerable: true, get: function () { return scheduler_2.parseCron; } });
|
|
202
|
+
Object.defineProperty(exports, "cronMatches", { enumerable: true, get: function () { return scheduler_2.cronMatches; } });
|
|
203
|
+
// v1.5.0 — built-in tools + MCP client
|
|
204
|
+
var builtin_1 = require("./tools/builtin");
|
|
205
|
+
Object.defineProperty(exports, "getBuiltinTools", { enumerable: true, get: function () { return builtin_1.getBuiltinTools; } });
|
|
206
|
+
Object.defineProperty(exports, "getBuiltinToolsByName", { enumerable: true, get: function () { return builtin_1.getBuiltinToolsByName; } });
|
|
207
|
+
var mcp_client_1 = require("./tools/mcp-client");
|
|
208
|
+
Object.defineProperty(exports, "MCPClient", { enumerable: true, get: function () { return mcp_client_1.MCPClient; } });
|
|
209
|
+
// v1.6.0 — publish/pack/install
|
|
210
|
+
var publish_1 = require("./publish");
|
|
211
|
+
Object.defineProperty(exports, "AgentPackager", { enumerable: true, get: function () { return publish_1.AgentPackager; } });
|
|
212
|
+
Object.defineProperty(exports, "AgentPublisher", { enumerable: true, get: function () { return publish_1.AgentPublisher; } });
|
|
213
|
+
Object.defineProperty(exports, "AgentInstaller", { enumerable: true, get: function () { return publish_1.AgentInstaller; } });
|
|
214
|
+
// v1.7.0 - Studio
|
|
215
|
+
var server_1 = require("./studio/server");
|
|
216
|
+
Object.defineProperty(exports, "StudioServer", { enumerable: true, get: function () { return server_1.StudioServer; } });
|
|
217
|
+
// v1.9.0 — Google A2A Protocol
|
|
218
|
+
var a2a_2 = require("./protocols/a2a");
|
|
219
|
+
Object.defineProperty(exports, "A2AServer", { enumerable: true, get: function () { return a2a_2.A2AServer; } });
|
|
220
|
+
Object.defineProperty(exports, "A2AClient", { enumerable: true, get: function () { return a2a_2.A2AClient; } });
|
|
221
|
+
Object.defineProperty(exports, "oadToAgentCard", { enumerable: true, get: function () { return a2a_2.oadToAgentCard; } });
|
|
222
|
+
Object.defineProperty(exports, "JSON_RPC_ERRORS", { enumerable: true, get: function () { return a2a_2.JSON_RPC_ERRORS; } });
|
|
223
|
+
// v1.9.0 — MCP Server (expose agents as MCP tools)
|
|
224
|
+
var server_2 = require("./protocols/mcp/server");
|
|
225
|
+
Object.defineProperty(exports, "MCPServer", { enumerable: true, get: function () { return server_2.MCPServer; } });
|
|
226
|
+
var agent_tools_1 = require("./protocols/mcp/agent-tools");
|
|
227
|
+
Object.defineProperty(exports, "agentToMCPTools", { enumerable: true, get: function () { return agent_tools_1.agentToMCPTools; } });
|
|
228
|
+
Object.defineProperty(exports, "agentToMCPResources", { enumerable: true, get: function () { return agent_tools_1.agentToMCPResources; } });
|
|
229
|
+
// v1.8.0 - Eval
|
|
230
|
+
var eval_1 = require("./eval");
|
|
231
|
+
Object.defineProperty(exports, "AgentEvaluator", { enumerable: true, get: function () { return eval_1.AgentEvaluator; } });
|
|
232
|
+
// v1.9.0 — AG-UI Protocol (Agent-User Interaction)
|
|
233
|
+
var agui_1 = require("./protocols/agui");
|
|
234
|
+
Object.defineProperty(exports, "AGUIServer", { enumerable: true, get: function () { return agui_1.AGUIServer; } });
|
|
235
|
+
Object.defineProperty(exports, "AGUIEventEmitter", { enumerable: true, get: function () { return agui_1.AGUIEventEmitter; } });
|
|
236
|
+
Object.defineProperty(exports, "AGUIClient", { enumerable: true, get: function () { return agui_1.AGUIClient; } });
|
|
237
|
+
var agui_2 = require("./protocols/agui");
|
|
238
|
+
Object.defineProperty(exports, "AGUI_EVENT_TYPES", { enumerable: true, get: function () { return agui_2.AGUI_EVENT_TYPES; } });
|
|
239
|
+
Object.defineProperty(exports, "isValidEventType", { enumerable: true, get: function () { return agui_2.isValidEventType; } });
|
|
168
240
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Plugin } from './index';
|
|
2
|
+
/**
|
|
3
|
+
* Content filter plugin — filters messages containing blocked keywords.
|
|
4
|
+
*/
|
|
5
|
+
export declare function createContentFilterPlugin(blocklist?: string[]): Plugin;
|
|
6
|
+
export declare const contentFilterPlugin: Plugin;
|
|
7
|
+
//# sourceMappingURL=content-filter.d.ts.map
|