@hanphone/dsh-a2a 0.1.0 → 0.3.0
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 +133 -87
- package/README.zh.md +64 -87
- package/cordis.patch.yml +4 -7
- package/lib/client.js +228 -36
- package/lib/index.js +1271 -625
- package/lib/types/api.d.ts +43 -13
- package/lib/types/api.d.ts.map +1 -1
- package/lib/types/api.js +60 -20
- package/lib/types/api.js.map +1 -1
- package/lib/types/client/index.d.ts +50 -14
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/commands.d.ts +4 -2
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +59 -46
- package/lib/types/commands.js.map +1 -1
- package/lib/types/events.d.ts +32 -9
- package/lib/types/events.d.ts.map +1 -1
- package/lib/types/index.d.ts +21 -32
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +178 -213
- package/lib/types/index.js.map +1 -1
- package/lib/types/outbound/calls.d.ts.map +1 -1
- package/lib/types/outbound/calls.js +8 -6
- package/lib/types/outbound/calls.js.map +1 -1
- package/lib/types/protocol.d.ts +174 -109
- package/lib/types/protocol.d.ts.map +1 -1
- package/lib/types/protocol.js +58 -34
- package/lib/types/protocol.js.map +1 -1
- package/lib/types/server/a2a-server.d.ts +7 -1
- package/lib/types/server/a2a-server.d.ts.map +1 -1
- package/lib/types/server/a2a-server.js +11 -3
- package/lib/types/server/a2a-server.js.map +1 -1
- package/lib/types/server/card.d.ts +6 -30
- package/lib/types/server/card.d.ts.map +1 -1
- package/lib/types/server/card.js +13 -49
- package/lib/types/server/card.js.map +1 -1
- package/lib/types/server/exec/agent-runtime.d.ts +3 -0
- package/lib/types/server/exec/agent-runtime.d.ts.map +1 -1
- package/lib/types/server/exec/agent-runtime.js +2 -1
- package/lib/types/server/exec/agent-runtime.js.map +1 -1
- package/lib/types/server/identity.d.ts +38 -0
- package/lib/types/server/identity.d.ts.map +1 -0
- package/lib/types/server/identity.js +89 -0
- package/lib/types/server/identity.js.map +1 -0
- package/lib/types/server/inbound-registry.d.ts +60 -0
- package/lib/types/server/inbound-registry.d.ts.map +1 -0
- package/lib/types/server/inbound-registry.js +86 -0
- package/lib/types/server/inbound-registry.js.map +1 -0
- package/lib/types/server/routes.d.ts +5 -1
- package/lib/types/server/routes.d.ts.map +1 -1
- package/lib/types/server/routes.js +9 -5
- package/lib/types/server/routes.js.map +1 -1
- package/lib/types/server/store.d.ts +37 -1
- package/lib/types/server/store.d.ts.map +1 -1
- package/lib/types/server/store.js +14 -0
- package/lib/types/server/store.js.map +1 -1
- package/lib/types/servers/inbound-manager.d.ts +131 -0
- package/lib/types/servers/inbound-manager.d.ts.map +1 -0
- package/lib/types/servers/inbound-manager.js +312 -0
- package/lib/types/servers/inbound-manager.js.map +1 -0
- package/lib/types/servers/outbound-manager.d.ts +129 -0
- package/lib/types/servers/outbound-manager.d.ts.map +1 -0
- package/lib/types/servers/outbound-manager.js +238 -0
- package/lib/types/servers/outbound-manager.js.map +1 -0
- package/lib/types/service.d.ts +108 -23
- package/lib/types/service.d.ts.map +1 -1
- package/lib/types/service.js +39 -18
- package/lib/types/service.js.map +1 -1
- package/package.json +3 -3
- package/src/api.ts +70 -31
- package/src/client/index.ts +339 -81
- package/src/commands.ts +59 -43
- package/src/events.ts +14 -7
- package/src/index.ts +204 -249
- package/src/outbound/calls.ts +8 -6
- package/src/protocol.ts +204 -95
- package/src/server/a2a-server.ts +16 -4
- package/src/server/card.ts +13 -62
- package/src/server/exec/agent-runtime.ts +5 -2
- package/src/server/identity.ts +109 -0
- package/src/server/inbound-registry.ts +129 -0
- package/src/server/routes.ts +6 -4
- package/src/server/store.ts +50 -4
- package/src/servers/inbound-manager.ts +385 -0
- package/src/servers/outbound-manager.ts +289 -0
- package/src/service.ts +136 -28
- package/lib/tsconfig.client.tsbuildinfo +0 -1
- package/lib/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inbound connection registry: which remote peers are talking to this DSH's
|
|
3
|
+
* A2A server. Fed by the A2A server's `onInbound` hook (every JSON-RPC
|
|
4
|
+
* request / SSE open), surfaced through the dashboard API, and disconnectable
|
|
5
|
+
* (`closePeer` cancels the peer's active tasks and drops the record).
|
|
6
|
+
* @module dsh-a2a/server/inbound-registry
|
|
7
|
+
*/
|
|
8
|
+
function newPeerId() {
|
|
9
|
+
return `peer-${crypto.randomUUID()}`;
|
|
10
|
+
}
|
|
11
|
+
/** In-memory inbound peer registry. */
|
|
12
|
+
export class LiveInboundRegistry {
|
|
13
|
+
peers = new Map();
|
|
14
|
+
findBySource(source) {
|
|
15
|
+
if (source === null)
|
|
16
|
+
return undefined;
|
|
17
|
+
for (const peer of this.peers.values()) {
|
|
18
|
+
if (peer.source === source)
|
|
19
|
+
return peer;
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
/** Observe one inbound event: method, source, task ids, streaming flag. */
|
|
24
|
+
note(input) {
|
|
25
|
+
const now = new Date().toISOString();
|
|
26
|
+
const source = input.source ?? null;
|
|
27
|
+
let peer = this.findBySource(source);
|
|
28
|
+
if (peer === undefined) {
|
|
29
|
+
peer = {
|
|
30
|
+
id: newPeerId(),
|
|
31
|
+
label: source ?? 'unknown',
|
|
32
|
+
source,
|
|
33
|
+
firstSeen: now,
|
|
34
|
+
lastSeen: now,
|
|
35
|
+
taskCount: 0,
|
|
36
|
+
active: new Set(),
|
|
37
|
+
streamingCount: 0,
|
|
38
|
+
};
|
|
39
|
+
this.peers.set(peer.id, peer);
|
|
40
|
+
}
|
|
41
|
+
peer.lastSeen = now;
|
|
42
|
+
peer.taskCount += input.taskIds.length;
|
|
43
|
+
for (const id of input.taskIds)
|
|
44
|
+
peer.active.add(id);
|
|
45
|
+
if (input.streaming)
|
|
46
|
+
peer.streamingCount += 1;
|
|
47
|
+
}
|
|
48
|
+
/** A task settled: drop it from every peer's active set. */
|
|
49
|
+
settle(taskId) {
|
|
50
|
+
for (const peer of this.peers.values()) {
|
|
51
|
+
if (peer.active.delete(taskId))
|
|
52
|
+
peer.lastSeen = new Date().toISOString();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Decrement streaming count when an SSE connection closes. */
|
|
56
|
+
endStream(source) {
|
|
57
|
+
const peer = this.findBySource(source ?? null);
|
|
58
|
+
if (peer !== undefined && peer.streamingCount > 0) {
|
|
59
|
+
peer.streamingCount -= 1;
|
|
60
|
+
peer.lastSeen = new Date().toISOString();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
list() {
|
|
64
|
+
return [...this.peers.values()].map((p) => ({
|
|
65
|
+
id: p.id,
|
|
66
|
+
label: p.label,
|
|
67
|
+
source: p.source,
|
|
68
|
+
firstSeen: p.firstSeen,
|
|
69
|
+
lastSeen: p.lastSeen,
|
|
70
|
+
taskCount: p.taskCount,
|
|
71
|
+
activeTaskIds: [...p.active],
|
|
72
|
+
streaming: p.streamingCount > 0,
|
|
73
|
+
})).sort((a, b) => (a.lastSeen < b.lastSeen ? 1 : -1));
|
|
74
|
+
}
|
|
75
|
+
closePeer(peerId) {
|
|
76
|
+
const peer = this.peers.get(peerId);
|
|
77
|
+
if (peer === undefined)
|
|
78
|
+
return { ok: false, message: `inbound peer ${peerId} not found` };
|
|
79
|
+
this.peers.delete(peerId);
|
|
80
|
+
return { ok: true, message: `inbound peer ${peer.label} closed` };
|
|
81
|
+
}
|
|
82
|
+
activeTasksOf(peerId) {
|
|
83
|
+
return [...(this.peers.get(peerId)?.active ?? [])];
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=inbound-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbound-registry.js","sourceRoot":"","sources":["../../../src/server/inbound-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,9 +18,13 @@ export interface WebServerLike {
|
|
|
18
18
|
export declare class A2aRoutes {
|
|
19
19
|
private readonly webServer;
|
|
20
20
|
private readonly server;
|
|
21
|
+
/** AgentCard route path; default = the well-known A2A path. */
|
|
22
|
+
private readonly cardPath;
|
|
21
23
|
private disposers;
|
|
22
24
|
private registered;
|
|
23
|
-
constructor(webServer: WebServerLike, server: A2AServer
|
|
25
|
+
constructor(webServer: WebServerLike, server: A2AServer,
|
|
26
|
+
/** AgentCard route path; default = the well-known A2A path. */
|
|
27
|
+
cardPath?: string);
|
|
24
28
|
get active(): boolean;
|
|
25
29
|
/** Register the AgentCard + endpoint routes (idempotent). */
|
|
26
30
|
enable(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/server/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;QACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KACzE,GAAG,MAAM,IAAI,CAAA;CACf;AAID,yDAAyD;AACzD,qBAAa,SAAS;IAKlB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/server/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;QACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KACzE,GAAG,MAAM,IAAI,CAAA;CACf;AAID,yDAAyD;AACzD,qBAAa,SAAS;IAKlB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,UAAU,CAAQ;gBAGP,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,SAAS;IAClC,+DAA+D;IAC9C,QAAQ,GAAE,MAA0B;IAGvD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,6DAA6D;IAC7D,MAAM,IAAI,IAAI;IAsBd,0CAA0C;IAC1C,OAAO,IAAI,IAAI;IAKf,OAAO,IAAI,IAAI;YAID,SAAS;CAuCxB"}
|
|
@@ -4,16 +4,20 @@
|
|
|
4
4
|
* `@deepseek-ai/dsh-host-webserver`), with runtime enable/disable.
|
|
5
5
|
* @module dsh-a2a/server/routes
|
|
6
6
|
*/
|
|
7
|
-
const
|
|
7
|
+
const DEFAULT_CARD_PATH = '/.well-known/agent-card.json';
|
|
8
8
|
/** Runtime-registered HTTP routes for one A2A server. */
|
|
9
9
|
export class A2aRoutes {
|
|
10
10
|
webServer;
|
|
11
11
|
server;
|
|
12
|
+
cardPath;
|
|
12
13
|
disposers = [];
|
|
13
14
|
registered = false;
|
|
14
|
-
constructor(webServer, server
|
|
15
|
+
constructor(webServer, server,
|
|
16
|
+
/** AgentCard route path; default = the well-known A2A path. */
|
|
17
|
+
cardPath = DEFAULT_CARD_PATH) {
|
|
15
18
|
this.webServer = webServer;
|
|
16
19
|
this.server = server;
|
|
20
|
+
this.cardPath = cardPath;
|
|
17
21
|
}
|
|
18
22
|
get active() {
|
|
19
23
|
return this.registered;
|
|
@@ -24,7 +28,7 @@ export class A2aRoutes {
|
|
|
24
28
|
return;
|
|
25
29
|
this.disposers.push(this.webServer.register({
|
|
26
30
|
kind: 'exact',
|
|
27
|
-
path:
|
|
31
|
+
path: this.cardPath,
|
|
28
32
|
handler: (_req, res) => {
|
|
29
33
|
res.writeHead(200, { 'content-type': 'application/json' });
|
|
30
34
|
res.end(JSON.stringify(this.server.card));
|
|
@@ -78,8 +82,8 @@ export class A2aRoutes {
|
|
|
78
82
|
res.end(out.body);
|
|
79
83
|
return;
|
|
80
84
|
}
|
|
81
|
-
// GET AgentCard at
|
|
82
|
-
const out = await this.server.handle(toServerReq(req), path ===
|
|
85
|
+
// GET AgentCard at this instance's card path; anything else is the server's call.
|
|
86
|
+
const out = await this.server.handle(toServerReq(req), path === this.cardPath ? '' : '');
|
|
83
87
|
res.writeHead(out.status, { 'content-type': out.contentType, ...(out.headers ?? {}) });
|
|
84
88
|
res.end(out.body);
|
|
85
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/server/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @module dsh-a2a/server/store
|
|
8
8
|
*/
|
|
9
9
|
import { type Domain, type DomainFacility, type KvTable } from '@deepseek-ai/dsh-storage-domain';
|
|
10
|
-
import { TaskState, type Part } from '../protocol.ts';
|
|
10
|
+
import { TaskState, type AgentSkill, type Part } from '../protocol.ts';
|
|
11
11
|
/** One durable inbound/outbound task record. */
|
|
12
12
|
export interface TaskRecord {
|
|
13
13
|
readonly taskId: string;
|
|
@@ -30,6 +30,8 @@ export interface TaskRecord {
|
|
|
30
30
|
readonly code: string;
|
|
31
31
|
readonly message: string;
|
|
32
32
|
};
|
|
33
|
+
/** The inbound server instance this task arrived through. */
|
|
34
|
+
readonly serverId?: string;
|
|
33
35
|
}
|
|
34
36
|
/** One durable context→session binding (inbound conversation ↔ DSH session). */
|
|
35
37
|
export interface ContextBinding {
|
|
@@ -45,6 +47,31 @@ export interface OutboundAgentRecord {
|
|
|
45
47
|
readonly timeoutMs: number;
|
|
46
48
|
readonly lastCardAt: string | null;
|
|
47
49
|
}
|
|
50
|
+
/** One durable inbound server instance. */
|
|
51
|
+
export interface InboundServerRecord {
|
|
52
|
+
readonly id: string;
|
|
53
|
+
readonly name: string;
|
|
54
|
+
readonly description: string;
|
|
55
|
+
readonly version: string;
|
|
56
|
+
readonly endpointPath: string;
|
|
57
|
+
/** Agent preset id composing inbound sessions; absent = deployment default. */
|
|
58
|
+
readonly preset?: string;
|
|
59
|
+
readonly authTokenEnv?: string;
|
|
60
|
+
/** Advertised skills (creator-entered declarations, default = preset name). */
|
|
61
|
+
readonly skills: readonly AgentSkill[];
|
|
62
|
+
readonly enabled: boolean;
|
|
63
|
+
}
|
|
64
|
+
/** One durable outbound server connection instance. */
|
|
65
|
+
export interface OutboundServerRecord {
|
|
66
|
+
readonly id: string;
|
|
67
|
+
readonly name: string;
|
|
68
|
+
readonly agentCardUrl: string;
|
|
69
|
+
readonly bearerTokenEnv?: string;
|
|
70
|
+
/** Preset composing this DSH's local session when talking to the remote. */
|
|
71
|
+
readonly preset?: string;
|
|
72
|
+
readonly enabled: boolean;
|
|
73
|
+
readonly timeoutMs: number;
|
|
74
|
+
}
|
|
48
75
|
/** The `a2a` storage domain: JSON-encoded records, one table per record kind. */
|
|
49
76
|
export declare const a2aDomainSpec: {
|
|
50
77
|
name: string;
|
|
@@ -53,6 +80,9 @@ export declare const a2aDomainSpec: {
|
|
|
53
80
|
tasks: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, string>;
|
|
54
81
|
contexts: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, string>;
|
|
55
82
|
agents: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, string>;
|
|
83
|
+
identity: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, string>;
|
|
84
|
+
inbound_servers: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, string>;
|
|
85
|
+
outbound_servers: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, string>;
|
|
56
86
|
};
|
|
57
87
|
};
|
|
58
88
|
export type A2aDomainSpec = typeof a2aDomainSpec;
|
|
@@ -74,6 +104,9 @@ export declare class A2aDomain {
|
|
|
74
104
|
get tasks(): KvTable<string, string>;
|
|
75
105
|
get contexts(): KvTable<string, string>;
|
|
76
106
|
get agents(): KvTable<string, string>;
|
|
107
|
+
get identity(): KvTable<string, string>;
|
|
108
|
+
get inbound_servers(): KvTable<string, string>;
|
|
109
|
+
get outbound_servers(): KvTable<string, string>;
|
|
77
110
|
close(): Promise<void>;
|
|
78
111
|
}
|
|
79
112
|
/** Task-store contract shared by the domain-backed and memory stores. */
|
|
@@ -83,6 +116,7 @@ export interface TaskStore {
|
|
|
83
116
|
skill: string;
|
|
84
117
|
parts: readonly Part[];
|
|
85
118
|
remotePeerId: string | null;
|
|
119
|
+
serverId?: string;
|
|
86
120
|
}): TaskRecord;
|
|
87
121
|
get(taskId: string): TaskRecord | undefined;
|
|
88
122
|
list(): TaskRecord[];
|
|
@@ -109,6 +143,7 @@ export declare class MemoryTaskStore implements TaskStore {
|
|
|
109
143
|
skill: string;
|
|
110
144
|
parts: readonly Part[];
|
|
111
145
|
remotePeerId: string | null;
|
|
146
|
+
serverId?: string;
|
|
112
147
|
}): TaskRecord;
|
|
113
148
|
get(taskId: string): TaskRecord | undefined;
|
|
114
149
|
list(): TaskRecord[];
|
|
@@ -137,6 +172,7 @@ export declare class DomainTaskStore implements TaskStore {
|
|
|
137
172
|
skill: string;
|
|
138
173
|
parts: readonly Part[];
|
|
139
174
|
remotePeerId: string | null;
|
|
175
|
+
serverId?: string;
|
|
140
176
|
}): TaskRecord;
|
|
141
177
|
get(taskId: string): TaskRecord | undefined;
|
|
142
178
|
list(): TaskRecord[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/server/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,OAAO,EACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/server/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,9 @@ export const a2aDomainSpec = defineDomain({
|
|
|
19
19
|
tasks: domainTable(json),
|
|
20
20
|
contexts: domainTable(json),
|
|
21
21
|
agents: domainTable(json),
|
|
22
|
+
identity: domainTable(json),
|
|
23
|
+
inbound_servers: domainTable(json),
|
|
24
|
+
outbound_servers: domainTable(json),
|
|
22
25
|
},
|
|
23
26
|
});
|
|
24
27
|
/**
|
|
@@ -59,6 +62,15 @@ export class A2aDomain {
|
|
|
59
62
|
get agents() {
|
|
60
63
|
return this.handle.table('agents');
|
|
61
64
|
}
|
|
65
|
+
get identity() {
|
|
66
|
+
return this.handle.table('identity');
|
|
67
|
+
}
|
|
68
|
+
get inbound_servers() {
|
|
69
|
+
return this.handle.table('inbound_servers');
|
|
70
|
+
}
|
|
71
|
+
get outbound_servers() {
|
|
72
|
+
return this.handle.table('outbound_servers');
|
|
73
|
+
}
|
|
62
74
|
async close() {
|
|
63
75
|
await this.handle.close();
|
|
64
76
|
}
|
|
@@ -90,6 +102,7 @@ export class MemoryTaskStore {
|
|
|
90
102
|
artifacts: [],
|
|
91
103
|
executor: 'session',
|
|
92
104
|
summary: null,
|
|
105
|
+
...(input.serverId !== undefined ? { serverId: input.serverId } : {}),
|
|
93
106
|
};
|
|
94
107
|
this.tasks.set(record.taskId, record);
|
|
95
108
|
return record;
|
|
@@ -182,6 +195,7 @@ export class DomainTaskStore {
|
|
|
182
195
|
artifacts: [],
|
|
183
196
|
executor: 'session',
|
|
184
197
|
summary: null,
|
|
198
|
+
...(input.serverId !== undefined ? { serverId: input.serverId } : {}),
|
|
185
199
|
};
|
|
186
200
|
this.records.set(record.taskId, record);
|
|
187
201
|
// Persist eagerly; a failed write must fail the task, not silently lose it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/server/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,YAAY,EACZ,WAAW,GAIZ,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/server/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,YAAY,EACZ,WAAW,GAIZ,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,SAAS,EAA8B,MAAM,gBAAgB,CAAA;AAgEtE,8DAA8D;AAC9D,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;AAEvB,iFAAiF;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;IACxC,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,CAAC;IACV,MAAM,EAAE;QACN,KAAK,EAAE,WAAW,CAAiB,IAAI,CAAC;QACxC,QAAQ,EAAE,WAAW,CAAiB,IAAI,CAAC;QAC3C,MAAM,EAAE,WAAW,CAAiB,IAAI,CAAC;QACzC,QAAQ,EAAE,WAAW,CAAiB,IAAI,CAAC;QAC3C,eAAe,EAAE,WAAW,CAAiB,IAAI,CAAC;QAClD,gBAAgB,EAAE,WAAW,CAAiB,IAAI,CAAC;KACpD;CACF,CAAC,CAAA;AAIF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,GAAW;IACzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAsB;IACrD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC/C,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,oEAAoE;AACpE,MAAM,OAAO,SAAS;IACC;IAArB,YAAqB,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAEtD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;CACF;AAcD,SAAS,GAAG;IACV,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;AACjC,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,QAAQ,MAAM,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACnC,OAAO,OAAO,SAAS,EAAE,CAAA;AAC3B,CAAC;AAED,4DAA4D;AAC5D,MAAM,OAAO,eAAe;IAClB,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAA;IACrC,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE5C,MAAM,CAAC,KAAmH;QACxH,MAAM,MAAM,GAAe;YACzB,MAAM,EAAE,OAAO,MAAM,CAAC,UAAU,EAAE,EAAE;YACpC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,SAAS,CAAC,SAAS;YAC1B,SAAS,EAAE,GAAG,EAAE;YAChB,SAAS,EAAE,GAAG,EAAE;YAChB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,CAAA;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACrC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,KAAgB,EAAE,OAAwC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAA;QACtE,MAAM,IAAI,GAAe;YACvB,GAAG,OAAO;YACV,KAAK;YACL,SAAS,EAAE,GAAG,EAAE;YAChB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxH,CAAA;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,QAA4F;QACzH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAA;QACtE,MAAM,IAAI,GAAe;YACvB,GAAG,OAAO;YACV,SAAS,EAAE,GAAG,EAAE;YAChB,SAAS,EAAE,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC7D,CAAA;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,SAAiB;QAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChC;AAED,SAAS,oBAAoB,CAC3B,SAAkC,EAClC,QAAuE;IAEvE,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAA;IAC5E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5H,CAAC;IACD,OAAO,CAAC,GAAG,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;AACpJ,CAAC;AAED,kEAAkE;AAClE,MAAM,OAAO,eAAe;IAUG;IAT7B,wEAAwE;IACxE,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,iCAAiC;IAChB,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAA;IACvC,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAErD,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAQ;YACtC,MAAM,MAAM,GAAG,YAAY,CAAa,GAAG,CAAC,CAAA;YAC5C,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACnE,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,SAAQ;YACrC,MAAM,OAAO,GAAG,YAAY,CAAiB,GAAG,CAAC,CAAA;YACjD,IAAI,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAC3F,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAmH;QACxH,MAAM,MAAM,GAAe;YACzB,MAAM,EAAE,OAAO,MAAM,CAAC,UAAU,EAAE,EAAE;YACpC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,SAAS,CAAC,SAAS;YAC1B,SAAS,EAAE,GAAG,EAAE;YAChB,SAAS,EAAE,GAAG,EAAE;YAChB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACvC,4EAA4E;QAC5E,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAChG,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjE,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,KAAgB,EAAE,OAAwC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAA;QACtE,MAAM,IAAI,GAAe,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC9B,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACvF,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjE,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,QAA4F;QACzH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAA;QACtE,MAAM,IAAI,GAAe,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAA;QACvH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC9B,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACvF,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjE,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,SAAiB;QAC1D,MAAM,OAAO,GAAmB,EAAE,SAAS,EAAE,CAAA;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChC;AAED,SAAS,SAAS,CAChB,OAAmB,EACnB,KAAgB,EAChB,OAAmD,EACnD,SAAiB;IAEjB,OAAO;QACL,GAAG,OAAO;QACV,KAAK;QACL,SAAS,EAAE,SAAS;QACpB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inbound server manager: owns every inbound A2A server instance. Each
|
|
3
|
+
* instance binds one agent preset (its session pool is composed from that
|
|
4
|
+
* preset), advertises creator-declared skills, and serves its own endpoint and
|
|
5
|
+
* AgentCard route. Instances are persisted in the `inbound_servers` domain
|
|
6
|
+
* table and assembled on boot; the manager owns route registration and the
|
|
7
|
+
* full lifecycle (add/enable/disable/update/remove) driven from the GUI and
|
|
8
|
+
* facade, and disposes every instance's environment on teardown.
|
|
9
|
+
*
|
|
10
|
+
* Skill declaration: the stored `skills` list is exactly what the creator
|
|
11
|
+
* declared. When a creator leaves it empty at creation time, the default skill
|
|
12
|
+
* derives from the bound preset's display name (else the built-in `chat`
|
|
13
|
+
* skill), per the v1.0 design — the v0.2 tool white-list derivation is gone.
|
|
14
|
+
* @module dsh-a2a/servers/inbound-manager
|
|
15
|
+
*/
|
|
16
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
17
|
+
import { buildCard } from '../server/card.ts';
|
|
18
|
+
import { A2AServer } from '../server/a2a-server.ts';
|
|
19
|
+
import { A2aRoutes } from '../server/routes.ts';
|
|
20
|
+
import { type AgentPresetsLike, type AgentRegistryLike } from '../server/exec/agent-runtime.ts';
|
|
21
|
+
import { type SubagentsLike } from '../server/exec/subagent.ts';
|
|
22
|
+
import { ExecutorSet } from '../server/executor.ts';
|
|
23
|
+
import { LiveInboundRegistry } from '../server/inbound-registry.ts';
|
|
24
|
+
import type { TaskStore, InboundServerRecord } from '../server/store.ts';
|
|
25
|
+
import type { AgentSkill } from '../protocol.ts';
|
|
26
|
+
/** Web-server slice the manager registers instance routes on. */
|
|
27
|
+
export interface WebServerLike {
|
|
28
|
+
register(route: {
|
|
29
|
+
readonly kind: 'exact' | 'prefix';
|
|
30
|
+
readonly path: string;
|
|
31
|
+
handler(...args: unknown[]): unknown;
|
|
32
|
+
}): () => void;
|
|
33
|
+
}
|
|
34
|
+
/** Host service slices one manager needs. */
|
|
35
|
+
export interface InboundManagerHost {
|
|
36
|
+
readonly ctx: Context;
|
|
37
|
+
readonly webServer: WebServerLike;
|
|
38
|
+
readonly tasks: TaskStore;
|
|
39
|
+
readonly logger: {
|
|
40
|
+
info(message: string): void;
|
|
41
|
+
warn(message: string): void;
|
|
42
|
+
error(message: string): void;
|
|
43
|
+
};
|
|
44
|
+
readonly agents?: AgentRegistryLike;
|
|
45
|
+
readonly agentPresets?: AgentPresetsLike;
|
|
46
|
+
readonly subagents?: SubagentsLike;
|
|
47
|
+
readonly sessionCwd: string;
|
|
48
|
+
readonly defaultBaseUrl: string;
|
|
49
|
+
readonly subagentProvider: string;
|
|
50
|
+
/** Resolve the deployment's default model options (may be undefined). */
|
|
51
|
+
readonly resolveDefaultModel?: () => {
|
|
52
|
+
readonly provider?: string;
|
|
53
|
+
readonly model?: string;
|
|
54
|
+
} | undefined;
|
|
55
|
+
/** Allocate a fresh stable instance id. */
|
|
56
|
+
readonly newId: () => string;
|
|
57
|
+
}
|
|
58
|
+
/** One live inbound instance's runtime handle. */
|
|
59
|
+
export interface LiveInboundServer {
|
|
60
|
+
readonly id: string;
|
|
61
|
+
readonly record: InboundServerRecord;
|
|
62
|
+
readonly card: ReturnType<typeof buildCard>;
|
|
63
|
+
readonly server: A2AServer;
|
|
64
|
+
readonly routes: A2aRoutes;
|
|
65
|
+
readonly inbound: LiveInboundRegistry;
|
|
66
|
+
readonly executors: ExecutorSet;
|
|
67
|
+
readonly endpointPath: string;
|
|
68
|
+
readonly cardPath: string;
|
|
69
|
+
dispose(): void;
|
|
70
|
+
}
|
|
71
|
+
/** Creator input for a new (or updated) inbound instance. */
|
|
72
|
+
export interface InboundCreateInput {
|
|
73
|
+
readonly name: string;
|
|
74
|
+
readonly description: string;
|
|
75
|
+
readonly version: string;
|
|
76
|
+
readonly endpointPath?: string;
|
|
77
|
+
readonly preset?: string;
|
|
78
|
+
readonly authTokenEnv?: string;
|
|
79
|
+
/** Declared skills; empty defaults to the preset name (or `chat`). */
|
|
80
|
+
readonly skills?: readonly AgentSkill[];
|
|
81
|
+
readonly enabled?: boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface OpResult {
|
|
84
|
+
readonly ok: boolean;
|
|
85
|
+
readonly message: string;
|
|
86
|
+
}
|
|
87
|
+
/** Default skkill when a creator declares none: the preset display name. */
|
|
88
|
+
export declare function defaultSkillFor(skills: readonly AgentSkill[] | undefined, presetName: string | undefined): readonly AgentSkill[];
|
|
89
|
+
/** Persisted-instance store over the inbound_servers table. */
|
|
90
|
+
export declare class DomainInboundStore {
|
|
91
|
+
private readonly table;
|
|
92
|
+
private static KEY;
|
|
93
|
+
constructor(table: {
|
|
94
|
+
get(key: string): string | undefined;
|
|
95
|
+
put(key: string, value: string): Promise<void>;
|
|
96
|
+
entries?(): IterableIterator<[string, string]>;
|
|
97
|
+
keys?(): IterableIterator<string>;
|
|
98
|
+
});
|
|
99
|
+
list(): InboundServerRecord[];
|
|
100
|
+
get(id: string): InboundServerRecord | undefined;
|
|
101
|
+
save(record: InboundServerRecord): Promise<void>;
|
|
102
|
+
remove(id: string): Promise<void>;
|
|
103
|
+
}
|
|
104
|
+
/** Manages the live set of inbound server instances. */
|
|
105
|
+
export declare class InboundServerManager {
|
|
106
|
+
private readonly host;
|
|
107
|
+
private readonly store;
|
|
108
|
+
private readonly live;
|
|
109
|
+
constructor(host: InboundManagerHost, store: DomainInboundStore);
|
|
110
|
+
/** Assemble every persisted enabled instance (boot). */
|
|
111
|
+
boot(): void;
|
|
112
|
+
list(): readonly LiveInboundServer[];
|
|
113
|
+
get(id: string): LiveInboundServer | undefined;
|
|
114
|
+
/** Resolve the display name of a preset id (undefined when unnamed/absent). */
|
|
115
|
+
private presetDisplayName;
|
|
116
|
+
/** Create, persist, and assemble a new inbound instance. */
|
|
117
|
+
add(input: InboundCreateInput): Promise<OpResult & {
|
|
118
|
+
readonly id?: string;
|
|
119
|
+
}>;
|
|
120
|
+
/** Persist, rebuild, and apply a patch onto a live instance. */
|
|
121
|
+
update(id: string, patch: Partial<Pick<InboundServerRecord, 'name' | 'description' | 'version' | 'endpointPath' | 'preset' | 'authTokenEnv' | 'skills'>>): Promise<OpResult>;
|
|
122
|
+
/** Enable/disable an instance's routes. */
|
|
123
|
+
setEnabled(id: string, enabled: boolean): OpResult;
|
|
124
|
+
/** Remove, dispose, and unpersist an instance. */
|
|
125
|
+
remove(id: string): Promise<OpResult>;
|
|
126
|
+
/** Dispose every instance. */
|
|
127
|
+
disposeAll(): void;
|
|
128
|
+
private newId;
|
|
129
|
+
}
|
|
130
|
+
export type { AgentSkill };
|
|
131
|
+
//# sourceMappingURL=inbound-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbound-manager.d.ts","sourceRoot":"","sources":["../../../src/servers/inbound-manager.ts"],"names":[],"mappings":"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"}
|