hoolix 0.0.1-beta.20 → 0.0.2

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 (60) hide show
  1. package/README.md +24 -6
  2. package/bin/postinstall.js +1 -1
  3. package/dist/catalog/templates.d.ts.map +1 -1
  4. package/dist/catalog/templates.js +21 -1
  5. package/dist/catalog/templates.js.map +1 -1
  6. package/dist/commands/completion.d.ts.map +1 -1
  7. package/dist/commands/completion.js +47 -1
  8. package/dist/commands/completion.js.map +1 -1
  9. package/dist/commands/connect.d.ts.map +1 -1
  10. package/dist/commands/connect.js +22 -1
  11. package/dist/commands/connect.js.map +1 -1
  12. package/dist/commands/create.js +6 -2
  13. package/dist/commands/create.js.map +1 -1
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +23 -1
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/gateway.d.ts +2 -0
  18. package/dist/commands/gateway.d.ts.map +1 -0
  19. package/dist/commands/gateway.js +230 -0
  20. package/dist/commands/gateway.js.map +1 -0
  21. package/dist/commands/list.d.ts.map +1 -1
  22. package/dist/commands/list.js +22 -3
  23. package/dist/commands/list.js.map +1 -1
  24. package/dist/commands/templates.d.ts.map +1 -1
  25. package/dist/commands/templates.js +10 -0
  26. package/dist/commands/templates.js.map +1 -1
  27. package/dist/commands/verify.js +87 -6
  28. package/dist/commands/verify.js.map +1 -1
  29. package/dist/core/gateways.d.ts +62 -0
  30. package/dist/core/gateways.d.ts.map +1 -0
  31. package/dist/core/gateways.js +115 -0
  32. package/dist/core/gateways.js.map +1 -0
  33. package/dist/core/paths.d.ts +5 -0
  34. package/dist/core/paths.d.ts.map +1 -1
  35. package/dist/core/paths.js +15 -0
  36. package/dist/core/paths.js.map +1 -1
  37. package/dist/core/version.d.ts +1 -1
  38. package/dist/core/version.d.ts.map +1 -1
  39. package/dist/core/version.js +1 -1
  40. package/dist/core/version.js.map +1 -1
  41. package/dist/index.js +26 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/mcp/gateway-host.d.ts +8 -0
  44. package/dist/mcp/gateway-host.d.ts.map +1 -0
  45. package/dist/mcp/gateway-host.js +380 -0
  46. package/dist/mcp/gateway-host.js.map +1 -0
  47. package/dist/mcp/proxy-host.d.ts.map +1 -1
  48. package/dist/mcp/proxy-host.js +3 -2
  49. package/dist/mcp/proxy-host.js.map +1 -1
  50. package/dist/process/manager.d.ts +17 -1
  51. package/dist/process/manager.d.ts.map +1 -1
  52. package/dist/process/manager.js +105 -1
  53. package/dist/process/manager.js.map +1 -1
  54. package/dist/tui/index.d.ts.map +1 -1
  55. package/dist/tui/index.js +190 -32
  56. package/dist/tui/index.js.map +1 -1
  57. package/dist/ui/help.d.ts.map +1 -1
  58. package/dist/ui/help.js +6 -1
  59. package/dist/ui/help.js.map +1 -1
  60. package/package.json +1 -1
