@antseed/cli 0.1.196 → 0.1.198

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 (115) hide show
  1. package/dist/cli/commands/buyer/start.d.ts.map +1 -1
  2. package/dist/cli/commands/buyer/start.js +1 -0
  3. package/dist/cli/commands/buyer/start.js.map +1 -1
  4. package/dist/cli/commands/gateway/activity.d.ts.map +1 -1
  5. package/dist/cli/commands/gateway/activity.js +26 -5
  6. package/dist/cli/commands/gateway/activity.js.map +1 -1
  7. package/dist/config/types.d.ts +2 -0
  8. package/dist/config/types.d.ts.map +1 -1
  9. package/dist/gateway/accounting.d.ts +118 -6
  10. package/dist/gateway/accounting.d.ts.map +1 -1
  11. package/dist/gateway/accounting.js +319 -21
  12. package/dist/gateway/accounting.js.map +1 -1
  13. package/dist/gateway/console-api/handlers/favorites.d.ts +9 -0
  14. package/dist/gateway/console-api/handlers/favorites.d.ts.map +1 -0
  15. package/dist/gateway/console-api/handlers/favorites.js +44 -0
  16. package/dist/gateway/console-api/handlers/favorites.js.map +1 -0
  17. package/dist/gateway/console-api/handlers/favorites.test.d.ts +2 -0
  18. package/dist/gateway/console-api/handlers/favorites.test.d.ts.map +1 -0
  19. package/dist/gateway/console-api/handlers/favorites.test.js +41 -0
  20. package/dist/gateway/console-api/handlers/favorites.test.js.map +1 -0
  21. package/dist/gateway/console-api/handlers/index.d.ts.map +1 -1
  22. package/dist/gateway/console-api/handlers/index.js +2 -0
  23. package/dist/gateway/console-api/handlers/index.js.map +1 -1
  24. package/dist/gateway/console-api/handlers/network-mapping.d.ts +7 -1
  25. package/dist/gateway/console-api/handlers/network-mapping.d.ts.map +1 -1
  26. package/dist/gateway/console-api/handlers/network-mapping.js +46 -0
  27. package/dist/gateway/console-api/handlers/network-mapping.js.map +1 -1
  28. package/dist/gateway/console-api/handlers/network.d.ts.map +1 -1
  29. package/dist/gateway/console-api/handlers/network.js +19 -3
  30. package/dist/gateway/console-api/handlers/network.js.map +1 -1
  31. package/dist/gateway/console-api/handlers/network.test.js +70 -8
  32. package/dist/gateway/console-api/handlers/network.test.js.map +1 -1
  33. package/dist/gateway/console-api/handlers/usage.d.ts.map +1 -1
  34. package/dist/gateway/console-api/handlers/usage.js +2 -1
  35. package/dist/gateway/console-api/handlers/usage.js.map +1 -1
  36. package/dist/gateway/console-api/types.d.ts +75 -1
  37. package/dist/gateway/console-api/types.d.ts.map +1 -1
  38. package/dist/gateway/console-api/types.js.map +1 -1
  39. package/dist/gateway/gateway.test.js +829 -3
  40. package/dist/gateway/gateway.test.js.map +1 -1
  41. package/dist/gateway/request-errors.test.js +30 -0
  42. package/dist/gateway/request-errors.test.js.map +1 -1
  43. package/dist/gateway/routing-through-gateway.test.js +120 -4
  44. package/dist/gateway/routing-through-gateway.test.js.map +1 -1
  45. package/dist/gateway/runtime.d.ts.map +1 -1
  46. package/dist/gateway/runtime.js +4 -0
  47. package/dist/gateway/runtime.js.map +1 -1
  48. package/dist/gateway/server.d.ts +20 -0
  49. package/dist/gateway/server.d.ts.map +1 -1
  50. package/dist/gateway/server.js +181 -25
  51. package/dist/gateway/server.js.map +1 -1
  52. package/dist/gateway/services/network.d.ts +6 -1
  53. package/dist/gateway/services/network.d.ts.map +1 -1
  54. package/dist/gateway/services/network.js +12 -1
  55. package/dist/gateway/services/network.js.map +1 -1
  56. package/dist/gateway/services/usage.d.ts +2 -0
  57. package/dist/gateway/services/usage.d.ts.map +1 -1
  58. package/dist/gateway/services/usage.js +19 -5
  59. package/dist/gateway/services/usage.js.map +1 -1
  60. package/dist/gateway/spend-feed.d.ts +4 -1
  61. package/dist/gateway/spend-feed.d.ts.map +1 -1
  62. package/dist/gateway/spend-feed.js +7 -0
  63. package/dist/gateway/spend-feed.js.map +1 -1
  64. package/dist/gateway/store-data.test.js +1 -1
  65. package/dist/gateway/store-data.test.js.map +1 -1
  66. package/dist/gateway/store-migrations.d.ts.map +1 -1
  67. package/dist/gateway/store-migrations.js +40 -0
  68. package/dist/gateway/store-migrations.js.map +1 -1
  69. package/dist/gateway/store.d.ts +63 -1
  70. package/dist/gateway/store.d.ts.map +1 -1
  71. package/dist/gateway/store.js +142 -21
  72. package/dist/gateway/store.js.map +1 -1
  73. package/dist/gateway/video-jobs.d.ts +12 -0
  74. package/dist/gateway/video-jobs.d.ts.map +1 -0
  75. package/dist/gateway/video-jobs.js +24 -0
  76. package/dist/gateway/video-jobs.js.map +1 -0
  77. package/dist/proxy/buyer-proxy.d.ts +15 -0
  78. package/dist/proxy/buyer-proxy.d.ts.map +1 -1
  79. package/dist/proxy/buyer-proxy.js +166 -19
  80. package/dist/proxy/buyer-proxy.js.map +1 -1
  81. package/dist/proxy/buyer-proxy.test.js +158 -1
  82. package/dist/proxy/buyer-proxy.test.js.map +1 -1
  83. package/dist/proxy/gateway-policy.test.js +75 -1
  84. package/dist/proxy/gateway-policy.test.js.map +1 -1
  85. package/dist/proxy/request-utils.d.ts +4 -0
  86. package/dist/proxy/request-utils.d.ts.map +1 -1
  87. package/dist/proxy/request-utils.js +4 -0
  88. package/dist/proxy/request-utils.js.map +1 -1
  89. package/dist/proxy/resource-routes.d.ts +2 -0
  90. package/dist/proxy/resource-routes.d.ts.map +1 -1
  91. package/dist/proxy/resource-routes.js +4 -0
  92. package/dist/proxy/resource-routes.js.map +1 -1
  93. package/dist/proxy/route-selection.d.ts +79 -0
  94. package/dist/proxy/route-selection.d.ts.map +1 -0
  95. package/dist/proxy/route-selection.js +79 -0
  96. package/dist/proxy/route-selection.js.map +1 -0
  97. package/dist/proxy/spend-attribution.d.ts +17 -1
  98. package/dist/proxy/spend-attribution.d.ts.map +1 -1
  99. package/dist/proxy/spend-attribution.js +45 -10
  100. package/dist/proxy/spend-attribution.js.map +1 -1
  101. package/dist/proxy/spend-attribution.test.d.ts +2 -0
  102. package/dist/proxy/spend-attribution.test.d.ts.map +1 -0
  103. package/dist/proxy/spend-attribution.test.js +63 -0
  104. package/dist/proxy/spend-attribution.test.js.map +1 -0
  105. package/dist/proxy/telemetry.d.ts +15 -0
  106. package/dist/proxy/telemetry.d.ts.map +1 -1
  107. package/dist/proxy/telemetry.js +26 -3
  108. package/dist/proxy/telemetry.js.map +1 -1
  109. package/dist/proxy/video-download.d.ts +9 -1
  110. package/dist/proxy/video-download.d.ts.map +1 -1
  111. package/dist/proxy/video-download.js +41 -6
  112. package/dist/proxy/video-download.js.map +1 -1
  113. package/dist/proxy/video-download.test.js +33 -3
  114. package/dist/proxy/video-download.test.js.map +1 -1
  115. package/package.json +7 -7
