toolhome 0.6.1 → 0.6.3
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/dist/server/cli/main.js +62 -1
- package/dist/server/cli/main.js.map +1 -1
- package/dist/server/node/local-gateway.d.ts +53 -0
- package/dist/server/node/local-gateway.d.ts.map +1 -0
- package/dist/server/node/local-gateway.js +167 -0
- package/dist/server/node/local-gateway.js.map +1 -0
- package/dist/server/node/status.d.ts +29 -0
- package/dist/server/node/status.d.ts.map +1 -0
- package/dist/server/node/status.js +85 -0
- package/dist/server/node/status.js.map +1 -0
- package/dist/server/observability/call-recorder.d.ts.map +1 -1
- package/dist/server/observability/call-recorder.js +4 -0
- package/dist/server/observability/call-recorder.js.map +1 -1
- package/dist/server/observability/logger.d.ts +8 -1
- package/dist/server/observability/logger.d.ts.map +1 -1
- package/dist/server/observability/logger.js +13 -6
- package/dist/server/observability/logger.js.map +1 -1
- package/dist/server/upstream/adapter.d.ts +2 -2
- package/dist/server/upstream/adapter.d.ts.map +1 -1
- package/dist/server/upstream/adapter.js +66 -6
- package/dist/server/upstream/adapter.js.map +1 -1
- package/dist/server/upstream/credential-resolver.d.ts +9 -1
- package/dist/server/upstream/credential-resolver.d.ts.map +1 -1
- package/dist/server/upstream/credential-resolver.js.map +1 -1
- package/dist/server/upstream/manager.d.ts +2 -2
- package/dist/server/upstream/manager.d.ts.map +1 -1
- package/dist/server/upstream/manager.js.map +1 -1
- package/package.json +1 -1
- package/skills/toolhome/SKILL.md +9 -0
package/dist/server/cli/main.js
CHANGED
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
import { spawn } from 'node:child_process';
|
|
3
3
|
import { Command } from 'commander';
|
|
4
4
|
import { chmodSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
5
|
-
import { homedir } from 'node:os';
|
|
5
|
+
import { homedir, hostname } from 'node:os';
|
|
6
6
|
import { dirname, resolve } from 'node:path';
|
|
7
7
|
import { fileURLToPath } from 'node:url';
|
|
8
8
|
import { z } from 'zod';
|
|
9
|
+
import { serveStdio } from '@modelcontextprotocol/server/stdio';
|
|
9
10
|
import { ControlClient } from '../control/client.js';
|
|
10
11
|
import { stdioTransportSchema } from '../domain/models.js';
|
|
11
12
|
import { launchEnvironment, spawnStdioServer } from '../node/launch.js';
|
|
13
|
+
import { prepareLocalGateway, startLocalGateway } from '../node/local-gateway.js';
|
|
14
|
+
import { readNodeStatus } from '../node/status.js';
|
|
12
15
|
function packageVersion() {
|
|
13
16
|
let directory = dirname(fileURLToPath(import.meta.url));
|
|
14
17
|
for (;;) {
|
|
@@ -39,6 +42,8 @@ const localConfigSchema = z.object({
|
|
|
39
42
|
}
|
|
40
43
|
}),
|
|
41
44
|
controlKey: z.string().min(1),
|
|
45
|
+
/** Node label whose servers this machine launches with `toolhome mcp stdio`. */
|
|
46
|
+
nodeId: z.string().min(1).max(64).optional(),
|
|
42
47
|
});
|
|
43
48
|
const program = new Command()
|
|
44
49
|
.name('toolhome')
|
|
@@ -202,6 +207,62 @@ mcp
|
|
|
202
207
|
});
|
|
203
208
|
return undefined;
|
|
204
209
|
}));
|
|
210
|
+
mcp
|
|
211
|
+
.command('stdio')
|
|
212
|
+
.description('Serve every node-placed server for this machine over one stdio connection')
|
|
213
|
+
.option('--node <id>', 'node label whose servers this machine runs (default: nodeId in the local config, else the hostname)')
|
|
214
|
+
.action(run(async (client, options) => {
|
|
215
|
+
const nodeId = options.node ?? loadLocalConfig()?.nodeId ?? (hostname().split('.')[0] || '');
|
|
216
|
+
if (nodeId === '') {
|
|
217
|
+
throw new Error('Could not determine a node label; pass --node <id>');
|
|
218
|
+
}
|
|
219
|
+
const gateway = await startLocalGateway({
|
|
220
|
+
client,
|
|
221
|
+
nodeId,
|
|
222
|
+
storePath: resolve(dirname(configPath()), 'node.sqlite'),
|
|
223
|
+
});
|
|
224
|
+
process.stderr.write(`toolhome: serving node "${nodeId}" over stdio — end the stream to stop\n`);
|
|
225
|
+
// Children are killed when the client closes its side, and on signals, so a
|
|
226
|
+
// session ending never orphans the servers it launched.
|
|
227
|
+
const handle = serveStdio(() => gateway.serverFactory(), { legacy: 'serve' });
|
|
228
|
+
let stopped = false;
|
|
229
|
+
const stop = async () => {
|
|
230
|
+
if (stopped)
|
|
231
|
+
return;
|
|
232
|
+
stopped = true;
|
|
233
|
+
// Children first: they leak if the process exits before they are reaped.
|
|
234
|
+
await gateway.close().catch(() => undefined);
|
|
235
|
+
await handle.close().catch(() => undefined);
|
|
236
|
+
process.exit(0);
|
|
237
|
+
};
|
|
238
|
+
process.stdin.on('end', () => void stop());
|
|
239
|
+
process.stdin.on('close', () => void stop());
|
|
240
|
+
process.once('SIGINT', () => void stop());
|
|
241
|
+
process.once('SIGTERM', () => void stop());
|
|
242
|
+
return undefined;
|
|
243
|
+
}));
|
|
244
|
+
const node = program.command('node').description('Inspect MCP servers placed on this machine');
|
|
245
|
+
node
|
|
246
|
+
.command('status')
|
|
247
|
+
.description('Show the local health of the servers placed on this machine')
|
|
248
|
+
.option('--check', 'reconnect to each enabled server now and refresh its capabilities')
|
|
249
|
+
.option('--node <id>', 'node label (default: nodeId in the local config, else the hostname)')
|
|
250
|
+
.action(run(async (client, options) => {
|
|
251
|
+
const nodeId = options.node ?? loadLocalConfig()?.nodeId ?? (hostname().split('.')[0] || '');
|
|
252
|
+
if (nodeId === '') {
|
|
253
|
+
throw new Error('Could not determine a node label; pass --node <id>');
|
|
254
|
+
}
|
|
255
|
+
const mirrorPath = resolve(dirname(configPath()), 'node.sqlite');
|
|
256
|
+
if (options.check !== true) {
|
|
257
|
+
// Mirror-only: no network, no spawned children.
|
|
258
|
+
return readNodeStatus({ nodeId, storePath: mirrorPath });
|
|
259
|
+
}
|
|
260
|
+
const runtime = await prepareLocalGateway({ client, nodeId, storePath: mirrorPath });
|
|
261
|
+
const check = await runtime.discoverSnapshots(true);
|
|
262
|
+
const report = readNodeStatus({ nodeId, storePath: mirrorPath });
|
|
263
|
+
await runtime.close();
|
|
264
|
+
return { ...report, check };
|
|
265
|
+
}));
|
|
205
266
|
const credential = program
|
|
206
267
|
.command('credential')
|
|
207
268
|
.description('Manage encrypted upstream credentials');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAExE,SAAS,cAAc;IACrB,IAAI,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,SAAS,CAAC;QACR,IAAI,CAAC;YACH,OACE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACpE,CAAC,OAAO,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;YACzC,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,IACE,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;YACvD,GAAG,CAAC,QAAQ,KAAK,GAAG;YACpB,GAAG,CAAC,MAAM,KAAK,EAAE;YACjB,GAAG,CAAC,IAAI,KAAK,EAAE;YACf,GAAG,CAAC,QAAQ,KAAK,EAAE;YACnB,GAAG,CAAC,QAAQ,KAAK,EAAE,EACnB,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,wCAAwC;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC;AAQH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,cAAc,EAAE,CAAC;KACzB,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;KAC1C,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC;KACxC,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAEtE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAC3E,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACzF,MAAM;KACH,OAAO,CAAC,UAAU,CAAC;KACnB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF,MAAM;KACH,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,MAAM;KACH,OAAO,CAAC,oBAAoB,CAAC;KAC7B,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,IAAY,EAAE,EAAE,CACvC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CACjE,CACF,CAAC;AACJ,MAAM;KACH,OAAO,CAAC,aAAa,CAAC;KACtB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;IACzE,MAAM;SACH,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC;SACzB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC;AACD,KAAK,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;IAClE,MAAM;SACH,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC;SACvB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,mDAAmD,CAAC,CAAC;AACpG,GAAG;KACA,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;AAClE,GAAG;KACA,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACpF,GAAG;KACA,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG,GAAG;KACA,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,IAAY,EAAE,EAAE,CACvC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAC9D,CACF,CAAC;AACJ,GAAG;KACA,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF,GAAG;KACA,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAC9F,CAAC;AACJ,GAAG;KACA,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAC/F,CAAC;AACJ,GAAG;KACA,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACvF,GAAG;KACA,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,4EAA4E,CAAC;KACzF,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;KACjE,MAAM,CAAC,qBAAqB,EAAE,sDAAsD,CAAC;KACrF,MAAM,CACL,gBAAgB,EAChB,sDAAsD,EACtD,gBAAgB,CACjB;KACA,MAAM,CAAC,4BAA4B,EAAE,gCAAgC,EAAE,gBAAgB,CAAC;KACxF,MAAM,CACL,GAAG,CACD,KAAK,EACH,MAAM,EACN,IAAY,EACZ,IAAc,EACd,OAKC,EACD,EAAE;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC9E,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,KAAgC,CAAC;IACrC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACxB,CAAC;SAAM,IAAI,OAAO,CAAC,SAAS,KAAK,GAAG,EAAE,CAAC;QACrC,KAAK,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;SAAM,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC3C,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAiB,CAAC,MAAM,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAC/B,IAAI,EACJ;YACE,IAAI,EAAE,IAAI;YACV,KAAK;YACL,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YACxE,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS;gBACtC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;SAChD,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,EACD,KAAK,CAAC,MAAM,CACb,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,OAAO,CAAC,UAAU,MAAM,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,CACF,CACF,CAAC;AAEJ,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,oBAAoB;IAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAE/E;;;;GAIG;AACH,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC;AAClG,GAAG;KACA,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,8EAA8E,CAAC;KAC3F,MAAM,CACL,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAY,EAAE,EAAE;IACjC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACpE,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CACjC,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,MAAM,CAAC,EAAE,UAAU,CAAC,CACpE,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,MAAM,gBAAgB,CAAC;QACxC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO;QAClC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI;QAC5B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC9E,GAAG,EAAE,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC;KACrE,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,UAAU,GAAG,OAAO;KACvB,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,uCAAuC,CAAC,CAAC;AACxD,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACjG,UAAU;KACP,OAAO,CAAC,UAAU,CAAC;KACnB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3F,UAAU;KACP,OAAO,CAAC,YAAY,CAAC;KACrB,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7F,CAAC;AACJ,UAAU;KACP,OAAO,CAAC,oBAAoB,CAAC;KAC7B,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,IAAY,EAAE,EAAE,CACvC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CACrE,CACF,CAAC;AACJ,UAAU;KACP,OAAO,CAAC,aAAa,CAAC;KACtB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9F,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;IACxC,UAAU;SACP,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC;SACzB,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC,CAC3F,CAAC;AACN,CAAC;AACD,UAAU;KACP,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,kFAAkF,CAAC;KAC/F,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;KACxE,MAAM,CAAC,SAAS,EAAE,iCAAiC,CAAC;KACpD,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;KAC5D,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;KAC3E,MAAM,CAAC,qBAAqB,EAAE,oCAAoC,EAAE,gBAAgB,EAAE,GAAG,CAAC;KAC1F,MAAM,CACL,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAY,EAAE,OAAyB,EAAE,EAAE;IAC5D,MAAM,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CACvC,KAAK,EACL,qBAAqB,CACtB,CAAwB,CAAC;IAC1B,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAoB,CAAC;IACpF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;IAChF,IAAI,QAA4B,CAAC;IACjC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,YAAY,KAAK,UAAU,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,MAAM,oCAAoC,IAAI,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACxD,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzB,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,gDAAgD,CAAC,CAAC;IACvF,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,oBAAoB,KAAK,CAAC,MAAM,yCAAyC,CAC7F,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAClC,MAAM,EACN,uBAAuB,UAAU,CAAC,EAAE,YAAY,EAChD;QACE,QAAQ;QACR,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;KAC9B,CACF,CAAkD,CAAC;IAEpD,IAAI,OAAO,CAAC,IAAI,EAAiB,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACpD,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAiB,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,CAAC,IAAI,4BAA4B,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,UAAU,CAAC,IAAI,QAAQ,CAAC,CAAC;QACtE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,gBAAgB,IAAI,CAAC,CAAC;IACvF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAgC,UAAU,CAAC,IAAI,SAAS,gBAAgB,IAAI,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI;QAAE,OAAO;IAE1B,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC;IAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gDAAgD,cAAc,iCAAiC,CAChG,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,KAAK,CAAC;IACrD,SAAS,CAAC;QACR,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,cAAc,4BAA4B;gBAC7D,2EAA2E,CAC9E,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CACnC,KAAK,EACL,uBAAuB,UAAU,CAAC,EAAE,EAAE,CACvC,CAAsB,CAAC;QACxB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,CAAC,IAAI,8BAA8B,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC;gBACjF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CACH,CAAC;AAEJ,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AACzD,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAEvD,OAAO;KACJ,OAAO,CAAC,wBAAwB,CAAC;KACjC,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AAEpG,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;AACxF,MAAM;KACH,OAAO,CAAC,eAAe,CAAC;KACxB,MAAM,CAAC,mBAAmB,EAAE,8DAA8D,CAAC;KAC3F,MAAM,CACL,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAwB,EAAE,OAAqC,EAAE,EAAE;IACpF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;IACvD,IAAI,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAChC,KAAK,EACL,wCAAwC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAC5E,CAAC;IACF,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,aAAa,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACnF,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CACH,CAAC;AACJ,MAAM;KACH,OAAO,CAAC,eAAe,CAAC;KACxB,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/F,CAAC;AACJ,MAAM;KACH,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CACV,yGAAyG,CAC1G;KACA,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;KAC3E,MAAM,CAAC,UAAU,EAAE,wEAAwE,CAAC;KAC5F,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,IAAY,EAAE,OAAgD,EAAE,EAAE,CAC7E,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,+BAA+B,EAAE;IACtD,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;IACjC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAC9C,CAAC,CACH,CACF,CAAC;AAEJ,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;AACzF,QAAQ;KACL,OAAO,CAAC,WAAW,CAAC;KACpB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC;AACjF,QAAQ;KACL,OAAO,CAAC,aAAa,CAAC;KACtB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAEhG,MAAM,MAAM,GAAG,OAAO;KACnB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iEAAiE,CAAC,CAAC;AAClF,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM;KACH,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,eAAe,EAAE,uCAAuC,EAAE,aAAa,EAAE,EAAE,CAAC;KACnF,MAAM,CACL,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAU,EAAE,OAAwC,EAAE,EAAE;IACzE,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE;QAC5E,MAAM,EAAE,OAAO,CAAC,GAAG;KACpB,CAAC,CAA0D,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mFAAmF,OAAO,CAAC,SAAS,IAAI,CACzG,CAAC;IACJ,CAAC;IACD,SAAS,CAAC;QACR,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,0BAA0B,OAAO,CAAC,KAAK,EAAE,CAAC,CAKlF,CAAC;QACF,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,gBAAgB,CAAC,CAAC;YAC5E,IAAI,GAAG,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;gBACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,CAAC,MAAM,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;QACtD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC,CACH,CAAC;AACJ,MAAM;KACH,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,8EAA8E,CAAC;KAC3F,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACjG,MAAM;KACH,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAC5E,MAAM;KACH,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,kFAAkF,CAAC;KAC/F,MAAM,CACL,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAU,EAAE,EAAE;IAC/B,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAG3E,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAC9E,SAAS,CAAC;QACR,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,0BAA0B,OAAO,CAAC,KAAK,EAAE,CAAC,CAKlF,CAAC;QACF,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;YAC3E,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC,CACH,CAAC;AAEJ,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC7F,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChG,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,CAAC;KACnD,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,OAA0B,EAAE,EAAE,CACzC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CACnF,CACF,CAAC;AAEJ,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,2CAA2C,CAAC,CAAC;AAChG,KAAK;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,CAAC;KAClD,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;KAC9C,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;KACvD,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;KAC/C,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,OAA2C,EAAE,EAAE;IAC1D,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,IAAI;QAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,KAAK,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC,CACH,CAAC;AACJ,KAAK;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;KAC9C,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;KACvD,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;KAC/C,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC;KAC3C,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,OAA2C,EAAE,EAAE;IAC1D,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,IAAI;QAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,IAAI;QAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,uBAAuB,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC,CACH,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,eAAe,EAAE,+BAA+B,CAAC;KACxD,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,MAAc,EAAE,IAAY,EAAE,OAA0B,EAAE,EAAE,CACvE,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,WAAW,EAAE,EACpB,IAAI,EACJ,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAChE,CACF,CACF,CAAC;AAEJ,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC;AACzF,IAAI;KACD,OAAO,CAAC,OAAO,CAAC;KAChB,cAAc,CAAC,aAAa,CAAC;KAC7B,cAAc,CAAC,qBAAqB,CAAC;KACrC,MAAM,CAAC,CAAC,OAA4C,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5F,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AACL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;IACjC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvC,SAAS,gBAAgB,CAAC,IAAa,EAAE,IAAY,EAAE,IAAY;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,MAAM,CACL,GAAG,CAAC,CAAC,MAAM,EAAE,OAAe,EAAE,EAAE,CAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAC7D,CACF,CAAC;IACJ,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,GAAG,CACV,MAA6E;IAE7E,OAAO,KAAK,EAAE,GAAG,IAAW,EAAiB,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAiB,CAAC;YAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,MAAM,MAAM,CACxB,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,EACjE,GAAG,IAAI,CACR,CAAC;YACF,IAAI,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAsB;IAC/C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,OAAO,iBAAiB,CAAC,KAAK,CAAC;QAC7B,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,EAAE,GAAG;QAC3D,UAAU,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,MAAM,EAAE,UAAU;KAClF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;QAClF,wEAAwE;QACxE,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,CAAC;YACH,OAAO,iBAAiB,CAAC,KAAK,CAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAC3F,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,KAAK,CAAC,KAAc,EAAE,MAAwB;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAwBD,SAAS,iBAAiB,CAAC,WAAgC,EAAE,KAAa;IACxE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACvE,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAC9B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CACtE,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,+BAA+B,KAAK,2CAA2C,CAChF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,uCAAuC,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,aAAa,CAAC,OAAwB,EAAE,KAAa;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IAC/D,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IAC3D,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,uCAAuC,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpF,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,mCAAmC,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,IAAI,OAAe,CAAC;IACpB,IAAI,IAAc,CAAC;IACnB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,MAAM,CAAC;QACjB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,GAAG,KAAK,CAAC;QAChB,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,UAAU,CAAC;QACrB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,GAAG,IAAI,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAsB;IAC9C,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,QAAgC;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AAC1E,CAAC"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local data plane for node-hosted servers.
|
|
3
|
+
*
|
|
4
|
+
* A client machine runs one stdio connection that fronts every server placed on
|
|
5
|
+
* it: the mirror below keeps a copy of those servers in a local SQLite store so
|
|
6
|
+
* the same gateway, registry and virtualization the ToolHome host uses can serve
|
|
7
|
+
* them, capabilities are discovered once and then served from that snapshot, and
|
|
8
|
+
* children are only spawned when a tool call needs them.
|
|
9
|
+
*/
|
|
10
|
+
import { ControlClient } from '../control/client.js';
|
|
11
|
+
import { type ServerRecord } from '../domain/models.js';
|
|
12
|
+
import { SqliteStore } from '../storage/sqlite-store.js';
|
|
13
|
+
import { UpstreamManager } from '../upstream/manager.js';
|
|
14
|
+
import type { Server } from '@modelcontextprotocol/server';
|
|
15
|
+
export interface LocalGatewayOptions {
|
|
16
|
+
/** Authenticated control client; the gateway reads its own servers from it. */
|
|
17
|
+
client: ControlClient;
|
|
18
|
+
/** Which machine this is. Servers placed on other nodes are ignored. */
|
|
19
|
+
nodeId: string;
|
|
20
|
+
/** Where the local mirror lives, for example `~/.config/toolhome/node.sqlite`. */
|
|
21
|
+
storePath: string;
|
|
22
|
+
/** Idle time after which discovered children are disconnected again. */
|
|
23
|
+
idleDisconnectMs?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface LocalGateway {
|
|
26
|
+
/** One aggregate server over every node-hosted server on this machine. */
|
|
27
|
+
serverFactory: () => Server;
|
|
28
|
+
/** Disconnect every child. Call this when the stdio connection goes away. */
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
export interface LocalGatewayRuntime {
|
|
32
|
+
nodeId: string;
|
|
33
|
+
store: SqliteStore;
|
|
34
|
+
upstreams: UpstreamManager;
|
|
35
|
+
servers: ServerRecord[];
|
|
36
|
+
serverFactory: () => Server;
|
|
37
|
+
/**
|
|
38
|
+
* Connect to servers to (re)discover their capabilities, then drop the
|
|
39
|
+
* children again. Without `force`, servers that already have a snapshot are
|
|
40
|
+
* skipped, so steady state stays lazy.
|
|
41
|
+
*/
|
|
42
|
+
discoverSnapshots(force?: boolean): Promise<{
|
|
43
|
+
slug: string;
|
|
44
|
+
ok: boolean;
|
|
45
|
+
error?: string;
|
|
46
|
+
}[]>;
|
|
47
|
+
close(): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
/** Build the local runtime: mirror the node's servers and compose the gateway. */
|
|
50
|
+
export declare function prepareLocalGateway(options: LocalGatewayOptions): Promise<LocalGatewayRuntime>;
|
|
51
|
+
/** Start the local gateway and keep it serving over the caller's stdio. */
|
|
52
|
+
export declare function startLocalGateway(options: LocalGatewayOptions): Promise<LocalGateway>;
|
|
53
|
+
//# sourceMappingURL=local-gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-gateway.d.ts","sourceRoot":"","sources":["../../../src/node/local-gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAK5E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAW3D,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,MAAM,EAAE,aAAa,CAAC;IACtB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAeD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IAC7F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,kFAAkF;AAClF,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAyE9B;AAED,2EAA2E;AAC3E,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAG3F"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local data plane for node-hosted servers.
|
|
3
|
+
*
|
|
4
|
+
* A client machine runs one stdio connection that fronts every server placed on
|
|
5
|
+
* it: the mirror below keeps a copy of those servers in a local SQLite store so
|
|
6
|
+
* the same gateway, registry and virtualization the ToolHome host uses can serve
|
|
7
|
+
* them, capabilities are discovered once and then served from that snapshot, and
|
|
8
|
+
* children are only spawned when a tool call needs them.
|
|
9
|
+
*/
|
|
10
|
+
import { ControlClient } from '../control/client.js';
|
|
11
|
+
import { GatewayServerFactory } from '../data-plane/gateway-server.js';
|
|
12
|
+
import { CapabilityRegistry } from '../data-plane/registry.js';
|
|
13
|
+
import { ToolProjectionService } from '../data-plane/projection.js';
|
|
14
|
+
import { serverRecordSchema } from '../domain/models.js';
|
|
15
|
+
import { createLogger } from '../observability/logger.js';
|
|
16
|
+
import { CallRecorder } from '../observability/call-recorder.js';
|
|
17
|
+
import { CursorCodec } from '../security/cursor-codec.js';
|
|
18
|
+
import { SecretBox } from '../security/secret-box.js';
|
|
19
|
+
import { SqliteStore } from '../storage/sqlite-store.js';
|
|
20
|
+
import { UpstreamManager } from '../upstream/manager.js';
|
|
21
|
+
import { z } from 'zod';
|
|
22
|
+
const runtimeResponseSchema = z.object({
|
|
23
|
+
serverId: z.uuid(),
|
|
24
|
+
slug: z.string(),
|
|
25
|
+
kind: z.enum(['remote', 'home', 'node']),
|
|
26
|
+
nodeId: z.string().nullable(),
|
|
27
|
+
transport: z.unknown(),
|
|
28
|
+
credentialEnv: z.record(z.string(), z.string()),
|
|
29
|
+
});
|
|
30
|
+
/** Credential values per server slug, materialized by the ToolHome control API. */
|
|
31
|
+
class NodeCredentialSource {
|
|
32
|
+
#envBySlug = new Map();
|
|
33
|
+
configure(entries) {
|
|
34
|
+
for (const entry of entries)
|
|
35
|
+
this.#envBySlug.set(entry.slug, entry.env);
|
|
36
|
+
}
|
|
37
|
+
resolve(server) {
|
|
38
|
+
return { headers: {}, env: this.#envBySlug.get(server.slug) ?? {} };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** Build the local runtime: mirror the node's servers and compose the gateway. */
|
|
42
|
+
export async function prepareLocalGateway(options) {
|
|
43
|
+
const logger = createLogger('info', (line) => process.stderr.write(`${line}\n`));
|
|
44
|
+
// Deterministic key: the mirror stores no credential payloads, only server
|
|
45
|
+
// records and discovered capability snapshots.
|
|
46
|
+
const masterKey = `toolhome-local-node:${options.nodeId}`;
|
|
47
|
+
const store = new SqliteStore(options.storePath, new SecretBox(masterKey));
|
|
48
|
+
const credentials = new NodeCredentialSource();
|
|
49
|
+
const upstreams = new UpstreamManager(store, credentials, logger, {
|
|
50
|
+
canHost: (server) => server.kind === 'node' && server.nodeId === options.nodeId && server.enabled,
|
|
51
|
+
});
|
|
52
|
+
const { servers, environments } = await fetchNodeServers(options.client, options.nodeId, logger);
|
|
53
|
+
reconcile(store, servers);
|
|
54
|
+
credentials.configure(environments);
|
|
55
|
+
const registry = new CapabilityRegistry(store);
|
|
56
|
+
const cursors = new CursorCodec(masterKey);
|
|
57
|
+
const projections = new ToolProjectionService(store);
|
|
58
|
+
const recorder = new CallRecorder(store, logger, 30);
|
|
59
|
+
const gatewayFactory = new GatewayServerFactory(registry, upstreams, cursors, masterKey, projections, recorder);
|
|
60
|
+
return {
|
|
61
|
+
nodeId: options.nodeId,
|
|
62
|
+
store,
|
|
63
|
+
upstreams,
|
|
64
|
+
servers,
|
|
65
|
+
serverFactory: () => gatewayFactory.aggregate(),
|
|
66
|
+
async discoverSnapshots(force = false) {
|
|
67
|
+
// Tools of the aggregate come from stored capability snapshots, so a server
|
|
68
|
+
// has to be connected once before it can be listed. Afterwards the child is
|
|
69
|
+
// dropped again and only respawns when a tool call needs it. Ids come from
|
|
70
|
+
// the mirror: the store mints its own, so ToolHome's ids are not usable.
|
|
71
|
+
// Servers are checked in parallel: one slow `npx` download would otherwise
|
|
72
|
+
// stretch a `--check` into minutes.
|
|
73
|
+
const targets = store
|
|
74
|
+
.listServers()
|
|
75
|
+
.filter((item) => item.enabled &&
|
|
76
|
+
item.kind === 'node' &&
|
|
77
|
+
item.nodeId === options.nodeId &&
|
|
78
|
+
(force || store.getSnapshot(item.id) === null));
|
|
79
|
+
const checked = await Promise.all(targets.map(async (server) => {
|
|
80
|
+
try {
|
|
81
|
+
await upstreams.refresh(server.id);
|
|
82
|
+
await upstreams.remove(server.id);
|
|
83
|
+
return { slug: server.slug, ok: true, error: undefined };
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
87
|
+
logger.warn('Capability discovery failed; its tools stay absent until it succeeds', {
|
|
88
|
+
slug: server.slug,
|
|
89
|
+
error: message,
|
|
90
|
+
});
|
|
91
|
+
return { slug: server.slug, ok: false, error: message };
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
return checked.sort((left, right) => left.slug.localeCompare(right.slug));
|
|
95
|
+
},
|
|
96
|
+
async close() {
|
|
97
|
+
await upstreams.close();
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/** Start the local gateway and keep it serving over the caller's stdio. */
|
|
102
|
+
export async function startLocalGateway(options) {
|
|
103
|
+
const runtime = await prepareLocalGateway(options);
|
|
104
|
+
return { serverFactory: runtime.serverFactory, close: () => runtime.close() };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The servers placed on this machine, plus the launch environment for each. The
|
|
108
|
+
* environment is read per server because credentials are decrypted by the host
|
|
109
|
+
* exactly when a client needs them and never stored on the node.
|
|
110
|
+
*/
|
|
111
|
+
async function fetchNodeServers(client, nodeId, logger) {
|
|
112
|
+
const servers = z
|
|
113
|
+
.array(serverRecordSchema)
|
|
114
|
+
.parse(await client.request('GET', '/api/v1/servers'))
|
|
115
|
+
.filter((server) => server.kind === 'node' && server.nodeId === nodeId);
|
|
116
|
+
const environments = [];
|
|
117
|
+
for (const server of servers) {
|
|
118
|
+
try {
|
|
119
|
+
const runtime = runtimeResponseSchema.parse(await client.request('GET', `/api/v1/servers/${server.id}/runtime`));
|
|
120
|
+
environments.push({ slug: server.slug, env: runtime.credentialEnv });
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
logger.warn('Runtime environment unavailable; the server will start without one', {
|
|
124
|
+
slug: server.slug,
|
|
125
|
+
error: error instanceof Error ? error.message : String(error),
|
|
126
|
+
});
|
|
127
|
+
environments.push({ slug: server.slug, env: {} });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return { servers, environments };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Make the mirror match what ToolHome assigned to this node. Records are keyed
|
|
134
|
+
* by slug because ToolHome and the mirror mint different ids.
|
|
135
|
+
*/
|
|
136
|
+
function reconcile(store, servers) {
|
|
137
|
+
const existingBySlug = new Map(store.listServers().map((server) => [server.slug, server]));
|
|
138
|
+
const wantedSlugs = new Set();
|
|
139
|
+
for (const next of servers) {
|
|
140
|
+
wantedSlugs.add(next.slug);
|
|
141
|
+
const existing = existingBySlug.get(next.slug);
|
|
142
|
+
if (existing === undefined) {
|
|
143
|
+
store.createServer({ ...next, credentialId: null });
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
const drifted = existing.name !== next.name ||
|
|
147
|
+
existing.transport.type !== next.transport.type ||
|
|
148
|
+
JSON.stringify(existing.transport) !== JSON.stringify(next.transport) ||
|
|
149
|
+
existing.enabled !== next.enabled ||
|
|
150
|
+
JSON.stringify(existing.settings) !== JSON.stringify(next.settings);
|
|
151
|
+
if (drifted) {
|
|
152
|
+
store.updateServer(existing.id, {
|
|
153
|
+
name: next.name,
|
|
154
|
+
nodeId: next.nodeId,
|
|
155
|
+
transport: next.transport,
|
|
156
|
+
credentialId: null,
|
|
157
|
+
enabled: next.enabled,
|
|
158
|
+
settings: next.settings,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
for (const existing of store.listServers()) {
|
|
163
|
+
if (!wantedSlugs.has(existing.slug))
|
|
164
|
+
store.deleteServer(existing.id);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=local-gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-gateway.js","sourceRoot":"","sources":["../../../src/node/local-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface NodeServerStatus {
|
|
2
|
+
slug: string;
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
status: string;
|
|
5
|
+
lastError: string | null;
|
|
6
|
+
updatedAt: string | null;
|
|
7
|
+
transportSummary: string;
|
|
8
|
+
probe: {
|
|
9
|
+
ok: boolean;
|
|
10
|
+
detail: string;
|
|
11
|
+
};
|
|
12
|
+
/** null when no capability snapshot exists yet — the server was never reached. */
|
|
13
|
+
tools: number | null;
|
|
14
|
+
resources: number | null;
|
|
15
|
+
prompts: number | null;
|
|
16
|
+
calls: number;
|
|
17
|
+
lastCallAt: string | null;
|
|
18
|
+
}
|
|
19
|
+
export interface NodeStatusReport {
|
|
20
|
+
nodeId: string;
|
|
21
|
+
mirrorPath: string;
|
|
22
|
+
mirrorExists: boolean;
|
|
23
|
+
servers: NodeServerStatus[];
|
|
24
|
+
}
|
|
25
|
+
export declare function readNodeStatus(options: {
|
|
26
|
+
nodeId: string;
|
|
27
|
+
storePath: string;
|
|
28
|
+
}): NodeStatusReport;
|
|
29
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/node/status.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,kFAAkF;IAClF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,CAuB/F"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local health report for the servers placed on this machine.
|
|
3
|
+
*
|
|
4
|
+
* Everything here is read from the node mirror (`~/.config/toolhome/node.sqlite`),
|
|
5
|
+
* which `toolhome mcp stdio` writes on every session: runtime state from the last
|
|
6
|
+
* connection, capability snapshots from the last discovery, and per-server call
|
|
7
|
+
* records. No network access, no spawned children.
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { SecretBox } from '../security/secret-box.js';
|
|
12
|
+
import { SqliteStore } from '../storage/sqlite-store.js';
|
|
13
|
+
export function readNodeStatus(options) {
|
|
14
|
+
const report = {
|
|
15
|
+
nodeId: options.nodeId,
|
|
16
|
+
mirrorPath: options.storePath,
|
|
17
|
+
mirrorExists: existsSync(options.storePath),
|
|
18
|
+
servers: [],
|
|
19
|
+
};
|
|
20
|
+
if (!report.mirrorExists)
|
|
21
|
+
return report;
|
|
22
|
+
// Same deterministic key the stdio gateway uses; the mirror stores no secrets.
|
|
23
|
+
const store = new SqliteStore(options.storePath, new SecretBox(`toolhome-local-node:${options.nodeId}`));
|
|
24
|
+
try {
|
|
25
|
+
const servers = store
|
|
26
|
+
.listServers()
|
|
27
|
+
.filter((server) => server.kind === 'node' && server.nodeId === options.nodeId)
|
|
28
|
+
.sort((left, right) => left.slug.localeCompare(right.slug));
|
|
29
|
+
for (const server of servers)
|
|
30
|
+
report.servers.push(describeServer(store, server));
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
store.close();
|
|
34
|
+
}
|
|
35
|
+
return report;
|
|
36
|
+
}
|
|
37
|
+
function describeServer(store, server) {
|
|
38
|
+
const runtime = store.getRuntimeState(server.id);
|
|
39
|
+
const snapshot = store.getSnapshot(server.id);
|
|
40
|
+
// The recorder caps queries at 500; close enough for a "how busy is it" view.
|
|
41
|
+
const calls = store.listToolCalls({ serverId: server.id, limit: 500, offset: 0 });
|
|
42
|
+
return {
|
|
43
|
+
slug: server.slug,
|
|
44
|
+
enabled: server.enabled,
|
|
45
|
+
status: runtime?.status ?? 'unknown',
|
|
46
|
+
lastError: runtime?.lastError ?? null,
|
|
47
|
+
updatedAt: runtime?.updatedAt ?? null,
|
|
48
|
+
transportSummary: summarizeTransport(server.transport),
|
|
49
|
+
probe: probeCommand(server.transport),
|
|
50
|
+
tools: snapshot ? snapshot.tools.length : null,
|
|
51
|
+
resources: snapshot ? snapshot.resources.length : null,
|
|
52
|
+
prompts: snapshot ? snapshot.prompts.length : null,
|
|
53
|
+
calls: calls.length,
|
|
54
|
+
lastCallAt: calls[0]?.startedAt ?? null,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function summarizeTransport(transport) {
|
|
58
|
+
if (transport.type !== 'stdio')
|
|
59
|
+
return transport.url;
|
|
60
|
+
return [transport.command, ...transport.args].join(' ');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Whether the launch command exists on this machine: absolute paths are checked
|
|
64
|
+
* directly, bare names are looked up on PATH.
|
|
65
|
+
*/
|
|
66
|
+
function probeCommand(transport) {
|
|
67
|
+
if (transport.type !== 'stdio') {
|
|
68
|
+
return { ok: false, detail: 'not a stdio server' };
|
|
69
|
+
}
|
|
70
|
+
const { command } = transport;
|
|
71
|
+
if (command.includes('/')) {
|
|
72
|
+
return existsSync(command)
|
|
73
|
+
? { ok: true, detail: command }
|
|
74
|
+
: { ok: false, detail: `${command} (missing)` };
|
|
75
|
+
}
|
|
76
|
+
for (const directory of (process.env.PATH ?? '').split(':')) {
|
|
77
|
+
if (directory === '')
|
|
78
|
+
continue;
|
|
79
|
+
const candidate = join(directory, command);
|
|
80
|
+
if (existsSync(candidate))
|
|
81
|
+
return { ok: true, detail: candidate };
|
|
82
|
+
}
|
|
83
|
+
return { ok: false, detail: `${command} not found on PATH` };
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/node/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-recorder.d.ts","sourceRoot":"","sources":["../../../src/observability/call-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAMjD;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;;IAUvB,YAAY,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,SAAK,
|
|
1
|
+
{"version":3,"file":"call-recorder.d.ts","sourceRoot":"","sources":["../../../src/observability/call-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAMjD;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;;IAUvB,YAAY,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,SAAK,EAe3D;IAED,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAYjC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ3B;CAoCF"}
|
|
@@ -26,8 +26,12 @@ export class CallRecorder {
|
|
|
26
26
|
this.#logger = logger;
|
|
27
27
|
this.#retentionDays = Math.max(0, Math.floor(retentionDays));
|
|
28
28
|
this.#flushTimer = setInterval(() => void this.#flush(), FLUSH_INTERVAL_MS);
|
|
29
|
+
// Background maintenance must not hold a CLI process open: a command that
|
|
30
|
+
// finished its work should exit even though the recorder still has timers.
|
|
31
|
+
this.#flushTimer.unref();
|
|
29
32
|
if (this.#retentionDays > 0) {
|
|
30
33
|
this.#retentionTimer = setInterval(() => void this.#runRetention(), RETENTION_CHECK_INTERVAL_MS);
|
|
34
|
+
this.#retentionTimer.unref();
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
37
|
record(draft) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-recorder.js","sourceRoot":"","sources":["../../../src/observability/call-recorder.ts"],"names":[],"mappings":"AAIA,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,2BAA2B,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAY;IACd,MAAM,CAAQ;IACd,OAAO,CAAS;IAChB,cAAc,CAAS;IAChC,MAAM,GAAoB,EAAE,CAAC;IAC7B,QAAQ,GAAG,CAAC,CAAC;IACb,WAAW,GAA0C,IAAI,CAAC;IAC1D,eAAe,GAA0C,IAAI,CAAC;IAC9D,OAAO,GAAG,KAAK,CAAC;IAEhB,YAAY,KAAY,EAAE,MAAc,EAAE,aAAa,GAAG,EAAE;QAC1D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"call-recorder.js","sourceRoot":"","sources":["../../../src/observability/call-recorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,13 @@ export interface Logger {
|
|
|
11
11
|
warn(message: string, detail?: Record<string, unknown>): void;
|
|
12
12
|
error(message: string, detail?: Record<string, unknown>): void;
|
|
13
13
|
}
|
|
14
|
-
export declare function createLogger(minimum: LogLevel
|
|
14
|
+
export declare function createLogger(minimum: LogLevel,
|
|
15
|
+
/**
|
|
16
|
+
* Where lines go. The default sends info/debug to stdout and warn/error to
|
|
17
|
+
* stderr, which suits HTTP servers. Anything that speaks a line-based protocol
|
|
18
|
+
* on stdout — the local stdio gateway — must pass a sink that always writes to
|
|
19
|
+
* stderr, or log lines would corrupt the protocol.
|
|
20
|
+
*/
|
|
21
|
+
sink?: (line: string, level: LogLevel) => void): Logger;
|
|
15
22
|
export {};
|
|
16
23
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ;;;;;CAAgF,CAAC;AAE/F,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE7C,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAChE;AAED,wBAAgB,YAAY,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ;;;;;CAAgF,CAAC;AAE/F,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE7C,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAChE;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,QAAQ;AACjB;;;;;GAKG;AACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,GAC7C,MAAM,CAuBR"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
const severity = { debug: 10, info: 20, warn: 30, error: 40 };
|
|
2
|
-
export function createLogger(minimum
|
|
2
|
+
export function createLogger(minimum,
|
|
3
|
+
/**
|
|
4
|
+
* Where lines go. The default sends info/debug to stdout and warn/error to
|
|
5
|
+
* stderr, which suits HTTP servers. Anything that speaks a line-based protocol
|
|
6
|
+
* on stdout — the local stdio gateway — must pass a sink that always writes to
|
|
7
|
+
* stderr, or log lines would corrupt the protocol.
|
|
8
|
+
*/
|
|
9
|
+
sink) {
|
|
10
|
+
const write = sink ??
|
|
11
|
+
((line, level) => {
|
|
12
|
+
(level === 'error' || level === 'warn' ? process.stderr : process.stdout).write(`${line}\n`);
|
|
13
|
+
});
|
|
3
14
|
const emit = (level, message, detail) => {
|
|
4
15
|
if (severity[level] < severity[minimum])
|
|
5
16
|
return;
|
|
@@ -9,11 +20,7 @@ export function createLogger(minimum) {
|
|
|
9
20
|
message,
|
|
10
21
|
...(detail === undefined ? {} : { detail }),
|
|
11
22
|
};
|
|
12
|
-
|
|
13
|
-
if (level === 'error' || level === 'warn')
|
|
14
|
-
process.stderr.write(`${line}\n`);
|
|
15
|
-
else
|
|
16
|
-
process.stdout.write(`${line}\n`);
|
|
23
|
+
write(JSON.stringify(entry), level);
|
|
17
24
|
};
|
|
18
25
|
return {
|
|
19
26
|
debug: (message, detail) => emit('debug', message, detail),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAmC,CAAC;AAW/F,MAAM,UAAU,YAAY,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/observability/logger.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAmC,CAAC;AAW/F,MAAM,UAAU,YAAY,CAC1B,OAAiB;AACjB;;;;;GAKG;AACH,IAA8C;IAE9C,MAAM,KAAK,GACT,IAAI;QACJ,CAAC,CAAC,IAAY,EAAE,KAAe,EAAE,EAAE;YACjC,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACL,MAAM,IAAI,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,MAAgC,EAAQ,EAAE;QACxF,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QAChD,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC9B,KAAK;YACL,OAAO;YACP,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;SAC5C,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;QAC1D,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QACxD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QACxD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;KAC3D,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ClientCapabilities, type Notification, type ServerContext } from '@modelcontextprotocol/client';
|
|
2
2
|
import type { CapabilitySnapshot, ServerRecord } from '../domain/models.js';
|
|
3
3
|
import type { Logger } from '../observability/logger.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { CredentialSource } from './credential-resolver.js';
|
|
5
5
|
export type UpstreamEvent = {
|
|
6
6
|
type: 'tools_changed';
|
|
7
7
|
serverId: string;
|
|
@@ -39,7 +39,7 @@ type EventSink = (event: UpstreamEvent) => void;
|
|
|
39
39
|
export declare class UpstreamAdapter {
|
|
40
40
|
#private;
|
|
41
41
|
readonly server: ServerRecord;
|
|
42
|
-
constructor(server: ServerRecord, credentials:
|
|
42
|
+
constructor(server: ServerRecord, credentials: CredentialSource, logger: Logger, events: EventSink);
|
|
43
43
|
processId(): number | null;
|
|
44
44
|
execute(request: UpstreamRequest, bridge: BridgeContext): Promise<unknown>;
|
|
45
45
|
notify(notification: Notification, clientCapabilities: ClientCapabilities, bridge?: BridgeContext | null): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/upstream/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAGjB,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AAWtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/upstream/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAGjB,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AAWtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAwBjE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,qBAAqB,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAChD,qBAAqB,CAAC,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CAAC;IACjE,gBAAgB,CAAC,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAAC;CAC9D;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,aAAa,EACb,uBAAuB,GAAG,uBAAuB,GAAG,kBAAkB,CACvE,CAAC;AAyDF,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAEhD,qBAAa,eAAe;;IAC1B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAe9B,YACE,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EAMlB;IAED,SAAS,IAAI,MAAM,GAAG,IAAI,CAKzB;IAEK,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CA6B/E;IAwNK,MAAM,CACV,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,MAAM,GAAE,aAAa,GAAG,IAAW,GAClC,OAAO,CAAC,IAAI,CAAC,CASf;IAEK,kBAAkB,CACtB,IAAI,EAAE,MAAM,EAAE,EACd,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAS9B;IAEK,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqE3E;IAED,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CASvB;IA4BK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAS3B;CA2dF"}
|
|
@@ -276,19 +276,33 @@ export class UpstreamAdapter {
|
|
|
276
276
|
const slot = await this.#acquire(discoveryCapabilities);
|
|
277
277
|
try {
|
|
278
278
|
const capabilities = slot.client.getServerCapabilities() ?? {};
|
|
279
|
+
// Some servers declare a capability and then answer its list method with
|
|
280
|
+
// "Method not found". Those are optional surfaces, so an empty result beats
|
|
281
|
+
// failing the whole snapshot; `tools/list` stays strict because a server
|
|
282
|
+
// without tools has nothing to offer.
|
|
283
|
+
const optional = async (call, empty) => {
|
|
284
|
+
try {
|
|
285
|
+
return await call;
|
|
286
|
+
}
|
|
287
|
+
catch (error) {
|
|
288
|
+
if (error.code === -32601)
|
|
289
|
+
return empty;
|
|
290
|
+
throw error;
|
|
291
|
+
}
|
|
292
|
+
};
|
|
279
293
|
const [toolsResult, resourcesResult, resourceTemplatesResult, promptsResult] = await Promise.all([
|
|
280
294
|
capabilities.tools
|
|
281
295
|
? slot.client.listTools(undefined, { cacheMode: 'refresh' })
|
|
282
296
|
: Promise.resolve({ tools: [] }),
|
|
283
|
-
capabilities.resources
|
|
297
|
+
optional(capabilities.resources
|
|
284
298
|
? slot.client.listResources(undefined, { cacheMode: 'refresh' })
|
|
285
|
-
: Promise.resolve({ resources: [] }),
|
|
286
|
-
capabilities.resources
|
|
299
|
+
: Promise.resolve({ resources: [] }), { resources: [] }),
|
|
300
|
+
optional(capabilities.resources
|
|
287
301
|
? slot.client.listResourceTemplates(undefined, { cacheMode: 'refresh' })
|
|
288
|
-
: Promise.resolve({ resourceTemplates: [] }),
|
|
289
|
-
capabilities.prompts
|
|
302
|
+
: Promise.resolve({ resourceTemplates: [] }), { resourceTemplates: [] }),
|
|
303
|
+
optional(capabilities.prompts
|
|
290
304
|
? slot.client.listPrompts(undefined, { cacheMode: 'refresh' })
|
|
291
|
-
: Promise.resolve({ prompts: [] }),
|
|
305
|
+
: Promise.resolve({ prompts: [] }), { prompts: [] }),
|
|
292
306
|
]);
|
|
293
307
|
const protocolEra = slot.client.getProtocolEra();
|
|
294
308
|
if (!protocolEra)
|
|
@@ -356,8 +370,54 @@ export class UpstreamAdapter {
|
|
|
356
370
|
this.#subscriptionCreates.clear();
|
|
357
371
|
}
|
|
358
372
|
async close() {
|
|
373
|
+
// stdio children do not die when their transport closes: `npm exec` and `uvx`
|
|
374
|
+
// wrappers in particular drop their grandchildren when they are terminated.
|
|
375
|
+
// Remember the child pids and reap them after the teardown, escalating to
|
|
376
|
+
// SIGKILL so a closed server never leaves processes behind.
|
|
377
|
+
const pids = this.#stdioChildPids();
|
|
359
378
|
this.#closed = true;
|
|
360
379
|
await this.restart();
|
|
380
|
+
await this.#reapProcesses(pids);
|
|
381
|
+
}
|
|
382
|
+
#stdioChildPids() {
|
|
383
|
+
return this.#slots
|
|
384
|
+
.map((slot) => (slot.transport instanceof StdioClientTransport ? slot.transport.pid : null))
|
|
385
|
+
.filter((pid) => typeof pid === 'number');
|
|
386
|
+
}
|
|
387
|
+
async #reapProcesses(pids) {
|
|
388
|
+
if (pids.length === 0)
|
|
389
|
+
return;
|
|
390
|
+
const alive = () => pids.filter((pid) => {
|
|
391
|
+
try {
|
|
392
|
+
process.kill(pid, 0);
|
|
393
|
+
return true;
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
return false;
|
|
397
|
+
}
|
|
398
|
+
});
|
|
399
|
+
for (const pid of alive()) {
|
|
400
|
+
try {
|
|
401
|
+
process.kill(pid, 'SIGTERM');
|
|
402
|
+
}
|
|
403
|
+
catch {
|
|
404
|
+
// already gone
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
const deadline = Date.now() + 2_000;
|
|
408
|
+
while (Date.now() < deadline) {
|
|
409
|
+
if (alive().length === 0)
|
|
410
|
+
return;
|
|
411
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
412
|
+
}
|
|
413
|
+
for (const pid of alive()) {
|
|
414
|
+
try {
|
|
415
|
+
process.kill(pid, 'SIGKILL');
|
|
416
|
+
}
|
|
417
|
+
catch {
|
|
418
|
+
// already gone
|
|
419
|
+
}
|
|
420
|
+
}
|
|
361
421
|
}
|
|
362
422
|
async #acquire(capabilities) {
|
|
363
423
|
await this.#restartPromise;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/upstream/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/upstream/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,15 @@ export interface ResolvedCredential {
|
|
|
6
6
|
env: Record<string, string>;
|
|
7
7
|
authProvider?: AuthProvider | OAuthClientProvider;
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Where a server's credential values come from. The ToolHome host resolves them
|
|
11
|
+
* from its encrypted store; a node-side runtime resolves them from what the
|
|
12
|
+
* control API materialized for the servers assigned to that machine.
|
|
13
|
+
*/
|
|
14
|
+
export interface CredentialSource {
|
|
15
|
+
resolve(server: ServerRecord): ResolvedCredential;
|
|
16
|
+
}
|
|
17
|
+
export declare class CredentialResolver implements CredentialSource {
|
|
10
18
|
#private;
|
|
11
19
|
constructor(store: Store, publicUrl: URL, urlClientId?: boolean);
|
|
12
20
|
resolve(server: ServerRecord): ResolvedCredential;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-resolver.d.ts","sourceRoot":"","sources":["../../../src/upstream/credential-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGtF,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAC;CACnD;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"credential-resolver.d.ts","sourceRoot":"","sources":["../../../src/upstream/credential-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGtF,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAC;CACnD;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAAC;CACnD;AAED,qBAAa,kBAAmB,YAAW,gBAAgB;;IAKzD,YAAY,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,UAAO,EAI3D;IAED,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAMhD;CAmDF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-resolver.js","sourceRoot":"","sources":["../../../src/upstream/credential-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAGtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"credential-resolver.js","sourceRoot":"","sources":["../../../src/upstream/credential-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAGtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAiB1D,MAAM,OAAO,kBAAkB;IACpB,MAAM,CAAQ;IACd,UAAU,CAAM;IAChB,YAAY,CAAU;IAE/B,YAAY,KAAY,EAAE,SAAc,EAAE,WAAW,GAAG,IAAI;QAC1D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,MAAoB;QAC1B,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe,CACb,MAAoB,EACpB,OAA0B,EAC1B,YAAoB;QAEpB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS,CAAC;YACf,KAAK,SAAS,CAAC;YACf,KAAK,KAAK,EAAE,CAAC;gBACX,MAAM,YAAY,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBAC3D,OAAO;oBACL,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,GAAG,EAAE,YAAY,CAAC,GAAG;oBACrB,GAAG,CAAC,YAAY,CAAC,WAAW,KAAK,SAAS;wBACxC,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;iBACvE,CAAC;YACJ,CAAC;YACD,KAAK,OAAO;gBACV,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBAChD,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,+CAA+C,EAC/C,GAAG,CACJ,CAAC;gBACJ,CAAC;gBACD,IACE,IAAI,CAAC,MAAM;qBACR,WAAW,EAAE;qBACb,IAAI,CACH,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC,YAAY,KAAK,YAAY,CACrF,EACH,CAAC;oBACD,MAAM,IAAI,QAAQ,CAChB,yBAAyB,EACzB,wDAAwD,EACxD,GAAG,CACJ,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,EAAE;oBACX,GAAG,EAAE,EAAE;oBACP,YAAY,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE;wBAChF,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY;qBAC9D,CAAC;iBACH,CAAC;QACN,CAAC;IACH,CAAC;CACF"}
|
|
@@ -3,11 +3,11 @@ import { type CapabilitySnapshot, type ServerRecord } from '../domain/models.js'
|
|
|
3
3
|
import type { Logger } from '../observability/logger.js';
|
|
4
4
|
import type { Store } from '../storage/store.js';
|
|
5
5
|
import { type BridgeTransforms, type UpstreamEvent, type UpstreamRequest } from './adapter.js';
|
|
6
|
-
import type {
|
|
6
|
+
import type { CredentialSource } from './credential-resolver.js';
|
|
7
7
|
type UpstreamEventListener = (event: UpstreamEvent) => void;
|
|
8
8
|
export declare class UpstreamManager {
|
|
9
9
|
#private;
|
|
10
|
-
constructor(store: Store, credentials:
|
|
10
|
+
constructor(store: Store, credentials: CredentialSource, logger: Logger, options?: {
|
|
11
11
|
canHost?: (server: ServerRecord) => boolean;
|
|
12
12
|
});
|
|
13
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/upstream/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/upstream/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,KAAK,qBAAqB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAO5D,qBAAa,eAAe;;IAW1B,YACE,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAA;KAAO,EAS9D;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEnC;IAED,SAAS,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI,CAGrD;IAEK,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,aAAa,EACtB,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,GAAE,gBAAqB,GAChC,OAAO,CAAC,OAAO,CAAC,CAelB;IAEK,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,aAAa,EACtB,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,IAAI,CAAC,CAIf;IAEK,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,IAAI,CAAC,CAIf;IAEK,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAI9B;IAED,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAMrD;IAEK,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAc3D;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5C;IAEK,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhD;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3B;CAuOF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/upstream/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/upstream/manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/skills/toolhome/SKILL.md
CHANGED
|
@@ -75,6 +75,7 @@ toolhome cli exec gh-cli -- --version # run remotely, stream output
|
|
|
75
75
|
toolhome credential list # list credentials
|
|
76
76
|
toolhome credential authorize <name> # OAuth authorization (opens browser, waits)
|
|
77
77
|
toolhome access-key create laptop # create an MCP Access Key for harnesses
|
|
78
|
+
toolhome mcp stdio # serve every server placed on this machine
|
|
78
79
|
toolhome mcp launch <slug> # run a server placed on this machine (stdio)
|
|
79
80
|
toolhome endpoint aggregate # show the aggregate endpoint URL
|
|
80
81
|
toolhome market list # browse the Market catalog
|
|
@@ -234,6 +235,14 @@ Some capabilities only exist on the machine running the agent: a local Chrome, a
|
|
|
234
235
|
|
|
235
236
|
3. Verify with `toolhome mcp launch chrome-devtools`: it must speak MCP on stdio and write nothing else to stdout.
|
|
236
237
|
|
|
238
|
+
**One entry for every server on the machine**: `toolhome mcp stdio` fronts all of them at once, so the harness config shrinks to a single command and a server added later needs no config edit at all. Tool names are namespaced `slug.tool`; children spawn lazily on first use and are disconnected again when the client goes away.
|
|
239
|
+
|
|
240
|
+
```json
|
|
241
|
+
{ "command": "toolhome", "args": ["mcp", "stdio"] }
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
The machine's node label comes from `nodeId` in the local config (`~/.config/toolhome/config.json`), the `--node <id>` flag, or the hostname. `toolhome mcp launch <slug>` remains the per-server form when a client needs original names.
|
|
245
|
+
|
|
237
246
|
How it works: the launcher reads the server's transport and its credential values from `GET /api/v1/servers/{id}/runtime` (admin control key, audited, values never logged), merges them into the environment, then spawns the real process with this process's stdio so the client talks to the child directly. `TOOLHOME_*` variables are withheld from the child, so a server cannot read the control key that launched it.
|
|
238
247
|
|
|
239
248
|
Deployment note: because the launcher resolves its config through ToolHome, a client-machine server is unavailable while the ToolHome server or the network path to it is down. Placement also does not create a private channel — a `node` server still runs with the user's own privileges on that machine.
|