@@ -0,0 +1,380 @@
1
+ import { Hono } from 'hono';
2
+ import { serve } from '@hono/node-server';
3
+ import { spawn } from 'node:child_process';
4
+ import readline from 'node:readline';
5
+ import fs from 'fs-extra';
6
+ import path from 'node:path';
7
+ import { logger } from '../core/logger.js';
8
+ import { getGateway } from '../core/gateways.js';
9
+ import { getGatewayDataDir, getGatewayRuntimePath, getServerDir } from '../core/paths.js';
10
+ import { getServerMetadata } from '../core/registry.js';
11
+ import { getTemplate } from '../app/services/catalog.js';
12
+ import { loadCredentials, interpolateRunConfig } from '../app/services/credentials.js';
13
+ const REQUEST_TIMEOUT_MS = 30_000;
14
+ const HEALTH_PING_INTERVAL_MS = 30_000;
15
+ class GatewayChild {
16
+ slug;
17
+ namespace;
18
+ command;
19
+ args;
20
+ env;
21
+ child = null;
22
+ rl = null;
23
+ pending = new Map();
24
+ nextId = 1;
25
+ initialized = false;
26
+ constructor(slug, namespace, command, args, env) {
27
+ this.slug = slug;
28
+ this.namespace = namespace;
29
+ this.command = command;
30
+ this.args = args;
31
+ this.env = env;
32
+ }
33
+ async start() {
34
+ const isWindowsNpx = process.platform === 'win32' && this.command === 'npx';
35
+ const cmd = isWindowsNpx ? 'npx.cmd' : this.command;
36
+ this.child = spawn(cmd, this.args, {
37
+ stdio: ['pipe', 'pipe', 'pipe'],
38
+ env: { ...process.env, ...this.env },
39
+ shell: isWindowsNpx,
40
+ });
41
+ this.child.stderr?.on('data', (data) => {
42
+ process.stderr.write(`[${this.slug}] ${data}`);
43
+ });
44
+ this.rl = readline.createInterface({ input: this.child.stdout });
45
+ this.rl.on('line', (line) => {
46
+ const trimmed = line.trim();
47
+ if (!trimmed)
48
+ return;
49
+ try {
50
+ const msg = JSON.parse(trimmed);
51
+ if (msg.id !== undefined && msg.id !== null) {
52
+ const resolve = this.pending.get(msg.id);
53
+ if (resolve) {
54
+ this.pending.delete(msg.id);
55
+ resolve(msg);
56
+ }
57
+ }
58
+ }
59
+ catch { }
60
+ });
61
+ this.child.on('exit', (code, signal) => {
62
+ logger.error(`Gateway child "${this.slug}" exited (code=${code ?? 'null'}, signal=${signal ?? 'null'})`);
63
+ const err = { jsonrpc: '2.0', id: null, error: { code: -32000, message: `Child "${this.slug}" exited` } };
64
+ for (const [, resolve] of this.pending)
65
+ resolve(err);
66
+ this.pending.clear();
67
+ });
68
+ await new Promise((resolve) => setTimeout(resolve, 500));
69
+ if (!this.isAlive)
70
+ throw new Error(`Backing server "${this.slug}" exited immediately.`);
71
+ }
72
+ get isAlive() {
73
+ return this.child != null && !this.child.killed && this.child.exitCode === null;
74
+ }
75
+ get pid() {
76
+ return this.child?.pid;
77
+ }
78
+ async request(method, params = {}) {
79
+ const id = `${this.namespace}-${this.nextId++}`;
80
+ return this.send({ jsonrpc: '2.0', id, method, params });
81
+ }
82
+ async notify(method, params = {}) {
83
+ await this.send({ jsonrpc: '2.0', method, params });
84
+ }
85
+ async initialize(params) {
86
+ if (this.initialized)
87
+ return;
88
+ const response = await this.request('initialize', params);
89
+ if (response.error)
90
+ throw new Error(response.error.message);
91
+ await this.notify('notifications/initialized', {});
92
+ this.initialized = true;
93
+ }
94
+ async send(message) {
95
+ if (!this.isAlive)
96
+ throw new Error(`Backing server "${this.slug}" is not running`);
97
+ const hasId = message.id !== undefined && message.id !== null;
98
+ return new Promise((resolve, reject) => {
99
+ const line = JSON.stringify(message) + '\n';
100
+ let timer = null;
101
+ if (hasId) {
102
+ timer = setTimeout(() => {
103
+ this.pending.delete(message.id);
104
+ reject(new Error(`Request to "${this.slug}" timed out after ${REQUEST_TIMEOUT_MS}ms`));
105
+ }, REQUEST_TIMEOUT_MS);
106
+ this.pending.set(message.id, (response) => {
107
+ if (timer)
108
+ clearTimeout(timer);
109
+ resolve(response);
110
+ });
111
+ }
112
+ this.child.stdin.write(line, (err) => {
113
+ if (err) {
114
+ if (hasId)
115
+ this.pending.delete(message.id);
116
+ reject(new Error(`Failed writing to "${this.slug}": ${err.message}`));
117
+ }
118
+ else if (!hasId) {
119
+ resolve(null);
120
+ }
121
+ });
122
+ });
123
+ }
124
+ kill() {
125
+ try {
126
+ this.rl?.close();
127
+ if (this.child && !this.child.killed)
128
+ this.child.kill('SIGTERM');
129
+ }
130
+ catch { }
131
+ }
132
+ }
133
+ function jsonRpcToSSE(response) {
134
+ const encoder = new TextEncoder();
135
+ const body = new ReadableStream({
136
+ start(controller) {
137
+ controller.enqueue(encoder.encode(`data: ${JSON.stringify(response)}\n\n`));
138
+ controller.close();
139
+ },
140
+ });
141
+ return new Response(body, {
142
+ headers: {
143
+ 'Content-Type': 'text/event-stream',
144
+ 'Cache-Control': 'no-cache',
145
+ 'Connection': 'keep-alive',
146
+ 'X-Accel-Buffering': 'no',
147
+ },
148
+ });
149
+ }
150
+ function ok(id, result) {
151
+ return { jsonrpc: '2.0', id, result };
152
+ }
153
+ function fail(id, code, message, data) {
154
+ return { jsonrpc: '2.0', id, error: { code, message, ...(data === undefined ? {} : { data }) } };
155
+ }
156
+ async function buildChild(config, backend) {
157
+ const meta = await getServerMetadata(backend.slug);
158
+ const templateId = meta.definition?.template?.id;
159
+ if (!templateId)
160
+ throw new Error(`Backing server "${backend.slug}" has no template ID.`);
161
+ const template = await getTemplate(templateId);
162
+ if (!template.server)
163
+ throw new Error(`Template "${templateId}" has no server run config.`);
164
+ const credentials = await loadCredentials(backend.slug);
165
+ const templateInputs = meta.definition?.template?.inputs ?? {};
166
+ const runConfig = interpolateRunConfig(template.server, { ...templateInputs, ...credentials });
167
+ const hostLogPath = path.join(getServerDir(backend.slug), 'host.log');
168
+ await fs.ensureFile(hostLogPath);
169
+ await fs.appendFile(hostLogPath, `\n--- ${new Date().toISOString()} gateway ${config.slug} attached as ${backend.namespace} ---\n`);
170
+ return new GatewayChild(backend.slug, backend.namespace, runConfig.command, runConfig.args, runConfig.env ?? {});
171
+ }
172
+ export async function startGatewayHost(opts) {
173
+ const { slug, port, authKey, bindHost = '127.0.0.1' } = opts;
174
+ const config = await getGateway(slug);
175
+ const children = [];
176
+ const toolOwners = new Map();
177
+ let initializeParams = null;
178
+ logger.info(`Starting gateway "${slug}" on ${bindHost}:${port}`);
179
+ for (const backend of config.backends) {
180
+ const child = await buildChild(config, backend);
181
+ await child.start();
182
+ children.push(child);
183
+ logger.info(`Gateway child ready: ${backend.namespace} -> ${backend.slug} (pid=${child.pid ?? 'unknown'})`);
184
+ }
185
+ const RATE_LIMIT = Math.max(1, parseInt(process.env.MCP_RATE_LIMIT || '120', 10));
186
+ const RATE_WINDOW_MS = Math.max(1000, parseInt(process.env.MCP_RATE_WINDOW_SEC || '60', 10) * 1000);
187
+ const dataDir = getGatewayDataDir(slug);
188
+ await fs.ensureDir(dataDir);
189
+ const rateStatePath = path.join(dataDir, 'rate-state.json');
190
+ let reqCount = 0;
191
+ let windowStart = Date.now();
192
+ try {
193
+ const state = await fs.readJson(rateStatePath);
194
+ if (typeof state.windowStart === 'number' && typeof state.reqCount === 'number') {
195
+ reqCount = state.reqCount;
196
+ windowStart = state.windowStart;
197
+ }
198
+ }
199
+ catch { }
200
+ async function saveRateState() {
201
+ await fs.writeJson(rateStatePath, { windowStart, reqCount, limit: RATE_LIMIT, windowMs: RATE_WINDOW_MS }).catch(() => { });
202
+ }
203
+ async function checkRateLimit() {
204
+ const now = Date.now();
205
+ if (now - windowStart > RATE_WINDOW_MS) {
206
+ reqCount = 0;
207
+ windowStart = now;
208
+ }
209
+ reqCount += 1;
210
+ await saveRateState();
211
+ return reqCount <= RATE_LIMIT;
212
+ }
213
+ const auditPath = path.join(dataDir, 'audit.log');
214
+ async function audit(tool, details) {
215
+ const line = JSON.stringify({ ts: new Date().toISOString(), tool, transport: 'gateway', gateway: slug, ...details }) + '\n';
216
+ await fs.appendFile(auditPath, line).catch(() => { });
217
+ }
218
+ async function ensureChildrenInitialized() {
219
+ if (!initializeParams)
220
+ return;
221
+ await Promise.all(children.map((child) => child.initialize(initializeParams)));
222
+ }
223
+ async function listTools(id) {
224
+ await ensureChildrenInitialized();
225
+ const tools = [];
226
+ toolOwners.clear();
227
+ for (const child of children) {
228
+ const response = await child.request('tools/list', {});
229
+ if (response.error) {
230
+ await audit('gateway_tools_list_error', { backend: child.slug, reason: response.error.message });
231
+ continue;
232
+ }
233
+ const childTools = (response.result?.tools ?? []);
234
+ for (const tool of childTools) {
235
+ const originalName = String(tool.name ?? '');
236
+ if (!originalName)
237
+ continue;
238
+ const namespacedName = `${child.namespace}.${originalName}`;
239
+ toolOwners.set(namespacedName, { child, originalName });
240
+ tools.push({ ...tool, name: namespacedName, description: `[${child.slug}] ${String(tool.description ?? '')}`.trim() });
241
+ }
242
+ }
243
+ await audit('gateway_tools_list', { tools: tools.length, backends: children.length });
244
+ return ok(id, { tools });
245
+ }
246
+ async function callTool(req) {
247
+ await ensureChildrenInitialized();
248
+ const params = (req.params ?? {});
249
+ const namespacedName = String(params.name ?? '');
250
+ if (!toolOwners.has(namespacedName)) {
251
+ await listTools(req.id ?? null);
252
+ }
253
+ const owner = toolOwners.get(namespacedName);
254
+ if (!owner)
255
+ return fail(req.id ?? null, -32602, `Unknown gateway tool "${namespacedName}". Next: call tools/list.`);
256
+ await audit('gateway_tool_call', { toolName: namespacedName, backend: owner.child.slug });
257
+ const response = await owner.child.request('tools/call', {
258
+ name: owner.originalName,
259
+ arguments: params.arguments ?? {},
260
+ });
261
+ return { ...response, id: req.id ?? null };
262
+ }
263
+ async function handle(req) {
264
+ const id = req.id ?? null;
265
+ switch (req.method) {
266
+ case 'initialize':
267
+ initializeParams = (req.params ?? {});
268
+ return ok(id, {
269
+ protocolVersion: String(initializeParams.protocolVersion ?? '2024-11-05'),
270
+ capabilities: { tools: {} },
271
+ serverInfo: { name: `hoolix-gateway-${slug}`, version: '0.1.0' },
272
+ });
273
+ case 'notifications/initialized':
274
+ await ensureChildrenInitialized();
275
+ return null;
276
+ case 'ping':
277
+ return ok(id, {});
278
+ case 'tools/list':
279
+ return listTools(id);
280
+ case 'tools/call':
281
+ return callTool(req);
282
+ default:
283
+ return fail(id, -32601, `Gateway does not implement "${req.method ?? 'unknown'}".`);
284
+ }
285
+ }
286
+ const healthTimer = setInterval(() => {
287
+ for (const child of children) {
288
+ if (child.isAlive)
289
+ child.request('ping', {}).catch(() => { });
290
+ }
291
+ }, HEALTH_PING_INTERVAL_MS);
292
+ if (healthTimer.unref)
293
+ healthTimer.unref();
294
+ const app = new Hono();
295
+ app.get('/health', (c) => c.json({
296
+ status: children.every((child) => child.isAlive) ? 'ok' : 'degraded',
297
+ gateway: slug,
298
+ mode: 'gateway',
299
+ backends: children.map((child) => ({ slug: child.slug, namespace: child.namespace, running: child.isAlive, pid: child.pid })),
300
+ }));
301
+ app.use('/mcp', async (c, next) => {
302
+ const authHeader = c.req.header('Authorization');
303
+ const headerKey = authHeader?.match(/^Bearer\s+/i)
304
+ ? authHeader.replace(/^Bearer\s+/i, '')
305
+ : c.req.header('X-MCP-Key');
306
+ if (!headerKey || headerKey !== authKey) {
307
+ return c.json({ error: 'Unauthorized. Provide valid Authorization: Bearer <key> or X-MCP-Key header.' }, 401);
308
+ }
309
+ if (!(await checkRateLimit())) {
310
+ await audit('rate_limited', { limit: RATE_LIMIT, windowSec: Math.floor(RATE_WINDOW_MS / 1000) });
311
+ c.header('Retry-After', String(Math.ceil(RATE_WINDOW_MS / 1000)));
312
+ return c.json({ error: 'Rate limit exceeded. Try again later.' }, 429);
313
+ }
314
+ await next();
315
+ return;
316
+ });
317
+ app.all('/mcp', async (c) => {
318
+ let body;
319
+ try {
320
+ body = await c.req.json();
321
+ }
322
+ catch {
323
+ return c.json(fail(null, -32700, 'Parse error — invalid JSON body'), 400);
324
+ }
325
+ const preferSSE = (c.req.header('Accept') ?? '').includes('text/event-stream');
326
+ try {
327
+ if (Array.isArray(body)) {
328
+ const responses = (await Promise.all(body.map((item) => handle(item)))).filter(Boolean);
329
+ return preferSSE ? jsonRpcToSSE(responses) : c.json(responses);
330
+ }
331
+ const response = await handle(body);
332
+ if (response === null)
333
+ return new Response(null, { status: 204 });
334
+ return preferSSE ? jsonRpcToSSE(response) : c.json(response);
335
+ }
336
+ catch (e) {
337
+ const message = e instanceof Error ? e.message : String(e);
338
+ await audit('gateway_error', { reason: message });
339
+ const response = fail(body?.id ?? null, -32603, message);
340
+ return preferSSE ? jsonRpcToSSE(response) : c.json(response, 500);
341
+ }
342
+ });
343
+ const runtimePath = getGatewayRuntimePath(slug);
344
+ await fs.writeJson(runtimePath, {
345
+ pid: process.pid,
346
+ port,
347
+ startedAt: new Date().toISOString(),
348
+ status: 'running',
349
+ mode: 'gateway',
350
+ backends: children.map((child) => ({ slug: child.slug, namespace: child.namespace, pid: child.pid })),
351
+ }, { spaces: 2 });
352
+ const shutdown = async () => {
353
+ clearInterval(healthTimer);
354
+ for (const child of children)
355
+ child.kill();
356
+ await fs.remove(runtimePath).catch(() => { });
357
+ process.exit(0);
358
+ };
359
+ process.on('SIGTERM', shutdown);
360
+ process.on('SIGINT', shutdown);
361
+ logger.info(`Gateway ready at http://${bindHost}:${port}/mcp`);
362
+ serve({ fetch: app.fetch, port, hostname: bindHost });
363
+ }
364
+ function readCliArg(name) {
365
+ const idx = process.argv.indexOf(`--${name}`);
366
+ return idx !== -1 ? process.argv[idx + 1] : undefined;
367
+ }
368
+ if (process.argv.includes('--slug') && process.argv.includes('--port') && process.argv.includes('--auth-key')) {
369
+ const slug = readCliArg('slug');
370
+ const port = readCliArg('port');
371
+ const authKey = readCliArg('auth-key');
372
+ if (slug && port && authKey) {
373
+ startGatewayHost({ slug, port: parseInt(port, 10), authKey }).catch((err) => {
374
+ const message = err instanceof Error ? err.stack || err.message : String(err);
375
+ process.stderr.write(`Gateway host failed: ${message}\n`);
376
+ process.exit(1);
377
+ });
378
+ }
379
+ }
380
+ //# sourceMappingURL=gateway-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-host.js","sourceRoot":"","sources":["../../src/mcp/gateway-host.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-host.d.ts","sourceRoot":"","sources":["../../src/mcp/proxy-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6MD,wBAAsB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwL1E"}
1
+ {"version":3,"file":"proxy-host.d.ts","sourceRoot":"","sources":["../../src/mcp/proxy-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA8MD,wBAAsB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwL1E"}
@@ -74,11 +74,12 @@ class StdioJsonRpcProxy {
74
74
  }
75
75
  async _spawnChild() {
76
76
  // On Windows, bare 'npx' needs shell resolution
77
- const cmd = process.platform === 'win32' && this.command === 'npx' ? 'npx.cmd' : this.command;
77
+ const isWindowsNpx = process.platform === 'win32' && this.command === 'npx';
78
+ const cmd = isWindowsNpx ? 'npx.cmd' : this.command;
78
79
  this.child = spawn(cmd, this.args, {
79
80
  stdio: ['pipe', 'pipe', 'pipe'],
80
81
  env: { ...process.env, ...this.env },
81
- shell: false,
82
+ shell: isWindowsNpx,
82
83
  });
83
84
  // Pipe child stderr to the proxy-host's stderr (→ host.log via manager redirection)
84
85
  this.child.stderr?.on('data', (data) => {
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-host.js","sourceRoot":"","sources":["../../src/mcp/proxy-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy-host.js","sourceRoot":"","sources":["../../src/mcp/proxy-host.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export interface ServerStatus {
8
8
  pid?: number;
9
9
  port?: number;
10
10
  startedAt?: string;
11
- mode?: 'http' | 'proxy';
11
+ mode?: 'http' | 'proxy' | 'gateway';
12
12
  }
13
13
  export interface HostSpawnPlanInput {
14
14
  slug: string;
@@ -40,6 +40,15 @@ export declare function buildProxySpawnPlan(input: {
40
40
  cwd?: string;
41
41
  tsxExists?: boolean;
42
42
  }): ProxySpawnPlan;
43
+ export declare function buildGatewaySpawnPlan(input: {
44
+ slug: string;
45
+ port: number;
46
+ authKey: string;
47
+ execPath?: string;
48
+ platform?: NodeJS.Platform;
49
+ cwd?: string;
50
+ tsxExists?: boolean;
51
+ }): ProxySpawnPlan;
43
52
  export declare class ServerManager {
44
53
  /**
45
54
  * Start a server by spawning the MCP host (binary or dev tsx path).
@@ -60,7 +69,14 @@ export declare class ServerManager {
60
69
  pid: number;
61
70
  }>;
62
71
  stop(slug: string, force?: boolean): Promise<boolean>;
72
+ startGateway(slug: string, opts?: StartOptions): Promise<{
73
+ port: number;
74
+ authKey: string;
75
+ pid: number;
76
+ }>;
77
+ stopGateway(slug: string, force?: boolean): Promise<boolean>;
63
78
  getStatus(slug: string): Promise<ServerStatus>;
79
+ getGatewayStatus(slug: string): Promise<ServerStatus>;
64
80
  private getMetadata;
65
81
  private readLogTail;
66
82
  /** Wait for HTTP /health to respond (authoritative liveness after spawn). */
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/process/manager.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,iBAAiB,CAAC;CACpD;AAID,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAgE3E;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,iBAAiB,CAAC;CACpD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,cAAc,CA4BjB;AAED,qBAAa,aAAa;IACxB;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAuE3G;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAmD5G,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBnD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YA2BtC,WAAW;YAKX,WAAW;IASzB,6EAA6E;YAE/D,iBAAiB;YAkBjB,cAAc;IAc5B,mFAAmF;YACrE,UAAU;YAcV,YAAY;CAW3B;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/process/manager.ts"],"names":[],"mappings":"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"}