@tokenbuddy/tokenbuddy 1.0.5 → 1.0.6

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 (40) hide show
  1. package/dist/src/buyer-store.d.ts +20 -0
  2. package/dist/src/buyer-store.d.ts.map +1 -1
  3. package/dist/src/buyer-store.js +73 -1
  4. package/dist/src/buyer-store.js.map +1 -1
  5. package/dist/src/cli.d.ts.map +1 -1
  6. package/dist/src/cli.js +390 -62
  7. package/dist/src/cli.js.map +1 -1
  8. package/dist/src/daemon.d.ts +6 -5
  9. package/dist/src/daemon.d.ts.map +1 -1
  10. package/dist/src/daemon.js +298 -92
  11. package/dist/src/daemon.js.map +1 -1
  12. package/dist/src/doctor-diagnostics.d.ts +97 -0
  13. package/dist/src/doctor-diagnostics.d.ts.map +1 -0
  14. package/dist/src/doctor-diagnostics.js +547 -0
  15. package/dist/src/doctor-diagnostics.js.map +1 -0
  16. package/dist/src/init-payment-options.d.ts +34 -0
  17. package/dist/src/init-payment-options.d.ts.map +1 -0
  18. package/dist/src/init-payment-options.js +90 -0
  19. package/dist/src/init-payment-options.js.map +1 -0
  20. package/dist/src/provider-install.d.ts +37 -2
  21. package/dist/src/provider-install.d.ts.map +1 -1
  22. package/dist/src/provider-install.js +317 -67
  23. package/dist/src/provider-install.js.map +1 -1
  24. package/dist/src/seller-catalog.d.ts +79 -0
  25. package/dist/src/seller-catalog.d.ts.map +1 -0
  26. package/dist/src/seller-catalog.js +126 -0
  27. package/dist/src/seller-catalog.js.map +1 -0
  28. package/dist/src/tb-proxyd.js +13 -2
  29. package/dist/src/tb-proxyd.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/buyer-store.ts +113 -1
  32. package/src/cli.ts +490 -67
  33. package/src/daemon.ts +346 -117
  34. package/src/doctor-diagnostics.ts +850 -0
  35. package/src/init-payment-options.ts +131 -0
  36. package/src/provider-install.ts +426 -76
  37. package/src/seller-catalog.ts +222 -0
  38. package/src/tb-proxyd.ts +14 -2
  39. package/tests/e2e.test.ts +9 -0
  40. package/tests/tokenbuddy.test.ts +628 -19
@@ -1,14 +1,20 @@
1
1
  import * as fs from "fs";
2
2
  import * as os from "os";
3
3
  import * as path from "path";
4
- const PLACEHOLDER_API_KEY = "TOKENBUDDY_PROXY";
4
+ export const PROXY_ACCESS_TOKEN_PLACEHOLDER = "TOKENBUDDY_PROXY";
5
5
  const DESKTOP_PROFILE_ID = "00000000-0000-4000-8000-000000178210";
6
+ const CLAUDE_ONE_M_MARKER = "[1M]";
7
+ const CLAUDE_CLIENT_HAIKU_MODEL = "claude-haiku-4-5";
8
+ const CLAUDE_CLIENT_SONNET_MODEL = "claude-sonnet-4-6";
9
+ const CLAUDE_CLIENT_OPUS_MODEL = "claude-opus-4-7";
10
+ const ROUTING_CONFIG_KEY = "routing";
6
11
  export const SUPPORTED_PROVIDER_IDS = [
7
12
  "codex",
8
13
  "claude-code",
9
14
  "claude-desktop",
10
15
  "openclaw",
11
- "hermes"
16
+ "opencode",
17
+ "hermes",
12
18
  ];
