opc-agent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +179 -0
  3. package/README.zh-CN.md +126 -0
  4. package/dist/channels/index.d.ts +10 -0
  5. package/dist/channels/index.js +11 -0
  6. package/dist/channels/web.d.ts +12 -0
  7. package/dist/channels/web.js +81 -0
  8. package/dist/cli.d.ts +3 -0
  9. package/dist/cli.js +146 -0
  10. package/dist/core/agent.d.ts +28 -0
  11. package/dist/core/agent.js +100 -0
  12. package/dist/core/config.d.ts +4 -0
  13. package/dist/core/config.js +50 -0
  14. package/dist/core/runtime.d.ts +14 -0
  15. package/dist/core/runtime.js +54 -0
  16. package/dist/core/types.d.ts +58 -0
  17. package/dist/core/types.js +3 -0
  18. package/dist/dtv/data.d.ts +18 -0
  19. package/dist/dtv/data.js +25 -0
  20. package/dist/dtv/trust.d.ts +19 -0
  21. package/dist/dtv/trust.js +40 -0
  22. package/dist/dtv/value.d.ts +23 -0
  23. package/dist/dtv/value.js +38 -0
  24. package/dist/index.d.ts +16 -0
  25. package/dist/index.js +33 -0
  26. package/dist/memory/index.d.ts +11 -0
  27. package/dist/memory/index.js +33 -0
  28. package/dist/providers/index.d.ts +12 -0
  29. package/dist/providers/index.js +68 -0
  30. package/dist/schema/oad.d.ts +553 -0
  31. package/dist/schema/oad.js +61 -0
  32. package/dist/skills/base.d.ts +9 -0
  33. package/dist/skills/base.js +13 -0
  34. package/dist/skills/index.d.ts +10 -0
  35. package/dist/skills/index.js +25 -0
  36. package/dist/templates/customer-service.d.ts +56 -0
  37. package/dist/templates/customer-service.js +75 -0
  38. package/docs/api/oad-schema.md +64 -0
  39. package/docs/guide/concepts.md +51 -0
  40. package/docs/guide/getting-started.md +44 -0
  41. package/docs/guide/templates.md +28 -0
  42. package/package.json +37 -0
  43. package/src/channels/index.ts +15 -0
  44. package/src/channels/web.ts +85 -0
  45. package/src/cli.ts +131 -0
  46. package/src/core/agent.ts +116 -0
  47. package/src/core/config.ts +14 -0
  48. package/src/core/runtime.ts +57 -0
  49. package/src/core/types.ts +68 -0
  50. package/src/dtv/data.ts +29 -0
  51. package/src/dtv/trust.ts +43 -0
  52. package/src/dtv/value.ts +47 -0
  53. package/src/index.ts +16 -0
  54. package/src/memory/index.ts +34 -0
  55. package/src/providers/index.ts +44 -0
  56. package/src/schema/oad.ts +76 -0
  57. package/src/skills/base.ts +16 -0
  58. package/src/skills/index.ts +27 -0
  59. package/src/templates/customer-service.ts +80 -0
  60. package/templates/customer-service/README.md +22 -0
  61. package/templates/customer-service/oad.yaml +36 -0
  62. package/tests/agent.test.ts +72 -0
  63. package/tests/channel.test.ts +39 -0
  64. package/tests/oad.test.ts +68 -0
  65. package/tests/runtime.test.ts +42 -0
  66. package/tsconfig.json +19 -0
  67. package/vitest.config.ts +9 -0
