@tokenbuddy/tokenbuddy 1.0.25 → 1.0.27

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 (84) hide show
  1. package/bin/tb-clawtip-proof.js +2 -0
  2. package/dist/src/clawtip-bootstrap.d.ts +1 -0
  3. package/dist/src/clawtip-bootstrap.d.ts.map +1 -1
  4. package/dist/src/clawtip-bootstrap.js +1 -0
  5. package/dist/src/clawtip-bootstrap.js.map +1 -1
  6. package/dist/src/cli.d.ts +1 -0
  7. package/dist/src/cli.d.ts.map +1 -1
  8. package/dist/src/cli.js +172 -51
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/daemon.d.ts +6 -0
  11. package/dist/src/daemon.d.ts.map +1 -1
  12. package/dist/src/daemon.js +562 -292
  13. package/dist/src/daemon.js.map +1 -1
  14. package/dist/src/init-clawtip-activation.d.ts +12 -0
  15. package/dist/src/init-clawtip-activation.d.ts.map +1 -1
  16. package/dist/src/init-clawtip-activation.js +82 -2
  17. package/dist/src/init-clawtip-activation.js.map +1 -1
  18. package/dist/src/package-update.d.ts +60 -0
  19. package/dist/src/package-update.d.ts.map +1 -0
  20. package/dist/src/package-update.js +220 -0
  21. package/dist/src/package-update.js.map +1 -0
  22. package/dist/src/registry-trust.d.ts +7 -0
  23. package/dist/src/registry-trust.d.ts.map +1 -0
  24. package/dist/src/registry-trust.js +37 -0
  25. package/dist/src/registry-trust.js.map +1 -0
  26. package/dist/src/route-failover.d.ts +2 -2
  27. package/dist/src/route-failover.d.ts.map +1 -1
  28. package/dist/src/route-failover.js +11 -0
  29. package/dist/src/route-failover.js.map +1 -1
  30. package/dist/src/seller-catalog.d.ts +20 -0
  31. package/dist/src/seller-catalog.d.ts.map +1 -1
  32. package/dist/src/seller-catalog.js +41 -4
  33. package/dist/src/seller-catalog.js.map +1 -1
  34. package/dist/src/seller-concurrency-limiter.d.ts +36 -0
  35. package/dist/src/seller-concurrency-limiter.d.ts.map +1 -0
  36. package/dist/src/seller-concurrency-limiter.js +126 -0
  37. package/dist/src/seller-concurrency-limiter.js.map +1 -0
  38. package/dist/src/seller-pool.d.ts +7 -1
  39. package/dist/src/seller-pool.d.ts.map +1 -1
  40. package/dist/src/seller-pool.js +18 -0
  41. package/dist/src/seller-pool.js.map +1 -1
  42. package/dist/src/seller-route-planner.d.ts +21 -0
  43. package/dist/src/seller-route-planner.d.ts.map +1 -1
  44. package/dist/src/seller-route-planner.js +98 -20
  45. package/dist/src/seller-route-planner.js.map +1 -1
  46. package/dist/src/tb-clawtip-proof.d.ts +3 -0
  47. package/dist/src/tb-clawtip-proof.d.ts.map +1 -0
  48. package/dist/src/tb-clawtip-proof.js +24 -0
  49. package/dist/src/tb-clawtip-proof.js.map +1 -0
  50. package/dist/src/tb-proxyd.js +45 -3
  51. package/dist/src/tb-proxyd.js.map +1 -1
  52. package/package.json +3 -2
  53. package/src/clawtip-bootstrap.ts +1 -0
  54. package/src/cli.ts +200 -47
  55. package/src/daemon.ts +347 -50
  56. package/src/init-clawtip-activation.ts +77 -1
  57. package/src/package-update.ts +313 -0
  58. package/src/registry-trust.ts +51 -0
  59. package/src/route-failover.ts +14 -2
  60. package/src/seller-catalog.ts +67 -4
  61. package/src/seller-concurrency-limiter.ts +161 -0
  62. package/src/seller-pool.ts +20 -0
  63. package/src/seller-route-planner.ts +142 -20
  64. package/src/tb-clawtip-proof.ts +28 -0
  65. package/src/tb-proxyd.ts +48 -3
  66. package/static/ui/assets/index-Bzbrp7Qe.css +1 -0
  67. package/static/ui/assets/index-UAfOhbwC.js +236 -0
  68. package/static/ui/assets/index-UAfOhbwC.js.map +1 -0
  69. package/static/ui/index.html +2 -2
  70. package/tests/cli-routing.test.ts +37 -4
  71. package/tests/control-plane-ui-endpoints.test.ts +7 -7
  72. package/tests/daemon-trusted-registry-cache.test.ts +132 -0
  73. package/tests/e2e.test.ts +14 -1
  74. package/tests/package-update.test.ts +132 -0
  75. package/tests/registry-trust.test.ts +28 -0
  76. package/tests/route-failover.test.ts +13 -0
  77. package/tests/seller-catalog-413.test.ts +60 -1
  78. package/tests/seller-concurrency-limiter.test.ts +83 -0
  79. package/tests/seller-pool.test.ts +23 -0
  80. package/tests/seller-route-planner.test.ts +78 -0
  81. package/tests/tokenbuddy.test.ts +316 -34
  82. package/static/ui/assets/index-1uuyCCzj.css +0 -1
  83. package/static/ui/assets/index-BJSOFJIU.js +0 -236
  84. package/static/ui/assets/index-BJSOFJIU.js.map +0 -1
