@hanphone/dsh-a2a 0.3.0 → 0.3.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/README.md +20 -15
- package/README.zh.md +6 -6
- package/lib/client.js +19 -50
- package/lib/index.js +68 -52
- package/lib/types/api.d.ts +0 -10
- package/lib/types/api.d.ts.map +1 -1
- package/lib/types/api.js +0 -2
- package/lib/types/api.js.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +9 -5
- package/lib/types/index.js.map +1 -1
- package/lib/types/server/exec/agent-runtime.d.ts +17 -0
- package/lib/types/server/exec/agent-runtime.d.ts.map +1 -1
- package/lib/types/server/exec/agent-runtime.js.map +1 -1
- package/lib/types/server/store.d.ts +2 -4
- package/lib/types/server/store.d.ts.map +1 -1
- package/lib/types/server/store.js.map +1 -1
- package/lib/types/servers/inbound-manager.d.ts +44 -21
- package/lib/types/servers/inbound-manager.d.ts.map +1 -1
- package/lib/types/servers/inbound-manager.js +67 -44
- package/lib/types/servers/inbound-manager.js.map +1 -1
- package/lib/types/service.d.ts +1 -3
- package/lib/types/service.d.ts.map +1 -1
- package/lib/types/service.js.map +1 -1
- package/package.json +2 -2
- package/src/api.ts +2 -4
- package/src/client/index.ts +11 -48
- package/src/index.ts +13 -9
- package/src/server/exec/agent-runtime.ts +15 -0
- package/src/server/store.ts +2 -4
- package/src/servers/inbound-manager.ts +81 -50
- package/src/service.ts +3 -3
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Agent2Agent (A2A) Protocol v1.0.1 dual-end plugin for [DeepSeek Harness](https:/
|
|
|
5
5
|
`@hanphone/dsh-a2a` is an independent, open-source A2A plugin that turns a
|
|
6
6
|
DeepSeek Harness profile into a multi-faced agent-to-agent citizen: it can
|
|
7
7
|
simultaneously serve **multiple inbound A2A servers**, each bound to its own
|
|
8
|
-
agent preset with its own endpoint, AgentCard,
|
|
8
|
+
agent preset with its own endpoint, AgentCard, preset-derived skills and auth, and
|
|
9
9
|
connect to **multiple outbound A2A servers**, each with its own preset, whose
|
|
10
10
|
remote skills appear as model tools. Every server instance is created,
|
|
11
11
|
started, stopped, edited and removed entirely from the GUI — no config-file
|
|
@@ -24,16 +24,20 @@ Architecture and design decisions: [docs/architecture.md](docs/architecture.md).
|
|
|
24
24
|
- **Multiple inbound servers** — one per persona. Each instance gets its own
|
|
25
25
|
endpoint (`/a2a/<id>`), AgentCard route, authentication env, and skill
|
|
26
26
|
declarations.
|
|
27
|
-
- **Per-instance agent preset** — every inbound server binds
|
|
28
|
-
(e.g. `ptc`, `standard`, `minimal`, …);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
- **Per-instance agent preset** — every inbound server binds one concrete
|
|
28
|
+
agent preset (e.g. `ptc`, `standard`, `minimal`, …); the picker lists only
|
|
29
|
+
real roster presets (matching the in-app selector) and defaults to the
|
|
30
|
+
deployment default. Inbound tasks execute in sessions composed from that
|
|
31
|
+
preset through the standard `agentPresets` resolve+mount path.
|
|
32
|
+
- **Preset-derived skill declarations** — the AgentCard's skills are the
|
|
33
|
+
model-invocable entries of the bound preset's skill directory
|
|
34
|
+
(`agentPresets.standingKeyFor` + `ctx.skills.list`), derived automatically —
|
|
35
|
+
"the preset decides its skills; everything is a plugin". No typed skill form;
|
|
36
|
+
a missing skills service falls back to the built-in `chat` skill. Remotes
|
|
37
|
+
call a skill via `metadata.skill`, and the preset session executes it
|
|
38
|
+
through its `tool-skill` loader.
|
|
35
39
|
- **Multiple outbound servers** — each connection has its own remote URL,
|
|
36
|
-
auth env, timeout and
|
|
40
|
+
auth env, timeout and preset; enabled instances map remote skills
|
|
37
41
|
to `a2a__<name>__<skill>` model tools.
|
|
38
42
|
- **Durable task store** — tasks live in the `a2a` storage domain (JSON
|
|
39
43
|
backend by default, SQLite per deployment choice); server-generated ids
|
|
@@ -80,8 +84,9 @@ dsh plugin --profile <name> add <path-to>/hanphone-dsh-a2a-<version>.tgz
|
|
|
80
84
|
2. **Restart the GUI** — the browser half is scanned at host startup, so
|
|
81
85
|
restart once after installing (`pnpm dsh web` or your profile launcher).
|
|
82
86
|
3. **Open Settings → A2A 连接** — create your first inbound server (pick a
|
|
83
|
-
preset
|
|
84
|
-
immediately and publishes its own endpoint and
|
|
87
|
+
preset — its skills are derived automatically — optionally set an auth
|
|
88
|
+
env). It is enabled immediately and publishes its own endpoint and
|
|
89
|
+
AgentCard.
|
|
85
90
|
|
|
86
91
|
Each inbound server listens on the profile's webServer:
|
|
87
92
|
|
|
@@ -104,9 +109,9 @@ The browser half registers an **A2A 连接** page under Settings. From it you
|
|
|
104
109
|
can, without touching any file:
|
|
105
110
|
|
|
106
111
|
- **入站 Servers** — create inbound servers (name/description/version, agent
|
|
107
|
-
preset picker
|
|
108
|
-
remove them; each row shows
|
|
109
|
-
AgentCard URL.
|
|
112
|
+
preset picker listing real roster presets with the deployment default
|
|
113
|
+
preselected, auth env), start/stop, edit, and remove them; each row shows
|
|
114
|
+
its endpoint, preset, preset-derived skills and live AgentCard URL.
|
|
110
115
|
- **出站 Servers** — add outbound connections (name, remote AgentCard URL,
|
|
111
116
|
preset picker, bearer env, timeout), start/stop, refresh, and remove them;
|
|
112
117
|
each row shows connection state and tool registration counts.
|
package/README.zh.md
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Agent2Agent(A2A)v1.0.1 双端插件,用于 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) — [English](README.md) · **中文**
|
|
4
4
|
|
|
5
|
-
`@hanphone/dsh-a2a` 是一个独立开源的 A2A 插件,把 DeepSeek Harness profile 变成多面手 A2A 一等公民:能**同时对外发布多个入站 A2A server**,每个绑定一个自己的 agent preset、拥有独立端点 / AgentCard /
|
|
5
|
+
`@hanphone/dsh-a2a` 是一个独立开源的 A2A 插件,把 DeepSeek Harness profile 变成多面手 A2A 一等公民:能**同时对外发布多个入站 A2A server**,每个绑定一个自己的 agent preset、拥有独立端点 / AgentCard / 派生技能 / 鉴权;也能**同时接入多个出站 A2A server**,每个独立 preset,远端技能映射为模型工具。所有 server 实例的创建、启停、编辑、删除全部在 GUI 完成——无需改任何配置文件。
|
|
6
6
|
|
|
7
7
|
架构与设计决策:[docs/architecture.md](docs/architecture.md)。
|
|
8
8
|
|
|
9
9
|
## 功能
|
|
10
10
|
|
|
11
11
|
- **A2A v1.0.1 协议面,对齐官方规范** — JSON-RPC 上的 `SendMessage`、`SendStreamingMessage`、`GetTask`、`ListTasks`、`CancelTask`、`GetExtendedAgentCard`、`SubscribeToTask`;SSE 流式带补发帧;官方 `TASK_STATE_*` / `ROLE_*` 枚举与 AgentCard 结构(含 `supportedInterfaces`、`capabilities`、完整错误码表)。
|
|
12
|
-
- **多入站 server** — 每实例一个"人格":独立端点(`/a2a/<id>`)、AgentCard 路由、鉴权 env
|
|
13
|
-
- **每实例 agent preset** — 每个入站 server
|
|
14
|
-
-
|
|
12
|
+
- **多入站 server** — 每实例一个"人格":独立端点(`/a2a/<id>`)、AgentCard 路由、鉴权 env、派生技能。
|
|
13
|
+
- **每实例 agent preset** — 每个入站 server 绑定一个具体 agent preset(如 `ptc`、`standard`、`minimal`、…);选择器只列 roster 真实预设(与应用内选择器一致)并默认选中部署默认。入站任务在按该 preset 组装的会话中执行(标准 `agentPresets` resolve+mount 路径)。
|
|
14
|
+
- **技能宣告从 preset 派生** — AgentCard 技能 = 所绑 preset 技能目录中模型可调条目(`agentPresets.standingKeyFor` + `ctx.skills.list`),纯自动派生——"preset 确定、技能确定,一切皆插件"。无需手写技能表单;skills 服务缺失时兜底内置 `chat`。远端用 `metadata.skill` 调技能,由该 preset 会话经其 `tool-skill` 装载执行。
|
|
15
15
|
- **多出站 server** — 每个连接独立远端 URL、鉴权 env、超时与可选 preset;启用实例把远端技能映射为 `a2a__<name>__<skill>` 模型工具。
|
|
16
16
|
- **持久化任务存储** — 任务存于 `a2a` 存储域(默认 json 后端,可按部署切 SQLite);服务端生成 id 跨重启存活,每个任务记录来源入站实例。
|
|
17
17
|
- **执行器** — `session`(每个 `contextId` 一个 DSH 会话)与 `subagent`(委托 `ctx.subagents`,工具调用过程流式回传)。
|
|
@@ -47,7 +47,7 @@ dsh plugin --profile <name> add <path-to>/hanphone-dsh-a2a-<version>.tgz
|
|
|
47
47
|
|
|
48
48
|
1. **安装** — `dsh plugin --profile web add @hanphone/dsh-a2a`。
|
|
49
49
|
2. **重启 GUI** — 浏览器端插件表在 host 启动时扫描,装完请重启一次(`pnpm dsh web` 或对应 profile 启动命令)。
|
|
50
|
-
3. **打开 设置 → A2A 连接** — 创建第一个入站 server(选 preset
|
|
50
|
+
3. **打开 设置 → A2A 连接** — 创建第一个入站 server(选 preset——技能自动派生——可选鉴权 env)。创建即时启用并发布自己的端点与 AgentCard。
|
|
51
51
|
|
|
52
52
|
每个入站 server 监听在 profile 的 webServer 上:
|
|
53
53
|
|
|
@@ -68,7 +68,7 @@ curl -X POST http://127.0.0.1:3080/a2a/<id> \
|
|
|
68
68
|
|
|
69
69
|
浏览器端在设置中注册 **A2A 连接** 页。无需改文件即可:
|
|
70
70
|
|
|
71
|
-
- **入站 Servers** — 创建入站 server(名称/描述/版本、agent preset
|
|
71
|
+
- **入站 Servers** — 创建入站 server(名称/描述/版本、agent preset 选择器——只列真实 roster 预设并预选部署默认、鉴权 env),启停、编辑、删除;每行显示端点、preset、preset 派生的技能与实时 AgentCard URL。
|
|
72
72
|
- **出站 Servers** — 添加出站连接(名称、远端 AgentCard URL、preset 选择器、Bearer env、超时),启停、刷新、删除;每行显示连接状态与工具注册数。
|
|
73
73
|
- **任务** — 查看与取消入站任务(每个任务携带来源 server)。
|
|
74
74
|
- **入站连接** — 查看哪些远程对端在调用各实例,可关闭某个对端。
|
package/lib/client.js
CHANGED
|
@@ -67,27 +67,6 @@ window.__ModuleLoader__.load({
|
|
|
67
67
|
message: `HTTP ${res.status}`
|
|
68
68
|
}));
|
|
69
69
|
}
|
|
70
|
-
/** One skill declaration per line: `id|name|description` (name/description default to id). */
|
|
71
|
-
function parseSkills(text) {
|
|
72
|
-
const lines = text.split("\n").map((l) => l.trim()).filter(Boolean);
|
|
73
|
-
if (lines.length === 0) return void 0;
|
|
74
|
-
return lines.map((line) => {
|
|
75
|
-
const [id, name, ...descParts] = line.split("|").map((p) => p.trim());
|
|
76
|
-
const skillId = id ?? "";
|
|
77
|
-
return {
|
|
78
|
-
id: skillId,
|
|
79
|
-
name: name && name.length > 0 ? name : skillId,
|
|
80
|
-
...descParts.length > 0 || (descParts[0]?.length ?? 0) > 0 ? { description: descParts.join("|") } : {}
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
function skillsToText(skills) {
|
|
85
|
-
return skills.map((s) => [
|
|
86
|
-
s.id,
|
|
87
|
-
s.name,
|
|
88
|
-
s.description
|
|
89
|
-
].filter((p) => p !== void 0 && p.length > 0).join("|")).join("\n");
|
|
90
|
-
}
|
|
91
70
|
function A2aSection(_props) {
|
|
92
71
|
const [snap, setSnap] = (0, react.useState)(void 0);
|
|
93
72
|
const [presets, setPresets] = (0, react.useState)([]);
|
|
@@ -99,7 +78,6 @@ window.__ModuleLoader__.load({
|
|
|
99
78
|
const [inVersion, setInVersion] = (0, react.useState)("1.0.0");
|
|
100
79
|
const [inPreset, setInPreset] = (0, react.useState)("");
|
|
101
80
|
const [inAuthEnv, setInAuthEnv] = (0, react.useState)("");
|
|
102
|
-
const [inSkills, setInSkills] = (0, react.useState)("");
|
|
103
81
|
const [outName, setOutName] = (0, react.useState)("");
|
|
104
82
|
const [outUrl, setOutUrl] = (0, react.useState)("");
|
|
105
83
|
const [outPreset, setOutPreset] = (0, react.useState)("");
|
|
@@ -113,6 +91,9 @@ window.__ModuleLoader__.load({
|
|
|
113
91
|
if (alive) {
|
|
114
92
|
setSnap(next);
|
|
115
93
|
setPresets(presetRows);
|
|
94
|
+
const def = presetRows.find((p) => p.isDefault)?.id;
|
|
95
|
+
setInPreset((current) => current === "" && def !== void 0 ? def : current);
|
|
96
|
+
setOutPreset((current) => current === "" && def !== void 0 ? def : current);
|
|
116
97
|
setError(void 0);
|
|
117
98
|
}
|
|
118
99
|
} catch (err) {
|
|
@@ -143,13 +124,11 @@ window.__ModuleLoader__.load({
|
|
|
143
124
|
setInName("");
|
|
144
125
|
setInDesc("");
|
|
145
126
|
setInVersion("1.0.0");
|
|
146
|
-
setInPreset("");
|
|
127
|
+
setInPreset(presets.find((p) => p.isDefault)?.id ?? "");
|
|
147
128
|
setInAuthEnv("");
|
|
148
|
-
setInSkills("");
|
|
149
129
|
};
|
|
150
130
|
const submitInbound = () => {
|
|
151
131
|
if (!inName.trim()) return;
|
|
152
|
-
const skills = parseSkills(inSkills);
|
|
153
132
|
if (editingIn !== void 0) {
|
|
154
133
|
control({
|
|
155
134
|
action: "inbound.update",
|
|
@@ -158,8 +137,7 @@ window.__ModuleLoader__.load({
|
|
|
158
137
|
description: inDesc.trim(),
|
|
159
138
|
version: inVersion.trim() || "1.0.0",
|
|
160
139
|
...inPreset !== "" ? { preset: inPreset } : {},
|
|
161
|
-
...inAuthEnv.trim() !== "" ? { authTokenEnv: inAuthEnv.trim() } : {}
|
|
162
|
-
...skills !== void 0 ? { skills } : {}
|
|
140
|
+
...inAuthEnv.trim() !== "" ? { authTokenEnv: inAuthEnv.trim() } : {}
|
|
163
141
|
}).then(() => setEditingIn(void 0));
|
|
164
142
|
return;
|
|
165
143
|
}
|
|
@@ -169,8 +147,7 @@ window.__ModuleLoader__.load({
|
|
|
169
147
|
description: inDesc.trim() || "An A2A inbound server",
|
|
170
148
|
version: inVersion.trim() || "1.0.0",
|
|
171
149
|
...inPreset !== "" ? { preset: inPreset } : {},
|
|
172
|
-
...inAuthEnv.trim() !== "" ? { authTokenEnv: inAuthEnv.trim() } : {}
|
|
173
|
-
...skills !== void 0 ? { skills } : {}
|
|
150
|
+
...inAuthEnv.trim() !== "" ? { authTokenEnv: inAuthEnv.trim() } : {}
|
|
174
151
|
}).then(() => startCreateInbound());
|
|
175
152
|
};
|
|
176
153
|
const beginEditInbound = (v) => {
|
|
@@ -178,9 +155,8 @@ window.__ModuleLoader__.load({
|
|
|
178
155
|
setInName(v.name);
|
|
179
156
|
setInDesc(v.description);
|
|
180
157
|
setInVersion(v.version);
|
|
181
|
-
setInPreset(v.preset ?? "");
|
|
158
|
+
setInPreset(v.preset ?? presets.find((p) => p.isDefault)?.id ?? "");
|
|
182
159
|
setInAuthEnv(v.authTokenEnv ?? "");
|
|
183
|
-
setInSkills(skillsToText(v.skills));
|
|
184
160
|
};
|
|
185
161
|
const submitOutbound = () => {
|
|
186
162
|
if (!outName.trim() || !outUrl.trim()) return;
|
|
@@ -195,7 +171,7 @@ window.__ModuleLoader__.load({
|
|
|
195
171
|
}).then(() => {
|
|
196
172
|
setOutName("");
|
|
197
173
|
setOutUrl("");
|
|
198
|
-
setOutPreset("");
|
|
174
|
+
setOutPreset(presets.find((p) => p.isDefault)?.id ?? "");
|
|
199
175
|
setOutTokenEnv("");
|
|
200
176
|
});
|
|
201
177
|
};
|
|
@@ -240,10 +216,11 @@ window.__ModuleLoader__.load({
|
|
|
240
216
|
}), (0, react.createElement)("select", {
|
|
241
217
|
value: inPreset,
|
|
242
218
|
onChange: (e) => setInPreset(e.target.value)
|
|
243
|
-
},
|
|
219
|
+
}, ...presets.map((p) => (0, react.createElement)("option", {
|
|
244
220
|
value: p.id,
|
|
245
|
-
key: p.id
|
|
246
|
-
|
|
221
|
+
key: p.id,
|
|
222
|
+
title: p.description ?? p.id
|
|
223
|
+
}, p.name ?? p.id))), (0, react.createElement)("input", {
|
|
247
224
|
value: inAuthEnv,
|
|
248
225
|
placeholder: "鉴权 env 变量名(可选)",
|
|
249
226
|
onChange: (e) => setInAuthEnv(e.target.value)
|
|
@@ -252,17 +229,8 @@ window.__ModuleLoader__.load({
|
|
|
252
229
|
onSubmit: (ev) => {
|
|
253
230
|
ev.preventDefault();
|
|
254
231
|
submitInbound();
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
value: inSkills,
|
|
258
|
-
placeholder: "技能宣告(每行 id|名称|描述,留空默认取 preset 名)",
|
|
259
|
-
onChange: (e) => setInSkills(e.target.value)
|
|
260
|
-
})), (0, react.createElement)("form", {
|
|
261
|
-
className: "dsh-a2a-form",
|
|
262
|
-
onSubmit: (ev) => {
|
|
263
|
-
ev.preventDefault();
|
|
264
|
-
submitInbound();
|
|
265
|
-
}
|
|
232
|
+
},
|
|
233
|
+
style: { alignItems: "flex-end" }
|
|
266
234
|
}, (0, react.createElement)("input", {
|
|
267
235
|
value: inDesc,
|
|
268
236
|
placeholder: "描述",
|
|
@@ -279,7 +247,7 @@ window.__ModuleLoader__.load({
|
|
|
279
247
|
type: "button",
|
|
280
248
|
disabled: busy,
|
|
281
249
|
onClick: () => startCreateInbound()
|
|
282
|
-
}, "取消") : null), (0, react.createElement)("div", { className: "dsh-a2a-hint" }, "
|
|
250
|
+
}, "取消") : null), (0, react.createElement)("div", { className: "dsh-a2a-hint" }, "该 server 绑定的 preset 决定其技能(一切皆插件):AgentCard 技能 = 该 preset 可用的模型技能,创建后自动派生。")), (0, react.createElement)("div", { className: "dsh-a2a-card" }, (0, react.createElement)("h3", null, `出站 Servers(${outbounds.length})`), outbounds.length === 0 ? (0, react.createElement)("div", { className: "muted" }, "还没有出站 server。添加一个远端 A2A 连接即可把其技能注册为模型工具。") : (0, react.createElement)("table", { className: "dsh-a2a-table" }, (0, react.createElement)("thead", null, (0, react.createElement)("tr", null, (0, react.createElement)("th", null, "名称 / 远端"), (0, react.createElement)("th", null, "Preset"), (0, react.createElement)("th", null, "状态"), (0, react.createElement)("th", null, "工具"), (0, react.createElement)("th", null, "操作"))), (0, react.createElement)("tbody", null, ...outbounds.map((v) => (0, react.createElement)("tr", { key: v.id }, (0, react.createElement)("td", null, (0, react.createElement)("div", null, v.name), (0, react.createElement)("div", { className: "muted" }, v.agentCardUrl), v.lastError !== void 0 ? (0, react.createElement)("div", { className: "dsh-a2a-error" }, v.lastError) : null), (0, react.createElement)("td", null, v.preset ?? (0, react.createElement)("span", { className: "muted" }, "默认")), (0, react.createElement)("td", null, (0, react.createElement)("span", { className: `dsh-a2a-state ${v.state === "connected" ? "ok" : "bad"}` }, v.state === "connected" ? "已连接" : v.state)), (0, react.createElement)("td", null, `${v.toolCount} / ${v.skillCount}`), (0, react.createElement)("td", null, (0, react.createElement)("button", {
|
|
283
251
|
disabled: busy,
|
|
284
252
|
onClick: () => void control({
|
|
285
253
|
action: v.enabled ? "outbound.disable" : "outbound.enable",
|
|
@@ -318,10 +286,11 @@ window.__ModuleLoader__.load({
|
|
|
318
286
|
}), (0, react.createElement)("select", {
|
|
319
287
|
value: outPreset,
|
|
320
288
|
onChange: (e) => setOutPreset(e.target.value)
|
|
321
|
-
},
|
|
289
|
+
}, ...presets.map((p) => (0, react.createElement)("option", {
|
|
322
290
|
value: p.id,
|
|
323
|
-
key: p.id
|
|
324
|
-
|
|
291
|
+
key: p.id,
|
|
292
|
+
title: p.description ?? p.id
|
|
293
|
+
}, p.name ?? p.id))), (0, react.createElement)("input", {
|
|
325
294
|
value: outTokenEnv,
|
|
326
295
|
placeholder: "Bearer env 变量名(可选)",
|
|
327
296
|
onChange: (e) => setOutTokenEnv(e.target.value)
|
package/lib/index.js
CHANGED
|
@@ -499,7 +499,6 @@ async function dispatch(payload, impl) {
|
|
|
499
499
|
...payload.endpointPath !== void 0 ? { endpointPath: payload.endpointPath } : {},
|
|
500
500
|
...payload.preset !== void 0 ? { preset: payload.preset } : {},
|
|
501
501
|
...payload.authTokenEnv !== void 0 ? { authTokenEnv: payload.authTokenEnv } : {},
|
|
502
|
-
...payload.skills !== void 0 ? { skills: payload.skills } : {},
|
|
503
502
|
...payload.enabled !== void 0 ? { enabled: payload.enabled } : {}
|
|
504
503
|
});
|
|
505
504
|
case "inbound.remove": return impl.removeInboundServer(payload.id);
|
|
@@ -511,8 +510,7 @@ async function dispatch(payload, impl) {
|
|
|
511
510
|
...payload.version !== void 0 ? { version: payload.version } : {},
|
|
512
511
|
...payload.endpointPath !== void 0 ? { endpointPath: payload.endpointPath } : {},
|
|
513
512
|
...payload.preset !== void 0 ? { preset: payload.preset } : {},
|
|
514
|
-
...payload.authTokenEnv !== void 0 ? { authTokenEnv: payload.authTokenEnv } : {}
|
|
515
|
-
...payload.skills !== void 0 ? { skills: payload.skills } : {}
|
|
513
|
+
...payload.authTokenEnv !== void 0 ? { authTokenEnv: payload.authTokenEnv } : {}
|
|
516
514
|
});
|
|
517
515
|
case "outbound.create": return impl.createOutboundServer({
|
|
518
516
|
name: payload.name,
|
|
@@ -1505,17 +1503,21 @@ var LiveInboundRegistry = class {
|
|
|
1505
1503
|
//#region lib/types/servers/inbound-manager.js
|
|
1506
1504
|
/**
|
|
1507
1505
|
* Inbound server manager: owns every inbound A2A server instance. Each
|
|
1508
|
-
* instance binds one agent preset (its session pool is composed from
|
|
1509
|
-
* preset)
|
|
1510
|
-
*
|
|
1511
|
-
*
|
|
1512
|
-
*
|
|
1513
|
-
*
|
|
1506
|
+
* instance binds one concrete agent preset (its session pool is composed from
|
|
1507
|
+
* that preset) and serves its own endpoint and AgentCard route. Instances are
|
|
1508
|
+
* persisted in the `inbound_servers` domain table and assembled on boot; the
|
|
1509
|
+
* manager owns route registration and the full lifecycle
|
|
1510
|
+
* (add/enable/disable/update/remove) driven from the GUI and facade, and
|
|
1511
|
+
* disposes every instance's environment on teardown.
|
|
1514
1512
|
*
|
|
1515
|
-
* Skill declaration
|
|
1516
|
-
*
|
|
1517
|
-
*
|
|
1518
|
-
*
|
|
1513
|
+
* Skill declaration is DERIVED, never typed: "the preset decides its skills;
|
|
1514
|
+
* everything is a plugin." An instance's AgentCard skills are the
|
|
1515
|
+
* model-invocable entries of its preset's skill directory — the preset's
|
|
1516
|
+
* standing scope key (`agentPresets.standingKeyFor`) plus
|
|
1517
|
+
* `ctx.skills.list({ scope })` — resolved automatically at add/update/boot
|
|
1518
|
+
* and cached on the live instance; the creator types no skill text. A missing
|
|
1519
|
+
* skills service or standing mount falls back to a built-in `chat` skill so
|
|
1520
|
+
* minimal compositions stay exercisable.
|
|
1519
1521
|
* @module dsh-a2a/servers/inbound-manager
|
|
1520
1522
|
*/
|
|
1521
1523
|
function refuseExecutor(reason) {
|
|
@@ -1526,15 +1528,8 @@ function refuseExecutor(reason) {
|
|
|
1526
1528
|
}
|
|
1527
1529
|
};
|
|
1528
1530
|
}
|
|
1529
|
-
/**
|
|
1530
|
-
function
|
|
1531
|
-
if (skills !== void 0 && skills.length > 0) return skills;
|
|
1532
|
-
if (presetName !== void 0 && presetName.length > 0) return [{
|
|
1533
|
-
id: "chat",
|
|
1534
|
-
name: presetName,
|
|
1535
|
-
description: `Compose inbound sessions from the "${presetName}" agent preset.`,
|
|
1536
|
-
tags: ["preset"]
|
|
1537
|
-
}];
|
|
1531
|
+
/** Built-in fallback skill when no skills service / standing mount exists. */
|
|
1532
|
+
function chatFallbackSkills() {
|
|
1538
1533
|
return [{
|
|
1539
1534
|
id: "chat",
|
|
1540
1535
|
name: "chat",
|
|
@@ -1542,11 +1537,39 @@ function defaultSkillFor(skills, presetName) {
|
|
|
1542
1537
|
tags: ["chat"]
|
|
1543
1538
|
}];
|
|
1544
1539
|
}
|
|
1545
|
-
/**
|
|
1546
|
-
|
|
1547
|
-
|
|
1540
|
+
/**
|
|
1541
|
+
* Derive an instance's AgentCard skills from its preset's skill directory.
|
|
1542
|
+
*
|
|
1543
|
+
* `agentPresets.standingKeyFor(preset)` yields the preset's standing scope
|
|
1544
|
+
* key (no agent required); `ctx.skills.list({ scope })` returns the catalogue
|
|
1545
|
+
* that preset agent actually sees (its layer + the deployment global). Only
|
|
1546
|
+
* model-invocable entries are advertised, mapped to `AgentSkill` (id = name,
|
|
1547
|
+
* name = name). Any missing service, failed mount, or empty catalogue falls
|
|
1548
|
+
* back to the built-in `chat` skill.
|
|
1549
|
+
*
|
|
1550
|
+
* @param agentPresets - the preset roster, or undefined.
|
|
1551
|
+
* @param skills - the skill registry, or undefined.
|
|
1552
|
+
* @param preset - the instance's preset id; undefined = deployment default.
|
|
1553
|
+
*/
|
|
1554
|
+
async function derivePresetSkills(agentPresets, skills, preset) {
|
|
1555
|
+
if (agentPresets?.standingKeyFor === void 0 || skills === void 0) return chatFallbackSkills();
|
|
1556
|
+
try {
|
|
1557
|
+
const scope = await agentPresets.standingKeyFor(preset);
|
|
1558
|
+
const advertised = (await skills.list({ scope })).filter((row) => row.invocation?.modelInvocable !== false).map((row) => ({
|
|
1559
|
+
id: row.name,
|
|
1560
|
+
name: row.name,
|
|
1561
|
+
...row.description !== void 0 && row.description.length > 0 ? { description: row.description } : {}
|
|
1562
|
+
}));
|
|
1563
|
+
return advertised.length > 0 ? advertised : chatFallbackSkills();
|
|
1564
|
+
} catch {
|
|
1565
|
+
return chatFallbackSkills();
|
|
1566
|
+
}
|
|
1567
|
+
}
|
|
1568
|
+
/** Assemble one live instance (skills already derived from the preset). */
|
|
1569
|
+
function assemble(record, skills, host) {
|
|
1548
1570
|
const endpointPath = record.endpointPath;
|
|
1549
1571
|
const cardPath = `${endpointPath.replace(/\/$/, "")}/agent-card.json`;
|
|
1572
|
+
const preset = record.preset ?? host.defaultPresetId;
|
|
1550
1573
|
const card = buildCard({
|
|
1551
1574
|
baseUrl: host.defaultBaseUrl,
|
|
1552
1575
|
endpointPath,
|
|
@@ -1559,7 +1582,7 @@ function assemble(record, host) {
|
|
|
1559
1582
|
const sessionPool = host.agents ? new ContextSessionPool(host.agents, {
|
|
1560
1583
|
cwd: host.sessionCwd,
|
|
1561
1584
|
...host.agentPresets !== void 0 ? { agentPresets: host.agentPresets } : {},
|
|
1562
|
-
...
|
|
1585
|
+
...preset !== void 0 ? { presetId: () => preset } : {},
|
|
1563
1586
|
resolveAgentOptions: () => host.resolveDefaultModel?.()
|
|
1564
1587
|
}) : void 0;
|
|
1565
1588
|
const executors = new ExecutorSet({ chat: "session" }, sessionPool ? createSessionExecutor(sessionPool) : refuseExecutor("no agent loop mounted"), sessionPool !== void 0 && host.subagents !== void 0 ? createSubagentExecutor({
|
|
@@ -1610,6 +1633,8 @@ function assemble(record, host) {
|
|
|
1610
1633
|
return {
|
|
1611
1634
|
id: record.id,
|
|
1612
1635
|
record,
|
|
1636
|
+
preset,
|
|
1637
|
+
skills,
|
|
1613
1638
|
card,
|
|
1614
1639
|
server,
|
|
1615
1640
|
routes,
|
|
@@ -1657,7 +1682,7 @@ var DomainInboundStore = class DomainInboundStore {
|
|
|
1657
1682
|
function safeParse$1(raw) {
|
|
1658
1683
|
try {
|
|
1659
1684
|
const parsed = JSON.parse(raw);
|
|
1660
|
-
if (typeof parsed.id !== "string" || typeof parsed.name !== "string"
|
|
1685
|
+
if (typeof parsed.id !== "string" || typeof parsed.name !== "string") return void 0;
|
|
1661
1686
|
return parsed;
|
|
1662
1687
|
} catch {
|
|
1663
1688
|
return;
|
|
@@ -1672,10 +1697,10 @@ var InboundServerManager = class {
|
|
|
1672
1697
|
this.host = host;
|
|
1673
1698
|
this.store = store;
|
|
1674
1699
|
}
|
|
1675
|
-
/** Assemble every persisted
|
|
1676
|
-
boot() {
|
|
1700
|
+
/** Assemble every persisted instance (skills derived per preset). */
|
|
1701
|
+
async boot() {
|
|
1677
1702
|
for (const record of this.store.list()) try {
|
|
1678
|
-
const live = assemble(record, this.host);
|
|
1703
|
+
const live = assemble(record, await derivePresetSkills(this.host.agentPresets, this.host.skills, record.preset ?? this.host.defaultPresetId), this.host);
|
|
1679
1704
|
this.live.set(record.id, live);
|
|
1680
1705
|
if (record.enabled) live.routes.enable();
|
|
1681
1706
|
} catch (err) {
|
|
@@ -1688,16 +1713,6 @@ var InboundServerManager = class {
|
|
|
1688
1713
|
get(id) {
|
|
1689
1714
|
return this.live.get(id);
|
|
1690
1715
|
}
|
|
1691
|
-
/** Resolve the display name of a preset id (undefined when unnamed/absent). */
|
|
1692
|
-
async presetDisplayName(preset) {
|
|
1693
|
-
if (preset === void 0 || this.host.agentPresets === void 0) return void 0;
|
|
1694
|
-
try {
|
|
1695
|
-
const resolved = await this.host.agentPresets.resolve(preset);
|
|
1696
|
-
return resolved.name ?? resolved.id;
|
|
1697
|
-
} catch {
|
|
1698
|
-
return;
|
|
1699
|
-
}
|
|
1700
|
-
}
|
|
1701
1716
|
/** Create, persist, and assemble a new inbound instance. */
|
|
1702
1717
|
async add(input) {
|
|
1703
1718
|
const id = this.newId(input.name);
|
|
@@ -1705,20 +1720,19 @@ var InboundServerManager = class {
|
|
|
1705
1720
|
ok: false,
|
|
1706
1721
|
message: `inbound server ${id} already exists`
|
|
1707
1722
|
};
|
|
1708
|
-
const
|
|
1723
|
+
const preset = input.preset ?? this.host.defaultPresetId;
|
|
1709
1724
|
const record = {
|
|
1710
1725
|
id,
|
|
1711
1726
|
name: input.name,
|
|
1712
1727
|
description: input.description,
|
|
1713
1728
|
version: input.version,
|
|
1714
1729
|
endpointPath: input.endpointPath ?? `/a2a/${id}`,
|
|
1715
|
-
...
|
|
1730
|
+
...preset !== void 0 ? { preset } : {},
|
|
1716
1731
|
...input.authTokenEnv !== void 0 ? { authTokenEnv: input.authTokenEnv } : {},
|
|
1717
|
-
skills: [...defaultSkillFor(input.skills, presetName)],
|
|
1718
1732
|
enabled: input.enabled ?? true
|
|
1719
1733
|
};
|
|
1720
1734
|
try {
|
|
1721
|
-
const live = assemble(record, this.host);
|
|
1735
|
+
const live = assemble(record, await derivePresetSkills(this.host.agentPresets, this.host.skills, preset), this.host);
|
|
1722
1736
|
await this.store.save(record);
|
|
1723
1737
|
this.live.set(id, live);
|
|
1724
1738
|
if (record.enabled) live.routes.enable();
|
|
@@ -1734,7 +1748,7 @@ var InboundServerManager = class {
|
|
|
1734
1748
|
};
|
|
1735
1749
|
}
|
|
1736
1750
|
}
|
|
1737
|
-
/** Persist, rebuild, and apply a patch onto a live instance. */
|
|
1751
|
+
/** Persist, rebuild (re-deriving skills), and apply a patch onto a live instance. */
|
|
1738
1752
|
async update(id, patch) {
|
|
1739
1753
|
const live = this.live.get(id);
|
|
1740
1754
|
const stored = this.store.get(id);
|
|
@@ -1750,12 +1764,11 @@ var InboundServerManager = class {
|
|
|
1750
1764
|
endpointPath: patch.endpointPath ?? stored.endpointPath,
|
|
1751
1765
|
...patch.preset !== void 0 ? { preset: patch.preset } : {},
|
|
1752
1766
|
...patch.authTokenEnv !== void 0 ? { authTokenEnv: patch.authTokenEnv } : {},
|
|
1753
|
-
skills: patch.skills ?? stored.skills,
|
|
1754
1767
|
enabled: stored.enabled
|
|
1755
1768
|
};
|
|
1756
1769
|
try {
|
|
1757
1770
|
await this.store.save(next);
|
|
1758
|
-
const replaced = assemble(next, this.host);
|
|
1771
|
+
const replaced = assemble(next, await derivePresetSkills(this.host.agentPresets, this.host.skills, next.preset ?? this.host.defaultPresetId), this.host);
|
|
1759
1772
|
const wasEnabled = live.routes.active;
|
|
1760
1773
|
live.dispose();
|
|
1761
1774
|
this.live.set(id, replaced);
|
|
@@ -2518,6 +2531,7 @@ function apply(ctx, config) {
|
|
|
2518
2531
|
const tools = probeService(ctx, "tools", "register");
|
|
2519
2532
|
const agents = probeService(ctx, "agents", "create");
|
|
2520
2533
|
const agentPresets = probeService(ctx, "agentPresets", "list");
|
|
2534
|
+
const skills = probeService(ctx, "skills", "list");
|
|
2521
2535
|
const subagents = probeService(ctx, "subagents", "start");
|
|
2522
2536
|
const commandsRef = probeService(ctx, "commands", "register");
|
|
2523
2537
|
const baseUrl = config.baseUrl ?? `http://127.0.0.1:${webServerPort(webServer) ?? process.env["DSH_A2A_PORT"] ?? "3000"}`;
|
|
@@ -2528,14 +2542,16 @@ function apply(ctx, config) {
|
|
|
2528
2542
|
logger,
|
|
2529
2543
|
...agents !== void 0 ? { agents } : {},
|
|
2530
2544
|
...agentPresets !== void 0 ? { agentPresets } : {},
|
|
2545
|
+
...skills !== void 0 ? { skills } : {},
|
|
2531
2546
|
...subagents !== void 0 ? { subagents } : {},
|
|
2547
|
+
...agentPresets?.defaultId !== void 0 ? { defaultPresetId: agentPresets.defaultId } : {},
|
|
2532
2548
|
resolveDefaultModel: () => resolveDefaultModel(ctx),
|
|
2533
2549
|
sessionCwd: inboundCwd,
|
|
2534
2550
|
defaultBaseUrl: baseUrl,
|
|
2535
2551
|
subagentProvider,
|
|
2536
2552
|
newId: () => crypto.randomUUID().slice(0, 8)
|
|
2537
2553
|
}, new DomainInboundStore(domain.inbound_servers));
|
|
2538
|
-
inboundManager.boot();
|
|
2554
|
+
await inboundManager.boot();
|
|
2539
2555
|
const outboundManager = new OutboundServerManager({
|
|
2540
2556
|
registrar: { register: (def) => tools?.register(def) },
|
|
2541
2557
|
tokenOf: (env) => env ? process.env[env] : void 0,
|
|
@@ -2579,12 +2595,12 @@ function makeFacade(host) {
|
|
|
2579
2595
|
description: r.description,
|
|
2580
2596
|
version: r.version,
|
|
2581
2597
|
endpointPath: live.endpointPath,
|
|
2582
|
-
...
|
|
2598
|
+
...live.preset !== void 0 ? { preset: live.preset } : {},
|
|
2583
2599
|
...r.authTokenEnv !== void 0 ? { authTokenEnv: r.authTokenEnv } : {},
|
|
2584
2600
|
cardPath: live.cardPath,
|
|
2585
2601
|
...live.card.supportedInterfaces?.[0]?.url !== void 0 ? { cardUrl: live.card.supportedInterfaces[0].url } : {},
|
|
2586
2602
|
enabled: live.routes.active,
|
|
2587
|
-
skills:
|
|
2603
|
+
skills: live.skills.map((s) => ({
|
|
2588
2604
|
id: s.id,
|
|
2589
2605
|
name: s.name,
|
|
2590
2606
|
...s.description != null ? { description: s.description } : {}
|
|
@@ -2601,12 +2617,13 @@ function makeFacade(host) {
|
|
|
2601
2617
|
},
|
|
2602
2618
|
async presets() {
|
|
2603
2619
|
if (host.agentPresets === void 0) return [];
|
|
2620
|
+
const defaultId = host.agentPresets.defaultId;
|
|
2604
2621
|
try {
|
|
2605
2622
|
return (await host.agentPresets.list()).map((p) => ({
|
|
2606
2623
|
id: p.id,
|
|
2607
2624
|
...p.name !== void 0 ? { name: p.name } : {},
|
|
2608
2625
|
...p.description !== void 0 ? { description: p.description } : {},
|
|
2609
|
-
...p.
|
|
2626
|
+
...defaultId !== void 0 && p.id === defaultId ? { isDefault: true } : {}
|
|
2610
2627
|
}));
|
|
2611
2628
|
} catch {
|
|
2612
2629
|
return [];
|
|
@@ -2623,7 +2640,6 @@ function makeFacade(host) {
|
|
|
2623
2640
|
...input.endpointPath !== void 0 ? { endpointPath: input.endpointPath } : {},
|
|
2624
2641
|
...input.preset !== void 0 ? { preset: input.preset } : {},
|
|
2625
2642
|
...input.authTokenEnv !== void 0 ? { authTokenEnv: input.authTokenEnv } : {},
|
|
2626
|
-
...input.skills !== void 0 ? { skills: input.skills } : {},
|
|
2627
2643
|
...input.enabled !== void 0 ? { enabled: input.enabled } : {}
|
|
2628
2644
|
});
|
|
2629
2645
|
host.logger(`[a2a] inbound created: ${result.message}`);
|
package/lib/types/api.d.ts
CHANGED
|
@@ -21,11 +21,6 @@ export type ApiAction = {
|
|
|
21
21
|
readonly endpointPath?: string;
|
|
22
22
|
readonly preset?: string;
|
|
23
23
|
readonly authTokenEnv?: string;
|
|
24
|
-
readonly skills?: readonly {
|
|
25
|
-
id: string;
|
|
26
|
-
name: string;
|
|
27
|
-
description?: string;
|
|
28
|
-
}[];
|
|
29
24
|
readonly enabled?: boolean;
|
|
30
25
|
} | {
|
|
31
26
|
readonly action: 'inbound.remove' | 'inbound.enable' | 'inbound.disable' | 'inbound.update';
|
|
@@ -36,11 +31,6 @@ export type ApiAction = {
|
|
|
36
31
|
readonly endpointPath?: string;
|
|
37
32
|
readonly preset?: string;
|
|
38
33
|
readonly authTokenEnv?: string;
|
|
39
|
-
readonly skills?: readonly {
|
|
40
|
-
id: string;
|
|
41
|
-
name: string;
|
|
42
|
-
description?: string;
|
|
43
|
-
}[];
|
|
44
34
|
} | {
|
|
45
35
|
readonly action: 'outbound.create';
|
|
46
36
|
readonly name: string;
|
package/lib/types/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1O;IAAE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAChS;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACjN;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACzH;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7D,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CACnC;AAsBD,mEAAmE;AACnE,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
|
package/lib/types/api.js
CHANGED
|
@@ -79,7 +79,6 @@ async function dispatch(payload, impl) {
|
|
|
79
79
|
...(payload.endpointPath !== undefined ? { endpointPath: payload.endpointPath } : {}),
|
|
80
80
|
...(payload.preset !== undefined ? { preset: payload.preset } : {}),
|
|
81
81
|
...(payload.authTokenEnv !== undefined ? { authTokenEnv: payload.authTokenEnv } : {}),
|
|
82
|
-
...(payload.skills !== undefined ? { skills: payload.skills } : {}),
|
|
83
82
|
...(payload.enabled !== undefined ? { enabled: payload.enabled } : {}),
|
|
84
83
|
});
|
|
85
84
|
case 'inbound.remove':
|
|
@@ -96,7 +95,6 @@ async function dispatch(payload, impl) {
|
|
|
96
95
|
...(payload.endpointPath !== undefined ? { endpointPath: payload.endpointPath } : {}),
|
|
97
96
|
...(payload.preset !== undefined ? { preset: payload.preset } : {}),
|
|
98
97
|
...(payload.authTokenEnv !== undefined ? { authTokenEnv: payload.authTokenEnv } : {}),
|
|
99
|
-
...(payload.skills !== undefined ? { skills: payload.skills } : {}),
|
|
100
98
|
});
|
|
101
99
|
case 'outbound.create':
|
|
102
100
|
return impl.createOutboundServer({
|
package/lib/types/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAsBH,SAAS,QAAQ,CAAC,GAAoB;IACpC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QACrD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACpE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,6DAA6D;AAC7D,SAAS,UAAU,CAAC,GAAoB;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAA;IACzC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,kBAAkB,CAAA;AACvF,CAAC;AAED,SAAS,IAAI,CAAC,GAAmB,EAAE,MAAc,EAAE,KAAc;IAC/D,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAA;IAC1F,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AAChC,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAoB,EACpB,GAAmB,EACnB,IAAoB;IAEpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;QACpD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAChD,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACxD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACpC,OAAM;IACR,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;QAChC,OAAM;IACR,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,OAAkB,CAAA;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAc,CAAA;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAA;YAC3D,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACxC,OAAM;IACR,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;IACpD,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS,UAAU,CAAC,IAAoB;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAgH,CAAA;IAC1I,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;QACjC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAwB;QAC7C,0EAA0E;QAC1E,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAuB;KAC/D,CAAA;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,OAAkB,EAAE,IAAoB;IAC9D,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC,mBAAmB,CAAC;gBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,GAAG,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAE7E,0DAA0D;AAC1D,eAAO,MAAM,MAAM,UAAY,CAAA;AAgC/B,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAc9C;AAED,wEAAwE;AACxE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC/C,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACjD,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CACnC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAE7E,0DAA0D;AAC1D,eAAO,MAAM,MAAM,UAAY,CAAA;AAgC/B,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAc9C;AAED,wEAAwE;AACxE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC/C,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACjD,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CACnC;AA0CD,KAAK,YAAY,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAEpD,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CA6V7D"}
|