@ryubyte/dsh-a2a 0.1.5 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +57 -97
- package/README.md +40 -87
- package/lib/client.js +601 -443
- package/lib/index.js +185 -14
- package/lib/types/a2a-config.d.ts.map +1 -1
- package/lib/types/client/dashboard.css.d.ts +20 -0
- package/lib/types/client/dashboard.css.d.ts.map +1 -0
- package/lib/types/client/index.d.ts +4 -0
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/dashboard.d.ts +20 -0
- package/lib/types/dashboard.d.ts.map +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/server.d.ts +33 -1
- package/lib/types/server.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/a2a-config.ts +15 -2
- package/src/client/dashboard.css.ts +295 -0
- package/src/client/index.ts +669 -265
- package/src/dashboard.ts +39 -0
- package/src/index.ts +138 -17
- package/src/server.ts +67 -1
package/lib/index.js
CHANGED
|
@@ -575,6 +575,7 @@ var A2AServer = class {
|
|
|
575
575
|
options;
|
|
576
576
|
store;
|
|
577
577
|
card;
|
|
578
|
+
/** JSON-RPC route path. Mutable: `updateCard` can move it at runtime. */
|
|
578
579
|
endpointPath;
|
|
579
580
|
execute;
|
|
580
581
|
listeners = /* @__PURE__ */ new Set();
|
|
@@ -595,6 +596,14 @@ var A2AServer = class {
|
|
|
595
596
|
*/
|
|
596
597
|
setBaseUrl(baseUrl) {
|
|
597
598
|
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
599
|
+
this.rebuildInterfaceUrls();
|
|
600
|
+
}
|
|
601
|
+
/** The base URL currently advertised in the AgentCard. */
|
|
602
|
+
getBaseUrl() {
|
|
603
|
+
return this.baseUrl;
|
|
604
|
+
}
|
|
605
|
+
/** Rebuild the advertised interface URL(s) from the current baseUrl + path. */
|
|
606
|
+
rebuildInterfaceUrls() {
|
|
598
607
|
this.card.supportedInterfaces = this.card.supportedInterfaces.map((iface) => ({
|
|
599
608
|
...iface,
|
|
600
609
|
url: `${this.baseUrl}${this.endpointPath}`
|
|
@@ -619,6 +628,43 @@ var A2AServer = class {
|
|
|
619
628
|
get authConfigured() {
|
|
620
629
|
return Boolean(this.options.authToken);
|
|
621
630
|
}
|
|
631
|
+
/**
|
|
632
|
+
* Update the advertised identity (name/description/version/baseUrl/
|
|
633
|
+
* endpointPath/skills) at runtime, in place. Mirrors setBaseUrl/setAuthToken:
|
|
634
|
+
* mutates `this.options` and the existing `this.card` object's properties —
|
|
635
|
+
* never reassigns `this.card`, so the route handler closure that reads
|
|
636
|
+
* `server.card` per request keeps seeing the live card.
|
|
637
|
+
*
|
|
638
|
+
* Returns `{ endpointChanged }`: when the JSON-RPC path moved, the caller
|
|
639
|
+
* (which owns route registration) must re-register routes on the new path —
|
|
640
|
+
* `updateCard` only mutates the advertised URL, not the live HTTP routes.
|
|
641
|
+
*/
|
|
642
|
+
updateCard(patch) {
|
|
643
|
+
let endpointChanged = false;
|
|
644
|
+
if (patch.agentName !== void 0) {
|
|
645
|
+
this.options.agentName = patch.agentName;
|
|
646
|
+
this.card.name = patch.agentName;
|
|
647
|
+
}
|
|
648
|
+
if (patch.agentDescription !== void 0) {
|
|
649
|
+
this.options.agentDescription = patch.agentDescription;
|
|
650
|
+
this.card.description = patch.agentDescription;
|
|
651
|
+
}
|
|
652
|
+
if (patch.agentVersion !== void 0) {
|
|
653
|
+
this.options.agentVersion = patch.agentVersion;
|
|
654
|
+
this.card.version = patch.agentVersion;
|
|
655
|
+
}
|
|
656
|
+
if (patch.skills !== void 0) {
|
|
657
|
+
this.options.skills = patch.skills;
|
|
658
|
+
this.card.skills = patch.skills;
|
|
659
|
+
}
|
|
660
|
+
if (patch.endpointPath !== void 0 && patch.endpointPath !== this.endpointPath) {
|
|
661
|
+
this.endpointPath = patch.endpointPath || "/a2a";
|
|
662
|
+
endpointChanged = true;
|
|
663
|
+
}
|
|
664
|
+
if (patch.baseUrl !== void 0) this.baseUrl = patch.baseUrl.replace(/\/$/, "");
|
|
665
|
+
if (patch.baseUrl !== void 0 || endpointChanged) this.rebuildInterfaceUrls();
|
|
666
|
+
return { endpointChanged };
|
|
667
|
+
}
|
|
622
668
|
buildCard() {
|
|
623
669
|
const iface = {
|
|
624
670
|
url: `${this.baseUrl.replace(/\/$/, "")}${this.endpointPath}`,
|
|
@@ -1398,6 +1444,29 @@ var DashboardRegistry = class {
|
|
|
1398
1444
|
ok: false,
|
|
1399
1445
|
message: "server-status is not wired (server mode not mounted)"
|
|
1400
1446
|
};
|
|
1447
|
+
case "set-server-identity":
|
|
1448
|
+
if (!this.hooks.setServerIdentity) return {
|
|
1449
|
+
ok: false,
|
|
1450
|
+
message: "set-server-identity is not wired (server not mounted)"
|
|
1451
|
+
};
|
|
1452
|
+
return this.hooks.setServerIdentity({
|
|
1453
|
+
agentName: payload?.agentName,
|
|
1454
|
+
agentDescription: payload?.agentDescription,
|
|
1455
|
+
agentVersion: payload?.agentVersion,
|
|
1456
|
+
baseUrl: payload?.baseUrl,
|
|
1457
|
+
endpointPath: payload?.endpointPath,
|
|
1458
|
+
skills: payload?.skills
|
|
1459
|
+
});
|
|
1460
|
+
case "update-agent":
|
|
1461
|
+
if (!this.hooks.updateAgent) return {
|
|
1462
|
+
ok: false,
|
|
1463
|
+
message: "update-agent is not wired (client mode not mounted)"
|
|
1464
|
+
};
|
|
1465
|
+
return this.hooks.updateAgent(target, {
|
|
1466
|
+
timeoutMs: typeof payload?.timeoutMs === "number" ? payload.timeoutMs : void 0,
|
|
1467
|
+
mapSkills: typeof payload?.mapSkills === "boolean" ? payload.mapSkills : void 0,
|
|
1468
|
+
bearerToken: payload?.bearerToken || void 0
|
|
1469
|
+
});
|
|
1401
1470
|
default: return {
|
|
1402
1471
|
ok: false,
|
|
1403
1472
|
message: `unknown action ${action}`
|
|
@@ -1551,6 +1620,7 @@ function resolveConfigPath() {
|
|
|
1551
1620
|
if (base && existsSync(profileFile)) return profileFile;
|
|
1552
1621
|
const globalFile = join(home, A2A_CONFIG_FILENAME);
|
|
1553
1622
|
if (existsSync(globalFile)) return globalFile;
|
|
1623
|
+
if (profileName && profileName !== "." && profileName !== ".." && !profileName.includes("/") && !profileName.includes("\\")) return join(home, "profiles", profileName, A2A_CONFIG_FILENAME);
|
|
1554
1624
|
return cwdFile;
|
|
1555
1625
|
}
|
|
1556
1626
|
/** Read the persisted config (empty object when absent or unreadable). */
|
|
@@ -2002,6 +2072,53 @@ function apply(ctx, config = {}) {
|
|
|
2002
2072
|
ok: true,
|
|
2003
2073
|
message: `agent ${connectionId} removed`
|
|
2004
2074
|
};
|
|
2075
|
+
},
|
|
2076
|
+
updateAgent: async (connectionId, patch) => {
|
|
2077
|
+
const entry = live.get(connectionId);
|
|
2078
|
+
const snap = dashboard.snapshot().outbound.find((o) => o.connectionId === connectionId);
|
|
2079
|
+
const name = entry?.name ?? snap?.name;
|
|
2080
|
+
const url = entry?.agentCardUrl ?? snap?.agentCardUrl;
|
|
2081
|
+
entry?.configured ?? snap?.configured;
|
|
2082
|
+
if (!name || !url) return {
|
|
2083
|
+
ok: false,
|
|
2084
|
+
message: `connection ${connectionId} not found`
|
|
2085
|
+
};
|
|
2086
|
+
const found = findInitial({
|
|
2087
|
+
name,
|
|
2088
|
+
agentCardUrl: url
|
|
2089
|
+
});
|
|
2090
|
+
if (!found) return {
|
|
2091
|
+
ok: false,
|
|
2092
|
+
message: "only saved (configured) agents can be edited"
|
|
2093
|
+
};
|
|
2094
|
+
if (patch.timeoutMs !== void 0) found.item.timeoutMs = patch.timeoutMs;
|
|
2095
|
+
if (patch.mapSkills !== void 0) found.item.mapSkills = patch.mapSkills;
|
|
2096
|
+
if (patch.bearerToken !== void 0) found.item.bearerToken = patch.bearerToken || void 0;
|
|
2097
|
+
persistAgents();
|
|
2098
|
+
const item = found.item;
|
|
2099
|
+
if (item.enabled === false) return {
|
|
2100
|
+
ok: true,
|
|
2101
|
+
message: `agent ${connectionId} updated (config kept, still disabled)`
|
|
2102
|
+
};
|
|
2103
|
+
if (entry) {
|
|
2104
|
+
entry.disposeAll();
|
|
2105
|
+
live.delete(connectionId);
|
|
2106
|
+
}
|
|
2107
|
+
dashboard.setAgentState(connectionId, "reconnecting");
|
|
2108
|
+
const newId = await connect(item.name, item.agentCardUrl, item.configured, {
|
|
2109
|
+
bearerToken: item.bearerToken,
|
|
2110
|
+
timeoutMs: item.timeoutMs,
|
|
2111
|
+
mapSkills: item.mapSkills
|
|
2112
|
+
});
|
|
2113
|
+
if (!newId) return {
|
|
2114
|
+
ok: false,
|
|
2115
|
+
message: `update of ${connectionId} failed to reconnect`
|
|
2116
|
+
};
|
|
2117
|
+
dashboard.removeAgent(connectionId);
|
|
2118
|
+
return {
|
|
2119
|
+
ok: true,
|
|
2120
|
+
message: `agent ${connectionId} updated as ${newId} (saved to ${configPath})`
|
|
2121
|
+
};
|
|
2005
2122
|
}
|
|
2006
2123
|
});
|
|
2007
2124
|
ctx.effect(() => {
|
|
@@ -2034,7 +2151,7 @@ function apply(ctx, config = {}) {
|
|
|
2034
2151
|
}, "a2a: client tools");
|
|
2035
2152
|
});
|
|
2036
2153
|
}
|
|
2037
|
-
|
|
2154
|
+
{
|
|
2038
2155
|
const store = new TaskStore();
|
|
2039
2156
|
const taskPeer = /* @__PURE__ */ new Map();
|
|
2040
2157
|
const pendingSettled = /* @__PURE__ */ new Set();
|
|
@@ -2043,6 +2160,10 @@ function apply(ctx, config = {}) {
|
|
|
2043
2160
|
const webServer = ctx.webServer;
|
|
2044
2161
|
const baseUrl = mergedConfig.baseUrl ?? inferBaseUrl(webServer.host, webServer.port);
|
|
2045
2162
|
const endpointPath = mergedConfig.endpointPath ?? DEFAULT_ENDPOINT;
|
|
2163
|
+
if (mergedConfig.baseUrl) try {
|
|
2164
|
+
const pinnedPort = new URL(mergedConfig.baseUrl).port;
|
|
2165
|
+
if (pinnedPort && Number(pinnedPort) !== webServer.port) logger?.warn?.(`[a2a] pinned baseUrl ${mergedConfig.baseUrl} port ${pinnedPort} != listen port ${webServer.port}; remote callers may be unreachable. Clear baseUrl in settings to auto-infer.`);
|
|
2166
|
+
} catch {}
|
|
2046
2167
|
let execute = mergedConfig.execute;
|
|
2047
2168
|
let executorKind = execute ? "custom" : "none";
|
|
2048
2169
|
let disposeExecutor;
|
|
@@ -2099,7 +2220,7 @@ function apply(ctx, config = {}) {
|
|
|
2099
2220
|
} else pendingSettled.add(taskId);
|
|
2100
2221
|
}
|
|
2101
2222
|
}, store);
|
|
2102
|
-
let enabled =
|
|
2223
|
+
let enabled = wantsServer;
|
|
2103
2224
|
let disposers = [];
|
|
2104
2225
|
const registerRoutes = () => {
|
|
2105
2226
|
disposers.push(webServer.register({
|
|
@@ -2152,19 +2273,23 @@ function apply(ctx, config = {}) {
|
|
|
2152
2273
|
for (const d of disposers) d();
|
|
2153
2274
|
disposers = [];
|
|
2154
2275
|
};
|
|
2155
|
-
|
|
2156
|
-
|
|
2276
|
+
if (enabled) {
|
|
2277
|
+
registerRoutes();
|
|
2278
|
+
logger?.info?.(`[a2a] A2A server mounted: AgentCard at ${baseUrl}/.well-known/agent-card.json, JSON-RPC at ${server.endpointPath}`);
|
|
2279
|
+
} else logger?.info?.("[a2a] A2A server ready but not serving (enable via settings)");
|
|
2157
2280
|
const serverCard = () => ({
|
|
2158
|
-
baseUrl,
|
|
2281
|
+
baseUrl: server.getBaseUrl(),
|
|
2159
2282
|
agentName: server.card.name,
|
|
2160
2283
|
agentDescription: server.card.description,
|
|
2161
2284
|
agentVersion: server.card.version,
|
|
2162
|
-
|
|
2163
|
-
|
|
2285
|
+
endpointPath: server.endpointPath,
|
|
2286
|
+
endpoint: `${server.getBaseUrl()}${server.endpointPath}`,
|
|
2287
|
+
agentCardUrl: `${server.getBaseUrl()}/.well-known/agent-card.json`,
|
|
2164
2288
|
skills: (server.card.skills ?? []).map((s) => ({
|
|
2165
2289
|
id: s.id,
|
|
2166
2290
|
name: s.name,
|
|
2167
|
-
description: s.description
|
|
2291
|
+
description: s.description,
|
|
2292
|
+
tags: s.tags
|
|
2168
2293
|
})),
|
|
2169
2294
|
customExecutor: Boolean(mergedConfig.execute),
|
|
2170
2295
|
executor: executorKind,
|
|
@@ -2180,17 +2305,63 @@ function apply(ctx, config = {}) {
|
|
|
2180
2305
|
registerRoutes();
|
|
2181
2306
|
enabled = true;
|
|
2182
2307
|
logger?.info?.("[a2a] A2A server enabled");
|
|
2308
|
+
} else {
|
|
2309
|
+
unregisterRoutes();
|
|
2310
|
+
enabled = false;
|
|
2311
|
+
logger?.info?.("[a2a] A2A server disabled");
|
|
2312
|
+
}
|
|
2313
|
+
const next = loadConfig();
|
|
2314
|
+
next.server = {
|
|
2315
|
+
...next.server ?? {},
|
|
2316
|
+
enabled
|
|
2317
|
+
};
|
|
2318
|
+
const res = saveConfig(next);
|
|
2319
|
+
if (!res.ok) {
|
|
2320
|
+
logger?.error?.(`[a2a] failed to persist server.enabled to ${res.path}: ${res.message}`);
|
|
2183
2321
|
return {
|
|
2184
|
-
ok:
|
|
2185
|
-
message:
|
|
2322
|
+
ok: false,
|
|
2323
|
+
message: `applied in-memory but failed to save: ${res.message}`
|
|
2324
|
+
};
|
|
2325
|
+
}
|
|
2326
|
+
return {
|
|
2327
|
+
ok: true,
|
|
2328
|
+
message: enable ? "A2A server enabled" : "A2A server disabled"
|
|
2329
|
+
};
|
|
2330
|
+
},
|
|
2331
|
+
setServerIdentity: async (patch) => {
|
|
2332
|
+
const clearBaseUrl = patch.baseUrl === "";
|
|
2333
|
+
const cardPatch = clearBaseUrl ? {
|
|
2334
|
+
...patch,
|
|
2335
|
+
baseUrl: void 0
|
|
2336
|
+
} : patch;
|
|
2337
|
+
const { endpointChanged } = server.updateCard(cardPatch);
|
|
2338
|
+
if (clearBaseUrl) server.setBaseUrl(inferBaseUrl(webServer.host, webServer.port));
|
|
2339
|
+
if (endpointChanged && enabled) {
|
|
2340
|
+
unregisterRoutes();
|
|
2341
|
+
registerRoutes();
|
|
2342
|
+
}
|
|
2343
|
+
const next = loadConfig();
|
|
2344
|
+
const s = { ...next.server ?? {} };
|
|
2345
|
+
if (patch.agentName !== void 0) s.agentName = patch.agentName;
|
|
2346
|
+
if (patch.agentDescription !== void 0) s.agentDescription = patch.agentDescription;
|
|
2347
|
+
if (patch.agentVersion !== void 0) s.agentVersion = patch.agentVersion;
|
|
2348
|
+
if (clearBaseUrl) delete s.baseUrl;
|
|
2349
|
+
else if (patch.baseUrl !== void 0) s.baseUrl = patch.baseUrl;
|
|
2350
|
+
if (patch.endpointPath !== void 0) s.endpointPath = patch.endpointPath;
|
|
2351
|
+
if (patch.skills !== void 0) s.skills = patch.skills;
|
|
2352
|
+
next.server = s;
|
|
2353
|
+
const res = saveConfig(next);
|
|
2354
|
+
if (!res.ok) {
|
|
2355
|
+
logger?.error?.(`[a2a] failed to persist server identity to ${res.path}: ${res.message}`);
|
|
2356
|
+
return {
|
|
2357
|
+
ok: false,
|
|
2358
|
+
message: `applied in-memory but failed to save: ${res.message}`
|
|
2186
2359
|
};
|
|
2187
2360
|
}
|
|
2188
|
-
|
|
2189
|
-
enabled = false;
|
|
2190
|
-
logger?.info?.("[a2a] A2A server disabled");
|
|
2361
|
+
logger?.info?.(`[a2a] server identity updated (saved to ${res.path})`);
|
|
2191
2362
|
return {
|
|
2192
2363
|
ok: true,
|
|
2193
|
-
message:
|
|
2364
|
+
message: `已更新对外服务 (saved to ${res.path})`
|
|
2194
2365
|
};
|
|
2195
2366
|
},
|
|
2196
2367
|
setServerAuthToken: async (token) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a-config.d.ts","sourceRoot":"","sources":["../../src/a2a-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACzG;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAaxD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAW5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"a2a-config.d.ts","sourceRoot":"","sources":["../../src/a2a-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACzG;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAaxD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAW5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAoD1C;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,IAAI,kBAAkB,CAW/C;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAatG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,GAAG,eAAe,CAmBpG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dsh-a2a — dashboard stylesheet.
|
|
3
|
+
*
|
|
4
|
+
* The browser half is a compiled bundle (not a dynamic cordis plugin), so it
|
|
5
|
+
* injects its own stylesheet the same way first-party DSH client UI packages
|
|
6
|
+
* do: a single idempotent <style> tag, styled entirely with the product's
|
|
7
|
+
* `--dsw-alias-*` design tokens (so light/dark themes and future token
|
|
8
|
+
* changes apply automatically), plus `@media` queries for narrow windows.
|
|
9
|
+
*
|
|
10
|
+
* Class names are prefixed with `a2a-` to avoid collisions with product or
|
|
11
|
+
* third-party styles.
|
|
12
|
+
*/
|
|
13
|
+
export declare const DASHBOARD_CSS_ID = "@ryubyte/dsh-a2a/dashboard.css";
|
|
14
|
+
/**
|
|
15
|
+
* Idempotently inject the dashboard stylesheet into <head>. Returns a
|
|
16
|
+
* disposer that removes the tag; safe to call repeatedly (a second call is a
|
|
17
|
+
* no-op and returns a no-op disposer).
|
|
18
|
+
*/
|
|
19
|
+
export declare function injectDashboardStyles(): () => void;
|
|
20
|
+
//# sourceMappingURL=dashboard.css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.css.d.ts","sourceRoot":"","sources":["../../../src/client/dashboard.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAmQjE;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,IAAI,CAiBlD"}
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
* The data and the controls live behind the host's `/a2a/api` routes
|
|
9
9
|
* (served by the node half on the same webserver); the browser half is a
|
|
10
10
|
* thin read/write client with no protocol knowledge.
|
|
11
|
+
*
|
|
12
|
+
* Styling: a single idempotent stylesheet (dashboard.css.ts) built entirely
|
|
13
|
+
* on the product's `--dsw-alias-*` design tokens, so light/dark themes and
|
|
14
|
+
* narrow-window layouts follow the DSH shell. No inline styles.
|
|
11
15
|
*/
|
|
12
16
|
import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
|
|
13
17
|
import type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAG9E,0DAA0D;AAC1D,eAAO,MAAM,MAAM,UAAY,CAAC;AAEhC,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAyB9C;AA8DD,KAAK,YAAY,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;AA+FrD,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CA8UnE"}
|
package/lib/types/dashboard.d.ts
CHANGED
|
@@ -105,6 +105,26 @@ export interface DashboardControlHooks {
|
|
|
105
105
|
serverStatus?: () => ControlResult;
|
|
106
106
|
/** Runtime-remove an outbound agent by its connection id. */
|
|
107
107
|
removeAgent?: (connectionId: string) => Promise<ControlResult>;
|
|
108
|
+
/** Update the outbound-server identity (AgentCard) at runtime (persisted). */
|
|
109
|
+
setServerIdentity?: (patch: {
|
|
110
|
+
agentName?: string;
|
|
111
|
+
agentDescription?: string;
|
|
112
|
+
agentVersion?: string;
|
|
113
|
+
baseUrl?: string;
|
|
114
|
+
endpointPath?: string;
|
|
115
|
+
skills?: Array<{
|
|
116
|
+
id: string;
|
|
117
|
+
name: string;
|
|
118
|
+
description: string;
|
|
119
|
+
tags?: string[];
|
|
120
|
+
}>;
|
|
121
|
+
}) => Promise<ControlResult>;
|
|
122
|
+
/** Update a saved outbound agent's advanced fields, reconnecting to apply. */
|
|
123
|
+
updateAgent?: (connectionId: string, patch: {
|
|
124
|
+
timeoutMs?: number;
|
|
125
|
+
mapSkills?: boolean;
|
|
126
|
+
bearerToken?: string;
|
|
127
|
+
}) => Promise<ControlResult>;
|
|
108
128
|
}
|
|
109
129
|
/** Registry of live A2A connections, both directions. */
|
|
110
130
|
export declare class DashboardRegistry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/dashboard.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/dashboard.ts"],"names":[],"mappings":"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"}
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/types/server.d.ts
CHANGED
|
@@ -14,6 +14,19 @@ import type { AgentCard, AgentSkill, Message, Part, Task } from './protocol.js';
|
|
|
14
14
|
import { TaskState } from './protocol.js';
|
|
15
15
|
export interface ServerSkill extends AgentSkill {
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Runtime-editable slice of the advertised AgentCard identity. Every field is
|
|
19
|
+
* optional; only the provided ones change. Applied in place by
|
|
20
|
+
* {@link A2AServer.updateCard} (mirrors setBaseUrl/setAuthToken).
|
|
21
|
+
*/
|
|
22
|
+
export interface CardIdentityPatch {
|
|
23
|
+
agentName?: string;
|
|
24
|
+
agentDescription?: string;
|
|
25
|
+
agentVersion?: string;
|
|
26
|
+
baseUrl?: string;
|
|
27
|
+
endpointPath?: string;
|
|
28
|
+
skills?: ServerSkill[];
|
|
29
|
+
}
|
|
17
30
|
export interface ServerOptions {
|
|
18
31
|
/** Public base URL (scheme + host + optional prefix) where this DSH is exposed. */
|
|
19
32
|
baseUrl: string;
|
|
@@ -94,7 +107,8 @@ export declare class A2AServer {
|
|
|
94
107
|
readonly options: ServerOptions;
|
|
95
108
|
readonly store: TaskStore;
|
|
96
109
|
readonly card: AgentCard;
|
|
97
|
-
|
|
110
|
+
/** JSON-RPC route path. Mutable: `updateCard` can move it at runtime. */
|
|
111
|
+
endpointPath: string;
|
|
98
112
|
private execute;
|
|
99
113
|
private listeners;
|
|
100
114
|
private baseUrl;
|
|
@@ -106,6 +120,10 @@ export declare class A2AServer {
|
|
|
106
120
|
* address is known (e.g. ephemeral port). Mutates `card` in place.
|
|
107
121
|
*/
|
|
108
122
|
setBaseUrl(baseUrl: string): void;
|
|
123
|
+
/** The base URL currently advertised in the AgentCard. */
|
|
124
|
+
getBaseUrl(): string;
|
|
125
|
+
/** Rebuild the advertised interface URL(s) from the current baseUrl + path. */
|
|
126
|
+
private rebuildInterfaceUrls;
|
|
109
127
|
/**
|
|
110
128
|
* Set or clear the shared bearer token that gates the inbound endpoint at
|
|
111
129
|
* runtime. Rebuilds the AgentCard so the `bearerAuth` security scheme is
|
|
@@ -116,6 +134,20 @@ export declare class A2AServer {
|
|
|
116
134
|
setAuthToken(token?: string): void;
|
|
117
135
|
/** Whether the inbound endpoint is currently token-gated. */
|
|
118
136
|
get authConfigured(): boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Update the advertised identity (name/description/version/baseUrl/
|
|
139
|
+
* endpointPath/skills) at runtime, in place. Mirrors setBaseUrl/setAuthToken:
|
|
140
|
+
* mutates `this.options` and the existing `this.card` object's properties —
|
|
141
|
+
* never reassigns `this.card`, so the route handler closure that reads
|
|
142
|
+
* `server.card` per request keeps seeing the live card.
|
|
143
|
+
*
|
|
144
|
+
* Returns `{ endpointChanged }`: when the JSON-RPC path moved, the caller
|
|
145
|
+
* (which owns route registration) must re-register routes on the new path —
|
|
146
|
+
* `updateCard` only mutates the advertised URL, not the live HTTP routes.
|
|
147
|
+
*/
|
|
148
|
+
updateCard(patch: CardIdentityPatch): {
|
|
149
|
+
endpointChanged: boolean;
|
|
150
|
+
};
|
|
119
151
|
private buildCard;
|
|
120
152
|
/** True when the request carries the configured bearer token. */
|
|
121
153
|
private authorized;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryubyte/dsh-a2a",
|
|
3
3
|
"description": "Agent2Agent (A2A) protocol v1.0 plugin for DeepSeek Harness (DSH): outbound client (remote AgentCard skills as ctx.tools), inbound server (A2A JSON-RPC + AgentCard endpoint), and a settings dashboard of live A2A connections",
|
|
4
|
-
"version": "0.1
|
|
4
|
+
"version": "0.2.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/types/index.d.ts",
|
package/src/a2a-config.ts
CHANGED
|
@@ -179,8 +179,21 @@ export function resolveConfigPath(): string {
|
|
|
179
179
|
const globalFile = join(home, A2A_CONFIG_FILENAME);
|
|
180
180
|
if (existsSync(globalFile)) return globalFile;
|
|
181
181
|
|
|
182
|
-
// Nothing exists yet
|
|
183
|
-
//
|
|
182
|
+
// Nothing exists yet. If the launcher named a profile (`--profile <name>` or
|
|
183
|
+
// the `dsh web` alias), the config belongs in that profile dir — dsh reads
|
|
184
|
+
// from there on the next launch regardless of cwd, so a UI-generated config
|
|
185
|
+
// must land there or it would be lost on restart. Only when no profile is
|
|
186
|
+
// known do we fall back to cwd (an explicitly cd'd profile dir, or a
|
|
187
|
+
// repo-local config).
|
|
188
|
+
if (
|
|
189
|
+
profileName &&
|
|
190
|
+
profileName !== '.' &&
|
|
191
|
+
profileName !== '..' &&
|
|
192
|
+
!profileName.includes('/') &&
|
|
193
|
+
!profileName.includes('\\')
|
|
194
|
+
) {
|
|
195
|
+
return join(home, 'profiles', profileName, A2A_CONFIG_FILENAME);
|
|
196
|
+
}
|
|
184
197
|
return cwdFile;
|
|
185
198
|
}
|
|
186
199
|
|