toolhome 0.6.12 → 0.6.15

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.
Files changed (54) hide show
  1. package/README.md +24 -1
  2. package/README.zh.md +24 -1
  3. package/dist/server/cli/adopt.d.ts +43 -0
  4. package/dist/server/cli/adopt.d.ts.map +1 -0
  5. package/dist/server/cli/adopt.js +170 -0
  6. package/dist/server/cli/adopt.js.map +1 -0
  7. package/dist/server/cli/main.js +126 -3
  8. package/dist/server/cli/main.js.map +1 -1
  9. package/dist/server/cli/migrate.d.ts +161 -0
  10. package/dist/server/cli/migrate.d.ts.map +1 -0
  11. package/dist/server/cli/migrate.js +405 -0
  12. package/dist/server/cli/migrate.js.map +1 -0
  13. package/dist/server/cli-plane/cli-service.d.ts +17 -0
  14. package/dist/server/cli-plane/cli-service.d.ts.map +1 -1
  15. package/dist/server/cli-plane/cli-service.js +48 -0
  16. package/dist/server/cli-plane/cli-service.js.map +1 -1
  17. package/dist/server/cli-plane/state.d.ts +29 -0
  18. package/dist/server/cli-plane/state.d.ts.map +1 -0
  19. package/dist/server/cli-plane/state.js +103 -0
  20. package/dist/server/cli-plane/state.js.map +1 -0
  21. package/dist/server/control/client.d.ts +10 -0
  22. package/dist/server/control/client.d.ts.map +1 -1
  23. package/dist/server/control/client.js +40 -2
  24. package/dist/server/control/client.js.map +1 -1
  25. package/dist/server/control/control-api.d.ts.map +1 -1
  26. package/dist/server/control/control-api.js +30 -1
  27. package/dist/server/control/control-api.js.map +1 -1
  28. package/dist/server/control/control-service.d.ts +94 -38
  29. package/dist/server/control/control-service.d.ts.map +1 -1
  30. package/dist/server/control/control-service.js +341 -24
  31. package/dist/server/control/control-service.js.map +1 -1
  32. package/dist/server/control/openapi.d.ts.map +1 -1
  33. package/dist/server/control/openapi.js +14 -1
  34. package/dist/server/control/openapi.js.map +1 -1
  35. package/dist/server/data-plane/gateway-server.d.ts.map +1 -1
  36. package/dist/server/data-plane/gateway-server.js +72 -31
  37. package/dist/server/data-plane/gateway-server.js.map +1 -1
  38. package/dist/server/market/catalog.d.ts +39 -0
  39. package/dist/server/market/catalog.d.ts.map +1 -1
  40. package/dist/server/market/catalog.js +38 -1
  41. package/dist/server/market/catalog.js.map +1 -1
  42. package/dist/server/market/market-service.d.ts +1 -0
  43. package/dist/server/market/market-service.d.ts.map +1 -1
  44. package/dist/server/node/local-gateway.d.ts.map +1 -1
  45. package/dist/server/node/local-gateway.js +20 -1
  46. package/dist/server/node/local-gateway.js.map +1 -1
  47. package/dist/server/upstream/oauth-service.d.ts +22 -0
  48. package/dist/server/upstream/oauth-service.d.ts.map +1 -1
  49. package/dist/server/upstream/oauth-service.js +26 -0
  50. package/dist/server/upstream/oauth-service.js.map +1 -1
  51. package/package.json +1 -1
  52. package/skills/toolhome/SKILL.md +46 -0
  53. package/skills/toolhome/references/cli-reference.md +98 -0
  54. package/skills/toolhome/references/troubleshooting.md +83 -0
