@trusty-squire/mcp 1.1.18 → 1.1.19-rc.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 (44) hide show
  1. package/dist/bin.js +7 -12
  2. package/dist/bin.js.map +1 -1
  3. package/dist/bot/broker/authority.d.ts +6 -2
  4. package/dist/bot/broker/authority.d.ts.map +1 -1
  5. package/dist/bot/broker/authority.js +25 -5
  6. package/dist/bot/broker/authority.js.map +1 -1
  7. package/dist/bot/broker/discovery.d.ts +15 -0
  8. package/dist/bot/broker/discovery.d.ts.map +1 -1
  9. package/dist/bot/broker/discovery.js +142 -7
  10. package/dist/bot/broker/discovery.js.map +1 -1
  11. package/dist/bot/broker/forwarder.d.ts.map +1 -1
  12. package/dist/bot/broker/forwarder.js +9 -3
  13. package/dist/bot/broker/forwarder.js.map +1 -1
  14. package/dist/bot/broker/mcp-principal.js +2 -2
  15. package/dist/bot/broker/mcp-principal.js.map +1 -1
  16. package/dist/bot/broker/mcp-socket.js +1 -1
  17. package/dist/bot/broker/mcp-socket.js.map +1 -1
  18. package/dist/bot/broker/protocol.d.ts.map +1 -1
  19. package/dist/bot/broker/protocol.js +2 -1
  20. package/dist/bot/broker/protocol.js.map +1 -1
  21. package/dist/bot/broker/transport.d.ts.map +1 -1
  22. package/dist/bot/broker/transport.js +4 -5
  23. package/dist/bot/broker/transport.js.map +1 -1
  24. package/dist/bot/session/lifecycle.d.ts.map +1 -1
  25. package/dist/bot/session/lifecycle.js +3 -30
  26. package/dist/bot/session/lifecycle.js.map +1 -1
  27. package/dist/bot/session/model.d.ts.map +1 -1
  28. package/dist/bot/session/model.js.map +1 -1
  29. package/dist/relay.d.ts.map +1 -1
  30. package/dist/relay.js +26 -3
  31. package/dist/relay.js.map +1 -1
  32. package/dist/server.d.ts +1 -3
  33. package/dist/server.d.ts.map +1 -1
  34. package/dist/server.js +11 -239
  35. package/dist/server.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/bot/broker/agent-identity.d.ts +0 -4
  38. package/dist/bot/broker/agent-identity.d.ts.map +0 -1
  39. package/dist/bot/broker/agent-identity.js +0 -12
  40. package/dist/bot/broker/agent-identity.js.map +0 -1
  41. package/dist/server-instance-registry.d.ts +0 -115
  42. package/dist/server-instance-registry.d.ts.map +0 -1
  43. package/dist/server-instance-registry.js +0 -405
  44. package/dist/server-instance-registry.js.map +0 -1
package/dist/server.js CHANGED
@@ -2,45 +2,24 @@ import { resolveBrokerSocket } from "./bot/broker/discovery.js";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { BrokerRefusal } from "./bot/broker/refusal.js";
4
4
  import { ForwardedResultError, OperatorForwarder } from "./bot/broker/forwarder.js";
5
- // MCP server: reads its account's session from the session file, sets up an ApiClient
6
- // against the configured API base URL, and exposes the registered tools
7
- // over stdio.
8
- //
9
- // `runServer()` is invoked by bin.ts for the `server` subcommand. This
10
- // file is a pure module — no shebang, no entrypoint guard, no top-level
11
- // execution. The host agent launches `mcp server`; bin.ts dispatches.
12
- //
13
- // Single-tier auth (post-Tier-0 collapse): every session is account-
14
- // bound. Sessions that pre-date the single-tier change (only a
15
- // machine_token, no agent_session_token) fail loud at tool-call time
16
- // with a re-install instruction. There is no anonymous mode.
5
+ // MCP tool server used by the broker's shared socket. Agent-facing
6
+ // `mcp server` is a relay onto that socket (`relay.ts`); this module
7
+ // is not a process entrypoint.
17
8
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
18
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
19
9
  import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
20
10
  import { ApiClient } from "./api-client.js";
21
11
  import { awaitOperatorSettlement, composeOperatorSignals, withOperatorRequestContext, } from "./bot/request-cancellation.js";
