koneck 2.39.1 → 2.41.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.
@@ -25,6 +25,12 @@ export interface CatalogEntry {
25
25
  contextLength?: number;
26
26
  maxOutput?: number;
27
27
  toolCalling?: boolean;
28
+ /** Whether it accepts images. Undefined means the provider said nothing and the name is silent. */
29
+ vision?: boolean;
30
+ /** What is known about paying for it. Undefined means nothing is, and nothing should be implied. */
31
+ cost?: 'free' | 'paid' | 'local';
32
+ /** Dollars per million prompt tokens, when the provider published a rate. */
33
+ promptRate?: number;
28
34
  state?: string;
29
35
  }
30
36
  export interface Catalog {
@@ -35,8 +41,18 @@ export interface Catalog {
35
41
  /** Why the listing is empty, in words, when it is. */
36
42
  note?: string;
37
43
  }
38
- /** The annotation beside a model name. Shared so the TUI and the browser read alike. */
44
+ /**
45
+ * The annotation beside a model name. Shared so the TUI and the browser read alike.
46
+ *
47
+ * Nothing here is guessed. The word about money appears only when something is actually known
48
+ * about it: a rate the provider reported, a name the gateway marked free, or a runtime serving its
49
+ * own weights and charging nobody. Otherwise the row says nothing about price — which is honest,
50
+ * and better than the alternative that shipped: every model without a published rate was labelled
51
+ * "paid", so a list of Ollama models on a LAN box came back as a bill.
52
+ */
39
53
  export declare function detailFor(m: ModelInfo, local: boolean, state?: string): string;
54
+ /** A rate, short enough to sit in a row. Fractions of a cent still matter at a million tokens. */
55
+ export declare function rateText(perMillion: number): string;
40
56
  /**
41
57
  * Asks a provider what it serves.
42
58
  *
@@ -51,4 +67,14 @@ export declare function listModels(config: AgentConfig): Promise<Catalog>;
51
67
  * A declared provider may carry its own; otherwise the built-in default stands.
52
68
  */
53
69
  export declare function defaultModelFor(provider: string): string;
70
+ /**
71
+ * The best model in a catalogue for sending a picture to.
72
+ *
73
+ * Ordered by what actually matters when a turn has just failed for want of one: it must take
74
+ * images, it must not be an alias (an alias is what just re-routed), and among those a larger
75
+ * context beats a smaller one because an image costs a great many tokens. A model already known to
76
+ * be failing is passed over — being sent to a second dead end is worse than being told there is
77
+ * none.
78
+ */
79
+ export declare function bestForImages(entries: readonly CatalogEntry[]): CatalogEntry | null;
54
80
  //# sourceMappingURL=model-catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../src/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EACoD,KAAK,SAAS,EACxE,MAAM,YAAY,CAAC;AAEpB,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wFAAwF;AACxF,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9E;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAoDtE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../src/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EACoD,KAAK,SAAS,EACxE,MAAM,YAAY,CAAC;AAEpB,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mGAAmG;IACnG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oGAAoG;IACpG,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAmB9E;AAED,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CA+DtE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,GAAG,IAAI,CAcnF"}
@@ -12,20 +12,45 @@
12
12
  * such so the interface can keep letting you name a model by hand.
13
13
  */
14
14
  import { buildClient } from './engine.js';
15
- import { PROVIDERS, resolveProvider, needsNoCredential } from './providers.js';
15
+ import { PROVIDERS, resolveProvider, servesOwnWeights } from './providers.js';
16
16
  import { modelInfoFrom, readModelStatus, stateLabel, humanTokens, } from './usage.js';
17
- /** The annotation beside a model name. Shared so the TUI and the browser read alike. */
17
+ /**
18
+ * The annotation beside a model name. Shared so the TUI and the browser read alike.
19
+ *
20
+ * Nothing here is guessed. The word about money appears only when something is actually known
21
+ * about it: a rate the provider reported, a name the gateway marked free, or a runtime serving its
22
+ * own weights and charging nobody. Otherwise the row says nothing about price — which is honest,
23
+ * and better than the alternative that shipped: every model without a published rate was labelled
24
+ * "paid", so a list of Ollama models on a LAN box came back as a bill.
25
+ */
18
26
  export function detailFor(m, local, state) {
27
+ const money =
28
+ // A machine serving its own weights charges nothing per token, whatever its address.
29
+ local ? 'local'
30
+ // A rate the provider published, said as a rate — more use than the word "paid" on its own.
31
+ : m.promptRate !== undefined && m.promptRate > 0 ? `$${rateText(m.promptRate)}/M in`
32
+ : m.cost === 'free' ? 'free'
33
+ : m.cost === 'paid' ? 'paid'
34
+ // Nothing known. Silence, rather than an invented fact about somebody's billing.
35
+ : null;
19
36
  return [
20
- // "paid" is a claim about somebody's billing, and a model on your own hardware has no
21
- // billing. The catalogue's free flag describes a gateway's tiers; it means nothing for a
22
- // runtime you are running, and calling qwen3-coder on a LAN box "paid" is just wrong.
23
- local ? 'local' : m.free ? 'free' : 'paid',
37
+ ...(money ? [money] : []),
24
38
  ...(m.contextLength ? [`${humanTokens(m.contextLength)} ctx`] : []),
25
39
  ...(m.toolCalling === false ? ['no tools'] : []),
40
+ // Said in the row, because the commonest reason to go looking through a model list is having
41
+ // just been told that the one you were using cannot take a picture.
42
+ ...(m.vision ? ['images'] : []),
26
43
  ...(state ? [state] : []),
27
44
  ].join(' · ');
28
45
  }
46
+ /** A rate, short enough to sit in a row. Fractions of a cent still matter at a million tokens. */
47
+ export function rateText(perMillion) {
48
+ if (perMillion >= 10)
49
+ return perMillion.toFixed(0);
50
+ if (perMillion >= 1)
51
+ return perMillion.toFixed(2).replace(/\.?0+$/, '');
52
+ return perMillion.toFixed(3).replace(/\.?0+$/, '');
53
+ }
29
54
  /**
30
55
  * Asks a provider what it serves.
31
56
  *
@@ -38,7 +63,14 @@ export async function listModels(config) {
38
63
  // The same resolution buildClient does, so what is reported is the endpoint actually called
39
64
  // rather than the provider's suggested one.
40
65
  const def = resolveProvider(provider, config.baseURL);
41
- const local = needsNoCredential(def);
66
+ /*
67
+ * Local means "this machine is running the model", not "this endpoint needs no key".
68
+ *
69
+ * Those came apart in practice. A router on localhost needs no credential and runs nothing — it
70
+ * forwards to a cloud that bills per token — so labelling its models local understated the cost.
71
+ * And a real runtime on a LAN box is local in the sense that matters, whatever its address.
72
+ */
73
+ const local = servesOwnWeights(provider);
42
74
  const statuses = readModelStatus();
43
75
  let raw;
44
76
  try {
@@ -71,6 +103,10 @@ export async function listModels(config) {
71
103
  ...(m.contextLength !== undefined ? { contextLength: m.contextLength } : {}),
72
104
  ...(m.maxOutput !== undefined ? { maxOutput: m.maxOutput } : {}),
73
105
  ...(m.toolCalling !== undefined ? { toolCalling: m.toolCalling } : {}),
106
+ ...(m.vision !== undefined ? { vision: m.vision } : {}),
107
+ ...(local ? { cost: 'local' }
108
+ : m.cost !== undefined ? { cost: m.cost } : {}),
109
+ ...(m.promptRate !== undefined ? { promptRate: m.promptRate } : {}),
74
110
  ...(state !== undefined ? { state } : {}),
75
111
  };
76
112
  })
