agent-embassy 2.0.1 → 3.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 (144) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/CONTRIBUTING.md +19 -34
  3. package/README.md +110 -228
  4. package/SECURITY.md +55 -89
  5. package/dist/src/errors.d.ts +10 -1
  6. package/dist/src/errors.js +3 -1
  7. package/dist/src/errors.js.map +1 -1
  8. package/dist/src/gateway/claude-helper-protocol.d.ts +8 -11
  9. package/dist/src/gateway/claude-helper-protocol.js +12 -11
  10. package/dist/src/gateway/claude-helper-protocol.js.map +1 -1
  11. package/dist/src/gateway/claude-helper-supervisor.d.ts +1 -5
  12. package/dist/src/gateway/claude-helper-supervisor.js +10 -9
  13. package/dist/src/gateway/claude-helper-supervisor.js.map +1 -1
  14. package/dist/src/gateway/claude-helper.js +6 -6
  15. package/dist/src/gateway/claude-helper.js.map +1 -1
  16. package/dist/src/gateway/claude-peer.d.ts +0 -3
  17. package/dist/src/gateway/claude-peer.js +6 -18
  18. package/dist/src/gateway/claude-peer.js.map +1 -1
  19. package/dist/src/gateway/cli.d.ts +17 -6
  20. package/dist/src/gateway/cli.js +912 -261
  21. package/dist/src/gateway/cli.js.map +1 -1
  22. package/dist/src/gateway/codex-socket-holder.d.ts +26 -0
  23. package/dist/src/gateway/codex-socket-holder.js +76 -0
  24. package/dist/src/gateway/codex-socket-holder.js.map +1 -0
  25. package/dist/src/gateway/codex-stateless-transport.js +1 -1
  26. package/dist/src/gateway/codex-stateless-transport.js.map +1 -1
  27. package/dist/src/gateway/config.d.ts +1 -10
  28. package/dist/src/gateway/config.js +4 -10
  29. package/dist/src/gateway/config.js.map +1 -1
  30. package/dist/src/gateway/control.d.ts +45 -77
  31. package/dist/src/gateway/control.js +56 -141
  32. package/dist/src/gateway/control.js.map +1 -1
  33. package/dist/src/gateway/federation-nodes.d.ts +29 -2
  34. package/dist/src/gateway/federation-nodes.js +177 -7
  35. package/dist/src/gateway/federation-nodes.js.map +1 -1
  36. package/dist/src/gateway/peer-client.d.ts +4 -3
  37. package/dist/src/gateway/peer-client.js +22 -13
  38. package/dist/src/gateway/peer-client.js.map +1 -1
  39. package/dist/src/gateway/peer-protocol.d.ts +8 -11
  40. package/dist/src/gateway/peer-protocol.js +5 -12
  41. package/dist/src/gateway/peer-protocol.js.map +1 -1
  42. package/dist/src/gateway/provenance-envelope.d.ts +0 -1
  43. package/dist/src/gateway/provenance-envelope.js +4 -19
  44. package/dist/src/gateway/provenance-envelope.js.map +1 -1
  45. package/dist/src/gateway/providers.d.ts +7 -4
  46. package/dist/src/gateway/providers.js +16 -20
  47. package/dist/src/gateway/providers.js.map +1 -1
  48. package/dist/src/gateway/server.d.ts +3 -12
  49. package/dist/src/gateway/server.js +31 -50
  50. package/dist/src/gateway/server.js.map +1 -1
  51. package/dist/src/gateway/service-agent.d.ts +187 -0
  52. package/dist/src/gateway/service-agent.js +758 -0
  53. package/dist/src/gateway/service-agent.js.map +1 -0
  54. package/dist/src/gateway/service.d.ts +114 -31
  55. package/dist/src/gateway/service.js +461 -566
  56. package/dist/src/gateway/service.js.map +1 -1
  57. package/dist/src/gateway/status-view.d.ts +167 -0
  58. package/dist/src/gateway/status-view.js +488 -0
  59. package/dist/src/gateway/status-view.js.map +1 -0
  60. package/dist/src/gateway/store.d.ts +103 -21
  61. package/dist/src/gateway/store.js +454 -529
  62. package/dist/src/gateway/store.js.map +1 -1
  63. package/dist/src/gateway/types.d.ts +48 -99
  64. package/dist/src/gateway/types.js +15 -52
  65. package/dist/src/gateway/types.js.map +1 -1
  66. package/docs/CONFIGURATION.md +173 -44
  67. package/docs/DELIVERY.md +11 -11
  68. package/docs/GATEWAY-ARCHITECTURE.md +277 -375
  69. package/package.json +4 -12
  70. package/skills/embassy-peer/SKILL.md +65 -90
  71. package/skills/embassy-peer/agents/openai.yaml +1 -1
  72. package/README.zh-CN.md +0 -275
  73. package/assets/live-dashboard/app.css +0 -1619
  74. package/assets/vendor/react/LICENSE +0 -21
  75. package/assets/vendor/react/react-dom.production.min.js +0 -267
  76. package/assets/vendor/react/react.production.min.js +0 -31
  77. package/dist/src/gateway/acp-client.d.ts +0 -110
  78. package/dist/src/gateway/acp-client.js +0 -407
  79. package/dist/src/gateway/acp-client.js.map +0 -1
  80. package/dist/src/gateway/acp-provider.d.ts +0 -66
  81. package/dist/src/gateway/acp-provider.js +0 -275
  82. package/dist/src/gateway/acp-provider.js.map +0 -1
  83. package/dist/src/gateway/cli-copy.d.ts +0 -8
  84. package/dist/src/gateway/cli-copy.en.d.ts +0 -22
  85. package/dist/src/gateway/cli-copy.en.js +0 -62
  86. package/dist/src/gateway/cli-copy.en.js.map +0 -1
  87. package/dist/src/gateway/cli-copy.js +0 -27
  88. package/dist/src/gateway/cli-copy.js.map +0 -1
  89. package/dist/src/gateway/cli-copy.zh-CN.d.ts +0 -22
  90. package/dist/src/gateway/cli-copy.zh-CN.js +0 -62
  91. package/dist/src/gateway/cli-copy.zh-CN.js.map +0 -1
  92. package/dist/src/gateway/codex-doctor.d.ts +0 -36
  93. package/dist/src/gateway/codex-doctor.js +0 -127
  94. package/dist/src/gateway/codex-doctor.js.map +0 -1
  95. package/dist/src/gateway/dashboard-copy.d.ts +0 -7
  96. package/dist/src/gateway/dashboard-copy.en.d.ts +0 -504
  97. package/dist/src/gateway/dashboard-copy.en.js +0 -505
  98. package/dist/src/gateway/dashboard-copy.en.js.map +0 -1
  99. package/dist/src/gateway/dashboard-copy.js +0 -514
  100. package/dist/src/gateway/dashboard-copy.js.map +0 -1
  101. package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +0 -504
  102. package/dist/src/gateway/dashboard-copy.zh-CN.js +0 -505
  103. package/dist/src/gateway/dashboard-copy.zh-CN.js.map +0 -1
  104. package/dist/src/gateway/dashboard-model.d.ts +0 -343
  105. package/dist/src/gateway/dashboard-model.js +0 -1061
  106. package/dist/src/gateway/dashboard-model.js.map +0 -1
  107. package/dist/src/gateway/dashboard.d.ts +0 -20
  108. package/dist/src/gateway/dashboard.js +0 -874
  109. package/dist/src/gateway/dashboard.js.map +0 -1
  110. package/dist/src/gateway/deepseek-detect.d.ts +0 -14
  111. package/dist/src/gateway/deepseek-detect.js +0 -41
  112. package/dist/src/gateway/deepseek-detect.js.map +0 -1
  113. package/dist/src/gateway/live-dashboard-app/app.js +0 -2385
  114. package/dist/src/gateway/live-dashboard-assets.d.ts +0 -10
  115. package/dist/src/gateway/live-dashboard-assets.js +0 -74
  116. package/dist/src/gateway/live-dashboard-assets.js.map +0 -1
  117. package/dist/src/gateway/live-dashboard-command.d.ts +0 -60
  118. package/dist/src/gateway/live-dashboard-command.js +0 -334
  119. package/dist/src/gateway/live-dashboard-command.js.map +0 -1
  120. package/dist/src/gateway/live-dashboard-http.d.ts +0 -39
  121. package/dist/src/gateway/live-dashboard-http.js +0 -383
  122. package/dist/src/gateway/live-dashboard-http.js.map +0 -1
  123. package/dist/src/gateway/live-dashboard-protocol.d.ts +0 -34
  124. package/dist/src/gateway/live-dashboard-protocol.js +0 -114
  125. package/dist/src/gateway/live-dashboard-protocol.js.map +0 -1
  126. package/dist/src/gateway/live-dashboard-server.d.ts +0 -33
  127. package/dist/src/gateway/live-dashboard-server.js +0 -144
  128. package/dist/src/gateway/live-dashboard-server.js.map +0 -1
  129. package/dist/src/gateway/live-dashboard-stream.d.ts +0 -46
  130. package/dist/src/gateway/live-dashboard-stream.js +0 -234
  131. package/dist/src/gateway/live-dashboard-stream.js.map +0 -1
  132. package/dist/src/gateway/live-dashboard.d.ts +0 -28
  133. package/dist/src/gateway/live-dashboard.js +0 -154
  134. package/dist/src/gateway/live-dashboard.js.map +0 -1
  135. package/dist/src/gateway/locale.d.ts +0 -4
  136. package/dist/src/gateway/locale.js +0 -10
  137. package/dist/src/gateway/locale.js.map +0 -1
  138. package/dist/src/gateway/progress-watch-machine.d.ts +0 -45
  139. package/dist/src/gateway/progress-watch-machine.js +0 -70
  140. package/dist/src/gateway/progress-watch-machine.js.map +0 -1
  141. package/docs/CONFIGURATION.zh-CN.md +0 -97
  142. package/docs/DASHBOARD.md +0 -98
  143. package/docs/DASHBOARD.zh-CN.md +0 -49
  144. package/docs/DELIVERY.zh-CN.md +0 -55