22
- import { heartbeatIntervalMs, idleCheckIntervalMs, idleTimeoutMs, idleTimeoutWithSessionMs, reapStaleServerInstances, registerServerInstance, serverLauncherLineage, shutdownDeadlineMs, } from "./server-instance-registry.js";
23
12
  import { buildToolRegistry, findTool } from "./tools/index.js";
24
- import { createSessionGuard, setServingAccountId, withServingAccountId, } from "./session-guard.js";
13
+ import { createSessionGuard, withServingAccountId, } from "./session-guard.js";
25
14
  import { VERSION } from "./version.js";
26
15
  const SERVER_NAME = "trusty-squire";
27
- const DEFAULT_REGISTRY_BASE = process.env.ADAPTER_REGISTRY_URL ?? "https://registry.trustysquire.ai";
28
- // Idle self-exit backstop. transport.onclose / stdin EOF / SIGTERM already
29
- // exit the process on a well-behaved disconnect (see requestShutdown below).
30
- // This covers what a live box surfaced instead: a host agent spawns a *new*
31
- // server on reconnect without ever closing the old child's stdio or signaling
32
- // it — the old process just sits sleeping on an open pipe forever. No signal
33
- // from a host like that will ever arrive. A time bound can be enabled by a
34
- // host that accepts closing a quiet stdio connection.
35
- //
36
- // A live host can stay quiet between turns for longer than either historical
37
- // bound. The idle backstop is opt-in; the bounds live in
38
- // server-instance-registry.ts.
39
- // Exported for unit testing; kept pure so the branches (recent activity,
40
- // no-session idle, session-open idle) don't need a live process/interval.
41
- export function shouldIdleExit(now, lastActivityAt, sessionCount, timeoutMs, timeoutWithSessionMs) {
42
- const threshold = sessionCount === 0 ? timeoutMs : timeoutWithSessionMs;
43
- return threshold > 0 && now - lastActivityAt >= threshold;
16
+ const DEFAULT_SHUTDOWN_DEADLINE_MS = 30_000;
17
+ export function shutdownDeadlineMs() {
18
+ const raw = process.env.TRUSTY_SQUIRE_SERVER_SHUTDOWN_DEADLINE_MS;
19
+ if (raw === undefined)
20
+ return DEFAULT_SHUTDOWN_DEADLINE_MS;
21
+ const parsed = Number(raw);
22
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_SHUTDOWN_DEADLINE_MS;
44
23
  }
45
24
  // Injected into the model's system prompt every turn (≤2KB). Teaches
46
25
  // the routing between store / use / request so the agent reaches for
@@ -312,211 +291,4 @@ function errorContent(code, message, guidance) {
312
291
  ],
313
292
  };
314
293
  }