13
19
  function resolveHome(home) {
14
20
  return home && home.trim() ? home : os.homedir();
@@ -55,6 +61,31 @@ function readJsonObject(filePath) {
55
61
  function jsonContent(value) {
56
62
  return `${JSON.stringify(value, null, 2)}\n`;
57
63
  }
64
+ function displayPath(home, filePath) {
65
+ return filePath.startsWith(home) ? `~${filePath.slice(home.length)}` : filePath;
66
+ }
67
+ function resolveExecutable(commandName) {
68
+ const pathValue = process.env.PATH || "";
69
+ const pathEntries = pathValue.split(path.delimiter).filter(Boolean);
70
+ const windowsExts = process.platform === "win32"
71
+ ? (process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM")
72
+ .split(";")
73
+ .filter(Boolean)
74
+ : [""];
75
+ for (const entry of pathEntries) {
76
+ for (const ext of windowsExts) {
77
+ const candidate = path.join(entry, process.platform === "win32" ? `${commandName}${ext}` : commandName);
78
+ try {
79
+ fs.accessSync(candidate, fs.constants.X_OK);
80
+ return candidate;
81
+ }
82
+ catch {
83
+ continue;
84
+ }
85
+ }
86
+ }
87
+ return undefined;
88
+ }
58
89
  function escapeTomlString(value) {
59
90
  return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
60
91
  }
@@ -67,32 +98,154 @@ function replaceTomlSection(existing, sectionName, sectionBody) {
67
98
  }
68
99
  return `${normalized}${normalized ? "\n\n" : ""}${nextSection}`;
69
100
  }
70
- function codexConfig(home, proxyUrl, model) {
101
+ function stripClaudeOneMMarker(model) {
102
+ const trimmed = model.trimEnd();
103
+ if (!trimmed.toLowerCase().endsWith(CLAUDE_ONE_M_MARKER.toLowerCase())) {
104
+ return model;
105
+ }
106
+ return trimmed.slice(0, -CLAUDE_ONE_M_MARKER.length).trimEnd();
107
+ }
108
+ function setClaudeOneMMarker(model, enabled) {
109
+ const base = stripClaudeOneMMarker(model).trim();
110
+ if (!base) {
111
+ return "";
112
+ }
113
+ return enabled ? `${base}${CLAUDE_ONE_M_MARKER}` : base;
114
+ }
115
+ function makeChange(providerId, filePath, summary, content) {
116
+ const existed = fs.existsSync(filePath);
117
+ return {
118
+ providerId,
119
+ path: filePath,
120
+ action: existed ? "update" : "create",
121
+ existed,
122
+ summary,
123
+ content,
124
+ };
125
+ }
126
+ function makeSingleModelRuntimeConfig(provider, model, sellerId) {
127
+ return {
128
+ selectionKind: "single-model",
129
+ protocolPreference: provider.protocolPreference,
130
+ defaultModel: model,
131
+ sellerId,
132
+ };
133
+ }
134
+ function pickConfiguredModel(config) {
135
+ if (config.selectionKind === "single-model") {
136
+ return config.defaultModel;
137
+ }
138
+ const sonnetModel = config.roles.sonnet?.upstreamModel;
139
+ const opusModel = config.roles.opus?.upstreamModel;
140
+ const haikuModel = config.roles.haiku?.upstreamModel;
141
+ return sonnetModel || opusModel || haikuModel || config.fallbackModel || "";
142
+ }
143
+ function resolveProviderRuntimeConfig(provider, options) {
144
+ const selection = options.providerSelections?.[provider.id];
145
+ if (selection) {
146
+ return selection;
147
+ }
148
+ const model = options.model?.trim();
149
+ if (!model) {
150
+ throw new Error(`model is required for provider ${provider.id}`);
151
+ }
152
+ return makeSingleModelRuntimeConfig(provider, model, options.sellerRouting?.mode === "fixed" ? options.sellerRouting.sellerId : undefined);
153
+ }
154
+ function codexConfig(home, proxyUrl, config) {
155
+ const model = pickConfiguredModel(config);
71
156
  const configPath = path.join(home, ".codex", "config.toml");
72
157
  const existing = readText(configPath) || "";
73
158
  const content = replaceTomlSection(existing, "tokenbuddy", [
74
159
  `proxy_url = "${escapeTomlString(proxyUrl)}"`,
75
- `api_key = "${PLACEHOLDER_API_KEY}"`,
76
- `model = "${escapeTomlString(model)}"`
160
+ `api_key = "${PROXY_ACCESS_TOKEN_PLACEHOLDER}"`,
161
+ `model = "${escapeTomlString(model)}"`,
77
162
  ].join("\n"));
78
163
  return [makeChange("codex", configPath, "configure TokenBuddy proxy for Codex", content)];
79
164
  }
80
- function claudeCodeConfig(home, proxyUrl, model) {
165
+ function resolveClaudeFallbackAlias(config) {
166
+ if (config.roles.sonnet?.upstreamModel) {
167
+ return setClaudeOneMMarker(CLAUDE_CLIENT_SONNET_MODEL, Boolean(config.roles.sonnet.declareOneM));
168
+ }
169
+ if (config.roles.opus?.upstreamModel) {
170
+ return setClaudeOneMMarker(CLAUDE_CLIENT_OPUS_MODEL, Boolean(config.roles.opus.declareOneM));
171
+ }
172
+ if (config.roles.haiku?.upstreamModel) {
173
+ return CLAUDE_CLIENT_HAIKU_MODEL;
174
+ }
175
+ return CLAUDE_CLIENT_SONNET_MODEL;
176
+ }
177
+ function buildClaudeRoleEnv(config) {
178
+ const env = {};
179
+ const roleConfigs = [
180
+ {
181
+ binding: config.roles.haiku,
182
+ modelKey: "ANTHROPIC_DEFAULT_HAIKU_MODEL",
183
+ displayNameKey: "ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME",
184
+ alias: CLAUDE_CLIENT_HAIKU_MODEL,
185
+ allowOneM: false,
186
+ },
187
+ {
188
+ binding: config.roles.sonnet,
189
+ modelKey: "ANTHROPIC_DEFAULT_SONNET_MODEL",
190
+ displayNameKey: "ANTHROPIC_DEFAULT_SONNET_MODEL_NAME",
191
+ alias: CLAUDE_CLIENT_SONNET_MODEL,
192
+ allowOneM: true,
193
+ },
194
+ {
195
+ binding: config.roles.opus,
196
+ modelKey: "ANTHROPIC_DEFAULT_OPUS_MODEL",
197
+ displayNameKey: "ANTHROPIC_DEFAULT_OPUS_MODEL_NAME",
198
+ alias: CLAUDE_CLIENT_OPUS_MODEL,
199
+ allowOneM: true,
200
+ },
201
+ ];
202
+ for (const role of roleConfigs) {
203
+ if (!role.binding?.upstreamModel?.trim()) {
204
+ continue;
205
+ }
206
+ env[role.modelKey] = role.allowOneM
207
+ ? setClaudeOneMMarker(role.alias, Boolean(role.binding.declareOneM))
208
+ : role.alias;
209
+ const displayName = role.binding.displayName?.trim() || stripClaudeOneMMarker(role.binding.upstreamModel).trim();
210
+ if (displayName) {
211
+ env[role.displayNameKey] = displayName;
212
+ }
213
+ }
214
+ env.ANTHROPIC_MODEL = resolveClaudeFallbackAlias(config);
215
+ return env;
216
+ }
217
+ function claudeCodeConfig(home, proxyUrl, config) {
81
218
  const configPath = path.join(home, ".claude", "settings.json");
82
- const config = readJsonObject(configPath);
83
- const env = config.env && typeof config.env === "object" && !Array.isArray(config.env)
84
- ? config.env
219
+ const current = readJsonObject(configPath);
220
+ const env = current.env && typeof current.env === "object" && !Array.isArray(current.env)
221
+ ? current.env
85
222
  : {};
86
- config.env = {
223
+ const nextEnv = {
87
224
  ...env,
88
225
  ANTHROPIC_BASE_URL: proxyUrl,
89
- ANTHROPIC_AUTH_TOKEN: PLACEHOLDER_API_KEY,
90
- ANTHROPIC_MODEL: model,
91
- ANTHROPIC_DEFAULT_SONNET_MODEL: model
226
+ ANTHROPIC_AUTH_TOKEN: PROXY_ACCESS_TOKEN_PLACEHOLDER,
92
227
  };
93
- return [makeChange("claude-code", configPath, "configure Anthropic proxy env for Claude Code", jsonContent(config))];
228
+ delete nextEnv.ANTHROPIC_DEFAULT_HAIKU_MODEL;
229
+ delete nextEnv.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME;
230
+ delete nextEnv.ANTHROPIC_DEFAULT_SONNET_MODEL;
231
+ delete nextEnv.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME;
232
+ delete nextEnv.ANTHROPIC_DEFAULT_OPUS_MODEL;
233
+ delete nextEnv.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME;
234
+ delete nextEnv.ANTHROPIC_MODEL;
235
+ if (config.selectionKind === "claude-role-mapping") {
236
+ Object.assign(nextEnv, buildClaudeRoleEnv(config));
237
+ }
238
+ else {
239
+ nextEnv.ANTHROPIC_MODEL = config.defaultModel;
240
+ nextEnv.ANTHROPIC_DEFAULT_SONNET_MODEL = config.defaultModel;
241
+ }
242
+ current.env = nextEnv;
243
+ return [
244
+ makeChange("claude-code", configPath, "configure Anthropic proxy env for Claude Code", jsonContent(current)),
245
+ ];
94
246
  }
95
- function claudeDesktopConfig(home, proxyUrl, model) {
247
+ function claudeDesktopConfig(home, proxyUrl, config) {
248
+ const model = pickConfiguredModel(config);
96
249
  const configDir = path.join(home, "Library", "Application Support", "Claude");
97
250
  const configPath = path.join(configDir, "claude_desktop_config.json");
98
251
  const threepDir = path.join(home, "Library", "Application Support", "Claude-3p");
@@ -106,125 +259,212 @@ function claudeDesktopConfig(home, proxyUrl, model) {
106
259
  threep.deploymentMode = "3p";
107
260
  const profile = {
108
261
  disableDeploymentModeChooser: true,
109
- inferenceGatewayApiKey: PLACEHOLDER_API_KEY,
262
+ inferenceGatewayApiKey: PROXY_ACCESS_TOKEN_PLACEHOLDER,
110
263
  inferenceGatewayAuthScheme: "bearer",
111
264
  inferenceGatewayBaseUrl: proxyUrl,
112
265
  inferenceProvider: "gateway",
113
- inferenceModels: [{ name: model }]
266
+ inferenceModels: [{ name: model }],
114
267
  };
115
268
  const meta = readJsonObject(metaPath);
116
269
  const existingEntries = Array.isArray(meta.entries) ? meta.entries : [];
117
270
  meta.appliedId = DESKTOP_PROFILE_ID;
118
271
  meta.entries = [
119
- ...existingEntries.filter((entry) => {
120
- return !(entry && typeof entry === "object" && "id" in entry && entry.id === DESKTOP_PROFILE_ID);
121
- }),
122
- { id: DESKTOP_PROFILE_ID, name: "TokenBuddy" }
272
+ ...existingEntries.filter((entry) => !(entry && typeof entry === "object" && "id" in entry && entry.id === DESKTOP_PROFILE_ID)),
273
+ { id: DESKTOP_PROFILE_ID, name: "TokenBuddy" },
123
274
  ];
124
275
  return [
125
276
  makeChange("claude-desktop", configPath, "enable Claude Desktop 3p deployment mode", jsonContent(primary)),
126
277
  makeChange("claude-desktop", threepConfigPath, "enable Claude Desktop 3p config", jsonContent(threep)),
127
278
  makeChange("claude-desktop", profilePath, "write TokenBuddy Claude Desktop profile", jsonContent(profile)),
128
- makeChange("claude-desktop", metaPath, "select TokenBuddy Claude Desktop profile", jsonContent(meta))
279
+ makeChange("claude-desktop", metaPath, "select TokenBuddy Claude Desktop profile", jsonContent(meta)),
129
280
  ];
130
281
  }
131
- function openclawConfig(home, proxyUrl, model) {
282
+ function openclawConfig(home, proxyUrl, config) {
283
+ const model = pickConfiguredModel(config);
132
284
  const configPath = path.join(home, ".openclaw", "config.json");
133
- const config = readJsonObject(configPath);
134
- config.api_url = proxyUrl;
135
- config.api_key = PLACEHOLDER_API_KEY;
136
- config.model = model;
137
- return [makeChange("openclaw", configPath, "configure OpenClaw proxy settings", jsonContent(config))];
285
+ const current = readJsonObject(configPath);
286
+ current.api_url = proxyUrl;
287
+ current.api_key = PROXY_ACCESS_TOKEN_PLACEHOLDER;
288
+ current.model = model;
289
+ return [makeChange("openclaw", configPath, "configure OpenClaw proxy settings", jsonContent(current))];
290
+ }
291
+ function openAiBaseUrl(proxyUrl) {
292
+ const normalized = proxyUrl.replace(/\/+$/, "");
293
+ return normalized.endsWith("/v1") ? normalized : `${normalized}/v1`;
138
294
  }
139
- function hermesConfig(home, proxyUrl, model) {
295
+ function opencodeConfig(home, proxyUrl, config) {
296
+ const model = pickConfiguredModel(config);
297
+ const configPath = path.join(home, ".config", "opencode", "opencode.json");
298
+ const current = readJsonObject(configPath);
299
+ const providers = current.provider && typeof current.provider === "object" && !Array.isArray(current.provider)
300
+ ? current.provider
301
+ : {};
302
+ providers.tokenbuddy = {
303
+ name: "TokenBuddy",
304
+ npm: "@ai-sdk/openai",
305
+ options: {
306
+ apiKey: PROXY_ACCESS_TOKEN_PLACEHOLDER,
307
+ baseURL: openAiBaseUrl(proxyUrl),
308
+ },
309
+ models: {
310
+ [model]: {
311
+ name: model,
312
+ attachment: true,
313
+ tool_call: true,
314
+ },
315
+ },
316
+ };
317
+ current.provider = providers;
318
+ return [makeChange("opencode", configPath, "configure OpenCode provider for TokenBuddy proxy", jsonContent(current))];
319
+ }
320
+ function hermesConfig(home, proxyUrl, config) {
321
+ const model = pickConfiguredModel(config);
140
322
  const configPath = path.join(home, ".hermes", "settings.json");
141
- const config = readJsonObject(configPath);
142
- const openai = config.openai && typeof config.openai === "object" && !Array.isArray(config.openai)
143
- ? config.openai
323
+ const current = readJsonObject(configPath);
324
+ const openai = current.openai && typeof current.openai === "object" && !Array.isArray(current.openai)
325
+ ? current.openai
144
326
  : {};
145
- config.openai = {
327
+ current.openai = {
146
328
  ...openai,
147
329
  base_url: proxyUrl,
148
- api_key: PLACEHOLDER_API_KEY,
149
- model
150
- };
151
- return [makeChange("hermes", configPath, "configure Hermes OpenAI proxy settings", jsonContent(config))];
152
- }
153
- function makeChange(providerId, filePath, summary, content) {
154
- const existed = fs.existsSync(filePath);
155
- return {
156
- providerId,
157
- path: filePath,
158
- action: existed ? "update" : "create",
159
- existed,
160
- summary,
161
- content
330
+ api_key: PROXY_ACCESS_TOKEN_PLACEHOLDER,
331
+ model,
162
332
  };
333
+ return [makeChange("hermes", configPath, "configure Hermes OpenAI proxy settings", jsonContent(current))];
163
334
  }
164
335
  const PROVIDERS = [
165
336
  {
166
337
  id: "codex",
167
338
  name: "Codex CLI",
339
+ commandName: "codex",
168
340
  configPath: (home) => path.join(home, ".codex", "config.toml"),
169
- changes: codexConfig
341
+ changes: codexConfig,
342
+ modelSelectionKind: "single-model",
343
+ protocolPreference: "responses",
170
344
  },
171
345
  {
172
346
  id: "claude-code",
173
347
  name: "Claude Code CLI",
348
+ commandName: "claude",
174
349
  configPath: (home) => path.join(home, ".claude", "settings.json"),
175
- changes: claudeCodeConfig
350
+ changes: claudeCodeConfig,
351
+ modelSelectionKind: "claude-role-mapping",
352
+ protocolPreference: "messages",
176
353
  },
177
354
  {
178
355
  id: "claude-desktop",
179
356
  name: "Claude Desktop App",
180
357
  configPath: (home) => path.join(home, "Library", "Application Support", "Claude", "claude_desktop_config.json"),
181
- changes: claudeDesktopConfig
358
+ changes: claudeDesktopConfig,
359
+ modelSelectionKind: "single-model",
360
+ protocolPreference: "messages",
182
361
  },
183
362
  {
184
363
  id: "openclaw",
185
364
  name: "OpenClaw Agent",
365
+ commandName: "openclaw",
186
366
  configPath: (home) => path.join(home, ".openclaw", "config.json"),
187
- changes: openclawConfig
367
+ observedPaths: (home) => [
368
+ path.join(home, ".openclaw", "openclaw.json"),
369
+ path.join(home, ".openclaw", "configs"),
370
+ ],
371
+ changes: openclawConfig,
372
+ modelSelectionKind: "single-model",
373
+ protocolPreference: "chat_completions",
374
+ },
375
+ {
376
+ id: "opencode",
377
+ name: "OpenCode",
378
+ commandName: "opencode",
379
+ configPath: (home) => path.join(home, ".config", "opencode", "opencode.json"),
380
+ changes: opencodeConfig,
381
+ modelSelectionKind: "single-model",
382
+ protocolPreference: "responses",
188
383
  },
189
384
  {
190
385
  id: "hermes",
191
386
  name: "Hermes Terminal",
387
+ commandName: "hermes",
192
388
  configPath: (home) => path.join(home, ".hermes", "settings.json"),
193
- changes: hermesConfig
194
- }
389
+ observedPaths: (home) => [
390
+ path.join(home, ".hermes", "config.yaml"),
391
+ path.join(home, ".hermes", "auth.json"),
392
+ ],
393
+ changes: hermesConfig,
394
+ modelSelectionKind: "single-model",
395
+ protocolPreference: "chat_completions",
396
+ },
195
397
  ];
398
+ function getProviderDefinition(providerId) {
399
+ const provider = PROVIDERS.find((entry) => entry.id === providerId);
400
+ if (!provider) {
401
+ throw new Error(`unsupported provider: ${providerId}`);
402
+ }
403
+ return provider;
404
+ }
196
405
  export function detectProviders(options = {}) {
197
406
  const home = resolveHome(options.home);
198
407
  return PROVIDERS.map((provider) => {
199
408
  const configPath = provider.configPath(home);
200
- const detected = fs.existsSync(configPath);
409
+ const configured = fs.existsSync(configPath);
410
+ const executablePath = provider.commandName ? resolveExecutable(provider.commandName) : undefined;
411
+ const observedPaths = provider.observedPaths?.(home).filter((entry) => fs.existsSync(entry)) || [];
412
+ const installed = Boolean(executablePath) || observedPaths.length > 0;
413
+ const status = configured
414
+ ? "configured"
415
+ : installed
416
+ ? "installed"
417
+ : "missing";
418
+ const reasonParts = [];
419
+ if (configured) {
420
+ reasonParts.push(`Configured at ${displayPath(home, configPath)}`);
421
+ }
422
+ else if (installed) {
423
+ reasonParts.push(`Installed, TokenBuddy config missing at ${displayPath(home, configPath)}`);
424
+ }
425
+ else {
426
+ reasonParts.push(`Missing ${displayPath(home, configPath)}`);
427
+ }
428
+ if (executablePath) {
429
+ reasonParts.push(`CLI ${displayPath(home, executablePath)}`);
430
+ }
431
+ if (observedPaths.length > 0) {
432
+ reasonParts.push(`Native files ${observedPaths.map((entry) => displayPath(home, entry)).join(", ")}`);
433
+ }
201
434
  return {
202
435
  id: provider.id,
203
436
  name: provider.name,
204
- detected,
437
+ detected: status !== "missing",
438
+ configured,
439
+ status,
205
440
  configPath,
206
- reason: detected ? `Found ${configPath}` : `Missing ${configPath}`
441
+ commandName: provider.commandName,
442
+ executablePath,
443
+ observedPaths,
444
+ reason: reasonParts.join(" · "),
207
445
  };
208
446
  });
209
447
  }
448
+ export function getProviderProtocolPreference(providerId) {
449
+ return getProviderDefinition(providerId).protocolPreference;
450
+ }
451
+ export function getProviderModelSelectionKind(providerId) {
452
+ return getProviderDefinition(providerId).modelSelectionKind;
453
+ }
210
454
  export function previewProviderInstall(options) {
211
455
  const home = resolveHome(options.home);
212
456
  const providerIds = assertProviderIds(options.providers);
213
457
  if (!options.proxyUrl || !options.proxyUrl.trim()) {
214
458
  throw new Error("proxyUrl is required");
215
459
  }
216
- if (!options.model || !options.model.trim()) {
217
- throw new Error("model is required");
218
- }
219
460
  return providerIds.flatMap((providerId) => {
220
- const provider = PROVIDERS.find((entry) => entry.id === providerId);
221
- if (!provider) {
222
- throw new Error(`unsupported provider: ${providerId}`);
223
- }
224
- return provider.changes(home, options.proxyUrl, options.model);
461
+ const provider = getProviderDefinition(providerId);
462
+ const runtimeConfig = resolveProviderRuntimeConfig(provider, options);
463
+ return provider.changes(home, options.proxyUrl, runtimeConfig);
225
464
  });
226
465
  }
227
466
  export function applyProviderInstall(options, store) {
467
+ const providerIds = assertProviderIds(options.providers);
228
468
  const changes = previewProviderInstall(options);
229
469
  const byProvider = new Map();
230
470
  for (const change of changes) {
@@ -236,11 +476,19 @@ export function applyProviderInstall(options, store) {
236
476
  files: providerChanges.map((change) => ({
237
477
  path: change.path,
238
478
  existed: fs.existsSync(change.path),
239
- content: readText(change.path)
240
- }))
479
+ content: readText(change.path),
480
+ })),
241
481
  };
242
482
  store.saveProviderInstallSnapshot(snapshot);
243
483
  }
484
+ for (const providerId of providerIds) {
485
+ const provider = getProviderDefinition(providerId);
486
+ const runtimeConfig = resolveProviderRuntimeConfig(provider, options);
487
+ store.saveProviderRuntimeConfig(providerId, runtimeConfig);
488
+ }
489
+ if (options.sellerRouting) {
490
+ store.saveDaemonRuntimeConfig(ROUTING_CONFIG_KEY, options.sellerRouting);
491
+ }
244
492
  const applied = [];
245
493
  for (const change of changes) {
246
494
  const dir = path.dirname(change.path);
@@ -251,7 +499,7 @@ export function applyProviderInstall(options, store) {
251
499
  applied.push({
252
500
  providerId: change.providerId,
253
501
  path: change.path,
254
- action: change.existed ? "updated" : "created"
502
+ action: change.existed ? "updated" : "created",
255
503
  });
256
504
  }
257
505
  return applied;
@@ -280,7 +528,9 @@ export function rollbackProviderInstall(options, store) {
280
528
  }
281
529
  }
282
530
  store.removeProviderInstallSnapshot(providerId);
531
+ store.removeProviderRuntimeConfig(providerId);
283
532
  }
533
+ store.removeDaemonRuntimeConfig(ROUTING_CONFIG_KEY);
284
534
  return results;
285
535
  }
286
536
  //# sourceMappingURL=provider-install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-install.js","sourceRoot":"","sources":["../../src/provider-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-install.js","sourceRoot":"","sources":["../../src/provider-install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ export type ProtocolPreference = "chat_completions" | "responses" | "messages";
2
+ export interface RegistrySeller {
3
+ id: string;
4
+ name?: string;
5
+ url: string;
6
+ supportedProtocols?: string[];
7
+ paymentMethods?: string[];
8
+ }
9
+ export interface SellerRegistryDocument {
10
+ version: number;
11
+ defaultSeller?: string;
12
+ sellers: RegistrySeller[];
13
+ }
14
+ export interface SellerManifest {
15
+ sellerId?: string;
16
+ seller_id?: string;
17
+ supportedProtocols?: string[];
18
+ supported_protocols?: string[];
19
+ paymentMethods?: string[];
20
+ payment_methods?: string[];
21
+ models?: ManifestModelRecord[];
22
+ selection?: {
23
+ discountRatio?: number;
24
+ discount_ratio?: number;
25
+ };
26
+ }
27
+ export interface ManifestModelRecord {
28
+ id: string;
29
+ inputPriceMicrosPer1m?: number;
30
+ outputPriceMicrosPer1m?: number;
31
+ input_price_micros_per_1m?: number;
32
+ output_price_micros_per_1m?: number;
33
+ [key: string]: unknown;
34
+ }
35
+ export interface ModelCatalogEntry {
36
+ id: string;
37
+ sellerId: string;
38
+ sellerName?: string;
39
+ sellerUrl: string;
40
+ supportedProtocols: string[];
41
+ paymentMethods: string[];
42
+ inputPriceMicrosPer1m?: number;
43
+ outputPriceMicrosPer1m?: number;
44
+ }
45
+ export interface SellerCatalogEntry {
46
+ id: string;
47
+ name?: string;
48
+ url: string;
49
+ status: string;
50
+ manifestSellerId?: string;
51
+ discountRatio?: number;
52
+ modelCount?: number;
53
+ supportedProtocols?: string[];
54
+ paymentMethods?: string[];
55
+ errorMessage?: string;
56
+ }
57
+ export interface SellerCatalogResult {
58
+ registryUrl: string;
59
+ version: number;
60
+ defaultSeller?: string;
61
+ models: ModelCatalogEntry[];
62
+ sellers: SellerCatalogEntry[];
63
+ }
64
+ export type SellerRoutingMode = "auto" | "fixed";
65
+ export interface SellerRoutingPreference {
66
+ mode: SellerRoutingMode;
67
+ sellerId?: string;
68
+ }
69
+ export declare function normalizeSellerUrl(seller: RegistrySeller): string;
70
+ export declare function manifestProtocols(manifest: SellerManifest, seller: RegistrySeller): string[];
71
+ export declare function manifestPaymentMethods(manifest: SellerManifest, seller: RegistrySeller): string[];
72
+ export declare function manifestModelIds(manifest: SellerManifest): string[];
73
+ export declare function fetchSellerRegistry(registryUrl: string): Promise<SellerRegistryDocument>;
74
+ export declare function fetchSellerManifest(seller: RegistrySeller): Promise<SellerManifest>;
75
+ export declare function discoverSellerBackedModels(registryUrl: string): Promise<SellerCatalogResult>;
76
+ export declare function filterCatalogByProtocol(models: ModelCatalogEntry[], protocol: ProtocolPreference): ModelCatalogEntry[];
77
+ export declare function filterCatalogBySeller(models: ModelCatalogEntry[], sellerId: string | undefined): ModelCatalogEntry[];
78
+ export declare function dedupeCatalogEntries(models: ModelCatalogEntry[]): ModelCatalogEntry[];
79
+ //# sourceMappingURL=seller-catalog.d.ts.map