package/dist/index.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUPPORTED_PROVIDERS = exports.createProvider = exports.MRGConfigReader = exports.ValueTracker = exports.TrustManager = exports.InMemoryStore = exports.SkillRegistry = exports.BaseSkill = exports.WebChannel = exports.BaseChannel = exports.OADSchema = exports.validateOAD = exports.loadOAD = exports.AgentRuntime = exports.BaseAgent = void 0;
4
+ // OPC Agent — Open Agent Framework
5
+ var agent_1 = require("./core/agent");
6
+ Object.defineProperty(exports, "BaseAgent", { enumerable: true, get: function () { return agent_1.BaseAgent; } });
7
+ var runtime_1 = require("./core/runtime");
8
+ Object.defineProperty(exports, "AgentRuntime", { enumerable: true, get: function () { return runtime_1.AgentRuntime; } });
9
+ var config_1 = require("./core/config");
10
+ Object.defineProperty(exports, "loadOAD", { enumerable: true, get: function () { return config_1.loadOAD; } });
11
+ Object.defineProperty(exports, "validateOAD", { enumerable: true, get: function () { return config_1.validateOAD; } });
12
+ var oad_1 = require("./schema/oad");
13
+ Object.defineProperty(exports, "OADSchema", { enumerable: true, get: function () { return oad_1.OADSchema; } });
14
+ var channels_1 = require("./channels");
15
+ Object.defineProperty(exports, "BaseChannel", { enumerable: true, get: function () { return channels_1.BaseChannel; } });
16
+ var web_1 = require("./channels/web");
17
+ Object.defineProperty(exports, "WebChannel", { enumerable: true, get: function () { return web_1.WebChannel; } });
18
+ var base_1 = require("./skills/base");
19
+ Object.defineProperty(exports, "BaseSkill", { enumerable: true, get: function () { return base_1.BaseSkill; } });
20
+ var skills_1 = require("./skills");
21
+ Object.defineProperty(exports, "SkillRegistry", { enumerable: true, get: function () { return skills_1.SkillRegistry; } });
22
+ var memory_1 = require("./memory");
23
+ Object.defineProperty(exports, "InMemoryStore", { enumerable: true, get: function () { return memory_1.InMemoryStore; } });
24
+ var trust_1 = require("./dtv/trust");
25
+ Object.defineProperty(exports, "TrustManager", { enumerable: true, get: function () { return trust_1.TrustManager; } });
26
+ var value_1 = require("./dtv/value");
27
+ Object.defineProperty(exports, "ValueTracker", { enumerable: true, get: function () { return value_1.ValueTracker; } });
28
+ var data_1 = require("./dtv/data");
29
+ Object.defineProperty(exports, "MRGConfigReader", { enumerable: true, get: function () { return data_1.MRGConfigReader; } });
30
+ var providers_1 = require("./providers");
31
+ Object.defineProperty(exports, "createProvider", { enumerable: true, get: function () { return providers_1.createProvider; } });
32
+ Object.defineProperty(exports, "SUPPORTED_PROVIDERS", { enumerable: true, get: function () { return providers_1.SUPPORTED_PROVIDERS; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ import type { Message, MemoryStore } from '../core/types';
2
+ export declare class InMemoryStore implements MemoryStore {
3
+ private store;
4
+ private conversations;
5
+ get(key: string): Promise<unknown>;
6
+ set(key: string, value: unknown): Promise<void>;
7
+ getConversation(sessionId: string): Promise<Message[]>;
8
+ addMessage(sessionId: string, message: Message): Promise<void>;
9
+ clear(sessionId?: string): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InMemoryStore = void 0;
4
+ class InMemoryStore {
5
+ store = new Map();
6
+ conversations = new Map();
7
+ async get(key) {
8
+ return this.store.get(key);
9
+ }
10
+ async set(key, value) {
11
+ this.store.set(key, value);
12
+ }
13
+ async getConversation(sessionId) {
14
+ return this.conversations.get(sessionId) ?? [];
15
+ }
16
+ async addMessage(sessionId, message) {
17
+ if (!this.conversations.has(sessionId)) {
18
+ this.conversations.set(sessionId, []);
19
+ }
20
+ this.conversations.get(sessionId).push(message);
21
+ }
22
+ async clear(sessionId) {
23
+ if (sessionId) {
24
+ this.conversations.delete(sessionId);
25
+ }
26
+ else {
27
+ this.store.clear();
28
+ this.conversations.clear();
29
+ }
30
+ }
31
+ }
32
+ exports.InMemoryStore = InMemoryStore;
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,12 @@
1
+ import type { Message } from '../core/types';
2
+ /**
3
+ * LLM Provider interface — abstracts different LLM backends.
4
+ * Uses agentkits when available, falls back to stub.
5
+ */
6
+ export interface LLMProvider {
7
+ name: string;
8
+ chat(messages: Message[], systemPrompt?: string): Promise<string>;
9
+ }
10
+ export declare function createProvider(name?: string, model?: string): LLMProvider;
11
+ export declare const SUPPORTED_PROVIDERS: readonly ["openai", "deepseek", "qwen"];
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,68 @@
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.SUPPORTED_PROVIDERS = void 0;
37
+ exports.createProvider = createProvider;
38
+ class StubProvider {
39
+ name;
40
+ model;
41
+ constructor(name, model) {
42
+ this.name = name;
43
+ this.model = model;
44
+ }
45
+ async chat(messages, systemPrompt) {
46
+ // Try agentkits dynamic import
47
+ try {
48
+ const ak = await Promise.resolve().then(() => __importStar(require('agentkits')));
49
+ const chat = ak.createChat({ provider: this.name, model: this.model });
50
+ const formatted = [
51
+ ...(systemPrompt ? [{ role: 'system', content: systemPrompt }] : []),
52
+ ...messages.map((m) => ({ role: m.role, content: m.content })),
53
+ ];
54
+ const result = await chat.send(formatted);
55
+ return typeof result === 'string' ? result : JSON.stringify(result);
56
+ }
57
+ catch {
58
+ // Stub fallback when agentkits is not available
59
+ const lastMessage = messages[messages.length - 1];
60
+ return `[${this.name}/${this.model} stub] Received: "${lastMessage?.content ?? ''}"`;
61
+ }
62
+ }
63
+ }
64
+ function createProvider(name = 'deepseek', model = 'deepseek-chat') {
65
+ return new StubProvider(name, model);
66
+ }
67
+ exports.SUPPORTED_PROVIDERS = ['openai', 'deepseek', 'qwen'];
68
+ //# sourceMappingURL=index.js.map