saros-proxy 0.7.3 → 0.9.0

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 (78) hide show
  1. package/README.md +98 -47
  2. package/dist/cli/autostart.js.map +1 -1
  3. package/dist/cli/daemon.d.ts +31 -4
  4. package/dist/cli/daemon.js +124 -22
  5. package/dist/cli/daemon.js.map +1 -1
  6. package/dist/cli/dsh-config.d.ts +32 -0
  7. package/dist/cli/dsh-config.js +122 -0
  8. package/dist/cli/dsh-config.js.map +1 -0
  9. package/dist/cli/harness-models.d.ts +26 -2
  10. package/dist/cli/harness-models.js +192 -2
  11. package/dist/cli/harness-models.js.map +1 -1
  12. package/dist/cli/harness-sync.d.ts +27 -10
  13. package/dist/cli/harness-sync.js +70 -16
  14. package/dist/cli/harness-sync.js.map +1 -1
  15. package/dist/cli/help.js +4 -2
  16. package/dist/cli/help.js.map +1 -1
  17. package/dist/cli/omp-config.js +22 -5
  18. package/dist/cli/omp-config.js.map +1 -1
  19. package/dist/cli/opencode-config.js +22 -15
  20. package/dist/cli/opencode-config.js.map +1 -1
  21. package/dist/cli/overview.d.ts +10 -0
  22. package/dist/cli/overview.js +61 -0
  23. package/dist/cli/overview.js.map +1 -0
  24. package/dist/cli/pi-config.js +21 -5
  25. package/dist/cli/pi-config.js.map +1 -1
  26. package/dist/cli/setup.d.ts +6 -10
  27. package/dist/cli/setup.js +107 -233
  28. package/dist/cli/setup.js.map +1 -1
  29. package/dist/cli/ui.d.ts +0 -1
  30. package/dist/cli/ui.js +0 -16
  31. package/dist/cli/ui.js.map +1 -1
  32. package/dist/cli/update-check.js.map +1 -1
  33. package/dist/cli/usage.d.ts +12 -0
  34. package/dist/cli/usage.js +116 -0
  35. package/dist/cli/usage.js.map +1 -0
  36. package/dist/config.d.ts +13 -17
  37. package/dist/config.js +29 -78
  38. package/dist/config.js.map +1 -1
  39. package/dist/constants.d.ts +7 -6
  40. package/dist/constants.js +10 -5
  41. package/dist/constants.js.map +1 -1
  42. package/dist/index.d.ts +4 -4
  43. package/dist/index.js +34 -34
  44. package/dist/index.js.map +1 -1
  45. package/dist/model-stats.d.ts +20 -0
  46. package/dist/model-stats.js +135 -0
  47. package/dist/model-stats.js.map +1 -0
  48. package/dist/models-sync.js +10 -4
  49. package/dist/models-sync.js.map +1 -1
  50. package/dist/probe-cache.js.map +1 -1
  51. package/dist/providers/commandcode.d.ts +17 -0
  52. package/dist/providers/commandcode.js +232 -0
  53. package/dist/providers/commandcode.js.map +1 -0
  54. package/dist/providers/index.d.ts +43 -0
  55. package/dist/providers/index.js +75 -0
  56. package/dist/providers/index.js.map +1 -0
  57. package/dist/providers/infer.d.ts +23 -0
  58. package/dist/providers/infer.js +13 -0
  59. package/dist/providers/infer.js.map +1 -0
  60. package/dist/providers/opencode-go.d.ts +4 -0
  61. package/dist/providers/opencode-go.js +179 -0
  62. package/dist/providers/opencode-go.js.map +1 -0
  63. package/dist/providers/types.d.ts +118 -0
  64. package/dist/providers/types.js +10 -0
  65. package/dist/providers/types.js.map +1 -0
  66. package/dist/proxy-logic.d.ts +46 -22
  67. package/dist/proxy-logic.js +146 -106
  68. package/dist/proxy-logic.js.map +1 -1
  69. package/dist/proxy.d.ts +20 -2
  70. package/dist/proxy.js +231 -57
  71. package/dist/proxy.js.map +1 -1
  72. package/dist/usage-client.d.ts +41 -0
  73. package/dist/usage-client.js +124 -0
  74. package/dist/usage-client.js.map +1 -0
  75. package/dist/validation.d.ts +5 -5
  76. package/dist/validation.js +7 -9
  77. package/dist/validation.js.map +1 -1
  78. package/package.json +75 -77
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-logic.js","sourceRoot":"","sources":["../src/proxy-logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy-logic.js","sourceRoot":"","sources":["../src/proxy-logic.ts"],"names":[],"mappings":"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"}
package/dist/proxy.d.ts CHANGED
@@ -6,6 +6,21 @@
6
6
  */