@@ -56,6 +56,11 @@ async function setup(t) {
56
56
  // The network: every send is charged and recorded against its request, like a paid seller.
57
57
  const sent = [];
58
58
  const rankedCandidates = [];
59
+ // Sellers that refuse with a 503 (unpaid), so the next recommendation is tried; an empty ranking fails the router.
60
+ const failingPeers = new Set();
61
+ const ranking = { empty: false };
62
+ // Headers every seller adds to its answers (a dishonest one may name a router).
63
+ const sellerHeaders = {};
59
64
  let proxy;
60
65
  const node = {
61
66
  router: { allowsPeerForPolicy: () => true, onResult: () => { } },
@@ -67,12 +72,16 @@ async function setup(t) {
67
72
  }
68
73
  catch { /* the ranking body is not inspected */ }
69
74
  sent.push({ peerId: peer.peerId, body });
75
+ if (failingPeers.has(peer.peerId)) {
76
+ return { requestId: request.requestId, statusCode: 503, headers: { 'content-type': 'application/json', ...sellerHeaders }, body: Buffer.from('{"error":{"message":"busy"}}') };
77
+ }
78
+ ;
70
79
  proxy._spendAttribution.record({
71
80
  requestId: request.requestId, sellerPeerId: peer.peerId,
72
81
  amountUsdc: String(peer.peerId === router.peerId ? RANKING_USDC : INFERENCE_USDC),
73
82
  inputTokens: '10', cachedInputTokens: '0', outputTokens: '5', outputImages: '0',
74
83
  });
75
- return { requestId: request.requestId, statusCode: 200, headers: { 'content-type': 'application/json' }, body: Buffer.from('{"choices":[]}') };
84
+ return { requestId: request.requestId, statusCode: 200, headers: { 'content-type': 'application/json', ...sellerHeaders }, body: Buffer.from('{"choices":[]}') };
76
85
  },
77
86
  };
