proxitor 0.8.0 → 0.9.0-beta.1

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.
package/dist/edit.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { confirm as le, intro as ye, isCancel as R$1, log as R, outro as fe, select as Ee } from "./dist.mjs";
1
+ import { confirm, intro, isCancel, log, outro, select } from "./dist.mjs";
2
2
  import { n as selectProvidersByMode, r as selectRoutingMode, t as fetchProvidersForModel } from "./providers.mjs";
3
3
  import { i as setModelOverride, r as requireConfigPath, t as getModelOverrides } from "./config.mjs";
4
4
  //#region src/commands/config/edit.ts
@@ -7,9 +7,9 @@ function formatOverrideHint(override) {
7
7
  return Object.keys(override.provider).map((k) => `${k}: ${JSON.stringify(override.provider?.[k])}`).join(", ");
8
8
  }
9
9
  function showCurrentConfig(modelKey, current) {
10
- R.info(`Current config for "${modelKey}":`);
11
- if (current.provider) for (const [field, value] of Object.entries(current.provider)) R.info(` provider.${field}: ${JSON.stringify(value)}`);
12
- if (current.headers) for (const [name, value] of Object.entries(current.headers)) R.info(` headers.${name}: ${value}`);
10
+ log.info(`Current config for "${modelKey}":`);
11
+ if (current.provider) for (const [field, value] of Object.entries(current.provider)) log.info(` provider.${field}: ${JSON.stringify(value)}`);
12
+ if (current.headers) for (const [name, value] of Object.entries(current.headers)) log.info(` headers.${name}: ${value}`);
13
13
  }