315
- // Process-level backstop for the stdio server. Every tool handler is already
316
- // wrapped in try/catch, but an async error can still escape that boundary —
317
- // e.g. a Playwright event waiter whose rejection fires while another await is
318
- // pending (the uploadFile filechooser race that took the server down mid-run).
319
- // Node's default response to an unhandledRejection/uncaughtException is to
320
- // kill the process, which turns one bad operate_* call into "MCP server
321
- // unreachable" for the host agent. Log the escape and keep serving: the
322
- // in-flight call fails on its own (its awaited promise threw or timed out),
323
- // session/browser state is self-contained and bounded by its watchdog and
324
- // terminal teardown, and no security gate depends on process death — a crash
325
- // leaves any half-done page action in exactly the same state, minus the
326
- // transport. Installed only for `mcp server`; the CLI keeps fail-fast.
327
- export function installServerProcessGuards(onOutputFailure = () => process.exit(0)) {
328
- const describe = (reason) => reason instanceof Error ? (reason.stack ?? reason.message) : String(reason);
329
- const outputFailed = () => {
330
- onOutputFailure();
331
- };
332
- // A dead stdio peer closes the read ends of stdout/stderr. Without explicit
333
- // listeners, Node promotes the resulting EPIPE to uncaughtException; the
334
- // handler below then writes that exception to the same broken stderr and
335
- // enters a tight EPIPE loop. Treat output failure as transport loss instead.
336
- process.stdout.on("error", outputFailed);
337
- process.stderr.on("error", outputFailed);
338
- process.on("unhandledRejection", (reason) => {
339
- process.stderr.write(`[trusty-squire] unhandled rejection (server kept alive): ${describe(reason)}\n`);
340
- });
341
- process.on("uncaughtException", (err) => {
342
- process.stderr.write(`[trusty-squire] uncaught exception (server kept alive): ${describe(err)}\n`);
343
- });
344
- }
345
- // Start the MCP stdio server. Throws on a fatal startup failure; bin.ts
346
- // owns the process-level error handling.
347
- export async function runServer() {
348
- let outputFailed = false;
349
- let shutdownAfterOutputFailure;
350
- installServerProcessGuards(() => {
351
- outputFailed = true;
352
- shutdownAfterOutputFailure?.();
353
- });
354
- // Startup breadcrumb on stderr (which lands in the host agent's MCP
355
- // log). A silent no-op was the worst part of the entrypoint-guard
356
- // bug — this line makes "did the server actually start?" answerable
357
- // at a glance.
358
- process.stderr.write(`[trusty-squire] server v${VERSION} starting\n`);
359
- // Owns this server's answer to "which account am I serving?".
360
- const sessionGuard = createSessionGuard();
361
- const loadPublishedAccountSession = async () => {
362
- try {
363
- const session = await sessionGuard.bind();
364
- setServingAccountId(sessionGuard.boundAccountId());
365
- // Single-tier: every session is account-bound. A session with just a
366
- // machine_token (pre-collapse install) yields api=null, and every
367
- // tool call returns the re-install instruction.
368
- if (session === null || session.agent_session_token === undefined)
369
- return null;
370
- return new ApiClient({
371
- apiBaseUrl: session.api_base_url,
372
- registryBaseUrl: DEFAULT_REGISTRY_BASE,
373
- agentSessionToken: session.agent_session_token,
374
- agentIdentity: process.env.TRUSTY_SQUIRE_AGENT_IDENTITY ?? "unknown",
375
- ...(session.account_id !== undefined ? { accountId: session.account_id } : {}),
376
- });
377
- }
378
- catch {
379
- // A failed session read must remain fail-closed; the next tool call can
380
- // retry after a transient session-storage problem clears.
381
- return null;
382
- }
383
- };
384
- const api = await loadPublishedAccountSession();
385
- const instanceLineage = serverLauncherLineage();
386
- try {
387
- await reapStaleServerInstances({ launcherLineage: instanceLineage });
388
- }
389
- catch (err) {
390
- process.stderr.write(`[trusty-squire] stale server reap failed: ${err instanceof Error ? err.message : String(err)}\n`);
391
- }
392
- const callAdmission = createServerCallAdmission();
393
- const brokerFrontend = Boolean(process.env.TRUSTY_SQUIRE_BROKER_SOCKET?.trim());
394
- const forwarder = new OperatorForwarder(resolveBrokerSocket(), sessionGuard);
395
- const server = await buildServer(api, callAdmission, loadPublishedAccountSession, sessionGuard, forwarder);
396
- const transport = new StdioServerTransport();
397
- // Publishes what a later launch of this identity needs to tell "still
398
- // serving a client" from "wedged": last inbound message, open sessions,
399
- // in-flight calls. Without it every prior instance looks equally idle.
400
- const instance = registerServerInstance({ launcherLineage: instanceLineage });
401
- // A stdio client can disappear without sending a signal (for example when
402
- // its parent agent exits). Chrome keeps Node's event loop alive in that
403
- // case, so close every active provisioning browser and explicitly exit.
404
- // Keep the single promise so EOF, transport closure, a signal, and the
405
- // idle backstop below racing together cannot run teardown twice.
406
- let shutdown;
407
- let idleTimer;
408
- let heartbeatTimer;
409
- let staleInstanceSweepTimer;
410
- let staleInstanceSweepRunning = false;
411
- const sweepStaleInstances = () => {
412
- if (shutdown !== undefined || staleInstanceSweepRunning)
413
- return;
414
- staleInstanceSweepRunning = true;
415
- void reapStaleServerInstances({ launcherLineage: instanceLineage })
416
- .catch((err) => {
417
- process.stderr.write(`[trusty-squire] stale server reap failed: ${err instanceof Error ? err.message : String(err)}\n`);
418
- })
419
- .finally(() => {
420
- staleInstanceSweepRunning = false;
421
- });
422
- };
423
- const requestShutdown = () => {
424
- if (shutdown !== undefined)
425
- return;
426
- const admittedCallsDrained = callAdmission.closeAndDrain();
427
- const deadlineMs = shutdownDeadlineMs();
428
- const shutdownDeadlineAt = Date.now() + deadlineMs;
429
- instance?.markDraining(shutdownDeadlineAt, {
430
- lastActivityAt,
431
- activeSessions: forwarder.sessionCount(),
432
- inFlightCalls: callAdmission.inFlightCount(),
433
- });
434
- shutdown = (async () => {
435
- process.stdin.removeListener("end", requestShutdown);
436
- process.stdin.removeListener("close", requestShutdown);
437
- process.removeListener("SIGHUP", requestShutdown);
438
- process.removeListener("SIGTERM", requestShutdown);
439
- process.removeListener("SIGINT", requestShutdown);
440
- if (idleTimer !== undefined)
441
- clearInterval(idleTimer);
442
- if (heartbeatTimer !== undefined)
443
- clearInterval(heartbeatTimer);
444
- if (staleInstanceSweepTimer !== undefined)
445
- clearInterval(staleInstanceSweepTimer);
446
- try {
447
- const outcome = await runBoundedServerCleanup(admittedCallsDrained, async () => {
448
- await forwarder.close();
449
- await server.close();
450
- }, deadlineMs);
451
- if (outcome === "deadline")
452
- process.stderr.write(`[trusty-squire] server shutdown deadline reached after ${deadlineMs}ms; forcing exit\n`);
453
- }
454
- catch (err) {
455
- // Teardown is best-effort: the host is gone, so leave a breadcrumb but
456
- // never let a failed browser close turn into an orphaned MCP process.
457
- process.stderr.write(`[trusty-squire] server shutdown cleanup failed: ${err instanceof Error ? err.message : String(err)}\n`);
458
- }
459
- // Browser/Chrome child processes can keep the event loop alive briefly
460
- // even after their teardown. This mirrors bin.ts's forced CLI exit and
461
- // makes disconnect a reliable process-lifecycle boundary.
462
- // Keep the draining record discoverable for the entire terminal cleanup.
463
- // The owner reaper remains armed until process.exit; only now is the
464
- // instance record no longer needed by a same-lineage replacement.
465
- instance?.release();
466
- process.exit(0);
467
- })();
468
- };
469
- // Protocol.connect preserves a transport callback installed before it takes
470
- // ownership, so this also covers an explicit transport close.
471
- transport.onclose = requestShutdown;
472
- process.stdin.once("end", requestShutdown);
473
- process.stdin.once("close", requestShutdown);
474
- process.once("SIGHUP", requestShutdown);
475
- process.once("SIGTERM", requestShutdown);
476
- process.once("SIGINT", requestShutdown);
477
- // Protocol.connect chains transport.onmessage the same way it chains
478
- // onclose (see the comment above), so this sees every inbound message —
479
- // requests, notifications, pings — not just tool calls, without having to
480
- // reach into buildServer's request handlers.
481
- let lastActivityAt = Date.now();
482
- transport.onmessage = () => {
483
- lastActivityAt = Date.now();
484
- };
485
- // A broker front end owns no browser. Keep its stdio transport available
486
- // until the host closes it; the broker owns browser lifetime and cleanup.
487
- if (!brokerFrontend) {
488
- idleTimer = setInterval(() => {
489
- if (shutdown !== undefined)
490
- return;
491
- if (forwarder.connected())
492
- return;
493
- const sessionCount = forwarder.sessionCount();
494
- if (!shouldIdleExit(Date.now(), lastActivityAt, sessionCount, idleTimeoutMs(), idleTimeoutWithSessionMs())) {
495
- return;
496
- }
497
- process.stderr.write(`[trusty-squire] server idle with ${sessionCount} open session(s) and no client ` +
498
- `activity past the bound; exiting (this tears down any open session's browser)\n`);
499
- requestShutdown();
500
- }, idleCheckIntervalMs());
501
- idleTimer.unref();
502
- }
503
- if (instance !== null) {
504
- heartbeatTimer = setInterval(() => {
505
- if (shutdown !== undefined)
506
- return;
507
- instance.heartbeat({
508
- lastActivityAt: forwarder.connected() ? Date.now() : lastActivityAt,
509
- activeSessions: forwarder.sessionCount(),
510
- inFlightCalls: callAdmission.inFlightCount(),
511
- });
512
- }, heartbeatIntervalMs());
513
- heartbeatTimer.unref();
514
- }
515
- staleInstanceSweepTimer = setInterval(sweepStaleInstances, heartbeatIntervalMs());
516
- staleInstanceSweepTimer.unref();
517
- shutdownAfterOutputFailure = requestShutdown;
518
- if (outputFailed)
519
- requestShutdown();
520
- await server.connect(transport);
521
- }
522
294
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trusty-squire/mcp",
3
- "version": "1.1.18",
3
+ "version": "1.1.19-rc.2",
4
4
  "license": "MIT",
