agent-embassy 3.1.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 (112) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/CONTRIBUTING.md +92 -202
  3. package/README.md +157 -155
  4. package/SECURITY.md +191 -348
  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 +61 -1052
  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 -949
  62. package/package.json +5 -5
  63. package/skills/embassy-peer/SKILL.md +38 -196
  64. package/skills/embassy-peer/agents/openai.yaml +2 -2
  65. package/dist/src/gateway/claude-helper-protocol.d.ts +0 -117
  66. package/dist/src/gateway/claude-helper-protocol.js +0 -122
  67. package/dist/src/gateway/claude-helper-protocol.js.map +0 -1
  68. package/dist/src/gateway/claude-helper-supervisor.d.ts +0 -87
  69. package/dist/src/gateway/claude-helper-supervisor.js +0 -374
  70. package/dist/src/gateway/claude-helper-supervisor.js.map +0 -1
  71. package/dist/src/gateway/claude-helper.d.ts +0 -1
  72. package/dist/src/gateway/claude-helper.js +0 -252
  73. package/dist/src/gateway/claude-helper.js.map +0 -1
  74. package/dist/src/gateway/cli.d.ts +0 -56
  75. package/dist/src/gateway/cli.js +0 -1532
  76. package/dist/src/gateway/cli.js.map +0 -1
  77. package/dist/src/gateway/codex-socket-holder.d.ts +0 -26
  78. package/dist/src/gateway/codex-socket-holder.js +0 -76
  79. package/dist/src/gateway/codex-socket-holder.js.map +0 -1
  80. package/dist/src/gateway/control.d.ts +0 -279
  81. package/dist/src/gateway/control.js +0 -933
  82. package/dist/src/gateway/control.js.map +0 -1
  83. package/dist/src/gateway/peer-client.d.ts +0 -58
  84. package/dist/src/gateway/peer-client.js +0 -217
  85. package/dist/src/gateway/peer-client.js.map +0 -1
  86. package/dist/src/gateway/peer-mailbox.d.ts +0 -78
  87. package/dist/src/gateway/peer-mailbox.js +0 -168
  88. package/dist/src/gateway/peer-mailbox.js.map +0 -1
  89. package/dist/src/gateway/peer-protocol.d.ts +0 -110
  90. package/dist/src/gateway/peer-protocol.js +0 -79
  91. package/dist/src/gateway/peer-protocol.js.map +0 -1
  92. package/dist/src/gateway/peer-stdio.d.ts +0 -23
  93. package/dist/src/gateway/peer-stdio.js +0 -100
  94. package/dist/src/gateway/peer-stdio.js.map +0 -1
  95. package/dist/src/gateway/providers.d.ts +0 -164
  96. package/dist/src/gateway/providers.js +0 -975
  97. package/dist/src/gateway/providers.js.map +0 -1
  98. package/dist/src/gateway/server.d.ts +0 -46
  99. package/dist/src/gateway/server.js +0 -216
  100. package/dist/src/gateway/server.js.map +0 -1
  101. package/dist/src/gateway/service.d.ts +0 -371
  102. package/dist/src/gateway/service.js +0 -2335
  103. package/dist/src/gateway/service.js.map +0 -1
  104. package/dist/src/gateway/status-view.d.ts +0 -119
  105. package/dist/src/gateway/status-view.js +0 -484
  106. package/dist/src/gateway/status-view.js.map +0 -1
  107. package/dist/src/gateway/store.d.ts +0 -188
  108. package/dist/src/gateway/store.js +0 -2360
  109. package/dist/src/gateway/store.js.map +0 -1
  110. package/dist/src/gateway/types.d.ts +0 -541
  111. package/dist/src/gateway/types.js +0 -332
  112. 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,279 +0,0 @@