@@ -39,6 +39,19 @@ export interface SellerRegistryDocument {
39
39
  /** seller 列表 */
40
40
  sellers: RegistrySeller[];
41
41
  }
42
+ export interface SellerRegistryTrustMetadata {
43
+ registryUrl: string;
44
+ registrySha256: string;
45
+ verified: boolean;
46
+ signatureUrl?: string;
47
+ signature?: string;
48
+ signingKeyId?: string;
49
+ }
50
+ export interface FetchedSellerRegistry {
51
+ registry: SellerRegistryDocument;
52
+ registryJson: string;
53
+ trust: SellerRegistryTrustMetadata;
54
+ }
42
55
  /**
43
56
  * Buyer 自动路由 / 模型目录可见性门禁。
44
57
  * 新 registry 会显式写 `status`,只有 `active` 参与 buyer 可见路径;
@@ -159,10 +172,16 @@ export interface SellerCatalogResult {
159
172
  version: number;
160
173
  /** 默认 seller ID(来自 registry) */
161
174
  defaultSeller?: string;
175
+ /** fetched registry document */
176
+ registry?: SellerRegistryDocument;
177
+ /** fetched registry bytes used for hashing/signature verification */
178
+ registryJson?: string;
162
179
  /** 模型目录条目列表(去重后) */
163
180
  models: ModelCatalogEntry[];
164
181
  /** seller 元信息列表(拉取 manifest 后的快照) */
165
182
  sellers: SellerCatalogEntry[];
183
+ /** registry trust metadata for the fetched registry document */
184
+ registryTrust?: SellerRegistryTrustMetadata;
166
185
  }
167
186
  /**
168
187
  * 去掉 seller URL 尾部的 `/`,避免路径拼接时出现 `//v1/messages`。
@@ -224,6 +243,7 @@ export declare class RegistryTooLargeError extends Error {
224
243
  * @throws RegistryTooLargeError / Error
225
244
  */
226
245
  export declare function fetchSellerRegistry(registryUrl: string): Promise<SellerRegistryDocument>;
246
+ export declare function fetchSellerRegistryWithTrust(registryUrl: string): Promise<FetchedSellerRegistry>;
227
247
  /**
228
248
  * 拉取单个 seller 的 `/manifest` 响应。
229
249
  *
@@ -1 +1 @@
1
- {"version":3,"file":"seller-catalog.d.ts","sourceRoot":"","sources":["../../src/seller-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seller-catalog.d.ts","sourceRoot":"","sources":["../../src/seller-catalog.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { createModuleLogger } from "@tokenbuddy/logging";
2
+ import * as crypto from "crypto";
3
+ import { shouldVerifyRegistry, signatureUrlForRegistryUrl, verifyTrustedRegistrySignature } from "./registry-trust.js";
2
4
  const logger = createModuleLogger("tb-proxyd");
3
5
  /**
4
6
  * Buyer 自动路由 / 模型目录可见性门禁。
@@ -95,6 +97,9 @@ export class RegistryTooLargeError extends Error {
95
97
  * @throws RegistryTooLargeError / Error
96
98
  */
