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.
Files changed (192) hide show
  1. package/CHANGELOG.md +69 -23
  2. package/CONTRIBUTING.md +60 -21
  3. package/README.md +358 -235
  4. package/README.zh-CN.md +415 -415
  5. package/dist/channels/slack.js +10 -93
  6. package/dist/channels/web.d.ts +0 -10
  7. package/dist/channels/web.js +2 -33
  8. package/dist/cli.js +60 -255
  9. package/dist/core/dashboard.d.ts +35 -0
  10. package/dist/core/dashboard.js +157 -0
  11. package/dist/core/fast-mode.d.ts +27 -0
  12. package/dist/core/fast-mode.js +59 -0
  13. package/dist/core/priority.d.ts +52 -0
  14. package/dist/core/priority.js +102 -0
  15. package/dist/core/runtime.d.ts +0 -4
  16. package/dist/core/runtime.js +0 -27
  17. package/dist/deploy/hermes.js +22 -22
  18. package/dist/deploy/openclaw.js +40 -31
  19. package/dist/index.d.ts +14 -3
  20. package/dist/index.js +20 -6
  21. package/dist/memory/cloud-storage.d.ts +40 -0
  22. package/dist/memory/cloud-storage.js +211 -0
  23. package/dist/providers/index.d.ts +1 -1
  24. package/dist/providers/index.js +1 -7
  25. package/dist/schema/oad.d.ts +2 -1
  26. package/dist/templates/code-reviewer.d.ts +8 -0
  27. package/dist/templates/code-reviewer.js +9 -5
  28. package/dist/templates/customer-service.d.ts +8 -0
  29. package/dist/templates/customer-service.js +6 -2
  30. package/dist/templates/data-analyst.d.ts +8 -0
  31. package/dist/templates/data-analyst.js +9 -5
  32. package/dist/templates/knowledge-base.d.ts +8 -0
  33. package/dist/templates/knowledge-base.js +6 -2
  34. package/dist/templates/sales-assistant.d.ts +8 -0
  35. package/dist/templates/sales-assistant.js +8 -4
  36. package/dist/templates/teacher.d.ts +8 -0
  37. package/dist/templates/teacher.js +10 -6
  38. package/docs/.vitepress/config.ts +103 -103
  39. package/docs/api/cli.md +48 -48
  40. package/docs/api/oad-schema.md +64 -64
  41. package/docs/api/sdk.md +80 -80
  42. package/docs/guide/concepts.md +51 -51
  43. package/docs/guide/configuration.md +79 -79
  44. package/docs/guide/deployment.md +42 -42
  45. package/docs/guide/getting-started.md +44 -44
  46. package/docs/guide/templates.md +28 -28
  47. package/docs/guide/testing.md +84 -84
  48. package/docs/index.md +27 -27
  49. package/docs/zh/api/cli.md +54 -54
  50. package/docs/zh/api/oad-schema.md +87 -87
  51. package/docs/zh/api/sdk.md +102 -102
  52. package/docs/zh/guide/concepts.md +104 -104
  53. package/docs/zh/guide/configuration.md +135 -135
  54. package/docs/zh/guide/deployment.md +81 -81
  55. package/docs/zh/guide/getting-started.md +82 -82
  56. package/docs/zh/guide/templates.md +84 -84
  57. package/docs/zh/guide/testing.md +88 -88
  58. package/docs/zh/index.md +27 -27
  59. package/examples/customer-service-demo/README.md +90 -90
  60. package/examples/customer-service-demo/oad.yaml +107 -107
  61. package/package.json +1 -1
  62. package/src/analytics/index.ts +66 -66
  63. package/src/channels/discord.ts +192 -192
  64. package/src/channels/email.ts +177 -177
  65. package/src/channels/feishu.ts +236 -236
  66. package/src/channels/index.ts +15 -15
  67. package/src/channels/slack.ts +160 -217
  68. package/src/channels/telegram.ts +90 -90
  69. package/src/channels/voice.ts +106 -106
  70. package/src/channels/web.ts +2 -38
  71. package/src/channels/webhook.ts +199 -199
  72. package/src/channels/websocket.ts +87 -87
  73. package/src/channels/wechat.ts +149 -149
  74. package/src/cli.ts +58 -282
  75. package/src/core/a2a.ts +143 -143
  76. package/src/core/agent.ts +152 -152
  77. package/src/core/analytics-engine.ts +186 -186
  78. package/src/core/auth.ts +57 -57
  79. package/src/core/cache.ts +141 -141
  80. package/src/core/compose.ts +77 -77
  81. package/src/core/config.ts +14 -14
  82. package/src/core/dashboard.ts +219 -0
  83. package/src/core/errors.ts +148 -148
  84. package/src/core/fast-mode.ts +75 -0
  85. package/src/core/hitl.ts +138 -138
  86. package/src/core/logger.ts +57 -57
  87. package/src/core/orchestrator.ts +215 -215
  88. package/src/core/performance.ts +187 -187
  89. package/src/core/priority.ts +140 -0
  90. package/src/core/rate-limiter.ts +128 -128
  91. package/src/core/room.ts +109 -109
  92. package/src/core/runtime.ts +152 -183
  93. package/src/core/sandbox.ts +101 -101
  94. package/src/core/security.ts +171 -171
  95. package/src/core/types.ts +68 -68
  96. package/src/core/versioning.ts +106 -106
  97. package/src/core/watch.ts +178 -178
  98. package/src/core/workflow.ts +235 -235
  99. package/src/deploy/hermes.ts +156 -156
  100. package/src/deploy/openclaw.ts +200 -190
  101. package/src/dtv/data.ts +29 -0
  102. package/src/dtv/trust.ts +43 -0
  103. package/src/dtv/value.ts +47 -0
  104. package/src/i18n/index.ts +216 -216
  105. package/src/index.ts +16 -3
  106. package/src/marketplace/index.ts +223 -0
  107. package/src/memory/cloud-storage.ts +217 -0
  108. package/src/memory/deepbrain.ts +108 -108
  109. package/src/memory/index.ts +34 -34
  110. package/src/plugins/index.ts +208 -208
  111. package/src/providers/index.ts +1 -9
  112. package/src/schema/oad.ts +155 -154
  113. package/src/skills/base.ts +16 -16
  114. package/src/skills/document.ts +100 -100
  115. package/src/skills/http.ts +35 -35
  116. package/src/skills/index.ts +27 -27
  117. package/src/skills/scheduler.ts +80 -80
  118. package/src/skills/webhook-trigger.ts +59 -59
  119. package/src/templates/code-reviewer.ts +34 -30
  120. package/src/templates/customer-service.ts +80 -76
  121. package/src/templates/data-analyst.ts +70 -66
  122. package/src/templates/executive-assistant.ts +71 -71
  123. package/src/templates/financial-advisor.ts +60 -60
  124. package/src/templates/knowledge-base.ts +31 -27
  125. package/src/templates/legal-assistant.ts +71 -71
  126. package/src/templates/sales-assistant.ts +79 -75
  127. package/src/templates/teacher.ts +79 -75
  128. package/src/testing/index.ts +181 -181
  129. package/src/tools/calculator.ts +73 -73
  130. package/src/tools/datetime.ts +149 -149
  131. package/src/tools/json-transform.ts +187 -187
  132. package/src/tools/mcp.ts +76 -76
  133. package/src/tools/text-analysis.ts +116 -116
  134. package/templates/Dockerfile +15 -15
  135. package/templates/code-reviewer/README.md +27 -27
  136. package/templates/code-reviewer/oad.yaml +41 -41
  137. package/templates/customer-service/README.md +22 -22
  138. package/templates/customer-service/oad.yaml +36 -36
  139. package/templates/docker-compose.yml +21 -21
  140. package/templates/ecommerce-assistant/README.md +45 -45
  141. package/templates/ecommerce-assistant/oad.yaml +47 -47
  142. package/templates/knowledge-base/README.md +28 -28
  143. package/templates/knowledge-base/oad.yaml +38 -38
  144. package/templates/sales-assistant/README.md +26 -26
  145. package/templates/sales-assistant/oad.yaml +43 -43
  146. package/templates/tech-support/README.md +43 -43
  147. package/templates/tech-support/oad.yaml +45 -45
  148. package/tests/a2a.test.ts +66 -66
  149. package/tests/agent.test.ts +72 -72
  150. package/tests/analytics.test.ts +50 -50
  151. package/tests/channel.test.ts +39 -39
  152. package/tests/e2e.test.ts +134 -134
  153. package/tests/errors.test.ts +83 -83
  154. package/tests/hitl.test.ts +71 -71
  155. package/tests/i18n.test.ts +41 -41
  156. package/tests/mcp.test.ts +54 -54
  157. package/tests/oad.test.ts +68 -68
  158. package/tests/performance.test.ts +115 -115
  159. package/tests/plugin.test.ts +74 -74
  160. package/tests/room.test.ts +106 -106
  161. package/tests/runtime.test.ts +42 -42
  162. package/tests/sandbox.test.ts +46 -46
  163. package/tests/security.test.ts +60 -60
  164. package/tests/templates.test.ts +77 -77
  165. package/tests/v070.test.ts +76 -76
  166. package/tests/versioning.test.ts +75 -75
  167. package/tests/voice.test.ts +61 -61
  168. package/tests/webhook.test.ts +29 -29
  169. package/tests/workflow.test.ts +143 -143
  170. package/tsconfig.json +19 -19
  171. package/vitest.config.ts +9 -9
  172. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
  173. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  174. package/.github/PULL_REQUEST_TEMPLATE.md +0 -13
  175. package/.github/workflows/ci.yml +0 -24
  176. package/dist/traces/index.d.ts +0 -49
  177. package/dist/traces/index.js +0 -102
  178. package/examples/README.md +0 -22
  179. package/examples/basic-agent.ts +0 -90
  180. package/examples/brain-integration.ts +0 -71
  181. package/examples/multi-channel.ts +0 -74
  182. package/src/traces/index.ts +0 -132
  183. package/test-agent/Dockerfile +0 -9
  184. package/test-agent/README.md +0 -50
  185. package/test-agent/agent.yaml +0 -23
  186. package/test-agent/docker-compose.yml +0 -11
  187. package/test-agent/oad.yaml +0 -31
  188. package/test-agent/package-lock.json +0 -1492
  189. package/test-agent/package.json +0 -18
  190. package/test-agent/src/index.ts +0 -24
  191. package/test-agent/src/skills/echo.ts +0 -15
  192. package/test-agent/tsconfig.json +0 -25