@@ -1,383 +0,0 @@
1
- import { isGatewayAlias } from "./control.js";
2
- import { assertDashboardLocale, getDashboardCopy, } from "./dashboard-copy.js";
3
- import { LIVE_DASHBOARD_LIMITS, liveDashboardSecurityHeaders, validateLiveDashboardRequest, } from "./live-dashboard-protocol.js";
4
- const SHELL_CONTENT_SECURITY_POLICY = "default-src 'none'; script-src 'self'; style-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'";
5
- function assertOptions(options) {
6
- assertDashboardLocale(options.lang);
7
- const hostMatch = /^127\.0\.0\.1:([1-9][0-9]{0,4})$/u.exec(options.expectedHost);
8
- const port = Number(hostMatch?.[1]);
9
- if (hostMatch === null ||
10
- !Number.isInteger(port) ||
11
- port > 65_535 ||
12
- options.expectedOrigin !== `http://${options.expectedHost}`) {
13
- throw new Error("LIVE_DASHBOARD_ORIGIN_INVALID");
14
- }
15
- }
16
- function routeFor(target) {
17
- switch (target) {
18
- case "/":
19
- return { kind: "navigation", name: "shell" };
20
- case "/client.js":
21
- return { kind: "navigation", name: "client" };
22
- case "/app.css":
23
- return { kind: "navigation", name: "style" };
24
- case "/react.js":
25
- return { kind: "navigation", name: "vendorReact" };
26
- case "/react-dom.js":
27
- return { kind: "navigation", name: "vendorReactDom" };
28
- case "/app.js":
29
- return { kind: "navigation", name: "app" };
30
- case "/snapshot":
31
- return { kind: "api", name: "snapshot" };
32
- case "/stream":
33
- return { kind: "api", name: "stream" };
34
- case "/action":
35
- return { kind: "api", name: "action" };
36
- default:
37
- return undefined;
38
- }
39
- }
40
- function statusBody(copy, statusCode) {
41
- switch (statusCode) {
42
- case 400:
43
- return `${copy["live.http.badRequest"]}\n`;
44
- case 403:
45
- return `${copy["live.http.forbidden"]}\n`;
46
- case 404:
47
- return `${copy["live.http.notFound"]}\n`;
48
- case 405:
49
- return `${copy["live.http.methodNotAllowed"]}\n`;
50
- case 413:
51
- return `${copy["live.http.bodyTooLarge"]}\n`;
52
- case 414:
53
- return `${copy["live.http.targetTooLarge"]}\n`;
54
- case 415:
55
- return `${copy["live.http.unsupportedMediaType"]}\n`;
56
- case 429:
57
- return `${copy["live.http.tooManyStreams"]}\n`;
58
- case 431:
59
- return `${copy["live.http.headersTooLarge"]}\n`;
60
- case 503:
61
- return `${copy["live.http.snapshotUnavailable"]}\n`;
62
- default:
63
- return `${copy["live.http.requestFailed"]}\n`;
64
- }
65
- }
66
- function respond(response, copy, statusCode, body = statusBody(copy, statusCode), contentType = "text/plain; charset=utf-8", additionalHeaders = {}, contentSecurityPolicy) {
67
- const encoded = Buffer.from(body, "utf8");
68
- response.writeHead(statusCode, {
69
- ...liveDashboardSecurityHeaders(contentSecurityPolicy),
70
- "Content-Type": contentType,
71
- "Content-Length": String(encoded.length),
72
- ...additionalHeaders,
73
- });
74
- response.end(encoded);
75
- }
76
- function parseContentLength(value) {
77
- if (value === undefined)
78
- return undefined;
79
- if (!/^(?:0|[1-9][0-9]*)$/u.test(value))
80
- return Number.NaN;
81
- const parsed = Number(value);
82
- return Number.isSafeInteger(parsed) ? parsed : Number.NaN;
83
- }
84
- function readBoundedBody(request, declaredLength, maximumBytes) {
85
- return new Promise((resolve) => {
86
- const chunks = [];
87
- let received = 0;
88
- let tooLarge = false;
89
- let settled = false;
90
- const cleanup = () => {
91
- request.off("data", onData);
92
- request.off("end", onEnd);
93
- request.off("error", onFailure);
94
- request.off("aborted", onFailure);
95
- };
96
- const finish = (result) => {
97
- if (settled)
98
- return;
99
- settled = true;
100
- cleanup();
101
- resolve(result);
102
- };
103
- const onData = (chunk) => {
104
- let bytes;
105
- if (typeof chunk === "string") {
106
- bytes = Buffer.from(chunk, "utf8");
107
- }
108
- else if (Buffer.isBuffer(chunk) || chunk instanceof Uint8Array) {
109
- bytes = Buffer.from(chunk);
110
- }
111
- else {
112
- tooLarge = true;
113
- return;
114
- }
115
- received += bytes.length;
116
- if (received > maximumBytes) {
117
- tooLarge = true;
118
- return;
119
- }
120
- if (!tooLarge)
121
- chunks.push(bytes);
122
- };
123
- const onEnd = () => {
124
- if (tooLarge) {
125
- finish({ ok: false, statusCode: 413 });
126
- return;
127
- }
128
- if (received !== declaredLength) {
129
- finish({ ok: false, statusCode: 400 });
130
- return;
131
- }
132
- finish({ ok: true, body: Buffer.concat(chunks).toString("utf8") });
133
- };
134
- const onFailure = () => finish({ ok: false, statusCode: 400 });
135
- request.on("data", onData);
136
- request.once("end", onEnd);
137
- request.once("error", onFailure);
138
- request.once("aborted", onFailure);
139
- });
140
- }
141
- function validateEmptyPostBody(validation) {
142
- const contentLength = parseContentLength(validation.headers.get("content-length"));
143
- if ((contentLength !== undefined && !Number.isFinite(contentLength)) ||
144
- (contentLength !== undefined && contentLength !== 0)) {
145
- return 400;
146
- }
147
- return undefined;
148
- }
149
- function parseAction(body) {
150
- let value;
151
- try {
152
- value = JSON.parse(body);
153
- }
154
- catch {
155
- return undefined;
156
- }
157
- if (typeof value !== "object" || value === null || Array.isArray(value)) {
158
- return undefined;
159
- }
160
- const record = value;
161
- const keys = Object.keys(record);
162
- if (record.action === "refresh_dashboard" &&
163
- keys.length === 1 &&
164
- keys[0] === "action") {
165
- return { action: "refresh_dashboard" };
166
- }
167
- if (record.action === "remove_codex_registration" &&
168
- keys.length === 2 &&
169
- keys.includes("action") &&
170
- keys.includes("alias") &&
171
- typeof record.alias === "string" &&
172
- record.alias.length <= 128 &&
173
- isGatewayAlias(record.alias) &&
174
- record.alias.startsWith("codex-")) {
175
- return {
176
- action: "remove_codex_registration",
177
- alias: record.alias,
178
- };
179
- }
180
- if ((record.action === "pair" || record.action === "unpair") &&
181
- keys.length === 2 &&
182
- keys.includes("action") &&
183
- keys.includes("aliases") &&
184
- Array.isArray(record.aliases) &&
185
- record.aliases.length === 2 &&
186
- typeof record.aliases[0] === "string" &&
187
- typeof record.aliases[1] === "string" &&
188
- record.aliases[0].length <= 128 &&
189
- record.aliases[1].length <= 128 &&
190
- isGatewayAlias(record.aliases[0]) &&
191
- isGatewayAlias(record.aliases[1]) &&
192
- record.aliases[0] !== record.aliases[1] &&
193
- record.aliases[0].slice(record.aliases[0].lastIndexOf("@") + 1) ===
194
- record.aliases[1].slice(record.aliases[1].lastIndexOf("@") + 1)) {
195
- return {
196
- action: record.action,
197
- aliases: [record.aliases[0], record.aliases[1]],
198
- };
199
- }
200
- return undefined;
201
- }
202
- function isActionResult(value) {
203
- if (typeof value !== "object" || value === null || Array.isArray(value)) {
204
- return false;
205
- }
206
- const record = value;
207
- const validShape = Object.keys(record).length === 2 &&
208
- typeof record.ok === "boolean" &&
209
- typeof record.code === "string" &&
210
- /^(?:ok|not_found|conflict|watch_owner_conflict|route_mismatch|busy|unavailable|rejected)$/u.test(record.code);
211
- return (validShape &&
212
- ((record.ok === true && record.code === "ok") ||
213
- (record.ok === false && record.code !== "ok")));
214
- }
215
- function actionResponse(response, copy, statusCode, result, additionalHeaders = {}) {
216
- respond(response, copy, statusCode, JSON.stringify(result), "application/json; charset=utf-8", additionalHeaders);
217
- }
218
- function streamWriter(response) {
219
- return {
220
- write: (chunk) => response.write(chunk),
221
- onDrain: (callback) => {
222
- response.on("drain", callback);
223
- },
224
- onClose: (callback) => {
225
- response.once("close", callback);
226
- response.once("error", callback);
227
- },
228
- end: () => {
229
- response.end();
230
- },
231
- };
232
- }
233
- export function createLiveDashboardRequestHandler(options) {
234
- assertOptions(options);
235
- const { actions, assets, expectedHost, expectedOrigin, hub, lang, } = options;
236
- const now = options.now ?? Date.now;
237
- const copy = getDashboardCopy(lang);
238
- let actionTokens = LIVE_DASHBOARD_LIMITS.maximumActionsPerMinute;
239
- let actionRefilledAt = now();
240
- const consumeActionToken = () => {
241
- const observedAt = now();
242
- const elapsed = Math.max(0, observedAt - actionRefilledAt);
243
- actionRefilledAt = Math.max(actionRefilledAt, observedAt);
244
- actionTokens = Math.min(LIVE_DASHBOARD_LIMITS.maximumActionsPerMinute, actionTokens +
245
- (elapsed * LIVE_DASHBOARD_LIMITS.maximumActionsPerMinute) / 60_000);
246
- if (actionTokens >= 1) {
247
- actionTokens -= 1;
248
- return undefined;
249
- }
250
- return Math.max(1, Math.ceil(((1 - actionTokens) * 60) /
251
- LIVE_DASHBOARD_LIMITS.maximumActionsPerMinute));
252
- };
253
- return async (request, response) => {
254
- try {
255
- const route = routeFor(request.url);
256
- const validation = validateLiveDashboardRequest({
257
- method: request.method,
258
- target: request.url,
259
- rawHeaders: request.rawHeaders,
260
- }, {
261
- expectedHost,
262
- expectedOrigin,
263
- kind: route?.kind ??
264
- (request.method === "GET" ? "navigation" : "api"),
265
- });
266
- if (!validation.ok) {
267
- respond(response, copy, validation.statusCode);
268
- return;
269
- }
270
- if (route === undefined) {
271
- respond(response, copy, 404);
272
- return;
273
- }
274
- switch (route.name) {
275
- case "shell":
276
- respond(response, copy, 200, assets.shellHtml, "text/html; charset=utf-8", {}, SHELL_CONTENT_SECURITY_POLICY);
277
- return;
278
- case "client":
279
- respond(response, copy, 200, assets.clientJavaScript, "text/javascript; charset=utf-8");
280
- return;
281
- case "style":
282
- respond(response, copy, 200, assets.styleSheet, "text/css; charset=utf-8");
283
- return;
284
- case "vendorReact":
285
- respond(response, copy, 200, assets.vendorReactJavaScript, "text/javascript; charset=utf-8");
286
- return;
287
- case "vendorReactDom":
288
- respond(response, copy, 200, assets.vendorReactDomJavaScript, "text/javascript; charset=utf-8");
289
- return;
290
- case "app":
291
- respond(response, copy, 200, assets.appJavaScript, "text/javascript; charset=utf-8");
292
- return;
293
- case "snapshot": {
294
- const bodyError = validateEmptyPostBody(validation);
295
- if (bodyError !== undefined) {
296
- respond(response, copy, bodyError);
297
- return;
298
- }
299
- const refreshed = await hub.refresh();
300
- if (refreshed === undefined) {
301
- respond(response, copy, 503);
302
- return;
303
- }
304
- respond(response, copy, 200, JSON.stringify(refreshed), "application/json; charset=utf-8");
305
- return;
306
- }
307
- case "stream": {
308
- const bodyError = validateEmptyPostBody(validation);
309
- if (bodyError !== undefined) {
310
- respond(response, copy, bodyError);
311
- return;
312
- }
313
- if (hub.streamCount() >= LIVE_DASHBOARD_LIMITS.maximumStreams) {
314
- respond(response, copy, 429);
315
- return;
316
- }
317
- response.writeHead(200, {
318
- ...liveDashboardSecurityHeaders(),
319
- "Content-Type": "text/event-stream; charset=utf-8",
320
- Connection: "keep-alive",
321
- });
322
- const added = hub.add(streamWriter(response));
323
- if (!added.ok)
324
- response.end();
325
- return;
326
- }
327
- case "action": {
328
- if (validation.headers.get("content-type") !== "application/json") {
329
- respond(response, copy, 415);
330
- return;
331
- }
332
- const contentLength = parseContentLength(validation.headers.get("content-length"));
333
- if (contentLength === undefined ||
334
- !Number.isFinite(contentLength) ||
335
- contentLength < 1) {
336
- respond(response, copy, 400);
337
- return;
338
- }
339
- if (contentLength > LIVE_DASHBOARD_LIMITS.maximumActionBodyBytes) {
340
- respond(response, copy, 413);
341
- return;
342
- }
343
- const body = await readBoundedBody(request, contentLength, LIVE_DASHBOARD_LIMITS.maximumActionBodyBytes);
344
- if (!body.ok) {
345
- respond(response, copy, body.statusCode);
346
- return;
347
- }
348
- const action = parseAction(body.body);
349
- if (action === undefined) {
350
- respond(response, copy, 400);
351
- return;
352
- }
353
- const retryAfter = consumeActionToken();
354
- if (retryAfter !== undefined) {
355
- actionResponse(response, copy, 429, { ok: false, code: "rate_limited" }, { "Retry-After": String(retryAfter) });
356
- return;
357
- }
358
- let result;
359
- try {
360
- const executed = await actions.execute(action);
361
- result = isActionResult(executed)
362
- ? executed
363
- : { ok: false, code: "unavailable" };
364
- }
365
- catch {
366
- result = { ok: false, code: "unavailable" };
367
- }
368
- actionResponse(response, copy, result.code === "unavailable" ? 503 : 200, result);
369
- return;
370
- }
371
- }
372
- }
373
- catch {
374
- if (!response.headersSent) {
375
- respond(response, copy, 500);
376
- }
377
- else if (!response.writableEnded) {
378
- response.end();
379
- }
380
- }
381
- };
382
- }
383
- //# sourceMappingURL=live-dashboard-http.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-dashboard-http.js","sourceRoot":"","sources":["../../../src/gateway/live-dashboard-http.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- export declare const LIVE_DASHBOARD_LIMITS: Readonly<{
2
- readonly maximumHeaderBytes: number;
3
- readonly maximumRequestTargetBytes: number;
4
- readonly maximumConnections: 16;
5
- readonly maximumStreams: 4;
6
- readonly maximumActionBodyBytes: 1024;
7
- readonly maximumActionsPerMinute: 6;
8
- readonly pollIntervalMs: 1000;
9
- readonly backpressureTimeoutMs: 5000;
10
- readonly heartbeatIntervalMs: 15000;
11
- readonly headersTimeoutMs: 5000;
12
- readonly requestTimeoutMs: 10000;
13
- readonly keepAliveTimeoutMs: 5000;
14
- }>;
15
- export type LiveDashboardRequestKind = "navigation" | "api";
16
- export type LiveDashboardRequestMetadata = Readonly<{
17
- method: string | undefined;
18
- target: string | undefined;
19
- rawHeaders: readonly string[];
20
- }>;
21
- export type LiveDashboardRequestValidation = Readonly<{
22
- ok: true;
23
- headers: ReadonlyMap<string, string>;
24
- }> | Readonly<{
25
- ok: false;
26
- statusCode: 400 | 403 | 405 | 414 | 431;
27
- safeCode: "BAD_REQUEST" | "CROSS_ORIGIN_REQUEST" | "HEADER_TOO_LARGE" | "METHOD_NOT_ALLOWED" | "TARGET_TOO_LARGE";
28
- }>;
29
- export declare function validateLiveDashboardRequest(request: LiveDashboardRequestMetadata, options: Readonly<{
30
- expectedHost: string;
31
- expectedOrigin: string;
32
- kind: LiveDashboardRequestKind;
33
- }>): LiveDashboardRequestValidation;
34
- export declare function liveDashboardSecurityHeaders(contentSecurityPolicy?: string): Readonly<Record<string, string>>;
@@ -1,114 +0,0 @@
1
- export const LIVE_DASHBOARD_LIMITS = Object.freeze({
2
- maximumHeaderBytes: 8 * 1024,
3
- maximumRequestTargetBytes: 2 * 1024,
4
- maximumConnections: 16,
5
- maximumStreams: 4,
6
- maximumActionBodyBytes: 1_024,
7
- maximumActionsPerMinute: 6,
8
- pollIntervalMs: 1_000,
9
- backpressureTimeoutMs: 5_000,
10
- heartbeatIntervalMs: 15_000,
11
- headersTimeoutMs: 5_000,
12
- requestTimeoutMs: 10_000,
13
- keepAliveTimeoutMs: 5_000,
14
- });
15
- const SENSITIVE_SINGLETON_HEADERS = new Set([
16
- "host",
17
- "origin",
18
- "cookie",
19
- "x-embassy-request",
20
- "content-length",
21
- "content-type",
22
- "transfer-encoding",
23
- ]);
24
- const HEADER_NAME_PATTERN = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
25
- function rejected(statusCode, safeCode) {
26
- return { ok: false, statusCode, safeCode };
27
- }
28
- function requestHeaderBytes(rawHeaders) {
29
- let bytes = 2;
30
- for (let index = 0; index < rawHeaders.length; index += 2) {
31
- bytes += Buffer.byteLength(rawHeaders[index] ?? "", "utf8");
32
- bytes += 2;
33
- bytes += Buffer.byteLength(rawHeaders[index + 1] ?? "", "utf8");
34
- bytes += 2;
35
- }
36
- return bytes;
37
- }
38
- function isForwardingHeader(name) {
39
- return name === "forwarded" || name.startsWith("x-forwarded-");
40
- }
41
- export function validateLiveDashboardRequest(request, options) {
42
- if (request.rawHeaders.length % 2 !== 0 ||
43
- requestHeaderBytes(request.rawHeaders) >
44
- LIVE_DASHBOARD_LIMITS.maximumHeaderBytes) {
45
- return rejected(431, "HEADER_TOO_LARGE");
46
- }
47
- const target = request.target;
48
- if (target === undefined ||
49
- Buffer.byteLength(target, "utf8") >
50
- LIVE_DASHBOARD_LIMITS.maximumRequestTargetBytes) {
51
- return rejected(414, "TARGET_TOO_LARGE");
52
- }
53
- if (!target.startsWith("/") ||
54
- target.startsWith("//") ||
55
- target.includes("#") ||
56
- /[\u0000-\u0020\u007f]/u.test(target)) {
57
- return rejected(400, "BAD_REQUEST");
58
- }
59
- if (request.method === "OPTIONS") {
60
- return rejected(405, "METHOD_NOT_ALLOWED");
61
- }
62
- const requiredMethod = options.kind === "navigation" ? "GET" : "POST";
63
- if (request.method !== requiredMethod) {
64
- return rejected(405, "METHOD_NOT_ALLOWED");
65
- }
66
- const headers = new Map();
67
- const counts = new Map();
68
- for (let index = 0; index < request.rawHeaders.length; index += 2) {
69
- const rawName = request.rawHeaders[index] ?? "";
70
- const value = request.rawHeaders[index + 1] ?? "";
71
- if (!HEADER_NAME_PATTERN.test(rawName) || /[\r\n\u0000]/u.test(value)) {
72
- return rejected(400, "BAD_REQUEST");
73
- }
74
- const name = rawName.toLowerCase();
75
- if (isForwardingHeader(name) || name === "transfer-encoding") {
76
- return rejected(400, "BAD_REQUEST");
77
- }
78
- const count = (counts.get(name) ?? 0) + 1;
79
- counts.set(name, count);
80
- if (count > 1 && SENSITIVE_SINGLETON_HEADERS.has(name)) {
81
- return rejected(400, "BAD_REQUEST");
82
- }
83
- if (count === 1)
84
- headers.set(name, value);
85
- }
86
- if (headers.get("host") !== options.expectedHost) {
87
- return rejected(403, "CROSS_ORIGIN_REQUEST");
88
- }
89
- const origin = headers.get("origin");
90
- if (options.kind === "navigation") {
91
- if (origin !== undefined && origin !== options.expectedOrigin) {
92
- return rejected(403, "CROSS_ORIGIN_REQUEST");
93
- }
94
- }
95
- else if (origin !== options.expectedOrigin ||
96
- headers.get("x-embassy-request") !== "1") {
97
- return rejected(403, "CROSS_ORIGIN_REQUEST");
98
- }
99
- return { ok: true, headers };
100
- }
101
- export function liveDashboardSecurityHeaders(contentSecurityPolicy = "default-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'") {
102
- return Object.freeze({
103
- "Cache-Control": "no-store",
104
- Pragma: "no-cache",
105
- "Content-Security-Policy": contentSecurityPolicy,
106
- "Cross-Origin-Opener-Policy": "same-origin",
107
- "Cross-Origin-Resource-Policy": "same-origin",
108
- "Permissions-Policy": "accelerometer=(), camera=(), geolocation=(), microphone=(), payment=(), usb=()",
109
- "Referrer-Policy": "no-referrer",
110
- "X-Content-Type-Options": "nosniff",
111
- "X-Frame-Options": "DENY",
112
- });
113
- }
114
- //# sourceMappingURL=live-dashboard-protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-dashboard-protocol.js","sourceRoot":"","sources":["../../../src/gateway/live-dashboard-protocol.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { type IncomingMessage, type ServerResponse } from "node:http";
2
- import type { AddressInfo } from "node:net";
3
- export type LiveDashboardServerAddress = Readonly<{
4
- host: "127.0.0.1";
5
- port: number;
6
- }>;
7
- export type LiveDashboardHttpServer = {
8
- maxConnections: number;
9
- headersTimeout: number;
10
- requestTimeout: number;
11
- keepAliveTimeout: number;
12
- listen(options: Readonly<{
13
- host: "127.0.0.1";
14
- port: number;
15
- exclusive: true;
16
- }>): void;
17
- address(): AddressInfo | string | null;
18
- once(event: "error", callback: (error: Error) => void): void;
19
- once(event: "listening", callback: () => void): void;
20
- off(event: "error", callback: (error: Error) => void): void;
21
- off(event: "listening", callback: () => void): void;
22
- close(callback: (error?: Error) => void): void;
23
- closeAllConnections?(): void;
24
- };
25
- export type LiveDashboardHttpFactory = Readonly<{
26
- createServer(listener: (request: IncomingMessage, response: ServerResponse) => void): LiveDashboardHttpServer;
27
- }>;
28
- export declare const defaultLiveDashboardHttpFactory: LiveDashboardHttpFactory;
29
- export type BoundLiveDashboardServer = Readonly<{
30
- address: LiveDashboardServerAddress;
31
- close(): Promise<void>;
32
- }>;
33
- export declare function bindLiveDashboardServer(server: LiveDashboardHttpServer, port: number, signal?: AbortSignal): Promise<BoundLiveDashboardServer>;