opc-agent 4.1.24 → 4.2.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 CHANGED
@@ -1,119 +1,59 @@
1
- # Changelog
2
-
3
- All notable changes to OPC Agent will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
6
-
7
- ## [4.1.16] - 2025-04-18
8
-
9
- ### Added
10
- - Full TUI terminal chat with streaming, markdown rendering, and slash commands
11
- - One-line install script for macOS/Linux (`install.sh`) and Windows (`install.ps1`)
12
- - `opc doctor` now checks tool availability and wiring (tools health check)
13
-
14
- ### Fixed
15
- - TUI input handling and display improvements
16
-
17
- ## [4.1.15] - 2025-04-15
18
-
19
- ### Added
20
- - 20 new integration tools: Jira, Slack, Notion, Linear, Confluence, Trello, Asana, Zendesk, HubSpot, Salesforce, and more
21
- - Total built-in tools count reaches **53**
22
-
23
- ## [4.1.14] - 2025-04-12
24
-
25
- ### Fixed
26
- - Process keep-alive reliability agents no longer exit unexpectedly on channel disconnect
27
- - 33 built-in tools fully wired to runtime (previously some were declared but not connected)
28
-
29
- ## [4.1.12] - 2025-04-08
30
-
31
- ### Added
32
- - Memory compaction distilled memory reduces storage and improves recall relevance
33
- - Automatic deduplication of similar memory entries
34
-
35
- ## [4.1.11] - 2025-04-05
36
-
37
- ### Added
38
- - Knowledge Evolve Engine v2.1 — improved clustering, deduplication, and refinement pipeline
39
- - Ollama-local knowledge distillation (zero API cost)
40
-
41
- ## [4.1.8] - 2025-03-28
42
-
43
- ### Added
44
- - Voice message support (STT/TTS)
45
- - Whisper integration for speech-to-text
46
- - Azure Speech and Volcano Engine TTS providers
47
- - Voice channel support in Telegram and Web UI
48
-
49
- ## [4.1.7] - 2025-03-22
50
-
51
- ### Added
52
- - 40 built-in skills: productivity, knowledge, creative, and developer skill packs
53
- - ProactiveAgent agents can initiate conversations based on triggers and schedules
54
- - `opc skill list` and `opc skill add` CLI commands
55
-
56
- ## [4.1.6] - 2025-03-18
57
-
58
- ### Added
59
- - SQLite persistent memory with full-text search (FTS5)
60
- - AgentSkills.io format support for skill discovery and sharing
61
- - Memory search across conversations with relevance ranking
62
-
63
- ### Changed
64
- - Default memory provider switched from JSON file to SQLite
65
-
66
- ## [4.1.5] - 2025-03-14
67
-
68
- ### Added
69
- - SkillLearner — agents can learn new skills from demonstrations
70
- - UserProfiler — automatic user preference tracking and personalization
71
-
72
- ## [4.1.4] - 2025-03-10
73
-
74
- ### Added
75
- - `.npmignore` for cleaner package publishing
76
- - Local cron scheduler (no external dependencies)
77
- - FileBackedStore for persistent key-value storage
78
-
79
- ### Fixed
80
- - Package size reduced by 60% with proper npmignore
81
-
82
- ## [4.1.3] - 2025-03-06
83
-
84
- ### Added
85
- - Smart model recommendation based on task complexity and available providers
86
- - `opc setup` auto-detects local Ollama models
87
-
88
- ## [4.1.2] - 2025-03-02
89
-
90
- ### Changed
91
- - Ollama-first UX overhaul — local models are now the default, cloud providers optional
92
- - `opc init` defaults to Ollama if detected, guides API key setup otherwise
93
-
94
- ### Fixed
95
- - Ollama connection reliability on slow startup
96
-
97
- ## [4.1.1] - 2025-02-26
98
-
99
- ### Changed
100
- - Studio UI improvements: better agent card layout, real-time status indicators
101
- - Dark mode support in Studio
102
-
103
- ### Fixed
104
- - Studio WebSocket reconnection on network interruption
105
-
106
- ## [4.1.0] - 2025-02-20
107
-
108
- ### Added
109
- - Initial CLI with `opc init`, `opc run`, `opc chat`, `opc studio` commands
110
- - Web-based Studio GUI at `http://localhost:4000`
111
- - OAD (Open Agent Definition) YAML configuration format
112
- - Multi-channel support: Telegram, Discord, Slack, WeChat, Email
113
- - OpenAI, Anthropic, Ollama, Azure model providers
114
- - Basic memory with learn/recall cycle
115
- - MCP Protocol server and client
116
- - A2A Protocol support
117
- - OpenTelemetry tracing
118
- - `opc doctor` with 13 health checks
119
- - `opc eval` evaluation framework
1
+ # Changelog
2
+
3
+ ## [4.2.0] - 2026-04-21
4
+
5
+ ### New Features
6
+ - **Priority Queue / Fast Mode** — Priority-aware request routing with per-session `/fast` toggle. Fast-mode requests are processed first and routed through provider priority endpoints (OpenAI, Anthropic, Google). Includes concurrency control, batch tier, and custom provider endpoint registration.
7
+ - **Gateway Registry** — Advanced multi-gateway tool provider pattern. Register multiple remote tool gateways with subscription-based access, per-tool quota tracking, auto-retry with backoff, and unified invocation routing across gateways. Complements the existing single-gateway `ToolGateway`.
8
+
9
+ ### Improvements
10
+ - New `FastModeManager` for per-session priority state management
11
+ - `PriorityQueue` with weighted dequeue, provider concurrency limits, and drain support
12
+ - `ToolGatewayRegistry` for routing tool calls across multiple gateway providers
13
+
14
+ ## [2.0.0] - 2026-04-18
15
+
16
+ ### Major Features
17
+ - **Interactive CLI** (`opc chat`) — Full TUI with streaming, slash commands, history
18
+ - **Daemon Mode** (`opc start/stop/status`) — Run agents as background processes
19
+ - **Cron Scheduler** — Built-in job scheduling with cron expressions
20
+ - **Autonomous Skill Learning** Agents create and improve skills from experience
21
+ - **Sub-Agent System** — Spawn parallel sub-agents for task delegation
22
+ - **Built-in Tools** — File operations, web fetch, shell exec, datetime
23
+ - **MCP Client** — Connect to external MCP servers via JSON-RPC
24
+ - **Telegram Channel** — Dual-mode (polling + webhook) with Markdown support
25
+ - **Discord Channel** — Gateway WebSocket with auto-reconnect
26
+ - **Slack Channel**Real Events API + chat.postMessage
27
+ - **SOUL.md + CONTEXT.md** Agent personality and project context files
28
+ - **Analytics** — Wired into runtime for message tracking, skill usage, errors
29
+
30
+ ### Enhanced
31
+ - `/health` endpoint returns comprehensive agent info
32
+ - `opc init` generates SOUL.md, CONTEXT.md, and richer project templates
33
+ - OAD config supports scheduler, learning, and tools sections
34
+ - 204 tests passing
35
+
36
+ ### CLI Commands
37
+ init, chat, run, dev, start, stop, status, jobs, skills, info, build, test, analytics, brain, logs, score, search, deploy, publish, install, plugin, tool, workflow, migrate
38
+
39
+ ## 1.4.0 (2026-04-18)
40
+ - feat: wire Analytics into AgentRuntime (message timing, skill usage, error tracking)
41
+ - feat: expose analytics snapshot on /health and /api/dashboard endpoints
42
+ - feat: enhanced /health endpoint with agent name, version, uptime, memory type, skills, channels
43
+ - feat: Slack channel — real Events API webhook server + chat.postMessage via fetch
44
+ - feat: WebChannel metadata setters (version, memory type, skills, channels, analytics provider)
45
+ - feat: AgentRuntime.getAnalytics() and getConfig() accessors
46
+
47
+ ## 1.3.1 (2026-04-17)
48
+ - fix: remove residual DTV/marketplace references
49
+ - fix: duplicate WatchPattern export
50
+
51
+ ## 1.3.0 (2026-04-17)
52
+ - feat: Traces collection (OpenTelemetry-style)
53
+ - feat: DeepBrain exporter
54
+ - feat: brain/logs/score CLI commands
55
+
56
+ ## 1.2.0
57
+ - Initial public release
58
+ - 11 channels, plugins, analytics
59
+ - Declarative OAD configuration
@@ -0,0 +1,76 @@
1
+ 你的任务是完全重写 OPC Studio 的前端 UI (src/studio-ui/index.html)。这是一个单文件 HTML(含 CSS + JS),不能拆分。
2
+
3
+ ## 第一步:读取参考文件
4
+ 1. 读 `C:\Users\mingjwan\.openclaw\agents\ray-cto\workspace\tmp\opc-studio-prd-v1.2.html` — PRD mockup 设计
5
+ 2. 读 `src/studio/server.ts` — 后端 API 接口
6
+ 3. 读当前 `src/studio-ui/index.html` — 了解现有结构
7
+
8
+ ## 设计规范
9
+
10
+ ### 视觉风格
11
+ - 亮色 Material 3 风格(白底 + Google Blue #1a73e8)
12
+ - 字体: system-ui, -apple-system, 'Segoe UI'
13
+ - 圆角: 12px
14
+ - 字体大小: >= 14px
15
+ - 卡片阴影: 0 1px 3px rgba(0,0,0,0.08)
16
+ - hover: 加深阴影 + 蓝色边框
17
+
18
+ ### 侧边栏结构(固定不变)
19
+ ```
20
+ ⚡ OPC Studio(logo)
21
+
22
+ 🧑‍💻 OPC 助手(置顶,全局助理)
23
+ ─────────
24
+ 🤖 OPC AGENT(section label)
25
+ [动态 Agent 列表]
26
+ ➕ 新建 Agent
27
+ 👥 新建群组
28
+ 📡 渠道配置
29
+ ─────────
30
+ 🧩 AGENTKITS(section label)
31
+ 模型配置
32
+ ─────────
33
+ 🧠 DEEPBRAIN(section label)
34
+ 知识库浏览
35
+ ─────────
36
+ 🖥️ WORKSTATION(section label)
37
+ 岗位模板库
38
+ ```
39
+
40
+ ### 页面列表
41
+
42
+ 1. **OPC 助手聊天页** — SSE 流式聊天,首次打开默认进入
43
+ 2. **Agent 聊天页** — 左 60% 聊天 + 右 40% 设置面板(可折叠,点 ⚙️ 展开)
44
+ - 设置面板 5 个 tab: 角色 / 模型 / 渠道 / 记忆 / 技能
45
+ - 模型 tab: 只显示已配通的模型供选择
46
+ 3. **AgentKits 模型配置页** — 三区: Ollama 本地模型 / 云端 API Key(填Key→验证按钮→解锁)/ Agent 模型分配表
47
+ - 核心规则:没配通 Key 的 Provider,其模型不出现在 Agent 的模型选择列表
48
+ 4. **DeepBrain 知识库页** — 拖拽上传区 + 统计卡片 + 搜索 + 三层浏览(行业/岗位/工位)
49
+ 5. **Workstation 岗位模板库页** — 面包屑导航 + 三级钻取(行业→岗位→工位)+ 每层显示 Skill 标签 + 底部 Skill 自动叠加说明
50
+ 6. **渠道配置页** — Telegram/微信/飞书/Slack 等 Token 配置
51
+ 7. **新建 Agent 页** — 简单表单(名称+描述+选模板)
52
+
53
+ ### 后端 API(已有)
54
+ - GET /api/agents — Agent 列表
55
+ - GET /api/agents/:id — Agent 详情
56
+ - PUT /api/agents/:id — 更新 Agent
57
+ - POST /api/agents — 创建 Agent
58
+ - DELETE /api/agents/:id — 删除 Agent
59
+ - POST /api/agents/:id/chat — 聊天(SSE 流式)
60
+ - GET /api/config — 全局配置
61
+ - PUT /api/config — 更新配置
62
+ - GET /api/skills — 技能列表
63
+ - GET /api/schedules — 调度列表
64
+ - GET /api/status — 系统状态
65
+ - GET /api/memory — 记忆
66
+
67
+ ### 关键约束
68
+ 1. 单文件 HTML,CSS 和 JS 全内联
69
+ 2. `const API = '';` 开头(空字符串,相对路径)
70
+ 3. 聊天用 SSE 流式(fetch + ReadableStream),打字机效果
71
+ 4. 首次打开(无 Agent 时)自动导航到 OPC 助手
72
+ 5. Agent 列表轮询刷新(5s)
73
+ 6. 所有按钮必须有 onclick 处理
74
+ 7. Markdown 渲染(代码块、列表、粗体等)
75
+
76
+ 完成后不需要运行测试,直接告诉我你写完了。
@@ -0,0 +1,75 @@
1
+ import { EventEmitter } from 'events';
2
+ import { Router } from 'express';
3
+ import { AgentCardRegistry, AgentCard } from './a2a';
4
+ export interface A2AHttpServerConfig {
5
+ card: AgentCard;
6
+ registry?: AgentCardRegistry;
7
+ basePath?: string;
8
+ }
9
+ export declare class A2AHttpServer extends EventEmitter {
10
+ readonly router: Router;
11
+ private card;
12
+ private registry;
13
+ private logger;
14
+ constructor(config: A2AHttpServerConfig);
15
+ private setupRoutes;
16
+ /** Update the agent card at runtime */
17
+ updateCard(card: Partial<AgentCard>): void;
18
+ getRegistry(): AgentCardRegistry;
19
+ }
20
+ export declare class A2AHttpClient {
21
+ private logger;
22
+ /** Fetch the agent card from a remote A2A endpoint */
23
+ fetchCard(url: string): Promise<AgentCard>;
24
+ /** Discover agents on a remote A2A server */
25
+ discover(url: string, query: string): Promise<AgentCard[]>;
26
+ /** Send an A2A message to a remote agent */
27
+ send(url: string, from: string, capability: string, payload: string): Promise<{
28
+ status: string;
29
+ response?: string;
30
+ error?: string;
31
+ }>;
32
+ /** Ping a remote A2A server */
33
+ ping(url: string): Promise<{
34
+ status: string;
35
+ agent: string;
36
+ }>;
37
+ }
38
+ export interface RemoteAgent {
39
+ url: string;
40
+ card: AgentCard;
41
+ }
42
+ export declare class NetworkRegistry extends EventEmitter {
43
+ private localRegistry;
44
+ private remotes;
45
+ private client;
46
+ private logger;
47
+ constructor(localRegistry?: AgentCardRegistry);
48
+ /** Register a local agent */
49
+ registerLocal(card: AgentCard): void;
50
+ /** Register a remote agent by URL — fetches card automatically */
51
+ registerRemote(url: string): Promise<AgentCard>;
52
+ /** Unregister an agent by name */
53
+ unregister(name: string): void;
54
+ /** Find agent — check local first, then remote */
55
+ get(name: string): {
56
+ type: 'local' | 'remote';
57
+ card: AgentCard;
58
+ url?: string;
59
+ } | undefined;
60
+ /** List all agents (local + remote) */
61
+ listAll(): Array<{
62
+ type: 'local' | 'remote';
63
+ card: AgentCard;
64
+ url?: string;
65
+ }>;
66
+ /** Route a call to local handler or remote HTTP endpoint */
67
+ call(from: string, to: string, capability: string, payload: string): Promise<{
68
+ status: string;
69
+ response?: string;
70
+ error?: string;
71
+ }>;
72
+ getLocalRegistry(): AgentCardRegistry;
73
+ getClient(): A2AHttpClient;
74
+ }
75
+ //# sourceMappingURL=a2a-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-http.d.ts","sourceRoot":"","sources":["../../src/core/a2a-http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NetworkRegistry = exports.A2AHttpClient = exports.A2AHttpServer = void 0;
4
+ const events_1 = require("events");
5
+ const express_1 = require("express");
6
+ const logger_1 = require("./logger");
7
+ const a2a_1 = require("./a2a");
8
+ class A2AHttpServer extends events_1.EventEmitter {
9
+ router;
10
+ card;
11
+ registry;
12
+ logger = new logger_1.Logger('a2a:http:server');
13
+ constructor(config) {
14
+ super();
15
+ this.card = config.card;
16
+ this.registry = config.registry ?? new a2a_1.AgentCardRegistry();
17
+ this.registry.register(this.card);
18
+ this.router = (0, express_1.Router)();
19
+ this.setupRoutes();
20
+ this.logger.info('A2AHttpServer initialized', { agent: this.card.name });
21
+ }
22
+ setupRoutes() {
23
+ // Agent card discovery (A2A well-known)
24
+ this.router.get('/.well-known/agent.json', (_req, res) => {
25
+ const { handler, ...publicCard } = this.card;
26
+ res.json(publicCard);
27
+ });
28
+ // List all registered agents
29
+ this.router.get('/a2a/agents', (_req, res) => {
30
+ const cards = this.registry.list().map(({ handler, ...c }) => c);
31
+ res.json({ agents: cards });
32
+ });
33
+ // Discover agents by capability query
34
+ this.router.post('/a2a/discover', (req, res) => {
35
+ const { query } = req.body;
36
+ if (!query) {
37
+ res.status(400).json({ error: 'Missing "query" in request body' });
38
+ return;
39
+ }
40
+ const results = this.registry.find(query).map(({ handler, ...c }) => c);
41
+ res.json({ results });
42
+ });
43
+ // Receive an A2A message
44
+ this.router.post('/a2a/message', async (req, res) => {
45
+ const { from, capability, payload } = req.body;
46
+ if (!from || !capability || payload === undefined) {
47
+ res.status(400).json({ error: 'Missing required fields: from, capability, payload' });
48
+ return;
49
+ }
50
+ this.logger.info('A2A message received', { from, capability });
51
+ this.emit('message', { from, capability, payload });
52
+ try {
53
+ const response = await this.registry.send(this.card.name, payload);
54
+ res.json({
55
+ from: this.card.name,
56
+ status: 'success',
57
+ response,
58
+ timestamp: Date.now(),
59
+ });
60
+ }
61
+ catch (err) {
62
+ const message = err.message;
63
+ this.logger.error('A2A message handling failed', { error: message });
64
+ res.status(500).json({
65
+ from: this.card.name,
66
+ status: 'error',
67
+ error: message,
68
+ timestamp: Date.now(),
69
+ });
70
+ }
71
+ });
72
+ // Health check
73
+ this.router.get('/a2a/health', (_req, res) => {
74
+ res.json({
75
+ status: 'ok',
76
+ agent: this.card.name,
77
+ agents: this.registry.list().length,
78
+ timestamp: Date.now(),
79
+ });
80
+ });
81
+ }
82
+ /** Update the agent card at runtime */
83
+ updateCard(card) {
84
+ Object.assign(this.card, card);
85
+ this.registry.register(this.card);
86
+ }
87
+ getRegistry() {
88
+ return this.registry;
89
+ }
90
+ }
91
+ exports.A2AHttpServer = A2AHttpServer;
92
+ // ── A2A HTTP Client ─────────────────────────────────────────
93
+ class A2AHttpClient {
94
+ logger = new logger_1.Logger('a2a:http:client');
95
+ /** Fetch the agent card from a remote A2A endpoint */
96
+ async fetchCard(url) {
97
+ const endpoint = `${url.replace(/\/$/, '')}/.well-known/agent.json`;
98
+ this.logger.info('Fetching agent card', { endpoint });
99
+ const res = await fetch(endpoint);
100
+ if (!res.ok)
101
+ throw new Error(`Failed to fetch agent card from ${endpoint}: ${res.status}`);
102
+ return (await res.json());
103
+ }
104
+ /** Discover agents on a remote A2A server */
105
+ async discover(url, query) {
106
+ const endpoint = `${url.replace(/\/$/, '')}/a2a/discover`;
107
+ const res = await fetch(endpoint, {
108
+ method: 'POST',
109
+ headers: { 'Content-Type': 'application/json' },
110
+ body: JSON.stringify({ query }),
111
+ });
112
+ if (!res.ok)
113
+ throw new Error(`Discover failed: ${res.status}`);
114
+ const data = (await res.json());
115
+ return data.results;
116
+ }
117
+ /** Send an A2A message to a remote agent */
118
+ async send(url, from, capability, payload) {
119
+ const endpoint = `${url.replace(/\/$/, '')}/a2a/message`;
120
+ this.logger.info('Sending A2A message', { endpoint, from, capability });
121
+ const res = await fetch(endpoint, {
122
+ method: 'POST',
123
+ headers: { 'Content-Type': 'application/json' },
124
+ body: JSON.stringify({ from, capability, payload }),
125
+ });
126
+ return (await res.json());
127
+ }
128
+ /** Ping a remote A2A server */
129
+ async ping(url) {
130
+ const endpoint = `${url.replace(/\/$/, '')}/a2a/health`;
131
+ const res = await fetch(endpoint);
132
+ if (!res.ok)
133
+ throw new Error(`Health check failed: ${res.status}`);
134
+ return (await res.json());
135
+ }
136
+ }
137
+ exports.A2AHttpClient = A2AHttpClient;
138
+ class NetworkRegistry extends events_1.EventEmitter {
139
+ localRegistry;
140
+ remotes = new Map();
141
+ client;
142
+ logger = new logger_1.Logger('a2a:network');
143
+ constructor(localRegistry) {
144
+ super();
145
+ this.localRegistry = localRegistry ?? new a2a_1.AgentCardRegistry();
146
+ this.client = new A2AHttpClient();
147
+ }
148
+ /** Register a local agent */
149
+ registerLocal(card) {
150
+ this.localRegistry.register(card);
151
+ this.emit('agent:registered', { type: 'local', name: card.name });
152
+ }
153
+ /** Register a remote agent by URL — fetches card automatically */
154
+ async registerRemote(url) {
155
+ const card = await this.client.fetchCard(url);
156
+ this.remotes.set(card.name, { url, card });
157
+ this.logger.info('Remote agent registered', { name: card.name, url });
158
+ this.emit('agent:registered', { type: 'remote', name: card.name, url });
159
+ return card;
160
+ }
161
+ /** Unregister an agent by name */
162
+ unregister(name) {
163
+ this.localRegistry.unregister(name);
164
+ this.remotes.delete(name);
165
+ }
166
+ /** Find agent — check local first, then remote */
167
+ get(name) {
168
+ const local = this.localRegistry.get(name);
169
+ if (local)
170
+ return { type: 'local', card: local };
171
+ const remote = this.remotes.get(name);
172
+ if (remote)
173
+ return { type: 'remote', card: remote.card, url: remote.url };
174
+ return undefined;
175
+ }
176
+ /** List all agents (local + remote) */
177
+ listAll() {
178
+ const locals = this.localRegistry.list().map(card => ({
179
+ type: 'local',
180
+ card,
181
+ }));
182
+ const remotes = Array.from(this.remotes.values()).map(r => ({
183
+ type: 'remote',
184
+ card: r.card,
185
+ url: r.url,
186
+ }));
187
+ return [...locals, ...remotes];
188
+ }
189
+ /** Route a call to local handler or remote HTTP endpoint */
190
+ async call(from, to, capability, payload) {
191
+ // Try local first
192
+ const local = this.localRegistry.get(to);
193
+ if (local) {
194
+ try {
195
+ const response = await this.localRegistry.send(to, payload);
196
+ return { status: 'success', response };
197
+ }
198
+ catch (err) {
199
+ return { status: 'error', error: err.message };
200
+ }
201
+ }
202
+ // Try remote
203
+ const remote = this.remotes.get(to);
204
+ if (remote) {
205
+ return this.client.send(remote.url, from, capability, payload);
206
+ }
207
+ return { status: 'error', error: `Agent "${to}" not found in local or remote registry` };
208
+ }
209
+ getLocalRegistry() {
210
+ return this.localRegistry;
211
+ }
212
+ getClient() {
213
+ return this.client;
214
+ }
215
+ }
216
+ exports.NetworkRegistry = NetworkRegistry;
217
+ //# sourceMappingURL=a2a-http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-http.js","sourceRoot":"","sources":["../../src/core/a2a-http.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,8 @@ export interface A2AResponse {
47
47
  error?: string;
48
48
  timestamp: number;
49
49
  }