78
87
  // The routing service: ranks the candidates it is sent, best trust first, and is paid through the buyer.
@@ -84,6 +93,8 @@ async function setup(t) {
84
93
  await context.sendRequest(peers.find((peer) => peer.peerId === router.peerId), { requestId: `${request.requestId}-rank`, method: 'POST', path: '/v1/routing/rank', headers: {}, body: new Uint8Array() });
85
94
  const byTrust = peers.filter((peer) => candidates.some((candidate) => candidate.peerId === peer.peerId))
86
95
  .sort((a, b) => (b.onChainReputationScore ?? 0) - (a.onChainReputationScore ?? 0));
96
+ if (ranking.empty)
97
+ return [];
87
98
  const routes = byTrust.map((peer) => ({ serviceId: 'gpt-5', peerId: peer.peerId, provider: 'openai' }));
88
99
  assert.equal(context.acceptRecommendations(routes), true);
89
100
  return routes;
@@ -124,9 +135,9 @@ async function setup(t) {
124
135
  json = JSON.parse(text);
125
136
  }
126
137
  catch { /* not json */ }
127
- return { status: res.status, json, text };
138
+ return { status: res.status, json, text, headers: res.headers };
128
139
  };
129
- return { store, feed, call, sent, rankedCandidates };
140
+ return { store, feed, call, sent, rankedCandidates, failingPeers, ranking, sellerHeaders };
130
141
  }
131
142
  const chatBody = { model: ROUTER_MODEL, messages: [{ role: 'user', content: 'Hello' }], routing: { cost_quality_tradeoff: 7 } };
