@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 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, declared skills and auth, and
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 an agent preset
28
- (e.g. `ptc`, `standard`, `minimal`, …); inbound tasks execute in sessions
29
- composed from that preset through the standard `agentPresets` resolve+mount
30
- path.
31
- - **Creator-declared skill declarations** — the AgentCard's skills are the
32
- text the creator entered (id/name/description per skill); when left empty at
33
- creation, the default is the bound preset's display name (built-in `chat`
34
- otherwise). The v0.2 tool white-list derivation is removed.
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 optional preset; enabled instances map remote skills
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, declare skills, optionally set an auth env). It is enabled
84
- immediately and publishes its own endpoint and AgentCard.
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, auth env, skill-declaration textarea), start/stop, edit, and
108
- remove them; each row shows its endpoint, preset, declared skills and live
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 / 技能宣告 / 鉴权;也能**同时接入多个出站 A2A server**,每个独立 preset,远端技能映射为模型工具。所有 server 实例的创建、启停、编辑、删除全部在 GUI 完成——无需改任何配置文件。
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 绑定一个 agent preset(如 `ptc`、`standard`、`minimal`、…);入站任务在按该 preset 组装的会话中执行(标准 `agentPresets` resolve+mount 路径)。
14
- - **创建者输入技能宣告** — AgentCard 技能即创建者输入的文字(每个技能 id/name/description);创建留空时默认取所绑 preset 展示名(否则内置 `chat`)。v0.2 工具白名单派生机制已删除。
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、填技能宣告、可选鉴权 env)。创建即时启用并发布自己的端点与 AgentCard。
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 选择器、鉴权 env、技能宣告表单),启停、编辑、删除;每行显示端点、preset、宣告技能与实时 AgentCard URL。
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
- }, (0, react.createElement)("option", { value: "" }, "Preset(默认)"), ...presets.map((p) => (0, react.createElement)("option", {
219
+ }, ...presets.map((p) => (0, react.createElement)("option", {
244
220
  value: p.id,
245
- key: p.id
246
- }, `${p.name ?? p.id}${p.isDefault ? "(默认)" : ""}`))), (0, react.createElement)("input", {
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
- }, (0, react.createElement)("textarea", {
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" }, "技能宣告由创建者输入,默认取所绑定的 preset 展示名(无 preset 时为内置 chat)。")), (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", {
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
- }, (0, react.createElement)("option", { value: "" }, "Preset(默认)"), ...presets.map((p) => (0, react.createElement)("option", {
289
+ }, ...presets.map((p) => (0, react.createElement)("option", {
322
290
  value: p.id,
323
- key: p.id
324
- }, `${p.name ?? p.id}${p.isDefault ? "(默认)" : ""}`))), (0, react.createElement)("input", {
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 that
1509
- * preset), advertises creator-declared skills, and serves its own endpoint and
1510
- * AgentCard route. Instances are persisted in the `inbound_servers` domain
1511
- * table and assembled on boot; the manager owns route registration and the
1512
- * full lifecycle (add/enable/disable/update/remove) driven from the GUI and
1513
- * facade, and disposes every instance's environment on teardown.
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: the stored `skills` list is exactly what the creator
1516
- * declared. When a creator leaves it empty at creation time, the default skill
1517
- * derives from the bound preset's display name (else the built-in `chat`
1518
- * skill), per the v1.0 design — the v0.2 tool white-list derivation is gone.
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
- /** Default skkill when a creator declares none: the preset display name. */
1530
- function defaultSkillFor(skills, presetName) {
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
- /** Assemble one live instance from a persisted record. */
1546
- function assemble(record, host) {
1547
- const skills = record.skills;
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
- ...record.preset !== void 0 ? { presetId: () => record.preset } : {},
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" || !Array.isArray(parsed.skills)) return void 0;
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 enabled instance (boot). */
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 presetName = await this.presetDisplayName(input.preset);
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
- ...input.preset !== void 0 ? { preset: input.preset } : {},
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
- ...r.preset !== void 0 ? { preset: r.preset } : {},
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: r.skills.map((s) => ({
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.isDefault === true ? { isDefault: true } : {}
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}`);
@@ -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;
@@ -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,MAAM,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3T;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,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GACjX;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"}
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({
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
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,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC,CAAA;QACJ,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC7C,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACvD,KAAK,iBAAiB;YACpB,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACxD,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE;gBAC1C,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,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;aACtF,CAAC,CAAA;QACJ,KAAK,iBAAiB;YACpB,OAAO,IAAI,CAAC,oBAAoB,CAAC;gBAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,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,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7E,CAAC,CAAA;QACJ,KAAK,iBAAiB;YACpB,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC9C,KAAK,iBAAiB;YACpB,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACxD,KAAK,kBAAkB;YACrB,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACzD,KAAK,kBAAkB;YACrB,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC/C,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACpC,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACtC;YACE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,MAAM,CAAE,OAAgC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAA;IACvG,CAAC;AACH,CAAC"}
@@ -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;AA6DD,KAAK,YAAY,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAEpD,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CA+W7D"}
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"}