@@ -92,4 +128,30 @@ export async function listModels(config) {
92
128
  export function defaultModelFor(provider) {
93
129
  return PROVIDERS[provider]?.defaultModel ?? '';
94
130
  }
131
+ /**
132
+ * The best model in a catalogue for sending a picture to.
133
+ *
134
+ * Ordered by what actually matters when a turn has just failed for want of one: it must take
135
+ * images, it must not be an alias (an alias is what just re-routed), and among those a larger
136
+ * context beats a smaller one because an image costs a great many tokens. A model already known to
137
+ * be failing is passed over — being sent to a second dead end is worse than being told there is
138
+ * none.
139
+ */
140
+ export function bestForImages(entries) {
141
+ const usable = entries.filter(e => e.vision === true
142
+ && !/^(auto|best|router|default|smart)\b|\bauto\//i.test(e.id)
143
+ && e.state !== 'no key' && e.state !== 'no credit' && e.state !== 'unsupported');
144
+ if (usable.length === 0)
145
+ return null;
146
+ return [...usable].sort((a, b) => {
147
+ // One that has answered before, first.
148
+ const ready = (e) => (e.state === 'ready' ? 1 : 0);
149
+ if (ready(b) !== ready(a))
150
+ return ready(b) - ready(a);
151
+ const ctx = (e) => e.contextLength ?? 0;
152
+ if (ctx(b) !== ctx(a))
153
+ return ctx(b) - ctx(a);
154
+ return a.id.localeCompare(b.id);
155
+ })[0] ?? null;
156
+ }
95
157
  //# sourceMappingURL=model-catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../src/model-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../src/model-catalog.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,18 @@ export declare function resolveProvider(name: string, baseURLOverride?: string):
76
76
  * a public address still has to be given a key.
77
77
  */
78
78
  export declare function isPrivateHost(url: string): boolean;
79
+ /**
80
+ * Whether this provider serves models from its own hardware.
81
+ *
82
+ * Not the same question as "does it need a credential", and conflating them was wrong in both
83
+ * directions. A gateway listening on localhost — OmniRoute on port 20128, say — needs no key and
84
+ * runs nothing: it forwards to somebody's cloud, and its models are billed like anybody else's.
85
+ * Calling those "local" understates the bill. Meanwhile a genuine runtime reached across a LAN is
86
+ * local in the only sense that matters — nobody is charging per token — whatever its address.
87
+ *
88
+ * So this asks what KIND of thing is at the other end, not where it is.
89
+ */
90
+ export declare function servesOwnWeights(providerName: string): boolean;
79
91
  /** Whether this endpoint can be used without a credential. */
80
92
  export declare function needsNoCredential(def: ProviderDef): boolean;
81
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5F,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,SAAe,GAAG,MAAM,CAE7D;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CA8B5E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,aAAa,EAAE,GAC/B,gBAAgB,CAOlB;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAkBjG;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAiBvE;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA+FjD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAoB,CAAC;AAyBjF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,WAAW,CA8BnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA2BlD;AAaD,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED,6DAA6D;AAC7D,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAInD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAKlD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAoBrE;AAED,wBAAgB,aAAa,IAAI,MAAM,CAQtC"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5F,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,SAAe,GAAG,MAAM,CAE7D;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CA8B5E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,aAAa,EAAE,GAC/B,gBAAgB,CAOlB;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAkBjG;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAiBvE;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA+FjD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAoB,CAAC;AAyBjF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,WAAW,CA8BnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA2BlD;AAaD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED,6DAA6D;AAC7D,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAInD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAKlD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAoBrE;AAED,wBAAgB,aAAa,IAAI,MAAM,CAQtC"}
package/dist/providers.js CHANGED
@@ -351,6 +351,20 @@ const KEYLESS_RUNTIMES = new Set([
351
351
  'ollama', 'lmstudio', 'lm-studio', 'llamacpp', 'llama.cpp', 'localai',
352
352
  'vllm', 'koboldcpp', 'textgen', 'jan', 'gpt4all',
353
353
  ]);
