@antseed/cli 0.1.193 → 0.1.195

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 (145) hide show
  1. package/dist/cli/commands/buyer/start.d.ts.map +1 -1
  2. package/dist/cli/commands/buyer/start.js +9 -4
  3. package/dist/cli/commands/buyer/start.js.map +1 -1
  4. package/dist/cli/commands/gateway/index.d.ts.map +1 -1
  5. package/dist/cli/commands/gateway/index.js +6 -0
  6. package/dist/cli/commands/gateway/index.js.map +1 -1
  7. package/dist/cli/commands/seller/start.d.ts.map +1 -1
  8. package/dist/cli/commands/seller/start.js +9 -0
  9. package/dist/cli/commands/seller/start.js.map +1 -1
  10. package/dist/cli/commands/tunnel/start.d.ts.map +1 -1
  11. package/dist/cli/commands/tunnel/start.js +8 -2
  12. package/dist/cli/commands/tunnel/start.js.map +1 -1
  13. package/dist/cli/commands/update.d.ts +19 -0
  14. package/dist/cli/commands/update.d.ts.map +1 -0
  15. package/dist/cli/commands/update.js +153 -0
  16. package/dist/cli/commands/update.js.map +1 -0
  17. package/dist/cli/index.js +11 -0
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/program.d.ts.map +1 -1
  20. package/dist/cli/program.js +2 -0
  21. package/dist/cli/program.js.map +1 -1
  22. package/dist/gateway/buyer-process.d.ts +5 -0
  23. package/dist/gateway/buyer-process.d.ts.map +1 -1
  24. package/dist/gateway/buyer-process.js +7 -4
  25. package/dist/gateway/buyer-process.js.map +1 -1
  26. package/dist/gateway/buyer-process.test.js +28 -2
  27. package/dist/gateway/buyer-process.test.js.map +1 -1
  28. package/dist/gateway/console-api/deps.d.ts +3 -0
  29. package/dist/gateway/console-api/deps.d.ts.map +1 -1
  30. package/dist/gateway/console-api/handlers/index.d.ts.map +1 -1
  31. package/dist/gateway/console-api/handlers/index.js +2 -0
  32. package/dist/gateway/console-api/handlers/index.js.map +1 -1
  33. package/dist/gateway/console-api/handlers/staking.d.ts +28 -0
  34. package/dist/gateway/console-api/handlers/staking.d.ts.map +1 -0
  35. package/dist/gateway/console-api/handlers/staking.js +153 -0
  36. package/dist/gateway/console-api/handlers/staking.js.map +1 -0
  37. package/dist/gateway/console-api/handlers/staking.test.d.ts +2 -0
  38. package/dist/gateway/console-api/handlers/staking.test.d.ts.map +1 -0
  39. package/dist/gateway/console-api/handlers/staking.test.js +126 -0
  40. package/dist/gateway/console-api/handlers/staking.test.js.map +1 -0
  41. package/dist/gateway/console-api/handlers/update.d.ts +13 -0
  42. package/dist/gateway/console-api/handlers/update.d.ts.map +1 -0
  43. package/dist/gateway/console-api/handlers/update.js +65 -0
  44. package/dist/gateway/console-api/handlers/update.js.map +1 -0
  45. package/dist/gateway/console-api/router.d.ts +1 -1
  46. package/dist/gateway/console-api/router.d.ts.map +1 -1
  47. package/dist/gateway/console-api/router.js +8 -3
  48. package/dist/gateway/console-api/router.js.map +1 -1
  49. package/dist/gateway/console-api/types.d.ts +47 -0
  50. package/dist/gateway/console-api/types.d.ts.map +1 -1
  51. package/dist/gateway/console-api/types.js.map +1 -1
  52. package/dist/gateway/console-api/update.test.d.ts +2 -0
  53. package/dist/gateway/console-api/update.test.d.ts.map +1 -0
  54. package/dist/gateway/console-api/update.test.js +198 -0
  55. package/dist/gateway/console-api/update.test.js.map +1 -0
  56. package/dist/gateway/console.d.ts +3 -0
  57. package/dist/gateway/console.d.ts.map +1 -1
  58. package/dist/gateway/console.js +3 -0
  59. package/dist/gateway/console.js.map +1 -1
  60. package/dist/gateway/gateway-policy.test.js +66 -0
  61. package/dist/gateway/gateway-policy.test.js.map +1 -1
  62. package/dist/gateway/gateway.test.js +88 -0
  63. package/dist/gateway/gateway.test.js.map +1 -1
  64. package/dist/gateway/policy-resolver.test.js +11 -3
  65. package/dist/gateway/policy-resolver.test.js.map +1 -1
  66. package/dist/gateway/request-errors.test.js +119 -3
  67. package/dist/gateway/request-errors.test.js.map +1 -1
  68. package/dist/gateway/request-shaping.d.ts +4 -2
  69. package/dist/gateway/request-shaping.d.ts.map +1 -1
  70. package/dist/gateway/request-shaping.js +16 -10
  71. package/dist/gateway/request-shaping.js.map +1 -1
  72. package/dist/gateway/routing-through-gateway.test.js +1 -1
  73. package/dist/gateway/routing-through-gateway.test.js.map +1 -1
  74. package/dist/gateway/server.d.ts +6 -0
  75. package/dist/gateway/server.d.ts.map +1 -1
  76. package/dist/gateway/server.js +162 -73
  77. package/dist/gateway/server.js.map +1 -1
  78. package/dist/gateway/services/usage.d.ts.map +1 -1
  79. package/dist/gateway/services/usage.js +7 -0
  80. package/dist/gateway/services/usage.js.map +1 -1
  81. package/dist/gateway/store-data.test.js +1 -1
  82. package/dist/gateway/store-data.test.js.map +1 -1
  83. package/dist/gateway/store-migrations.d.ts.map +1 -1
  84. package/dist/gateway/store-migrations.js +7 -0
  85. package/dist/gateway/store-migrations.js.map +1 -1
  86. package/dist/gateway/store.d.ts +24 -1
  87. package/dist/gateway/store.d.ts.map +1 -1
  88. package/dist/gateway/store.js +29 -10
  89. package/dist/gateway/store.js.map +1 -1
  90. package/dist/gateway/updates.d.ts +34 -0
  91. package/dist/gateway/updates.d.ts.map +1 -0
  92. package/dist/gateway/updates.js +155 -0
  93. package/dist/gateway/updates.js.map +1 -0
  94. package/dist/proxy/buyer-proxy.d.ts +34 -12
  95. package/dist/proxy/buyer-proxy.d.ts.map +1 -1
  96. package/dist/proxy/buyer-proxy.js +320 -61
  97. package/dist/proxy/buyer-proxy.js.map +1 -1
  98. package/dist/proxy/buyer-proxy.test.js +430 -23
  99. package/dist/proxy/buyer-proxy.test.js.map +1 -1
  100. package/dist/proxy/gateway-policy.test.js +7 -6
  101. package/dist/proxy/gateway-policy.test.js.map +1 -1
  102. package/dist/proxy/response-quality.d.ts +25 -0
  103. package/dist/proxy/response-quality.d.ts.map +1 -0
  104. package/dist/proxy/response-quality.js +203 -0
  105. package/dist/proxy/response-quality.js.map +1 -0
  106. package/dist/proxy/response-quality.test.d.ts +2 -0
  107. package/dist/proxy/response-quality.test.d.ts.map +1 -0
  108. package/dist/proxy/response-quality.test.js +72 -0
  109. package/dist/proxy/response-quality.test.js.map +1 -0
  110. package/dist/proxy/route-policy.d.ts +2 -0
  111. package/dist/proxy/route-policy.d.ts.map +1 -1
  112. package/dist/proxy/route-policy.js +9 -8
  113. package/dist/proxy/route-policy.js.map +1 -1
  114. package/dist/proxy/route-policy.test.js +6 -0
  115. package/dist/proxy/route-policy.test.js.map +1 -1
  116. package/dist/proxy/router-execution.d.ts.map +1 -1
  117. package/dist/proxy/router-execution.js +14 -4
  118. package/dist/proxy/router-execution.js.map +1 -1
  119. package/dist/proxy/router-execution.test.js +35 -0
  120. package/dist/proxy/router-execution.test.js.map +1 -1
  121. package/dist/update/install-method.d.ts +25 -0
  122. package/dist/update/install-method.d.ts.map +1 -0
  123. package/dist/update/install-method.js +76 -0
  124. package/dist/update/install-method.js.map +1 -0
  125. package/dist/update/notifier.d.ts +30 -0
  126. package/dist/update/notifier.d.ts.map +1 -0
  127. package/dist/update/notifier.js +84 -0
  128. package/dist/update/notifier.js.map +1 -0
  129. package/dist/update/root-updater.d.ts +80 -0
  130. package/dist/update/root-updater.d.ts.map +1 -0
  131. package/dist/update/root-updater.js +104 -0
  132. package/dist/update/root-updater.js.map +1 -0
  133. package/dist/update/update.test.d.ts +2 -0
  134. package/dist/update/update.test.d.ts.map +1 -0
  135. package/dist/update/update.test.js +224 -0
  136. package/dist/update/update.test.js.map +1 -0
  137. package/dist/update/version.d.ts +29 -0
  138. package/dist/update/version.d.ts.map +1 -0
  139. package/dist/update/version.js +110 -0
  140. package/dist/update/version.js.map +1 -0
  141. package/dist/update/watch.d.ts +32 -0
  142. package/dist/update/watch.d.ts.map +1 -0
  143. package/dist/update/watch.js +59 -0
  144. package/dist/update/watch.js.map +1 -0
  145. 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":"AAAA,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;AAED,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,GAAE,OAAO,GAAG,SAAmB,GAAG,MAAM,GAAG,IAAI,CAKtI;AAED;;;;;;GAMG;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,CAK1I"}
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
- /** A text field of a multipart form (image edits), without a full parser; `model` by default. */
46
- export function sniffMultipartModel(body, contentType, field = 'model') {
47
- if (!contentType?.toLowerCase().startsWith('multipart/form-data'))
48
- return null;
49
- const text = body.subarray(0, 4 * 1024 * 1024).toString('latin1');
50
- const match = new RegExp(`content-disposition:\\s*form-data;\\s*name="${field}"[^\\r\\n]*\\r\\n(?:[^\\r\\n]+\\r\\n)*\\r\\n([^\\r\\n]*)\\r\\n`, 'i').exec(text);
51
- return match ? Buffer.from(match[1], 'latin1').toString('utf8').slice(0, 200) : null;
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 raw = parsed
62
- ? parsed['service'] ?? parsed['model']
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":"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"}
1
+ {"version":3,"file":"request-shaping.js","sourceRoot":"","sources":["../../src/gateway/request-shaping.ts"],"names":[],"mappings":"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"}
@@ -89,7 +89,7 @@ async function setup(t) {
89
89
  return routes;
90
90
  },
91
91
  };
