agent-embassy 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/CONTRIBUTING.md +92 -200
  3. package/README.md +159 -138
  4. package/SECURITY.md +191 -335
  5. package/dist/src/gateway/broker-check.d.ts +26 -0
  6. package/dist/src/gateway/broker-check.js +89 -0
  7. package/dist/src/gateway/broker-check.js.map +1 -0
  8. package/dist/src/gateway/broker-control.d.ts +72 -0
  9. package/dist/src/gateway/broker-control.js +164 -0
  10. package/dist/src/gateway/broker-control.js.map +1 -0
  11. package/dist/src/gateway/broker.d.ts +117 -0
  12. package/dist/src/gateway/broker.js +186 -0
  13. package/dist/src/gateway/broker.js.map +1 -0
  14. package/dist/src/gateway/claude-peer.d.ts +1 -124
  15. package/dist/src/gateway/claude-peer.js +62 -1053
  16. package/dist/src/gateway/claude-peer.js.map +1 -1
  17. package/dist/src/gateway/codex-stateless-transport.d.ts +0 -12
  18. package/dist/src/gateway/codex-stateless-transport.js +8 -142
  19. package/dist/src/gateway/codex-stateless-transport.js.map +1 -1
  20. package/dist/src/gateway/config.d.ts +2 -6
  21. package/dist/src/gateway/config.js +17 -27
  22. package/dist/src/gateway/config.js.map +1 -1
  23. package/dist/src/gateway/coordinator.d.ts +57 -0
  24. package/dist/src/gateway/coordinator.js +217 -0
  25. package/dist/src/gateway/coordinator.js.map +1 -0
  26. package/dist/src/gateway/core-cli.d.ts +15 -0
  27. package/dist/src/gateway/core-cli.js +282 -0
  28. package/dist/src/gateway/core-cli.js.map +1 -0
  29. package/dist/src/gateway/core-service-command.d.ts +16 -0
  30. package/dist/src/gateway/core-service-command.js +71 -0
  31. package/dist/src/gateway/core-service-command.js.map +1 -0
  32. package/dist/src/gateway/endpoint-directory.d.ts +33 -0
  33. package/dist/src/gateway/endpoint-directory.js +223 -0
  34. package/dist/src/gateway/endpoint-directory.js.map +1 -0
  35. package/dist/src/gateway/federation.d.ts +89 -0
  36. package/dist/src/gateway/federation.js +632 -0
  37. package/dist/src/gateway/federation.js.map +1 -0
  38. package/dist/src/gateway/ledger-codec.d.ts +3 -0
  39. package/dist/src/gateway/ledger-codec.js +159 -0
  40. package/dist/src/gateway/ledger-codec.js.map +1 -0
  41. package/dist/src/gateway/ledger.d.ts +138 -0
  42. package/dist/src/gateway/ledger.js +319 -0
  43. package/dist/src/gateway/ledger.js.map +1 -0
  44. package/dist/src/gateway/local-control.d.ts +23 -0
  45. package/dist/src/gateway/local-control.js +489 -0
  46. package/dist/src/gateway/local-control.js.map +1 -0
  47. package/dist/src/gateway/native-destinations.d.ts +34 -0
  48. package/dist/src/gateway/native-destinations.js +272 -0
  49. package/dist/src/gateway/native-destinations.js.map +1 -0
  50. package/dist/src/gateway/owned-state.d.ts +57 -0
  51. package/dist/src/gateway/owned-state.js +398 -0
  52. package/dist/src/gateway/owned-state.js.map +1 -0
  53. package/dist/src/gateway/provenance-envelope.d.ts +3 -3
  54. package/dist/src/gateway/provenance-envelope.js +3 -23
  55. package/dist/src/gateway/provenance-envelope.js.map +1 -1
  56. package/dist/src/gateway/runtime.d.ts +41 -0
  57. package/dist/src/gateway/runtime.js +175 -0
  58. package/dist/src/gateway/runtime.js.map +1 -0
  59. package/docs/CONFIGURATION.md +178 -266
  60. package/docs/DELIVERY.md +133 -82
  61. package/docs/GATEWAY-ARCHITECTURE.md +276 -943
  62. package/package.json +5 -5
  63. package/skills/embassy-peer/SKILL.md +38 -194
  64. package/skills/embassy-peer/agents/openai.yaml +2 -2
  65. package/dist/src/gateway/claude-helper-client.d.ts +0 -2
  66. package/dist/src/gateway/claude-helper-client.js +0 -2
  67. package/dist/src/gateway/claude-helper-client.js.map +0 -1
  68. package/dist/src/gateway/claude-helper-protocol.d.ts +0 -117
  69. package/dist/src/gateway/claude-helper-protocol.js +0 -122
  70. package/dist/src/gateway/claude-helper-protocol.js.map +0 -1
  71. package/dist/src/gateway/claude-helper-supervisor.d.ts +0 -87
  72. package/dist/src/gateway/claude-helper-supervisor.js +0 -347
  73. package/dist/src/gateway/claude-helper-supervisor.js.map +0 -1
  74. package/dist/src/gateway/claude-helper.d.ts +0 -1
  75. package/dist/src/gateway/claude-helper.js +0 -252
  76. package/dist/src/gateway/claude-helper.js.map +0 -1
  77. package/dist/src/gateway/cli.d.ts +0 -57
  78. package/dist/src/gateway/cli.js +0 -1503
  79. package/dist/src/gateway/cli.js.map +0 -1
  80. package/dist/src/gateway/codex-socket-holder.d.ts +0 -26
  81. package/dist/src/gateway/codex-socket-holder.js +0 -76
  82. package/dist/src/gateway/codex-socket-holder.js.map +0 -1
  83. package/dist/src/gateway/control.d.ts +0 -261
  84. package/dist/src/gateway/control.js +0 -903
  85. package/dist/src/gateway/control.js.map +0 -1
  86. package/dist/src/gateway/peer-client.d.ts +0 -58
  87. package/dist/src/gateway/peer-client.js +0 -217
  88. package/dist/src/gateway/peer-client.js.map +0 -1
  89. package/dist/src/gateway/peer-mailbox.d.ts +0 -78
  90. package/dist/src/gateway/peer-mailbox.js +0 -168
  91. package/dist/src/gateway/peer-mailbox.js.map +0 -1
  92. package/dist/src/gateway/peer-protocol.d.ts +0 -105
  93. package/dist/src/gateway/peer-protocol.js +0 -70
  94. package/dist/src/gateway/peer-protocol.js.map +0 -1
  95. package/dist/src/gateway/peer-stdio.d.ts +0 -23
  96. package/dist/src/gateway/peer-stdio.js +0 -100
  97. package/dist/src/gateway/peer-stdio.js.map +0 -1
  98. package/dist/src/gateway/providers.d.ts +0 -163
  99. package/dist/src/gateway/providers.js +0 -972
  100. package/dist/src/gateway/providers.js.map +0 -1
  101. package/dist/src/gateway/server.d.ts +0 -47
  102. package/dist/src/gateway/server.js +0 -219
  103. package/dist/src/gateway/server.js.map +0 -1
  104. package/dist/src/gateway/service.d.ts +0 -373
  105. package/dist/src/gateway/service.js +0 -2274
  106. package/dist/src/gateway/service.js.map +0 -1
  107. package/dist/src/gateway/status-view.d.ts +0 -167
  108. package/dist/src/gateway/status-view.js +0 -488
  109. package/dist/src/gateway/status-view.js.map +0 -1
  110. package/dist/src/gateway/store.d.ts +0 -185
  111. package/dist/src/gateway/store.js +0 -2359
  112. package/dist/src/gateway/store.js.map +0 -1
  113. package/dist/src/gateway/types.d.ts +0 -528
  114. package/dist/src/gateway/types.js +0 -341
  115. package/dist/src/gateway/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/gateway/cli.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /**
2
- * The one Codex process check that changes public health: while the managed
3
- * Codex layout is missing, does a process outside Embassy's own tree hold the
4
- * managed control socket? `lsof` names the holders; each holder's ancestry is
5
- * then walked one `ps -o ppid=` step at a time up to launchd. A holder whose
6
- * chain never passes through Embassy's pid answers true. The walk never reads
7
- * the whole process table, so host size cannot fail the check; only malformed
8
- * or vanished evidence, an exhausted walk, or an inspector error answers
9
- * false, and that silence is never reported as health.
10
- */
11
- export declare const CODEX_SOCKET_HOLDER_MAX_HOLDERS = 32;
12
- export declare const CODEX_SOCKET_HOLDER_MAX_ANCESTRY_DEPTH = 64;
13
- export type CodexSocketHolderInspector = Readonly<{
14
- /** Pids currently holding the socket; throws when there are more than `maximumHolders`. */
15
- socketHolders(socketPath: string, maximumHolders: number): Promise<readonly number[]>;
16
- /** Parent pid of one live process; undefined when the process is gone or unreadable. */
17
- parentOf(pid: number): Promise<number | undefined>;
18
- }>;
19
- export type CodexSocketHolderOptions = Readonly<{
20
- socketPath: string;
21
- embassyPid: number;
22
- inspector: CodexSocketHolderInspector;
23
- }>;
24
- export declare function managedCodexSocketHeldOutsideEmbassy(options: CodexSocketHolderOptions): Promise<boolean>;
25
- /** Bounded macOS inspection; commands and outputs are fixed and private. */
26
- export declare function createSystemCodexSocketHolderInspector(): CodexSocketHolderInspector;
@@ -1,76 +0,0 @@
1
- import { execFile } from "node:child_process";
2
- import { promisify } from "node:util";
3
- /**
4
- * The one Codex process check that changes public health: while the managed
5
- * Codex layout is missing, does a process outside Embassy's own tree hold the
6
- * managed control socket? `lsof` names the holders; each holder's ancestry is
7
- * then walked one `ps -o ppid=` step at a time up to launchd. A holder whose
8
- * chain never passes through Embassy's pid answers true. The walk never reads
9
- * the whole process table, so host size cannot fail the check; only malformed
10
- * or vanished evidence, an exhausted walk, or an inspector error answers
11
- * false, and that silence is never reported as health.
12
- */
13
- export const CODEX_SOCKET_HOLDER_MAX_HOLDERS = 32;
14
- export const CODEX_SOCKET_HOLDER_MAX_ANCESTRY_DEPTH = 64;
15
- const run = promisify(execFile);
16
- const validPid = (value) => Number.isSafeInteger(value) && value > 0;
17
- /** Walk one holder toward launchd; true only when the chain ends (pid 0/1 or a cycle) without meeting Embassy. */
18
- async function outsideEmbassy(holder, options) {
19
- const seen = new Set();
20
- let pid = holder;
21
- for (let depth = 0; depth < CODEX_SOCKET_HOLDER_MAX_ANCESTRY_DEPTH; depth += 1) {
22
- if (pid === options.embassyPid)
23
- return false;
24
- if (pid <= 1 || seen.has(pid))
25
- return true;
26
- seen.add(pid);
27
- let parent;
28
- try {
29
- parent = await options.inspector.parentOf(pid);
30
- }
31
- catch {
32
- return false;
33
- }
34
- if (parent === undefined || !Number.isSafeInteger(parent) || parent < 0)
35
- return false;
36
- pid = parent;
37
- }
38
- return false;
39
- }
40
- export async function managedCodexSocketHeldOutsideEmbassy(options) {
41
- if (!options.socketPath || options.socketPath.includes("\0") || !validPid(options.embassyPid))
42
- return false;
43
- let holders;
44
- try {
45
- holders = await options.inspector.socketHolders(options.socketPath, CODEX_SOCKET_HOLDER_MAX_HOLDERS);
46
- }
47
- catch {
48
- return false;
49
- }
50
- if (holders.length > CODEX_SOCKET_HOLDER_MAX_HOLDERS)
51
- return false;
52
- for (const holder of new Set(holders)) {
53
- if (validPid(holder) && await outsideEmbassy(holder, options))
54
- return true;
55
- }
56
- return false;
57
- }
58
- /** Bounded macOS inspection; commands and outputs are fixed and private. */
59
- export function createSystemCodexSocketHolderInspector() {
60
- const execOptions = { encoding: "utf8", maxBuffer: 64 * 1024, timeout: 2_000 };
61
- return {
62
- socketHolders: async (socketPath, maximumHolders) => {
63
- const { stdout } = await run("/usr/sbin/lsof", ["-n", "-F", "p", "--", socketPath], execOptions);
64
- const holders = [...new Set(stdout.split("\n").flatMap((line) => /^p[1-9][0-9]*$/.test(line) ? [Number(line.slice(1))] : []))];
65
- if (holders.length > maximumHolders)
66
- throw new Error("bounded socket-holder evidence exceeded");
67
- return holders;
68
- },
69
- parentOf: async (pid) => {
70
- const { stdout } = await run("/bin/ps", ["-o", "ppid=", "-p", String(pid)], execOptions);
71
- const match = /^\s*([0-9]+)\s*$/.exec(stdout);
72
- return match === null ? undefined : Number(match[1]);
73
- },
74
- };
75
- }
76
- //# sourceMappingURL=codex-socket-holder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex-socket-holder.js","sourceRoot":"","sources":["../../../src/gateway/codex-socket-holder.ts"],"names":[],"mappings":"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"}
@@ -1,261 +0,0 @@
1
- import type { GatewayPublicSnapshot } from "./types.js";
2
- import { type PeerCatalogResult, type PeerHandoffParams, type PeerHandoffResult } from "./peer-protocol.js";
3
- import { type PeerMailboxAwaitResult } from "./peer-mailbox.js";
4
- export declare const GATEWAY_CONTROL_PROTOCOL_VERSION: 3;
5
- export declare const GATEWAY_CONTROL_MAX_FRAME_BYTES: number;
6
- export declare const GATEWAY_CONTROL_MAX_RESPONSE_BYTES: number;
7
- export declare const GATEWAY_CONTROL_MAX_MESSAGE_BYTES: number;
8
- export declare const GATEWAY_CONTROL_DEFAULT_TIMEOUT_MS = 3000;
9
- export declare const GATEWAY_CONTROL_MAX_CONNECTIONS = 32;
10
- export declare const gatewayControlMethods: readonly ["health", "register_codex", "unregister_codex", "list_snapshot", "observe_snapshot", "delivery_status", "send", "refresh_discovery", "peer_catalog", "peer_handoff", "register_peer", "unregister_peer", "await_peer", "peer_receipt"];
11
- export type GatewayControlMethod = (typeof gatewayControlMethods)[number];
12
- export type GatewayBusyPolicy = "queue";
13
- export type RegisterCodexParams = {
14
- alias: string;
15
- threadId: string;
16
- hostId: string;
17
- busyPolicy: GatewayBusyPolicy;
18
- succeedsAlias?: string;
19
- };
20
- export type ValidatedRegisterCodexParams = {
21
- alias: string;
22
- threadId: string;
23
- hostId: string;
24
- busyPolicy: GatewayBusyPolicy;
25
- succeedsAlias?: string;
26
- };
27
- export type UnregisterCodexParams = {
28
- alias: string;
29
- threadId: string;
30
- };
31
- type SendBase = {
32
- fromAlias: string;
33
- text: string;
34
- };
35
- type SendAuthority = {
36
- threadId: string;
37
- replyAddress?: never;
38
- peerToken?: never;
39
- } | {
40
- replyAddress: string;
41
- threadId?: never;
42
- peerToken?: never;
43
- } | {
44
- peerToken: string;
45
- threadId?: never;
46
- replyAddress?: never;
47
- };
48
- /**
49
- * A send addresses either a route by name or an open conversation by its
50
- * token, never both. The conversation form is what `reply` used to be: the
51
- * caller owns one end, the other end is the conversation's recorded binding,
52
- * and the answer always expects a reply, so `expectsReply` is not accepted
53
- * with it.
54
- */
55
- export type SendParams = (SendBase & SendAuthority & {
56
- toAlias: string;
57
- conversationId?: never;
58
- expectsReply?: boolean;
59
- }) | (SendBase & SendAuthority & {
60
- conversationId: string;
61
- toAlias?: never;
62
- expectsReply?: never;
63
- });
64
- export type ValidatedSendParams = (SendBase & SendAuthority & {
65
- toAlias: string;
66
- conversationId?: never;
67
- expectsReply: boolean;
68
- }) | (SendBase & SendAuthority & {
69
- conversationId: string;
70
- toAlias?: never;
71
- expectsReply?: never;
72
- });
73
- export type DeliveryStatusParams = {
74
- token: string;
75
- };
76
- export type PeerCatalogParams = {
77
- peerHost: string;
78
- };
79
- export type PeerHandoffControlParams = {
80
- peerHost: string;
81
- handoff: PeerHandoffParams;
82
- };
83
- export type RegisterPeerParams = {
84
- alias: string;
85
- token?: string;
86
- ephemeral?: true;
87
- ttlMs?: number;
88
- };
89
- /** Bounds on an ephemeral peer registration's lifetime, in milliseconds. */
90
- export declare const GATEWAY_EPHEMERAL_PEER_TTL_DEFAULT_MS = 300000;
91
- export declare const GATEWAY_EPHEMERAL_PEER_TTL_MIN_MS = 1000;
92
- export declare const GATEWAY_EPHEMERAL_PEER_TTL_MAX_MS = 3600000;
93
- export type PeerPrincipalParams = {
94
- alias: string;
95
- token: string;
96
- };
97
- export type PeerReceiptParams = PeerPrincipalParams & {
98
- receipt: string;
99
- };
100
- type RequestParams = {
101
- health: Record<string, never>;
102
- register_codex: RegisterCodexParams;
103
- unregister_codex: UnregisterCodexParams;
104
- list_snapshot: Record<string, never>;
105
- observe_snapshot: Record<string, never>;
106
- delivery_status: DeliveryStatusParams;
107
- send: SendParams;
108
- refresh_discovery: Record<string, never>;
109
- peer_catalog: PeerCatalogParams;
110
- peer_handoff: PeerHandoffControlParams;
111
- register_peer: RegisterPeerParams;
112
- unregister_peer: PeerPrincipalParams;
113
- await_peer: PeerPrincipalParams;
114
- peer_receipt: PeerReceiptParams;
115
- };
116
- export type GatewayControlRequest = {
117
- [M in GatewayControlMethod]: {
118
- protocolVersion: typeof GATEWAY_CONTROL_PROTOCOL_VERSION;
119
- method: M;
120
- params: RequestParams[M];
121
- };
122
- }[GatewayControlMethod];
123
- export type GatewayDecisionCode = "ok" | "not_found" | "conflict" | "route_mismatch" | "busy" | "unavailable" | "rejected";
124
- export type GatewayDecision = {
125
- accepted: true;
126
- code: "ok";
127
- } | {
128
- accepted: false;
129
- code: Exclude<GatewayDecisionCode, "ok">;
130
- };
131
- /**
132
- * A refused send carries an optional `reason`: the safe error code
133
- * behind the coarse decision. The decision code stays the contract clients
134
- * branch on; `reason` exists so the CLI can name the one remedy that fits
135
- * (rename a session, move a workspace, fix `--from`, rescan) instead of
136
- * printing one generic line for six different failures. It is a safe code:
137
- * bounded, allowlisted-shaped, and never a message, path, or identifier.
138
- */
139
- export type GatewaySendResult = {
140
- accepted: true;
141
- code: "ok";
142
- conversationId: string;
143
- deliveryToken: string;
144
- } | {
145
- accepted: false;
146
- code: Exclude<GatewayDecisionCode, "ok">;
147
- reason?: string;
148
- };
149
- export type GatewayHealthResult = {
150
- status: "ok" | "degraded";
151
- revision: number;
152
- };
153
- export type GatewayRefreshResult = GatewayDecision & {
154
- revision: number;
155
- };
156
- export type GatewayDeliveryStatusState = "queued" | "stalled" | "delivered" | "unconfirmed" | "expired" | "failed" | "ambiguous" | "cancelled";
157
- export type GatewayDeliveryStatusResult = {
158
- found: false;
159
- } | {
160
- found: true;
161
- state: GatewayDeliveryStatusState;
162
- terminal: boolean;
163
- updatedAt: string;
164
- deadlineAt: string;
165
- pendingForMs?: number;
166
- safeErrorCode?: string;
167
- };
168
- export type GatewaySnapshot = GatewayPublicSnapshot;
169
- export type GatewaySnapshotObservation = {
170
- snapshotRevision: number;
171
- snapshot: GatewaySnapshot;
172
- };
173
- export type GatewayRegisterPeerResult = GatewayDecision | {
174
- accepted: true;
175
- code: "ok";
176
- token: string;
177
- };
178
- type ResultByMethod = {
179
- health: GatewayHealthResult;
180
- register_codex: GatewayDecision;
181
- unregister_codex: GatewayDecision;
182
- list_snapshot: GatewaySnapshot;
183
- observe_snapshot: GatewaySnapshotObservation;
184
- delivery_status: GatewayDeliveryStatusResult;
185
- send: GatewaySendResult;
186
- refresh_discovery: GatewayRefreshResult;
187
- peer_catalog: PeerCatalogResult;
188
- peer_handoff: PeerHandoffResult;
189
- register_peer: GatewayRegisterPeerResult;
190
- unregister_peer: GatewayDecision;
191
- await_peer: PeerMailboxAwaitResult;
192
- peer_receipt: GatewayDecision;
193
- };
194
- type MaybePromise<T> = T | Promise<T>;
195
- export type GatewayControlHandlers = {
196
- health: () => MaybePromise<GatewayHealthResult>;
197
- registerCodex: (params: Readonly<ValidatedRegisterCodexParams>) => MaybePromise<GatewayDecision>;
198
- unregisterCodex: (params: Readonly<UnregisterCodexParams>) => MaybePromise<GatewayDecision>;
199
- listSnapshot: () => MaybePromise<GatewaySnapshot>;
200
- observeSnapshot: () => MaybePromise<GatewaySnapshotObservation>;
201
- deliveryStatus: (params: Readonly<DeliveryStatusParams>) => MaybePromise<GatewayDeliveryStatusResult>;
202
- send: (params: Readonly<ValidatedSendParams>) => MaybePromise<GatewaySendResult>;
203
- refreshDiscovery: () => MaybePromise<GatewayRefreshResult>;
204
- peerCatalog?: (params: Readonly<PeerCatalogParams>) => MaybePromise<PeerCatalogResult>;
205
- peerHandoff?: (params: Readonly<PeerHandoffControlParams>) => MaybePromise<PeerHandoffResult>;
206
- registerPeer: (params: Readonly<RegisterPeerParams>) => MaybePromise<GatewayRegisterPeerResult>;
207
- unregisterPeer: (params: Readonly<PeerPrincipalParams>) => MaybePromise<GatewayDecision>;
208
- awaitPeer: (params: Readonly<PeerPrincipalParams>) => MaybePromise<PeerMailboxAwaitResult>;
209
- peerReceipt: (params: Readonly<PeerReceiptParams>) => MaybePromise<GatewayDecision>;
210
- };
211
- export type GatewayWireErrorCode = "INVALID_JSON" | "FRAME_TOO_LARGE" | "INVALID_REQUEST" | "UNSUPPORTED_VERSION" | "UNKNOWN_METHOD" | "MULTIPLE_FRAMES" | "SERVER_BUSY" | "REQUEST_TIMEOUT" | "HANDLER_FAILURE" | "INVALID_HANDLER_RESPONSE" | "RESPONSE_TOO_LARGE";
212
- export type GatewayControlErrorResponse = {
213
- protocolVersion: typeof GATEWAY_CONTROL_PROTOCOL_VERSION;
214
- ok: false;
215
- error: {
216
- code: GatewayWireErrorCode;
217
- message: string;
218
- };
219
- };
220
- export type GatewayControlSuccessResponse<M extends GatewayControlMethod = GatewayControlMethod> = {
221
- protocolVersion: typeof GATEWAY_CONTROL_PROTOCOL_VERSION;
222
- ok: true;
223
- result: ResultByMethod[M];
224
- };
225
- export type GatewayControlResponse<M extends GatewayControlMethod = GatewayControlMethod> = GatewayControlSuccessResponse<M> | GatewayControlErrorResponse;
226
- export declare class GatewayControlTransportError extends Error {
227
- readonly code: string;
228
- readonly ambiguous: boolean;
229
- readonly recoverable: boolean;
230
- constructor(code: string, message: string, ambiguous?: boolean);
231
- }
232
- export declare function createGatewayConversationId(): string;
233
- export declare function isGatewayAlias(value: string): boolean;
234
- export declare function isClaudeSessionSelector(value: string): boolean;
235
- export declare function isGatewayHostId(value: string): boolean;
236
- export declare function isGatewayConversationId(value: string): boolean;
237
- export declare function isGatewayDeliveryToken(value: string): boolean;
238
- export declare function isGatewayReplyAddress(value: string): boolean;
239
- export declare function isGatewaySnapshot(value: unknown): value is GatewaySnapshot;
240
- export type GatewayControlServer = {
241
- readonly socketPath: string;
242
- readonly closed: boolean;
243
- close: () => Promise<void>;
244
- };
245
- export type StartGatewayControlServerOptions = {
246
- stateDir: string;
247
- socketPath: string;
248
- handlers: GatewayControlHandlers;
249
- requestTimeoutMs?: number;
250
- };
251
- export declare function startGatewayControlServer(options: StartGatewayControlServerOptions): Promise<GatewayControlServer>;
252
- export type SendGatewayControlRequestOptions<M extends GatewayControlMethod> = {
253
- socketPath: string;
254
- request: Extract<GatewayControlRequest, {
255
- method: M;
256
- }>;
257
- timeoutMs?: number;
258
- maxResponseBytes?: number;
259
- };
260
- export declare function sendGatewayControlRequest<M extends GatewayControlMethod>(options: SendGatewayControlRequestOptions<M>): Promise<GatewayControlResponse<M>>;
261
- export {};