@@ -0,0 +1,405 @@
1
+ import { z } from 'zod';
2
+ const credentialPayloadSchema = z
3
+ .object({
4
+ type: z.enum(['bearer', 'api-key', 'headers', 'env', 'oauth']),
5
+ token: z.string().optional(),
6
+ value: z.string().optional(),
7
+ variables: z.record(z.string(), z.string()).optional(),
8
+ headers: z.record(z.string(), z.string()).optional(),
9
+ })
10
+ .passthrough();
11
+ const exportSchema = z.object({
12
+ credentials: z
13
+ .array(z.object({
14
+ ref: z.string(),
15
+ name: z.string(),
16
+ type: z.string(),
17
+ payload: credentialPayloadSchema.optional(),
18
+ }))
19
+ .default([]),
20
+ servers: z.array(z.object({ slug: z.string(), kind: z.string() }).passthrough()).default([]),
21
+ clis: z.array(z.object({ slug: z.string() }).passthrough()).default([]),
22
+ installations: z
23
+ .array(z.object({
24
+ entryId: z.string(),
25
+ targetType: z.enum(['server', 'cli']),
26
+ targetSlug: z.string(),
27
+ credentialRef: z.string().nullable().default(null),
28
+ }))
29
+ .default([]),
30
+ });
31
+ const marketEntrySchema = z
32
+ .object({
33
+ id: z.string(),
34
+ name: z.string(),
35
+ plane: z.enum(['mcp', 'cli']),
36
+ installed: z.boolean().default(false),
37
+ requires: z
38
+ .array(z.object({
39
+ name: z.string(),
40
+ secret: z.boolean().default(false),
41
+ required: z.boolean().default(false),
42
+ }))
43
+ .default([]),
44
+ credential: z
45
+ .object({
46
+ type: z.enum(['none', 'oauth', 'env', 'bearer', 'api-key', 'headers']),
47
+ tokenKey: z.string().optional(),
48
+ valueKey: z.string().optional(),
49
+ headers: z
50
+ .array(z.object({
51
+ name: z.string(),
52
+ valueKey: z.string().optional(),
53
+ value: z.string().optional(),
54
+ }))
55
+ .optional(),
56
+ })
57
+ .passthrough(),
58
+ })
59
+ .passthrough();
60
+ const importReportSchema = z
61
+ .object({
62
+ counts: z.record(z.string(), z.number()).default({}),
63
+ servers: z.array(z.object({ slug: z.string(), status: z.string() }).passthrough()).default([]),
64
+ clis: z.array(z.object({ slug: z.string(), status: z.string() }).passthrough()).default([]),
65
+ credentials: z
66
+ .array(z.object({ name: z.string(), status: z.string() }).passthrough())
67
+ .default([]),
68
+ })
69
+ .passthrough();
70
+ const statusSchema = z
71
+ .object({
72
+ installed: z.boolean().nullable(),
73
+ version: z.string().nullable(),
74
+ loggedIn: z.boolean(),
75
+ })
76
+ .passthrough();
77
+ export async function migrateConfiguration(source, target, options = {}) {
78
+ const planes = options.planes ?? { mcp: true, cli: true };
79
+ const dryRun = options.dryRun === true;
80
+ const log = options.log ?? (() => { });
81
+ log('reading the source instance');
82
+ const exported = exportSchema.parse(await source.request('GET', '/api/v1/config/export?includeSecrets=true'));
83
+ const sourceMarket = parseMarket(await source.request('GET', '/api/v1/market'));
84
+ const targetMarket = parseMarket(await target.request('GET', '/api/v1/market'));
85
+ const targetOverview = z
86
+ .object({ servers: z.object({ total: z.number() }), clis: z.object({ total: z.number() }), credentials: z.number() })
87
+ .passthrough()
88
+ .parse(await target.request('GET', '/api/v1/overview'));
89
+ const servers = planes.mcp ? exported.servers : [];
90
+ const clis = planes.cli ? exported.clis : [];
91
+ const usedRefs = new Set();
92
+ for (const installation of exported.installations) {
93
+ if (planes.mcp && installation.targetType === 'server')
94
+ usedRefs.add(installation.credentialRef ?? '');
95
+ if (planes.cli && installation.targetType === 'cli')
96
+ usedRefs.add(installation.credentialRef ?? '');
97
+ }
98
+ const credentials = exported.credentials.filter((credential) => {
99
+ if (usedRefs.has(credential.ref))
100
+ return true;
101
+ return [...servers, ...clis].some((record) => 'credentialRef' in record && record.credentialRef === credential.ref);
102
+ });
103
+ const body = {
104
+ version: 1,
105
+ secretsIncluded: true,
106
+ mode: 'merge',
107
+ upsert: false,
108
+ credentials,
109
+ servers,
110
+ clis,
111
+ installations: exported.installations,
112
+ };
113
+ const reinstalls = [];
114
+ const pendingValues = new Map();
115
+ for (const installation of exported.installations) {
116
+ const plane = installation.targetType === 'cli' ? 'cli' : 'mcp';
117
+ if (plane === 'cli' && !planes.cli)
118
+ continue;
119
+ if (plane === 'mcp' && !planes.mcp)
120
+ continue;
121
+ const entry = sourceMarket.get(installation.entryId);
122
+ const targetEntry = targetMarket.get(installation.entryId);
123
+ if (entry === undefined || targetEntry === undefined) {
124
+ reinstalls.push({
125
+ entryId: installation.entryId,
126
+ plane,
127
+ status: 'not-in-catalog',
128
+ detail: 'the target catalog has no such entry; the record is imported as plain configuration',
129
+ });
130
+ continue;
131
+ }
132
+ if (targetEntry.installed) {
133
+ reinstalls.push({ entryId: entry.id, plane, status: 'already-installed' });
134
+ continue;
135
+ }
136
+ const harvest = harvestValues(entry, installation.credentialRef, exported.credentials);
137
+ if (harvest.missing.length > 0) {
138
+ reinstalls.push({
139
+ entryId: entry.id,
140
+ plane,
141
+ status: 'needs-secret',
142
+ detail: `no stored value for ${harvest.missing.join(', ')}`,
143
+ });
144
+ continue;
145
+ }
146
+ pendingValues.set(reinstalls.length, harvest.values);
147
+ reinstalls.push({ entryId: entry.id, plane, status: 'pending' });
148
+ }
149
+ const applyImport = async (isDryRun) => importReportSchema.parse(await target.request('POST', '/api/v1/config/import', { ...body, dryRun: isDryRun }));
150
+ let imported;
151
+ if (dryRun) {
152
+ imported = await applyImport(true);
153
+ }
154
+ else {
155
+ // Install first: each Market entry provisions its own credential, record and
156
+ // installation record, and the import pass then skips what already exists.
157
+ log('reinstalling Market entries');
158
+ for (const [index, outcome] of reinstalls.entries()) {
159
+ if (outcome.status !== 'pending')
160
+ continue;
161
+ const values = pendingValues.get(index) ?? {};
162
+ try {
163
+ const job = z
164
+ .object({
165
+ jobId: z.string().nullable(),
166
+ status: z.string(),
167
+ actionUrl: z.string().optional(),
168
+ })
169
+ .passthrough()
170
+ .parse(await target.request('POST', `/api/v1/market/${outcome.entryId}/install`, { values }));
171
+ if (job.status === 'awaiting_secret') {
172
+ reinstalls[index] = {
173
+ entryId: outcome.entryId,
174
+ plane: outcome.plane,
175
+ status: 'needs-secret',
176
+ detail: `complete the one-time URL on the target: ${job.actionUrl ?? '(see the console)'}`,
177
+ };
178
+ continue;
179
+ }
180
+ await waitForJob(target, job.jobId, options);
181
+ reinstalls[index] = { entryId: outcome.entryId, plane: outcome.plane, status: 'installed' };
182
+ }
183
+ catch (error) {
184
+ reinstalls[index] = {
185
+ entryId: outcome.entryId,
186
+ plane: outcome.plane,
187
+ status: 'failed',
188
+ detail: error instanceof Error ? error.message : String(error),
189
+ };
190
+ }
191
+ }
192
+ log('importing the records the Market did not create');
193
+ imported = await applyImport(false);
194
+ }
195
+ const report = {
196
+ dryRun,
197
+ source: {
198
+ servers: exported.servers.length,
199
+ clis: exported.clis.length,
200
+ credentials: exported.credentials.length,
201
+ installations: exported.installations.length,
202
+ },
203
+ target: {
204
+ servers: targetOverview.servers.total,
205
+ clis: targetOverview.clis.total,
206
+ credentials: targetOverview.credentials,
207
+ },
208
+ reinstalls,
209
+ imported,
210
+ stateTransfers: [],
211
+ verification: { clis: [], mcpOk: null },
212
+ oauthRegistrationsReset: [],
213
+ accessKey: null,
214
+ manual: [],
215
+ };
216
+ if (dryRun) {
217
+ report.manual.push(...manualFollowUps(report, exported.credentials, options));
218
+ return report;
219
+ }
220
+ if (options.withState === true && planes.cli) {
221
+ log('moving hosted CLI login state');
222
+ const sourceClis = z
223
+ .array(z.object({
224
+ slug: z.string(),
225
+ containerVolumes: z
226
+ .array(z.object({ source: z.string(), readOnly: z.boolean().default(false) }).passthrough())
227
+ .default([]),
228
+ })
229
+ .passthrough())
230
+ .parse(await source.request('GET', '/api/v1/clis'));
231
+ for (const cli of sourceClis) {
232
+ for (const volume of cli.containerVolumes) {
233
+ if (volume.readOnly)
234
+ continue;
235
+ try {
236
+ const exported = z
237
+ .object({ archive: z.string(), bytes: z.number() })
238
+ .parse(await source.request('GET', `/api/v1/clis/${encodeURIComponent(cli.slug)}/state?volume=${encodeURIComponent(volume.source)}`, undefined, 120_000));
239
+ const restored = z
240
+ .object({ bytes: z.number() })
241
+ .parse(await target.request('POST', `/api/v1/clis/${encodeURIComponent(cli.slug)}/state?volume=${encodeURIComponent(volume.source)}`, { archive: exported.archive }, 120_000));
242
+ report.stateTransfers.push({
243
+ slug: cli.slug,
244
+ volume: volume.source,
245
+ status: 'moved',
246
+ bytes: restored.bytes,
247
+ });
248
+ }
249
+ catch (error) {
250
+ report.stateTransfers.push({
251
+ slug: cli.slug,
252
+ volume: volume.source,
253
+ status: 'failed',
254
+ detail: error instanceof Error ? error.message : String(error),
255
+ });
256
+ }
257
+ }
258
+ }
259
+ }
260
+ if (options.resetOauthClients === true) {
261
+ log('resetting OAuth client registrations that point at the source origin');
262
+ const targetCredentials = z
263
+ .array(z.object({ id: z.string(), name: z.string(), type: z.string() }).passthrough())
264
+ .parse(await target.request('GET', '/api/v1/credentials'));
265
+ const carried = new Set(exported.credentials.map((credential) => credential.name));
266
+ for (const credential of targetCredentials) {
267
+ if (credential.type !== 'oauth' || !carried.has(credential.name))
268
+ continue;
269
+ try {
270
+ await target.request('POST', `/api/v1/credentials/${credential.id}/reset-oauth-registration`);
271
+ report.oauthRegistrationsReset.push(credential.name);
272
+ }
273
+ catch {
274
+ // A credential the target cannot resolve is reported through the manual list.
275
+ }
276
+ }
277
+ }
278
+ if (planes.cli) {
279
+ log('verifying hosted CLIs on the target');
280
+ const targetClis = z
281
+ .array(z.object({ slug: z.string(), enabled: z.boolean() }).passthrough())
282
+ .parse(await target.request('GET', '/api/v1/clis'));
283
+ for (const cli of targetClis) {
284
+ try {
285
+ const status = statusSchema.parse(await target.request('GET', `/cli/${cli.slug}/status`));
286
+ report.verification.clis.push({ slug: cli.slug, ...status });
287
+ }
288
+ catch (error) {
289
+ report.verification.clis.push({
290
+ slug: cli.slug,
291
+ installed: null,
292
+ version: null,
293
+ loggedIn: false,
294
+ });
295
+ log(` ${cli.slug}: probe failed (${error instanceof Error ? error.message : String(error)})`);
296
+ }
297
+ }
298
+ }
299
+ if (planes.mcp) {
300
+ try {
301
+ const diagnostics = z.object({ ok: z.boolean() }).passthrough().parse(await target.request('GET', '/api/v1/diagnostics'));
302
+ report.verification.mcpOk = diagnostics.ok;
303
+ }
304
+ catch {
305
+ report.verification.mcpOk = null;
306
+ }
307
+ }
308
+ if (options.accessKeyName !== undefined) {
309
+ const issued = z.object({ key: z.string() }).parse(await target.request('POST', '/api/v1/access-keys', { name: options.accessKeyName }));
310
+ report.accessKey = {
311
+ name: options.accessKeyName,
312
+ key: issued.key,
313
+ snippet: JSON.stringify({ mcpServers: { toolhome: { url: '<target>/mcp', headers: { Authorization: `Bearer ${issued.key}` } } } }, null, 2),
314
+ };
315
+ }
316
+ report.manual.push(...manualFollowUps(report, exported.credentials, options));
317
+ return report;
318
+ }
319
+ function parseMarket(value) {
320
+ return new Map(z.array(marketEntrySchema).parse(value).map((entry) => [entry.id, entry]));
321
+ }
322
+ /** Reconstruct the values a Market install needs from the exported credential. */
323
+ export function harvestValues(entry, credentialRef, credentials) {
324
+ const credential = credentials.find((item) => item.ref === credentialRef) ??
325
+ credentials.find((item) => item.name === entry.name);
326
+ const payload = credential?.payload;
327
+ let values = {};
328
+ if (entry.credential.type === 'env') {
329
+ values = { ...(payload?.variables ?? {}) };
330
+ }
331
+ else if (entry.credential.type === 'bearer' && entry.credential.tokenKey !== undefined) {
332
+ if (payload?.token !== undefined)
333
+ values[entry.credential.tokenKey] = payload.token;
334
+ }
335
+ else if (entry.credential.type === 'api-key' && entry.credential.valueKey !== undefined) {
336
+ if (payload?.value !== undefined)
337
+ values[entry.credential.valueKey] = payload.value;
338
+ }
339
+ else if (entry.credential.type === 'headers') {
340
+ for (const header of entry.credential.headers ?? []) {
341
+ if (header.valueKey === undefined)
342
+ continue;
343
+ const stored = payload?.headers?.[header.name];
344
+ if (stored !== undefined)
345
+ values[header.valueKey] = stored;
346
+ }
347
+ }
348
+ const missing = entry.requires
349
+ .filter((requirement) => requirement.required && values[requirement.name] === undefined)
350
+ .map((requirement) => requirement.name);
351
+ return { values, missing };
352
+ }
353
+ async function waitForJob(target, jobId, options) {
354
+ if (jobId === null)
355
+ return;
356
+ const sleep = options.sleep ?? ((ms) => new Promise((done) => setTimeout(done, ms)));
357
+ for (;;) {
358
+ const job = z
359
+ .object({ status: z.string(), step: z.string().default(''), error: z.string().optional() })
360
+ .passthrough()
361
+ .parse(await target.request('GET', `/api/v1/market/install/${jobId}`));
362
+ if (job.status === 'failed')
363
+ throw new Error(job.error ?? `install ${jobId} failed`);
364
+ if (job.status !== 'installing' && job.status !== 'updating')
365
+ return;
366
+ await sleep(options.pollIntervalMs ?? 1_500);
367
+ }
368
+ }
369
+ function manualFollowUps(report, credentials, options) {
370
+ const manual = [];
371
+ if (report.accessKey === null) {
372
+ manual.push('Access keys are stored as digests and cannot be moved: create one on the target with `toolhome access-key create <name>` and re-point every harness.');
373
+ }
374
+ for (const cli of report.verification.clis) {
375
+ if (cli.loggedIn)
376
+ continue;
377
+ const moved = report.stateTransfers.some((transfer) => transfer.slug === cli.slug && transfer.status === 'moved');
378
+ manual.push(moved
379
+ ? `Hosted CLI "${cli.slug}" received its state volume and still reports no login: run \`toolhome cli adopt ${cli.slug}\` while its credential is still available locally.`
380
+ : `Hosted CLI "${cli.slug}" has no login state on the target yet: run \`toolhome cli adopt ${cli.slug}\` while its credential is still available locally.`);
381
+ }
382
+ for (const transfer of report.stateTransfers) {
383
+ if (transfer.status === 'failed') {
384
+ manual.push(`State volume "${transfer.volume}" of "${transfer.slug}" did not move: ${transfer.detail ?? ''}`);
385
+ }
386
+ }
387
+ for (const outcome of report.reinstalls) {
388
+ if (outcome.status === 'needs-secret') {
389
+ manual.push(`Market entry "${outcome.entryId}" needs a value on the target: ${outcome.detail ?? ''}`);
390
+ }
391
+ if (outcome.status === 'failed') {
392
+ manual.push(`Market entry "${outcome.entryId}" failed to reinstall: ${outcome.detail ?? ''}`);
393
+ }
394
+ }
395
+ for (const credential of credentials) {
396
+ if (credential.type === 'oauth' && options.resetOauthClients !== true) {
397
+ manual.push(`OAuth credential "${credential.name}" kept its client registration, which points at the source origin: re-run with --reset-oauth-clients, then \`toolhome credential authorize ${credential.name}\` on the target.`);
398
+ }
399
+ }
400
+ if (report.verification.mcpOk === false) {
401
+ manual.push('The target reports unhealthy MCP servers: run `toolhome doctor` there.');
402
+ }
403
+ return manual;
404
+ }
405
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/cli/migrate.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,23 @@ export declare class CliService {
21
21
  list(): CliRecord[];
22
22
  get(id: string): CliRecord;
23
23
  getBySlug(slug: string): CliRecord;
24
+ /**
25
+ * Read one declared state volume as a tar archive.
26
+ *
27
+ * The state belongs to the product and lives in a Docker named volume on the
28
+ * host, so it can only move as an archive. Anything not backed by a writable
29
+ * Docker volume is refused rather than guessed at.
30
+ */
31
+ exportState(id: string, volume: string): Promise<{
32
+ volume: string;
33
+ bytes: number;
34
+ archive: Buffer;
35
+ }>;
36
+ /** Replace one declared state volume with `archive`. */
37
+ importState(id: string, volume: string, archive: Buffer): Promise<{
38
+ volume: string;
39
+ bytes: number;
40
+ }>;
24
41
  create(value: unknown): CliRecord;
25
42
  update(id: string, value: unknown): CliRecord;
26
43
  delete(id: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-service.d.ts","sourceRoot":"","sources":["../../../src/cli-plane/cli-service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAKL,KAAK,YAAY,EAEjB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AA2BxD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKpD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,UAAU;;IAIrB,YAAY,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,YAAY,EAGhD;IAED,IAAI,IAAI,SAAS,EAAE,CAElB;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAIzB;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAIjC;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAahC;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,CA4B5C;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAUvB;IAED;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CAcnF;IAED,8EAA8E;IACxE,OAAO,CACX,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC,CAuCtB;IAkCD,8EAA8E;IACxE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAqC7C;CAqDF"}
1
+ {"version":3,"file":"cli-service.d.ts","sourceRoot":"","sources":["../../../src/cli-plane/cli-service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAKL,KAAK,YAAY,EAEjB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AA2BxD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKpD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,UAAU;;IAIrB,YAAY,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,YAAY,EAGhD;IAED,IAAI,IAAI,SAAS,EAAE,CAElB;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAIzB;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAIjC;IAED;;;;;;OAMG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAYzG;IAED,wDAAwD;IAClD,WAAW,CACf,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAY5C;IA+BD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAahC;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,CA4B5C;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAUvB;IAED;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CAcnF;IAED,8EAA8E;IACxE,OAAO,CACX,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC,CAuCtB;IAkCD,8EAA8E;IACxE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAqC7C;CAqDF"}
@@ -3,6 +3,7 @@ import { dirname, join } from 'node:path';
3
3
  import { AppError } from '../domain/errors.js';
4
4
  import { materializeCliCredential, validateCliCredentialBindings, } from '../security/credential-materializer.js';
5
5
  import { evaluateAllowList } from './allow-list.js';
6
+ import { exportVolumeArchive, importVolumeArchive } from './state.js';
6
7
  import { assertCliRuntimeConfig, cliExecInputSchema, createCliInputSchema, updateCliInputSchema, } from './models.js';
7
8
  import { execCli } from './runner.js';
8
9
  import { parseProbeOutput } from './status.js';
@@ -61,6 +62,53 @@ export class CliService {
61
62
  throw new AppError('cli_not_found', `CLI "${slug}" not found`, 404);
62
63
  return record;
63
64
  }
65
+ /**
66
+ * Read one declared state volume as a tar archive.
67
+ *
68
+ * The state belongs to the product and lives in a Docker named volume on the
69
+ * host, so it can only move as an archive. Anything not backed by a writable
70
+ * Docker volume is refused rather than guessed at.
71
+ */
72
+ async exportState(id, volume) {
73
+ const record = this.get(id);
74
+ const declared = this.#stateVolume(record, volume);
75
+ const archive = await exportVolumeArchive(declared.source);
76
+ this.#store.appendEvent({
77
+ level: 'info',
78
+ type: 'cli.state_exported',
79
+ serverId: null,
80
+ message: `Exported the state of ${record.slug} (${declared.source})`,
81
+ detail: { plane: 'cli', slug: record.slug, volume: declared.source, bytes: archive.byteLength },
82
+ });
83
+ return { volume: declared.source, bytes: archive.byteLength, archive };
84
+ }
85
+ /** Replace one declared state volume with `archive`. */
86
+ async importState(id, volume, archive) {
87
+ const record = this.get(id);
88
+ const declared = this.#stateVolume(record, volume);
89
+ const restored = await importVolumeArchive(declared.source, archive);
90
+ this.#store.appendEvent({
91
+ level: 'info',
92
+ type: 'cli.state_imported',
93
+ serverId: null,
94
+ message: `Restored the state of ${record.slug} (${declared.source})`,
95
+ detail: { plane: 'cli', slug: record.slug, volume: declared.source, bytes: restored.bytes },
96
+ });
97
+ return { volume: declared.source, bytes: restored.bytes };
98
+ }
99
+ #stateVolume(record, volume) {
100
+ if (record.executionMode !== 'docker') {
101
+ throw new AppError('cli_state_unavailable', `CLI "${record.slug}" runs on the host and keeps no container volume state`, 400);
102
+ }
103
+ const declared = record.containerVolumes.find((item) => item.source === volume);
104
+ if (declared === undefined) {
105
+ throw new AppError('cli_state_volume_unknown', `CLI "${record.slug}" declares no volume "${volume}"`, 400);
106
+ }
107
+ if (declared.readOnly) {
108
+ throw new AppError('cli_state_read_only', `Volume "${volume}" is mounted read-only`, 400);
109
+ }
110
+ return declared;
111
+ }
64
112
  create(value) {
65
113
  const input = createCliInputSchema.parse(value);
66
114
  assertCliRuntimeConfig(input);
@@ -1 +1 @@
1
- {"version":3,"file":"cli-service.js","sourceRoot":"","sources":["../../../src/cli-plane/cli-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-service.js","sourceRoot":"","sources":["../../../src/cli-plane/cli-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { spawn } from 'node:child_process';
2
+ /**
3
+ * Read and write the state of a hosted CLI's container volume.
4
+ *
5
+ * Login state lives in a Docker named volume on the host, not in ToolHome, so it
6
+ * moves as an archive: a helper container mounts the volume and streams a tar.
7
+ * The gateway already needs the host Docker socket for `executionMode: docker`,
8
+ * so this adds no new privilege. Contents are secrets — every entry point that
9
+ * calls this is admin-only and audited.
10
+ */
11
+ /** Ceiling for one volume archive; state is small configuration and token files. */
12
+ export declare const stateArchiveMaxBytes: number;
13
+ export interface StateTransferOptions {
14
+ dockerBinary?: string;
15
+ helperImage?: string;
16
+ maxBytes?: number;
17
+ spawnFn?: typeof spawn;
18
+ }
19
+ export declare class StateTransferError extends Error {
20
+ readonly code: string;
21
+ constructor(code: string, message: string);
22
+ }
23
+ /** Archive one named volume; resolution is capped at `maxBytes`. */
24
+ export declare function exportVolumeArchive(volume: string, options?: StateTransferOptions): Promise<Buffer>;
25
+ /** Replace the contents of one named volume with `archive`. */
26
+ export declare function importVolumeArchive(volume: string, archive: Buffer, options?: StateTransferOptions): Promise<{
27
+ bytes: number;
28
+ }>;
29
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/cli-plane/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;AAEhF;;;;;;;;GAQG;AAEH,oFAAoF;AACpF,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAIxC;CACF;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAED,+DAA+D;AAC/D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA4C5B"}