@antseed/cli 0.1.147 → 0.1.149

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 (46) hide show
  1. package/README.md +18 -3
  2. package/dist/cli/commands/buyer/start.d.ts +1 -0
  3. package/dist/cli/commands/buyer/start.d.ts.map +1 -1
  4. package/dist/cli/commands/buyer/start.js +10 -9
  5. package/dist/cli/commands/buyer/start.js.map +1 -1
  6. package/dist/cli/commands/buyer/start.test.js +30 -1
  7. package/dist/cli/commands/buyer/start.test.js.map +1 -1
  8. package/dist/cli/commands/network/browse.d.ts.map +1 -1
  9. package/dist/cli/commands/network/browse.js +65 -114
  10. package/dist/cli/commands/network/browse.js.map +1 -1
  11. package/dist/config/defaults.d.ts.map +1 -1
  12. package/dist/config/defaults.js +6 -0
  13. package/dist/config/defaults.js.map +1 -1
  14. package/dist/config/loader.d.ts.map +1 -1
  15. package/dist/config/loader.js +39 -0
  16. package/dist/config/loader.js.map +1 -1
  17. package/dist/config/loader.test.js +34 -0
  18. package/dist/config/loader.test.js.map +1 -1
  19. package/dist/config/types.d.ts +3 -0
  20. package/dist/config/types.d.ts.map +1 -1
  21. package/dist/config/validation.d.ts.map +1 -1
  22. package/dist/config/validation.js +17 -0
  23. package/dist/config/validation.js.map +1 -1
  24. package/dist/proxy/buyer-proxy.d.ts +20 -2
  25. package/dist/proxy/buyer-proxy.d.ts.map +1 -1
  26. package/dist/proxy/buyer-proxy.js +408 -58
  27. package/dist/proxy/buyer-proxy.js.map +1 -1
  28. package/dist/proxy/buyer-proxy.test.js +828 -56
  29. package/dist/proxy/buyer-proxy.test.js.map +1 -1
  30. package/dist/proxy/conversation-store.d.ts +6 -6
  31. package/dist/proxy/conversation-store.d.ts.map +1 -1
  32. package/dist/proxy/conversation-store.js +16 -0
  33. package/dist/proxy/conversation-store.js.map +1 -1
  34. package/dist/proxy/network-models.d.ts +76 -0
  35. package/dist/proxy/network-models.d.ts.map +1 -0
  36. package/dist/proxy/network-models.js +229 -0
  37. package/dist/proxy/network-models.js.map +1 -0
  38. package/dist/proxy/network-models.test.d.ts +2 -0
  39. package/dist/proxy/network-models.test.d.ts.map +1 -0
  40. package/dist/proxy/network-models.test.js +734 -0
  41. package/dist/proxy/network-models.test.js.map +1 -0
  42. package/dist/proxy/routing.d.ts +3 -1
  43. package/dist/proxy/routing.d.ts.map +1 -1
  44. package/dist/proxy/routing.js +69 -16
  45. package/dist/proxy/routing.js.map +1 -1
  46. package/package.json +5 -5
package/README.md CHANGED
@@ -22,7 +22,7 @@ Command-line interface and web dashboard for the AntSeed Network — a P2P netwo
22
22
  | `antseed buyer deposit <amount>` | Deposit USDC for payments |
23
23
  | `antseed buyer withdraw <amount>` | Withdraw USDC from deposits |
24
24
  | `antseed buyer balance` | Check wallet and deposit balance |
25
- | `antseed network browse` | Browse available services and pricing |
25
+ | `antseed network browse` | Browse peers, models, and pricing (same catalog as `/v1/models`) |
26
26
  | `antseed payments` | Launch the payments portal |
27
27
  | **Session** | |
28
28
  | `antseed buyer connection get` | Show current session state (pinned service, peer) |
@@ -272,9 +272,24 @@ For production sellers, prefer a dedicated Base JSON-RPC endpoint over public de
272
272
 
273
273
  This release announces metadata v12. Buyers supporting only older metadata versions drop v12 sellers from discovery, while updated buyers continue accepting older v10/v11 sellers. Upgrade buyer CLIs and desktop apps before upgrading sellers. Removing capability or unit-billing fields does not downgrade the metadata version; rollback requires running the older seller binary.
274
274
 
275
- ### Peer pinning (live, while proxy is running)
275
+ ### Model-only routing and peer pinning
276
276
 
277
- After `antseed buyer start` is running, you can pin all subsequent requests to a peer without restarting:
277
+ Pinning a peer is optional. A request that names only a model auto-selects the
278
+ highest-reputation compatible peer allowed by your buyer policy, and fails over
279
+ to the next-ranked peer on peer-attributed errors. Discover what the network
280
+ serves without any pin:
281
+
282
+ ```bash
283
+ # Every model on the network, aggregated across sellers (answered locally)
284
+ curl -s http://localhost:8377/v1/models | jq '.data[].id'
285
+
286
+ # Peers, pricing, and reputation
287
+ antseed network browse
288
+ ```
289
+
290
+ When you do want to force a specific seller, pin it. After `antseed buyer
291
+ start` is running, you can pin all subsequent requests to a peer without
292
+ restarting:
278
293
 
