@antseed/cli 0.1.193 → 0.1.194
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/dist/cli/commands/buyer/start.d.ts.map +1 -1
- package/dist/cli/commands/buyer/start.js +9 -4
- package/dist/cli/commands/buyer/start.js.map +1 -1
- package/dist/cli/commands/gateway/index.d.ts.map +1 -1
- package/dist/cli/commands/gateway/index.js +6 -0
- package/dist/cli/commands/gateway/index.js.map +1 -1
- package/dist/cli/commands/seller/start.d.ts.map +1 -1
- package/dist/cli/commands/seller/start.js +9 -0
- package/dist/cli/commands/seller/start.js.map +1 -1
- package/dist/cli/commands/tunnel/start.d.ts.map +1 -1
- package/dist/cli/commands/tunnel/start.js +8 -2
- package/dist/cli/commands/tunnel/start.js.map +1 -1
- package/dist/cli/commands/update.d.ts +19 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +153 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/index.js +11 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +2 -0
- package/dist/cli/program.js.map +1 -1
- package/dist/gateway/buyer-process.d.ts +5 -0
- package/dist/gateway/buyer-process.d.ts.map +1 -1
- package/dist/gateway/buyer-process.js +7 -4
- package/dist/gateway/buyer-process.js.map +1 -1
- package/dist/gateway/buyer-process.test.js +28 -2
- package/dist/gateway/buyer-process.test.js.map +1 -1
- package/dist/gateway/console-api/deps.d.ts +3 -0
- package/dist/gateway/console-api/deps.d.ts.map +1 -1
- package/dist/gateway/console-api/handlers/index.d.ts.map +1 -1
- package/dist/gateway/console-api/handlers/index.js +2 -0
- package/dist/gateway/console-api/handlers/index.js.map +1 -1
- package/dist/gateway/console-api/handlers/staking.d.ts +28 -0
- package/dist/gateway/console-api/handlers/staking.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/staking.js +153 -0
- package/dist/gateway/console-api/handlers/staking.js.map +1 -0
- package/dist/gateway/console-api/handlers/staking.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/staking.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/staking.test.js +126 -0
- package/dist/gateway/console-api/handlers/staking.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/update.d.ts +13 -0
- package/dist/gateway/console-api/handlers/update.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/update.js +65 -0
- package/dist/gateway/console-api/handlers/update.js.map +1 -0
- package/dist/gateway/console-api/router.d.ts +1 -1
- package/dist/gateway/console-api/router.d.ts.map +1 -1
- package/dist/gateway/console-api/router.js +8 -3
- package/dist/gateway/console-api/router.js.map +1 -1
- package/dist/gateway/console-api/types.d.ts +47 -0
- package/dist/gateway/console-api/types.d.ts.map +1 -1
- package/dist/gateway/console-api/types.js.map +1 -1
- package/dist/gateway/console-api/update.test.d.ts +2 -0
- package/dist/gateway/console-api/update.test.d.ts.map +1 -0
- package/dist/gateway/console-api/update.test.js +198 -0
- package/dist/gateway/console-api/update.test.js.map +1 -0
- package/dist/gateway/console.d.ts +3 -0
- package/dist/gateway/console.d.ts.map +1 -1
- package/dist/gateway/console.js +3 -0
- package/dist/gateway/console.js.map +1 -1
- package/dist/gateway/gateway-policy.test.js +66 -0
- package/dist/gateway/gateway-policy.test.js.map +1 -1
- package/dist/gateway/gateway.test.js +88 -0
- package/dist/gateway/gateway.test.js.map +1 -1
- package/dist/gateway/policy-resolver.test.js +11 -3
- package/dist/gateway/policy-resolver.test.js.map +1 -1
- package/dist/gateway/request-errors.test.js +119 -3
- package/dist/gateway/request-errors.test.js.map +1 -1
- package/dist/gateway/request-shaping.d.ts +4 -2
- package/dist/gateway/request-shaping.d.ts.map +1 -1
- package/dist/gateway/request-shaping.js +16 -10
- package/dist/gateway/request-shaping.js.map +1 -1
- package/dist/gateway/server.d.ts +6 -0
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +162 -73
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/services/usage.d.ts.map +1 -1
- package/dist/gateway/services/usage.js +7 -0
- package/dist/gateway/services/usage.js.map +1 -1
- package/dist/gateway/store-data.test.js +1 -1
- package/dist/gateway/store-data.test.js.map +1 -1
- package/dist/gateway/store-migrations.d.ts.map +1 -1
- package/dist/gateway/store-migrations.js +7 -0
- package/dist/gateway/store-migrations.js.map +1 -1
- package/dist/gateway/store.d.ts +24 -1
- package/dist/gateway/store.d.ts.map +1 -1
- package/dist/gateway/store.js +29 -10
- package/dist/gateway/store.js.map +1 -1
- package/dist/gateway/updates.d.ts +34 -0
- package/dist/gateway/updates.d.ts.map +1 -0
- package/dist/gateway/updates.js +155 -0
- package/dist/gateway/updates.js.map +1 -0
- package/dist/proxy/buyer-proxy.d.ts +4 -0
- package/dist/proxy/buyer-proxy.d.ts.map +1 -1
- package/dist/proxy/buyer-proxy.js +9 -0
- package/dist/proxy/buyer-proxy.js.map +1 -1
- package/dist/proxy/router-execution.d.ts.map +1 -1
- package/dist/proxy/router-execution.js +14 -4
- package/dist/proxy/router-execution.js.map +1 -1
- package/dist/proxy/router-execution.test.js +35 -0
- package/dist/proxy/router-execution.test.js.map +1 -1
- package/dist/update/install-method.d.ts +25 -0
- package/dist/update/install-method.d.ts.map +1 -0
- package/dist/update/install-method.js +76 -0
- package/dist/update/install-method.js.map +1 -0
- package/dist/update/notifier.d.ts +30 -0
- package/dist/update/notifier.d.ts.map +1 -0
- package/dist/update/notifier.js +84 -0
- package/dist/update/notifier.js.map +1 -0
- package/dist/update/root-updater.d.ts +80 -0
- package/dist/update/root-updater.d.ts.map +1 -0
- package/dist/update/root-updater.js +104 -0
- package/dist/update/root-updater.js.map +1 -0
- package/dist/update/update.test.d.ts +2 -0
- package/dist/update/update.test.d.ts.map +1 -0
- package/dist/update/update.test.js +224 -0
- package/dist/update/update.test.js.map +1 -0
- package/dist/update/version.d.ts +29 -0
- package/dist/update/version.d.ts.map +1 -0
- package/dist/update/version.js +110 -0
- package/dist/update/version.js.map +1 -0
- package/dist/update/watch.d.ts +32 -0
- package/dist/update/watch.d.ts.map +1 -0
- package/dist/update/watch.js +59 -0
- package/dist/update/watch.js.map +1 -0
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-errors.test.js","sourceRoot":"","sources":["../../src/gateway/request-errors.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"request-errors.test.js","sourceRoot":"","sources":["../../src/gateway/request-errors.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,16 @@ export declare function presetSlug(model: string | null): string | null;
|
|
|
12
12
|
export declare function applyPreset(body: Record<string, unknown>, preset: PresetRecord, routePrefix: string): Record<string, unknown>;
|
|
13
13
|
/** End user from the body's `user` field (OpenAI convention) or the end-user header. */
|
|
14
14
|
export declare function extractEndUser(body: Record<string, unknown> | null, header: string | undefined): string | null;
|
|
15
|
-
/** A text field of a multipart form (image edits), without a full parser; `model` by default. */
|
|
16
|
-
export declare function sniffMultipartModel(body: Buffer, contentType: string | undefined, field?: 'model' | 'service'): string | null;
|
|
17
15
|
/**
|
|
18
16
|
* The model the buyer will route the request to, the way it reads it
|
|
19
17
|
* (`service ?? model`, trimmed; see `extractRequestedService` in
|
|
20
18
|
* proxy/request-utils.ts): a `service` field wins over `model`, and one that
|
|
21
19
|
* is not a usable name leaves the request without a model. The gateway's
|
|
22
20
|
* model allow list and its accounting use this, not `model` alone.
|
|
21
|
+
*
|
|
22
|
+
* The body is read whole, however large: the buyer reads it whole too, so a
|
|
23
|
+
* body the gateway cannot read is one whose preset, allow list and accounting
|
|
24
|
+
* it would get wrong while the buyer still routes it.
|
|
23
25
|
*/
|
|
24
26
|
export declare function effectiveRequestModel(parsed: Record<string, unknown> | null, body: Buffer, contentType: string | undefined): string | null;
|
|
25
27
|
//# sourceMappingURL=request-shaping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-shaping.d.ts","sourceRoot":"","sources":["../../src/gateway/request-shaping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request-shaping.d.ts","sourceRoot":"","sources":["../../src/gateway/request-shaping.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAC7C,eAAO,MAAM,eAAe,uBAAuB,CAAA;AAGnD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkB7H;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI9G;AAaD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI1I"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseMultipartFormFields } from '@antseed/api-adapter';
|
|
1
2
|
export const PRESET_MODEL_PREFIX = '@preset/';
|
|
2
3
|
export const END_USER_HEADER = 'x-antseed-end-user';
|
|
3
4
|
const MAX_END_USER_LENGTH = 256;
|
|
@@ -42,13 +43,15 @@ export function extractEndUser(body, header) {
|
|
|
42
43
|
const value = (fromBody || header || '').trim();
|
|
43
44
|
return value ? value.slice(0, MAX_END_USER_LENGTH) : null;
|
|
44
45
|
}
|
|
45
|
-
/**
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return
|
|
46
|
+
/**
|
|
47
|
+
* A multipart form's text fields, read with the buyer's own parser
|
|
48
|
+
* (`parseMultipartFormFields`): the same `model`/`service` values, and the
|
|
49
|
+
* whole body, not just its start. Null unless the content type is multipart.
|
|
50
|
+
*/
|
|
51
|
+
function multipartFields(body, contentType) {
|
|
52
|
+
return contentType?.toLowerCase().startsWith('multipart/form-data')
|
|
53
|
+
? parseMultipartFormFields(body, contentType)
|
|
54
|
+
: null;
|
|
52
55
|
}
|
|
53
56
|
/**
|
|
54
57
|
* The model the buyer will route the request to, the way it reads it
|
|
@@ -56,11 +59,14 @@ export function sniffMultipartModel(body, contentType, field = 'model') {
|
|
|
56
59
|
* proxy/request-utils.ts): a `service` field wins over `model`, and one that
|
|
57
60
|
* is not a usable name leaves the request without a model. The gateway's
|
|
58
61
|
* model allow list and its accounting use this, not `model` alone.
|
|
62
|
+
*
|
|
63
|
+
* The body is read whole, however large: the buyer reads it whole too, so a
|
|
64
|
+
* body the gateway cannot read is one whose preset, allow list and accounting
|
|
65
|
+
* it would get wrong while the buyer still routes it.
|
|
59
66
|
*/
|
|
60
67
|
export function effectiveRequestModel(parsed, body, contentType) {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
: sniffMultipartModel(body, contentType, 'service') ?? sniffMultipartModel(body, contentType);
|
|
68
|
+
const fields = parsed ?? multipartFields(body, contentType);
|
|
69
|
+
const raw = fields?.['service'] ?? fields?.['model'];
|
|
64
70
|
return typeof raw === 'string' && raw.trim() ? raw.trim() : null;
|
|
65
71
|
}
|
|
66
72
|
//# sourceMappingURL=request-shaping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-shaping.js","sourceRoot":"","sources":["../../src/gateway/request-shaping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request-shaping.js","sourceRoot":"","sources":["../../src/gateway/request-shaping.ts"],"names":[],"mappings":"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"}
|
package/dist/gateway/server.d.ts
CHANGED
|
@@ -38,6 +38,10 @@ export interface GatewayServerOptions {
|
|
|
38
38
|
} | null;
|
|
39
39
|
/** Span exporter; defaults to one reading the observability settings from the store. */
|
|
40
40
|
exporter?: OtlpExporter;
|
|
41
|
+
/** How long a request waits for a buyer that refuses connections (restarting); default BUYER_RESTART_HOLD_MS. */
|
|
42
|
+
buyerRestartHoldMs?: number;
|
|
43
|
+
/** How long `stop()` lets requests in flight finish before closing them; default SHUTDOWN_DRAIN_MS. */
|
|
44
|
+
shutdownDrainMs?: number;
|
|
41
45
|
}
|
|
42
46
|
export interface GatewayTopupOptions {
|
|
43
47
|
asset: () => Promise<X402Asset>;
|
|
@@ -67,6 +71,8 @@ export declare class GatewayServer {
|
|
|
67
71
|
*/
|
|
68
72
|
pruneRequestLog(now?: number): Promise<number>;
|
|
69
73
|
stop(): Promise<void>;
|
|
74
|
+
/** Whether the gateway should keep waiting for a buyer that has refused connections since `since`. */
|
|
75
|
+
private _holdForBuyer;
|
|
70
76
|
private _log;
|
|
71
77
|
private _handle;
|
|
72
78
|
/** The request's active API key and who it is accounted to; answers 401 itself otherwise. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gateway/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gateway/server.ts"],"names":[],"mappings":"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"}
|
package/dist/gateway/server.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { timingSafeEqual } from 'node:crypto';
|
|
2
2
|
import * as http from 'node:http';
|
|
3
|
+
import { nativeVideoAcceptance, nativeVideoRoute } from '@antseed/api-adapter';
|
|
3
4
|
import { DEFAULT_BUYER_IDENTITY } from '@antseed/node';
|
|
4
5
|
import { SPEND_ATTRIBUTION_HEADER } from '../proxy/spend-attribution.js';
|
|
5
6
|
import { BUYER_IDENTITY_HEADER } from '../proxy/request-utils.js';
|
|
@@ -32,15 +33,27 @@ const HOP_BY_HOP = new Set([
|
|
|
32
33
|
'transfer-encoding',
|
|
33
34
|
'upgrade',
|
|
34
35
|
]);
|
|
35
|
-
/**
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Largest request body the gateway accepts, matching the buyer's default
|
|
38
|
+
* upload limit. Every accepted body is parsed to read its model, the way the
|
|
39
|
+
* buyer reads it: that model decides the preset, the allow list and the
|
|
40
|
+
* accounting, so the two must never disagree about it.
|
|
41
|
+
*/
|
|
38
42
|
const MAX_BODY_BYTES = 64 * 1024 * 1024;
|
|
39
43
|
/** How much of a failed response is read for its error code and message. */
|
|
40
44
|
const MAX_ERROR_BODY_BYTES = 16 * 1024;
|
|
41
45
|
const MAX_ERROR_MESSAGE_CHARS = 500;
|
|
42
46
|
/** Request and response bodies kept per request while content logging is on. */
|
|
43
47
|
const MAX_LOGGED_CONTENT_BYTES = 64 * 1024;
|
|
48
|
+
/**
|
|
49
|
+
* A buyer that refuses connections is restarting (an update, a console
|
|
50
|
+
* restart): requests wait this long for it instead of failing. It covers the
|
|
51
|
+
* buyer's shutdown drain and its startup.
|
|
52
|
+
*/
|
|
53
|
+
const BUYER_RESTART_HOLD_MS = 120_000;
|
|
54
|
+
const BUYER_RETRY_INTERVAL_MS = 500;
|
|
55
|
+
/** On shutdown, requests in flight get this long to finish before they are closed. */
|
|
56
|
+
const SHUTDOWN_DRAIN_MS = 60_000;
|
|
44
57
|
const RETENTION_SWEEP_MS = 60 * 60 * 1000;
|
|
45
58
|
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
46
59
|
/** Why a key with caps cannot be served while its buyer's spend feed is not reporting. */
|
|
@@ -142,10 +155,22 @@ export class GatewayServer {
|
|
|
142
155
|
if (this._retentionTimer)
|
|
143
156
|
clearInterval(this._retentionTimer);
|
|
144
157
|
this._retentionTimer = null;
|
|
145
|
-
|
|
146
|
-
|
|
158
|
+
if (!server) {
|
|
159
|
+
await this._exporter.stop();
|
|
147
160
|
return;
|
|
148
|
-
|
|
161
|
+
}
|
|
162
|
+
// Stop accepting (a proxy in front retries elsewhere or waits for the next
|
|
163
|
+
// process), let requests in flight finish, then close what is left.
|
|
164
|
+
const closed = new Promise((resolve) => server.close(() => resolve()));
|
|
165
|
+
const drain = setTimeout(() => server.closeAllConnections(), this._options.shutdownDrainMs ?? SHUTDOWN_DRAIN_MS);
|
|
166
|
+
drain.unref?.();
|
|
167
|
+
await closed;
|
|
168
|
+
clearTimeout(drain);
|
|
169
|
+
await this._exporter.stop();
|
|
170
|
+
}
|
|
171
|
+
/** Whether the gateway should keep waiting for a buyer that has refused connections since `since`. */
|
|
172
|
+
_holdForBuyer(since) {
|
|
173
|
+
return this._server !== null && Date.now() - since < (this._options.buyerRestartHoldMs ?? BUYER_RESTART_HOLD_MS);
|
|
149
174
|
}
|
|
150
175
|
_log(message) {
|
|
151
176
|
this._options.onLog?.(message);
|
|
@@ -222,6 +247,7 @@ export class GatewayServer {
|
|
|
222
247
|
body,
|
|
223
248
|
policyHeaders: policy.headers,
|
|
224
249
|
modelListPolicy: route.prefix === '/v1/models' && policy.policy.allowedModels ? policy.policy : null,
|
|
250
|
+
video: nativeVideoRoute({ method, path: route.prefix, body }),
|
|
225
251
|
};
|
|
226
252
|
try {
|
|
227
253
|
this._options.store.startRequest({
|
|
@@ -235,6 +261,7 @@ export class GatewayServer {
|
|
|
235
261
|
workspaceId: key.workspaceId,
|
|
236
262
|
memberId: key.ownerMemberId,
|
|
237
263
|
endUser: request.endUser,
|
|
264
|
+
video: request.video && { action: request.video.action === 'create' ? 'create' : 'poll', jobId: request.video.resourceId ?? null },
|
|
238
265
|
});
|
|
239
266
|
this._options.store.touchKey(key.id);
|
|
240
267
|
}
|
|
@@ -297,7 +324,16 @@ export class GatewayServer {
|
|
|
297
324
|
if (this._options.spendFeedState() === 'reporting')
|
|
298
325
|
return true;
|
|
299
326
|
await this._options.refreshSpendFeed();
|
|
300
|
-
|
|
327
|
+
let state = this._options.spendFeedState();
|
|
328
|
+
// A buyer that is restarting reports again once it is back.
|
|
329
|
+
const since = Date.now();
|
|
330
|
+
while (state === 'unreachable' && !res.destroyed && this._holdForBuyer(since)) {
|
|
331
|
+
await new Promise((resolve) => setTimeout(resolve, BUYER_RETRY_INTERVAL_MS));
|
|
332
|
+
await this._options.refreshSpendFeed();
|
|
333
|
+
state = this._options.spendFeedState();
|
|
334
|
+
}
|
|
335
|
+
if (res.destroyed)
|
|
336
|
+
return false;
|
|
301
337
|
if (state === 'reporting')
|
|
302
338
|
return true;
|
|
303
339
|
sendError(res, 503, 'api_error', 'spend_tracking_unavailable', SPEND_FEED_UNAVAILABLE_MESSAGES[state]);
|
|
@@ -370,6 +406,9 @@ export class GatewayServer {
|
|
|
370
406
|
let firstTokenMs = null;
|
|
371
407
|
let respondedAt = 0;
|
|
372
408
|
let servedFree = false;
|
|
409
|
+
// Video: the start of a create's answer (it names the job) and whether a retrieve delivered the file.
|
|
410
|
+
let videoCreateChunks = null;
|
|
411
|
+
let videoDelivered = false;
|
|
373
412
|
// Token counts the response reports, kept on the request until (or if
|
|
374
413
|
// the buyer never reports) its spend.
|
|
375
414
|
let usageReader = null;
|
|
@@ -388,7 +427,10 @@ export class GatewayServer {
|
|
|
388
427
|
store.finishRequest(tag, { status, buyerRequestId, error });
|
|
389
428
|
const usage = usageReader?.result() ?? null;
|
|
390
429
|
const tokensPerSecond = firstTokenMs !== null ? outputTokensPerSecond(usage?.outputTokens ?? 0, finishedAt - respondedAt) : null;
|
|
391
|
-
|
|
430
|
+
const videoJobId = videoCreateChunks && request.video
|
|
431
|
+
? nativeVideoAcceptance(request.video.protocol, { requestId: tag, statusCode: status, headers: {}, body: Buffer.concat(videoCreateChunks) })
|
|
432
|
+
: null;
|
|
433
|
+
store.recordRequestOutcome(tag, { sellerPeerId, latencyMs, firstTokenMs, tokensPerSecond, endUser, servedFree, videoJobId, videoDelivered });
|
|
392
434
|
if (usage)
|
|
393
435
|
store.recordResponseUsage(tag, usage);
|
|
394
436
|
if (observability.logContent)
|
|
@@ -417,78 +459,125 @@ export class GatewayServer {
|
|
|
417
459
|
if (controlSecret)
|
|
418
460
|
headers[GATEWAY_CONTROL_HEADER] = controlSecret;
|
|
419
461
|
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
462
|
+
let upstream;
|
|
463
|
+
// Set while the request waits for a restarting buyer.
|
|
464
|
+
let retryTimer = null;
|
|
465
|
+
let refusedSince = null;
|
|
466
|
+
const send = () => {
|
|
467
|
+
retryTimer = null;
|
|
468
|
+
upstream = http.request({
|
|
469
|
+
hostname: '127.0.0.1',
|
|
470
|
+
port: buyerPort,
|
|
471
|
+
method,
|
|
472
|
+
path: request.buyerPath,
|
|
473
|
+
headers,
|
|
474
|
+
}, (upstreamRes) => {
|
|
475
|
+
const status = upstreamRes.statusCode ?? 502;
|
|
476
|
+
const buyerRequestId = firstHeader(upstreamRes.headers['x-antseed-request-id']) || null;
|
|
477
|
+
sellerPeerId = firstHeader(upstreamRes.headers['x-antseed-peer-id']).slice(0, 200) || null;
|
|
478
|
+
reportedLatency = latencyHeader(firstHeader(upstreamRes.headers['x-antseed-latency-ms']));
|
|
479
|
+
firstTokenMs = status < 400 ? latencyHeader(firstHeader(upstreamRes.headers['x-antseed-first-token-ms'])) : null;
|
|
480
|
+
respondedAt = Date.now();
|
|
481
|
+
const contentType = firstHeader(upstreamRes.headers['content-type']).toLowerCase();
|
|
482
|
+
// A video is priced per second, not per token: zero token prices do not make it free.
|
|
483
|
+
servedFree = !request.video && freeSellerPricing(upstreamRes.headers);
|
|
484
|
+
if (request.video?.action === 'create' && status >= 200 && status < 300)
|
|
485
|
+
videoCreateChunks = collectPrefix(upstreamRes, MAX_ERROR_BODY_BYTES);
|
|
486
|
+
videoDelivered = request.video?.action === 'retrieve' && status === 200 && contentType.startsWith('video/');
|
|
487
|
+
if (observability.logContent)
|
|
488
|
+
responseChunks = collectPrefix(upstreamRes, MAX_LOGGED_CONTENT_BYTES);
|
|
489
|
+
if (status >= 400)
|
|
490
|
+
errorChunks = collectPrefix(upstreamRes, MAX_ERROR_BODY_BYTES);
|
|
491
|
+
// A delivered video is an MP4 stream with no usage to read.
|
|
492
|
+
else if (request.model !== null && !contentType.startsWith('video/'))
|
|
493
|
+
usageReader = readUsage(upstreamRes, (message) => this._log(message));
|
|
494
|
+
const responseHeaders = {};
|
|
495
|
+
for (const [name, value] of Object.entries(upstreamRes.headers)) {
|
|
496
|
+
if (!HOP_BY_HOP.has(name.toLowerCase()) && value !== undefined)
|
|
497
|
+
responseHeaders[name] = value;
|
|
498
|
+
}
|
|
499
|
+
responseHeaders.connection = 'close';
|
|
500
|
+
upstreamRes.once('error', () => finish(status, buyerRequestId));
|
|
501
|
+
res.once('close', () => finish(status, buyerRequestId));
|
|
502
|
+
const modelListPolicy = request.modelListPolicy;
|
|
503
|
+
if (modelListPolicy && status === 200) {
|
|
504
|
+
const chunks = [];
|
|
505
|
+
upstreamRes.on('data', (chunk) => chunks.push(chunk));
|
|
506
|
+
upstreamRes.once('end', () => {
|
|
507
|
+
const listing = filterModelList(Buffer.concat(chunks), modelListPolicy);
|
|
508
|
+
res.writeHead(status, { ...responseHeaders, 'content-length': String(listing.length) });
|
|
509
|
+
res.end(listing);
|
|
510
|
+
finish(status, buyerRequestId);
|
|
511
|
+
});
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
res.writeHead(status, responseHeaders);
|
|
515
|
+
upstreamRes.pipe(res);
|
|
516
|
+
upstreamRes.once('end', () => finish(status, buyerRequestId));
|
|
517
|
+
});
|
|
518
|
+
upstream.on('error', (error) => {
|
|
519
|
+
// Destroying the buyer request for a client that left fails it too; that is the client's cancel, not a buyer outage.
|
|
520
|
+
if (clientClosed) {
|
|
521
|
+
closedByClient();
|
|
522
|
+
return;
|
|
523
|
+
}
|
|
524
|
+
// Refused: the buyer never saw the request and is restarting, so it is safe to send again.
|
|
525
|
+
const refused = error.code === 'ECONNREFUSED';
|
|
526
|
+
if (refused) {
|
|
527
|
+
if (refusedSince === null) {
|
|
528
|
+
refusedSince = Date.now();
|
|
529
|
+
this._log(`gateway holding request until the buyer is back: key=${key.id}`);
|
|
530
|
+
}
|
|
531
|
+
if (this._holdForBuyer(refusedSince)) {
|
|
532
|
+
retryTimer = setTimeout(send, BUYER_RETRY_INTERVAL_MS);
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
this._log(`gateway upstream error: ${error.message}`);
|
|
537
|
+
gatewayError = { code: 'buyer_unavailable', message: 'Antseed buyer proxy is unavailable' };
|
|
538
|
+
finish(502, null);
|
|
539
|
+
// Never accepted, so never signed for: no spend can follow.
|
|
540
|
+
if (refused)
|
|
541
|
+
this._options.accounting.release(tag);
|
|
542
|
+
if (!res.headersSent) {
|
|
543
|
+
sendError(res, 502, 'api_error', 'buyer_unavailable', 'Antseed buyer proxy is unavailable');
|
|
544
|
+
}
|
|
545
|
+
else {
|
|
546
|
+
res.destroy();
|
|
547
|
+
}
|
|
548
|
+
});
|
|
549
|
+
upstream.end(body);
|
|
550
|
+
};
|
|
551
|
+
const closedByClient = () => {
|
|
552
|
+
// stop() closes what is left after its drain; that is not the client's cancel.
|
|
553
|
+
if (this._server === null) {
|
|
554
|
+
this._log(`gateway stopped before the buyer answered: key=${key.id}`);
|
|
555
|
+
gatewayError = { code: 'gateway_stopping', message: 'The gateway stopped before the buyer answered' };
|
|
556
|
+
finish(503, null);
|
|
471
557
|
return;
|
|
472
558
|
}
|
|
473
|
-
this._log(`gateway
|
|
474
|
-
gatewayError = { code: '
|
|
475
|
-
finish(
|
|
476
|
-
|
|
477
|
-
sendError(res, 502, 'api_error', 'buyer_unavailable', 'Antseed buyer proxy is unavailable');
|
|
478
|
-
}
|
|
479
|
-
else {
|
|
480
|
-
res.destroy();
|
|
481
|
-
}
|
|
482
|
-
});
|
|
559
|
+
this._log(`gateway client closed before the buyer answered: key=${key.id}`);
|
|
560
|
+
gatewayError = { code: 'client_closed_request', message: 'Client closed the request before the buyer answered' };
|
|
561
|
+
finish(499, null);
|
|
562
|
+
};
|
|
483
563
|
// A client that disconnects mid-stream should stop the paid request too.
|
|
484
564
|
res.once('close', () => {
|
|
485
565
|
if (res.writableFinished)
|
|
486
566
|
return;
|
|
487
567
|
clientClosed = true;
|
|
488
|
-
|
|
568
|
+
if (retryTimer) {
|
|
569
|
+
// Waiting for the buyer, which never saw this request.
|
|
570
|
+
clearTimeout(retryTimer);
|
|
571
|
+
retryTimer = null;
|
|
572
|
+
closedByClient();
|
|
573
|
+
this._options.accounting.release(tag);
|
|
574
|
+
}
|
|
575
|
+
else {
|
|
576
|
+
upstream.destroy();
|
|
577
|
+
}
|
|
489
578
|
});
|
|
490
579
|
sentToBuyer = true;
|
|
491
|
-
|
|
580
|
+
send();
|
|
492
581
|
}
|
|
493
582
|
catch (error) {
|
|
494
583
|
this._log(`gateway error after admission: ${errorMessage(error)}`);
|
|
@@ -740,9 +829,9 @@ async function readBody(req) {
|
|
|
740
829
|
function sendBodyTooLarge(res) {
|
|
741
830
|
sendError(res, 413, 'invalid_request_error', 'request_too_large', `Request bodies are limited to ${MAX_BODY_BYTES / 1024 / 1024} MiB`);
|
|
742
831
|
}
|
|
743
|
-
/** A JSON object body, or null (empty,
|
|
832
|
+
/** A JSON object body, or null (empty, not JSON, not an object). */
|
|
744
833
|
function parseJsonBody(body, contentType) {
|
|
745
|
-
if (body.length === 0
|
|
834
|
+
if (body.length === 0)
|
|
746
835
|
return null;
|
|
747
836
|
if (contentType && !contentType.includes('json'))
|
|
748
837
|
return null;
|