5
5
  "mcpName": "ai.trustysquire/trusty-squire",
6
6
  "type": "module",
@@ -1,4 +0,0 @@
1
- /** A Beeline room gives every agent a stable private HOME across MCP process
2
- * restarts. Other callers without an explicit identity stay process-scoped. */
3
- export declare function brokerAgentIdentity(env?: NodeJS.ProcessEnv, pid?: number): string;
4
- //# sourceMappingURL=agent-identity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-identity.d.ts","sourceRoot":"","sources":["../../../src/bot/broker/agent-identity.ts"],"names":[],"mappings":"AAAA;+EAC+E;AAC/E,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,SAAc,GAChB,MAAM,CAQR"}
@@ -1,12 +0,0 @@
1
- /** A Beeline room gives every agent a stable private HOME across MCP process
2
- * restarts. Other callers without an explicit identity stay process-scoped. */
3
- export function brokerAgentIdentity(env = process.env, pid = process.pid) {
4
- const configured = env.TRUSTY_SQUIRE_AGENT_IDENTITY?.trim();
5
- if (configured)
6
- return configured;
7
- const room = env.HOME?.match(/(?:^|\/)\.local\/state\/beeline\/agents\/([a-f0-9]+)\/rooms\/([a-f0-9-]+)\/agent-home\/user\/?$/);
8
- if (room)
9
- return `beeline:${room[1]}:${room[2]}`;
10
- return `local-process:${pid}`;
11
- }
12
- //# sourceMappingURL=agent-identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-identity.js","sourceRoot":"","sources":["../../../src/bot/broker/agent-identity.ts"],"names":[],"mappings":"AAAA;+EAC+E;AAC/E,MAAM,UAAU,mBAAmB,CACjC,MAAyB,OAAO,CAAC,GAAG,EACpC,GAAG,GAAG,OAAO,CAAC,GAAG;IAEjB,MAAM,UAAU,GAAG,GAAG,CAAC,4BAA4B,EAAE,IAAI,EAAE,CAAC;IAC5D,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,CAC1B,iGAAiG,CAClG,CAAC;IACF,IAAI,IAAI;QAAE,OAAO,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,OAAO,iBAAiB,GAAG,EAAE,CAAC;AAChC,CAAC"}
@@ -1,115 +0,0 @@
1
- import { type ProcessIdentityState } from "./bot/profile.js";
2
- export declare function idleTimeoutMs(): number;
3
- export declare function idleTimeoutWithSessionMs(): number;
4
- export declare function idleCheckIntervalMs(): number;
5
- export declare function heartbeatIntervalMs(): number;
6
- export declare function shutdownDeadlineMs(): number;
7
- export interface ServerBirthIdentity {
8
- pid: number;
9
- start_time: string;
10
- }
11
- /** The activity a live instance publishes so a later launch can judge it. */
12
- export interface ServerInstanceActivity {
13
- lastActivityAt: number;
14
- activeSessions: number;
15
- inFlightCalls: number;
16
- }
17
- export interface ServerInstanceRecord extends ServerBirthIdentity {
18
- version: 1;
19
- agent_identity: string;
20
- /** Hash of a stable per-launcher/lane secret. Never a human-readable label. */
21
- launcher_lineage?: string;
22
- state?: "serving" | "draining";
23
- shutdown_deadline_at?: number;
24
- /** PPid at registration, so a host that IS init isn't read as an orphan. */
25
- parent_pid: number;
26
- started_at: number;
27
- /** Last heartbeat write — proves the instance's event loop still runs. */
28
- heartbeat_at: number;
29
- /** Last inbound client message — proves a client is still talking to it. */
30
- last_activity_at: number;
31
- active_sessions: number;
32
- in_flight_calls: number;
33
- server_version: string;
34
- }
35
- export interface ServerReapBounds {
36
- graceMs: number;
37
- }
38
- export declare function serverReapBounds(): ServerReapBounds;
39
- export declare function serverLauncherLineage(options?: {
40
- accountId?: string;
41
- identity?: string;
42
- env?: NodeJS.ProcessEnv;
43
- profileDir?: string;
44
- }): string;
45
- export declare function readServerInstanceRecord(path: string): ServerInstanceRecord | null;
46
- export type ParentPidRead = number | "stale" | "unknown";
47
- /**
48
- * Descendants by PPid chain — never by process group. A stdio server shares
49
- * its parent's process group, so `kill(-pgid)` would take the host agent
50
- * down with it.
51
- */
52
- export declare function processDescendantIdentities(pid: number, readers?: {
53
- readProcessIds?: () => number[];
54
- readParentPid?: (pid: number) => ParentPidRead;
55
- readBirthIdentity?: (pid: number) => ServerBirthIdentity | null;
56
- }): ServerBirthIdentity[];
57
- export type ServerInstanceReapDecision = "keep" | "reap" | "forget";
58
- /**
59
- * The whole safety contract, as one pure function. `forget` means the record
60
- * names no live process — delete the file, signal nothing.
61
- */
62
- export declare function serverInstanceReapDecision(record: ServerInstanceRecord, self: {
63
- agent_identity: string;
64
- launcher_lineage?: string;
65
- pid: number;
66
- start_time: string;
67
- }, liveness: ProcessIdentityState, parentPid: ParentPidRead, now: number, _bounds: ServerReapBounds): ServerInstanceReapDecision;
68
- export interface ServerInstanceHandle {
69
- readonly path: string;
70
- heartbeat(activity: ServerInstanceActivity): void;
71
- markDraining(deadlineAt: number, activity: ServerInstanceActivity): void;
72
- release(): void;
73
- }
74
- /**
75
- * Publish this instance's heartbeat so a later launch of the same identity can
76
- * tell "still serving a client" from "wedged". Returns null when there is
77
- * nothing to publish (non-Linux, no agent identity, unreadable birth identity).
78
- */
79
- export declare function registerServerInstance(options?: {
80
- rootDir?: string;
81
- identity?: string;
82
- accountId?: string;
83
- launcherLineage?: string;
84
- now?: () => number;
85
- }): ServerInstanceHandle | null;
86
- export interface ServerInstanceReapSummary {
87
- reaped: number;
88
- forgotten: number;
89
- kept: number;
90
- signalled: number[];
91
- }
92
- export interface ServerInstanceReapRuntime {
93
- rootDir?: string;
94
- self?: {
95
- agent_identity: string;
96
- launcher_lineage?: string;
97
- pid: number;
98
- start_time: string;
99
- };
100
- launcherLineage?: string;
101
- bounds?: ServerReapBounds;
102
- now?: () => number;
103
- readBirthState?: (identity: ServerBirthIdentity) => ProcessIdentityState;
104
- readParentPid?: (pid: number) => ParentPidRead;
105
- readDescendants?: (pid: number) => ServerBirthIdentity[];
106
- kill?: (pid: number, signal: NodeJS.Signals) => void;
107
- wait?: (ms: number) => Promise<void>;
108
- sweep?: () => Promise<number>;
109
- }
110
- /**
111
- * Reap stale prior instances of OUR agent identity. Never throws: a startup
112
- * housekeeping pass must not be able to stop the server from serving.
113
- */
114
- export declare function reapStaleServerInstances(runtime?: ServerInstanceReapRuntime): Promise<ServerInstanceReapSummary>;
115
- //# sourceMappingURL=server-instance-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-instance-registry.d.ts","sourceRoot":"","sources":["../src/server-instance-registry.ts"],"names":[],"mappings":"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"}