279
294
  ```bash
280
295
  # Pin all requests to a specific peer (bypasses router for peer selection)
@@ -14,5 +14,6 @@ export declare function resolveBuyerRouterName(options: {
14
14
  router?: string;
15
15
  }): string;
16
16
  export declare function buildBuyerBootstrapEntries(configuredBootstrapNodes: string[] | undefined, localSeederDhtPort?: number): string[];
17
+ export declare function isCompatibleBuyerProxy(port: number, timeoutMs?: number): Promise<boolean>;
17
18
  export declare function registerBuyerStartCommand(buyerCmd: Command): void;
18
19
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBxC,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAQ9D,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAA;CACpC,GAAG,qBAAqB,CASxB;AAED,wBAAgB,oCAAoC,CAAC,WAAW,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKxG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE3E;AAED,wBAAgB,0BAA0B,CACxC,wBAAwB,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9C,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,EAAE,CAiBV;AAgHD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAuTjE"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBxC,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAQ9D,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAA;CACpC,GAAG,qBAAqB,CASxB;AAED,wBAAgB,oCAAoC,CAAC,WAAW,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKxG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE3E;AAED,wBAAgB,0BAA0B,CACxC,wBAAwB,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9C,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,EAAE,CAiBV;AAyED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAiC7F;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA8TjE"}
@@ -131,7 +131,7 @@ async function isPortReachable(port, timeoutMs = 700) {
131
131
  socket.setTimeout(timeoutMs, () => finish(false));
132
132
  });
133
133
  }
134
- async function isCompatibleBuyerProxy(port, timeoutMs = 1200) {
134
+ export async function isCompatibleBuyerProxy(port, timeoutMs = 1200) {
135
135
  const overallBudgetMs = Math.max(1, timeoutMs);
136
136
  const startedAt = Date.now();
137
137
  const reachabilityTimeoutMs = Math.min(overallBudgetMs, 700);
@@ -153,10 +153,6 @@ async function isCompatibleBuyerProxy(port, timeoutMs = 1200) {
153
153
  if (antseedHeaderNames.some((header) => response.headers.has(header)))
154
154
  return true;
155
155
  const body = (await response.text()).toLowerCase();
156
- // Any of these markers indicate we reached an Antseed buyer proxy on this
157
- // port. The `no_peer_pinned` case is the common one now that auto
158
- // selection is disabled — a fresh proxy with no session pin answers
159
- // /v1/models with a structured `{ error: { type: 'no_peer_pinned', ... } }`.
160
156
  return body.includes('no sellers available on the network')
161
157
  || body.includes('no peers support')
162
158
  || body.includes('p2p request failed')
@@ -331,6 +327,9 @@ export function registerBuyerStartCommand(buyerCmd) {
331
327
  console.log(chalk.dim(` max per-request USDC: ${(Number(maxPerRequestUsdc) / 1_000_000).toFixed(6)}`));
332
328
  console.log(chalk.dim(` max reserve USDC: ${(Number(maxReserveAmountUsdc) / 1_000_000).toFixed(6)}`));
333
329
  console.log(chalk.dim(` min peer reputation: ${effectiveBuyerConfig.minPeerReputation}`));
330
+ console.log(chalk.dim(` auto routing: min trust=${effectiveBuyerConfig.routingPreferences.minTrustScore}, `
331
+ + `max input=${effectiveBuyerConfig.routingPreferences.maxInputUsdPerMillion} USD/1M, `
332
+ + `prefer free=${effectiveBuyerConfig.routingPreferences.preferFreePeers ? 'yes' : 'no'}`));
334
333
  console.log(chalk.dim(` peer refresh interval: ${effectiveBuyerConfig.peerRefreshIntervalMs}ms`));
335
334
  console.log(chalk.dim(` metadata fetch timeout: ${effectiveBuyerConfig.metadataFetchTimeoutMs}ms`));
336
335
  console.log(chalk.dim(` metadata v2 service opt-out: ${effectiveBuyerConfig.disableMetadataV2Services ? 'enabled' : 'disabled'}`));
@@ -342,10 +341,10 @@ export function registerBuyerStartCommand(buyerCmd) {
342
341
  console.log(chalk.yellow(` pinned peer: ${pinnedPeerId} (router bypassed)`));
343
342
  }
344
343
  else {
345
- console.log(chalk.yellow(' pinned peer: none — auto-selection is disabled, requests will fail until a peer is pinned'));
346
- console.log(chalk.dim(' Pin a peer with: antseed network browse → antseed buyer connection set --peer <peerId>'));
347
- console.log(chalk.dim(' Or per-request: x-antseed-pin-peer: <peerId> header'));
348
- console.log(chalk.dim(' Or in model: <peerId>@<model>'));
344
+ console.log(chalk.yellow(' pinned peer: none — model-only requests auto-select the highest-reputation allowed peer'));
345
+ console.log(chalk.dim(' Explicit session pin: antseed network browse → antseed buyer connection set --peer <peerId>'));
346
+ console.log(chalk.dim(' Explicit request pin: x-antseed-pin-peer: <peerId> header'));
347
+ console.log(chalk.dim(' Explicit model pin: <peerId>@<model>'));
349
348
  }
350
349
  console.log('');
351
350
  const node = new AntseedNode({
@@ -423,6 +422,8 @@ export function registerBuyerStartCommand(buyerCmd) {
423
422
  node,
424
423
  pinnedPeerId,
425
424
  dataDir: globalOpts.dataDir,
425
+ configPath: globalOpts.config,
426
+ routingPreferences: effectiveBuyerConfig.routingPreferences,
426
427
  backgroundRefreshIntervalMs: effectiveBuyerConfig.peerRefreshIntervalMs,
427
428
  ...(verifierPolicy ? { verifier: verifierPolicy } : {}),
428
429
  });
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE5F,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACxH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAuB,MAAM,8BAA8B,CAAA;AAC7G,OAAO,EAAE,2BAA2B,EAA8B,MAAM,8BAA8B,CAAA;AAStG,MAAM,UAAU,mCAAmC,CAAC,OAOnD;IACC,MAAM,SAAS,GAA0B,EAAE,CAAA;IAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAA;IAClE,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;QAAE,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACpG,IAAI,OAAO,CAAC,qBAAqB,KAAK,SAAS;QAAE,SAAS,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAA;IAChH,IAAI,OAAO,CAAC,sBAAsB,KAAK,SAAS;QAAE,SAAS,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAA;IACnH,IAAI,OAAO,CAAC,sBAAsB,KAAK,SAAS;QAAE,SAAS,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAA;IACnH,IAAI,OAAO,CAAC,yBAAyB,KAAK,IAAI;QAAE,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAA;IAC1F,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,WAA2B;IAC9E,OAAO;QACL,sBAAsB,EAAE,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC;QAC7D,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC;KACjE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAA4B;IACjE,OAAQ,OAAO,CAAC,MAA6B,IAAI,OAAO,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,wBAA8C,EAC9C,kBAA2B;IAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC;QACxD,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAClG,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;QACvC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACvE,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,CAAA;IAEhC,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,cAAc,GAAG,aAAa,IAAI,CAAC,KAAK,CAAC,kBAA4B,CAAC,EAAE,CAAA;QAC9E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAA;IAChE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAA;IAClE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,SAAS,GAAG,IAAI;IAC5D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;IAC/D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;YACnC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,EAAE;aACX,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,KAAK,CAAA;QAC9B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0B,CAAA;QAC7D,OAAO,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAe;IAC/C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;QACpD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA+E,CAAA;QAC3G,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;gBAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAA;gBAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAA;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;AACvE,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG;IAC1D,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9E,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,MAAM,MAAM,GAAG,CAAC,SAAkB,EAAQ,EAAE;YAC1C,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,OAAO,CAAC,SAAS,CAAC,CAAA;QACpB,CAAC,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACzC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAY,EAAE,SAAS,GAAG,IAAI;IACzE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;IAC5D,IAAI,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,qBAAqB,CAAC;QAAE,OAAO,KAAK,CAAA;IAErE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;IACxC,MAAM,iBAAiB,GAAG,eAAe,GAAG,SAAS,CAAA;IACrD,IAAI,iBAAiB,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAExC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAA;IACvE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE;YAC7E,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAA;QACF,MAAM,kBAAkB,GAAG,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAA;QAC9F,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAElF,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,qCAAqC,CAAC;eACtD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;eACjC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;eACnC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;eAC5B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;eAC/B,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAiB;IACzD,QAAQ;SACL,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACzE,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;SAC9D,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,CAAC;SACnE,MAAM,CAAC,sCAAsC,EAAE,8DAA8D,EAAE,UAAU,CAAC;SAC1H,MAAM,CAAC,uCAAuC,EAAE,+DAA+D,EAAE,UAAU,CAAC;SAC5H,MAAM,CAAC,sCAAsC,EAAE,yEAAyE,EAAE,MAAM,CAAC;SACjI,MAAM,CAAC,gCAAgC,EAAE,qEAAqE,CAAC;SAC/G,MAAM,CAAC,iBAAiB,EAAE,wFAAwF,CAAC;SACnH,MAAM,CAAC,6BAA6B,EAAE,+DAA+D,CAAC;SACtG,MAAM,CAAC,mBAAmB,EAAE,wHAAwH,CAAC;SACrJ,MAAM,CAAC,oBAAoB,EAAE,8FAA8F,CAAC;SAC5H,MAAM,CAAC,eAAe,EAAE,sCAAsC,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACvF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,GAAG,CAAA;YAClC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAA;QAC/C,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,IAA0B,CAAA;QACvD,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC,CAAA;YAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;YAC3D,IAAI,EAAE,OAAO,CAAC,IAA0B;YACxC,qBAAqB,EAAE,OAAO,CAAC,qBAA2C;YAC1E,sBAAsB,EAAE,OAAO,CAAC,sBAA4C;YAC5E,sBAAsB,EAAE,OAAO,CAAC,sBAA4C;YAC5E,yBAAyB,EAAE,OAAO,CAAC,yBAAgD;SACpF,CAAC,CAAA;QACF,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;YACvD,MAAM;YACN,cAAc,EAAE,gBAAgB;SACjC,CAAC,CAAA;QAEF,IAAI,MAAM,CAAA;QACV,IAAI,SAAS,GAA4C,EAAE,CAAA;QAC3D,MAAM,UAAU,GAAG,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAA4B,EAAE,CAAC,CAAA;QAE3F,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;YAC7D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;YAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,QAAQ,cAAc,CAAC,CAAC,CAAA;gBACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,QAAQ,UAAU,QAAQ,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAA;gBAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,gEAAgE;YAChE,mEAAmE;YACnE,MAAM,qBAAqB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACrE,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;YAC7E,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBACvD,MAAM,UAAU,GAAG,oCAAoC,CAAC,oBAAoB,CAAC,CAAA;gBAC7E,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAgC,CAAC,CAAA;gBAC7I,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;gBAChD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,WAAW,UAAU,CAAC,CAAC,CAAA;gBACrE,SAAS,GAAI,MAAc,CAAC,UAAU,IAAI,EAAE,CAAA;YAC9C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA2B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;gBAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,gEAAgE;YAChE,mEAAmE;YACnE,MAAM,qBAAqB,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,UAAU,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;YACvE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAA;gBACjD,MAAM,UAAU,GAAG,oCAAoC,CAAC,oBAAoB,CAAC,CAAA;gBAC7E,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,UAAU,CAAC,CAAA;gBAClG,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;gBAChD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,WAAW,UAAU,CAAC,CAAC,CAAA;gBACrE,SAAS,GAAI,MAAc,CAAC,UAAU,IAAI,EAAE,CAAA;YAC9C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA2B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;gBAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAC3G,MAAM,cAAc,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAEjF,MAAM,WAAW,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAA;QAE/D,IAAI,cAA8C,CAAA;QAClD,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAA;QACpF,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAA;QAC/C,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,OAAO,EAAE,eAAe,EAAE,OAAO;YACjC,MAAM,EAAE,eAAe,EAAE,MAAM;YAC/B,uBAAuB,EAAE,eAAe,EAAE,uBAAuB;YACjE,uBAAuB,EAAE,eAAe,EAAE,uBAAuB;YACjE,wBAAwB,EAAE,eAAe,EAAE,wBAAwB;YACnE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB;SAC1D,CAAC,CAAA;QACF,IAAI,iBAAiB,GAAG,aAAa,IAAI,IAAI,CAAA;QAE7C,IAAI,iBAAiB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YACtD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,iBAAiB,GAAG,KAAK,CAAA;gBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8CAA8C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;gBAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC,CAAA;YACjH,CAAC;QACH,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACtB,cAAc,GAAG;gBACf,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxF,eAAe,EAAE,WAAW,CAAC,uBAAuB;gBACpD,eAAe,EAAE,WAAW,CAAC,uBAAuB;gBACpD,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3G,WAAW,EAAE,WAAW,CAAC,mBAAmB;gBAC5C,qEAAqE;gBACrE,kEAAkE;gBAClE,+DAA+D;gBAC/D,0DAA0D;gBAC1D,mEAAmE;gBACnE,kCAAkC;gBAClC,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrG,GAAG,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChH,OAAO,EAAE,WAAW,CAAC,UAAU;gBAC/B,wBAAwB,EAAE,eAAe,EAAE,qBAAqB;oBAC9D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC,CAAC;oBACnF,CAAC,CAAC,SAAS;gBACb,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,eAAe;gBACjD,kEAAkE;gBAClE,6DAA6D;gBAC7D,qEAAqE;gBACrE,kEAAkE;gBAClE,8DAA8D;gBAC9D,sEAAsE;gBACtE,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,IAAI,QAAQ;gBACjE,oBAAoB,EAAE,MAAM,CAAC,QAAQ,EAAE,oBAAoB,IAAI,SAAS;gBACxE,yBAAyB,EAAE,oBAAoB,CAAC,yBAAyB;aAC1E,CAAA;QACH,CAAC;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ;YACzC,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO;YAC5F,CAAC,CAAC,UAAU,CAAA;QACd,MAAM,QAAQ,GAAG,kBAAkB,CAAC,kBAAkB,IAAI,SAAS,CAAC,CAAA;QACpE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACjH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAA;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,YAAY,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAA;QACvM,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,EAAE,iBAAiB,IAAI,QAAQ,CAAA;QACxE,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,EAAE,oBAAoB,IAAI,SAAS,CAAA;QAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACvG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACtG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,oBAAoB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;QAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CACnB,6BAA6B,oBAAoB,CAAC,kBAAkB,CAAC,aAAa,IAAI;cACpF,aAAa,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,WAAW;cACrF,eAAe,oBAAoB,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1F,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,oBAAoB,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAA;QAClG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,oBAAoB,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAA;QACpG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,oBAAoB,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;QACnI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,oBAAoB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,YAAY,oBAAoB,CAAC,CAAC,CAAA;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2FAA2F,CAAC,CAAC,CAAA;YACtH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iGAAiG,CAAC,CAAC,CAAA;YACzH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAA;YACvF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAA;QACtE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEf,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC;YAC3B,IAAI,EAAE,OAAO;YACb,cAAc;YACd,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,UAAU,EAAE,UAAU,CAAC,MAAM;YAC7B,sBAAsB,EAAE,oBAAoB,CAAC,sBAAsB;YACnE,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,oBAAoB,CAAC,YAAY;SAChD,CAAC,CAAA;QAEF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAEtB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAClB,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAA;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAuB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAS,CAAA;gBAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAA;gBACvC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;oBACxC,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxF,eAAe,EAAE,WAAW,CAAC,uBAAuB;oBACpD,WAAW,EAAE,WAAW,CAAC,mBAAmB;oBAC5C,UAAU,EAAE,WAAW,CAAC,UAAU;iBACnC,CAAC,CAAA;gBACF,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;gBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAA;gBAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;YAC5E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAA;YAC7E,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAA;QAChD,MAAM,YAAY,GAAG,GAAG,CAAC,gCAAgC,SAAS,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;QAChF,IAAI,cAA0C,CAAA;QAC9C,IAAI,CAAC;YACH,cAAc,GAAG,qBAAqB,CAAC;gBACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;aACzC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,CAAA;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,oFAAoF;QACpF,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,EAAE,CAAC,CAAA;YACnG,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAA;gBAC9B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,aAAa,EAAE,4BAA6B,GAAa,CAAC,OAAO,EAAE,CAAA;oBAC/E,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;wBAC3B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;wBACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACjB,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,wDAAwD,CAAC,CAAC,CAAA;gBAC5F,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC;YAC3B,IAAI,EAAE,SAAS;YACf,IAAI;YACJ,YAAY;YACZ,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,UAAU,EAAE,UAAU,CAAC,MAAM;YAC7B,kBAAkB,EAAE,oBAAoB,CAAC,kBAAkB;YAC3D,2BAA2B,EAAE,oBAAoB,CAAC,qBAAqB;YACvE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAA;QACF,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAE7B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;YACnB,iBAAiB,GAAG,IAAI,CAAA;YACxB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,uCAAuC,SAAS,EAAE,CAAC,CAAC,CAAA;YACrF,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAA;gBAC7G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,GAAG,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;YACpG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAA;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,MAAM,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,SAAS,gDAAgD,CAAC,CAAC,CAAA;gBAC3G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gFAAgF,CAAC,CAAC,CAAA;YAC7G,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA2B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;gBAChF,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,oBAAoB,SAAS,EAAE,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;YAChD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,IAAI,QAAQ,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAA;YACpD,OAAO,CAAC,GAAG,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,GAAG,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC,CAAA;QACtF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEf,oBAAoB,CAAC,KAAK,IAAI,EAAE;YAC9B,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;YACrC,IAAI,iBAAiB;gBAAE,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;YACzC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YACjB,WAAW,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -1,8 +1,21 @@
1
1
  import assert from 'node:assert/strict';
2
+ import { createServer } from 'node:http';
2
3
  import test from 'node:test';
3
4
  import { createDefaultConfig } from '../../../config/defaults.js';
4
5
  import { resolveEffectiveBuyerConfig } from '../../../config/effective.js';
5
- import { buildBuyerRuntimeOverridesFromFlags, buildBuyerBootstrapEntries, buildRouterRuntimeEnvFromBuyerConfig, resolveBuyerRouterName, } from './start.js';
6
+ import { buildBuyerRuntimeOverridesFromFlags, buildBuyerBootstrapEntries, buildRouterRuntimeEnvFromBuyerConfig, isCompatibleBuyerProxy, resolveBuyerRouterName, } from './start.js';
7
+ async function withProbeServer(handler, run) {
8
+ const server = createServer(handler);
9
+ await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve));
10
+ const address = server.address();
11
+ assert.ok(address && typeof address === 'object');
12
+ try {
13
+ await run(address.port);
14
+ }
15
+ finally {
16
+ await new Promise((resolve, reject) => server.close((error) => error ? reject(error) : resolve()));
17
+ }
18
+ }
6
19
  test('buyer start runtime overrides are runtime-only and win over env/config', () => {
7
20
  const config = createDefaultConfig();
8
21
  config.buyer.proxyPort = 7777;
@@ -66,4 +79,20 @@ test('buyer start defaults router name to local', () => {
66
79
  assert.equal(resolveBuyerRouterName({}), 'local');
67
80
  assert.equal(resolveBuyerRouterName({ router: 'claude-code' }), 'claude-code');
68
81
  });
82
+ test('buyer start recognizes legacy proxies that only return no_peer_pinned', async () => {
83
+ await withProbeServer((_req, res) => {
84
+ res.writeHead(400, { 'content-type': 'application/json' });
85
+ res.end(JSON.stringify({ error: { type: 'no_peer_pinned' } }));
86
+ }, async (port) => {
87
+ assert.equal(await isCompatibleBuyerProxy(port), true);
88
+ });
89
+ });
90
+ test('buyer start recognizes current proxies by AntSeed response header', async () => {
91
+ await withProbeServer((_req, res) => {
92
+ res.writeHead(200, { 'content-type': 'application/json', 'x-antseed-request-id': 'test' });
93
+ res.end(JSON.stringify({ object: 'list', data: [] }));
94
+ }, async (port) => {
95
+ assert.equal(await isCompatibleBuyerProxy(port), true);
96
+ });
97
+ });
69
98
  //# sourceMappingURL=start.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,mCAAmC,EACnC,0BAA0B,EAC1B,oCAAoC,EACpC,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,IAAI,CAAC,wEAAwE,EAAE,GAAG,EAAE;IAClF,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACzD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAC1D,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5D,MAAM,GAAG,GAAG;QACV,uCAAuC,EAAE,IAAI;QAC7C,wCAAwC,EAAE,IAAI;QAC9C,uCAAuC,EAAE,MAAM;KAC3B,CAAC;IAEvB,MAAM,SAAS,GAAG,mCAAmC,CAAC;QACpD,IAAI,EAAE,IAAI;QACV,qBAAqB,EAAE,EAAE;QACzB,sBAAsB,EAAE,EAAE;QAC1B,sBAAsB,EAAE,IAAI;QAC5B,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,2BAA2B,CAAC;QAC5C,MAAM;QACN,GAAG;QACH,cAAc,EAAE,SAAS;KAC1B,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;IAC7E,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,mCAAmC,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,2BAA2B,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EACvE,yDAAyD,CAC1D,CAAC;IAEF,MAAM,UAAU,GAAG,mCAAmC,CAAC,EAAE,sBAAsB,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,2BAA2B,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EACzE,yDAAyD,CAC1D,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;IAChF,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACzD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAE1D,MAAM,UAAU,GAAG,oCAAoC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAEvE,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sGAAsG,EAAE,GAAG,EAAE;IAChH,MAAM,OAAO,GAAG,0BAA0B,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,OAAO,GAAG,0BAA0B,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACrD,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"start.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/network/browse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAyJvB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAIhF;AA2gBD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CA2ItE"}
1
+ {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/network/browse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAmJvB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAIhF;AAgeD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAiJtE"}
@@ -6,7 +6,7 @@ import { readFile } from 'node:fs/promises';
6
6
  import { join } from 'node:path';
7
7
  import { getGlobalOptions } from '../types.js';
8
8
  import { loadConfig } from '../../../config/loader.js';
9
- import { AntseedNode, computeOnChainReputationScore, } from '@antseed/node';
9
+ import { AntseedNode, buildNetworkServiceOffers, computeOnChainReputationScore, } from '@antseed/node';
10
10
  import { parseBootstrapList, toBootstrapConfig } from '@antseed/node/discovery';
11
11
  import { collectPeerVerificationLinks, } from '@antseed/node/discovery';
12
12
  import { parsePersistedPeers } from '../../../proxy/buyer-proxy.js';
@@ -52,16 +52,27 @@ async function loadSnapshotFromBuyerState(dataDir) {
52
52
  return null;
53
53
  }
54
54
  }
55
+ const offersByPeer = new WeakMap();
56
+ function peerServiceOffers(peer) {
57
+ let offers = offersByPeer.get(peer);
58
+ if (!offers) {
59
+ offers = buildNetworkServiceOffers([peer]);
60
+ offersByPeer.set(peer, offers);
61
+ }
62
+ return offers;
63
+ }
64
+ function offerServiceLabel(offer) {
65
+ return offer.serviceId === offer.provider ? '(default)' : offer.serviceId;
66
+ }
55
67
  /**
56
- * A pricing entry counts as "free" when both input and output prices are
57
- * finite and zero. We intentionally don't treat undefined/negative values as
58
- * free — those are "unknown" and handled separately by the formatter.
68
+ * An offer counts as "free" when input, output, and (if announced)
69
+ * cached-input prices are all exactly $0. Undefined input/output prices are
70
+ * "unknown", not free — those are handled separately by the formatter.
59
71
  */
60
- function isFreePricing(pricing) {
61
- return (Number.isFinite(pricing.inputUsdPerMillion)
62
- && Number.isFinite(pricing.outputUsdPerMillion)
63
- && pricing.inputUsdPerMillion === 0
64
- && pricing.outputUsdPerMillion === 0);
72
+ function isFreeOffer(offer) {
73
+ return (offer.inputUsdPerMillion === 0
74
+ && offer.outputUsdPerMillion === 0
75
+ && (offer.cachedInputUsdPerMillion === undefined || offer.cachedInputUsdPerMillion === 0));
65
76
  }
66
77
  /**
67
78
  * Derive the set of service names this peer offers, flattened across all its
@@ -69,18 +80,12 @@ function isFreePricing(pricing) {
69
80
  */
70
81
  function collectServiceNames(peer) {
71
82
  const names = new Set();
72
- const pricing = peer.providerPricing;
73
- if (pricing) {
74
- for (const entry of Object.values(pricing)) {
75
- const services = entry.services;
76
- if (services) {
77
- for (const name of Object.keys(services)) {
78
- const trimmed = name.trim();
79
- if (trimmed.length > 0)
80
- names.add(trimmed);
81
- }
82
- }
83
- }
83
+ for (const offer of peerServiceOffers(peer)) {
84
+ if (offer.serviceId === offer.provider)
85
+ continue;
86
+ const trimmed = offer.serviceId.trim();
87
+ if (trimmed.length > 0)
88
+ names.add(trimmed);
84
89
  }
85
90
  return Array.from(names).sort((a, b) => a.localeCompare(b));
86
91
  }
@@ -90,21 +95,9 @@ function collectServiceNames(peer) {
90
95
  */
91
96
  function collectFreeServiceNames(peer) {
92
97
  const names = new Set();
93
- const pricing = peer.providerPricing;
94
- if (pricing) {
95
- for (const entry of Object.values(pricing)) {
96
- if (entry.services) {
97
- for (const [serviceName, servicePricing] of Object.entries(entry.services)) {
98
- if (isFreePricing(servicePricing))
99
- names.add(serviceName);
100
- }
101
- }
102
- // If the provider's defaults are free and no per-service override lifts
103
- // them, consider "(default)" a free offering worth surfacing.
104
- if (entry.defaults && isFreePricing(entry.defaults) && (!entry.services || Object.keys(entry.services).length === 0)) {
105
- names.add('(default)');
106
- }
107
- }
98
+ for (const offer of peerServiceOffers(peer)) {
99
+ if (isFreeOffer(offer))
100
+ names.add(offerServiceLabel(offer));
108
101
  }
109
102
  return Array.from(names).sort((a, b) => a.localeCompare(b));
110
103
  }
@@ -156,26 +149,18 @@ export function peerMatchesServiceFilter(peer, filter) {
156
149
  function resolveBestPaidPricing(peer) {
157
150
  let bestInput = null;
158
151
  let bestOutput = null;
159
- const pricing = peer.providerPricing;
160
- if (pricing) {
161
- for (const entry of Object.values(pricing)) {
162
- const candidates = [];
163
- if (entry.defaults)
164
- candidates.push(entry.defaults);
165
- if (entry.services)
166
- candidates.push(...Object.values(entry.services));
167
- for (const c of candidates) {
168
- if (isFreePricing(c))
169
- continue;
170
- if (Number.isFinite(c.inputUsdPerMillion) && c.inputUsdPerMillion > 0) {
171
- if (bestInput === null || c.inputUsdPerMillion < bestInput)
172
- bestInput = c.inputUsdPerMillion;
173
- }
174
- if (Number.isFinite(c.outputUsdPerMillion) && c.outputUsdPerMillion > 0) {
175
- if (bestOutput === null || c.outputUsdPerMillion < bestOutput)
176
- bestOutput = c.outputUsdPerMillion;
177
- }
178
- }
152
+ for (const offer of peerServiceOffers(peer)) {
153
+ if (isFreeOffer(offer))
154
+ continue;
155
+ const input = offer.inputUsdPerMillion;
156
+ const output = offer.outputUsdPerMillion;
157
+ if (input !== undefined && Number.isFinite(input) && input > 0) {
158
+ if (bestInput === null || input < bestInput)
159
+ bestInput = input;
160
+ }
161
+ if (output !== undefined && Number.isFinite(output) && output > 0) {
162
+ if (bestOutput === null || output < bestOutput)
163
+ bestOutput = output;
179
164
  }
180
165
  }
181
166
  // Top-level defaults are only used when we have nothing else — and only if
@@ -454,7 +439,7 @@ function renderCompactTable(peers, hasChainData) {
454
439
  console.log(chalk.dim(` ${chalk.red('⚠')} peers triggered on-chain sybil heuristics. Run ${chalk.bold('antseed network peer <id>')} for the per-signal breakdown.`));
455
440
  }
456
441
  if (anyFreeService) {
457
- console.log(chalk.dim(' Free column lists services a peer offers at $0 in/out. "Min In/Out $/1M" always reflects the cheapest PAID option.'));
442
+ console.log(chalk.dim(' Free column lists services a peer offers at $0 input, cached-input, and output. "Min In/Out $/1M" always reflects the cheapest PAID option.'));
458
443
  }
459
444
  if (anyDelegatedSeller) {
460
445
  console.log(chalk.dim(` ${chalk.yellow('On-chain seller')} is the contract address that receives payments — differs from Peer when a delegated/proxy operator runs the node.`));
@@ -487,65 +472,25 @@ function renderExpandedTable(peers, requestedTags) {
487
472
  const anyDelegatedSeller = peers.some((peer) => delegatedSellerAddress(peer) !== null);
488
473
  const anyVerificationLinks = peers.some((peer) => collectPeerVerificationLinks(peer).length > 0);
489
474
  for (const peer of peers) {
490
- const pricing = peer.providerPricing;
491
- if (!pricing || Object.keys(pricing).length === 0) {
492
- // Peer with no pricing info — render one row per provider as a fallback
493
- // shape so the table is never empty for a known peer. These rows have
494
- // no tags and can never match `--tag`, so suppress them under a filter.
495
- if (hasTagFilter)
475
+ const offers = [...peerServiceOffers(peer)].sort((a, b) => (a.provider.localeCompare(b.provider) || a.serviceId.localeCompare(b.serviceId)));
476
+ for (const offer of offers) {
477
+ const isFallbackRow = offer.serviceId === offer.provider;
478
+ if (hasTagFilter && isFallbackRow)
496
479
  continue;
497
- for (const provider of peer.providers) {
498
- rows.push({
499
- peerId: peer.peerId,
500
- provider,
501
- service: '—',
502
- input: formatUsdPerMillion(peer.defaultInputUsdPerMillion ?? null),
503
- output: formatUsdPerMillion(peer.defaultOutputUsdPerMillion ?? null),
504
- score: formatReputationScore(peer),
505
- sessions: typeof peer.onChainChannelCount === 'number' ? String(peer.onChainChannelCount) : '—',
506
- volume: formatUsdcVolume(peer.onChainTotalVolumeUsdcMicros ?? null),
507
- tags: [],
508
- });
509
- }
510
- continue;
511
- }
512
- for (const [providerName, providerEntry] of Object.entries(pricing)) {
513
- const services = providerEntry.services ?? {};
514
- const serviceEntries = Object.entries(services);
515
- if (serviceEntries.length === 0) {
516
- // Synthetic `(default)` row — defaults aren't tagged so they can't
517
- // match a tag filter; keep the row only when no filter is active.
518
- if (hasTagFilter)
519
- continue;
520
- rows.push({
521
- peerId: peer.peerId,
522
- provider: providerName,
523
- service: '(default)',
524
- input: formatUsdPerMillion(providerEntry.defaults?.inputUsdPerMillion ?? null),
525
- output: formatUsdPerMillion(providerEntry.defaults?.outputUsdPerMillion ?? null),
526
- score: formatReputationScore(peer),
527
- sessions: typeof peer.onChainChannelCount === 'number' ? String(peer.onChainChannelCount) : '—',
528
- volume: formatUsdcVolume(peer.onChainTotalVolumeUsdcMicros ?? null),
529
- tags: [],
530
- });
480
+ if (hasTagFilter && !serviceMatchesTagFilter(peer, offer.provider, offer.serviceId, requestedTags)) {
531
481
  continue;
532
482
  }
533
- for (const [serviceName, servicePricing] of serviceEntries.sort(([a], [b]) => a.localeCompare(b))) {
534
- if (hasTagFilter && !serviceMatchesTagFilter(peer, providerName, serviceName, requestedTags)) {
535
- continue;
536
- }
537
- rows.push({
538
- peerId: peer.peerId,
539
- provider: providerName,
540
- service: serviceName,
541
- input: formatUsdPerMillion(servicePricing.inputUsdPerMillion),
542
- output: formatUsdPerMillion(servicePricing.outputUsdPerMillion),
543
- score: formatReputationScore(peer),
544
- sessions: typeof peer.onChainChannelCount === 'number' ? String(peer.onChainChannelCount) : '—',
545
- volume: formatUsdcVolume(peer.onChainTotalVolumeUsdcMicros ?? null),
546
- tags: collectServiceTags(peer, providerName, serviceName),
547
- });
548
- }
483
+ rows.push({
484
+ peerId: peer.peerId,
485
+ provider: offer.provider,
486
+ service: offerServiceLabel(offer),
487
+ input: formatUsdPerMillion(offer.inputUsdPerMillion ?? null),
488
+ output: formatUsdPerMillion(offer.outputUsdPerMillion ?? null),
489
+ score: formatReputationScore(peer),
490
+ sessions: typeof peer.onChainChannelCount === 'number' ? String(peer.onChainChannelCount) : '—',
491
+ volume: formatUsdcVolume(peer.onChainTotalVolumeUsdcMicros ?? null),
492
+ tags: collectServiceTags(peer, offer.provider, offer.serviceId),
493
+ });
549
494
  }
550
495
  }
551
496
  const anyTags = rows.some((r) => r.tags.length > 0);
@@ -718,7 +663,13 @@ export function registerNetworkBrowseCommand(networkCmd) {
718
663
  }
719
664
  const topPeer = displayed[0];
720
665
  if (topPeer) {
721
- console.log(chalk.bold('Pin a peer:'));
666
+ const exampleService = collectServiceNames(topPeer)[0];
667
+ console.log(chalk.bold('Use a model (auto-selects the best peer, no pin needed):'));
668
+ console.log(` curl -s localhost:8377/v1/models | jq '.data[].id' ${chalk.dim('# every model on the network')}`);
669
+ if (exampleService) {
670
+ console.log(chalk.dim(` then request it: curl localhost:8377/v1/chat/completions -d '{"model": "${exampleService}", ...}'`));
671
+ }
672
+ console.log(chalk.bold('Or force this seller:'));
722
673
  console.log(` antseed buyer connection set --peer ${topPeer.peerId}`);
723
674
  console.log(chalk.dim(` or per-request: curl -H "x-antseed-pin-peer: ${topPeer.peerId}" ...`));
724
675
  console.log(chalk.dim(` full details: antseed network peer ${topPeer.peerId}`));