mindweave 2.5.0 → 3.0.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.
- package/README.md +81 -145
- package/dist/cli/App.js +579 -304
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/analytics.js +27 -18
- package/dist/cli/analytics.js.map +1 -1
- package/dist/cli/attachments.js +34 -0
- package/dist/cli/attachments.js.map +1 -1
- package/dist/cli/bannerFit.js +70 -0
- package/dist/cli/bannerFit.js.map +1 -0
- package/dist/cli/bootstrap.js +41 -3
- package/dist/cli/bootstrap.js.map +1 -1
- package/dist/cli/commands.js +4 -1
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/components/ApprovalBox.js +3 -2
- package/dist/cli/components/ApprovalBox.js.map +1 -1
- package/dist/cli/components/BlockView.js +27 -6
- package/dist/cli/components/BlockView.js.map +1 -1
- package/dist/cli/components/FirstRunFrame.js +2 -1
- package/dist/cli/components/FirstRunFrame.js.map +1 -1
- package/dist/cli/components/KeyManager.js +5 -4
- package/dist/cli/components/KeyManager.js.map +1 -1
- package/dist/cli/components/KeySetup.js +29 -13
- package/dist/cli/components/KeySetup.js.map +1 -1
- package/dist/cli/components/MarathonBox.js +64 -0
- package/dist/cli/components/MarathonBox.js.map +1 -0
- package/dist/cli/components/McpMinitabs.js +8 -7
- package/dist/cli/components/McpMinitabs.js.map +1 -1
- package/dist/cli/components/Picker.js +4 -3
- package/dist/cli/components/Picker.js.map +1 -1
- package/dist/cli/components/PromptInput.js +47 -8
- package/dist/cli/components/PromptInput.js.map +1 -1
- package/dist/cli/components/PulseDot.js +42 -0
- package/dist/cli/components/PulseDot.js.map +1 -0
- package/dist/cli/components/SubagentView.js +9 -6
- package/dist/cli/components/SubagentView.js.map +1 -1
- package/dist/cli/components/TipLine.js +2 -1
- package/dist/cli/components/TipLine.js.map +1 -1
- package/dist/cli/components/ToolGroup.js +65 -49
- package/dist/cli/components/ToolGroup.js.map +1 -1
- package/dist/cli/components/ToolLine.js +20 -19
- package/dist/cli/components/ToolLine.js.map +1 -1
- package/dist/cli/components/TrustGate.js +2 -1
- package/dist/cli/components/TrustGate.js.map +1 -1
- package/dist/cli/components/minitabs.js +3 -2
- package/dist/cli/components/minitabs.js.map +1 -1
- package/dist/cli/desktopApp.js +45 -0
- package/dist/cli/desktopApp.js.map +1 -0
- package/dist/cli/help.js +1 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/inkOutputPatch.js +285 -0
- package/dist/cli/inkOutputPatch.js.map +1 -0
- package/dist/cli/inkSpeed.js +29 -0
- package/dist/cli/inkSpeed.js.map +1 -0
- package/dist/cli/inkSpeedLoader.js +47 -0
- package/dist/cli/inkSpeedLoader.js.map +1 -0
- package/dist/cli/inputText.js +30 -0
- package/dist/cli/inputText.js.map +1 -0
- package/dist/cli/keyManager.js +2 -1
- package/dist/cli/keyManager.js.map +1 -1
- package/dist/cli/keyPrefs.js +90 -0
- package/dist/cli/keyPrefs.js.map +1 -0
- package/dist/cli/keySetup.js +5 -2
- package/dist/cli/keySetup.js.map +1 -1
- package/dist/cli/marathonUi.js +113 -0
- package/dist/cli/marathonUi.js.map +1 -0
- package/dist/cli/markdown.js +63 -11
- package/dist/cli/markdown.js.map +1 -1
- package/dist/cli/modes.js +3 -3
- package/dist/cli/modes.js.map +1 -1
- package/dist/cli/prodEnv.js +43 -0
- package/dist/cli/prodEnv.js.map +1 -0
- package/dist/cli/revealPace.js +5 -5
- package/dist/cli/revealPace.js.map +1 -1
- package/dist/cli/revealQueue.js +120 -0
- package/dist/cli/revealQueue.js.map +1 -0
- package/dist/cli/theme.js +47 -0
- package/dist/cli/theme.js.map +1 -0
- package/dist/cli/toolDisplay.js +112 -18
- package/dist/cli/toolDisplay.js.map +1 -1
- package/dist/cli/transcript.js +1 -1
- package/dist/cli/transcript.js.map +1 -1
- package/dist/cli/virtualWindow.js +14 -2
- package/dist/cli/virtualWindow.js.map +1 -1
- package/dist/cli/wheelAccel.js +73 -0
- package/dist/cli/wheelAccel.js.map +1 -0
- package/dist/cli/widestLinePatch.js +48 -0
- package/dist/cli/widestLinePatch.js.map +1 -0
- package/dist/cli/workingVerb.js +88 -28
- package/dist/cli/workingVerb.js.map +1 -1
- package/dist/cli/wrap.js +1 -1
- package/dist/cli/wrap.js.map +1 -1
- package/dist/core/contextSettings.js +84 -0
- package/dist/core/contextSettings.js.map +1 -0
- package/dist/core/limitsView.js +40 -0
- package/dist/core/limitsView.js.map +1 -0
- package/dist/core/mcpServers.js +164 -0
- package/dist/core/mcpServers.js.map +1 -0
- package/dist/core/permissions.js +209 -0
- package/dist/core/permissions.js.map +1 -0
- package/dist/core/providerKeys.js +187 -0
- package/dist/core/providerKeys.js.map +1 -0
- package/dist/core/rulesSkills.js +142 -0
- package/dist/core/rulesSkills.js.map +1 -0
- package/dist/core/spendView.js +90 -0
- package/dist/core/spendView.js.map +1 -0
- package/dist/core/turnRunner.js +759 -0
- package/dist/core/turnRunner.js.map +1 -0
- package/dist/drivers/anthropic/client.js +101 -26
- package/dist/drivers/anthropic/client.js.map +1 -1
- package/dist/drivers/anthropic/manifest.js +43 -13
- package/dist/drivers/anthropic/manifest.js.map +1 -1
- package/dist/drivers/cerebras/manifest.js +13 -3
- package/dist/drivers/cerebras/manifest.js.map +1 -1
- package/dist/drivers/deepseek/manifest.js +24 -34
- package/dist/drivers/deepseek/manifest.js.map +1 -1
- package/dist/drivers/glm/manifest.js +21 -6
- package/dist/drivers/glm/manifest.js.map +1 -1
- package/dist/drivers/groq/manifest.js +5 -2
- package/dist/drivers/groq/manifest.js.map +1 -1
- package/dist/drivers/kimi/manifest.js +13 -10
- package/dist/drivers/kimi/manifest.js.map +1 -1
- package/dist/drivers/meta/manifest.js +21 -16
- package/dist/drivers/meta/manifest.js.map +1 -1
- package/dist/drivers/minimax/manifest.js +15 -12
- package/dist/drivers/minimax/manifest.js.map +1 -1
- package/dist/drivers/ollama/catalog.js +71 -0
- package/dist/drivers/ollama/catalog.js.map +1 -0
- package/dist/drivers/ollama/client.js +164 -0
- package/dist/drivers/ollama/client.js.map +1 -0
- package/dist/drivers/ollama/endpoint.js +42 -0
- package/dist/drivers/ollama/endpoint.js.map +1 -0
- package/dist/drivers/ollama/index.js +5 -0
- package/dist/drivers/ollama/index.js.map +1 -0
- package/dist/drivers/ollama/manifest.js +64 -0
- package/dist/drivers/ollama/manifest.js.map +1 -0
- package/dist/drivers/openai/client.js +10 -4
- package/dist/drivers/openai/client.js.map +1 -1
- package/dist/drivers/openai/manifest.js +69 -18
- package/dist/drivers/openai/manifest.js.map +1 -1
- package/dist/drivers/qwen/manifest.js +19 -6
- package/dist/drivers/qwen/manifest.js.map +1 -1
- package/dist/drivers/registry.js +11 -0
- package/dist/drivers/registry.js.map +1 -1
- package/dist/drivers/retryPolicy.js +26 -1
- package/dist/drivers/retryPolicy.js.map +1 -1
- package/dist/drivers/xai/client.js +12 -10
- package/dist/drivers/xai/client.js.map +1 -1
- package/dist/drivers/xai/manifest.js +62 -25
- package/dist/drivers/xai/manifest.js.map +1 -1
- package/dist/dynamo/auxModel.js +54 -0
- package/dist/dynamo/auxModel.js.map +1 -0
- package/dist/dynamo/engine.js +407 -99
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/dynamo/guard.js +10 -0
- package/dist/dynamo/guard.js.map +1 -1
- package/dist/dynamo/liveMeter.js +25 -6
- package/dist/dynamo/liveMeter.js.map +1 -1
- package/dist/dynamo/marathon.js +409 -0
- package/dist/dynamo/marathon.js.map +1 -0
- package/dist/dynamo/marathonPrompt.js +45 -0
- package/dist/dynamo/marathonPrompt.js.map +1 -0
- package/dist/dynamo/model.js +6 -2
- package/dist/dynamo/model.js.map +1 -1
- package/dist/dynamo/toolBatches.js +58 -0
- package/dist/dynamo/toolBatches.js.map +1 -0
- package/dist/dynamo/usageLimits.js +446 -0
- package/dist/dynamo/usageLimits.js.map +1 -0
- package/dist/governor/freshness.js +10 -7
- package/dist/governor/freshness.js.map +1 -1
- package/dist/governor/index.js +76 -9
- package/dist/governor/index.js.map +1 -1
- package/dist/governor/write.js +43 -14
- package/dist/governor/write.js.map +1 -1
- package/dist/index.js +18 -151
- package/dist/index.js.map +1 -1
- package/dist/main.js +162 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/manager.js +18 -0
- package/dist/mcp/manager.js.map +1 -1
- package/dist/memory/allMetas.js +69 -0
- package/dist/memory/allMetas.js.map +1 -0
- package/dist/memory/compaction.js +70 -15
- package/dist/memory/compaction.js.map +1 -1
- package/dist/memory/earlier.js +15 -0
- package/dist/memory/earlier.js.map +1 -0
- package/dist/memory/profile.js +93 -0
- package/dist/memory/profile.js.map +1 -0
- package/dist/memory/rewind.js +262 -0
- package/dist/memory/rewind.js.map +1 -0
- package/dist/memory/session.js +42 -10
- package/dist/memory/session.js.map +1 -1
- package/dist/memory/sessionMemory.js +48 -13
- package/dist/memory/sessionMemory.js.map +1 -1
- package/dist/memory/sessionMemoryCompact.js +1 -1
- package/dist/memory/sessionMemoryCompact.js.map +1 -1
- package/dist/memory/sessionTitle.js +50 -0
- package/dist/memory/sessionTitle.js.map +1 -0
- package/dist/memory/store.js +42 -1
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/tools/askUser.js +14 -0
- package/dist/tools/askUser.js.map +1 -1
- package/dist/tools/backgroundShells.js +208 -5
- package/dist/tools/backgroundShells.js.map +1 -1
- package/dist/tools/browser.js +176 -0
- package/dist/tools/browser.js.map +1 -0
- package/dist/tools/cdp.js +165 -0
- package/dist/tools/cdp.js.map +1 -0
- package/dist/tools/checkpoints.js +208 -5
- package/dist/tools/checkpoints.js.map +1 -1
- package/dist/tools/deferredNative.js +2 -0
- package/dist/tools/deferredNative.js.map +1 -1
- package/dist/tools/detail.js +9 -6
- package/dist/tools/detail.js.map +1 -1
- package/dist/tools/edit.js +2 -1
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/exitPlan.js +4 -0
- package/dist/tools/exitPlan.js.map +1 -1
- package/dist/tools/hiddenDesktop.js +273 -0
- package/dist/tools/hiddenDesktop.js.map +1 -0
- package/dist/tools/listeningPorts.js +134 -0
- package/dist/tools/listeningPorts.js.map +1 -0
- package/dist/tools/mcpSearch.js +8 -0
- package/dist/tools/mcpSearch.js.map +1 -1
- package/dist/tools/mindweaveStatus.js +1 -1
- package/dist/tools/mindweaveStatus.js.map +1 -1
- package/dist/tools/registry.js +3 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/replaceSymbol.js +2 -1
- package/dist/tools/replaceSymbol.js.map +1 -1
- package/dist/tools/runCommand.js +113 -9
- package/dist/tools/runCommand.js.map +1 -1
- package/dist/tools/screenshot.js +4 -6
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/screenshotWin.js +26 -9
- package/dist/tools/screenshotWin.js.map +1 -1
- package/dist/tools/stateCheckpoint.js +128 -0
- package/dist/tools/stateCheckpoint.js.map +1 -0
- package/dist/tools/todo.js +6 -0
- package/dist/tools/todo.js.map +1 -1
- package/dist/tools/ui.js +1295 -0
- package/dist/tools/ui.js.map +1 -0
- package/dist/tools/uiHide.js +356 -0
- package/dist/tools/uiHide.js.map +1 -0
- package/dist/tools/uiPage.js +861 -0
- package/dist/tools/uiPage.js.map +1 -0
- package/dist/tools/uiWin.js +506 -0
- package/dist/tools/uiWin.js.map +1 -0
- package/dist/tools/webFetch.js +32 -25
- package/dist/tools/webFetch.js.map +1 -1
- package/dist/tools/webSearch.js +12 -0
- package/dist/tools/webSearch.js.map +1 -1
- package/dist/tools/writeFile.js +2 -1
- package/dist/tools/writeFile.js.map +1 -1
- package/package.json +78 -75
|
@@ -1,25 +1,18 @@
|
|
|
1
|
-
export const FLASH = "deepseek-
|
|
1
|
+
export const FLASH = "deepseek-flash";
|
|
2
2
|
export const PRO = "deepseek-v4-pro";
|
|
3
|
+
/** Flash's id before DeepSeek's docs settled on `deepseek-flash`. Still served, so it only
|
|
4
|
+
* survives as an alias: saved settings and old sessions carry it, and `normalize` maps it
|
|
5
|
+
* onto Flash. Never offered. */
|
|
6
|
+
export const FLASH_LEGACY = "deepseek-v4-flash";
|
|
3
7
|
/** The pre-4.1 vision model's id. It no longer names a model of its own — Flash reads
|
|
4
8
|
* images now — so it survives only as an alias normalize maps onto Flash. */
|
|
5
9
|
export const VISION_LEGACY = "deepseek-v4-flash-vision-exp";
|
|
6
|
-
/**
|
|
7
|
-
* When V4 Pro stops being a model of its own.
|
|
8
|
-
*
|
|
9
|
-
* At this instant DeepSeek starts serving every `deepseek-v4-pro` request from V4.1
|
|
10
|
-
* Flash, at Flash's price. Offering Pro as a distinct choice past it would be offering
|
|
11
|
-
* something that no longer exists, so the picker drops it (the `until` field below,
|
|
12
|
-
* honoured by the registry) and normalize resolves a saved Pro config to Flash. A
|
|
13
|
-
* single published build is then correct on both sides of the date with no re-release.
|
|
14
|
-
*/
|
|
15
|
-
export const PRO_SUNSET_MS = Date.parse("2026-09-14T04:00:00Z");
|
|
16
10
|
/** The model used when nothing is saved and no env override is set. */
|
|
17
11
|
export const DEFAULT_MODEL = FLASH;
|
|
18
|
-
/** The models offered by `/model`. First entry is the default.
|
|
19
|
-
* `until`, so the registry stops offering it once V4.1 Flash absorbs it. */
|
|
12
|
+
/** The models offered by `/model`. First entry is the default. */
|
|
20
13
|
export const MODELS = [
|
|
21
14
|
{ id: FLASH, label: "DeepSeek V4.1 Flash", description: "fast, cheap, reads images — the default" },
|
|
22
|
-
{ id: PRO, label: "DeepSeek V4 Pro", description: "stronger, for harder work"
|
|
15
|
+
{ id: PRO, label: "DeepSeek V4 Pro", description: "stronger, for harder work" },
|
|
23
16
|
];
|
|
24
17
|
/**
|
|
25
18
|
* The effort values DeepSeek's API actually accepts for `reasoning_effort`.
|
|
@@ -57,17 +50,16 @@ export function thinkLevels(_model) {
|
|
|
57
50
|
{ label: "Maximum", description: "maximum reasoning budget", thinking: true, effort: "max" },
|
|
58
51
|
];
|
|
59
52
|
}
|
|
60
|
-
// DeepSeek list prices (USD / 1M)
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
// (0.006 / 0.30 / 1.20). A user who runs mostly in peak windows can override.
|
|
53
|
+
// DeepSeek list prices (USD / 1M), verified against api-docs.deepseek.com/quick_start/pricing/
|
|
54
|
+
// (checked 2026-09-20). Cache hits are far cheaper than misses — the whole reason
|
|
55
|
+
// re-sent context stays cheap. Both models are billed on two clocks: peak hours
|
|
56
|
+
// (01:00–04:00 and 06:00–10:00 UTC, Monday–Friday) cost twice the off-peak rate. The
|
|
57
|
+
// off-peak rate is recorded here, because it is the one a session pays for most of the
|
|
58
|
+
// week — Flash peak is 0.006 / 0.30 / 1.20, Pro peak is 0.044 / 1.32 / 3.96. A user who
|
|
59
|
+
// runs mostly in peak windows can override.
|
|
68
60
|
const PRICES = {
|
|
69
61
|
[FLASH]: { cacheHit: 0.003, cacheMiss: 0.15, output: 0.6 },
|
|
70
|
-
[PRO]: { cacheHit: 0.
|
|
62
|
+
[PRO]: { cacheHit: 0.022, cacheMiss: 0.66, output: 1.98 },
|
|
71
63
|
};
|
|
72
64
|
const DEFAULT_PRICE = PRICES[FLASH];
|
|
73
65
|
/** Cache-aware list price for a model, falling back to Flash's for unknown ids. */
|
|
@@ -118,7 +110,11 @@ export function contextWindow(model) {
|
|
|
118
110
|
* now, and the old vision id reaches this as Flash after normalize migrates it.
|
|
119
111
|
*/
|
|
120
112
|
export function acceptsImages(model) {
|
|
121
|
-
return model === FLASH;
|
|
113
|
+
return model === FLASH || model === FLASH_LEGACY;
|
|
114
|
+
}
|
|
115
|
+
/** The ids this driver answers for beyond its listed models: the two retired names of Flash. */
|
|
116
|
+
export function ownsModel(model) {
|
|
117
|
+
return model === FLASH_LEGACY || model === VISION_LEGACY;
|
|
122
118
|
}
|
|
123
119
|
/**
|
|
124
120
|
* Coerce a stored or unknown config onto a model this driver actually serves, and
|
|
@@ -127,20 +123,13 @@ export function acceptsImages(model) {
|
|
|
127
123
|
*
|
|
128
124
|
* Both models take the same three rungs, so switching between them preserves the
|
|
129
125
|
* user's reasoning choice instead of quietly demoting it.
|
|
130
|
-
*
|
|
131
|
-
* `now` is injected so the sunset is testable; it defaults to the wall clock, which
|
|
132
|
-
* is what every caller in the app relies on.
|
|
133
126
|
*/
|
|
134
|
-
export function normalize(config
|
|
127
|
+
export function normalize(config) {
|
|
135
128
|
// Anything that is not an explicit Pro selection resolves to Flash. That folds in
|
|
136
|
-
// both the pre-4.1 vision id and the
|
|
129
|
+
// both the pre-4.1 vision id and the earlier `deepseek-v4-flash` id, and it means a
|
|
137
130
|
// config saved by a build that named some other DeepSeek model opens on the default
|
|
138
131
|
// rather than on a model this build cannot serve.
|
|
139
|
-
|
|
140
|
-
// Past the sunset, Pro is served by Flash anyway, so a stored Pro config resolves to
|
|
141
|
-
// Flash rather than pointing at a model the picker no longer offers.
|
|
142
|
-
if (model === PRO && now >= PRO_SUNSET_MS)
|
|
143
|
-
model = FLASH;
|
|
132
|
+
const model = config.model === PRO ? PRO : FLASH;
|
|
144
133
|
const thinking = config.thinking === true;
|
|
145
134
|
// Anything outside DeepSeek's accepted set becomes `high`. That covers a config
|
|
146
135
|
// saved by an older build (which stored `xhigh`) and a rung belonging to another
|
|
@@ -159,6 +148,7 @@ export const deepseekManifest = {
|
|
|
159
148
|
price,
|
|
160
149
|
contextWindow,
|
|
161
150
|
acceptsImages,
|
|
151
|
+
ownsModel,
|
|
162
152
|
normalize,
|
|
163
153
|
};
|
|
164
154
|
//# sourceMappingURL=manifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/deepseek/manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/deepseek/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export const GLM_53 = "glm-5.3";
|
|
2
2
|
export const GLM_53_FLASH = "glm-5.3-flash";
|
|
3
|
+
export const GLM_53_FLASHX = "glm-5.3-flashx";
|
|
3
4
|
export const GLM_52 = "glm-5.2";
|
|
4
5
|
export const GLM_5 = "glm-5";
|
|
5
6
|
export const GLM_47 = "glm-4.7";
|
|
@@ -18,6 +19,7 @@ export const DEFAULT_MODEL = GLM_53;
|
|
|
18
19
|
export const MODELS = [
|
|
19
20
|
{ id: GLM_53, label: "GLM-5.3", description: "the flagship, three reasoning depths — the default" },
|
|
20
21
|
{ id: GLM_53_FLASH, label: "GLM-5.3 Flash", description: "most of the flagship, a fraction of the price" },
|
|
22
|
+
{ id: GLM_53_FLASHX, label: "GLM-5.3 FlashX", description: "GLM-5.3 Flash on faster serving, for latency-sensitive work" },
|
|
21
23
|
{ id: GLM_52, label: "GLM-5.2", description: "the previous flagship, with a reasoning dial" },
|
|
22
24
|
{ id: GLM_5, label: "GLM-5", description: "older, a little cheaper again" },
|
|
23
25
|
{ id: GLM_47, label: "GLM-4.7", description: "strong value for everyday work" },
|
|
@@ -31,7 +33,16 @@ export const MODELS = [
|
|
|
31
33
|
export function takesEffort(model) {
|
|
32
34
|
return model === GLM_52 || alwaysThinks(model);
|
|
33
35
|
}
|
|
34
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Models whose thinking cannot be switched off.
|
|
38
|
+
*
|
|
39
|
+
* Offering them an "answer directly" rung would build a menu entry that produces a
|
|
40
|
+
* request the provider refuses. The ladder and `normalize` both read this. FlashX is
|
|
41
|
+
* the same served system as Flash, so it carries the same restriction.
|
|
42
|
+
*/
|
|
43
|
+
export function alwaysThinks(model) {
|
|
44
|
+
return model === GLM_53 || model === GLM_53_FLASH || model === GLM_53_FLASHX;
|
|
45
|
+
}
|
|
35
46
|
/**
|
|
36
47
|
* The reasoning levels offered by `/think`.
|
|
37
48
|
*
|
|
@@ -85,10 +96,13 @@ const PRICES = {
|
|
|
85
96
|
// meter that quotes a discount is wrong the day it ends, and wrong quietly.
|
|
86
97
|
[GLM_53]: { cacheHit: 0.26, cacheMiss: 1.4, output: 4.4 },
|
|
87
98
|
[GLM_53_FLASH]: { cacheHit: 0.03, cacheMiss: 0.15, output: 0.5 },
|
|
99
|
+
[GLM_53_FLASHX]: { cacheHit: 0.075, cacheMiss: 0.37, output: 1.25 },
|
|
88
100
|
[GLM_52]: { cacheHit: 0.26, cacheMiss: 1.4, output: 4.4 },
|
|
89
101
|
[GLM_5]: { cacheHit: 0.2, cacheMiss: 1, output: 3.2 },
|
|
90
102
|
[GLM_47]: { cacheHit: 0.11, cacheMiss: 0.6, output: 2.2 },
|
|
91
|
-
|
|
103
|
+
// Cached input $0.01, not the 20% of input the other lines follow (docs.z.ai pricing,
|
|
104
|
+
// checked 2026-09-23).
|
|
105
|
+
[GLM_47_FLASHX]: { cacheHit: 0.01, cacheMiss: 0.07, output: 0.4 },
|
|
92
106
|
};
|
|
93
107
|
/** Cache-aware list price for a model, falling back to the default model's. */
|
|
94
108
|
export function price(model) {
|
|
@@ -121,12 +135,13 @@ export function bufferedOutputTokens(_model) {
|
|
|
121
135
|
* GLM-5.3-Flash is natively multimodal — Z.ai documents image (and video) input on its
|
|
122
136
|
* own id, sent the ordinary OpenAI-compat way (`image_url` content parts), which the
|
|
123
137
|
* shared transport already produces. So core may attach the bytes and the model reads
|
|
124
|
-
* them.
|
|
125
|
-
*
|
|
126
|
-
*
|
|
138
|
+
* them. FlashX is the same served system, so the same is true of it. Every other GLM
|
|
139
|
+
* model here is text-only: pointing an image at one still degrades before anything is
|
|
140
|
+
* sent, which is what core does with a false answer here. (The older `glm-*v*` vision
|
|
141
|
+
* line is separate and not offered by this driver.)
|
|
127
142
|
*/
|
|
128
143
|
export function acceptsImages(model) {
|
|
129
|
-
return model === GLM_53_FLASH;
|
|
144
|
+
return model === GLM_53_FLASH || model === GLM_53_FLASHX;
|
|
130
145
|
}
|
|
131
146
|
/**
|
|
132
147
|
* Coerce a stored or unknown config onto a model this provider actually serves.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/glm/manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/glm/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,8 +56,11 @@ export function thinkLevels(model) {
|
|
|
56
56
|
* so `cacheHit` is half of `cacheMiss` throughout rather than a tenth.
|
|
57
57
|
*/
|
|
58
58
|
const PRICES = [
|
|
59
|
-
|
|
60
|
-
["gpt-oss-
|
|
59
|
+
// console.groq.com/docs/models, checked 2026-09-23.
|
|
60
|
+
["gpt-oss-120b", { cacheHit: 0.075, cacheMiss: 0.15, output: 0.6 }],
|
|
61
|
+
["gpt-oss-20b", { cacheHit: 0.0375, cacheMiss: 0.075, output: 0.3 }],
|
|
62
|
+
// The two Llama models moved to Enterprise (contact sales) and no longer publish a
|
|
63
|
+
// rate; these are their last public prices, kept as the estimate.
|
|
61
64
|
["llama-3.3-70b", { cacheHit: 0.295, cacheMiss: 0.59, output: 0.79 }],
|
|
62
65
|
["llama-3.1-8b", { cacheHit: 0.025, cacheMiss: 0.05, output: 0.08 }],
|
|
63
66
|
["qwen3-32b", { cacheHit: 0.145, cacheMiss: 0.29, output: 0.59 }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/groq/manifest.ts"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,EAAE,yBAAyB,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,4BAA4B,EAAE;IACpG,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,qCAAqC,EAAE;CACzG,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAE3C,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC/B,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC/F,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;SAC/F,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAClH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,GAA4C;IACtD,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/groq/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const K3 = "kimi-k3";
|
|
2
2
|
export const K27_CODE = "kimi-k2.7-code";
|
|
3
|
+
export const K27_CODE_HIGHSPEED = "kimi-k2.7-code-highspeed";
|
|
3
4
|
export const K26 = "kimi-k2.6";
|
|
4
|
-
export const K25 = "kimi-k2.5";
|
|
5
5
|
/** The model used when nothing is saved and no env override is set. */
|
|
6
6
|
export const DEFAULT_MODEL = K26;
|
|
7
7
|
/**
|
|
@@ -17,15 +17,16 @@ export const MODELS = [
|
|
|
17
17
|
{ id: K26, label: "Kimi K2.6", description: "the general workhorse — the default" },
|
|
18
18
|
{ id: K3, label: "Kimi K3", description: "the flagship, always reasoning, for the hardest work" },
|
|
19
19
|
{ id: K27_CODE, label: "Kimi K2.7 Code", description: "tuned for coding and long tool chains" },
|
|
20
|
-
{ id:
|
|
20
|
+
{ id: K27_CODE_HIGHSPEED, label: "Kimi K2.7 Code HighSpeed", description: "K2.7 Code at up to 6x the output speed, at double the price" },
|
|
21
21
|
];
|
|
22
22
|
const SURFACES = {
|
|
23
23
|
// Always reasons, and the only dial is the effort rung.
|
|
24
24
|
[K3]: { canDisableThinking: false, takesEffort: true, window: 200_000 },
|
|
25
|
-
// Always reasons, no dial at all.
|
|
25
|
+
// Always reasons, no dial at all. HighSpeed is the same system on faster serving,
|
|
26
|
+
// so it shares K2.7 Code's surface exactly.
|
|
26
27
|
[K27_CODE]: { canDisableThinking: false, takesEffort: false, window: 200_000 },
|
|
28
|
+
[K27_CODE_HIGHSPEED]: { canDisableThinking: false, takesEffort: false, window: 200_000 },
|
|
27
29
|
[K26]: { canDisableThinking: true, takesEffort: false, window: 200_000 },
|
|
28
|
-
[K25]: { canDisableThinking: true, takesEffort: false, window: 200_000 },
|
|
29
30
|
};
|
|
30
31
|
/** The surface a model runs on, falling back to the default model's. */
|
|
31
32
|
export function surfaceOf(model) {
|
|
@@ -37,10 +38,10 @@ export function surfaceOf(model) {
|
|
|
37
38
|
* Three shapes, one per surface:
|
|
38
39
|
* - K3: no "answer directly" rung, because there is no such request to make.
|
|
39
40
|
* The three rungs are its three real effort values.
|
|
40
|
-
* - K2.7 Code: ONE level.
|
|
41
|
-
* genuinely one setting. A single-entry menu is
|
|
42
|
-
* that did nothing would not be.
|
|
43
|
-
* - K2.6
|
|
41
|
+
* - K2.7 Code and its HighSpeed tier: ONE level each. Both always reason and have
|
|
42
|
+
* no effort dial, so there is genuinely one setting. A single-entry menu is
|
|
43
|
+
* honest; inventing a second that did nothing would not be.
|
|
44
|
+
* - K2.6: the plain on/off pair, no effort dial.
|
|
44
45
|
*/
|
|
45
46
|
export function thinkLevels(model) {
|
|
46
47
|
const surface = surfaceOf(model);
|
|
@@ -71,8 +72,10 @@ export function thinkLevels(model) {
|
|
|
71
72
|
const PRICES = {
|
|
72
73
|
[K3]: { cacheHit: 0.3, cacheMiss: 3, output: 15 },
|
|
73
74
|
[K27_CODE]: { cacheHit: 0.19, cacheMiss: 0.95, output: 4 },
|
|
74
|
-
[
|
|
75
|
-
|
|
75
|
+
[K27_CODE_HIGHSPEED]: { cacheHit: 0.38, cacheMiss: 1.9, output: 8 },
|
|
76
|
+
// Corrected from 0.19: K2.6's published cached rate is lower than K2.7 Code's,
|
|
77
|
+
// not the same figure — they were priced identically here by mistake.
|
|
78
|
+
[K26]: { cacheHit: 0.16, cacheMiss: 0.95, output: 4 },
|
|
76
79
|
};
|
|
77
80
|
/** Cache-aware list price for a model, falling back to the default model's. */
|
|
78
81
|
export function price(model) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/kimi/manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/kimi/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,18 +33,23 @@ export const MODELS = [
|
|
|
33
33
|
* Muse Spark reasons whether or not a request says so, and `reasoning_effort: "none"`
|
|
34
34
|
* is the one value Meta refuses with a 400 — so there is no rung that skips thinking,
|
|
35
35
|
* and none is offered. What the dial does control is depth: `minimal`, `low`,
|
|
36
|
-
* `medium`, `high` and `
|
|
36
|
+
* `medium`, `high`, `xhigh` and (Standard-tier 1.3 only) `max` are all accepted.
|
|
37
37
|
*
|
|
38
|
-
*
|
|
39
|
-
* costs a person reading a menu, and
|
|
40
|
-
*
|
|
38
|
+
* Four of the six are listed. `minimal` and `low` differ by less than the choice
|
|
39
|
+
* costs a person reading a menu, and a ladder is only useful if each rung is a
|
|
40
|
+
* decision someone can act on. `max` is real but scoped — see the file header —
|
|
41
|
+
* so it is only added for the one id it is documented to exist on.
|
|
41
42
|
*/
|
|
42
|
-
export function thinkLevels(
|
|
43
|
-
|
|
43
|
+
export function thinkLevels(model) {
|
|
44
|
+
const levels = [
|
|
44
45
|
{ label: "Light", description: "reasons briefly — fastest", thinking: true, effort: "low" },
|
|
45
46
|
{ label: "Thinking", description: "think first, then answer", thinking: true, effort: "high" },
|
|
46
|
-
{ label: "
|
|
47
|
+
{ label: "Deep", description: "deeper reasoning budget", thinking: true, effort: "xhigh" },
|
|
47
48
|
];
|
|
49
|
+
if (model === MUSE_SPARK_13) {
|
|
50
|
+
levels.push({ label: "Maximum", description: "Meta's deepest reasoning tier (Standard 1.3 only)", thinking: true, effort: "max" });
|
|
51
|
+
}
|
|
52
|
+
return levels;
|
|
48
53
|
}
|
|
49
54
|
/**
|
|
50
55
|
* List prices (USD / 1M tokens). The contributor discount is not a rounding
|
|
@@ -94,22 +99,22 @@ export function bufferedOutputTokens(_model) {
|
|
|
94
99
|
*
|
|
95
100
|
* Thinking is forced ON, because it cannot be otherwise: a config carried over from a
|
|
96
101
|
* provider that can answer directly would ask this one for the one thing it refuses.
|
|
97
|
-
* The effort is snapped onto a rung
|
|
98
|
-
*
|
|
99
|
-
*
|
|
102
|
+
* The effort is snapped onto a rung THIS MODEL's ladder actually lists — resolved
|
|
103
|
+
* after the model, not before, because `max` exists on only one of the four ids and
|
|
104
|
+
* snapping against a fixed model's ladder would let it leak onto the other three.
|
|
100
105
|
*/
|
|
101
106
|
export function normalize(config) {
|
|
102
107
|
const model = PRICES[config.model] ? config.model : DEFAULT_MODEL;
|
|
103
|
-
return { model, thinking: true, effort: snapToOfferedRung(config.effort) };
|
|
108
|
+
return { model, thinking: true, effort: snapToOfferedRung(model, config.effort) };
|
|
104
109
|
}
|
|
105
110
|
/**
|
|
106
|
-
* Move an effort onto the nearest rung
|
|
107
|
-
* unlisted setting resolves to the cheaper neighbour, because silently
|
|
108
|
-
* of the user's money is the worse way to be wrong.
|
|
111
|
+
* Move an effort onto the nearest rung this model's ladder offers. Ties break
|
|
112
|
+
* DOWNWARD: an unlisted setting resolves to the cheaper neighbour, because silently
|
|
113
|
+
* spending more of the user's money is the worse way to be wrong.
|
|
109
114
|
*/
|
|
110
|
-
function snapToOfferedRung(effort) {
|
|
115
|
+
function snapToOfferedRung(model, effort) {
|
|
111
116
|
const ladder = ["low", "medium", "high", "xhigh", "max"];
|
|
112
|
-
const offered = thinkLevels(
|
|
117
|
+
const offered = thinkLevels(model);
|
|
113
118
|
if (offered.some((l) => l.effort === effort))
|
|
114
119
|
return effort;
|
|
115
120
|
const want = ladder.indexOf(effort);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/meta/manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/meta/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@ export const DEFAULT_MODEL = M27;
|
|
|
7
7
|
* The models offered by `/model`. First entry is this provider's default, which is
|
|
8
8
|
* also where `/provider` lands when someone switches to MiniMax.
|
|
9
9
|
*
|
|
10
|
-
* M2.7 leads rather than M3:
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* harder work, not something to drift into.
|
|
10
|
+
* M2.7 leads rather than M3: their ≤512K-token rates are actually equal (see
|
|
11
|
+
* `PRICES`), but M3 doubles past that line (see `contextWindow`) while M2.7 never
|
|
12
|
+
* does, so M2.7 is the deliberate default — never worse, sometimes cheaper — and
|
|
13
|
+
* M3 the choice for harder work specifically, not something to drift into.
|
|
14
14
|
*/
|
|
15
15
|
export const MODELS = [
|
|
16
16
|
{ id: M27, label: "MiniMax M2.7", description: "the current general-purpose model — the default" },
|
|
@@ -45,18 +45,21 @@ export function thinkLevels(model) {
|
|
|
45
45
|
];
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
* List prices (USD / 1M tokens)
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
48
|
+
* List prices (USD / 1M tokens), confirmed against platform.minimax.io's own
|
|
49
|
+
* pay-as-you-go page (docs/guides/pricing-paygo) rather than carried forward or
|
|
50
|
+
* estimated: M2 and M2.7 share the same input/output rate and differ only in their
|
|
51
|
+
* cache-read rate (M2's cache is cheaper, at half M2.7's), and M3's own cache rate
|
|
52
|
+
* IS separately published now — it matches M2.7's, not a guessed ratio.
|
|
53
|
+
* `cacheWrite` is confirmed for M2 and M2.7 (both publish a distinct write rate);
|
|
54
|
+
* M3's write rate is not separately published, so it is left unset, which the
|
|
55
|
+
* `ModelPrice.cacheWrite` doc says falls back to `cacheMiss` — the safe default.
|
|
53
56
|
*/
|
|
54
57
|
const PRICES = {
|
|
55
|
-
[M27]: { cacheHit: 0.
|
|
58
|
+
[M27]: { cacheHit: 0.06, cacheMiss: 0.3, output: 1.2, cacheWrite: 0.375 },
|
|
56
59
|
// M3's ≤512K-token tier; crossing 512K doubles the whole request, which is why
|
|
57
60
|
// `contextWindow` keeps this model's usable window well clear of that line.
|
|
58
|
-
[M3]: { cacheHit: 0.
|
|
59
|
-
[M2]: { cacheHit: 0.
|
|
61
|
+
[M3]: { cacheHit: 0.06, cacheMiss: 0.3, output: 1.2 },
|
|
62
|
+
[M2]: { cacheHit: 0.03, cacheMiss: 0.3, output: 1.2, cacheWrite: 0.375 },
|
|
60
63
|
};
|
|
61
64
|
/** Cache-aware list price for a model, falling back to the default model's. */
|
|
62
65
|
export function price(model) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/minimax/manifest.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC;AAC/B,MAAM,CAAC,MAAM,GAAG,GAAG,cAAc,CAAC;AAClC,MAAM,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC;AAE/B,uEAAuE;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,iDAAiD,EAAE;IAClG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,mDAAmD,EAAE;IACjG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,0CAA0C,EAAE;CACzF,CAAC;AAUF,MAAM,QAAQ,GAAiC;IAC7C,CAAC,EAAE,CAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IACnD,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;IACrD,CAAC,EAAE,CAAC,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;CACrD,CAAC;AAEF,wEAAwE;AACxE,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAE,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAChC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO;QACL,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;QAChG,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;KAC/F,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/minimax/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { baseUrl, RUNNING_ENV } from "./endpoint.js";
|
|
2
|
+
import { localWindow, PREFIX } from "./manifest.js";
|
|
3
|
+
/** How long to wait for the server before calling it not running. It is on this machine. */
|
|
4
|
+
const TIMEOUT_MS = 1500;
|
|
5
|
+
const STANDARD = { label: "Standard", description: "answer directly", thinking: false, effort: "low" };
|
|
6
|
+
const THINKING = { label: "Thinking", description: "think first, then answer", thinking: true, effort: "high" };
|
|
7
|
+
/**
|
|
8
|
+
* Whether a model can serve an agent turn: it has to take tools. Ollama lists what each model
|
|
9
|
+
* can do; an older Ollama that lists nothing is given the benefit of the doubt.
|
|
10
|
+
*/
|
|
11
|
+
export function isUsable(show) {
|
|
12
|
+
const caps = show?.capabilities;
|
|
13
|
+
return !caps || caps.includes("tools");
|
|
14
|
+
}
|
|
15
|
+
/** The context the model was trained on, from `model_info` ("<arch>.context_length"). */
|
|
16
|
+
export function trainedWindow(show) {
|
|
17
|
+
const info = show?.model_info ?? {};
|
|
18
|
+
for (const [k, v] of Object.entries(info)) {
|
|
19
|
+
if (k.endsWith(".context_length") && typeof v === "number" && v > 0)
|
|
20
|
+
return v;
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
function sizeLabel(bytes) {
|
|
25
|
+
if (!bytes || bytes <= 0)
|
|
26
|
+
return "";
|
|
27
|
+
const gb = bytes / 1e9;
|
|
28
|
+
return gb >= 1 ? `${gb.toFixed(1)} GB` : `${Math.round(bytes / 1e6)} MB`;
|
|
29
|
+
}
|
|
30
|
+
export function toChoice(tag, show) {
|
|
31
|
+
const caps = show?.capabilities ?? [];
|
|
32
|
+
const trained = trainedWindow(show);
|
|
33
|
+
const facts = {
|
|
34
|
+
contextWindow: Math.min(trained ?? localWindow(), localWindow()),
|
|
35
|
+
price: { cacheHit: 0, cacheMiss: 0, output: 0 },
|
|
36
|
+
acceptsImages: caps.includes("vision"),
|
|
37
|
+
thinkLevels: caps.includes("thinking") ? [STANDARD, THINKING] : [STANDARD],
|
|
38
|
+
};
|
|
39
|
+
const parts = ["on this machine", tag.details?.parameter_size, sizeLabel(tag.size)].filter(Boolean);
|
|
40
|
+
return { id: PREFIX + tag.name, label: tag.name, description: parts.join(" · "), facts };
|
|
41
|
+
}
|
|
42
|
+
async function getJson(path, init) {
|
|
43
|
+
const response = await fetch(baseUrl() + path, { ...init, signal: AbortSignal.timeout(TIMEOUT_MS) });
|
|
44
|
+
if (!response.ok)
|
|
45
|
+
throw new Error(`Ollama ${path}: HTTP ${response.status}`);
|
|
46
|
+
return (await response.json());
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The pulled models that can run an agent turn. Also sets or clears the "running" variable,
|
|
50
|
+
* which is what makes Ollama count as connected (see endpoint.ts): set only when there is at
|
|
51
|
+
* least one model to use, since a server with nothing pulled cannot answer anything.
|
|
52
|
+
* Throws when the server does not answer, so the registry keeps the list it had.
|
|
53
|
+
*/
|
|
54
|
+
export async function discoverModels() {
|
|
55
|
+
let tags;
|
|
56
|
+
try {
|
|
57
|
+
tags = (await getJson("/api/tags")).models ?? [];
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
delete process.env[RUNNING_ENV];
|
|
61
|
+
throw err;
|
|
62
|
+
}
|
|
63
|
+
const shown = await Promise.all(tags.map((t) => getJson("/api/show", { method: "POST", body: JSON.stringify({ model: t.name }) }).catch(() => null)));
|
|
64
|
+
const choices = tags.flatMap((t, i) => (isUsable(shown[i]) ? [toChoice(t, shown[i])] : []));
|
|
65
|
+
if (choices.length > 0)
|
|
66
|
+
process.env[RUNNING_ENV] = "1";
|
|
67
|
+
else
|
|
68
|
+
delete process.env[RUNNING_ENV];
|
|
69
|
+
return choices;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/drivers/ollama/catalog.ts"],"names":[],"mappings":"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"}
|