@tokenbuddy/tokenbuddy 1.0.26 → 1.0.28

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 +5 -0
  15. package/dist/src/init-clawtip-activation.d.ts.map +1 -1
  16. package/dist/src/init-clawtip-activation.js +61 -1
  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 +218 -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 +311 -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 +147 -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-cm_EgQZ-.js +0 -236
  84. package/static/ui/assets/index-cm_EgQZ-.js.map +0 -1
@@ -42,19 +42,25 @@ export function planSellerRouteSet(input) {
42
42
  reason: strategyPlan.reason,
43
43
  mode: strategyPlan.mode,
44
44
  scorer: strategyPlan.scorer,
45
- candidateCount: source.candidates.length
45
+ candidateCount: source.candidates.length,
46
+ diagnostics: buildDiagnostics(input, indexed, metrics, source)
46
47
  };
47
48
  }
48
49
  function chooseCandidateSource(input, indexed, metrics) {
49
50
  const prewarm = input.prewarmCandidates ?? [];
51
+ let prewarmDiagnostics = emptyPrewarmDiagnostics();
50
52
  if (prewarm.length > 0) {
51
- const prewarmCandidates = prewarm
53
+ const missingSellerIds = [];
54
+ const blockedSellerIds = [];
55
+ const prewarmCandidatesBeforeCompatibility = prewarm
52
56
  .map((candidate) => {
53
57
  const indexedSeller = indexed.bySellerId.get(candidate.sellerId);
54
58
  if (!indexedSeller) {
59
+ missingSellerIds.push(candidate.sellerId);
55
60
  return undefined;
56
61
  }
57
62
  if (metrics.blockedSellerIds.has(indexedSeller.seller.id)) {
63
+ blockedSellerIds.push(candidate.sellerId);
58
64
  return undefined;
59
65
  }
60
66
  return buildCandidate({
@@ -66,30 +72,40 @@ function chooseCandidateSource(input, indexed, metrics) {
66
72
  metric: mergeMetric(metrics.bySellerId.get(candidate.sellerId), candidate)
67
73
  });
68
74
  })
69
- .filter((candidate) => Boolean(candidate))
70
- .filter(isSelectableCandidate);
75
+ .filter((candidate) => Boolean(candidate));
76
+ const prewarmCandidates = prewarmCandidatesBeforeCompatibility.filter(isSelectableCandidate);
77
+ prewarmDiagnostics = {
78
+ usableCount: prewarmCandidates.length,
79
+ missingSellerIds,
80
+ blockedSellerIds,
81
+ incompatibleSellerIds: incompatibleSellerIds(prewarmCandidatesBeforeCompatibility)
82
+ };
71
83
  if (prewarmCandidates.length > 0) {
72
84
  return {
73
85
  source: "prewarm_cache",
74
86
  sourceReason: "prewarm_candidates_compatible",
75
- candidates: prewarmCandidates
87
+ candidates: prewarmCandidates,
88
+ incompatibleSellerIds: prewarmDiagnostics.incompatibleSellerIds,
89
+ prewarmDiagnostics
76
90
  };
77
91
  }
78
92
  }
93
+ const registryCandidatesBeforeCompatibility = indexed.ordered
94
+ .filter((entry) => !metrics.blockedSellerIds.has(entry.seller.id))
95
+ .map((entry) => buildCandidate({
96
+ seller: entry.seller,
97
+ registryOrder: entry.registryOrder,
98
+ modelId: input.modelId,
99
+ protocol: input.protocol,
100
+ paymentMethod: input.paymentMethod,
101
+ metric: metrics.bySellerId.get(entry.seller.id)
102
+ }));
79
103
  return {
80
104
  source: "registry_fallback",
81
105
  sourceReason: prewarm.length > 0 ? "prewarm_no_compatible_candidates" : "prewarm_missing",
82
- candidates: indexed.ordered
83
- .filter((entry) => !metrics.blockedSellerIds.has(entry.seller.id))
84
- .map((entry) => buildCandidate({
85
- seller: entry.seller,
86
- registryOrder: entry.registryOrder,
87
- modelId: input.modelId,
88
- protocol: input.protocol,
89
- paymentMethod: input.paymentMethod,
90
- metric: metrics.bySellerId.get(entry.seller.id)
91
- }))
92
- .filter(isSelectableCandidate)
106
+ candidates: registryCandidatesBeforeCompatibility.filter(isSelectableCandidate),
107
+ incompatibleSellerIds: incompatibleSellerIds(registryCandidatesBeforeCompatibility),
108
+ prewarmDiagnostics
93
109
  };
94
110
  }
95
111
  function buildCandidate(input) {
@@ -121,14 +137,69 @@ function indexRegistrySellers(sellers) {
121
137
  };
122
138
  }
123
139
  function indexMetrics(metrics, now) {
124
- const blockedSellerIds = new Set((metrics ?? [])
125
- .filter((metric) => metric.circuit === "open" || isCapacityBlocked(metric, now))
140
+ const blockedOpenCircuitSellerIds = new Set((metrics ?? [])
141
+ .filter((metric) => metric.circuit === "open")
142
+ .map((metric) => metric.sellerId));
143
+ const blockedCapacitySellerIds = new Set((metrics ?? [])
144
+ .filter((metric) => isCapacityBlocked(metric, now))
145
+ .map((metric) => metric.sellerId));
146
+ const blockedLocalConcurrencySellerIds = new Set((metrics ?? [])
147
+ .filter(isLocalConcurrencyBlocked)
126
148
  .map((metric) => metric.sellerId));
149
+ const blockedSellerIds = new Set([
150
+ ...blockedOpenCircuitSellerIds,
151
+ ...blockedCapacitySellerIds,
152
+ ...blockedLocalConcurrencySellerIds
153
+ ]);
127
154
  return {
128
155
  bySellerId: new Map((metrics ?? [])
129
156
  .filter((metric) => !blockedSellerIds.has(metric.sellerId))
130
157
  .map((metric) => [metric.sellerId, metric])),
131
- blockedSellerIds
158
+ blockedSellerIds,
159
+ blockedOpenCircuitSellerIds,
160
+ blockedCapacitySellerIds,
161
+ blockedLocalConcurrencySellerIds
162
+ };
163
+ }
164
+ function buildDiagnostics(input, indexed, metrics, source) {
165
+ const visibleOpenBlocked = Array.from(metrics.blockedOpenCircuitSellerIds)
166
+ .filter((sellerId) => indexed.bySellerId.has(sellerId));
167
+ const visibleCapacityBlocked = Array.from(metrics.blockedCapacitySellerIds)
168
+ .filter((sellerId) => indexed.bySellerId.has(sellerId));
169
+ const visibleLocalConcurrencyBlocked = Array.from(metrics.blockedLocalConcurrencySellerIds)
170
+ .filter((sellerId) => indexed.bySellerId.has(sellerId));
171
+ const visibleBlockedSellerIds = Array.from(new Set([
172
+ ...visibleOpenBlocked,
173
+ ...visibleCapacityBlocked,
174
+ ...visibleLocalConcurrencyBlocked
175
+ ])).sort();
176
+ return {
177
+ registryVisibleCount: indexed.ordered.length,
178
+ prewarmCandidateCount: input.prewarmCandidates?.length ?? 0,
179
+ prewarmUsableCount: source.prewarmDiagnostics.usableCount,
180
+ prewarmMissingSellerIds: [...source.prewarmDiagnostics.missingSellerIds].sort(),
181
+ prewarmBlockedSellerIds: [...source.prewarmDiagnostics.blockedSellerIds].sort(),
182
+ prewarmIncompatibleSellerIds: [...source.prewarmDiagnostics.incompatibleSellerIds].sort(),
183
+ sourceCandidateCount: source.candidates.length,
184
+ blockedOpenCircuitCount: visibleOpenBlocked.length,
185
+ blockedCapacityCount: visibleCapacityBlocked.length,
186
+ blockedLocalConcurrencyCount: visibleLocalConcurrencyBlocked.length,
187
+ blockedSellerIds: visibleBlockedSellerIds,
188
+ incompatibleCount: source.incompatibleSellerIds.length,
189
+ incompatibleSellerIds: [...source.incompatibleSellerIds].sort()
190
+ };
191
+ }
192
+ function incompatibleSellerIds(candidates) {
193
+ return candidates
194
+ .filter((candidate) => !isSelectableCandidate(candidate))
195
+ .map((candidate) => candidate.sellerId);
196
+ }
197
+ function emptyPrewarmDiagnostics() {
198
+ return {
199
+ usableCount: 0,
200
+ missingSellerIds: [],
201
+ blockedSellerIds: [],
202
+ incompatibleSellerIds: []
132
203
  };
133
204
  }
134
205
  function mergeMetric(metric, prewarm) {
@@ -140,12 +211,19 @@ function mergeMetric(metric, prewarm) {
140
211
  avgInferenceMs: metric?.avgInferenceMs,
141
212
  discountRatio: metric?.discountRatio,
142
213
  circuit: metric?.circuit,
143
- capacityBlockedUntil: metric?.capacityBlockedUntil
214
+ capacityBlockedUntil: metric?.capacityBlockedUntil,
215
+ localConcurrencyActive: metric?.localConcurrencyActive,
216
+ localConcurrencyLimit: metric?.localConcurrencyLimit
144
217
  };
145
218
  }
146
219
  function isCapacityBlocked(metric, now) {
147
220
  return Number.isFinite(metric.capacityBlockedUntil) && metric.capacityBlockedUntil > now;
148
221
  }
222
+ function isLocalConcurrencyBlocked(metric) {
223
+ return Number.isFinite(metric.localConcurrencyActive) &&
224
+ Number.isFinite(metric.localConcurrencyLimit) &&
225
+ metric.localConcurrencyActive >= metric.localConcurrencyLimit;
226
+ }
149
227
  function sellerSupportsModel(seller, modelId) {
150
228
  const normalized = normalizeLookupValue(modelId);
151
229
  return (seller.models ?? []).some((model) => normalizeLookupValue(model) === normalized);
@@ -1 +1 @@
1
- {"version":3,"file":"seller-route-planner.js","sourceRoot":"","sources":["../../src/seller-route-planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAuB,MAAM,qBAAqB,CAAC;AACxF,OAAO,EACL,gBAAgB,EAIjB,MAAM,8BAA8B,CAAC;AAyItC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACnD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,CAAC,QAAQ,iCAAiC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO;YACL,MAAM;YACN,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,OAAO,EAAE;gBACP,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,cAAc,EAAE,SAAS,CAAC,cAAc;gBACxC,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,aAAa,EAAE,SAAS,CAAC,aAAa;aACvC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAA8B,EAC9B,OAAgD,EAChD,OAAoB;IAEpB,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,OAAO;aAC9B,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACjB,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1D,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,cAAc,CAAC;gBACpB,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,aAAa,EAAE,aAAa,CAAC,aAAa;gBAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;aAC3E,CAAC,CAAC;QACL,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,SAAS,EAAiC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACxE,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAEjC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,MAAM,EAAE,eAAe;gBACvB,YAAY,EAAE,+BAA+B;gBAC7C,UAAU,EAAE,iBAAiB;aAC9B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,mBAAmB;QAC3B,YAAY,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,iBAAiB;QACzF,UAAU,EAAE,OAAO,CAAC,OAAO;aACxB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;aACF,MAAM,CAAC,qBAAqB,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAOvB;IACC,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QACzB,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QAC1C,aAAa,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;QAC/D,gBAAgB,EAAE,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;QACtE,eAAe,EAAE,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QACzE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW;QACtC,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY;QACxC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM;QAC5B,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc;QAC5C,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa;QAC1C,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,SAA2B;IACxD,OAAO,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,gBAAgB,IAAI,SAAS,CAAC,eAAe,CAAC;AAC5F,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAyB;IAIrD,MAAM,OAAO,GAAG,OAAO;SACpB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;SACrD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAC/D,OAAO;QACL,OAAO;QACP,UAAU,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;KACtE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAwC,EAAE,GAAW;IACzE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;SAC7C,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SAC/E,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrC,OAAO;QACL,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC1D,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9C,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,MAAqC,EACrC,OAAoC;IAEpC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,MAAM,EAAE,WAAW;QACvD,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,MAAM,EAAE,YAAY;QAC1D,MAAM,EAAE,MAAM,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM,EAAE,cAAc;QACtC,aAAa,EAAE,MAAM,EAAE,aAAa;QACpC,OAAO,EAAE,MAAM,EAAE,OAAO;QACxB,oBAAoB,EAAE,MAAM,EAAE,oBAAoB;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAyB,EAAE,GAAW;IAC/D,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAK,MAAM,CAAC,oBAA+B,GAAG,GAAG,CAAC;AACvG,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAsB,EAAE,OAAe;IAClE,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAsB,EAAE,QAAgB;IACtE,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAClD,OAAO,eAAe,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC;AACtH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAsB,EAAE,aAAqB;IAC1E,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACvD,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,eAAe,CAAC,SAAmB;IAC1C,OAAO,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChF,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,UAAU,CAAC;QAC5B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"seller-route-planner.js","sourceRoot":"","sources":["../../src/seller-route-planner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=tb-clawtip-proof.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tb-clawtip-proof.d.ts","sourceRoot":"","sources":["../../src/tb-clawtip-proof.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+ import { createClawtipPaymentProof } from "./init-clawtip-activation.js";
3
+ async function readStdin() {
4
+ const chunks = [];
5
+ for await (const chunk of process.stdin) {
6
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
7
+ }
8
+ return Buffer.concat(chunks).toString("utf8");
9
+ }
10
+ async function main() {
11
+ const input = (await readStdin()).trim();
12
+ if (!input) {
13
+ throw new Error("ClawTip proof provider requires a JSON payload on stdin");
14
+ }
15
+ const payload = JSON.parse(input);
16
+ const proof = await createClawtipPaymentProof(payload && typeof payload === "object" ? payload : {});
17
+ process.stdout.write(`${proof}\n`);
18
+ }
19
+ main().catch((error) => {
20
+ const message = error instanceof Error ? error.message : String(error);
21
+ process.stderr.write(`${message}\n`);
22
+ process.exitCode = 1;
23
+ });
24
+ //# sourceMappingURL=tb-clawtip-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tb-clawtip-proof.js","sourceRoot":"","sources":["../../src/tb-clawtip-proof.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,GAAG,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAC3C,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAA6D,CAAC,CAAC,CAAC,EAAE,CAC5G,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -2,19 +2,22 @@ import { TokenbuddyDaemon } from "./daemon.js";
2
2
  import { createModuleLogger } from "@tokenbuddy/logging";
3
3
  import { resolveBuyerStorePath } from "./buyer-store.js";
4
4
  import { normalizeSellerRoutingConfig, parseSellerRoutingEnv } from "./seller-routing-config.js";
5
+ import { DEFAULT_SELLER_REGISTRY_URL } from "./registry-trust.js";
5
6
  const logger = createModuleLogger("tb-proxyd");
6
7
  const dbPath = resolveBuyerStorePath();
7
8
  const controlPort = parsePortEnv("TB_PROXYD_CONTROL_PORT", 17820);
8
9
  const proxyPort = parsePortEnv("TB_PROXYD_PROXY_PORT", 17821);
9
- const sellerRegistryUrl = process.env.TB_PROXYD_SELLER_REGISTRY_URL || "https://tb-wallet-bootstrap.fly.dev/registry/sellers";
10
+ const sellerRegistryUrl = process.env.TB_PROXYD_SELLER_REGISTRY_URL || DEFAULT_SELLER_REGISTRY_URL;
10
11
  const sellerRoutingEnv = parseSellerRoutingEnv();
11
12
  const sellerRouting = sellerRoutingEnv ? normalizeSellerRoutingConfig(sellerRoutingEnv) : undefined;
13
+ const sellerConcurrency = parseSellerConcurrencyEnv();
12
14
  const daemon = new TokenbuddyDaemon({
13
15
  controlPort,
14
16
  proxyPort,
15
17
  dbPath,
16
18
  sellerRegistryUrl,
17
- ...(sellerRouting ? { sellerRouting } : {})
19
+ ...(sellerRouting ? { sellerRouting } : {}),
20
+ ...(sellerConcurrency ? { sellerConcurrency } : {})
18
21
  });
19
22
  logger.info("proxy.process.initializing", "tb-proxyd process initializing", {
20
23
  dbPath,
@@ -23,7 +26,9 @@ logger.info("proxy.process.initializing", "tb-proxyd process initializing", {
23
26
  sellerRegistryUrl,
24
27
  sellerRoutingEnvOverride: Boolean(sellerRouting),
25
28
  sellerRoutingMode: sellerRouting?.mode,
26
- sellerRoutingScorer: sellerRouting?.scorer
29
+ sellerRoutingScorer: sellerRouting?.scorer,
30
+ sellerConcurrencyEnabled: sellerConcurrency?.enabled ?? false,
31
+ sellerMaxInFlight: sellerConcurrency?.maxInFlightPerSeller
27
32
  });
28
33
  daemon.start();
29
34
  // Handle graceful stop
@@ -48,4 +53,41 @@ function parsePortEnv(name, fallback) {
48
53
  }
49
54
  return port;
50
55
  }
56
+ function parseSellerConcurrencyEnv() {
57
+ const enabled = parseBooleanEnv("TB_PROXYD_SELLER_CONCURRENCY_ENABLED");
58
+ const maxInFlightPerSeller = parsePositiveIntegerEnv("TB_PROXYD_SELLER_MAX_IN_FLIGHT");
59
+ const leaseTtlMs = parsePositiveIntegerEnv("TB_PROXYD_SELLER_LEASE_TTL_MS");
60
+ if (enabled === undefined && maxInFlightPerSeller === undefined && leaseTtlMs === undefined) {
61
+ return undefined;
62
+ }
63
+ return {
64
+ enabled: enabled ?? false,
65
+ ...(maxInFlightPerSeller !== undefined ? { maxInFlightPerSeller } : {}),
66
+ ...(leaseTtlMs !== undefined ? { leaseTtlMs } : {})
67
+ };
68
+ }
69
+ function parseBooleanEnv(name) {
70
+ const rawValue = process.env[name]?.trim().toLowerCase();
71
+ if (!rawValue) {
72
+ return undefined;
73
+ }
74
+ if (["1", "true", "yes", "on"].includes(rawValue)) {
75
+ return true;
76
+ }
77
+ if (["0", "false", "no", "off"].includes(rawValue)) {
78
+ return false;
79
+ }
80
+ throw new Error(`${name} must be one of 1, true, yes, on, 0, false, no, off`);
81
+ }
82
+ function parsePositiveIntegerEnv(name) {
83
+ const rawValue = process.env[name];
84
+ if (!rawValue) {
85
+ return undefined;
86
+ }
87
+ const parsed = Number(rawValue);
88
+ if (!Number.isInteger(parsed) || parsed <= 0) {
89
+ throw new Error(`${name} must be a positive integer`);
90
+ }
91
+ return parsed;
92
+ }
51
93
  //# sourceMappingURL=tb-proxyd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tb-proxyd.js","sourceRoot":"","sources":["../../src/tb-proxyd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEjG,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;AAE/C,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;AACvC,MAAM,WAAW,GAAG,YAAY,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;AAClE,MAAM,SAAS,GAAG,YAAY,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;AAC9D,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,sDAAsD,CAAC;AAC9H,MAAM,gBAAgB,GAAG,qBAAqB,EAAE,CAAC;AACjD,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEpG,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;IAClC,WAAW;IACX,SAAS;IACT,MAAM;IACN,iBAAiB;IACjB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,gCAAgC,EAAE;IAC1E,MAAM;IACN,WAAW;IACX,SAAS;IACT,iBAAiB;IACjB,wBAAwB,EAAE,OAAO,CAAC,aAAa,CAAC;IAChD,iBAAiB,EAAE,aAAa,EAAE,IAAI;IACtC,mBAAmB,EAAE,aAAa,EAAE,MAAM;CAC3C,CAAC,CAAC;AACH,MAAM,CAAC,KAAK,EAAE,CAAC;AAEf,uBAAuB;AACvB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,oCAAoC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3F,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,oCAAoC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1F,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY,EAAE,QAAgB;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,8CAA8C,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"tb-proxyd.js","sourceRoot":"","sources":["../../src/tb-proxyd.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@tokenbuddy/tokenbuddy",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "description": "TokenBuddy Client CLI and Daemon",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
7
7
  "type": "module",
8
8
  "bin": {
9
9
  "tb": "bin/tb.js",
10
- "tb-proxyd": "bin/tb-proxyd.js"
10
+ "tb-proxyd": "bin/tb-proxyd.js",
11
+ "tb-clawtip-proof": "bin/tb-clawtip-proof.js"
11
12
  },
12
13
  "scripts": {
13
14
  "build": "tsc"
@@ -1,4 +1,5 @@
1
1
  const CLAWTIP_BOOTSTRAP_PLACEHOLDER_PAY_TO = "bootstrap-pay-to";
2
+ export const DEFAULT_CLAWTIP_BOOTSTRAP_URL = "https://tb-registry.fly.dev";
2
3
 
3
4
  export interface ClawtipBootstrapResponse {
4
5
  activationFeeFen?: number;