97
99
  export async function fetchSellerRegistry(registryUrl) {
100
+ return (await fetchSellerRegistryWithTrust(registryUrl)).registry;
101
+ }
102
+ export async function fetchSellerRegistryWithTrust(registryUrl) {
98
103
  const response = await fetch(registryUrl);
99
104
  if (response.status === 413) {
100
105
  // v1.2 §18.9: parse the structured 413 body so the caller can
@@ -118,11 +123,39 @@ export async function fetchSellerRegistry(registryUrl) {
118
123
  if (!response.ok) {
119
124
  throw new Error(`registry returned ${response.status}`);
120
125
  }
121
- const data = await response.json();
126
+ const text = await response.text();
127
+ const trust = {
128
+ registryUrl,
129
+ registrySha256: crypto.createHash("sha256").update(text).digest("hex"),
130
+ verified: false
131
+ };
132
+ if (shouldVerifyRegistry(registryUrl)) {
133
+ const signatureUrl = signatureUrlForRegistryUrl(registryUrl);
134
+ const signatureResponse = await fetch(signatureUrl);
135
+ if (!signatureResponse.ok) {
136
+ logger.warn("registry.signature.invalid", "registry signature fetch failed", {
137
+ registryUrl,
138
+ signatureUrl,
139
+ status: signatureResponse.status
140
+ });
141
+ throw new Error(`registry signature returned ${signatureResponse.status}`);
142
+ }
143
+ const signature = (await signatureResponse.text()).trim();
144
+ const signingKeyId = verifyTrustedRegistrySignature(text, signature);
145
+ trust.verified = true;
146
+ trust.signatureUrl = signatureUrl;
147
+ trust.signature = signature;
148
+ trust.signingKeyId = signingKeyId;
149
+ logger.info("registry.signature.verified", "registry signature verified", {
150
+ registryUrl,
151
+ signingKeyId
152
+ });
153
+ }
154
+ const data = JSON.parse(text);
122
155
  if (!data || !Array.isArray(data.sellers)) {
123
156
  throw new Error("registry response missing sellers");
124
157
  }
125
- return data;
158
+ return { registry: data, registryJson: text, trust };
126
159
  }
127
160
  /**
128
161
  * 拉取单个 seller 的 `/manifest` 响应。
@@ -149,7 +182,8 @@ export async function fetchSellerManifest(seller) {
149
182
  * @returns 聚合后的目录
150
183
  */
151
184
  export async function discoverSellerBackedModels(registryUrl) {
152
- const registry = await fetchSellerRegistry(registryUrl);
185
+ const fetched = await fetchSellerRegistryWithTrust(registryUrl);
186
+ const registry = fetched.registry;
153
187
  const visibleSellers = registry.sellers.filter(isBuyerVisibleRegistrySeller);
154
188
  const sellerResults = await Promise.all(visibleSellers.map(async (seller) => {
155
189
  try {
@@ -204,8 +238,11 @@ export async function discoverSellerBackedModels(registryUrl) {
204
238
  registryUrl,
205
239
  version: registry.version,
206
240
  defaultSeller: registry.defaultSeller,
241
+ registry,
242
+ registryJson: fetched.registryJson,
207
243
  models: sellerResults.flatMap((entry) => entry.models),
208
- sellers: sellerResults.map((entry) => entry.seller)
244
+ sellers: sellerResults.map((entry) => entry.seller),
245
+ registryTrust: fetched.trust
209
246
  };
210
247
  }
211
248
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"seller-catalog.js","sourceRoot":"","sources":["../../src/seller-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seller-catalog.js","sourceRoot":"","sources":["../../src/seller-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export interface SellerConcurrencyLimiterOptions {
2
+ enabled?: boolean;
3
+ maxInFlightPerSeller?: number;
4
+ leaseTtlMs?: number;
5
+ }
6
+ export interface SellerConcurrencyLease {
7
+ sellerId: string;
8
+ activeCount: number;
9
+ maxInFlight: number;
10
+ refresh(): void;
11
+ release(): void;
12
+ }
13
+ export interface SellerConcurrencySnapshot {
14
+ enabled: boolean;
15
+ maxInFlightPerSeller: number;
16
+ leaseTtlMs: number;
17
+ active: Array<{
18
+ sellerId: string;
19
+ activeCount: number;
20
+ }>;
21
+ }
22
+ export declare class SellerConcurrencyLimiter {
23
+ private readonly enabled;
24
+ private readonly maxInFlightPerSeller;
25
+ private readonly leaseTtlMs;
26
+ private readonly active;
27
+ constructor(options?: SellerConcurrencyLimiterOptions);
28
+ isEnabled(): boolean;
29
+ tryAcquire(sellerId: string, context?: {
30
+ requestId?: string;
31
+ modelId?: string;
32
+ endpoint?: string;
33
+ }): SellerConcurrencyLease | undefined;
34
+ snapshot(): SellerConcurrencySnapshot;
35
+ }
36
+ //# sourceMappingURL=seller-concurrency-limiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-concurrency-limiter.d.ts","sourceRoot":"","sources":["../../src/seller-concurrency-limiter.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,+BAA+B;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;gBAExC,OAAO,GAAE,+BAAoC;IASzD,SAAS,IAAI,OAAO;IAIpB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,sBAAsB,GAAG,SAAS;IAmG3I,QAAQ,IAAI,yBAAyB;CAUtC"}
@@ -0,0 +1,126 @@
1
+ import { createModuleLogger } from "@tokenbuddy/logging";
2
+ const logger = createModuleLogger("tb-proxyd:seller-concurrency");
3
+ const DEFAULT_MAX_IN_FLIGHT_PER_SELLER = 2;
4
+ const DEFAULT_LEASE_TTL_MS = 185_000;
5
+ export class SellerConcurrencyLimiter {
6
+ enabled;
7
+ maxInFlightPerSeller;
8
+ leaseTtlMs;
9
+ active = new Map();
10
+ constructor(options = {}) {
11
+ this.enabled = options.enabled === true;
12
+ this.maxInFlightPerSeller = positiveIntegerOrDefault(options.maxInFlightPerSeller, DEFAULT_MAX_IN_FLIGHT_PER_SELLER);
13
+ this.leaseTtlMs = positiveIntegerOrDefault(options.leaseTtlMs, DEFAULT_LEASE_TTL_MS);
14
+ }
15
+ isEnabled() {
16
+ return this.enabled;
17
+ }
18
+ tryAcquire(sellerId, context = {}) {
19
+ if (!this.enabled) {
20
+ return {
21
+ sellerId,
22
+ activeCount: 0,
23
+ maxInFlight: this.maxInFlightPerSeller,
24
+ refresh: () => undefined,
25
+ release: () => undefined
26
+ };
27
+ }
28
+ const activeCount = this.active.get(sellerId) ?? 0;
29
+ if (activeCount >= this.maxInFlightPerSeller) {
30
+ logger.info("seller_concurrency.local_full", "seller local concurrency limit reached", {
31
+ sellerId,
32
+ requestId: context.requestId,
33
+ model: context.modelId,
34
+ endpoint: context.endpoint,
35
+ activeCount,
36
+ maxInFlight: this.maxInFlightPerSeller
37
+ });
38
+ return undefined;
39
+ }
40
+ const nextCount = activeCount + 1;
41
+ this.active.set(sellerId, nextCount);
42
+ logger.info("seller_concurrency.lease_acquired", "seller local concurrency lease acquired", {
43
+ sellerId,
44
+ requestId: context.requestId,
45
+ model: context.modelId,
46
+ endpoint: context.endpoint,
47
+ activeCount: nextCount,
48
+ maxInFlight: this.maxInFlightPerSeller
49
+ });
50
+ let released = false;
51
+ let timer;
52
+ const scheduleExpiry = () => {
53
+ timer = setTimeout(() => {
54
+ if (released) {
55
+ return;
56
+ }
57
+ logger.warn("seller_concurrency.lease_expired", "seller local concurrency lease expired", {
58
+ sellerId,
59
+ requestId: context.requestId,
60
+ model: context.modelId,
61
+ endpoint: context.endpoint,
62
+ leaseTtlMs: this.leaseTtlMs
63
+ });
64
+ release();
65
+ }, this.leaseTtlMs);
66
+ timer.unref?.();
67
+ };
68
+ const refresh = () => {
69
+ if (released) {
70
+ return;
71
+ }
72
+ if (timer) {
73
+ clearTimeout(timer);
74
+ }
75
+ scheduleExpiry();
76
+ };
77
+ scheduleExpiry();
78
+ const release = () => {
79
+ if (released) {
80
+ return;
81
+ }
82
+ released = true;
83
+ if (timer) {
84
+ clearTimeout(timer);
85
+ timer = undefined;
86
+ }
87
+ const current = this.active.get(sellerId) ?? 0;
88
+ const remaining = Math.max(0, current - 1);
89
+ if (remaining === 0) {
90
+ this.active.delete(sellerId);
91
+ }
92
+ else {
93
+ this.active.set(sellerId, remaining);
94
+ }
95
+ logger.info("seller_concurrency.lease_released", "seller local concurrency lease released", {
96
+ sellerId,
97
+ requestId: context.requestId,
98
+ model: context.modelId,
99
+ endpoint: context.endpoint,
100
+ activeCount: remaining,
101
+ maxInFlight: this.maxInFlightPerSeller
102
+ });
103
+ };
104
+ return {
105
+ sellerId,
106
+ activeCount: nextCount,
107
+ maxInFlight: this.maxInFlightPerSeller,
108
+ refresh,
109
+ release
110
+ };
111
+ }
112
+ snapshot() {
113
+ return {
114
+ enabled: this.enabled,
115
+ maxInFlightPerSeller: this.maxInFlightPerSeller,
116
+ leaseTtlMs: this.leaseTtlMs,
117
+ active: Array.from(this.active.entries())
118
+ .sort(([a], [b]) => a.localeCompare(b))
119
+ .map(([sellerId, activeCount]) => ({ sellerId, activeCount }))
120
+ };
121
+ }
122
+ }
123
+ function positiveIntegerOrDefault(value, fallback) {
124
+ return Number.isInteger(value) && value > 0 ? value : fallback;
125
+ }
126
+ //# sourceMappingURL=seller-concurrency-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-concurrency-limiter.js","sourceRoot":"","sources":["../../src/seller-concurrency-limiter.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export type CircuitState = "closed" | "half_open" | "open";
13
13
  * 路由失败归一化后的错误分类。控制器据此决定切流 / 重试 / 计入 wasted。
14
14
  * 与 `SellerPool.recordFailure` 的入参对齐。
15
15
  */
16
- export type FailureKind = "hard_4xx" | "auth_invalid" | "insufficient_funds" | "busy_capacity" | "soft_5xx" | "deadline" | "stream_aborted" | "no_compatible";
16
+ export type FailureKind = "hard_4xx" | "auth_invalid" | "insufficient_funds" | "busy_capacity" | "purchase_failed" | "soft_5xx" | "deadline" | "stream_aborted" | "no_compatible";
17
17
  /**
18
18
  * 池里每个 seller 的运行时视图:registry 描述 + 熔断状态 + 健康画像。
19
19
  * 由 `SellerPool.sync()` 从 prewarm cache 重建;写路径(recordSuccess/recordFailure)会原地更新。
@@ -191,6 +191,12 @@ export declare class SellerPool {
191
191
  freshPurchase: boolean;
192
192
  autoPurchaseAvailable: boolean;
193
193
  };
194
+ /**
195
+ * Recycle expired open circuits before route planning paths that consume
196
+ * `snapshot()` directly. This keeps the `open -> half_open` recovery path
197
+ * active even when the newer route planner is used instead of `pick()`.
198
+ */
199
+ recycleOpenCircuits(now?: number): number;
194
200
  /**
195
201
  * Manually mark an entry as `open`. Used by the registry loop when a
196
202
  * seller is removed from the registry: the entry lingers for a grace
@@ -1 +1 @@
1
- {"version":3,"file":"seller-pool.d.ts","sourceRoot":"","sources":["../../src/seller-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seller-pool.d.ts","sourceRoot":"","sources":["../../src/seller-pool.ts"],"names":[],"mappings":"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"}
@@ -246,6 +246,24 @@ export class SellerPool {
246
246
  const autoPurchaseAvailable = this.creditTracker.canAutoPurchase(this.now());
247
247
  return { entry, freshPurchase, autoPurchaseAvailable };
248
248
  }
249
+ /**
250
+ * Recycle expired open circuits before route planning paths that consume
251
+ * `snapshot()` directly. This keeps the `open -> half_open` recovery path
252
+ * active even when the newer route planner is used instead of `pick()`.
253
+ */
254
+ recycleOpenCircuits(now = this.now()) {
255
+ let recycled = 0;
256
+ for (const entry of this.entries.values()) {
257
+ if (entry.circuit !== "open") {
258
+ continue;
259
+ }
260
+ const next = this.maybeRecycleFromOpen(entry, now);
261
+ if (next.circuit === "half_open") {
262
+ recycled += 1;
263
+ }
264
+ }
265
+ return recycled;
266
+ }
249
267
  /**
250
268
  * Manually mark an entry as `open`. Used by the registry loop when a
251
269
  * seller is removed from the registry: the entry lingers for a grace
@@ -1 +1 @@
1
- {"version":3,"file":"seller-pool.js","sourceRoot":"","sources":["../../src/seller-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seller-pool.js","sourceRoot":"","sources":["../../src/seller-pool.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,10 @@ export interface SellerRouteMetric {
27
27
  circuit?: SellerCircuitState;
28
28
  /** 临时容量避让截止时间;大于当前时间时直接剔除候选 */
29
29
  capacityBlockedUntil?: number;
30
+ /** 当前 `tb-proxyd` 进程内该 seller 的活跃 lease 数。 */
31
+ localConcurrencyActive?: number;
32
+ /** 当前 `tb-proxyd` 进程内该 seller 的最大活跃 lease 数。 */
33
+ localConcurrencyLimit?: number;
30
34
  }
31
35
  /**
32
36
  * 路由规划器视角的 prewarm 候选:比 `PrewarmCandidate` 少调度内部状态,只保留打分需要的字段。
@@ -111,6 +115,23 @@ export interface SellerRoutePlan {
111
115
  scorer: SellerRoutingPlan["scorer"];
112
116
  /** 候选总数(prewarm 阶段剔除了不支持模型 / 协议 / 支付的 seller 之前) */
113
117
  candidateCount: number;
118
+ /** 候选构造与排除摘要,用于日志解释本轮决策为什么只剩这些 seller。 */
119
+ diagnostics: SellerRouteDiagnostics;
120
+ }
121
+ export interface SellerRouteDiagnostics {
122
+ registryVisibleCount: number;
123
+ prewarmCandidateCount: number;
124
+ prewarmUsableCount: number;
125
+ prewarmMissingSellerIds: string[];
126
+ prewarmBlockedSellerIds: string[];
127
+ prewarmIncompatibleSellerIds: string[];
128
+ sourceCandidateCount: number;
129
+ blockedOpenCircuitCount: number;
130
+ blockedCapacityCount: number;
131
+ blockedLocalConcurrencyCount: number;
132
+ blockedSellerIds: string[];
133
+ incompatibleCount: number;
134
+ incompatibleSellerIds: string[];
114
135
  }
115
136
  /**
116
137
  * 给定 (model, protocol, payment) + 三类数据源,规划出有序的 seller 路由列表。
@@ -1 +1 @@
1
- {"version":3,"file":"seller-route-planner.d.ts","sourceRoot":"","sources":["../../src/seller-route-planner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seller-route-planner.d.ts","sourceRoot":"","sources":["../../src/seller-route-planner.ts"],"names":[],"mappings":"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"}