132
143
  test('a key naming a routing service gets an answer from the seller it picked, among the sellers the key allows', async (t) => {
@@ -139,13 +150,84 @@ test('a key naming a routing service gets an answer from the seller it picked, a
139
150
  const inference = ctx.sent[1].body;
140
151
  assert.equal(inference['routing'], undefined, 'routing options never reach the seller');
141
152
  assert.equal(inference['model'], 'gpt-5');
153
+ assert.equal(res.headers.get('x-antseed-router-peer-id'), router.peerId, 'the client sees which router ranked it');
154
+ assert.equal(res.headers.get('x-antseed-router-service'), 'alpha-route');
155
+ assert.equal(res.headers.get('x-antseed-router-rank'), '1');
142
156
  const [row] = ctx.store.listRequests({ keyId: key.id });
143
157
  assert.equal(row.status, 200);
144
158
  assert.equal(row.model, 'alpha-route');
145
159
  assert.equal(row.sellerPeerId, first.peerId, 'the log names the seller that answered');
146
- // Both the ranking and the inference are charged to the key.
160
+ assert.equal(row.servedModel, 'gpt-5', 'and the model the router picked');
161
+ assert.deepEqual(row.router, { peerId: router.peerId, service: 'alpha-route', rank: 1 });
162
+ // Both the ranking and the inference are charged to the key; the ranking is told apart as the router's fee.
147
163
  await ctx.feed.pollOnce();
148
164
  assert.equal(ctx.store.keyUsageSummaries([key.id], 0).get(key.id).spentUsdc, RANKING_USDC + INFERENCE_USDC);
165
+ const settled = ctx.store.getRequest(row.tag);
166
+ assert.equal(settled.spentUsdc, RANKING_USDC + INFERENCE_USDC);
167
+ assert.equal(settled.routingSpentUsdc, RANKING_USDC);
168
+ assert.equal(settled.costPending, false);
169
+ // Usage groups by router and the log filters by it.
170
+ const byRouter = ctx.store.usageReport({ keyId: key.id }, 'router');
171
+ assert.deepEqual(byRouter.groups.map((group) => [group.group, group.requests, group.spentUsdc]), [[router.peerId, 1, RANKING_USDC + INFERENCE_USDC]]);
172
+ assert.equal(ctx.store.listRequests({ keyId: key.id, routerPeerId: router.peerId }).length, 1);
173
+ assert.equal(ctx.store.listRequests({ keyId: key.id, routerPeerId: first.peerId }).length, 0);
174
+ });
175
+ test('a routed request served by the router\'s second pick records that rank', async (t) => {
176
+ const ctx = await setup(t);
177
+ const { secret, key } = ctx.store.createKey({ label: 'team', limits: NO_LIMITS, expiresAt: null, routingPolicy: null });
178
+ ctx.failingPeers.add(second.peerId);
179
+ const res = await ctx.call(secret, '/v1/chat/completions', chatBody);
180
+ assert.equal(res.status, 200, res.text);
181
+ assert.deepEqual(ctx.sent.map((entry) => entry.peerId), [router.peerId, second.peerId, first.peerId]);
182
+ assert.equal(res.headers.get('x-antseed-router-rank'), '2');
183
+ const [row] = ctx.store.listRequests({ keyId: key.id });
184
+ assert.equal(row.sellerPeerId, first.peerId);
185
+ assert.deepEqual(row.router, { peerId: router.peerId, service: 'alpha-route', rank: 2 });
186
+ });
187
+ test('a seller cannot name a router: its router headers are dropped on routed and direct requests', async (t) => {
188
+ const ctx = await setup(t);
189
+ const { secret, key } = ctx.store.createKey({ label: 'team', limits: NO_LIMITS, expiresAt: null, routingPolicy: null });
190
+ const fake = 'f'.repeat(40);
191
+ Object.assign(ctx.sellerHeaders, { 'X-Antseed-Router-Peer-Id': fake, 'x-antseed-router-service': 'fake-route', 'x-antseed-router-rank': '9' });
192
+ const routed = await ctx.call(secret, '/v1/chat/completions', chatBody);
193
+ assert.equal(routed.status, 200, routed.text);
194
+ assert.equal(routed.headers.get('x-antseed-router-peer-id'), router.peerId);
195
+ assert.equal(routed.headers.get('x-antseed-router-rank'), '1');
196
+ ctx.failingPeers.add(second.peerId);
197
+ ctx.failingPeers.add(first.peerId);
198
+ const refused = await ctx.call(secret, '/v1/chat/completions', { ...chatBody, model: `${first.peerId}@gpt-5` });
199
+ assert.equal(refused.headers.get('x-antseed-router-peer-id'), null, 'a seller refusal names no router either');
200
+ ctx.failingPeers.clear();
201
+ const direct = await ctx.call(secret, '/v1/chat/completions', { model: 'gpt-5', messages: [{ role: 'user', content: 'Hello' }] });
202
+ assert.equal(direct.status, 200, direct.text);
203
+ assert.equal(direct.headers.get('x-antseed-router-peer-id'), null);
204
+ const rows = ctx.store.listRequests({ keyId: key.id });
205
+ assert.deepEqual(rows.map((row) => row.router?.peerId ?? null), [null, null, router.peerId], 'only the routed request has a router, and the real one');
206
+ assert.equal(ctx.store.listRequests({ keyId: key.id, routerPeerId: fake }).length, 0);
207
+ });
208
+ test('when every recommended seller refuses, the log keeps the last pick tried and the failure', async (t) => {
209
+ const ctx = await setup(t);
210
+ const { secret, key } = ctx.store.createKey({ label: 'team', limits: NO_LIMITS, expiresAt: null, routingPolicy: null });
211
+ ctx.failingPeers.add(first.peerId);
212
+ ctx.failingPeers.add(second.peerId);
213
+ const res = await ctx.call(secret, '/v1/chat/completions', chatBody);
214
+ assert.equal(res.status, 503, res.text);
215
+ assert.deepEqual(ctx.sent.map((entry) => entry.peerId), [router.peerId, second.peerId, first.peerId]);
216
+ const [row] = ctx.store.listRequests({ keyId: key.id });
217
+ assert.equal(row.status, 503);
218
+ assert.deepEqual(row.router, { peerId: router.peerId, service: 'alpha-route', rank: 2 }, 'rank 2 was tried last, not served');
219
+ });
220
+ test('a failed ranking is logged against the router, with no seller', async (t) => {
221
+ const ctx = await setup(t);
222
+ const { secret, key } = ctx.store.createKey({ label: 'team', limits: NO_LIMITS, expiresAt: null, routingPolicy: null });
223
+ ctx.ranking.empty = true;
224
+ const res = await ctx.call(secret, '/v1/chat/completions', chatBody);
225
+ assert.equal(res.status, 502, res.text);
226
+ assert.equal(res.headers.get('x-antseed-router-peer-id'), router.peerId);
227
+ const [row] = ctx.store.listRequests({ keyId: key.id });
228
+ assert.equal(row.status, 502);
229
+ assert.equal(row.sellerPeerId, null, 'the router is not reported as the seller');
230
+ assert.deepEqual(row.router, { peerId: router.peerId, service: 'alpha-route', rank: null });
149
231
  });
150
232
  test('a key limited to other models cannot use a routing service, and no ranking is bought', async (t) => {
151
233
  const ctx = await setup(t);
@@ -174,4 +256,38 @@ test('/v1/models?type=router through a key lists the routers that key may use',
174
256
  const limited = ctx.store.createKey({ label: 'limited', limits: NO_LIMITS, expiresAt: null, routingPolicy: { allowedModels: ['gpt-5'] } });
175
257
  assert.deepEqual((await ctx.call(limited.secret, '/v1/models?type=router')).json.data, []);
176
258
  });
259
+ test('the request log keeps why automatic routing picked the seller that served each request', async (t) => {
260
+ const ctx = await setup(t);
261
+ const { secret, key } = ctx.store.createKey({ label: 'team', limits: NO_LIMITS, expiresAt: null });
262
+ const body = { model: 'gpt-5', messages: [{ role: 'user', content: 'Hello' }] };
263
+ // A seller cannot replace the buyer's explanation with its own.
264
+ const forged = Buffer.from(JSON.stringify({ rank: 1, of: 1, attempt: 0, pick: 'best', ordering: 'expected-cost', record: 'model', expectedCostUsd: 0, expectedSeconds: 0, successRate: 1, observations: 999, poolSize: 1, inFlight: 0 })).toString('base64url');
265
+ ctx.sellerHeaders['X-Antseed-Route-Selection'] = forged;
266
+ const res = await ctx.call(secret, '/v1/chat/completions', body);
267
+ assert.equal(res.status, 200, res.text);
268
+ assert.notEqual(res.headers.get('x-antseed-route-selection'), forged);
269
+ const [row] = ctx.store.listRequests({ keyId: key.id });
270
+ const picked = ctx.store.getRequest(row.tag).routeSelection;
271
+ assert.equal(picked?.of, 2, 'the buyer\'s selection, not the seller\'s');
272
+ assert.equal(picked?.rank, 1);
273
+ assert.equal(picked?.of, 2);
274
+ assert.equal(picked?.attempt, 0);
275
+ assert.equal(picked?.pick, 'order');
276
+ assert.equal(picked?.ordering, 'trust', 'without routing preferences the buyer orders by trust');
277
+ assert.equal(picked?.record, 'none', 'nothing was known of the seller yet');
278
+ // The seller that served first now fails: the next one serves, as a failover.
279
+ ctx.failingPeers.add(row.sellerPeerId);
280
+ const again = await ctx.call(secret, '/v1/chat/completions', body);
281
+ assert.equal(again.status, 200, again.text);
282
+ const [latest] = ctx.store.listRequests({ keyId: key.id });
283
+ assert.notEqual(latest.sellerPeerId, row.sellerPeerId);
284
+ const failover = ctx.store.getRequest(latest.tag).routeSelection;
285
+ assert.equal(failover?.pick, 'failover');
286
+ assert.equal(failover?.rank, 2);
287
+ assert.equal(failover?.attempt, 1);
288
+ // A pinned request is not ranked, so it records no selection.
289
+ await ctx.call(secret, '/v1/chat/completions', { ...body, model: `${first.peerId}@gpt-5` });
290
+ const [pinned] = ctx.store.listRequests({ keyId: key.id });
291
+ assert.equal(ctx.store.getRequest(pinned.tag).routeSelection, null);
292
+ });
177
293
  //# sourceMappingURL=routing-through-gateway.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routing-through-gateway.test.js","sourceRoot":"","sources":["../../src/gateway/routing-through-gateway.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing-through-gateway.test.js","sourceRoot":"","sources":["../../src/gateway/routing-through-gateway.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/gateway/runtime.ts"],"names":[],"mappings":"AASA,OAAO,EAAiB,KAAK,oBAAoB,EAA4B,MAAM,aAAa,CAAA;AAEhG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAOrE,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAA;IACtB,kFAAkF;IAClF,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,qEAAqE;IACrE,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,oDAAoD;IACpD,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,oBAAoB,GAAG,IAAI,CAAA;CAChF;AAED,6EAA6E;AAC7E,MAAM,WAAW,oBAAqB,SAAQ,WAAW,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACxF,4DAA4D;IAC5D,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,qGAAqG;IACrG,SAAS,CAAC,IAAI,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,MAAM,CAAA;IAC5B,WAAW,EAAE,OAAO,CAAA;IACpB,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,mDAAmD;IACnD,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACpC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B;AAsCD,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOtG;AAED,iGAAiG;AACjG,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkGjG"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/gateway/runtime.ts"],"names":[],"mappings":"AASA,OAAO,EAAiB,KAAK,oBAAoB,EAA4B,MAAM,aAAa,CAAA;AAEhG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAOrE,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAA;IACtB,kFAAkF;IAClF,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,qEAAqE;IACrE,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,oDAAoD;IACpD,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,oBAAoB,GAAG,IAAI,CAAA;CAChF;AAED,6EAA6E;AAC7E,MAAM,WAAW,oBAAqB,SAAQ,WAAW,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACxF,4DAA4D;IAC5D,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,qGAAqG;IACrG,SAAS,CAAC,IAAI,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,MAAM,CAAA;IAC5B,WAAW,EAAE,OAAO,CAAA;IACpB,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,mDAAmD;IACnD,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACpC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B;AAsCD,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOtG;AAED,iGAAiG;AACjG,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAsGjG"}
@@ -90,6 +90,9 @@ export async function startGatewayRuntime(options) {
90
90
  const identityAddress = (name) => liveBuyerIdentityAddress(buyerPort, name);
91
91
  const accounting = new GatewayAccounting(store, {
92
92
  holdUsdc: parseBaseUnits(config.payments?.maxPerRequestUsdc ?? DEFAULT_MAX_PER_REQUEST_USDC),
93
+ // The buyer's limit for one video, read from the same config the buyer runs with.
94
+ ...(config.payments?.maxVideoRequestUsdc ? { maxVideoRequestUsdc: parseBaseUnits(config.payments.maxVideoRequestUsdc) } : {}),
95
+ ...(options.onLog ? { onLog: options.onLog } : {}),
93
96
  });
94
97
  const spendFeed = new SpendFeedPoller({
95
98
  buyerPort,
@@ -129,6 +132,7 @@ export async function startGatewayRuntime(options) {
129
132
  identityAddress,
130
133
  spendFeedState: () => spendFeed.state,
131
134
  refreshSpendFeed: () => spendFeed.pollOnce(),
135
+ videoBudgetEnforced: () => spendFeed.videoBudgetEnforced,
132
136
  listenPort: options.listenPort,
133
137
  listenHost,
134
138
  onLog: options.onLog,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/gateway/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/gateway/runtime.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,12 @@ export interface GatewayServerOptions {
19
19
  identityAddress: (buyerIdentity: string) => Promise<string | null>;
20
20
  spendFeedState: () => SpendFeedState;
21
21
  refreshSpendFeed: () => Promise<void>;
22
+ /**
23
+ * Whether the buyer refuses a video priced above the room it is told about
24
+ * (older buyers ignore it). Without it, video creates of capped keys are
25
+ * refused: the price must be checked before a job starts.
26
+ */
27
+ videoBudgetEnforced?: () => boolean;
22
28
  /** x402 top-ups into a key's buyer wallet; null disables `POST /v1/key/topup`. */
23
29
  topup?: GatewayTopupOptions | null;
24
30
  listenPort?: number;
@@ -98,6 +104,20 @@ export declare class GatewayServer {
98
104
  private _routingPolicy;
99
105
  /** The request's tag; a paid request is admitted against its budgets first (402 answered here when one is spent). */
100
106
  private _admit;
107
+ private _videoBudgetEnforced;
108
+ /** Whether `key` created the video job, as remembered by its commitment or, for older jobs, the request log. */
109
+ private _ownsVideoJob;
110
+ /**
111
+ * Accounting for a video request once answered. An accepted create records
112
+ * its job: the key that owns it and, for a key with caps, the price it keeps
113
+ * counted until the buyer's charge for its delivery arrives. That price is
114
+ * the buyer's (set only by the buyer), never more than the allowance the
115
+ * create held; without a readable price the whole allowance stays held. A
116
+ * retrieve the buyer marks as retiring the job (it failed, its seller no
117
+ * longer has it, or the buyer has no record of it) releases the job: it can
118
+ * never be delivered or charged. Nothing a seller sends can release it.
119
+ */
120
+ private _settleVideo;
101
121
  /**
102
122
  * Sends an admitted request to the buyer and streams the answer back.
103
123
  * Every path must finish the request (and so release or start expiring
@@ -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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"}