1
- import type { GatewayPublicSnapshot } from "./types.js";
2
- import { type PeerCatalogResult, type PeerHandoffParams, type PeerHandoffResult, type PeerHandoffRefusal } from "./peer-protocol.js";
3
- import { type PeerMailboxAwaitResult } from "./peer-mailbox.js";
4
- export declare const GATEWAY_CONTROL_PROTOCOL_VERSION: 4;
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", "retire_route"];
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 RetireRouteParams = {
77
- alias: string;
78
- };
79
- export type PeerCatalogParams = {
80
- peerHost: string;
81
- };
82
- export type PeerHandoffControlParams = {
83
- peerHost: string;
84
- handoff: PeerHandoffParams;
85
- };
86
- export type PeerHandoffControlResult = PeerHandoffResult | PeerHandoffRefusal;
87
- export type RegisterPeerParams = {
88
- alias: string;
89
- token?: string;
90
- ephemeral?: true;
91
- ttlMs?: number;
92
- };
93
- /** Bounds on an ephemeral peer registration's lifetime, in milliseconds. */
94
- export declare const GATEWAY_EPHEMERAL_PEER_TTL_DEFAULT_MS = 300000;
95
- export declare const GATEWAY_EPHEMERAL_PEER_TTL_MIN_MS = 1000;
96
- export declare const GATEWAY_EPHEMERAL_PEER_TTL_MAX_MS = 3600000;
97
- export type PeerPrincipalParams = {
98
- alias: string;
99
- token: string;
100
- };
101
- export type PeerReceiptParams = PeerPrincipalParams & {
102
- receipt: string;
103
- };
104
- type RequestParams = {
105
- health: Record<string, never>;
106
- register_codex: RegisterCodexParams;
107
- unregister_codex: UnregisterCodexParams;
108
- list_snapshot: Record<string, never>;
109
- observe_snapshot: Record<string, never>;
110
- delivery_status: DeliveryStatusParams;
111
- send: SendParams;
112
- refresh_discovery: Record<string, never>;
113
- peer_catalog: PeerCatalogParams;
114
- peer_handoff: PeerHandoffControlParams;
115
- register_peer: RegisterPeerParams;
116
- unregister_peer: PeerPrincipalParams;
117
- await_peer: PeerPrincipalParams;
118
- peer_receipt: PeerReceiptParams;
119
- retire_route: RetireRouteParams;
120
- };
121
- export type GatewayControlRequest = {
122
- [M in GatewayControlMethod]: {
123
- protocolVersion: typeof GATEWAY_CONTROL_PROTOCOL_VERSION;
124
- method: M;
125
- params: RequestParams[M];
126
- };
127
- }[GatewayControlMethod];
128
- export type GatewayDecisionCode = "ok" | "not_found" | "conflict" | "route_mismatch" | "busy" | "unavailable" | "rejected";
129
- export type GatewayDecision = {
130
- accepted: true;
131
- code: "ok";
132
- } | {
133
- accepted: false;
134
- code: Exclude<GatewayDecisionCode, "ok">;
135
- };
136
- /**
137
- * A refused send carries an optional `reason`: the safe error code
138
- * behind the coarse decision. The decision code stays the contract clients
139
- * branch on; `reason` exists so the CLI can name the one remedy that fits
140
- * (rename a session, move a workspace, fix `--from`, rescan) instead of
141
- * printing one generic line for six different failures. It is a safe code:
142
- * bounded, allowlisted-shaped, and never a message, path, or identifier.
143
- */
144
- export type GatewaySendResult = {
145
- accepted: true;
146
- code: "ok";
147
- conversationId: string;
148
- deliveryToken: string;
149
- } | {
150
- accepted: false;
151
- code: Exclude<GatewayDecisionCode, "ok">;
152
- reason?: string;
153
- };
154
- export type GatewayHealthResult = {
155
- status: "ok" | "degraded";
156
- revision: number;
157
- };
158
- export type GatewayRefreshResult = GatewayDecision & {
159
- revision: number;
160
- };
161
- export type GatewayDeliveryStatusState = "queued" | "stalled" | "delivered" | "unconfirmed" | "expired" | "failed" | "ambiguous" | "cancelled";
162
- export type GatewayDeliveryStatusResult = {
163
- found: false;
164
- } | {
165
- found: true;
166
- state: GatewayDeliveryStatusState;
167
- terminal: boolean;
168
- updatedAt: string;
169
- deadlineAt: string;
170
- pendingForMs?: number;
171
- safeErrorCode?: string;
172
- };
173
- export type GatewaySnapshot = GatewayPublicSnapshot;
174
- export type GatewaySnapshotObservation = {
175
- snapshotRevision: number;
176
- snapshot: GatewaySnapshot;
177
- };
178
- export type GatewayRegisterPeerResult = GatewayDecision | {
179
- accepted: true;
180
- code: "ok";
181
- token: string;
182
- };
183
- export type GatewayRetireRouteResult = Extract<GatewaySendResult, {
184
- accepted: false;
185
- }> | {
186
- accepted: true;
187
- code: "ok";
188
- settlements: {
189
- cancelled: number;
190
- ambiguous: number;
191
- unconfirmed: number;
192
- };
193
- };
194
- type ResultByMethod = {
195
- health: GatewayHealthResult;
196
- register_codex: GatewayDecision;
197
- unregister_codex: GatewayDecision;
198
- list_snapshot: GatewaySnapshot;
199
- observe_snapshot: GatewaySnapshotObservation;
200
- delivery_status: GatewayDeliveryStatusResult;
201
- send: GatewaySendResult;
202
- refresh_discovery: GatewayRefreshResult;
203
- peer_catalog: PeerCatalogResult;
204
- peer_handoff: PeerHandoffControlResult;
205
- register_peer: GatewayRegisterPeerResult;
206
- unregister_peer: GatewayDecision;
207
- await_peer: PeerMailboxAwaitResult;
208
- peer_receipt: GatewayDecision;
209
- retire_route: GatewayRetireRouteResult;
210
- };
211
- type MaybePromise<T> = T | Promise<T>;
212
- export type GatewayControlHandlers = {
213
- health: () => MaybePromise<GatewayHealthResult>;
214
- registerCodex: (params: Readonly<ValidatedRegisterCodexParams>) => MaybePromise<GatewayDecision>;
215
- unregisterCodex: (params: Readonly<UnregisterCodexParams>) => MaybePromise<GatewayDecision>;
216
- listSnapshot: () => MaybePromise<GatewaySnapshot>;
217
- observeSnapshot: () => MaybePromise<GatewaySnapshotObservation>;
218
- deliveryStatus: (params: Readonly<DeliveryStatusParams>) => MaybePromise<GatewayDeliveryStatusResult>;
219
- send: (params: Readonly<ValidatedSendParams>) => MaybePromise<GatewaySendResult>;
220
- refreshDiscovery: () => MaybePromise<GatewayRefreshResult>;
221
- peerCatalog?: (params: Readonly<PeerCatalogParams>) => MaybePromise<PeerCatalogResult>;
222
- peerHandoff?: (params: Readonly<PeerHandoffControlParams>) => MaybePromise<PeerHandoffControlResult>;
223
- registerPeer: (params: Readonly<RegisterPeerParams>) => MaybePromise<GatewayRegisterPeerResult>;
224
- unregisterPeer: (params: Readonly<PeerPrincipalParams>) => MaybePromise<GatewayDecision>;
225
- awaitPeer: (params: Readonly<PeerPrincipalParams>) => MaybePromise<PeerMailboxAwaitResult>;
226
- peerReceipt: (params: Readonly<PeerReceiptParams>) => MaybePromise<GatewayDecision>;
227
- retireRoute: (params: Readonly<RetireRouteParams>) => MaybePromise<GatewayRetireRouteResult>;
228
- };
229
- 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";
230
- export type GatewayControlErrorResponse = {
231
- protocolVersion: typeof GATEWAY_CONTROL_PROTOCOL_VERSION;
232
- ok: false;
233
- error: {
234
- code: GatewayWireErrorCode;
235
- message: string;
236
- };
237
- };
238
- export type GatewayControlSuccessResponse<M extends GatewayControlMethod = GatewayControlMethod> = {
239
- protocolVersion: typeof GATEWAY_CONTROL_PROTOCOL_VERSION;
240
- ok: true;
241
- result: ResultByMethod[M];
242
- };
243
- export type GatewayControlResponse<M extends GatewayControlMethod = GatewayControlMethod> = GatewayControlSuccessResponse<M> | GatewayControlErrorResponse;
244
- export declare class GatewayControlTransportError extends Error {
245
- readonly code: string;
246
- readonly ambiguous: boolean;
247
- readonly recoverable: boolean;
248
- constructor(code: string, message: string, ambiguous?: boolean);
249
- }
250
- export declare function createGatewayConversationId(): string;
251
- export declare function isGatewayAlias(value: string): boolean;
252
- export declare function isClaudeSessionSelector(value: string): boolean;
253
- export declare function isGatewayHostId(value: string): boolean;
254
- export declare function isGatewayConversationId(value: string): boolean;
255
- export declare function isGatewayDeliveryToken(value: string): boolean;
256
- export declare function isGatewayReplyAddress(value: string): boolean;
257
- export declare function isGatewaySnapshot(value: unknown): value is GatewaySnapshot;
258
- export type GatewayControlServer = {
259
- readonly socketPath: string;
260
- readonly closed: boolean;
261
- close: () => Promise<void>;
262
- };
263
- export type StartGatewayControlServerOptions = {
264
- stateDir: string;
265
- socketPath: string;
266
- handlers: GatewayControlHandlers;
267
- requestTimeoutMs?: number;
268
- };
269
- export declare function startGatewayControlServer(options: StartGatewayControlServerOptions): Promise<GatewayControlServer>;
270
- export type SendGatewayControlRequestOptions<M extends GatewayControlMethod> = {
271
- socketPath: string;
272
- request: Extract<GatewayControlRequest, {
273
- method: M;
274
- }>;
275
- timeoutMs?: number;
276
- maxResponseBytes?: number;
277
- };
278
- export declare function sendGatewayControlRequest<M extends GatewayControlMethod>(options: SendGatewayControlRequestOptions<M>): Promise<GatewayControlResponse<M>>;
279
- export {};