14
14
  function withoutProvider(current) {
15
15
  return current.headers ? { headers: current.headers } : {};
@@ -17,10 +17,10 @@ function withoutProvider(current) {
17
17
  async function updateProviderRouting(configPath, modelKey, current, client) {
18
18
  const isPattern = modelKey.includes("*");
19
19
  const mode = await selectRoutingMode("Routing mode");
20
- if (R$1(mode)) return;
20
+ if (isCancel(mode)) return;
21
21
  if (mode === "skip") {
22
22
  setModelOverride(configPath, modelKey, withoutProvider(current));
23
- fe("✓ Override updated");
23
+ outro("✓ Override updated");
24
24
  return;
25
25
  }
26
26
  const providerOptions = await fetchProvidersForModel(client, modelKey, isPattern);
@@ -29,26 +29,26 @@ async function updateProviderRouting(configPath, modelKey, current, client) {
29
29
  if (override === null) return;
30
30
  const updated = withoutProvider(current);
31
31
  if (override.provider) updated.provider = override.provider;
32
- const save = await le({ message: "Save changes?" });
33
- if (R$1(save) || !save) {
34
- fe("Cancelled");
32
+ const save = await confirm({ message: "Save changes?" });
33
+ if (isCancel(save) || !save) {
34
+ outro("Cancelled");
35
35
  return;
36
36
  }
37
37
  setModelOverride(configPath, modelKey, updated);
38
- fe("✓ Override updated");
38
+ outro("✓ Override updated");
39
39
  }
40
40
  /** Run the interactive "Edit model override" flow. */
41
41
  async function editOverrideCommand(client) {
42
- ye("Edit Model Override");
42
+ intro("Edit Model Override");
43
43
  const configPath = requireConfigPath();
44
44
  const overrides = getModelOverrides(configPath);
45
45
  const keys = Object.keys(overrides);
46
46
  if (keys.length === 0) {
47
- R.warn("No model overrides found. Use Add instead.");
48
- fe("");
47
+ log.warn("No model overrides found. Use Add instead.");
48
+ outro("");
49
49
  return;
50
50
  }
51
- const selected = await Ee({
51
+ const selected = await select({
52
52
  message: "Select override to edit",
53
53
  options: keys.map((k) => ({
54
54
  value: k,
@@ -56,11 +56,11 @@ async function editOverrideCommand(client) {
56
56
  hint: formatOverrideHint(overrides[k])
57
57
  }))
58
58
  });
59
- if (R$1(selected)) return;
59
+ if (isCancel(selected)) return;
60
60
  const modelKey = selected;
61
61
  const current = overrides[modelKey] ?? {};
62
62
  showCurrentConfig(modelKey, current);
63
- const target = await Ee({
63
+ const target = await select({
64
64
  message: "What to change?",
65
65
  options: [{
66
66
  value: "provider",
@@ -70,7 +70,7 @@ async function editOverrideCommand(client) {
70
70
  label: "Replace entirely"
71
71
  }]
72
72
  });
73
- if (R$1(target)) return;
73
+ if (isCancel(target)) return;
74
74
  if (target === "provider" || target === "replace") await updateProviderRouting(configPath, modelKey, current, client);
75
75
  }
76
76
  //#endregion
package/dist/edit.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"edit.mjs","names":["isCancel","clack.confirm","clack.select"],"sources":["../src/commands/config/edit.ts"],"sourcesContent":["import * as clack from '@clack/prompts';\nimport { isCancel } from '@clack/prompts';\nimport type { ModelOverride } from '../../config-schema.js';\nimport type { OpenRouterDataClient } from '../../openrouter/data-client.js';\nimport { getModelOverrides, requireConfigPath, setModelOverride } from './config.js';\nimport {\n fetchProvidersForModel,\n selectProvidersByMode,\n selectRoutingMode,\n} from './providers.js';\n\nfunction formatOverrideHint(override: ModelOverride | undefined): string {\n if (!override?.provider) return '(no provider routing)';\n const keys = Object.keys(override.provider);\n return keys\n .map(\n k => `${k}: ${JSON.stringify((override.provider as Record<string, unknown>)?.[k])}`,\n )\n .join(', ');\n}\n\nfunction showCurrentConfig(modelKey: string, current: ModelOverride): void {\n clack.log.info(`Current config for \"${modelKey}\":`);\n if (current.provider) {\n for (const [field, value] of Object.entries(current.provider)) {\n clack.log.info(` provider.${field}: ${JSON.stringify(value)}`);\n }\n }\n if (current.headers) {\n for (const [name, value] of Object.entries(current.headers)) {\n clack.log.info(` headers.${name}: ${value}`);\n }\n }\n}\n\nfunction withoutProvider(current: ModelOverride): ModelOverride {\n return current.headers ? { headers: current.headers } : {};\n}\n\nasync function updateProviderRouting(\n configPath: string,\n modelKey: string,\n current: ModelOverride,\n client: OpenRouterDataClient,\n): Promise<void> {\n const isPattern = modelKey.includes('*');\n\n const mode = await selectRoutingMode('Routing mode');\n if (isCancel(mode)) return;\n\n if (mode === 'skip') {\n setModelOverride(configPath, modelKey, withoutProvider(current));\n clack.outro('✓ Override updated');\n return;\n }\n\n const providerOptions = await fetchProvidersForModel(client, modelKey, isPattern);\n if (!providerOptions) return;\n\n const override = await selectProvidersByMode(mode as string, providerOptions);\n if (override === null) return;\n\n const updated = withoutProvider(current);\n if (override.provider) {\n updated.provider = override.provider as ModelOverride['provider'];\n }\n\n const save = await clack.confirm({ message: 'Save changes?' });\n if (isCancel(save) || !save) {\n clack.outro('Cancelled');\n return;\n }\n\n setModelOverride(configPath, modelKey, updated);\n clack.outro('✓ Override updated');\n}\n\n/** Run the interactive \"Edit model override\" flow. */\nexport async function editOverrideCommand(client: OpenRouterDataClient): Promise<void> {\n clack.intro('Edit Model Override');\n\n const configPath = requireConfigPath();\n const overrides = getModelOverrides(configPath);\n const keys = Object.keys(overrides);\n\n if (keys.length === 0) {\n clack.log.warn('No model overrides found. Use Add instead.');\n clack.outro('');\n return;\n }\n\n const selected = await clack.select({\n message: 'Select override to edit',\n options: keys.map(k => ({\n value: k,\n label: k,\n hint: formatOverrideHint(overrides[k]),\n })),\n });\n if (isCancel(selected)) return;\n\n const modelKey = selected as string;\n const current: ModelOverride = overrides[modelKey] ?? {};\n\n showCurrentConfig(modelKey, current);\n\n const target = await clack.select({\n message: 'What to change?',\n options: [\n { value: 'provider', label: 'Provider routing' },\n { value: 'replace', label: 'Replace entirely' },\n ],\n });\n if (isCancel(target)) return;\n\n if (target === 'provider' || target === 'replace') {\n await updateProviderRouting(configPath, modelKey, current, client);\n }\n}\n"],"mappings":";;;;AAWA,SAAS,mBAAmB,UAA6C;CACvE,IAAI,CAAC,UAAU,UAAU,OAAO;CAEhC,OADa,OAAO,KAAK,SAAS,QACxB,EACP,KACC,MAAK,GAAG,EAAE,IAAI,KAAK,UAAW,SAAS,WAAuC,EAAE,GAClF,EACC,KAAK,IAAI;AACd;AAEA,SAAS,kBAAkB,UAAkB,SAA8B;CACzE,EAAU,KAAK,uBAAuB,SAAS,GAAG;CAClD,IAAI,QAAQ,UACV,KAAK,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,QAAQ,QAAQ,GAC1D,EAAU,KAAK,cAAc,MAAM,IAAI,KAAK,UAAU,KAAK,GAAG;CAGlE,IAAI,QAAQ,SACV,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,QAAQ,OAAO,GACxD,EAAU,KAAK,aAAa,KAAK,IAAI,OAAO;AAGlD;AAEA,SAAS,gBAAgB,SAAuC;CAC9D,OAAO,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAC3D;AAEA,eAAe,sBACb,YACA,UACA,SACA,QACe;CACf,MAAM,YAAY,SAAS,SAAS,GAAG;CAEvC,MAAM,OAAO,MAAM,kBAAkB,cAAc;CACnD,IAAIA,IAAS,IAAI,GAAG;CAEpB,IAAI,SAAS,QAAQ;EACnB,iBAAiB,YAAY,UAAU,gBAAgB,OAAO,CAAC;EAC/D,GAAY,oBAAoB;EAChC;CACF;CAEA,MAAM,kBAAkB,MAAM,uBAAuB,QAAQ,UAAU,SAAS;CAChF,IAAI,CAAC,iBAAiB;CAEtB,MAAM,WAAW,MAAM,sBAAsB,MAAgB,eAAe;CAC5E,IAAI,aAAa,MAAM;CAEvB,MAAM,UAAU,gBAAgB,OAAO;CACvC,IAAI,SAAS,UACX,QAAQ,WAAW,SAAS;CAG9B,MAAM,OAAO,MAAMC,GAAc,EAAE,SAAS,gBAAgB,CAAC;CAC7D,IAAID,IAAS,IAAI,KAAK,CAAC,MAAM;EAC3B,GAAY,WAAW;EACvB;CACF;CAEA,iBAAiB,YAAY,UAAU,OAAO;CAC9C,GAAY,oBAAoB;AAClC;;AAGA,eAAsB,oBAAoB,QAA6C;CACrF,GAAY,qBAAqB;CAEjC,MAAM,aAAa,kBAAkB;CACrC,MAAM,YAAY,kBAAkB,UAAU;CAC9C,MAAM,OAAO,OAAO,KAAK,SAAS;CAElC,IAAI,KAAK,WAAW,GAAG;EACrB,EAAU,KAAK,4CAA4C;EAC3D,GAAY,EAAE;EACd;CACF;CAEA,MAAM,WAAW,MAAME,GAAa;EAClC,SAAS;EACT,SAAS,KAAK,KAAI,OAAM;GACtB,OAAO;GACP,OAAO;GACP,MAAM,mBAAmB,UAAU,EAAE;EACvC,EAAE;CACJ,CAAC;CACD,IAAIF,IAAS,QAAQ,GAAG;CAExB,MAAM,WAAW;CACjB,MAAM,UAAyB,UAAU,aAAa,CAAC;CAEvD,kBAAkB,UAAU,OAAO;CAEnC,MAAM,SAAS,MAAME,GAAa;EAChC,SAAS;EACT,SAAS,CACP;GAAE,OAAO;GAAY,OAAO;EAAmB,GAC/C;GAAE,OAAO;GAAW,OAAO;EAAmB,CAChD;CACF,CAAC;CACD,IAAIF,IAAS,MAAM,GAAG;CAEtB,IAAI,WAAW,cAAc,WAAW,WACtC,MAAM,sBAAsB,YAAY,UAAU,SAAS,MAAM;AAErE"}
1
+ {"version":3,"file":"edit.mjs","names":["clack.confirm","clack.select"],"sources":["../src/commands/config/edit.ts"],"sourcesContent":["import * as clack from '@clack/prompts';\nimport { isCancel } from '@clack/prompts';\nimport type { ModelOverride } from '../../config-schema.js';\nimport type { OpenRouterDataClient } from '../../openrouter/data-client.js';\nimport { getModelOverrides, requireConfigPath, setModelOverride } from './config.js';\nimport {\n fetchProvidersForModel,\n selectProvidersByMode,\n selectRoutingMode,\n} from './providers.js';\n\nfunction formatOverrideHint(override: ModelOverride | undefined): string {\n if (!override?.provider) return '(no provider routing)';\n const keys = Object.keys(override.provider);\n return keys\n .map(\n k => `${k}: ${JSON.stringify((override.provider as Record<string, unknown>)?.[k])}`,\n )\n .join(', ');\n}\n\nfunction showCurrentConfig(modelKey: string, current: ModelOverride): void {\n clack.log.info(`Current config for \"${modelKey}\":`);\n if (current.provider) {\n for (const [field, value] of Object.entries(current.provider)) {\n clack.log.info(` provider.${field}: ${JSON.stringify(value)}`);\n }\n }\n if (current.headers) {\n for (const [name, value] of Object.entries(current.headers)) {\n clack.log.info(` headers.${name}: ${value}`);\n }\n }\n}\n\nfunction withoutProvider(current: ModelOverride): ModelOverride {\n return current.headers ? { headers: current.headers } : {};\n}\n\nasync function updateProviderRouting(\n configPath: string,\n modelKey: string,\n current: ModelOverride,\n client: OpenRouterDataClient,\n): Promise<void> {\n const isPattern = modelKey.includes('*');\n\n const mode = await selectRoutingMode('Routing mode');\n if (isCancel(mode)) return;\n\n if (mode === 'skip') {\n setModelOverride(configPath, modelKey, withoutProvider(current));\n clack.outro('✓ Override updated');\n return;\n }\n\n const providerOptions = await fetchProvidersForModel(client, modelKey, isPattern);\n if (!providerOptions) return;\n\n const override = await selectProvidersByMode(mode as string, providerOptions);\n if (override === null) return;\n\n const updated = withoutProvider(current);\n if (override.provider) {\n updated.provider = override.provider as ModelOverride['provider'];\n }\n\n const save = await clack.confirm({ message: 'Save changes?' });\n if (isCancel(save) || !save) {\n clack.outro('Cancelled');\n return;\n }\n\n setModelOverride(configPath, modelKey, updated);\n clack.outro('✓ Override updated');\n}\n\n/** Run the interactive \"Edit model override\" flow. */\nexport async function editOverrideCommand(client: OpenRouterDataClient): Promise<void> {\n clack.intro('Edit Model Override');\n\n const configPath = requireConfigPath();\n const overrides = getModelOverrides(configPath);\n const keys = Object.keys(overrides);\n\n if (keys.length === 0) {\n clack.log.warn('No model overrides found. Use Add instead.');\n clack.outro('');\n return;\n }\n\n const selected = await clack.select({\n message: 'Select override to edit',\n options: keys.map(k => ({\n value: k,\n label: k,\n hint: formatOverrideHint(overrides[k]),\n })),\n });\n if (isCancel(selected)) return;\n\n const modelKey = selected as string;\n const current: ModelOverride = overrides[modelKey] ?? {};\n\n showCurrentConfig(modelKey, current);\n\n const target = await clack.select({\n message: 'What to change?',\n options: [\n { value: 'provider', label: 'Provider routing' },\n { value: 'replace', label: 'Replace entirely' },\n ],\n });\n if (isCancel(target)) return;\n\n if (target === 'provider' || target === 'replace') {\n await updateProviderRouting(configPath, modelKey, current, client);\n }\n}\n"],"mappings":";;;;AAWA,SAAS,mBAAmB,UAA6C;CACvE,IAAI,CAAC,UAAU,UAAU,OAAO;CAEhC,OADa,OAAO,KAAK,SAAS,QACxB,CAAC,CACR,KACC,MAAK,GAAG,EAAE,IAAI,KAAK,UAAW,SAAS,WAAuC,EAAE,GAClF,CAAC,CACA,KAAK,IAAI;AACd;AAEA,SAAS,kBAAkB,UAAkB,SAA8B;CACzE,IAAU,KAAK,uBAAuB,SAAS,GAAG;CAClD,IAAI,QAAQ,UACV,KAAK,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,QAAQ,QAAQ,GAC1D,IAAU,KAAK,cAAc,MAAM,IAAI,KAAK,UAAU,KAAK,GAAG;CAGlE,IAAI,QAAQ,SACV,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,QAAQ,OAAO,GACxD,IAAU,KAAK,aAAa,KAAK,IAAI,OAAO;AAGlD;AAEA,SAAS,gBAAgB,SAAuC;CAC9D,OAAO,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAC3D;AAEA,eAAe,sBACb,YACA,UACA,SACA,QACe;CACf,MAAM,YAAY,SAAS,SAAS,GAAG;CAEvC,MAAM,OAAO,MAAM,kBAAkB,cAAc;CACnD,IAAI,SAAS,IAAI,GAAG;CAEpB,IAAI,SAAS,QAAQ;EACnB,iBAAiB,YAAY,UAAU,gBAAgB,OAAO,CAAC;EAC/D,MAAY,oBAAoB;EAChC;CACF;CAEA,MAAM,kBAAkB,MAAM,uBAAuB,QAAQ,UAAU,SAAS;CAChF,IAAI,CAAC,iBAAiB;CAEtB,MAAM,WAAW,MAAM,sBAAsB,MAAgB,eAAe;CAC5E,IAAI,aAAa,MAAM;CAEvB,MAAM,UAAU,gBAAgB,OAAO;CACvC,IAAI,SAAS,UACX,QAAQ,WAAW,SAAS;CAG9B,MAAM,OAAO,MAAMA,QAAc,EAAE,SAAS,gBAAgB,CAAC;CAC7D,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM;EAC3B,MAAY,WAAW;EACvB;CACF;CAEA,iBAAiB,YAAY,UAAU,OAAO;CAC9C,MAAY,oBAAoB;AAClC;;AAGA,eAAsB,oBAAoB,QAA6C;CACrF,MAAY,qBAAqB;CAEjC,MAAM,aAAa,kBAAkB;CACrC,MAAM,YAAY,kBAAkB,UAAU;CAC9C,MAAM,OAAO,OAAO,KAAK,SAAS;CAElC,IAAI,KAAK,WAAW,GAAG;EACrB,IAAU,KAAK,4CAA4C;EAC3D,MAAY,EAAE;EACd;CACF;CAEA,MAAM,WAAW,MAAMC,OAAa;EAClC,SAAS;EACT,SAAS,KAAK,KAAI,OAAM;GACtB,OAAO;GACP,OAAO;GACP,MAAM,mBAAmB,UAAU,EAAE;EACvC,EAAE;CACJ,CAAC;CACD,IAAI,SAAS,QAAQ,GAAG;CAExB,MAAM,WAAW;CACjB,MAAM,UAAyB,UAAU,aAAa,CAAC;CAEvD,kBAAkB,UAAU,OAAO;CAEnC,MAAM,SAAS,MAAMA,OAAa;EAChC,SAAS;EACT,SAAS,CACP;GAAE,OAAO;GAAY,OAAO;EAAmB,GAC/C;GAAE,OAAO;GAAW,OAAO;EAAmB,CAChD;CACF,CAAC;CACD,IAAI,SAAS,MAAM,GAAG;CAEtB,IAAI,WAAW,cAAc,WAAW,WACtC,MAAM,sBAAsB,YAAY,UAAU,SAAS,MAAM;AAErE"}
package/dist/list.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { log as R } from "./dist.mjs";
1
+ import { log } from "./dist.mjs";
2
2
  import { r as requireConfigPath, t as getModelOverrides } from "./config.mjs";
3
3
  //#region src/commands/config/list.ts
4
4
  function formatOverrideSummary(override) {
@@ -15,14 +15,14 @@ async function listOverridesCommand() {
15
15
  const overrides = getModelOverrides(configPath);
16
16
  const keys = Object.keys(overrides);
17
17
  if (keys.length === 0) {
18
- R.info("No model overrides configured.");
18
+ log.info("No model overrides configured.");
19
19
  return;
20
20
  }
21
- R.success(`${keys.length} override(s) in ${configPath}`);
21
+ log.success(`${keys.length} override(s) in ${configPath}`);
22
22
  for (const key of keys) {
23
23
  const override = overrides[key];
24
24
  if (!override) continue;
25
- R.info(` ${key} — ${formatOverrideSummary(override)}`);
25
+ log.info(` ${key} — ${formatOverrideSummary(override)}`);
26
26
  }
27
27
  }
28
28
  //#endregion
package/dist/list.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"list.mjs","names":[],"sources":["../src/commands/config/list.ts"],"sourcesContent":["import * as clack from '@clack/prompts';\nimport type { ModelOverride } from '../../config-schema.js';\nimport { getModelOverrides, requireConfigPath } from './config.js';\n\nfunction formatOverrideSummary(override: ModelOverride): string {\n const parts: string[] = [];\n\n if (override.provider) {\n for (const [field, value] of Object.entries(override.provider)) {\n if (value !== undefined) parts.push(`${field}: ${JSON.stringify(value)}`);\n }\n }\n\n if (override.headers) {\n for (const [name, value] of Object.entries(override.headers)) {\n parts.push(`header ${name}: ${value}`);\n }\n }\n\n return parts.join(', ') || '(empty)';\n}\n\n/** Display all current model overrides. */\nexport async function listOverridesCommand(): Promise<void> {\n const configPath = requireConfigPath();\n const overrides = getModelOverrides(configPath);\n const keys = Object.keys(overrides);\n\n if (keys.length === 0) {\n clack.log.info('No model overrides configured.');\n return;\n }\n\n clack.log.success(`${keys.length} override(s) in ${configPath}`);\n\n for (const key of keys) {\n const override = overrides[key];\n if (!override) continue;\n clack.log.info(` ${key} — ${formatOverrideSummary(override)}`);\n }\n}\n"],"mappings":";;;AAIA,SAAS,sBAAsB,UAAiC;CAC9D,MAAM,QAAkB,CAAC;CAEzB,IAAI,SAAS;OACN,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,SAAS,QAAQ,GAC3D,IAAI,UAAU,KAAA,GAAW,MAAM,KAAK,GAAG,MAAM,IAAI,KAAK,UAAU,KAAK,GAAG;CAAA;CAI5E,IAAI,SAAS,SACX,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,SAAS,OAAO,GACzD,MAAM,KAAK,UAAU,KAAK,IAAI,OAAO;CAIzC,OAAO,MAAM,KAAK,IAAI,KAAK;AAC7B;;AAGA,eAAsB,uBAAsC;CAC1D,MAAM,aAAa,kBAAkB;CACrC,MAAM,YAAY,kBAAkB,UAAU;CAC9C,MAAM,OAAO,OAAO,KAAK,SAAS;CAElC,IAAI,KAAK,WAAW,GAAG;EACrB,EAAU,KAAK,gCAAgC;EAC/C;CACF;CAEA,EAAU,QAAQ,GAAG,KAAK,OAAO,kBAAkB,YAAY;CAE/D,KAAK,MAAM,OAAO,MAAM;EACtB,MAAM,WAAW,UAAU;EAC3B,IAAI,CAAC,UAAU;EACf,EAAU,KAAK,KAAK,IAAI,KAAK,sBAAsB,QAAQ,GAAG;CAChE;AACF"}
1
+ {"version":3,"file":"list.mjs","names":[],"sources":["../src/commands/config/list.ts"],"sourcesContent":["import * as clack from '@clack/prompts';\nimport type { ModelOverride } from '../../config-schema.js';\nimport { getModelOverrides, requireConfigPath } from './config.js';\n\nfunction formatOverrideSummary(override: ModelOverride): string {\n const parts: string[] = [];\n\n if (override.provider) {\n for (const [field, value] of Object.entries(override.provider)) {\n if (value !== undefined) parts.push(`${field}: ${JSON.stringify(value)}`);\n }\n }\n\n if (override.headers) {\n for (const [name, value] of Object.entries(override.headers)) {\n parts.push(`header ${name}: ${value}`);\n }\n }\n\n return parts.join(', ') || '(empty)';\n}\n\n/** Display all current model overrides. */\nexport async function listOverridesCommand(): Promise<void> {\n const configPath = requireConfigPath();\n const overrides = getModelOverrides(configPath);\n const keys = Object.keys(overrides);\n\n if (keys.length === 0) {\n clack.log.info('No model overrides configured.');\n return;\n }\n\n clack.log.success(`${keys.length} override(s) in ${configPath}`);\n\n for (const key of keys) {\n const override = overrides[key];\n if (!override) continue;\n clack.log.info(` ${key} — ${formatOverrideSummary(override)}`);\n }\n}\n"],"mappings":";;;AAIA,SAAS,sBAAsB,UAAiC;CAC9D,MAAM,QAAkB,CAAC;CAEzB,IAAI,SAAS;OACN,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,SAAS,QAAQ,GAC3D,IAAI,UAAU,KAAA,GAAW,MAAM,KAAK,GAAG,MAAM,IAAI,KAAK,UAAU,KAAK,GAAG;CAAA;CAI5E,IAAI,SAAS,SACX,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,SAAS,OAAO,GACzD,MAAM,KAAK,UAAU,KAAK,IAAI,OAAO;CAIzC,OAAO,MAAM,KAAK,IAAI,KAAK;AAC7B;;AAGA,eAAsB,uBAAsC;CAC1D,MAAM,aAAa,kBAAkB;CACrC,MAAM,YAAY,kBAAkB,UAAU;CAC9C,MAAM,OAAO,OAAO,KAAK,SAAS;CAElC,IAAI,KAAK,WAAW,GAAG;EACrB,IAAU,KAAK,gCAAgC;EAC/C;CACF;CAEA,IAAU,QAAQ,GAAG,KAAK,OAAO,kBAAkB,YAAY;CAE/D,KAAK,MAAM,OAAO,MAAM;EACtB,MAAM,WAAW,UAAU;EAC3B,IAAI,CAAC,UAAU;EACf,IAAU,KAAK,KAAK,IAAI,KAAK,sBAAsB,QAAQ,GAAG;CAChE;AACF"}
package/dist/prompt.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import V, { stdin, stdout } from "node:process";
1
+ import process$1, { stdin, stdout } from "node:process";
2
2
  import { WriteStream } from "node:tty";
3
- import G from "node:readline";
3
+ import f from "node:readline";
4
4
  //#region node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/chunks/prompt.mjs
5
5
  function getDefaultExportFromCjs(x) {
6
6
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
@@ -392,7 +392,7 @@ const iD = sD(), v = new Set(["\x1B", "›"]), CD = 39, w$1 = "\x07", W$1 = "[",
392
392
  }
393
393
  return e;
394
394
  };
395
- function G$1(t, u, F) {
395
+ function G(t, u, F) {
396
396
  return String(t).normalize().replace(/\r\n/g, `
397
397
  `).split(`
398
398
  `).map((e) => oD(e, u, F)).join(`
@@ -480,13 +480,13 @@ var x = class {
480
480
  const e = new WriteStream(0);
481
481
  e._write = (s, i, D) => {
482
482
  this._track && (this.value = this.rl?.line.replace(/\t/g, ""), this._cursor = this.rl?.cursor ?? 0, this.emit("value", this.value)), D();
483
- }, this.input.pipe(e), this.rl = G.createInterface({
483
+ }, this.input.pipe(e), this.rl = f.createInterface({
484
484
  input: this.input,
485
485
  output: e,
486
486
  tabSize: 2,
487
487
  prompt: "",
488
488
  escapeCodeTimeout: 50
489
- }), G.emitKeypressEvents(this.input, this.rl), this.rl.prompt(), this.opts.initialValue !== void 0 && this._track && this.rl.write(this.opts.initialValue), this.input.on("keypress", this.onKeypress), d$1(this.input, true), this.output.on("resize", this.render), this.render(), this.once("submit", () => {
489
+ }), f.emitKeypressEvents(this.input, this.rl), this.rl.prompt(), this.opts.initialValue !== void 0 && this._track && this.rl.write(this.opts.initialValue), this.input.on("keypress", this.onKeypress), d$1(this.input, true), this.output.on("resize", this.render), this.render(), this.once("submit", () => {
490
490
  this.output.write(srcExports.cursor.show), this.output.off("resize", this.render), d$1(this.input, false), u(this.value);
491
491
  }), this.once("cancel", () => {
492
492
  this.output.write(srcExports.cursor.show), this.output.off("resize", this.render), d$1(this.input, false), u(S);
@@ -512,12 +512,12 @@ var x = class {
512
512
  `), d$1(this.input, false), this.rl?.close(), this.rl = void 0, this.emit(`${this.state}`, this.value), this.unsubscribe();
513
513
  }
514
514
  restoreCursor() {
515
- const u = G$1(this._prevFrame, process.stdout.columns, { hard: true }).split(`
515
+ const u = G(this._prevFrame, process.stdout.columns, { hard: true }).split(`
516
516
  `).length - 1;
517
517
  this.output.write(srcExports.cursor.move(-999, u * -1));
518
518
  }
519
519
  render() {
520
- const u = G$1(this._render(this) ?? "", process.stdout.columns, { hard: true });
520
+ const u = G(this._render(this) ?? "", process.stdout.columns, { hard: true });
521
521
  if (u !== this._prevFrame) {
522
522
  if (this.state === "initial") this.output.write(srcExports.cursor.hide);
523
523
  else {
@@ -646,9 +646,9 @@ var PD = class extends x {
646
646
  }
647
647
  };
648
648
  function ce() {
649
- return V.platform !== "win32" ? V.env.TERM !== "linux" : !!V.env.CI || !!V.env.WT_SESSION || !!V.env.TERMINUS_SUBLIME || V.env.ConEmuTask === "{cmd::Cmder}" || V.env.TERM_PROGRAM === "Terminus-Sublime" || V.env.TERM_PROGRAM === "vscode" || V.env.TERM === "xterm-256color" || V.env.TERM === "alacritty" || V.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
649
+ return process$1.platform !== "win32" ? process$1.env.TERM !== "linux" : !!process$1.env.CI || !!process$1.env.WT_SESSION || !!process$1.env.TERMINUS_SUBLIME || process$1.env.ConEmuTask === "{cmd::Cmder}" || process$1.env.TERM_PROGRAM === "Terminus-Sublime" || process$1.env.TERM_PROGRAM === "vscode" || process$1.env.TERM === "xterm-256color" || process$1.env.TERM === "alacritty" || process$1.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
650
650
  }
651
- const V$2 = ce(), u = (t, n) => V$2 ? t : n, le = u("❯", ">"), L = u("■", "x"), W = u("▲", "x"), C = u("✔", "√"), o = u(""), d = u(""), k = u("●", ">"), P = u("○", " "), A = u("◻", "[•]"), T = u("◼", "[+]"), F = u("◻", "[ ]"), w = (t) => {
651
+ const V = ce(), u = (t, n) => V ? t : n, le = u("❯", ">"), L = u("■", "x"), W = u("▲", "x"), C = u("✔", "√"), o = u(""), d = u(""), k = u("●", ">"), P = u("○", " "), A = u("◻", "[•]"), T = u("◼", "[+]"), F = u("◻", "[ ]"), w = (t) => {
652
652
  switch (t) {
653
653
  case "initial":
654
654
  case "active": return e.cyan(le);