package/CHANGELOG.md CHANGED
@@ -1,23 +1,69 @@
1
- # Changelog
2
-
3
- ## 1.4.0 (2026-04-18)
4
- - feat: wire Analytics into AgentRuntime (message timing, skill usage, error tracking)
5
- - feat: expose analytics snapshot on /health and /api/dashboard endpoints
6
- - feat: enhanced /health endpoint with agent name, version, uptime, memory type, skills, channels
7
- - feat: Slack channel — real Events API webhook server + chat.postMessage via fetch
8
- - feat: WebChannel metadata setters (version, memory type, skills, channels, analytics provider)
9
- - feat: AgentRuntime.getAnalytics() and getConfig() accessors
10
-
11
- ## 1.3.1 (2026-04-17)
12
- - fix: remove residual DTV/marketplace references
13
- - fix: duplicate WatchPattern export
14
-
15
- ## 1.3.0 (2026-04-17)
16
- - feat: Traces collection (OpenTelemetry-style)
17
- - feat: DeepBrain exporter
18
- - feat: brain/logs/score CLI commands
19
-
20
- ## 1.2.0
21
- - Initial public release
22
- - 11 channels, plugins, analytics
23
- - Declarative OAD configuration
1
+ # Changelog
2
+
3
+ All notable changes to OPC Agent will be documented in this file.
4
+
5
+ ## [1.4.0] - 2026-04-19
6
+
7
+ ### Added
8
+ - **Fast Mode Router**: Higher-level fast mode abstraction (`FastModeRouter`) for routing requests through priority queues. Supports model pattern matching, turbo/fast/standard tiers, endpoint rewriting (`/fast` suffix or `?priority=` query param), enable/disable toggle, and built-in latency saving metrics tracking. (`src/core/fast-mode.ts`)
9
+ - **Cloud Memory Backend**: Fetch-based cloud storage backend (`CloudMemoryBackend`) supporting S3, GCS, and Azure Blob — no SDK dependencies. Provides `upload`, `download`, `list`, `delete`, and bidirectional `sync` with local directories. Implements simplified AWS Signature v4, GCS Bearer, and Azure SharedKey auth headers. (`src/memory/cloud-storage.ts`)
10
+
11
+ ## [1.3.0] - 2026-04-18
12
+
13
+ ### Added
14
+ - **Local Web Dashboard**: Lightweight Express-based web dashboard (`Dashboard`) for monitoring agent state locally. Provides REST API endpoints (`/api/health`, `/api/state`, `/api/sessions`, `/api/tools`, `/api/channels`) and a built-in HTML UI with real-time polling. Track sessions, tool invocations, and channel stats. Binds to `127.0.0.1:4100` by default for security. (`src/core/dashboard.ts`)
15
+ - **Priority/Fast Mode**: Provider-aware priority routing (`PriorityRouter`) for OpenAI, Anthropic, and Google. Toggle between `standard`, `fast`, and `batch` tiers at runtime. Automatically injects provider-specific priority headers (e.g., `X-OpenAI-Processing-Priority`) for eligible models. Supports per-provider endpoint overrides and model pattern matching. (`src/core/priority.ts`)
16
+
17
+ ## [1.2.0] - 2026-04-17
18
+
19
+ ### Added
20
+ - **Tool Gateway**: Managed tool gateway (`ToolGateway`) that wraps multiple tool providers (web-search, image-gen, tts, browser) behind a single authenticated endpoint — no separate API keys needed. Auto-discovers available tools from gateway, falls back to defaults. Gateway tools implement `MCPTool` interface for seamless registry integration. (`src/tools/gateway.ts`)
21
+ - **Streaming Support**: SSE-based streaming for real-time agent responses. `StreamingManager` with `createStream()` / `writeChunk()` / `endStream()`. `StreamableResponse` with backpressure handling, event emission, and SSE pipe utility for Express-style HTTP responses. Channels can opt in via `supportsStreaming: true`. (`src/core/streaming.ts`)
22
+
23
+ ## [1.1.0] - 2026-04-16
24
+
25
+ ### Added
26
+ - **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`)
27
+ - **Discord Channel**: Discord bot via Gateway WebSocket with auto-reconnect, heartbeat, message content intent, and 2000-char message splitting. (`src/channels/discord.ts`)
28
+ - **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`)
29
+
30
+ ## [0.2.0] - 2026-04-15
31
+
32
+ ### Added
33
+ - **DeepBrain Integration**: Optional long-term memory backend with semantic search. Config via `memory.longTerm.provider: deepbrain`. Falls back to in-memory if not installed.
34
+ - **Telegram Channel**: Basic webhook handler for Telegram Bot API (`src/channels/telegram.ts`).
35
+ - **WebSocket Channel**: Real-time bidirectional communication with broadcast (`src/channels/websocket.ts`).
36
+ - **Sales Assistant Template**: Product Q&A, lead capture, appointment booking.
37
+ - **Knowledge Base Template**: RAG with DeepBrain for answering from company docs.
38
+ - **Code Reviewer Template**: Bug detection, style checking, severity ratings.
39
+ - **Skill Marketplace Stub**: `opc publish` validates OAD and generates manifest. `opc search` placeholder.
40
+ - **OAD Marketplace Fields**: `pricing` (free/freemium/paid/enterprise) and `tags` in marketplace config.
41
+ - **Context Size Guard**: Auto-truncate tool outputs exceeding 5000 characters.
42
+ - **Conversation History Limit**: Configurable limit (default 50 messages).
43
+ - **Graceful Shutdown**: Handles SIGINT/SIGTERM with cleanup.
44
+ - **Structured Logging**: Logger with debug/info/warn/error levels.
45
+ - **Interactive CLI Init**: `opc init` with prompts and template selection.
46
+ - **Dev Mode**: `opc dev` watches files and hot-reloads agent on changes.
47
+ - **Agent Info Command**: `opc info` displays agent details from OAD.
48
+ - **Colorful CLI Output**: Status indicators and colored text throughout CLI.
49
+ - **CONTRIBUTING.md**: Contribution guidelines.
50
+ - **CHANGELOG.md**: This file.
51
+
52
+ ### Changed
53
+ - OAD `memory.longTerm` now accepts boolean or object with provider config.
54
+ - OAD `channels.type` now includes `telegram`.
55
+ - CLI version bumped to 0.2.0.
56
+
57
+ ## [0.1.0] - 2026-04-14
58
+
59
+ ### Added
60
+ - Initial release
61
+ - BaseAgent with lifecycle management
62
+ - AgentRuntime for config-driven setup
63
+ - OAD Schema v1 with Zod validation
64
+ - Web channel (Express)
65
+ - InMemoryStore
66
+ - Skill system (BaseSkill, SkillRegistry)
67
+ - DTV framework (Trust, Value, Data)
68
+ - Customer Service template
69
+ - CLI: init, create, build, test, run, publish
package/CONTRIBUTING.md CHANGED
@@ -1,35 +1,74 @@
1
- # Contributing
1
+ # Contributing to OPC Agent
2
2
 