354
+ /**
355
+ * Whether this provider serves models from its own hardware.
356
+ *
357
+ * Not the same question as "does it need a credential", and conflating them was wrong in both
358
+ * directions. A gateway listening on localhost — OmniRoute on port 20128, say — needs no key and
359
+ * runs nothing: it forwards to somebody's cloud, and its models are billed like anybody else's.
360
+ * Calling those "local" understates the bill. Meanwhile a genuine runtime reached across a LAN is
361
+ * local in the only sense that matters — nobody is charging per token — whatever its address.
362
+ *
363
+ * So this asks what KIND of thing is at the other end, not where it is.
364
+ */
365
+ export function servesOwnWeights(providerName) {
366
+ return KEYLESS_RUNTIMES.has(providerName.trim().toLowerCase());
367
+ }
354
368
  /** Whether this endpoint can be used without a credential. */
355
369
  export function needsNoCredential(def) {
356
370
  return isPrivateHost(def.baseURL) || KEYLESS_RUNTIMES.has(def.name.toLowerCase());
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
package/dist/usage.d.ts CHANGED
@@ -76,18 +76,59 @@ export declare function humanDuration(ms: number): string;
76
76
  export interface ModelInfo {
77
77
  id: string;
78
78
  vendor: string;
79
- /** Priced at zero by the provider — inferred from the id, which is where gateways mark it. */
79
+ /**
80
+ * Priced at zero by the provider — inferred from the id, which is where gateways mark it.
81
+ *
82
+ * Kept for callers that only ask "is this one of the free ones". It is not evidence that a model
83
+ * COSTS anything when false: see `cost`.
84
+ */
80
85
  free: boolean;
86
+ /**
87
+ * What is actually known about paying for it.
88
+ *
89
+ * Undefined means nothing is known, which is the commonest case and must be shown as silence
90
+ * rather than as "paid". Saying "paid" about a model whose price nobody reported is inventing a
91
+ * fact about somebody's bill — reported after a list of Ollama models on a LAN box, every one of
92
+ * them labelled paid.
93
+ */
94
+ cost?: 'free' | 'paid' | 'local';
95
+ /** Dollars per million prompt tokens, when the provider reported a price. */
96
+ promptRate?: number;
81
97
  contextLength?: number;
82
98
  maxOutput?: number;
83
99
  toolCalling?: boolean;
84
100
  reasoning?: boolean;
101
+ /**
102
+ * Whether it accepts images.
103
+ *
104
+ * Undefined means unknown, which is different from false: a gateway that reports nothing about a
105
+ * model should not have "cannot see" invented on its behalf.
106
+ */
107
+ vision?: boolean;
85
108
  }
109
+ export declare function looksVision(id: string): boolean;
110
+ /**
111
+ * An alias, rather than a model.
112
+ *
113
+ * A gateway resolves one per request, so what serves it can differ between two messages — which is
114
+ * exactly how a session that had been working all day fails the moment an image is attached.
115
+ * Nothing about an alias can be assumed, including whether it sees.
116
+ */
117
+ export declare function looksAlias(id: string): boolean;
86
118
  /**
87
119
  * Gateways signal a zero-cost model in the only place the OpenAI listing schema leaves them:
88
120
  * the id. `:free` and `-free` are the two spellings in use.
89
121
  */
90
122
  export declare function looksFree(id: string): boolean;
123
+ /**
124
+ * A price, if the listing carried one.
125
+ *
126
+ * Gateways that report pricing disagree about where and in what unit: OpenRouter nests it under
127
+ * `pricing` as a per-token string, others use `input_cost_per_token`, and a few give dollars per
128
+ * million. All of them mean the same thing, and a zero from any of them means free — which is a
129
+ * fact, unlike the absence of a price, which means nothing at all.
130
+ */
131
+ export declare function reportedPromptRate(raw: Record<string, unknown>): number | undefined;
91
132
  /** Reads whatever a listing entry actually carries, without inventing the parts it omits. */
92
133
  export declare function modelInfoFrom(raw: Record<string, unknown>, fallbackVendor: string): ModelInfo;
93
134
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAiBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM7D;AAED,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,WAAW,GACX,cAAc,GACd,aAAa,GACb,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAO7D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,CAKvE;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGjE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAIlF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAmBrF;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CASpD;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAQxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAItF;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAM7C;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,2FAA2F;AAC3F,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,8FAA8F;IAC9F,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,SAAS,CAmB7F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAyBnE"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
package/dist/usage.js CHANGED
@@ -153,6 +153,54 @@ export function humanDuration(ms) {
153
153
  return `${m}m ${s % 60}s`;
154
154
  return `${Math.floor(m / 60)}h ${m % 60}m`;
155
155
  }
156
+ /**
157
+ * Whether a model takes images, from its name.
158
+ *
159
+ * The OpenAI listing schema has no field for it, so almost no gateway reports it and the name is
160
+ * the only evidence there is. That makes this a heuristic, and it is deliberately built to fail in
161
+ * the safe direction: a model wrongly thought to be blind is merely not suggested, while a model
162
+ * wrongly thought to see gets an image sent to it and the request dies — which is the failure being
163
+ * fixed here, so it must not be reintroduced by a loose pattern.
164
+ *
165
+ * Hence explicit families rather than a catch-all. "gpt-4" matches a great many things that cannot
166
+ * see; "gpt-4o" is a specific model that can.
167
+ */
168
+ const VISION_PATTERNS = [
169
+ // Said outright.
170
+ /\bvision\b/i, /-vl\b/i, /\bvl-/i, /\bmultimodal\b/i, /\bimage\b/i,
171
+ // OpenAI: the omni and 4.1/5 families see; plain gpt-4 and 3.5 do not.
172
+ /gpt-4o/i, /gpt-4\.1/i, /gpt-4\.5/i, /gpt-5/i, /\bo3\b/i, /\bo4\b/i,
173
+ // Anthropic: every Claude 3 and later.
174
+ /claude-3/i, /claude-(?:sonnet|opus|haiku)-[4-9]/i, /claude-[4-9]/i,
175
+ // Google.
176
+ /gemini/i, /gemma-3/i,
177
+ // Open weights that see.
178
+ /llava/i, /pixtral/i, /moondream/i, /internvl/i, /minicpm-v/i, /qwen2?\.?5?-vl/i,
179
+ /llama-3\.2-(?:11|90)b/i, /phi-3(?:\.5)?-vision/i, /idefics/i, /cogvlm/i, /fuyu/i,
180
+ /molmo/i, /aria/i, /nvlm/i, /ovis/i, /glm-4v/i, /step-1v/i, /yi-vl/i, /deepseek-vl/i,
181
+ /grok-.*vision|grok-[2-9]/i, /mistral-small-3\.[12]/i,
182
+ ];
183
+ /** Names that contain a vision pattern but are not that model. */
184
+ const NOT_VISION = [
185
+ /gpt-4o?-.*\btranscribe\b/i, /whisper/i, /\btts\b/i, /embed/i, /rerank/i, /moderation/i,
186
+ /gpt-4o-mini-audio/i, /audio-preview/i, /\bimage-gen|dall-e|flux|stable-diffusion\b/i,
187
+ ];
188
+ export function looksVision(id) {
189
+ const name = String(id);
190
+ if (NOT_VISION.some(p => p.test(name)))
191
+ return false;
192
+ return VISION_PATTERNS.some(p => p.test(name));
193
+ }
194
+ /**
195
+ * An alias, rather than a model.
196
+ *
197
+ * A gateway resolves one per request, so what serves it can differ between two messages — which is
198
+ * exactly how a session that had been working all day fails the moment an image is attached.
199
+ * Nothing about an alias can be assumed, including whether it sees.
200
+ */
201
+ export function looksAlias(id) {
202
+ return /^(auto|best|router|default|smart)\b|\bauto\/|\/auto\b|:auto\b/i.test(String(id));
203
+ }
156
204
  /**
157
205
  * Gateways signal a zero-cost model in the only place the OpenAI listing schema leaves them:
158
206
  * the id. `:free` and `-free` are the two spellings in use.
@@ -160,6 +208,29 @@ export function humanDuration(ms) {
160
208
  export function looksFree(id) {
161
209
  return /(?::|-)free$/i.test(id) || /\bfree\b/i.test(id.split('/').at(-1) ?? '');
162
210
  }
211
+ /**
212
+ * A price, if the listing carried one.
213
+ *
214
+ * Gateways that report pricing disagree about where and in what unit: OpenRouter nests it under
215
+ * `pricing` as a per-token string, others use `input_cost_per_token`, and a few give dollars per
216
+ * million. All of them mean the same thing, and a zero from any of them means free — which is a
217
+ * fact, unlike the absence of a price, which means nothing at all.
218
+ */
219
+ export function reportedPromptRate(raw) {
220
+ const num = (v) => {
221
+ const n = typeof v === 'string' ? Number(v) : typeof v === 'number' ? v : NaN;
222
+ return Number.isFinite(n) && n >= 0 ? n : undefined;
223
+ };
224
+ const pricing = (raw['pricing'] ?? {});
225
+ // Per-token, which is how the common shapes express it — scaled to per-million so the number is
226
+ // readable and comparable with KONECK's own table.
227
+ const perToken = num(pricing['prompt']) ?? num(pricing['input'])
228
+ ?? num(raw['input_cost_per_token']) ?? num(raw['prompt_cost_per_token']);
229
+ if (perToken !== undefined)
230
+ return perToken * 1_000_000;
231
+ // Already per-million.
232
+ return num(pricing['prompt_per_million']) ?? num(raw['input_cost_per_million_tokens']);
233
+ }
163
234
  /** Reads whatever a listing entry actually carries, without inventing the parts it omits. */
164
235
  export function modelInfoFrom(raw, fallbackVendor) {
165
236
  const id = String(raw['id'] ?? '');
@@ -168,14 +239,35 @@ export function modelInfoFrom(raw, fallbackVendor) {
168
239
  const context = num(raw['context_length']) ?? num(raw['max_input_tokens']) ?? contextWindowFor(id) ?? undefined;
169
240
  const maxOut = num(raw['max_output_tokens']);
170
241
  const vendor = id.includes('/') ? id.split('/')[0] : String(raw['owned_by'] ?? fallbackVendor);
242
+ /*
243
+ * What is known about the price, in order of how much it is worth.
244
+ *
245
+ * A reported rate is the only direct evidence, and zero is as much a fact as any other number.
246
+ * A name marked ":free" is the gateways' own convention and near enough. Everything else is
247
+ * unknown — and unknown has to stay unknown, because the alternative is telling somebody their
248
+ * local Ollama models are paid.
249
+ */
250
+ const rate = reportedPromptRate(raw);
251
+ const cost = rate !== undefined ? (rate === 0 ? 'free' : 'paid')
252
+ : looksFree(id) ? 'free'
253
+ : undefined;
171
254
  return {
172
255
  id,
173
256
  vendor,
174
- free: looksFree(id),
257
+ free: looksFree(id) || rate === 0,
258
+ ...(cost !== undefined ? { cost } : {}),
259
+ ...(rate !== undefined ? { promptRate: rate } : {}),
175
260
  ...(context !== undefined ? { contextLength: context } : {}),
176
261
  ...(maxOut !== undefined ? { maxOutput: maxOut } : {}),
177
262
  ...(typeof caps['tool_calling'] === 'boolean' ? { toolCalling: caps['tool_calling'] } : {}),
178
263
  ...(typeof caps['reasoning'] === 'boolean' ? { reasoning: caps['reasoning'] } : {}),
264
+ // A reported capability outranks the guess. Several gateways do carry one of these, and being
265
+ // told beats inferring from a name every time.
266
+ ...(typeof caps['vision'] === 'boolean' ? { vision: caps['vision'] }
267
+ : typeof caps['image_input'] === 'boolean' ? { vision: caps['image_input'] }
268
+ : Array.isArray(raw['input_modalities'])
269
+ ? { vision: raw['input_modalities'].includes('image') }
270
+ : looksVision(id) ? { vision: true } : {}),
179
271
  };
180
272
  }
181
273
  /**
package/dist/usage.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/web/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkB/C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAGrC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA6BD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAk5BpG"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/web/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkB/C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAGrC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA6BD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAy8BpG"}
package/dist/web/api.js CHANGED
@@ -750,6 +750,59 @@ export async function startWeb(baseConfig, options = {}) {
750
750
  });
751
751
  return json(res, 200, answer);
752
752
  }
753
+ /*
754
+ * Can this model take a picture, and if not, which one can?
755
+ *
756
+ * Asked twice, for the same reason each time. Before sending, so attaching an image to a
757
+ * session on an alias says so up front rather than after the turn is spent. And after a turn
758
+ * has failed on the route, so recovering is a click instead of a hunt through a model list.
759
+ *
760
+ * An alias is reported as unknown rather than as capable or not: a gateway resolves one per
761
+ * request, which is exactly why a session that had worked all day fails the moment an image
762
+ * is attached. Nothing about it can be promised, including whether it sees.
763
+ */
764
+ if (route === '/api/vision' && req.method === 'GET') {
765
+ if (!mayAct)
766
+ return json(res, 401, { error: 'token required' });
767
+ const { looksVision, looksAlias } = await import('../usage.js');
768
+ const { bestForImages, listModels } = await import('../model-catalog.js');
769
+ const wanted = url.searchParams.get('model') ?? baseConfig.model;
770
+ const provider = url.searchParams.get('provider') ?? baseConfig.provider;
771
+ const alias = looksAlias(wanted);
772
+ // The provider's own listing is the authority on what it serves; the name is the fallback.
773
+ let entries = [];
774
+ try {
775
+ const catalog = await listModels({
776
+ ...baseConfig, provider,
777
+ ...(provider === baseConfig.provider ? {} : { apiKey: undefined }),
778
+ });
779
+ entries = catalog.entries;
780
+ }
781
+ catch { /* unreachable or unlisted: fall back to the name */ }
782
+ const listed = entries.find(e => e.id === wanted);
783
+ const takesImages = alias ? null
784
+ : listed?.vision !== undefined ? listed.vision : looksVision(wanted);
785
+ const suggestion = bestForImages(entries);
786
+ return json(res, 200, {
787
+ model: wanted,
788
+ alias,
789
+ // null means unknown, which is not the same as false and must not be shown as one.
790
+ takesImages,
791
+ suggestion: suggestion
792
+ ? { id: suggestion.id, detail: suggestion.detail,
793
+ contextLength: suggestion.contextLength ?? null }
794
+ : null,
795
+ note: alias
796
+ ? `"${wanted}" is an alias, so which model serves it is decided per request — including `
797
+ + `whether that model can see. A request carrying an image is routed to a `
798
+ + `vision-capable upstream, and if that upstream has no credential the request fails `
799
+ + `while every text request keeps working.`
800
+ : takesImages === false
801
+ ? `"${wanted}" does not accept images.`
802
+ : takesImages === true ? `"${wanted}" accepts images.`
803
+ : `Nothing is known about whether "${wanted}" accepts images.`,
804
+ });
805
+ }
753
806
  if (route === '/api/models' && req.method === 'GET') {
754
807
  if (!mayAct)
755
808
  return json(res, 401, { error: 'token required' });