opc-agent 1.1.1 → 1.1.3
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 +51 -51
- package/CONTRIBUTING.md +75 -75
- package/README.md +222 -126
- package/README.zh-CN.md +129 -80
- package/dist/channels/web.js +256 -256
- package/dist/deploy/hermes.js +22 -22
- package/dist/deploy/openclaw.js +31 -31
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.js +148 -13
- package/dist/schema/oad.d.ts +3 -3
- package/dist/templates/code-reviewer.js +5 -5
- package/dist/templates/customer-service.js +2 -2
- package/dist/templates/data-analyst.js +5 -5
- package/dist/templates/knowledge-base.js +2 -2
- package/dist/templates/sales-assistant.js +4 -4
- package/dist/templates/teacher.js +6 -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 -160
- package/src/channels/telegram.ts +90 -90
- package/src/channels/voice.ts +106 -106
- package/src/channels/web.ts +596 -596
- package/src/channels/webhook.ts +199 -199
- package/src/channels/websocket.ts +87 -87
- package/src/channels/wechat.ts +149 -149
- 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/errors.ts +148 -148
- package/src/core/hitl.ts +138 -138
- package/src/core/knowledge.ts +210 -210
- package/src/core/logger.ts +57 -57
- package/src/core/orchestrator.ts +215 -215
- package/src/core/performance.ts +187 -187
- package/src/core/rate-limiter.ts +128 -128
- package/src/core/room.ts +109 -109
- package/src/core/runtime.ts +152 -152
- 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 -200
- package/src/dtv/data.ts +29 -29
- package/src/dtv/trust.ts +43 -43
- package/src/dtv/value.ts +47 -47
- package/src/i18n/index.ts +216 -216
- package/src/index.ts +110 -110
- package/src/marketplace/index.ts +223 -223
- 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 +322 -183
- package/src/schema/oad.ts +155 -155
- 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 -34
- package/src/templates/customer-service.ts +80 -80
- package/src/templates/data-analyst.ts +70 -70
- package/src/templates/executive-assistant.ts +71 -71
- package/src/templates/financial-advisor.ts +60 -60
- package/src/templates/knowledge-base.ts +31 -31
- package/src/templates/legal-assistant.ts +71 -71
- package/src/templates/sales-assistant.ts +79 -79
- package/src/templates/teacher.ts +79 -79
- 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/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/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/CHANGELOG.md
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to OPC Agent will be documented in this file.
|
|
4
|
-
|
|
5
|
-
## [1.1.0] - 2026-04-16
|
|
6
|
-
|
|
7
|
-
### Added
|
|
8
|
-
- **Feishu/Lark Channel**: Full Feishu bot integration with event subscription webhook, tenant access token caching, text & interactive card messaging, group + P2P support. Also works with Lark international via `apiBase` config. (`src/channels/feishu.ts`)
|
|
9
|
-
- **Discord Channel**: Discord bot via Gateway WebSocket with auto-reconnect, heartbeat, message content intent, and 2000-char message splitting. (`src/channels/discord.ts`)
|
|
10
|
-
- **ProcessWatcher**: Background process output monitoring with regex pattern matching — watch stdout/stderr for specific patterns (errors, "server ready", build completion) and get instant callbacks without polling. Supports `once` patterns, match history, and dynamic pattern add/remove. Inspired by Hermes Agent's `watch_patterns`. (`src/core/watch.ts`)
|
|
11
|
-
|
|
12
|
-
## [0.2.0] - 2026-04-15
|
|
13
|
-
|
|
14
|
-
### Added
|
|
15
|
-
- **DeepBrain Integration**: Optional long-term memory backend with semantic search. Config via `memory.longTerm.provider: deepbrain`. Falls back to in-memory if not installed.
|
|
16
|
-
- **Telegram Channel**: Basic webhook handler for Telegram Bot API (`src/channels/telegram.ts`).
|
|
17
|
-
- **WebSocket Channel**: Real-time bidirectional communication with broadcast (`src/channels/websocket.ts`).
|
|
18
|
-
- **Sales Assistant Template**: Product Q&A, lead capture, appointment booking.
|
|
19
|
-
- **Knowledge Base Template**: RAG with DeepBrain for answering from company docs.
|
|
20
|
-
- **Code Reviewer Template**: Bug detection, style checking, severity ratings.
|
|
21
|
-
- **Skill Marketplace Stub**: `opc publish` validates OAD and generates manifest. `opc search` placeholder.
|
|
22
|
-
- **OAD Marketplace Fields**: `pricing` (free/freemium/paid/enterprise) and `tags` in marketplace config.
|
|
23
|
-
- **Context Size Guard**: Auto-truncate tool outputs exceeding 5000 characters.
|
|
24
|
-
- **Conversation History Limit**: Configurable limit (default 50 messages).
|
|
25
|
-
- **Graceful Shutdown**: Handles SIGINT/SIGTERM with cleanup.
|
|
26
|
-
- **Structured Logging**: Logger with debug/info/warn/error levels.
|
|
27
|
-
- **Interactive CLI Init**: `opc init` with prompts and template selection.
|
|
28
|
-
- **Dev Mode**: `opc dev` watches files and hot-reloads agent on changes.
|
|
29
|
-
- **Agent Info Command**: `opc info` displays agent details from OAD.
|
|
30
|
-
- **Colorful CLI Output**: Status indicators and colored text throughout CLI.
|
|
31
|
-
- **CONTRIBUTING.md**: Contribution guidelines.
|
|
32
|
-
- **CHANGELOG.md**: This file.
|
|
33
|
-
|
|
34
|
-
### Changed
|
|
35
|
-
- OAD `memory.longTerm` now accepts boolean or object with provider config.
|
|
36
|
-
- OAD `channels.type` now includes `telegram`.
|
|
37
|
-
- CLI version bumped to 0.2.0.
|
|
38
|
-
|
|
39
|
-
## [0.1.0] - 2026-04-14
|
|
40
|
-
|
|
41
|
-
### Added
|
|
42
|
-
- Initial release
|
|
43
|
-
- BaseAgent with lifecycle management
|
|
44
|
-
- AgentRuntime for config-driven setup
|
|
45
|
-
- OAD Schema v1 with Zod validation
|
|
46
|
-
- Web channel (Express)
|
|
47
|
-
- InMemoryStore
|
|
48
|
-
- Skill system (BaseSkill, SkillRegistry)
|
|
49
|
-
- DTV framework (Trust, Value, Data)
|
|
50
|
-
- Customer Service template
|
|
51
|
-
- CLI: init, create, build, test, run, publish
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to OPC Agent will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.1.0] - 2026-04-16
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Feishu/Lark Channel**: Full Feishu bot integration with event subscription webhook, tenant access token caching, text & interactive card messaging, group + P2P support. Also works with Lark international via `apiBase` config. (`src/channels/feishu.ts`)
|
|
9
|
+
- **Discord Channel**: Discord bot via Gateway WebSocket with auto-reconnect, heartbeat, message content intent, and 2000-char message splitting. (`src/channels/discord.ts`)
|
|
10
|
+
- **ProcessWatcher**: Background process output monitoring with regex pattern matching — watch stdout/stderr for specific patterns (errors, "server ready", build completion) and get instant callbacks without polling. Supports `once` patterns, match history, and dynamic pattern add/remove. Inspired by Hermes Agent's `watch_patterns`. (`src/core/watch.ts`)
|
|
11
|
+
|
|
12
|
+
## [0.2.0] - 2026-04-15
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- **DeepBrain Integration**: Optional long-term memory backend with semantic search. Config via `memory.longTerm.provider: deepbrain`. Falls back to in-memory if not installed.
|
|
16
|
+
- **Telegram Channel**: Basic webhook handler for Telegram Bot API (`src/channels/telegram.ts`).
|
|
17
|
+
- **WebSocket Channel**: Real-time bidirectional communication with broadcast (`src/channels/websocket.ts`).
|
|
18
|
+
- **Sales Assistant Template**: Product Q&A, lead capture, appointment booking.
|
|
19
|
+
- **Knowledge Base Template**: RAG with DeepBrain for answering from company docs.
|
|
20
|
+
- **Code Reviewer Template**: Bug detection, style checking, severity ratings.
|
|
21
|
+
- **Skill Marketplace Stub**: `opc publish` validates OAD and generates manifest. `opc search` placeholder.
|
|
22
|
+
- **OAD Marketplace Fields**: `pricing` (free/freemium/paid/enterprise) and `tags` in marketplace config.
|
|
23
|
+
- **Context Size Guard**: Auto-truncate tool outputs exceeding 5000 characters.
|
|
24
|
+
- **Conversation History Limit**: Configurable limit (default 50 messages).
|
|
25
|
+
- **Graceful Shutdown**: Handles SIGINT/SIGTERM with cleanup.
|
|
26
|
+
- **Structured Logging**: Logger with debug/info/warn/error levels.
|
|
27
|
+
- **Interactive CLI Init**: `opc init` with prompts and template selection.
|
|
28
|
+
- **Dev Mode**: `opc dev` watches files and hot-reloads agent on changes.
|
|
29
|
+
- **Agent Info Command**: `opc info` displays agent details from OAD.
|
|
30
|
+
- **Colorful CLI Output**: Status indicators and colored text throughout CLI.
|
|
31
|
+
- **CONTRIBUTING.md**: Contribution guidelines.
|
|
32
|
+
- **CHANGELOG.md**: This file.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
- OAD `memory.longTerm` now accepts boolean or object with provider config.
|
|
36
|
+
- OAD `channels.type` now includes `telegram`.
|
|
37
|
+
- CLI version bumped to 0.2.0.
|
|
38
|
+
|
|
39
|
+
## [0.1.0] - 2026-04-14
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
- Initial release
|
|
43
|
+
- BaseAgent with lifecycle management
|
|
44
|
+
- AgentRuntime for config-driven setup
|
|
45
|
+
- OAD Schema v1 with Zod validation
|
|
46
|
+
- Web channel (Express)
|
|
47
|
+
- InMemoryStore
|
|
48
|
+
- Skill system (BaseSkill, SkillRegistry)
|
|
49
|
+
- DTV framework (Trust, Value, Data)
|
|
50
|
+
- Customer Service template
|
|
51
|
+
- CLI: init, create, build, test, run, publish
|
package/CONTRIBUTING.md
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
# Contributing to OPC Agent
|
|
2
|
-
|
|
3
|
-
Thank you for your interest in contributing to OPC Agent! 🎉
|
|
4
|
-
|
|
5
|
-
## Getting Started
|
|
6
|
-
|
|
7
|
-
1. Fork the repository
|
|
8
|
-
2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/opc-agent.git`
|
|
9
|
-
3. Install dependencies: `npm install`
|
|
10
|
-
4. Create a branch: `git checkout -b feature/my-feature`
|
|
11
|
-
|
|
12
|
-
## Development
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
# Build
|
|
16
|
-
npm run build
|
|
17
|
-
|
|
18
|
-
# Run tests
|
|
19
|
-
npm test
|
|
20
|
-
|
|
21
|
-
# Type check
|
|
22
|
-
npm run lint
|
|
23
|
-
|
|
24
|
-
# Watch mode
|
|
25
|
-
npm run dev
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Project Structure
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
src/
|
|
32
|
-
├── core/ # Agent, Runtime, Config, Logger, Types
|
|
33
|
-
├── channels/ # Web, WebSocket, Telegram channels
|
|
34
|
-
├── memory/ # InMemoryStore, DeepBrainMemoryStore
|
|
35
|
-
├── providers/ # LLM provider abstraction
|
|
36
|
-
├── schema/ # OAD schema (Zod)
|
|
37
|
-
├── skills/ # BaseSkill, SkillRegistry
|
|
38
|
-
├── templates/ # Agent templates
|
|
39
|
-
├── dtv/ # Data, Trust, Value framework
|
|
40
|
-
├── cli.ts # CLI entry point
|
|
41
|
-
└── index.ts # Public API exports
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Guidelines
|
|
45
|
-
|
|
46
|
-
- **TypeScript**: All code must be TypeScript with strict mode
|
|
47
|
-
- **Tests**: Add tests for new features in `tests/`
|
|
48
|
-
- **Commits**: Use conventional commits (`feat:`, `fix:`, `docs:`, etc.)
|
|
49
|
-
- **OAD Compatibility**: Changes to OAD schema must be backward-compatible
|
|
50
|
-
- **No Breaking Changes** without major version bump
|
|
51
|
-
|
|
52
|
-
## Adding a Template
|
|
53
|
-
|
|
54
|
-
1. Create `src/templates/my-template.ts` with config factory function
|
|
55
|
-
2. Create `templates/my-template/oad.yaml` and `README.md`
|
|
56
|
-
3. Register in `src/cli.ts` TEMPLATES map
|
|
57
|
-
4. Add tests
|
|
58
|
-
|
|
59
|
-
## Adding a Channel
|
|
60
|
-
|
|
61
|
-
1. Create `src/channels/my-channel.ts` extending `BaseChannel`
|
|
62
|
-
2. Add channel type to OAD schema in `src/schema/oad.ts`
|
|
63
|
-
3. Wire up in `src/core/runtime.ts`
|
|
64
|
-
4. Export from `src/index.ts`
|
|
65
|
-
|
|
66
|
-
## Pull Requests
|
|
67
|
-
|
|
68
|
-
1. Ensure all tests pass: `npm test`
|
|
69
|
-
2. Ensure types check: `npm run lint`
|
|
70
|
-
3. Write a clear PR description
|
|
71
|
-
4. Reference any related issues
|
|
72
|
-
|
|
73
|
-
## License
|
|
74
|
-
|
|
75
|
-
By contributing, you agree that your contributions will be licensed under Apache-2.0.
|
|
1
|
+
# Contributing to OPC Agent
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing to OPC Agent! 🎉
|
|
4
|
+
|
|
5
|
+
## Getting Started
|
|
6
|
+
|
|
7
|
+
1. Fork the repository
|
|
8
|
+
2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/opc-agent.git`
|
|
9
|
+
3. Install dependencies: `npm install`
|
|
10
|
+
4. Create a branch: `git checkout -b feature/my-feature`
|
|
11
|
+
|
|
12
|
+
## Development
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Build
|
|
16
|
+
npm run build
|
|
17
|
+
|
|
18
|
+
# Run tests
|
|
19
|
+
npm test
|
|
20
|
+
|
|
21
|
+
# Type check
|
|
22
|
+
npm run lint
|
|
23
|
+
|
|
24
|
+
# Watch mode
|
|
25
|
+
npm run dev
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Project Structure
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
src/
|
|
32
|
+
├── core/ # Agent, Runtime, Config, Logger, Types
|
|
33
|
+
├── channels/ # Web, WebSocket, Telegram channels
|
|
34
|
+
├── memory/ # InMemoryStore, DeepBrainMemoryStore
|
|
35
|
+
├── providers/ # LLM provider abstraction
|
|
36
|
+
├── schema/ # OAD schema (Zod)
|
|
37
|
+
├── skills/ # BaseSkill, SkillRegistry
|
|
38
|
+
├── templates/ # Agent templates
|
|
39
|
+
├── dtv/ # Data, Trust, Value framework
|
|
40
|
+
├── cli.ts # CLI entry point
|
|
41
|
+
└── index.ts # Public API exports
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Guidelines
|
|
45
|
+
|
|
46
|
+
- **TypeScript**: All code must be TypeScript with strict mode
|
|
47
|
+
- **Tests**: Add tests for new features in `tests/`
|
|
48
|
+
- **Commits**: Use conventional commits (`feat:`, `fix:`, `docs:`, etc.)
|
|
49
|
+
- **OAD Compatibility**: Changes to OAD schema must be backward-compatible
|
|
50
|
+
- **No Breaking Changes** without major version bump
|
|
51
|
+
|
|
52
|
+
## Adding a Template
|
|
53
|
+
|
|
54
|
+
1. Create `src/templates/my-template.ts` with config factory function
|
|
55
|
+
2. Create `templates/my-template/oad.yaml` and `README.md`
|
|
56
|
+
3. Register in `src/cli.ts` TEMPLATES map
|
|
57
|
+
4. Add tests
|
|
58
|
+
|
|
59
|
+
## Adding a Channel
|
|
60
|
+
|
|
61
|
+
1. Create `src/channels/my-channel.ts` extending `BaseChannel`
|
|
62
|
+
2. Add channel type to OAD schema in `src/schema/oad.ts`
|
|
63
|
+
3. Wire up in `src/core/runtime.ts`
|
|
64
|
+
4. Export from `src/index.ts`
|
|
65
|
+
|
|
66
|
+
## Pull Requests
|
|
67
|
+
|
|
68
|
+
1. Ensure all tests pass: `npm test`
|
|
69
|
+
2. Ensure types check: `npm run lint`
|
|
70
|
+
3. Write a clear PR description
|
|
71
|
+
4. Reference any related issues
|
|
72
|
+
|
|
73
|
+
## License
|
|
74
|
+
|
|
75
|
+
By contributing, you agree that your contributions will be licensed under Apache-2.0.
|