92
- proxy = new BuyerProxy({ port: 0, dataDir: join(dir, 'buyer'), node: node, modelRoutingClient: modelRoutingClient });
92
+ proxy = new BuyerProxy({ adaptiveRouting: { spreadTolerance: 0, explorationRate: 0 }, port: 0, dataDir: join(dir, 'buyer'), node: node, modelRoutingClient: modelRoutingClient });
93
93
  proxy._getPeers = async () => [first, second, router];
94
94
  proxy._cacheLastUpdatedAtMs = Date.now();
95
95
  proxy._mergeStateFile = async () => { };
@@ -1 +1 @@
1
- {"version":3,"file":"routing-through-gateway.test.js","sourceRoot":"","sources":["../../src/gateway/routing-through-gateway.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAoB,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAC7B,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AAC3E,MAAM,YAAY,GAAG,KAAK,CAAA;AAC1B,MAAM,cAAc,GAAG,MAAM,CAAA;AAE7B,SAAS,MAAM,CAAC,IAAY,EAAE,KAAa;IACzC,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAuB;QAC7C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;QACpB,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,sBAAsB,EAAE,KAAK;QAC7B,WAAW,EAAE,eAAe,IAAI,EAAE;QAClC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE;QAC5F,2BAA2B,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE,EAAE;KAChG,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAuB;QAC7C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;QACpB,SAAS,EAAE,CAAC,OAAO,CAAC;QACpB,sBAAsB,EAAE,EAAE;QAC1B,QAAQ,EAAE;YACR,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM;YAC1F,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;oBAC3F,cAAc,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE;oBACjE,mBAAmB,EAAE,EAAE,aAAa,EAAE,CAAC,aAAa,CAAC,EAAE;oBACvD,wBAAwB,EAAE,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;iBAC9I,CAAC;SAC6C;KAClD,CAAA;AACH,CAAC;AAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;AAClC,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,MAAM,cAAc,CAAA;AAInD,KAAK,UAAU,KAAK,CAAC,CAAc;IACjC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAA;IAC9D,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7D,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,2BAA2B,CAAC,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAE9F,2FAA2F;IAC3F,MAAM,IAAI,GAAW,EAAE,CAAA;IACvB,MAAM,gBAAgB,GAAe,EAAE,CAAA;IACvC,IAAI,KAAiB,CAAA;IACrB,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE;QAC/D,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5E,WAAW,EAAE,KAAK,EAAE,IAAc,EAAE,OAA8B,EAAE,EAAE;YACpE,IAAI,IAAI,GAAmC,IAAI,CAAA;YAC/C,IAAI,CAAC;gBAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,uCAAuC,CAAC,CAAC;YACvH,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CACvC;YAAC,KAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBACvC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM;gBACvD,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;gBACjF,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG;aAChF,CAAC,CAAA;YACF,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAA;QAChJ,CAAC;KACF,CAAA;IACD,yGAAyG;IACzG,MAAM,kBAAkB,GAAG;QACzB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QACzC,KAAK,CAAC,WAAW,CAAC,OAA8B,EAAE,KAAiB,EAAE,OAAY;YAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,UAAuC,CAAA;YAClE,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;YACtE,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAE,EAC5E,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC,CAAA;YAC5H,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;iBACrG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAAA;YACpF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;YACvG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAA;YACzD,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;IACD,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAW,EAAE,kBAAkB,EAAE,kBAAyB,EAAE,CAAC,CACjI;IAAC,KAAa,CAAC,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAC9D;IAAC,KAAa,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CACjD;IAAC,KAAa,CAAC,eAAe,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,CAAA;IAChD,MAAM,WAAW,GAAI,KAAa,CAAC,OAAO,CAAA;IAC1C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;IACjF,MAAM,SAAS,GAAI,WAAW,CAAC,OAAO,EAAkB,CAAC,IAAI,CAAA;IAE7D,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;IACzF,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7J,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;QAChC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI;QAClE,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;KAC7G,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;IAElC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;QACpB,UAAU,CAAC,OAAO,EAAE,CAAA;QACpB,MAAO,KAAa,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;QAC3C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACxE,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,KAAK,EAAE,MAAc,EAAE,IAAY,EAAE,IAAc,EAAE,EAAE;QAClE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,GAAG,IAAI,EAAE,EAAE;YACzD,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;YAC3C,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAClF,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAC7B,IAAI,IAAI,GAAQ,IAAI,CAAA;QACpB,IAAI,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QACxD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC3C,CAAC,CAAA;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;AACtD,CAAC;AAED,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,EAAE,CAAA;AAE/H,IAAI,CAAC,2GAA2G,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC5H,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;IAEtJ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAA;IACpE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,8CAA8C,CAAC,CAAA;IACxG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACtF,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,IAAK,CAAA;IACpC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,wCAAwC,CAAC,CAAA;IACvF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;IAEzC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IACvD,MAAM,CAAC,KAAK,CAAC,GAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,MAAM,CAAC,KAAK,CAAC,GAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IACvC,MAAM,CAAC,KAAK,CAAC,GAAI,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAA;IAEvF,6DAA6D;IAC7D,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;IACzB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,SAAS,EAAE,YAAY,GAAG,cAAc,CAAC,CAAA;AAC9G,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,sFAAsF,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACvG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IAC1I,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAA;IAC5E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;IACtD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAE9B,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9J,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACpG,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,uFAAuF,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;IACjJ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAA;IAC5E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IACrD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,yEAAyE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1F,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;IACpE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAEzH,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IAC1I,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAC5F,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"routing-through-gateway.test.js","sourceRoot":"","sources":["../../src/gateway/routing-through-gateway.test.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gateway/server.ts"],"names":[],"mappings":"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"}
@@ -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
- /** Bodies are buffered to read the model for metrics; the buyer buffers them too. */
36
- const MAX_MODEL_SNIFF_BYTES = 4 * 1024 * 1024;
37
- /** Largest request body the gateway accepts, matching the buyer's default upload limit. */
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
- await this._exporter.stop();
146
- if (!server)
158
+ if (!server) {
159
+ await this._exporter.stop();
147
160
  return;
148
- await new Promise((resolve) => server.close(() => resolve()));
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
- const state = this._options.spendFeedState();
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
- store.recordRequestOutcome(tag, { sellerPeerId, latencyMs, firstTokenMs, tokensPerSecond, endUser, servedFree });
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
- const upstream = http.request({
421
- hostname: '127.0.0.1',
422
- port: buyerPort,
423
- method,
424
- path: request.buyerPath,
425
- headers,
426
- }, (upstreamRes) => {
427
- const status = upstreamRes.statusCode ?? 502;
428
- const buyerRequestId = firstHeader(upstreamRes.headers['x-antseed-request-id']) || null;
429
- sellerPeerId = firstHeader(upstreamRes.headers['x-antseed-peer-id']).slice(0, 200) || null;
430
- reportedLatency = latencyHeader(firstHeader(upstreamRes.headers['x-antseed-latency-ms']));
431
- firstTokenMs = status < 400 ? latencyHeader(firstHeader(upstreamRes.headers['x-antseed-first-token-ms'])) : null;
432
- respondedAt = Date.now();
433
- servedFree = freeSellerPricing(upstreamRes.headers);
434
- if (observability.logContent)
435
- responseChunks = collectPrefix(upstreamRes, MAX_LOGGED_CONTENT_BYTES);
436
- if (status >= 400)
437
- errorChunks = collectPrefix(upstreamRes, MAX_ERROR_BODY_BYTES);
438
- // A delivered video is an MP4 stream with no usage to read.
439
- else if (request.model !== null && !firstHeader(upstreamRes.headers['content-type']).toLowerCase().startsWith('video/'))
440
- usageReader = readUsage(upstreamRes, (message) => this._log(message));
441
- const responseHeaders = {};
442
- for (const [name, value] of Object.entries(upstreamRes.headers)) {
443
- if (!HOP_BY_HOP.has(name.toLowerCase()) && value !== undefined)
444
- responseHeaders[name] = value;
445
- }
446
- responseHeaders.connection = 'close';
447
- upstreamRes.once('error', () => finish(status, buyerRequestId));
448
- res.once('close', () => finish(status, buyerRequestId));
449
- const modelListPolicy = request.modelListPolicy;
450
- if (modelListPolicy && status === 200) {
451
- const chunks = [];
452
- upstreamRes.on('data', (chunk) => chunks.push(chunk));
453
- upstreamRes.once('end', () => {
454
- const listing = filterModelList(Buffer.concat(chunks), modelListPolicy);
455
- res.writeHead(status, { ...responseHeaders, 'content-length': String(listing.length) });
456
- res.end(listing);
457
- finish(status, buyerRequestId);
458
- });
459
- return;
460
- }
461
- res.writeHead(status, responseHeaders);
462
- upstreamRes.pipe(res);
463
- upstreamRes.once('end', () => finish(status, buyerRequestId));
464
- });
465
- upstream.on('error', (error) => {
466
- // Destroying the buyer request for a client that left fails it too; that is the client's cancel, not a buyer outage.
467
- if (clientClosed) {
468
- this._log(`gateway client closed before the buyer answered: key=${key.id}`);
469
- gatewayError = { code: 'client_closed_request', message: 'Client closed the request before the buyer answered' };
470
- finish(499, null);
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 upstream error: ${error.message}`);
474
- gatewayError = { code: 'buyer_unavailable', message: 'Antseed buyer proxy is unavailable' };
475
- finish(502, null);
476
- if (!res.headersSent) {
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
- upstream.destroy();
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
- upstream.end(body);
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, too large to inspect, not JSON, not an object). */
832
+ /** A JSON object body, or null (empty, not JSON, not an object). */
744
833
  function parseJsonBody(body, contentType) {
745
- if (body.length === 0 || body.length > MAX_MODEL_SNIFF_BYTES)
834
+ if (body.length === 0)
746
835
  return null;
747
836
  if (contentType && !contentType.includes('json'))
748
837
  return null;