opc-agent 1.4.0 → 1.4.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 +69 -23
- package/CONTRIBUTING.md +60 -21
- package/README.md +358 -235
- package/README.zh-CN.md +415 -415
- package/dist/channels/slack.js +10 -93
- package/dist/channels/web.d.ts +0 -10
- package/dist/channels/web.js +2 -33
- package/dist/cli.js +60 -255
- package/dist/core/dashboard.d.ts +35 -0
- package/dist/core/dashboard.js +157 -0
- package/dist/core/fast-mode.d.ts +27 -0
- package/dist/core/fast-mode.js +59 -0
- package/dist/core/priority.d.ts +52 -0
- package/dist/core/priority.js +102 -0
- package/dist/core/runtime.d.ts +0 -4
- package/dist/core/runtime.js +0 -27
- package/dist/deploy/hermes.js +22 -22
- package/dist/deploy/openclaw.js +40 -31
- package/dist/index.d.ts +14 -3
- package/dist/index.js +20 -6
- package/dist/memory/cloud-storage.d.ts +40 -0
- package/dist/memory/cloud-storage.js +211 -0
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.js +1 -7
- package/dist/schema/oad.d.ts +2 -1
- package/dist/templates/code-reviewer.d.ts +8 -0
- package/dist/templates/code-reviewer.js +9 -5
- package/dist/templates/customer-service.d.ts +8 -0
- package/dist/templates/customer-service.js +6 -2
- package/dist/templates/data-analyst.d.ts +8 -0
- package/dist/templates/data-analyst.js +9 -5
- package/dist/templates/knowledge-base.d.ts +8 -0
- package/dist/templates/knowledge-base.js +6 -2
- package/dist/templates/sales-assistant.d.ts +8 -0
- package/dist/templates/sales-assistant.js +8 -4
- package/dist/templates/teacher.d.ts +8 -0
- package/dist/templates/teacher.js +10 -6
- package/docs/.vitepress/config.ts +103 -103
- package/docs/api/cli.md +48 -48
- package/docs/api/oad-schema.md +64 -64
- package/docs/api/sdk.md +80 -80
- package/docs/guide/concepts.md +51 -51
- package/docs/guide/configuration.md +79 -79
- package/docs/guide/deployment.md +42 -42
- package/docs/guide/getting-started.md +44 -44
- package/docs/guide/templates.md +28 -28
- package/docs/guide/testing.md +84 -84
- package/docs/index.md +27 -27
- package/docs/zh/api/cli.md +54 -54
- package/docs/zh/api/oad-schema.md +87 -87
- package/docs/zh/api/sdk.md +102 -102
- package/docs/zh/guide/concepts.md +104 -104
- package/docs/zh/guide/configuration.md +135 -135
- package/docs/zh/guide/deployment.md +81 -81
- package/docs/zh/guide/getting-started.md +82 -82
- package/docs/zh/guide/templates.md +84 -84
- package/docs/zh/guide/testing.md +88 -88
- package/docs/zh/index.md +27 -27
- package/examples/customer-service-demo/README.md +90 -90
- package/examples/customer-service-demo/oad.yaml +107 -107
- package/package.json +1 -1
- package/src/analytics/index.ts +66 -66
- package/src/channels/discord.ts +192 -192
- package/src/channels/email.ts +177 -177
- package/src/channels/feishu.ts +236 -236
- package/src/channels/index.ts +15 -15
- package/src/channels/slack.ts +160 -217
- package/src/channels/telegram.ts +90 -90
- package/src/channels/voice.ts +106 -106
- package/src/channels/web.ts +2 -38
- package/src/channels/webhook.ts +199 -199
- package/src/channels/websocket.ts +87 -87
- package/src/channels/wechat.ts +149 -149
- package/src/cli.ts +58 -282
- package/src/core/a2a.ts +143 -143
- package/src/core/agent.ts +152 -152
- package/src/core/analytics-engine.ts +186 -186
- package/src/core/auth.ts +57 -57
- package/src/core/cache.ts +141 -141
- package/src/core/compose.ts +77 -77
- package/src/core/config.ts +14 -14
- package/src/core/dashboard.ts +219 -0
- package/src/core/errors.ts +148 -148
- package/src/core/fast-mode.ts +75 -0
- package/src/core/hitl.ts +138 -138
- package/src/core/logger.ts +57 -57
- package/src/core/orchestrator.ts +215 -215
- package/src/core/performance.ts +187 -187
- package/src/core/priority.ts +140 -0
- package/src/core/rate-limiter.ts +128 -128
- package/src/core/room.ts +109 -109
- package/src/core/runtime.ts +152 -183
- package/src/core/sandbox.ts +101 -101
- package/src/core/security.ts +171 -171
- package/src/core/types.ts +68 -68
- package/src/core/versioning.ts +106 -106
- package/src/core/watch.ts +178 -178
- package/src/core/workflow.ts +235 -235
- package/src/deploy/hermes.ts +156 -156
- package/src/deploy/openclaw.ts +200 -190
- package/src/dtv/data.ts +29 -0
- package/src/dtv/trust.ts +43 -0
- package/src/dtv/value.ts +47 -0
- package/src/i18n/index.ts +216 -216
- package/src/index.ts +16 -3
- package/src/marketplace/index.ts +223 -0
- package/src/memory/cloud-storage.ts +217 -0
- package/src/memory/deepbrain.ts +108 -108
- package/src/memory/index.ts +34 -34
- package/src/plugins/index.ts +208 -208
- package/src/providers/index.ts +1 -9
- package/src/schema/oad.ts +155 -154
- package/src/skills/base.ts +16 -16
- package/src/skills/document.ts +100 -100
- package/src/skills/http.ts +35 -35
- package/src/skills/index.ts +27 -27
- package/src/skills/scheduler.ts +80 -80
- package/src/skills/webhook-trigger.ts +59 -59
- package/src/templates/code-reviewer.ts +34 -30
- package/src/templates/customer-service.ts +80 -76
- package/src/templates/data-analyst.ts +70 -66
- package/src/templates/executive-assistant.ts +71 -71
- package/src/templates/financial-advisor.ts +60 -60
- package/src/templates/knowledge-base.ts +31 -27
- package/src/templates/legal-assistant.ts +71 -71
- package/src/templates/sales-assistant.ts +79 -75
- package/src/templates/teacher.ts +79 -75
- package/src/testing/index.ts +181 -181
- package/src/tools/calculator.ts +73 -73
- package/src/tools/datetime.ts +149 -149
- package/src/tools/json-transform.ts +187 -187
- package/src/tools/mcp.ts +76 -76
- package/src/tools/text-analysis.ts +116 -116
- package/templates/Dockerfile +15 -15
- package/templates/code-reviewer/README.md +27 -27
- package/templates/code-reviewer/oad.yaml +41 -41
- package/templates/customer-service/README.md +22 -22
- package/templates/customer-service/oad.yaml +36 -36
- package/templates/docker-compose.yml +21 -21
- package/templates/ecommerce-assistant/README.md +45 -45
- package/templates/ecommerce-assistant/oad.yaml +47 -47
- package/templates/knowledge-base/README.md +28 -28
- package/templates/knowledge-base/oad.yaml +38 -38
- package/templates/sales-assistant/README.md +26 -26
- package/templates/sales-assistant/oad.yaml +43 -43
- package/templates/tech-support/README.md +43 -43
- package/templates/tech-support/oad.yaml +45 -45
- package/tests/a2a.test.ts +66 -66
- package/tests/agent.test.ts +72 -72
- package/tests/analytics.test.ts +50 -50
- package/tests/channel.test.ts +39 -39
- package/tests/e2e.test.ts +134 -134
- package/tests/errors.test.ts +83 -83
- package/tests/hitl.test.ts +71 -71
- package/tests/i18n.test.ts +41 -41
- package/tests/mcp.test.ts +54 -54
- package/tests/oad.test.ts +68 -68
- package/tests/performance.test.ts +115 -115
- package/tests/plugin.test.ts +74 -74
- package/tests/room.test.ts +106 -106
- package/tests/runtime.test.ts +42 -42
- package/tests/sandbox.test.ts +46 -46
- package/tests/security.test.ts +60 -60
- package/tests/templates.test.ts +77 -77
- package/tests/v070.test.ts +76 -76
- package/tests/versioning.test.ts +75 -75
- package/tests/voice.test.ts +61 -61
- package/tests/webhook.test.ts +29 -29
- package/tests/workflow.test.ts +143 -143
- package/tsconfig.json +19 -19
- package/vitest.config.ts +9 -9
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -13
- package/.github/workflows/ci.yml +0 -24
- package/dist/traces/index.d.ts +0 -49
- package/dist/traces/index.js +0 -102
- package/examples/README.md +0 -22
- package/examples/basic-agent.ts +0 -90
- package/examples/brain-integration.ts +0 -71
- package/examples/multi-channel.ts +0 -74
- package/src/traces/index.ts +0 -132
- package/test-agent/Dockerfile +0 -9
- package/test-agent/README.md +0 -50
- package/test-agent/agent.yaml +0 -23
- package/test-agent/docker-compose.yml +0 -11
- package/test-agent/oad.yaml +0 -31
- package/test-agent/package-lock.json +0 -1492
- package/test-agent/package.json +0 -18
- package/test-agent/src/index.ts +0 -24
- package/test-agent/src/skills/echo.ts +0 -15
- package/test-agent/tsconfig.json +0 -25
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { AgentRuntime, truncateOutput } from './core/runtime';
|
|
|
3
3
|
export { Logger } from './core/logger';
|
|
4
4
|
export { loadOAD, validateOAD } from './core/config';
|
|
5
5
|
export { OADSchema } from './schema/oad';
|
|
6
|
-
export type { OADDocument, Metadata, Spec } from './schema/oad';
|
|
6
|
+
export type { OADDocument, Metadata, Spec, DTVConfig, TrustLevelType } from './schema/oad';
|
|
7
7
|
export type { IAgent, IChannel, ISkill, Message, AgentContext, SkillResult, MemoryStore, AgentState } from './core/types';
|
|
8
8
|
export { BaseChannel } from './channels';
|
|
9
9
|
export { WebChannel } from './channels/web';
|
|
@@ -13,6 +13,9 @@ export { BaseSkill } from './skills/base';
|
|
|
13
13
|
export { SkillRegistry } from './skills';
|
|
14
14
|
export { InMemoryStore } from './memory';
|
|
15
15
|
export { DeepBrainMemoryStore } from './memory/deepbrain';
|
|
16
|
+
export { TrustManager } from './dtv/trust';
|
|
17
|
+
export { ValueTracker } from './dtv/value';
|
|
18
|
+
export { MRGConfigReader } from './dtv/data';
|
|
16
19
|
export { createProvider, SUPPORTED_PROVIDERS } from './providers';
|
|
17
20
|
export { Room } from './core/room';
|
|
18
21
|
export type { RoomMessage } from './core/room';
|
|
@@ -42,6 +45,8 @@ export type { Locale } from './i18n';
|
|
|
42
45
|
export { KnowledgeBase } from './core/knowledge';
|
|
43
46
|
export { deployToHermes } from './deploy/hermes';
|
|
44
47
|
export type { HermesDeployOptions, HermesDeployResult } from './deploy/hermes';
|
|
48
|
+
export { publishAgent, installAgent } from './marketplace';
|
|
49
|
+
export type { AgentManifest, PublishOptions, InstallOptions } from './marketplace';
|
|
45
50
|
export { createAuthMiddleware, getActiveSessions } from './core/auth';
|
|
46
51
|
export type { AuthConfig, AuthSession } from './core/auth';
|
|
47
52
|
export { Orchestrator } from './core/orchestrator';
|
|
@@ -90,6 +95,12 @@ export { ToolGateway } from './tools/gateway';
|
|
|
90
95
|
export type { ToolGatewayConfig, GatewayToolName } from './tools/gateway';
|
|
91
96
|
export { StreamingManager, StreamableResponse } from './core/streaming';
|
|
92
97
|
export type { StreamChunk, StreamOptions } from './core/streaming';
|
|
93
|
-
export {
|
|
94
|
-
export type {
|
|
98
|
+
export { Dashboard } from './core/dashboard';
|
|
99
|
+
export type { DashboardConfig } from './core/dashboard';
|
|
100
|
+
export { PriorityRouter } from './core/priority';
|
|
101
|
+
export type { PriorityConfig, PriorityTier, PriorityProviderConfig } from './core/priority';
|
|
102
|
+
export { FastModeRouter } from './core/fast-mode';
|
|
103
|
+
export type { FastModeConfig, FastModeStats } from './core/fast-mode';
|
|
104
|
+
export { CloudMemoryBackend } from './memory/cloud-storage';
|
|
105
|
+
export type { CloudStorageConfig, CloudMemoryBackendInterface } from './memory/cloud-storage';
|
|
95
106
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
3
|
+
exports.EmailChannel = exports.compose = exports.AgentPipeline = exports.Orchestrator = exports.getActiveSessions = exports.createAuthMiddleware = exports.installAgent = exports.publishAgent = 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.AgentRegistry = exports.WorkflowEngine = exports.Analytics = exports.Sandbox = exports.PluginManager = exports.createMCPTool = exports.MCPToolRegistry = exports.Room = exports.SUPPORTED_PROVIDERS = exports.createProvider = exports.MRGConfigReader = exports.ValueTracker = exports.TrustManager = 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.CloudMemoryBackend = exports.FastModeRouter = exports.PriorityRouter = exports.Dashboard = exports.StreamableResponse = exports.StreamingManager = exports.ToolGateway = exports.ProcessWatcher = exports.DiscordChannel = exports.FeishuChannel = 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.DocumentSkill = exports.SchedulerSkill = exports.WebhookTriggerSkill = exports.HttpSkill = exports.TextAnalysisTool = exports.JsonTransformTool = exports.DateTimeTool = exports.CalculatorTool = exports.WeChatChannel = exports.SlackChannel = void 0;
|
|
5
5
|
// OPC Agent — Open Agent Framework
|
|
6
6
|
var agent_1 = require("./core/agent");
|
|
7
7
|
Object.defineProperty(exports, "BaseAgent", { enumerable: true, get: function () { return agent_1.BaseAgent; } });
|
|
@@ -31,6 +31,12 @@ var memory_1 = require("./memory");
|
|
|
31
31
|
Object.defineProperty(exports, "InMemoryStore", { enumerable: true, get: function () { return memory_1.InMemoryStore; } });
|
|
32
32
|
var deepbrain_1 = require("./memory/deepbrain");
|
|
33
33
|
Object.defineProperty(exports, "DeepBrainMemoryStore", { enumerable: true, get: function () { return deepbrain_1.DeepBrainMemoryStore; } });
|
|
34
|
+
var trust_1 = require("./dtv/trust");
|
|
35
|
+
Object.defineProperty(exports, "TrustManager", { enumerable: true, get: function () { return trust_1.TrustManager; } });
|
|
36
|
+
var value_1 = require("./dtv/value");
|
|
37
|
+
Object.defineProperty(exports, "ValueTracker", { enumerable: true, get: function () { return value_1.ValueTracker; } });
|
|
38
|
+
var data_1 = require("./dtv/data");
|
|
39
|
+
Object.defineProperty(exports, "MRGConfigReader", { enumerable: true, get: function () { return data_1.MRGConfigReader; } });
|
|
34
40
|
var providers_1 = require("./providers");
|
|
35
41
|
Object.defineProperty(exports, "createProvider", { enumerable: true, get: function () { return providers_1.createProvider; } });
|
|
36
42
|
Object.defineProperty(exports, "SUPPORTED_PROVIDERS", { enumerable: true, get: function () { return providers_1.SUPPORTED_PROVIDERS; } });
|
|
@@ -74,6 +80,9 @@ var knowledge_1 = require("./core/knowledge");
|
|
|
74
80
|
Object.defineProperty(exports, "KnowledgeBase", { enumerable: true, get: function () { return knowledge_1.KnowledgeBase; } });
|
|
75
81
|
var hermes_1 = require("./deploy/hermes");
|
|
76
82
|
Object.defineProperty(exports, "deployToHermes", { enumerable: true, get: function () { return hermes_1.deployToHermes; } });
|
|
83
|
+
var marketplace_1 = require("./marketplace");
|
|
84
|
+
Object.defineProperty(exports, "publishAgent", { enumerable: true, get: function () { return marketplace_1.publishAgent; } });
|
|
85
|
+
Object.defineProperty(exports, "installAgent", { enumerable: true, get: function () { return marketplace_1.installAgent; } });
|
|
77
86
|
// v0.7.0 modules
|
|
78
87
|
var auth_1 = require("./core/auth");
|
|
79
88
|
Object.defineProperty(exports, "createAuthMiddleware", { enumerable: true, get: function () { return auth_1.createAuthMiddleware; } });
|
|
@@ -161,8 +170,13 @@ var streaming_1 = require("./core/streaming");
|
|
|
161
170
|
Object.defineProperty(exports, "StreamingManager", { enumerable: true, get: function () { return streaming_1.StreamingManager; } });
|
|
162
171
|
Object.defineProperty(exports, "StreamableResponse", { enumerable: true, get: function () { return streaming_1.StreamableResponse; } });
|
|
163
172
|
// v1.3.0 modules
|
|
164
|
-
var
|
|
165
|
-
Object.defineProperty(exports, "
|
|
166
|
-
|
|
167
|
-
Object.defineProperty(exports, "
|
|
173
|
+
var dashboard_1 = require("./core/dashboard");
|
|
174
|
+
Object.defineProperty(exports, "Dashboard", { enumerable: true, get: function () { return dashboard_1.Dashboard; } });
|
|
175
|
+
var priority_1 = require("./core/priority");
|
|
176
|
+
Object.defineProperty(exports, "PriorityRouter", { enumerable: true, get: function () { return priority_1.PriorityRouter; } });
|
|
177
|
+
// v1.4.0 modules
|
|
178
|
+
var fast_mode_1 = require("./core/fast-mode");
|
|
179
|
+
Object.defineProperty(exports, "FastModeRouter", { enumerable: true, get: function () { return fast_mode_1.FastModeRouter; } });
|
|
180
|
+
var cloud_storage_1 = require("./memory/cloud-storage");
|
|
181
|
+
Object.defineProperty(exports, "CloudMemoryBackend", { enumerable: true, get: function () { return cloud_storage_1.CloudMemoryBackend; } });
|
|
168
182
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface CloudStorageConfig {
|
|
2
|
+
provider: 's3' | 'gcs' | 'azure-blob';
|
|
3
|
+
bucket: string;
|
|
4
|
+
prefix?: string;
|
|
5
|
+
credentials?: {
|
|
6
|
+
accessKey?: string;
|
|
7
|
+
secretKey?: string;
|
|
8
|
+
region?: string;
|
|
9
|
+
};
|
|
10
|
+
syncIntervalMs?: number;
|
|
11
|
+
}
|
|
12
|
+
/** Simple memory backend interface for cloud storage */
|
|
13
|
+
export interface CloudMemoryBackendInterface {
|
|
14
|
+
upload(key: string, data: Buffer | string): Promise<string>;
|
|
15
|
+
download(key: string): Promise<Buffer | null>;
|
|
16
|
+
list(prefix?: string): Promise<string[]>;
|
|
17
|
+
delete(key: string): Promise<boolean>;
|
|
18
|
+
}
|
|
19
|
+
export declare class CloudMemoryBackend implements CloudMemoryBackendInterface {
|
|
20
|
+
private config;
|
|
21
|
+
private effectivePrefix;
|
|
22
|
+
constructor(config: CloudStorageConfig);
|
|
23
|
+
/** Upload data to cloud storage, returns the object URL */
|
|
24
|
+
upload(key: string, data: Buffer | string): Promise<string>;
|
|
25
|
+
/** Download an object by key. Returns null if not found. */
|
|
26
|
+
download(key: string): Promise<Buffer | null>;
|
|
27
|
+
/** List object keys under a prefix */
|
|
28
|
+
list(prefix?: string): Promise<string[]>;
|
|
29
|
+
/** Delete an object by key */
|
|
30
|
+
delete(key: string): Promise<boolean>;
|
|
31
|
+
/** Sync a local directory with the cloud bucket prefix */
|
|
32
|
+
sync(localDir: string): Promise<{
|
|
33
|
+
uploaded: number;
|
|
34
|
+
downloaded: number;
|
|
35
|
+
}>;
|
|
36
|
+
private buildUrl;
|
|
37
|
+
private buildBucketUrl;
|
|
38
|
+
private buildHeaders;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=cloud-storage.d.ts.map
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─── Cloud Memory Backend ────────────────────────────────────
|
|
3
|
+
// Fetch-based cloud storage for S3, GCS, and Azure Blob — no SDK deps.
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
21
|
+
var ownKeys = function(o) {
|
|
22
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
23
|
+
var ar = [];
|
|
24
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
return ownKeys(o);
|
|
28
|
+
};
|
|
29
|
+
return function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
})();
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.CloudMemoryBackend = void 0;
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const crypto = __importStar(require("crypto"));
|
|
42
|
+
class CloudMemoryBackend {
|
|
43
|
+
config;
|
|
44
|
+
effectivePrefix;
|
|
45
|
+
constructor(config) {
|
|
46
|
+
this.config = config;
|
|
47
|
+
this.effectivePrefix = config.prefix ? config.prefix.replace(/\/$/, '') + '/' : '';
|
|
48
|
+
}
|
|
49
|
+
/** Upload data to cloud storage, returns the object URL */
|
|
50
|
+
async upload(key, data) {
|
|
51
|
+
const fullKey = this.effectivePrefix + key;
|
|
52
|
+
const body = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;
|
|
53
|
+
const url = this.buildUrl(fullKey);
|
|
54
|
+
const headers = await this.buildHeaders('PUT', fullKey, body);
|
|
55
|
+
const resp = await fetch(url, { method: 'PUT', headers, body });
|
|
56
|
+
if (!resp.ok) {
|
|
57
|
+
throw new Error(`Cloud upload failed [${resp.status}]: ${await resp.text()}`);
|
|
58
|
+
}
|
|
59
|
+
return url;
|
|
60
|
+
}
|
|
61
|
+
/** Download an object by key. Returns null if not found. */
|
|
62
|
+
async download(key) {
|
|
63
|
+
const fullKey = this.effectivePrefix + key;
|
|
64
|
+
const url = this.buildUrl(fullKey);
|
|
65
|
+
const headers = await this.buildHeaders('GET', fullKey);
|
|
66
|
+
const resp = await fetch(url, { method: 'GET', headers });
|
|
67
|
+
if (resp.status === 404)
|
|
68
|
+
return null;
|
|
69
|
+
if (!resp.ok) {
|
|
70
|
+
throw new Error(`Cloud download failed [${resp.status}]: ${await resp.text()}`);
|
|
71
|
+
}
|
|
72
|
+
const ab = await resp.arrayBuffer();
|
|
73
|
+
return Buffer.from(ab);
|
|
74
|
+
}
|
|
75
|
+
/** List object keys under a prefix */
|
|
76
|
+
async list(prefix) {
|
|
77
|
+
const fullPrefix = this.effectivePrefix + (prefix ?? '');
|
|
78
|
+
if (this.config.provider === 's3') {
|
|
79
|
+
const listUrl = this.buildBucketUrl() + `?list-type=2&prefix=${encodeURIComponent(fullPrefix)}`;
|
|
80
|
+
const headers = await this.buildHeaders('GET', '');
|
|
81
|
+
const resp = await fetch(listUrl, { method: 'GET', headers });
|
|
82
|
+
if (!resp.ok)
|
|
83
|
+
return [];
|
|
84
|
+
const text = await resp.text();
|
|
85
|
+
// Simple XML key extraction
|
|
86
|
+
const keys = [];
|
|
87
|
+
const regex = /<Key>([^<]+)<\/Key>/g;
|
|
88
|
+
let match;
|
|
89
|
+
while ((match = regex.exec(text)) !== null) {
|
|
90
|
+
keys.push(match[1]);
|
|
91
|
+
}
|
|
92
|
+
return keys;
|
|
93
|
+
}
|
|
94
|
+
if (this.config.provider === 'gcs') {
|
|
95
|
+
const listUrl = `https://storage.googleapis.com/storage/v1/b/${this.config.bucket}/o?prefix=${encodeURIComponent(fullPrefix)}`;
|
|
96
|
+
const headers = await this.buildHeaders('GET', '');
|
|
97
|
+
const resp = await fetch(listUrl, { method: 'GET', headers });
|
|
98
|
+
if (!resp.ok)
|
|
99
|
+
return [];
|
|
100
|
+
const json = await resp.json();
|
|
101
|
+
return (json.items ?? []).map((i) => i.name);
|
|
102
|
+
}
|
|
103
|
+
// azure-blob
|
|
104
|
+
const listUrl = this.buildBucketUrl() + `?restype=container&comp=list&prefix=${encodeURIComponent(fullPrefix)}`;
|
|
105
|
+
const headers = await this.buildHeaders('GET', '');
|
|
106
|
+
const resp = await fetch(listUrl, { method: 'GET', headers });
|
|
107
|
+
if (!resp.ok)
|
|
108
|
+
return [];
|
|
109
|
+
const text = await resp.text();
|
|
110
|
+
const keys = [];
|
|
111
|
+
const regex = /<Name>([^<]+)<\/Name>/g;
|
|
112
|
+
let match;
|
|
113
|
+
while ((match = regex.exec(text)) !== null) {
|
|
114
|
+
keys.push(match[1]);
|
|
115
|
+
}
|
|
116
|
+
return keys;
|
|
117
|
+
}
|
|
118
|
+
/** Delete an object by key */
|
|
119
|
+
async delete(key) {
|
|
120
|
+
const fullKey = this.effectivePrefix + key;
|
|
121
|
+
const url = this.buildUrl(fullKey);
|
|
122
|
+
const headers = await this.buildHeaders('DELETE', fullKey);
|
|
123
|
+
const resp = await fetch(url, { method: 'DELETE', headers });
|
|
124
|
+
return resp.ok || resp.status === 204;
|
|
125
|
+
}
|
|
126
|
+
/** Sync a local directory with the cloud bucket prefix */
|
|
127
|
+
async sync(localDir) {
|
|
128
|
+
let uploaded = 0;
|
|
129
|
+
let downloaded = 0;
|
|
130
|
+
// Upload local files
|
|
131
|
+
if (fs.existsSync(localDir)) {
|
|
132
|
+
const files = fs.readdirSync(localDir);
|
|
133
|
+
for (const file of files) {
|
|
134
|
+
const filePath = path.join(localDir, file);
|
|
135
|
+
if (fs.statSync(filePath).isFile()) {
|
|
136
|
+
const data = fs.readFileSync(filePath);
|
|
137
|
+
await this.upload(file, data);
|
|
138
|
+
uploaded++;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Download remote files not present locally
|
|
143
|
+
const remoteKeys = await this.list();
|
|
144
|
+
for (const key of remoteKeys) {
|
|
145
|
+
const baseName = key.replace(this.effectivePrefix, '');
|
|
146
|
+
if (!baseName || baseName.includes('/'))
|
|
147
|
+
continue;
|
|
148
|
+
const localPath = path.join(localDir, baseName);
|
|
149
|
+
if (!fs.existsSync(localPath)) {
|
|
150
|
+
const data = await this.download(baseName);
|
|
151
|
+
if (data) {
|
|
152
|
+
fs.mkdirSync(localDir, { recursive: true });
|
|
153
|
+
fs.writeFileSync(localPath, data);
|
|
154
|
+
downloaded++;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return { uploaded, downloaded };
|
|
159
|
+
}
|
|
160
|
+
// ─── Internal helpers ──────────────────────────────────────
|
|
161
|
+
buildUrl(key) {
|
|
162
|
+
switch (this.config.provider) {
|
|
163
|
+
case 's3': {
|
|
164
|
+
const region = this.config.credentials?.region ?? 'us-east-1';
|
|
165
|
+
return `https://${this.config.bucket}.s3.${region}.amazonaws.com/${key}`;
|
|
166
|
+
}
|
|
167
|
+
case 'gcs':
|
|
168
|
+
return `https://storage.googleapis.com/${this.config.bucket}/${key}`;
|
|
169
|
+
case 'azure-blob':
|
|
170
|
+
return `https://${this.config.bucket}.blob.core.windows.net/${key}`;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
buildBucketUrl() {
|
|
174
|
+
switch (this.config.provider) {
|
|
175
|
+
case 's3': {
|
|
176
|
+
const region = this.config.credentials?.region ?? 'us-east-1';
|
|
177
|
+
return `https://${this.config.bucket}.s3.${region}.amazonaws.com`;
|
|
178
|
+
}
|
|
179
|
+
case 'gcs':
|
|
180
|
+
return `https://storage.googleapis.com/${this.config.bucket}`;
|
|
181
|
+
case 'azure-blob':
|
|
182
|
+
return `https://${this.config.bucket}.blob.core.windows.net`;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
async buildHeaders(method, key, body) {
|
|
186
|
+
const headers = {};
|
|
187
|
+
if (this.config.provider === 's3' && this.config.credentials?.accessKey) {
|
|
188
|
+
// Simplified AWS Signature v4 — date + authorization placeholder
|
|
189
|
+
const date = new Date().toISOString().replace(/[:-]|\.\d{3}/g, '');
|
|
190
|
+
const dateShort = date.slice(0, 8);
|
|
191
|
+
const region = this.config.credentials.region ?? 'us-east-1';
|
|
192
|
+
headers['x-amz-date'] = date;
|
|
193
|
+
headers['x-amz-content-sha256'] = body
|
|
194
|
+
? crypto.createHash('sha256').update(body).digest('hex')
|
|
195
|
+
: 'UNSIGNED-PAYLOAD';
|
|
196
|
+
// Real v4 signing would go here; keeping header structure correct
|
|
197
|
+
headers['Authorization'] = `AWS4-HMAC-SHA256 Credential=${this.config.credentials.accessKey}/${dateShort}/${region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=placeholder`;
|
|
198
|
+
}
|
|
199
|
+
if (this.config.provider === 'gcs' && this.config.credentials?.accessKey) {
|
|
200
|
+
headers['Authorization'] = `Bearer ${this.config.credentials.accessKey}`;
|
|
201
|
+
}
|
|
202
|
+
if (this.config.provider === 'azure-blob' && this.config.credentials?.accessKey) {
|
|
203
|
+
headers['x-ms-version'] = '2021-08-06';
|
|
204
|
+
headers['x-ms-date'] = new Date().toUTCString();
|
|
205
|
+
headers['Authorization'] = `SharedKey ${this.config.credentials.accessKey}`;
|
|
206
|
+
}
|
|
207
|
+
return headers;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
exports.CloudMemoryBackend = CloudMemoryBackend;
|
|
211
|
+
//# sourceMappingURL=cloud-storage.js.map
|
|
@@ -5,5 +5,5 @@ export interface LLMProvider {
|
|
|
5
5
|
chatStream(messages: Message[], systemPrompt?: string): AsyncIterable<string>;
|
|
6
6
|
}
|
|
7
7
|
export declare function createProvider(name?: string, model?: string, baseUrl?: string, apiKey?: string): LLMProvider;
|
|
8
|
-
export declare const SUPPORTED_PROVIDERS: readonly ["openai", "
|
|
8
|
+
export declare const SUPPORTED_PROVIDERS: readonly ["openai", "deepseek", "qwen", "gemini", "dashscope", "zhipu", "moonshot"];
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/providers/index.js
CHANGED
|
@@ -315,12 +315,6 @@ function isGeminiNative() {
|
|
|
315
315
|
}
|
|
316
316
|
function createProvider(name = 'openai', model, baseUrl, apiKey) {
|
|
317
317
|
const finalModel = model || process.env.OPC_LLM_MODEL || 'gpt-4o-mini';
|
|
318
|
-
// Auto-detect ollama: use localhost:11434/v1 and dummy apiKey
|
|
319
|
-
if (name === 'ollama') {
|
|
320
|
-
const ollamaBase = baseUrl || process.env.OPC_LLM_BASE_URL || 'http://localhost:11434/v1';
|
|
321
|
-
const ollamaKey = apiKey || process.env.OPC_LLM_API_KEY || 'ollama';
|
|
322
|
-
return new OpenAICompatibleProvider('ollama', finalModel, ollamaBase, ollamaKey);
|
|
323
|
-
}
|
|
324
318
|
const finalKey = apiKey || getApiKey();
|
|
325
319
|
const finalBaseUrl = baseUrl || getBaseUrl();
|
|
326
320
|
// Auto-detect Gemini native when key is new format or base URL points to googleapis
|
|
@@ -337,5 +331,5 @@ function createProvider(name = 'openai', model, baseUrl, apiKey) {
|
|
|
337
331
|
}
|
|
338
332
|
return new OpenAICompatibleProvider(resolvedName, finalModel, baseUrl, apiKey);
|
|
339
333
|
}
|
|
340
|
-
exports.SUPPORTED_PROVIDERS = ['openai', '
|
|
334
|
+
exports.SUPPORTED_PROVIDERS = ['openai', 'deepseek', 'qwen', 'gemini', 'dashscope', 'zhipu', 'moonshot'];
|
|
341
335
|
//# sourceMappingURL=index.js.map
|
package/dist/schema/oad.d.ts
CHANGED
|
@@ -1266,5 +1266,6 @@ export type SkillRef = z.infer<typeof SkillRefSchema>;
|
|
|
1266
1266
|
export type Channel = z.infer<typeof ChannelSchema>;
|
|
1267
1267
|
export type Metadata = z.infer<typeof MetadataSchema>;
|
|
1268
1268
|
export type Spec = z.infer<typeof SpecSchema>;
|
|
1269
|
-
export type
|
|
1269
|
+
export type DTVConfig = z.infer<typeof DTVSchema>;
|
|
1270
|
+
export type TrustLevelType = z.infer<typeof TrustLevel>;
|
|
1270
1271
|
//# sourceMappingURL=oad.d.ts.map
|
|
@@ -28,6 +28,14 @@ export declare function createCodeReviewerConfig(): {
|
|
|
28
28
|
shortTerm: boolean;
|
|
29
29
|
longTerm: boolean;
|
|
30
30
|
};
|
|
31
|
+
dtv: {
|
|
32
|
+
trust: {
|
|
33
|
+
level: "sandbox";
|
|
34
|
+
};
|
|
35
|
+
value: {
|
|
36
|
+
metrics: string[];
|
|
37
|
+
};
|
|
38
|
+
};
|
|
31
39
|
};
|
|
32
40
|
};
|
|
33
41
|
//# sourceMappingURL=code-reviewer.d.ts.map
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CODE_REVIEWER_SYSTEM_PROMPT = void 0;
|
|
4
4
|
exports.createCodeReviewerConfig = createCodeReviewerConfig;
|
|
5
|
-
exports.CODE_REVIEWER_SYSTEM_PROMPT = `You are an expert code reviewer. When given code:
|
|
6
|
-
1. Check for bugs, security issues, and performance problems
|
|
7
|
-
2. Suggest improvements for readability and maintainability
|
|
8
|
-
3. Follow language-specific best practices
|
|
9
|
-
4. Be constructive and explain your reasoning
|
|
5
|
+
exports.CODE_REVIEWER_SYSTEM_PROMPT = `You are an expert code reviewer. When given code:
|
|
6
|
+
1. Check for bugs, security issues, and performance problems
|
|
7
|
+
2. Suggest improvements for readability and maintainability
|
|
8
|
+
3. Follow language-specific best practices
|
|
9
|
+
4. Be constructive and explain your reasoning
|
|
10
10
|
Rate severity: 🔴 Critical | 🟡 Warning | 🔵 Info`;
|
|
11
11
|
function createCodeReviewerConfig() {
|
|
12
12
|
return {
|
|
@@ -28,6 +28,10 @@ function createCodeReviewerConfig() {
|
|
|
28
28
|
],
|
|
29
29
|
channels: [{ type: 'web', port: 3000 }],
|
|
30
30
|
memory: { shortTerm: true, longTerm: false },
|
|
31
|
+
dtv: {
|
|
32
|
+
trust: { level: 'sandbox' },
|
|
33
|
+
value: { metrics: ['reviews_completed', 'issues_found'] },
|
|
34
|
+
},
|
|
31
35
|
},
|
|
32
36
|
};
|
|
33
37
|
}
|
|
@@ -43,6 +43,14 @@ export declare function createCustomerServiceConfig(): {
|
|
|
43
43
|
shortTerm: boolean;
|
|
44
44
|
longTerm: boolean;
|
|
45
45
|
};
|
|
46
|
+
dtv: {
|
|
47
|
+
trust: {
|
|
48
|
+
level: "sandbox";
|
|
49
|
+
};
|
|
50
|
+
value: {
|
|
51
|
+
metrics: string[];
|
|
52
|
+
};
|
|
53
|
+
};
|
|
46
54
|
};
|
|
47
55
|
};
|
|
48
56
|
//# sourceMappingURL=customer-service.d.ts.map
|
|
@@ -41,8 +41,8 @@ class HandoffSkill extends base_1.BaseSkill {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
exports.HandoffSkill = HandoffSkill;
|
|
44
|
-
exports.CUSTOMER_SERVICE_SYSTEM_PROMPT = `You are a friendly and professional customer service agent.
|
|
45
|
-
You help customers with their questions about products, orders, shipping, and returns.
|
|
44
|
+
exports.CUSTOMER_SERVICE_SYSTEM_PROMPT = `You are a friendly and professional customer service agent.
|
|
45
|
+
You help customers with their questions about products, orders, shipping, and returns.
|
|
46
46
|
Be concise, helpful, and empathetic. If you're unsure, offer to connect them with a human agent.`;
|
|
47
47
|
function createCustomerServiceConfig() {
|
|
48
48
|
return {
|
|
@@ -65,6 +65,10 @@ function createCustomerServiceConfig() {
|
|
|
65
65
|
],
|
|
66
66
|
channels: [{ type: 'web', port: 3000 }],
|
|
67
67
|
memory: { shortTerm: true, longTerm: false },
|
|
68
|
+
dtv: {
|
|
69
|
+
trust: { level: 'sandbox' },
|
|
70
|
+
value: { metrics: ['response_time', 'satisfaction_score'] },
|
|
71
|
+
},
|
|
68
72
|
},
|
|
69
73
|
};
|
|
70
74
|
}
|
|
@@ -40,6 +40,14 @@ export declare function createDataAnalystConfig(): {
|
|
|
40
40
|
shortTerm: boolean;
|
|
41
41
|
longTerm: boolean;
|
|
42
42
|
};
|
|
43
|
+
dtv: {
|
|
44
|
+
trust: {
|
|
45
|
+
level: "sandbox";
|
|
46
|
+
};
|
|
47
|
+
value: {
|
|
48
|
+
metrics: string[];
|
|
49
|
+
};
|
|
50
|
+
};
|
|
43
51
|
};
|
|
44
52
|
};
|
|
45
53
|
//# sourceMappingURL=data-analyst.d.ts.map
|
|
@@ -33,11 +33,11 @@ class InsightSkill extends base_1.BaseSkill {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
exports.InsightSkill = InsightSkill;
|
|
36
|
-
exports.DATA_ANALYST_SYSTEM_PROMPT = `You are a professional data analyst assistant. Your goals:
|
|
37
|
-
1. Help users query, transform, and analyze data
|
|
38
|
-
2. Create clear visualizations and summaries
|
|
39
|
-
3. Identify trends, patterns, and anomalies
|
|
40
|
-
4. Explain findings in plain language
|
|
36
|
+
exports.DATA_ANALYST_SYSTEM_PROMPT = `You are a professional data analyst assistant. Your goals:
|
|
37
|
+
1. Help users query, transform, and analyze data
|
|
38
|
+
2. Create clear visualizations and summaries
|
|
39
|
+
3. Identify trends, patterns, and anomalies
|
|
40
|
+
4. Explain findings in plain language
|
|
41
41
|
Be precise with numbers, always cite your data source, and suggest next steps for deeper analysis.`;
|
|
42
42
|
function createDataAnalystConfig() {
|
|
43
43
|
return {
|
|
@@ -60,6 +60,10 @@ function createDataAnalystConfig() {
|
|
|
60
60
|
],
|
|
61
61
|
channels: [{ type: 'web', port: 3000 }],
|
|
62
62
|
memory: { shortTerm: true, longTerm: true },
|
|
63
|
+
dtv: {
|
|
64
|
+
trust: { level: 'sandbox' },
|
|
65
|
+
value: { metrics: ['queries_processed', 'insights_generated'] },
|
|
66
|
+
},
|
|
63
67
|
},
|
|
64
68
|
};
|
|
65
69
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.KNOWLEDGE_BASE_SYSTEM_PROMPT = void 0;
|
|
4
4
|
exports.createKnowledgeBaseConfig = createKnowledgeBaseConfig;
|
|
5
|
-
exports.KNOWLEDGE_BASE_SYSTEM_PROMPT = `You are a knowledge base assistant. Answer questions using the company documents
|
|
6
|
-
and knowledge provided to you. If you don't have enough information, say so honestly.
|
|
5
|
+
exports.KNOWLEDGE_BASE_SYSTEM_PROMPT = `You are a knowledge base assistant. Answer questions using the company documents
|
|
6
|
+
and knowledge provided to you. If you don't have enough information, say so honestly.
|
|
7
7
|
Always cite sources when possible. Be accurate and concise.`;
|
|
8
8
|
function createKnowledgeBaseConfig() {
|
|
9
9
|
return {
|
|
@@ -25,6 +25,10 @@ function createKnowledgeBaseConfig() {
|
|
|
25
25
|
],
|
|
26
26
|
channels: [{ type: 'web', port: 3000 }],
|
|
27
27
|
memory: { shortTerm: true, longTerm: { provider: 'deepbrain', collection: 'company-knowledge' } },
|
|
28
|
+
dtv: {
|
|
29
|
+
trust: { level: 'sandbox' },
|
|
30
|
+
value: { metrics: ['queries_answered', 'docs_indexed'] },
|
|
31
|
+
},
|
|
28
32
|
},
|
|
29
33
|
};
|
|
30
34
|
}
|
|
@@ -43,6 +43,14 @@ export declare function createSalesAssistantConfig(): {
|
|
|
43
43
|
shortTerm: boolean;
|
|
44
44
|
longTerm: boolean;
|
|
45
45
|
};
|
|
46
|
+
dtv: {
|
|
47
|
+
trust: {
|
|
48
|
+
level: "sandbox";
|
|
49
|
+
};
|
|
50
|
+
value: {
|
|
51
|
+
metrics: string[];
|
|
52
|
+
};
|
|
53
|
+
};
|
|
46
54
|
};
|
|
47
55
|
};
|
|
48
56
|
//# sourceMappingURL=sales-assistant.d.ts.map
|
|
@@ -43,10 +43,10 @@ class LeadCaptureSkill extends base_1.BaseSkill {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
exports.LeadCaptureSkill = LeadCaptureSkill;
|
|
46
|
-
exports.SALES_ASSISTANT_SYSTEM_PROMPT = `You are a professional sales assistant. Your goals:
|
|
47
|
-
1. Answer product questions accurately and enthusiastically
|
|
48
|
-
2. Capture leads by collecting name, email, and company info
|
|
49
|
-
3. Book appointments when prospects are ready
|
|
46
|
+
exports.SALES_ASSISTANT_SYSTEM_PROMPT = `You are a professional sales assistant. Your goals:
|
|
47
|
+
1. Answer product questions accurately and enthusiastically
|
|
48
|
+
2. Capture leads by collecting name, email, and company info
|
|
49
|
+
3. Book appointments when prospects are ready
|
|
50
50
|
Be friendly, persuasive but not pushy. Always provide value first.`;
|
|
51
51
|
function createSalesAssistantConfig() {
|
|
52
52
|
return {
|
|
@@ -69,6 +69,10 @@ function createSalesAssistantConfig() {
|
|
|
69
69
|
],
|
|
70
70
|
channels: [{ type: 'web', port: 3000 }],
|
|
71
71
|
memory: { shortTerm: true, longTerm: false },
|
|
72
|
+
dtv: {
|
|
73
|
+
trust: { level: 'sandbox' },
|
|
74
|
+
value: { metrics: ['leads_captured', 'appointments_booked'] },
|
|
75
|
+
},
|
|
72
76
|
},
|
|
73
77
|
};
|
|
74
78
|
}
|
|
@@ -45,6 +45,14 @@ export declare function createTeacherConfig(): {
|
|
|
45
45
|
shortTerm: boolean;
|
|
46
46
|
longTerm: boolean;
|
|
47
47
|
};
|
|
48
|
+
dtv: {
|
|
49
|
+
trust: {
|
|
50
|
+
level: "sandbox";
|
|
51
|
+
};
|
|
52
|
+
value: {
|
|
53
|
+
metrics: string[];
|
|
54
|
+
};
|
|
55
|
+
};
|
|
48
56
|
};
|
|
49
57
|
};
|
|
50
58
|
//# sourceMappingURL=teacher.d.ts.map
|
|
@@ -39,12 +39,12 @@ class ExplainSkill extends base_1.BaseSkill {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
exports.ExplainSkill = ExplainSkill;
|
|
42
|
-
exports.TEACHER_SYSTEM_PROMPT = `You are a patient and encouraging teacher assistant. Your goals:
|
|
43
|
-
1. Create engaging lesson plans tailored to student level
|
|
44
|
-
2. Generate quizzes and assessments with answer keys
|
|
45
|
-
3. Explain complex concepts using analogies and examples
|
|
46
|
-
4. Provide constructive feedback and encouragement
|
|
47
|
-
5. Adapt teaching style to different learning preferences
|
|
42
|
+
exports.TEACHER_SYSTEM_PROMPT = `You are a patient and encouraging teacher assistant. Your goals:
|
|
43
|
+
1. Create engaging lesson plans tailored to student level
|
|
44
|
+
2. Generate quizzes and assessments with answer keys
|
|
45
|
+
3. Explain complex concepts using analogies and examples
|
|
46
|
+
4. Provide constructive feedback and encouragement
|
|
47
|
+
5. Adapt teaching style to different learning preferences
|
|
48
48
|
Be patient, use clear language, and always check for understanding. Use the Socratic method when appropriate.`;
|
|
49
49
|
function createTeacherConfig() {
|
|
50
50
|
return {
|
|
@@ -68,6 +68,10 @@ function createTeacherConfig() {
|
|
|
68
68
|
],
|
|
69
69
|
channels: [{ type: 'web', port: 3000 }],
|
|
70
70
|
memory: { shortTerm: true, longTerm: true },
|
|
71
|
+
dtv: {
|
|
72
|
+
trust: { level: 'sandbox' },
|
|
73
|
+
value: { metrics: ['lessons_created', 'quizzes_generated', 'concepts_explained'] },
|
|
74
|
+
},
|
|
71
75
|
},
|
|
72
76
|
};
|
|
73
77
|
}
|