7
7
  import { Hono } from 'hono';
8
8
  import type { ProxyConfig } from './config.js';
9
+ import type { KeyProvider } from './providers/index.js';
10
+ /**
11
+ * Resolve the upstream URL for one attempt: per-provider base URL + path
12
+ * remapping. Clients always speak canonical saros routes (/zen/go/v1/<rest>,
13
+ * the opencode-go shape); requests routed to a provider with a different
14
+ * chat surface get the prefix remapped (e.g. /provider/v1 for commandcode).
15
+ */
16
+ export declare function resolveUpstreamUrl(config: ProxyConfig, provider: KeyProvider, path: string): string;
17
+ /**
18
+ * Extract a provider-suffix routing hint from a model id
19
+ * (e.g. 'claude-…@commandcode' → 'commandcode'). Returns null when absent.
20
+ */
21
+ export declare function parseProviderSuffix(modelId: string | undefined): string | null;
22
+ /** Strip the @provider routing suffix from a model id for upstream forwarding. */
23
+ export declare function stripProviderSuffix(modelId: string): string;
9
24
  declare module 'hono' {
10
25
  interface ContextVariableMap {
11
26
  remote: {
@@ -18,8 +33,11 @@ declare module 'hono' {
18
33
  */
19
34
  export declare function buildUpstreamUrl(base: string, path: string): string;
20
35
  /**
21
- * Clean headers for upstream forwarding: remove hop-by-hop headers
22
- * and any pre-existing Authorization.
36
+ * Clean headers for upstream forwarding: remove hop-by-hop headers,
37
+ * pre-existing Authorization, and content-length (the forwarded body may be
38
+ * rewritten — model-id aliasing / suffix strip — so a stale content-length
39
+ * makes the upstream wait for bytes that never arrive; undici recomputes it
40
+ * from the real body).
23
41
  */
24
42
  export declare function buildUpstreamHeaders(incoming: Headers, bearerToken: string): Headers;
25
43
  /**
package/dist/proxy.js CHANGED
@@ -8,11 +8,144 @@ import { Hono } from 'hono';
8
8
  import { cors } from 'hono/cors';
9
9
  import { rateLimiter } from 'hono-rate-limiter';
10
10
  import crypto from 'node:crypto';
11
+ import { mkdirSync, writeFileSync } from 'node:fs';
12
+ import { homedir } from 'node:os';
13
+ import { join } from 'node:path';
11
14
  import { createProxyState, selectKeyForRequest, failoverRequest, completeRequest, markKeyFailed, markKeySucceeded, classifyHttpError, } from './proxy-logic.js';
12
15
  import { logger, maskKey } from './logger.js';
13
- import { getAllUsage, isScraperRunning } from './scraper.js';
14
16
  import { MAX_BODY_SIZE, MAX_RETRIES, RATE_LIMIT_WINDOW_MS, RATE_LIMIT_MAX, } from './constants.js';
15
17
  import { getModelsList } from './models-fetcher.js';
18
+ import { maybeRefreshUsage } from './usage-client.js';
19
+ import { recordModelRequest } from './model-stats.js';
20
+ import { getProvider, inferProvider } from './providers/index.js';
21
+ /** Canonical client-facing chat route prefix (the opencode-go shape). */
22
+ const CANONICAL_CHAT_BASE = '/zen/go/v1';
23
+ /**
24
+ * Resolve the upstream URL for one attempt: per-provider base URL + path
25
+ * remapping. Clients always speak canonical saros routes (/zen/go/v1/<rest>,
26
+ * the opencode-go shape); requests routed to a provider with a different
27
+ * chat surface get the prefix remapped (e.g. /provider/v1 for commandcode).
28
+ */
29
+ export function resolveUpstreamUrl(config, provider, path) {
30
+ const base = (config.upstreams?.[provider.id] ?? (provider.id === 'opencode-go' ? config.upstreamBaseUrl : provider.baseUrl))
31
+ .replace(/\/+$/, '');
32
+ if (provider.chatBasePath === CANONICAL_CHAT_BASE) {
33
+ return buildUpstreamUrl(base, path);
34
+ }
35
+ const remapped = path.startsWith(CANONICAL_CHAT_BASE)
36
+ ? provider.chatBasePath + path.slice(CANONICAL_CHAT_BASE.length)
37
+ : path;
38
+ return buildUpstreamUrl(base, remapped);
39
+ }
40
+ /**
41
+ * Extract a provider-suffix routing hint from a model id
42
+ * (e.g. 'claude-…@commandcode' → 'commandcode'). Returns null when absent.
43
+ */
44
+ export function parseProviderSuffix(modelId) {
45
+ if (!modelId)
46
+ return null;
47
+ const at = modelId.lastIndexOf('@');
48
+ if (at <= 0 || at === modelId.length - 1)
49
+ return null;
50
+ return modelId.slice(at + 1);
51
+ }
52
+ /** Strip the @provider routing suffix from a model id for upstream forwarding. */
53
+ export function stripProviderSuffix(modelId) {
54
+ const at = modelId.lastIndexOf('@');
55
+ return at > 0 ? modelId.slice(0, at) : modelId;
56
+ }
57
+ function generateRequestId() {
58
+ return crypto.randomUUID();
59
+ }
60
+ /**
61
+ * Opt-in diagnostics: when SAROS_CAPTURE_4XX=1, write the full request
62
+ * context of every upstream 4xx to <config dir>/captures/ so provider-side
63
+ * errors (role validation, plan gating) can be replayed and debugged.
64
+ * Never enabled by default — bodies may contain user content.
65
+ */
66
+ function captureFailedRequest(ctx, status, errorBody) {
67
+ if (process.env.SAROS_CAPTURE_4XX !== '1')
68
+ return;
69
+ if (status < 400 || status >= 500)
70
+ return;
71
+ try {
72
+ const dir = join(homedir(), '.config', 'saros', 'captures');
73
+ mkdirSync(dir, { recursive: true });
74
+ const file = join(dir, `${Date.now()}-${ctx.requestId.slice(0, 8)}.json`);
75
+ writeFileSync(file, JSON.stringify({
76
+ ts: new Date().toISOString(),
77
+ requestId: ctx.requestId,
78
+ status,
79
+ method: ctx.method,
80
+ path: ctx.path,
81
+ model: ctx.modelId ?? null,
82
+ kind: ctx.kind,
83
+ upstreamError: errorBody.slice(0, 2000),
84
+ requestBody: ctx.bodyText.slice(0, 100_000),
85
+ }, null, 2), 'utf-8');
86
+ logger.warn({ requestId: ctx.requestId, file }, 'captured failing request (SAROS_CAPTURE_4XX)');
87
+ }
88
+ catch {
89
+ // diagnostics must never break the proxy
90
+ }
91
+ }
92
+ /**
93
+ * Rewrite the model field inside a JSON request body. Returns the original
94
+ * text unchanged when the body isn't valid JSON or has no model field.
95
+ */
96
+ function rewriteModelInBody(bodyText, modelId) {
97
+ try {
98
+ const parsed = JSON.parse(bodyText);
99
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
100
+ return bodyText;
101
+ if (typeof parsed.model !== 'string')
102
+ return bodyText;
103
+ parsed.model = modelId;
104
+ return JSON.stringify(parsed);
105
+ }
106
+ catch {
107
+ return bodyText;
108
+ }
109
+ }
110
+ /**
111
+ * Rewrite a request's model id for the provider about to serve it.
112
+ *
113
+ * 1. '@provider' suffix → strip it (the suffix is saros's routing shim).
114
+ * 2. Otherwise, when the serving provider names the same model differently
115
+ * (bare name matches its catalog under a vendor-prefixed id — e.g.
116
+ * 'deepseek-v4-flash' → 'deepseek/deepseek-v4-flash' on commandcode),
117
+ * rewrite to the provider's native id so the upstream recognizes it.
118
+ * This is what makes cross-provider round-robin seamless: one id in,
119
+ * any of the serving keys out.
120
+ */
121
+ function rewriteModelForProvider(bodyText, modelId, provider) {
122
+ if (!modelId)
123
+ return bodyText;
124
+ if (parseProviderSuffix(modelId)) {
125
+ return rewriteModelInBody(bodyText, stripProviderSuffix(modelId));
126
+ }
127
+ const bare = modelId.split('/').pop() ?? modelId;
128
+ const native = provider.resolveNativeId?.(bare.toLowerCase());
129
+ if (native && native !== modelId) {
130
+ return rewriteModelInBody(bodyText, native);
131
+ }
132
+ return bodyText;
133
+ }
134
+ /**
135
+ * Provider for a key snapshot. Suffix-routed requests (​@provider model ids)
136
+ * pin the provider; otherwise structural inference from the key itself.
137
+ */
138
+ function providerForKey(key, config, modelId) {
139
+ const suffixProvider = parseProviderSuffix(modelId);
140
+ if (suffixProvider) {
141
+ const pinned = getProvider(suffixProvider);
142
+ if (pinned)
143
+ return pinned;
144
+ }
145
+ const inferred = inferProvider({ label: key.label, key: key.key });
146
+ void config;
147
+ return getProvider(inferred) ?? getProvider('opencode-go');
148
+ }
16
149
  // ---------------------------------------------------------------------------
17
150
  // Helpers
18
151
  // ---------------------------------------------------------------------------
@@ -45,9 +178,6 @@ class TimeoutError extends Error {
45
178
  this.name = 'TimeoutError';
46
179
  }
47
180
  }
48
- function generateRequestId() {
49
- return crypto.randomUUID();
50
- }
51
181
  /**
52
182
  * Build upstream URL from base + request path.
53
183
  */
@@ -62,8 +192,11 @@ export function buildUpstreamUrl(base, path) {
62
192
  return normalizedBase + normalizedPath;
63
193
  }
64
194
  /**
65
- * Clean headers for upstream forwarding: remove hop-by-hop headers
66
- * and any pre-existing Authorization.
195
+ * Clean headers for upstream forwarding: remove hop-by-hop headers,
196
+ * pre-existing Authorization, and content-length (the forwarded body may be
197
+ * rewritten — model-id aliasing / suffix strip — so a stale content-length
198
+ * makes the upstream wait for bytes that never arrive; undici recomputes it
199
+ * from the real body).
67
200
  */
68
201
  export function buildUpstreamHeaders(incoming, bearerToken) {
69
202
  const headers = new Headers();
@@ -77,7 +210,8 @@ export function buildUpstreamHeaders(incoming, bearerToken) {
77
210
  lower === 'te' ||
78
211
  lower === 'transfer-encoding' ||
79
212
  lower === 'upgrade' ||
80
- lower === 'authorization') {
213
+ lower === 'authorization' ||
214
+ lower === 'content-length') {
81
215
  continue;
82
216
  }
83
217
  headers.set(key, value);
@@ -106,6 +240,15 @@ export function buildDownstreamHeaders(upstreamHeaders) {
106
240
  lower === 'upgrade' ||
107
241
  // Security-sensitive
108
242
  lower === 'set-cookie' ||
243
+ // Body is already decoded: Node fetch transparently gunzips upstream
244
+ // responses, so forwarding content-encoding would make clients try to
245
+ // decompress plain text (found live against api.commandcode.ai).
246
+ lower === 'content-encoding' ||
247
+ // The forwarded body may be rewritten (model-id aliasing/suffix strip),
248
+ // so a forwarded content-length can disagree with the actual body and
249
+ // hang the upstream waiting for missing bytes (found live). Undici
250
+ // recomputes content-length from the real body.
251
+ lower === 'content-length' ||
109
252
  // Internal debug
110
253
  lower === 'x-request-id' ||
111
254
  // Response constructor recalculates content-length
@@ -128,28 +271,19 @@ export function isStreamingRequest(bodyText) {
128
271
  return false;
129
272
  }
130
273
  }
131
- /**
132
- * Build usage-based key selection options from scraped data.
133
- * Returns undefined when no usage data is available or scraping is disabled.
134
- */
135
- function buildUsageKeyOptions(config) {
136
- const allUsage = getAllUsage();
137
- if (allUsage.size === 0)
138
- return undefined;
139
- const usageMap = new Map();
140
- config.keys.forEach((key, i) => {
141
- const account = config.scraping?.accounts?.[i];
142
- if (account) {
143
- const accountUsage = allUsage.get(account.workspaceId);
144
- if (accountUsage) {
145
- usageMap.set(key.label, accountUsage.usage);
146
- }
147
- }
148
- });
149
- if (usageMap.size === 0)
150
- return undefined;
151
- // Caller ensures config.scraping is defined when scraping is enabled
152
- return { usageMap, usageThreshold: config.scraping?.usageThreshold ?? 50 };
274
+ /** Single JSON parse of a request body; null on invalid/missing input. */
275
+ function parseRequestBody(bodyText) {
276
+ if (!bodyText)
277
+ return null;
278
+ try {
279
+ const parsed = JSON.parse(bodyText);
280
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
281
+ ? parsed
282
+ : null;
283
+ }
284
+ catch {
285
+ return null;
286
+ }
153
287
  }
154
288
  /**
155
289
  * Shared retry loop for both streaming and non-streaming requests.
@@ -166,8 +300,7 @@ async function executeWithRetry(opts) {
166
300
  incomingHeaders: opts.incomingHeaders,
167
301
  bodyText: opts.bodyText,
168
302
  kind: opts.kind,
169
- upstreamUrl: buildUpstreamUrl(opts.config.upstreamBaseUrl, opts.path),
170
- keyOptions: opts.config.scraping?.enabled ? buildUsageKeyOptions(opts.config) : undefined,
303
+ modelId: opts.modelId,
171
304
  onSuccess: opts.onSuccess,
172
305
  };
173
306
  let lastError = null;
@@ -185,9 +318,17 @@ async function executeSingleAttempt(attempt, ctx) {
185
318
  return { kind: 'done', response: buildNoKeysResponse(ctx.state, ctx.requestId, ctx.kind, attempt) };
186
319
  }
187
320
  logKeyAttempt(ctx.requestId, key, attempt, ctx.kind);
188
- const fetchOptions = buildFetchOptions(ctx.method, ctx.bodyText, ctx.kind, ctx.incomingHeaders, key.key);
321
+ // Per-attempt upstream: keys may be mixed-provider within one failover chain.
322
+ // Suffix-routed models (@provider) pin the provider and lose the suffix
323
+ // in the forwarded body; the upstream never sees saros's routing shim.
324
+ const provider = providerForKey(key, ctx.config, ctx.modelId);
325
+ const upstreamUrl = resolveUpstreamUrl(ctx.config, provider, ctx.path);
326
+ const outboundBody = ctx.bodyText
327
+ ? rewriteModelForProvider(ctx.bodyText, ctx.modelId, provider)
328
+ : ctx.bodyText;
329
+ const fetchOptions = buildFetchOptions(ctx.method, outboundBody, ctx.kind, ctx.incomingHeaders, key.key, provider);
189
330
  try {
190
- const response = await fetchWithTimeout(ctx.upstreamUrl, fetchOptions, ctx.config.requestTimeoutMs);
331
+ const response = await fetchWithTimeout(upstreamUrl, fetchOptions, ctx.config.requestTimeoutMs);
191
332
  if (response.ok) {
192
333
  markKeySucceeded(ctx.state, key.label);
193
334
  completeRequest(ctx.state, ctx.requestId, true);
@@ -204,11 +345,17 @@ async function executeSingleAttempt(attempt, ctx) {
204
345
  }
205
346
  function pickKey(ctx, attempt) {
206
347
  return attempt === 0
207
- ? selectKeyForRequest(ctx.state, ctx.requestId, ctx.keyOptions)
208
- : failoverRequest(ctx.state, ctx.requestId, ctx.keyOptions);
348
+ ? selectKeyForRequest(ctx.state, ctx.requestId, ctx.modelId)
349
+ : failoverRequest(ctx.state, ctx.requestId);
209
350
  }
210
- function buildFetchOptions(method, bodyText, kind, incomingHeaders, bearerToken) {
351
+ function buildFetchOptions(method, bodyText, kind, incomingHeaders, bearerToken, provider) {
211
352
  const headers = buildUpstreamHeaders(incomingHeaders, bearerToken);
353
+ // Provider-specific identity headers (e.g. CommandCode CLI headers)
354
+ if (provider?.extraUpstreamHeaders) {
355
+ for (const [name, value] of Object.entries(provider.extraUpstreamHeaders())) {
356
+ headers.set(name, value);
357
+ }
358
+ }
212
359
  const options = { method, headers };
213
360
  if (!bodyText)
214
361
  return options;
@@ -224,6 +371,7 @@ async function handleUpstreamErrorResponse(response, ctx, key) {
224
371
  const errorBody = await response.text();
225
372
  const errorType = classifyHttpError(response.status, errorBody);
226
373
  logUpstreamError(ctx.requestId, key, response.status, errorType, errorBody, ctx.kind);
374
+ captureFailedRequest(ctx, response.status, errorBody);
227
375
  if (errorType === 'RequestFault') {
228
376
  // Client error — don't retry, don't penalise the key
229
377
  completeRequest(ctx.state, ctx.requestId, false);
@@ -238,13 +386,16 @@ async function handleUpstreamErrorResponse(response, ctx, key) {
238
386
  }
239
387
  function handleNetworkError(err, ctx, key) {
240
388
  const lastError = err instanceof Error ? err : new Error(String(err));
389
+ // Timeouts / connection errors are shared-upstream failures, not per-key
390
+ // faults: penalising them disabled every key during upstream hangs and
391
+ // locked the proxy into "all keys unavailable" until cooldown expired.
241
392
  if (lastError instanceof TimeoutError) {
242
393
  logTimeout(ctx.requestId, key, ctx.config.requestTimeoutMs, ctx.kind);
243
- markKeyFailed(ctx.state, key.label, 'ServerFault');
244
- return { kind: 'retry', lastError };
245
394
  }
246
- logNetworkError(ctx.requestId, key, err, ctx.kind);
247
- markKeyFailed(ctx.state, key.label, 'ServerFault');
395
+ else {
396
+ logNetworkError(ctx.requestId, key, err, ctx.kind);
397
+ }
398
+ markKeyFailed(ctx.state, key.label, 'NetworkFault');
248
399
  return { kind: 'retry', lastError };
249
400
  }
250
401
  function buildNoKeysResponse(state, requestId, kind, attempt) {
@@ -346,6 +497,7 @@ async function handleWithFailover(opts) {
346
497
  incomingHeaders: opts.incomingHeaders,
347
498
  bodyText: opts.bodyText,
348
499
  kind: 'standard',
500
+ modelId: opts.modelId,
349
501
  onSuccess: standardSuccessHandler,
350
502
  maxRetries: opts.maxRetries ?? MAX_RETRIES,
351
503
  });
@@ -365,6 +517,7 @@ async function handleStreamingRequest(opts) {
365
517
  incomingHeaders: opts.incomingHeaders,
366
518
  bodyText: opts.bodyText,
367
519
  kind: 'streaming',
520
+ modelId: opts.modelId,
368
521
  onSuccess: streamingSuccessHandler,
369
522
  maxRetries: opts.maxRetries ?? MAX_RETRIES,
370
523
  });
@@ -437,6 +590,24 @@ export function createProxyApp(config) {
437
590
  circuitBreakerThreshold: config.circuitBreakerThreshold,
438
591
  circuitBreakerCooldownMs: config.circuitBreakerCooldownMs,
439
592
  });
593
+ // Model→provider affinity: requests naming a provider-specific model
594
+ // (e.g. commandcode's vendor-prefixed ids) are routed to a matching key
595
+ // first; 'maybe' providers remain as fallback. Bare-name matching lets
596
+ // shared models (deepseek-v4-flash etc.) rotate across ALL serving keys
597
+ // cross-provider. No-op for single-provider pools and when no provider
598
+ // claims the model.
599
+ state.affinityResolver = (providerId, modelId) => {
600
+ const provider = getProvider(providerId);
601
+ if (!provider)
602
+ return 'maybe';
603
+ const direct = provider.modelAffinity(modelId);
604
+ if (direct !== 'maybe')
605
+ return direct;
606
+ // Bare-name cross-check: 'deepseek-v4-flash' may be commandcode's
607
+ // 'deepseek/deepseek-v4-flash'.
608
+ const bare = (modelId.split('/').pop() ?? modelId).toLowerCase();
609
+ return provider.modelAffinityByName?.(bare) ?? 'maybe';
610
+ };
440
611
  const app = new Hono();
441
612
  // --- Rate limiting (prevent DoS and key exhaustion) ---
442
613
  app.use('*', rateLimiter({
@@ -479,21 +650,6 @@ export function createProxyApp(config) {
479
650
  const enabledCount = keys.filter((k) => k.enabled).length;
480
651
  const disabledCount = keys.length - enabledCount;
481
652
  const activeCount = state.activeRequests.size;
482
- // Build scraping status
483
- const scrapingStatus = config.scraping?.enabled
484
- ? {
485
- enabled: true,
486
- running: isScraperRunning(),
487
- intervalMs: config.scraping.intervalMs,
488
- usageThreshold: config.scraping.usageThreshold,
489
- accounts: Array.from(getAllUsage().entries()).map(([workspaceId, data]) => ({
490
- workspaceId,
491
- usage: data.usage,
492
- lastScrapedAt: data.lastScrapedAt.toISOString(),
493
- lastError: data.lastError ?? null,
494
- })),
495
- }
496
- : { enabled: false };
497
653
  return c.json({
498
654
  status: 'ok',
499
655
  uptime: process.uptime(),
@@ -503,7 +659,14 @@ export function createProxyApp(config) {
503
659
  activeRequests: activeCount,
504
660
  circuitBreakerThreshold: state.circuitBreakerThreshold,
505
661
  circuitBreakerCooldownMs: state.circuitBreakerCooldownMs,
506
- scraping: scrapingStatus,
662
+ // Per-provider key counts (multi-provider pools)
663
+ providers: keys.reduce((acc, k) => {
664
+ const entry = (acc[k.provider] ??= { total: 0, enabled: 0 });
665
+ entry.total++;
666
+ if (k.enabled)
667
+ entry.enabled++;
668
+ return acc;
669
+ }, {}),
507
670
  });
508
671
  });
509
672
  // --- Models discovery endpoint (OpenAI-compatible) ---
@@ -529,8 +692,17 @@ export function createProxyApp(config) {
529
692
  if (bodyText.length > MAX_BODY_SIZE) {
530
693
  return c.json({ error: 'Request body too large', requestId }, 413);
531
694
  }
695
+ maybeRefreshUsage(state, config);
696
+ // Parse once: used for both streaming detection and model tracking
697
+ const parsedBody = parseRequestBody(bodyText);
698
+ // Track most-used models for `saros-proxy usage` (best-effort)
699
+ if (parsedBody) {
700
+ const model = parsedBody.model;
701
+ if (typeof model === 'string' && model.length > 0)
702
+ recordModelRequest(model);
703
+ }
532
704
  // Check for streaming mode
533
- if (bodyText && isStreamingRequest(bodyText)) {
705
+ if (parsedBody?.stream === true) {
534
706
  logger.info({ requestId, method, path }, 'Streaming request detected');
535
707
  return handleStreamingRequest({
536
708
  state,
@@ -540,6 +712,7 @@ export function createProxyApp(config) {
540
712
  path,
541
713
  incomingHeaders,
542
714
  bodyText,
715
+ modelId: typeof parsedBody.model === 'string' ? parsedBody.model : undefined,
543
716
  });
544
717
  }
545
718
  // Non-streaming request with failover
@@ -551,6 +724,7 @@ export function createProxyApp(config) {
551
724
  path,
552
725
  incomingHeaders,
553
726
  bodyText,
727
+ modelId: typeof parsedBody?.model === 'string' ? parsedBody.model : undefined,
554
728
  });
555
729
  }
556
730
  // Unified catch-all: rewrites /v1/* → /zen/go/v1/* for upstream forwarding
package/dist/proxy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}