3
- Thanks for your interest in contributing!
3
+ Thank you for your interest in contributing to OPC Agent! 🎉
4
4
 
5
5
  ## Getting Started
6
6
 
7
- 1. Fork the repo
8
- 2. Clone your fork
7
+ 1. Fork the repository
8
+ 2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/opc-agent.git`
9
9
  3. Install dependencies: `npm install`
10
- 4. Create a branch: `git checkout -b feat/my-feature`
11
- 5. Make your changes
12
- 6. Run tests: `npm test`
13
- 7. Commit: `git commit -m "feat: description"`
14
- 8. Push and open a PR
10
+ 4. Create a branch: `git checkout -b feature/my-feature`
15
11
 
16
- ## Commit Convention
12
+ ## Development
17
13
 
18
- - `feat:` New feature
19
- - `fix:` Bug fix
20
- - `docs:` Documentation
21
- - `test:` Tests
22
- - `refactor:` Refactoring
23
- - `chore:` Build/tooling
14
+ ```bash
15
+ # Build
16
+ npm run build
24
17
 
25
- ## Code Style
18
+ # Run tests
19
+ npm test
26
20
 
27
- - TypeScript
28
- - Run `npm run lint` before committing (if available)
21
+ # Type check
22
+ npm run lint
29
23
 
30
- ## Questions?
24
+ # Watch mode
25
+ npm run dev
26
+ ```
31
27
 
32
- Open a Discussion or Issue.
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
33
72
 
34
73
  ## License
35
74