50
+ export { A2AHttpServer, A2AHttpClient, NetworkRegistry } from './a2a-http';
51
+ export type { A2AHttpServerConfig, RemoteAgent } from './a2a-http';
50
52
  export declare class AgentRegistry extends EventEmitter {
51
53
  private registrations;
52
54
  private agents;
@@ -1 +1 @@
1
- {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/core/a2a.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/core/a2a.ts"],"names":[],"mappings":"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"}
package/dist/core/a2a.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgentRegistry = exports.AgentCardRegistry = void 0;
3
+ exports.AgentRegistry = exports.NetworkRegistry = exports.A2AHttpClient = exports.A2AHttpServer = exports.AgentCardRegistry = void 0;
4
4
  const events_1 = require("events");
5
5
  const room_1 = require("./room");
6
6
  const logger_1 = require("./logger");
@@ -47,6 +47,11 @@ class AgentCardRegistry {
47
47
  }
48
48
  exports.AgentCardRegistry = AgentCardRegistry;
49
49
  // ── Agent Registry ──────────────────────────────────────────
50
+ // Re-export A2A HTTP transport classes
51
+ var a2a_http_1 = require("./a2a-http");
52
+ Object.defineProperty(exports, "A2AHttpServer", { enumerable: true, get: function () { return a2a_http_1.A2AHttpServer; } });
53
+ Object.defineProperty(exports, "A2AHttpClient", { enumerable: true, get: function () { return a2a_http_1.A2AHttpClient; } });
54
+ Object.defineProperty(exports, "NetworkRegistry", { enumerable: true, get: function () { return a2a_http_1.NetworkRegistry; } });
50
55
  class AgentRegistry extends events_1.EventEmitter {
51
56
  registrations = new Map();
52
57
  agents = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../src/core/a2a.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../src/core/a2a.ts"],"names":[],"mappings":"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"}