agent-embassy 2.0.1 → 3.1.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.
- package/CHANGELOG.md +77 -0
- package/CONTRIBUTING.md +23 -36
- package/README.md +123 -222
- package/SECURITY.md +72 -93
- package/dist/src/errors.d.ts +10 -1
- package/dist/src/errors.js +3 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/gateway/claude-helper-protocol.d.ts +8 -11
- package/dist/src/gateway/claude-helper-protocol.js +12 -11
- package/dist/src/gateway/claude-helper-protocol.js.map +1 -1
- package/dist/src/gateway/claude-helper-supervisor.d.ts +1 -5
- package/dist/src/gateway/claude-helper-supervisor.js +45 -17
- package/dist/src/gateway/claude-helper-supervisor.js.map +1 -1
- package/dist/src/gateway/claude-helper.js +6 -6
- package/dist/src/gateway/claude-helper.js.map +1 -1
- package/dist/src/gateway/claude-peer.d.ts +0 -3
- package/dist/src/gateway/claude-peer.js +7 -19
- package/dist/src/gateway/claude-peer.js.map +1 -1
- package/dist/src/gateway/cli.d.ts +17 -7
- package/dist/src/gateway/cli.js +945 -265
- package/dist/src/gateway/cli.js.map +1 -1
- package/dist/src/gateway/codex-socket-holder.d.ts +26 -0
- package/dist/src/gateway/codex-socket-holder.js +76 -0
- package/dist/src/gateway/codex-socket-holder.js.map +1 -0
- package/dist/src/gateway/codex-stateless-transport.js +1 -1
- package/dist/src/gateway/codex-stateless-transport.js.map +1 -1
- package/dist/src/gateway/config.d.ts +1 -10
- package/dist/src/gateway/config.js +4 -10
- package/dist/src/gateway/config.js.map +1 -1
- package/dist/src/gateway/control.d.ts +66 -80
- package/dist/src/gateway/control.js +92 -147
- package/dist/src/gateway/control.js.map +1 -1
- package/dist/src/gateway/federation-nodes.d.ts +29 -2
- package/dist/src/gateway/federation-nodes.js +177 -7
- package/dist/src/gateway/federation-nodes.js.map +1 -1
- package/dist/src/gateway/peer-client.d.ts +4 -3
- package/dist/src/gateway/peer-client.js +22 -13
- package/dist/src/gateway/peer-client.js.map +1 -1
- package/dist/src/gateway/peer-protocol.d.ts +13 -11
- package/dist/src/gateway/peer-protocol.js +14 -12
- package/dist/src/gateway/peer-protocol.js.map +1 -1
- package/dist/src/gateway/provenance-envelope.d.ts +0 -1
- package/dist/src/gateway/provenance-envelope.js +4 -19
- package/dist/src/gateway/provenance-envelope.js.map +1 -1
- package/dist/src/gateway/providers.d.ts +11 -7
- package/dist/src/gateway/providers.js +49 -50
- package/dist/src/gateway/providers.js.map +1 -1
- package/dist/src/gateway/server.d.ts +4 -14
- package/dist/src/gateway/server.js +32 -54
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/gateway/service-agent.d.ts +187 -0
- package/dist/src/gateway/service-agent.js +758 -0
- package/dist/src/gateway/service-agent.js.map +1 -0
- package/dist/src/gateway/service.d.ts +119 -38
- package/dist/src/gateway/service.js +754 -798
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/status-view.d.ts +119 -0
- package/dist/src/gateway/status-view.js +484 -0
- package/dist/src/gateway/status-view.js.map +1 -0
- package/dist/src/gateway/store.d.ts +106 -21
- package/dist/src/gateway/store.js +463 -537
- package/dist/src/gateway/store.js.map +1 -1
- package/dist/src/gateway/types.d.ts +64 -102
- package/dist/src/gateway/types.js +40 -86
- package/dist/src/gateway/types.js.map +1 -1
- package/docs/CONFIGURATION.md +174 -45
- package/docs/DELIVERY.md +11 -11
- package/docs/GATEWAY-ARCHITECTURE.md +292 -384
- package/package.json +4 -12
- package/skills/embassy-peer/SKILL.md +69 -92
- package/skills/embassy-peer/agents/openai.yaml +1 -1
- package/README.zh-CN.md +0 -275
- package/assets/live-dashboard/app.css +0 -1619
- package/assets/vendor/react/LICENSE +0 -21
- package/assets/vendor/react/react-dom.production.min.js +0 -267
- package/assets/vendor/react/react.production.min.js +0 -31
- package/dist/src/gateway/acp-client.d.ts +0 -110
- package/dist/src/gateway/acp-client.js +0 -407
- package/dist/src/gateway/acp-client.js.map +0 -1
- package/dist/src/gateway/acp-provider.d.ts +0 -66
- package/dist/src/gateway/acp-provider.js +0 -275
- package/dist/src/gateway/acp-provider.js.map +0 -1
- package/dist/src/gateway/claude-helper-client.d.ts +0 -2
- package/dist/src/gateway/claude-helper-client.js +0 -2
- package/dist/src/gateway/claude-helper-client.js.map +0 -1
- package/dist/src/gateway/cli-copy.d.ts +0 -8
- package/dist/src/gateway/cli-copy.en.d.ts +0 -22
- package/dist/src/gateway/cli-copy.en.js +0 -62
- package/dist/src/gateway/cli-copy.en.js.map +0 -1
- package/dist/src/gateway/cli-copy.js +0 -27
- package/dist/src/gateway/cli-copy.js.map +0 -1
- package/dist/src/gateway/cli-copy.zh-CN.d.ts +0 -22
- package/dist/src/gateway/cli-copy.zh-CN.js +0 -62
- package/dist/src/gateway/cli-copy.zh-CN.js.map +0 -1
- package/dist/src/gateway/codex-doctor.d.ts +0 -36
- package/dist/src/gateway/codex-doctor.js +0 -127
- package/dist/src/gateway/codex-doctor.js.map +0 -1
- package/dist/src/gateway/dashboard-copy.d.ts +0 -7
- package/dist/src/gateway/dashboard-copy.en.d.ts +0 -504
- package/dist/src/gateway/dashboard-copy.en.js +0 -505
- package/dist/src/gateway/dashboard-copy.en.js.map +0 -1
- package/dist/src/gateway/dashboard-copy.js +0 -514
- package/dist/src/gateway/dashboard-copy.js.map +0 -1
- package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +0 -504
- package/dist/src/gateway/dashboard-copy.zh-CN.js +0 -505
- package/dist/src/gateway/dashboard-copy.zh-CN.js.map +0 -1
- package/dist/src/gateway/dashboard-model.d.ts +0 -343
- package/dist/src/gateway/dashboard-model.js +0 -1061
- package/dist/src/gateway/dashboard-model.js.map +0 -1
- package/dist/src/gateway/dashboard.d.ts +0 -20
- package/dist/src/gateway/dashboard.js +0 -874
- package/dist/src/gateway/dashboard.js.map +0 -1
- package/dist/src/gateway/deepseek-detect.d.ts +0 -14
- package/dist/src/gateway/deepseek-detect.js +0 -41
- package/dist/src/gateway/deepseek-detect.js.map +0 -1
- package/dist/src/gateway/live-dashboard-app/app.js +0 -2385
- package/dist/src/gateway/live-dashboard-assets.d.ts +0 -10
- package/dist/src/gateway/live-dashboard-assets.js +0 -74
- package/dist/src/gateway/live-dashboard-assets.js.map +0 -1
- package/dist/src/gateway/live-dashboard-command.d.ts +0 -60
- package/dist/src/gateway/live-dashboard-command.js +0 -334
- package/dist/src/gateway/live-dashboard-command.js.map +0 -1
- package/dist/src/gateway/live-dashboard-http.d.ts +0 -39
- package/dist/src/gateway/live-dashboard-http.js +0 -383
- package/dist/src/gateway/live-dashboard-http.js.map +0 -1
- package/dist/src/gateway/live-dashboard-protocol.d.ts +0 -34
- package/dist/src/gateway/live-dashboard-protocol.js +0 -114
- package/dist/src/gateway/live-dashboard-protocol.js.map +0 -1
- package/dist/src/gateway/live-dashboard-server.d.ts +0 -33
- package/dist/src/gateway/live-dashboard-server.js +0 -144
- package/dist/src/gateway/live-dashboard-server.js.map +0 -1
- package/dist/src/gateway/live-dashboard-stream.d.ts +0 -46
- package/dist/src/gateway/live-dashboard-stream.js +0 -234
- package/dist/src/gateway/live-dashboard-stream.js.map +0 -1
- package/dist/src/gateway/live-dashboard.d.ts +0 -28
- package/dist/src/gateway/live-dashboard.js +0 -154
- package/dist/src/gateway/live-dashboard.js.map +0 -1
- package/dist/src/gateway/locale.d.ts +0 -4
- package/dist/src/gateway/locale.js +0 -10
- package/dist/src/gateway/locale.js.map +0 -1
- package/dist/src/gateway/progress-watch-machine.d.ts +0 -45
- package/dist/src/gateway/progress-watch-machine.js +0 -70
- package/dist/src/gateway/progress-watch-machine.js.map +0 -1
- package/docs/CONFIGURATION.zh-CN.md +0 -97
- package/docs/DASHBOARD.md +0 -98
- package/docs/DASHBOARD.zh-CN.md +0 -49
- package/docs/DELIVERY.zh-CN.md +0 -55
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/gateway/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/gateway/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { GatewayPublicSnapshot } from "./types.js";
|
|
2
|
-
import { type PeerCatalogResult, type PeerHandoffParams, type PeerHandoffResult } from "./peer-protocol.js";
|
|
2
|
+
import { type PeerCatalogResult, type PeerHandoffParams, type PeerHandoffResult, type PeerHandoffRefusal } from "./peer-protocol.js";
|
|
3
3
|
import { type PeerMailboxAwaitResult } from "./peer-mailbox.js";
|
|
4
|
-
export declare const GATEWAY_CONTROL_PROTOCOL_VERSION:
|
|
4
|
+
export declare const GATEWAY_CONTROL_PROTOCOL_VERSION: 4;
|
|
5
5
|
export declare const GATEWAY_CONTROL_MAX_FRAME_BYTES: number;
|
|
6
6
|
export declare const GATEWAY_CONTROL_MAX_RESPONSE_BYTES: number;
|
|
7
7
|
export declare const GATEWAY_CONTROL_MAX_MESSAGE_BYTES: number;
|
|
8
8
|
export declare const GATEWAY_CONTROL_DEFAULT_TIMEOUT_MS = 3000;
|
|
9
9
|
export declare const GATEWAY_CONTROL_MAX_CONNECTIONS = 32;
|
|
10
|
-
export declare const gatewayControlMethods: readonly ["health", "register_codex", "unregister_codex", "
|
|
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
11
|
export type GatewayControlMethod = (typeof gatewayControlMethods)[number];
|
|
12
12
|
export type GatewayBusyPolicy = "queue";
|
|
13
13
|
export type RegisterCodexParams = {
|
|
@@ -28,26 +28,11 @@ export type UnregisterCodexParams = {
|
|
|
28
28
|
alias: string;
|
|
29
29
|
threadId: string;
|
|
30
30
|
};
|
|
31
|
-
export type RemoveCodexRegistrationParams = {
|
|
32
|
-
alias: string;
|
|
33
|
-
};
|
|
34
|
-
export type SelectClaudeParams = {
|
|
35
|
-
alias: string;
|
|
36
|
-
};
|
|
37
|
-
export type PairParams = {
|
|
38
|
-
aliases: readonly [string, string];
|
|
39
|
-
};
|
|
40
31
|
type SendBase = {
|
|
41
32
|
fromAlias: string;
|
|
42
|
-
toAlias: string;
|
|
43
33
|
text: string;
|
|
44
|
-
expectsReply?: boolean;
|
|
45
|
-
trackIdleMinutes?: number;
|
|
46
|
-
};
|
|
47
|
-
type ValidatedSendBase = Omit<SendBase, "expectsReply"> & {
|
|
48
|
-
expectsReply: boolean;
|
|
49
34
|
};
|
|
50
|
-
|
|
35
|
+
type SendAuthority = {
|
|
51
36
|
threadId: string;
|
|
52
37
|
replyAddress?: never;
|
|
53
38
|
peerToken?: never;
|
|
@@ -59,45 +44,38 @@ export type SendParams = SendBase & ({
|
|
|
59
44
|
peerToken: string;
|
|
60
45
|
threadId?: never;
|
|
61
46
|
replyAddress?: never;
|
|
62
|
-
});
|
|
63
|
-
export type ValidatedSendParams = ValidatedSendBase & ({
|
|
64
|
-
threadId: string;
|
|
65
|
-
replyAddress?: never;
|
|
66
|
-
peerToken?: never;
|
|
67
|
-
} | {
|
|
68
|
-
replyAddress: string;
|
|
69
|
-
threadId?: never;
|
|
70
|
-
peerToken?: never;
|
|
71
|
-
} | {
|
|
72
|
-
peerToken: string;
|
|
73
|
-
threadId?: never;
|
|
74
|
-
replyAddress?: never;
|
|
75
|
-
});
|
|
76
|
-
export type GatewayReplyCaller = {
|
|
77
|
-
kind: "codex";
|
|
78
|
-
alias: string;
|
|
79
|
-
threadId: string;
|
|
80
|
-
} | {
|
|
81
|
-
kind: "claude";
|
|
82
|
-
alias: string;
|
|
83
|
-
replyAddress?: string;
|
|
84
|
-
} | {
|
|
85
|
-
kind: "peer";
|
|
86
|
-
alias: string;
|
|
87
|
-
token: string;
|
|
88
47
|
};
|
|
89
|
-
|
|
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 & {
|
|
90
60
|
conversationId: string;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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 & {
|
|
96
69
|
conversationId: string;
|
|
97
|
-
|
|
70
|
+
toAlias?: never;
|
|
71
|
+
expectsReply?: never;
|
|
72
|
+
});
|
|
98
73
|
export type DeliveryStatusParams = {
|
|
99
74
|
token: string;
|
|
100
75
|
};
|
|
76
|
+
export type RetireRouteParams = {
|
|
77
|
+
alias: string;
|
|
78
|
+
};
|
|
101
79
|
export type PeerCatalogParams = {
|
|
102
80
|
peerHost: string;
|
|
103
81
|
};
|
|
@@ -105,10 +83,17 @@ export type PeerHandoffControlParams = {
|
|
|
105
83
|
peerHost: string;
|
|
106
84
|
handoff: PeerHandoffParams;
|
|
107
85
|
};
|
|
86
|
+
export type PeerHandoffControlResult = PeerHandoffResult | PeerHandoffRefusal;
|
|
108
87
|
export type RegisterPeerParams = {
|
|
109
88
|
alias: string;
|
|
110
89
|
token?: string;
|
|
90
|
+
ephemeral?: true;
|
|
91
|
+
ttlMs?: number;
|
|
111
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;
|
|
112
97
|
export type PeerPrincipalParams = {
|
|
113
98
|
alias: string;
|
|
114
99
|
token: string;
|
|
@@ -120,24 +105,18 @@ type RequestParams = {
|
|
|
120
105
|
health: Record<string, never>;
|
|
121
106
|
register_codex: RegisterCodexParams;
|
|
122
107
|
unregister_codex: UnregisterCodexParams;
|
|
123
|
-
remove_codex_registration: RemoveCodexRegistrationParams;
|
|
124
|
-
select_claude: SelectClaudeParams;
|
|
125
|
-
unselect_claude: SelectClaudeParams;
|
|
126
|
-
pair: PairParams;
|
|
127
|
-
unpair: PairParams;
|
|
128
108
|
list_snapshot: Record<string, never>;
|
|
129
109
|
observe_snapshot: Record<string, never>;
|
|
130
110
|
delivery_status: DeliveryStatusParams;
|
|
131
|
-
untrack: UntrackParams;
|
|
132
111
|
send: SendParams;
|
|
133
|
-
|
|
134
|
-
refresh_dashboard: Record<string, never>;
|
|
112
|
+
refresh_discovery: Record<string, never>;
|
|
135
113
|
peer_catalog: PeerCatalogParams;
|
|
136
114
|
peer_handoff: PeerHandoffControlParams;
|
|
137
115
|
register_peer: RegisterPeerParams;
|
|
138
116
|
unregister_peer: PeerPrincipalParams;
|
|
139
117
|
await_peer: PeerPrincipalParams;
|
|
140
118
|
peer_receipt: PeerReceiptParams;
|
|
119
|
+
retire_route: RetireRouteParams;
|
|
141
120
|
};
|
|
142
121
|
export type GatewayControlRequest = {
|
|
143
122
|
[M in GatewayControlMethod]: {
|
|
@@ -146,15 +125,22 @@ export type GatewayControlRequest = {
|
|
|
146
125
|
params: RequestParams[M];
|
|
147
126
|
};
|
|
148
127
|
}[GatewayControlMethod];
|
|
149
|
-
export type GatewayDecisionCode = "ok" | "not_found" | "conflict" | "
|
|
128
|
+
export type GatewayDecisionCode = "ok" | "not_found" | "conflict" | "route_mismatch" | "busy" | "unavailable" | "rejected";
|
|
150
129
|
export type GatewayDecision = {
|
|
151
130
|
accepted: true;
|
|
152
131
|
code: "ok";
|
|
153
132
|
} | {
|
|
154
133
|
accepted: false;
|
|
155
134
|
code: Exclude<GatewayDecisionCode, "ok">;
|
|
156
|
-
ownerHost?: string;
|
|
157
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
|
+
*/
|
|
158
144
|
export type GatewaySendResult = {
|
|
159
145
|
accepted: true;
|
|
160
146
|
code: "ok";
|
|
@@ -163,6 +149,7 @@ export type GatewaySendResult = {
|
|
|
163
149
|
} | {
|
|
164
150
|
accepted: false;
|
|
165
151
|
code: Exclude<GatewayDecisionCode, "ok">;
|
|
152
|
+
reason?: string;
|
|
166
153
|
};
|
|
167
154
|
export type GatewayHealthResult = {
|
|
168
155
|
status: "ok" | "degraded";
|
|
@@ -193,52 +180,51 @@ export type GatewayRegisterPeerResult = GatewayDecision | {
|
|
|
193
180
|
code: "ok";
|
|
194
181
|
token: string;
|
|
195
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
|
+
};
|
|
196
194
|
type ResultByMethod = {
|
|
197
195
|
health: GatewayHealthResult;
|
|
198
196
|
register_codex: GatewayDecision;
|
|
199
197
|
unregister_codex: GatewayDecision;
|
|
200
|
-
remove_codex_registration: GatewayDecision;
|
|
201
|
-
select_claude: GatewayDecision;
|
|
202
|
-
unselect_claude: GatewayDecision;
|
|
203
|
-
pair: GatewayDecision;
|
|
204
|
-
unpair: GatewayDecision;
|
|
205
198
|
list_snapshot: GatewaySnapshot;
|
|
206
199
|
observe_snapshot: GatewaySnapshotObservation;
|
|
207
200
|
delivery_status: GatewayDeliveryStatusResult;
|
|
208
|
-
untrack: GatewayDecision;
|
|
209
201
|
send: GatewaySendResult;
|
|
210
|
-
|
|
211
|
-
refresh_dashboard: GatewayRefreshResult;
|
|
202
|
+
refresh_discovery: GatewayRefreshResult;
|
|
212
203
|
peer_catalog: PeerCatalogResult;
|
|
213
|
-
peer_handoff:
|
|
204
|
+
peer_handoff: PeerHandoffControlResult;
|
|
214
205
|
register_peer: GatewayRegisterPeerResult;
|
|
215
206
|
unregister_peer: GatewayDecision;
|
|
216
207
|
await_peer: PeerMailboxAwaitResult;
|
|
217
208
|
peer_receipt: GatewayDecision;
|
|
209
|
+
retire_route: GatewayRetireRouteResult;
|
|
218
210
|
};
|
|
219
211
|
type MaybePromise<T> = T | Promise<T>;
|
|
220
212
|
export type GatewayControlHandlers = {
|
|
221
213
|
health: () => MaybePromise<GatewayHealthResult>;
|
|
222
214
|
registerCodex: (params: Readonly<ValidatedRegisterCodexParams>) => MaybePromise<GatewayDecision>;
|
|
223
215
|
unregisterCodex: (params: Readonly<UnregisterCodexParams>) => MaybePromise<GatewayDecision>;
|
|
224
|
-
removeCodexRegistration: (params: Readonly<RemoveCodexRegistrationParams>) => MaybePromise<GatewayDecision>;
|
|
225
|
-
selectClaude: (params: Readonly<SelectClaudeParams>) => MaybePromise<GatewayDecision>;
|
|
226
|
-
unselectClaude: (params: Readonly<SelectClaudeParams>) => MaybePromise<GatewayDecision>;
|
|
227
|
-
pair: (params: Readonly<PairParams>) => MaybePromise<GatewayDecision>;
|
|
228
|
-
unpair: (params: Readonly<PairParams>) => MaybePromise<GatewayDecision>;
|
|
229
216
|
listSnapshot: () => MaybePromise<GatewaySnapshot>;
|
|
230
217
|
observeSnapshot: () => MaybePromise<GatewaySnapshotObservation>;
|
|
231
218
|
deliveryStatus: (params: Readonly<DeliveryStatusParams>) => MaybePromise<GatewayDeliveryStatusResult>;
|
|
232
|
-
untrack: (params: Readonly<UntrackParams>) => MaybePromise<GatewayDecision>;
|
|
233
219
|
send: (params: Readonly<ValidatedSendParams>) => MaybePromise<GatewaySendResult>;
|
|
234
|
-
|
|
235
|
-
refreshDashboard: () => MaybePromise<GatewayRefreshResult>;
|
|
220
|
+
refreshDiscovery: () => MaybePromise<GatewayRefreshResult>;
|
|
236
221
|
peerCatalog?: (params: Readonly<PeerCatalogParams>) => MaybePromise<PeerCatalogResult>;
|
|
237
|
-
peerHandoff?: (params: Readonly<PeerHandoffControlParams>) => MaybePromise<
|
|
222
|
+
peerHandoff?: (params: Readonly<PeerHandoffControlParams>) => MaybePromise<PeerHandoffControlResult>;
|
|
238
223
|
registerPeer: (params: Readonly<RegisterPeerParams>) => MaybePromise<GatewayRegisterPeerResult>;
|
|
239
224
|
unregisterPeer: (params: Readonly<PeerPrincipalParams>) => MaybePromise<GatewayDecision>;
|
|
240
225
|
awaitPeer: (params: Readonly<PeerPrincipalParams>) => MaybePromise<PeerMailboxAwaitResult>;
|
|
241
226
|
peerReceipt: (params: Readonly<PeerReceiptParams>) => MaybePromise<GatewayDecision>;
|
|
227
|
+
retireRoute: (params: Readonly<RetireRouteParams>) => MaybePromise<GatewayRetireRouteResult>;
|
|
242
228
|
};
|
|
243
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";
|
|
244
230
|
export type GatewayControlErrorResponse = {
|