mindweave 2.5.1 → 3.0.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.
Files changed (236) hide show
  1. package/README.md +50 -114
  2. package/dist/cli/App.js +580 -305
  3. package/dist/cli/App.js.map +1 -1
  4. package/dist/cli/analytics.js +27 -18
  5. package/dist/cli/analytics.js.map +1 -1
  6. package/dist/cli/attachments.js +34 -0
  7. package/dist/cli/attachments.js.map +1 -1
  8. package/dist/cli/bannerFit.js +70 -0
  9. package/dist/cli/bannerFit.js.map +1 -0
  10. package/dist/cli/bootstrap.js +41 -3
  11. package/dist/cli/bootstrap.js.map +1 -1
  12. package/dist/cli/commands.js +4 -1
  13. package/dist/cli/commands.js.map +1 -1
  14. package/dist/cli/components/ApprovalBox.js +3 -2
  15. package/dist/cli/components/ApprovalBox.js.map +1 -1
  16. package/dist/cli/components/BlockView.js +27 -6
  17. package/dist/cli/components/BlockView.js.map +1 -1
  18. package/dist/cli/components/FirstRunFrame.js +2 -1
  19. package/dist/cli/components/FirstRunFrame.js.map +1 -1
  20. package/dist/cli/components/KeyManager.js +5 -4
  21. package/dist/cli/components/KeyManager.js.map +1 -1
  22. package/dist/cli/components/KeySetup.js +29 -13
  23. package/dist/cli/components/KeySetup.js.map +1 -1
  24. package/dist/cli/components/MarathonBox.js +64 -0
  25. package/dist/cli/components/MarathonBox.js.map +1 -0
  26. package/dist/cli/components/McpMinitabs.js +8 -7
  27. package/dist/cli/components/McpMinitabs.js.map +1 -1
  28. package/dist/cli/components/Picker.js +4 -3
  29. package/dist/cli/components/Picker.js.map +1 -1
  30. package/dist/cli/components/PromptInput.js +47 -8
  31. package/dist/cli/components/PromptInput.js.map +1 -1
  32. package/dist/cli/components/PulseDot.js +42 -0
  33. package/dist/cli/components/PulseDot.js.map +1 -0
  34. package/dist/cli/components/SubagentView.js +9 -6
  35. package/dist/cli/components/SubagentView.js.map +1 -1
  36. package/dist/cli/components/TipLine.js +2 -1
  37. package/dist/cli/components/TipLine.js.map +1 -1
  38. package/dist/cli/components/ToolGroup.js +65 -49
  39. package/dist/cli/components/ToolGroup.js.map +1 -1
  40. package/dist/cli/components/ToolLine.js +20 -19
  41. package/dist/cli/components/ToolLine.js.map +1 -1
  42. package/dist/cli/components/TrustGate.js +2 -1
  43. package/dist/cli/components/TrustGate.js.map +1 -1
  44. package/dist/cli/components/minitabs.js +3 -2
  45. package/dist/cli/components/minitabs.js.map +1 -1
  46. package/dist/cli/desktopApp.js +45 -0
  47. package/dist/cli/desktopApp.js.map +1 -0
  48. package/dist/cli/help.js +1 -0
  49. package/dist/cli/help.js.map +1 -1
  50. package/dist/cli/inkOutputPatch.js +285 -0
  51. package/dist/cli/inkOutputPatch.js.map +1 -0
  52. package/dist/cli/inkSpeed.js +29 -0
  53. package/dist/cli/inkSpeed.js.map +1 -0
  54. package/dist/cli/inkSpeedLoader.js +47 -0
  55. package/dist/cli/inkSpeedLoader.js.map +1 -0
  56. package/dist/cli/inputText.js +30 -0
  57. package/dist/cli/inputText.js.map +1 -0
  58. package/dist/cli/keyManager.js +2 -1
  59. package/dist/cli/keyManager.js.map +1 -1
  60. package/dist/cli/keyPrefs.js +90 -0
  61. package/dist/cli/keyPrefs.js.map +1 -0
  62. package/dist/cli/keySetup.js +5 -2
  63. package/dist/cli/keySetup.js.map +1 -1
  64. package/dist/cli/marathonUi.js +113 -0
  65. package/dist/cli/marathonUi.js.map +1 -0
  66. package/dist/cli/markdown.js +63 -11
  67. package/dist/cli/markdown.js.map +1 -1
  68. package/dist/cli/modes.js +3 -3
  69. package/dist/cli/modes.js.map +1 -1
  70. package/dist/cli/prodEnv.js +43 -0
  71. package/dist/cli/prodEnv.js.map +1 -0
  72. package/dist/cli/revealPace.js +5 -5
  73. package/dist/cli/revealPace.js.map +1 -1
  74. package/dist/cli/revealQueue.js +120 -0
  75. package/dist/cli/revealQueue.js.map +1 -0
  76. package/dist/cli/startupArgs.js +1 -1
  77. package/dist/cli/theme.js +47 -0
  78. package/dist/cli/theme.js.map +1 -0
  79. package/dist/cli/toolDisplay.js +112 -18
  80. package/dist/cli/toolDisplay.js.map +1 -1
  81. package/dist/cli/transcript.js +1 -1
  82. package/dist/cli/transcript.js.map +1 -1
  83. package/dist/cli/virtualWindow.js +14 -2
  84. package/dist/cli/virtualWindow.js.map +1 -1
  85. package/dist/cli/wheelAccel.js +73 -0
  86. package/dist/cli/wheelAccel.js.map +1 -0
  87. package/dist/cli/widestLinePatch.js +48 -0
  88. package/dist/cli/widestLinePatch.js.map +1 -0
  89. package/dist/cli/workingVerb.js +88 -28
  90. package/dist/cli/workingVerb.js.map +1 -1
  91. package/dist/cli/wrap.js +1 -1
  92. package/dist/cli/wrap.js.map +1 -1
  93. package/dist/core/contextSettings.js +84 -0
  94. package/dist/core/contextSettings.js.map +1 -0
  95. package/dist/core/limitsView.js +40 -0
  96. package/dist/core/limitsView.js.map +1 -0
  97. package/dist/core/mcpServers.js +164 -0
  98. package/dist/core/mcpServers.js.map +1 -0
  99. package/dist/core/permissions.js +209 -0
  100. package/dist/core/permissions.js.map +1 -0
  101. package/dist/core/providerKeys.js +187 -0
  102. package/dist/core/providerKeys.js.map +1 -0
  103. package/dist/core/rulesSkills.js +142 -0
  104. package/dist/core/rulesSkills.js.map +1 -0
  105. package/dist/core/spendView.js +90 -0
  106. package/dist/core/spendView.js.map +1 -0
  107. package/dist/core/turnRunner.js +453 -60
  108. package/dist/core/turnRunner.js.map +1 -1
  109. package/dist/drivers/anthropic/client.js +24 -5
  110. package/dist/drivers/anthropic/client.js.map +1 -1
  111. package/dist/drivers/anthropic/manifest.js +15 -2
  112. package/dist/drivers/anthropic/manifest.js.map +1 -1
  113. package/dist/drivers/cerebras/manifest.js +6 -2
  114. package/dist/drivers/cerebras/manifest.js.map +1 -1
  115. package/dist/drivers/deepseek/manifest.js +12 -3
  116. package/dist/drivers/deepseek/manifest.js.map +1 -1
  117. package/dist/drivers/glm/manifest.js +3 -1
  118. package/dist/drivers/glm/manifest.js.map +1 -1
  119. package/dist/drivers/groq/manifest.js +5 -2
  120. package/dist/drivers/groq/manifest.js.map +1 -1
  121. package/dist/drivers/ollama/catalog.js +71 -0
  122. package/dist/drivers/ollama/catalog.js.map +1 -0
  123. package/dist/drivers/ollama/client.js +164 -0
  124. package/dist/drivers/ollama/client.js.map +1 -0
  125. package/dist/drivers/ollama/endpoint.js +42 -0
  126. package/dist/drivers/ollama/endpoint.js.map +1 -0
  127. package/dist/drivers/ollama/index.js +5 -0
  128. package/dist/drivers/ollama/index.js.map +1 -0
  129. package/dist/drivers/ollama/manifest.js +64 -0
  130. package/dist/drivers/ollama/manifest.js.map +1 -0
  131. package/dist/drivers/openai/client.js +10 -4
  132. package/dist/drivers/openai/client.js.map +1 -1
  133. package/dist/drivers/openai/manifest.js +46 -12
  134. package/dist/drivers/openai/manifest.js.map +1 -1
  135. package/dist/drivers/registry.js +11 -0
  136. package/dist/drivers/registry.js.map +1 -1
  137. package/dist/drivers/retryPolicy.js +26 -1
  138. package/dist/drivers/retryPolicy.js.map +1 -1
  139. package/dist/dynamo/auxModel.js +54 -0
  140. package/dist/dynamo/auxModel.js.map +1 -0
  141. package/dist/dynamo/engine.js +380 -99
  142. package/dist/dynamo/engine.js.map +1 -1
  143. package/dist/dynamo/guard.js +10 -0
  144. package/dist/dynamo/guard.js.map +1 -1
  145. package/dist/dynamo/liveMeter.js +25 -6
  146. package/dist/dynamo/liveMeter.js.map +1 -1
  147. package/dist/dynamo/marathon.js +409 -0
  148. package/dist/dynamo/marathon.js.map +1 -0
  149. package/dist/dynamo/marathonPrompt.js +45 -0
  150. package/dist/dynamo/marathonPrompt.js.map +1 -0
  151. package/dist/dynamo/model.js +6 -2
  152. package/dist/dynamo/model.js.map +1 -1
  153. package/dist/dynamo/toolBatches.js +58 -0
  154. package/dist/dynamo/toolBatches.js.map +1 -0
  155. package/dist/dynamo/usageLimits.js +446 -0
  156. package/dist/dynamo/usageLimits.js.map +1 -0
  157. package/dist/governor/freshness.js +10 -7
  158. package/dist/governor/freshness.js.map +1 -1
  159. package/dist/governor/index.js +76 -9
  160. package/dist/governor/index.js.map +1 -1
  161. package/dist/governor/write.js +43 -14
  162. package/dist/governor/write.js.map +1 -1
  163. package/dist/index.js +18 -151
  164. package/dist/index.js.map +1 -1
  165. package/dist/main.js +162 -0
  166. package/dist/main.js.map +1 -0
  167. package/dist/mcp/manager.js +18 -0
  168. package/dist/mcp/manager.js.map +1 -1
  169. package/dist/memory/allMetas.js +69 -0
  170. package/dist/memory/allMetas.js.map +1 -0
  171. package/dist/memory/compaction.js +69 -14
  172. package/dist/memory/compaction.js.map +1 -1
  173. package/dist/memory/earlier.js +15 -0
  174. package/dist/memory/earlier.js.map +1 -0
  175. package/dist/memory/profile.js +93 -0
  176. package/dist/memory/profile.js.map +1 -0
  177. package/dist/memory/rewind.js +262 -0
  178. package/dist/memory/rewind.js.map +1 -0
  179. package/dist/memory/session.js +42 -10
  180. package/dist/memory/session.js.map +1 -1
  181. package/dist/memory/sessionMemory.js +48 -13
  182. package/dist/memory/sessionMemory.js.map +1 -1
  183. package/dist/memory/sessionMemoryCompact.js +1 -1
  184. package/dist/memory/sessionMemoryCompact.js.map +1 -1
  185. package/dist/memory/sessionTitle.js +50 -0
  186. package/dist/memory/sessionTitle.js.map +1 -0
  187. package/dist/memory/store.js +42 -1
  188. package/dist/memory/store.js.map +1 -1
  189. package/dist/memory/types.js.map +1 -1
  190. package/dist/tools/askUser.js +14 -0
  191. package/dist/tools/askUser.js.map +1 -1
  192. package/dist/tools/backgroundShells.js +208 -5
  193. package/dist/tools/backgroundShells.js.map +1 -1
  194. package/dist/tools/browser.js +176 -0
  195. package/dist/tools/browser.js.map +1 -0
  196. package/dist/tools/cdp.js +165 -0
  197. package/dist/tools/cdp.js.map +1 -0
  198. package/dist/tools/checkpoints.js +208 -5
  199. package/dist/tools/checkpoints.js.map +1 -1
  200. package/dist/tools/deferredNative.js +2 -0
  201. package/dist/tools/deferredNative.js.map +1 -1
  202. package/dist/tools/exitPlan.js +4 -0
  203. package/dist/tools/exitPlan.js.map +1 -1
  204. package/dist/tools/hiddenDesktop.js +273 -0
  205. package/dist/tools/hiddenDesktop.js.map +1 -0
  206. package/dist/tools/listeningPorts.js +134 -0
  207. package/dist/tools/listeningPorts.js.map +1 -0
  208. package/dist/tools/mcpSearch.js +8 -0
  209. package/dist/tools/mcpSearch.js.map +1 -1
  210. package/dist/tools/mindweaveStatus.js +1 -1
  211. package/dist/tools/mindweaveStatus.js.map +1 -1
  212. package/dist/tools/registry.js +3 -0
  213. package/dist/tools/registry.js.map +1 -1
  214. package/dist/tools/runCommand.js +107 -6
  215. package/dist/tools/runCommand.js.map +1 -1
  216. package/dist/tools/screenshot.js +4 -6
  217. package/dist/tools/screenshot.js.map +1 -1
  218. package/dist/tools/screenshotWin.js +26 -9
  219. package/dist/tools/screenshotWin.js.map +1 -1
  220. package/dist/tools/stateCheckpoint.js +128 -0
  221. package/dist/tools/stateCheckpoint.js.map +1 -0
  222. package/dist/tools/todo.js +6 -0
  223. package/dist/tools/todo.js.map +1 -1
  224. package/dist/tools/ui.js +1295 -0
  225. package/dist/tools/ui.js.map +1 -0
  226. package/dist/tools/uiHide.js +356 -0
  227. package/dist/tools/uiHide.js.map +1 -0
  228. package/dist/tools/uiPage.js +861 -0
  229. package/dist/tools/uiPage.js.map +1 -0
  230. package/dist/tools/uiWin.js +506 -0
  231. package/dist/tools/uiWin.js.map +1 -0
  232. package/dist/tools/webFetch.js +32 -25
  233. package/dist/tools/webFetch.js.map +1 -1
  234. package/dist/tools/webSearch.js +12 -0
  235. package/dist/tools/webSearch.js.map +1 -1
  236. package/package.json +78 -78
@@ -0,0 +1,164 @@
1
+ import { ProviderHttpError, renderMessages, toStop } from "../openaiCompat/wire.js";
2
+ import { salvagePartialTurn } from "../partialTurn.js";
3
+ import { isAbortLike } from "../retryPolicy.js";
4
+ import { clientId } from "../clientId.js";
5
+ import { manifestForModel } from "../registry.js";
6
+ import { baseUrl } from "./endpoint.js";
7
+ import { BUFFERED_OUTPUT_TOKENS, localWindow, wireId } from "./manifest.js";
8
+ /** For the shared stop-reason and error vocabulary only; this driver does not use the OpenAI wire. */
9
+ const AS_PROVIDER = { label: "Ollama" };
10
+ /** Tool arguments are a JSON string everywhere else; `/api/chat` wants the object. */
11
+ function argsObject(raw) {
12
+ try {
13
+ const parsed = JSON.parse(raw || "{}");
14
+ return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
15
+ }
16
+ catch {
17
+ return {};
18
+ }
19
+ }
20
+ /**
21
+ * The shared rendering, reshaped: images as bare base64, tool calls with object arguments, and a
22
+ * tool result carrying the name of the tool it answers (Ollama matches results by name, not id).
23
+ */
24
+ export function toNativeMessages(messages) {
25
+ const names = new Map();
26
+ return messages.map((m) => {
27
+ const out = { role: m.role, content: m.content };
28
+ if (m.images?.length)
29
+ out.images = m.images.map((i) => i.data);
30
+ if (m.tool_calls?.length) {
31
+ out.tool_calls = m.tool_calls.map((c) => {
32
+ names.set(c.id, c.function.name);
33
+ return { function: { name: c.function.name, arguments: argsObject(c.function.arguments) } };
34
+ });
35
+ }
36
+ if (m.role === "tool" && m.tool_call_id && names.has(m.tool_call_id))
37
+ out.tool_name = names.get(m.tool_call_id);
38
+ return out;
39
+ });
40
+ }
41
+ /** Whether the chosen model has a thinking switch at all (from what discovery reported). */
42
+ function canThink(config) {
43
+ return !!config && manifestForModel(config.model).thinkLevels(config.model).some((l) => l.thinking);
44
+ }
45
+ export function buildRequest(req, stream, maxTokens) {
46
+ const model = req.model?.model ?? "";
47
+ const window = manifestForModel(model).contextWindow(model) || localWindow();
48
+ const body = {
49
+ model: wireId(model),
50
+ messages: toNativeMessages(renderMessages(req)),
51
+ stream,
52
+ // Every request states its window: otherwise Ollama's default applies and the rest is cut.
53
+ options: { num_ctx: window, ...(maxTokens ? { num_predict: maxTokens } : {}) },
54
+ };
55
+ // Stated either way for a model that has the switch: one that thinks by default (Qwen3) would
56
+ // otherwise think on every turn the user chose Standard for.
57
+ if (canThink(req.model))
58
+ body.think = req.model?.thinking === true;
59
+ if (req.tools?.length)
60
+ body.tools = req.tools;
61
+ return body;
62
+ }
63
+ function toUsage(chunk) {
64
+ const promptTokens = chunk.prompt_eval_count ?? 0;
65
+ const completionTokens = chunk.eval_count ?? 0;
66
+ return {
67
+ promptTokens,
68
+ completionTokens,
69
+ totalTokens: promptTokens + completionTokens,
70
+ cacheHitTokens: 0,
71
+ cacheMissTokens: promptTokens,
72
+ };
73
+ }
74
+ function toToolCall(c, index) {
75
+ const args = c.function.arguments;
76
+ return {
77
+ id: c.id || `call_${index}`,
78
+ name: c.function.name,
79
+ arguments: typeof args === "string" ? args : JSON.stringify(args ?? {}),
80
+ };
81
+ }
82
+ async function post(body, signal) {
83
+ const response = await fetch(`${baseUrl()}/api/chat`, {
84
+ method: "POST",
85
+ headers: { "Content-Type": "application/json", "User-Agent": clientId() },
86
+ body: JSON.stringify(body),
87
+ signal,
88
+ });
89
+ if (!response.ok) {
90
+ const detail = await response.text().catch(() => "");
91
+ throw new ProviderHttpError(response.status, detail, "Ollama", response.statusText);
92
+ }
93
+ return response;
94
+ }
95
+ /** Each JSON line of a streamed reply (Ollama streams newline-delimited JSON, not SSE). */
96
+ async function* jsonLines(response) {
97
+ if (!response.body)
98
+ return;
99
+ const decoder = new TextDecoder();
100
+ let buffer = "";
101
+ for await (const piece of response.body) {
102
+ buffer += decoder.decode(piece, { stream: true });
103
+ let nl;
104
+ while ((nl = buffer.indexOf("\n")) !== -1) {
105
+ const line = buffer.slice(0, nl).trim();
106
+ buffer = buffer.slice(nl + 1);
107
+ if (line)
108
+ yield JSON.parse(line);
109
+ }
110
+ }
111
+ if (buffer.trim())
112
+ yield JSON.parse(buffer);
113
+ }
114
+ export async function toolTurn(req, options = {}) {
115
+ const response = await post(buildRequest(req, false, BUFFERED_OUTPUT_TOKENS), options.signal);
116
+ const chunk = (await response.json());
117
+ if (chunk.error)
118
+ throw new Error(`Ollama: ${chunk.error}`);
119
+ return {
120
+ content: chunk.message?.content ?? "",
121
+ toolCalls: (chunk.message?.tool_calls ?? []).map(toToolCall),
122
+ stop: toStop(AS_PROVIDER, chunk.done_reason),
123
+ usage: toUsage(chunk),
124
+ };
125
+ }
126
+ export async function streamTurn(req, options = {}) {
127
+ const onEvent = options.onEvent ?? (() => { });
128
+ const response = await post(buildRequest(req, true), options.signal);
129
+ let content = "";
130
+ const calls = [];
131
+ let usage;
132
+ let reason;
133
+ try {
134
+ for await (const chunk of jsonLines(response)) {
135
+ if (chunk.error)
136
+ throw new Error(`Ollama: ${chunk.error}`);
137
+ const m = chunk.message;
138
+ if (m?.thinking)
139
+ onEvent({ type: "reasoning", delta: m.thinking });
140
+ if (m?.content) {
141
+ content += m.content;
142
+ onEvent({ type: "text", delta: m.content });
143
+ }
144
+ // Ollama sends each tool call whole, in one line, rather than in fragments.
145
+ for (const c of m?.tool_calls ?? []) {
146
+ const call = toToolCall(c, calls.length);
147
+ onEvent({ type: "tool_start", index: calls.length, id: call.id, name: call.name });
148
+ onEvent({ type: "tool_args", index: calls.length, delta: call.arguments });
149
+ calls.push(call);
150
+ }
151
+ if (chunk.done) {
152
+ reason = chunk.done_reason;
153
+ usage = toUsage(chunk);
154
+ }
155
+ }
156
+ }
157
+ catch (error) {
158
+ if (isAbortLike(error))
159
+ throw error;
160
+ return salvagePartialTurn(content, error);
161
+ }
162
+ return { content, toolCalls: calls, usage, stop: toStop(AS_PROVIDER, reason) };
163
+ }
164
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/drivers/ollama/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * endpoint.ts — where the local Ollama server is.
3
+ *
4
+ * Its own module so the catalogue (which only lists models) and the client (which talks to one)
5
+ * agree on the address without the catalogue loading any wire code.
6
+ *
7
+ * Ollama's own variable, `OLLAMA_HOST`, is honoured the way Ollama reads it: a bare `host:port`
8
+ * or a full URL, and `0.0.0.0` (which a server binds to, but nobody can connect to) means this
9
+ * machine. `MINDWEAVE_OLLAMA_URL` overrides both, for a server somewhere else.
10
+ */
11
+ export const DEFAULT_URL = "http://127.0.0.1:11434";
12
+ /** The server's root URL, no trailing slash. Read on each call, so a changed variable counts. */
13
+ export function baseUrl(env = process.env) {
14
+ const own = env.MINDWEAVE_OLLAMA_URL?.trim();
15
+ if (own)
16
+ return own.replace(/\/+$/, "");
17
+ const host = env.OLLAMA_HOST?.trim();
18
+ if (!host)
19
+ return DEFAULT_URL;
20
+ const withScheme = /^[a-z]+:\/\//i.test(host) ? host : `http://${host}`;
21
+ try {
22
+ const url = new URL(withScheme);
23
+ if (url.hostname === "0.0.0.0" || url.hostname === "::" || url.hostname === "[::]")
24
+ url.hostname = "127.0.0.1";
25
+ if (!url.port && url.protocol === "http:" && !/:\d+$/.test(host))
26
+ url.port = "11434";
27
+ return url.toString().replace(/\/+$/, "");
28
+ }
29
+ catch {
30
+ return DEFAULT_URL;
31
+ }
32
+ }
33
+ /**
34
+ * The variable that says the server answered with at least one usable model.
35
+ *
36
+ * Every provider is "connected" when its key variable is set, and every part of Mindweave that
37
+ * decides what can run (first-run setup, the fallback to another provider, the app's composer)
38
+ * reads that one fact. A local server has no key, so discovery sets this variable when the
39
+ * server is up and clears it when it is not: the same fact, with no second code path.
40
+ */
41
+ export const RUNNING_ENV = "MINDWEAVE_OLLAMA_RUNNING";
42
+ //# sourceMappingURL=endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/drivers/ollama/endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAEpD,iGAAiG;AACjG,MAAM,UAAU,OAAO,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC1D,MAAM,GAAG,GAAG,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,WAAW,CAAC;IAC9B,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;IACxE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM;YAAE,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC/G,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACrF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,0BAA0B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { streamTurn, toolTurn } from "./client.js";
2
+ import { ollamaManifest } from "./manifest.js";
3
+ export const ollamaDriver = { ...ollamaManifest, toolTurn, streamTurn };
4
+ export default ollamaDriver;
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drivers/ollama/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAW,EAAE,GAAG,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAEhF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { RUNNING_ENV } from "./endpoint.js";
2
+ /** The namespace every Ollama model id carries inside Mindweave. */
3
+ export const PREFIX = "ollama:";
4
+ /** Ollama's own name for a namespaced id. */
5
+ export function wireId(model) {
6
+ return model.startsWith(PREFIX) ? model.slice(PREFIX.length) : model;
7
+ }
8
+ /**
9
+ * The context each request asks Ollama for, in tokens.
10
+ *
11
+ * Ollama loads a model with a small window by default (a few thousand tokens) and silently
12
+ * drops whatever does not fit, which an agent's instructions and tools alone can exceed. So
13
+ * every request states its window. 32K by default: room for the agent's instructions and a real
14
+ * conversation. It costs memory (the model's cache for 32K tokens can be several GB), so
15
+ * `MINDWEAVE_OLLAMA_CONTEXT` sets another size for a smaller machine. A model trained on less
16
+ * keeps its own figure (see `catalog.ts`).
17
+ */
18
+ export const LOCAL_WINDOW = 32_768;
19
+ /** The window asked for: `MINDWEAVE_OLLAMA_CONTEXT` when set to a sensible number, else 32K. */
20
+ export function localWindow(env = process.env) {
21
+ const n = Number(env.MINDWEAVE_OLLAMA_CONTEXT);
22
+ return Number.isInteger(n) && n >= 2048 ? n : LOCAL_WINDOW;
23
+ }
24
+ /** Nothing is billed: the model runs here. */
25
+ const FREE = { cacheHit: 0, cacheMiss: 0, output: 0 };
26
+ export function price(_model) {
27
+ return FREE;
28
+ }
29
+ export function thinkLevels(_model) {
30
+ return [{ label: "Standard", description: "answer directly", thinking: false, effort: "low" }];
31
+ }
32
+ export function contextWindow(_model) {
33
+ return localWindow();
34
+ }
35
+ /** A buffered call's ceiling, well inside the window it shares. */
36
+ export const BUFFERED_OUTPUT_TOKENS = 4_096;
37
+ export function bufferedOutputTokens(_model) {
38
+ return BUFFERED_OUTPUT_TOKENS;
39
+ }
40
+ /** Keep a saved local model even before discovery has listed it; see OpenRouter's. */
41
+ export function normalize(config) {
42
+ const thinking = config.thinking === true;
43
+ return { model: config.model, thinking, effort: thinking ? "high" : "low" };
44
+ }
45
+ export function ownsModel(model) {
46
+ return model.startsWith(PREFIX);
47
+ }
48
+ export const ollamaManifest = {
49
+ id: "ollama",
50
+ label: "Ollama",
51
+ apiKeyEnv: RUNNING_ENV,
52
+ keysUrl: "https://ollama.com/download",
53
+ local: true,
54
+ // Empty until discovery: only what is pulled on this machine is offered.
55
+ models: [],
56
+ thinkLevels,
57
+ price,
58
+ contextWindow,
59
+ bufferedOutputTokens,
60
+ normalize,
61
+ ownsModel,
62
+ discoverModels: async () => (await import("./catalog.js")).discoverModels(),
63
+ };
64
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/ollama/manifest.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,oEAAoE;AACpE,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC;AAEhC,6CAA6C;AAC7C,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AAEnC,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AAC7D,CAAC;AAED,8CAA8C;AAC9C,MAAM,IAAI,GAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAElE,MAAM,UAAU,KAAK,CAAC,MAAe;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAe;IACzC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,OAAO,WAAW,EAAE,CAAC;AACvB,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAE5C,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAClD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,6BAA6B;IACtC,KAAK,EAAE,IAAI;IACX,yEAAyE;IACzE,MAAM,EAAE,EAAE;IACV,WAAW;IACX,KAAK;IACL,aAAa;IACb,oBAAoB;IACpB,SAAS;IACT,SAAS;IACT,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE;CAC5E,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { basename } from "node:path";
2
2
  import { clientId } from "../clientId.js";
3
3
  import { RETRY_MAX_ATTEMPTS } from "../retryPolicy.js";
4
- import { BUFFERED_OUTPUT_TOKENS, DEFAULT_MODEL } from "./manifest.js";
4
+ import { BUFFERED_OUTPUT_TOKENS, DEFAULT_MODEL, canSkipReasoning } from "./manifest.js";
5
5
  const MODEL = process.env.MINDWEAVE_MODEL ?? DEFAULT_MODEL;
6
6
  /** Output ceiling for a streamed turn. This caps reasoning AND answer together, so
7
7
  * it needs headroom at the higher rungs; the family accepts up to 128K. */
@@ -11,10 +11,13 @@ const MAX_TOKENS_STREAM = 64_000;
11
11
  * the manifest because core reserves room for it when setting the compaction bars. */
12
12
  const MAX_TOKENS_BUFFERED = BUFFERED_OUTPUT_TOKENS;
13
13
  let client = null;
14
+ /** The key `client` was built with. A different live key (switched with /key, or by the
15
+ * app's key manager) rebuilds it; the old code kept the first key for the whole process. */
16
+ let clientKey;
14
17
  /** The shared SDK client, or a clear setup error if no key is configured yet. */
15
18
  async function api() {
16
- if (!client) {
17
- const apiKey = process.env.OPENAI_API_KEY;
19
+ const apiKey = process.env.OPENAI_API_KEY;
20
+ if (!client || apiKey !== clientKey) {
18
21
  if (!apiKey) {
19
22
  throw new Error("No OPENAI_API_KEY found. Add your key to the global config so Mindweave works " +
20
23
  "in every project:\n" +
@@ -28,6 +31,7 @@ async function api() {
28
31
  // here means a session behaves the same way whichever provider it is pointed at,
29
32
  // and that an SDK upgrade changing its default cannot quietly change ours.
30
33
  client = new OpenAIClient({ apiKey, maxRetries: RETRY_MAX_ATTEMPTS - 1, defaultHeaders: { "User-Agent": clientId() } });
34
+ clientKey = apiKey;
31
35
  }
32
36
  return client;
33
37
  }
@@ -140,7 +144,9 @@ export function buildBody(req, maxTokens) {
140
144
  max_output_tokens: maxTokens,
141
145
  // Reasoning is ONE dial here: `none` is the off switch rather than a separate
142
146
  // flag, so the shared thinking/effort pair collapses into a single rung.
143
- reasoning: { effort: cfg?.thinking ? cfg.effort : "none" },
147
+ // Astra and GPT-6.1 Sol have no `none`; `normalize` keeps them thinking, and a stray
148
+ // no-thinking config still gets the lightest rung rather than a refused request.
149
+ reasoning: { effort: cfg?.thinking ? cfg.effort : canSkipReasoning(cfg?.model ?? MODEL) ? "none" : "low" },
144
150
  store: false,
145
151
  };
146
152
  const tools = renderTools(req);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/drivers/openai/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/drivers/openai/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export const ASTRA = "gpt-6-astra";
2
+ export const SOL_61 = "gpt-6.1-sol";
2
3
  export const SOL_6 = "gpt-6-sol";
3
4
  export const LUNA_6 = "gpt-6-luna";
4
5
  export const SOL = "gpt-5.6-sol";
@@ -16,24 +17,50 @@ export const DEFAULT_MODEL = TERRA;
16
17
  export const MODELS = [
17
18
  { id: TERRA, label: "GPT-5.6 Terra", description: "balanced intelligence and cost — the default" },
18
19
  { id: ASTRA, label: "GPT-6 Astra", description: "the GPT-6 flagship — the most capable, and the priciest" },
20
+ { id: SOL_61, label: "GPT-6.1 Sol", description: "the newest Sol, at GPT-6 Sol's rate" },
19
21
  { id: SOL_6, label: "GPT-6 Sol", description: "GPT-6 at Terra's input rate, with cheaper output" },
20
22
  { id: LUNA_6, label: "GPT-6 Luna", description: "the cheapest GPT-6, for high-volume work" },
21
23
  { id: SOL, label: "GPT-5.6 Sol", description: "the GPT-5.6 frontier tier" },
22
24
  { id: LUNA, label: "GPT-5.6 Luna", description: "cheap and quick, for high-volume work" },
23
25
  ];
26
+ /**
27
+ * The models that cannot be asked NOT to reason. OpenAI's pages list their `effort` as
28
+ * low, medium, high, xhigh and max: `none` is not on the list, and the reasoning guide
29
+ * says so for both ("GPT-6 Astra does not support `none`", "GPT-6.1 Sol does not support
30
+ * `none` or `minimal`", developers.openai.com, checked 2026-10-01). Every other model
31
+ * here lists `none` among its efforts. Sending `none` to one of these two is the
32
+ * request the API refuses, so the "answer directly" rung does not exist for them.
33
+ */
34
+ const ALWAYS_REASONS = new Set([ASTRA, SOL_61]);
35
+ /** Whether this model accepts `reasoning.effort: "none"`, the off switch. */
36
+ export function canSkipReasoning(model) {
37
+ return !ALWAYS_REASONS.has(model);
38
+ }
24
39
  /**
25
40
  * The reasoning levels offered by `/think`.
26
41
  *
27
42
  * OpenAI expresses reasoning as a single `effort` rung with `none` as its off
28
43
  * switch, rather than a separate on/off flag plus a budget. That maps onto the
29
44
  * shared shape cleanly: `thinking: false` becomes `none` on the wire, and the four
30
- * thinking rungs are sent as themselves. Every model here takes the same ladder.
45
+ * thinking rungs are sent as themselves.
31
46
  *
32
- * The provider also accepts `minimal` between `none` and `low`. It is not offered:
33
- * it would be a fifth rung whose difference from `low` no user could predict, and
34
- * the ladder is more useful short.
47
+ * The two models in `ALWAYS_REASONS` have no `none`, so their ladder starts at `low`
48
+ * and says so: a rung that sat there as "answer directly" would be a setting that
49
+ * ends in a refused request.
50
+ *
51
+ * The provider also accepts `minimal` between `none` and `low` on some models. It is not
52
+ * offered: it would be a fifth rung whose difference from `low` no user could predict,
53
+ * and the ladder is more useful short.
35
54
  */
36
- export function thinkLevels(_model) {
55
+ export function thinkLevels(model) {
56
+ if (!canSkipReasoning(model)) {
57
+ return [
58
+ { label: "Standard", description: "always thinks — lighter budget", thinking: true, effort: "low" },
59
+ { label: "Thinking", description: "think first, then answer", thinking: true, effort: "medium" },
60
+ { label: "Deep", description: "more reasoning, more tool work", thinking: true, effort: "high" },
61
+ { label: "Maximum", description: "maximum reasoning budget", thinking: true, effort: "max" },
62
+ ];
63
+ }
37
64
  return [
38
65
  { label: "Standard", description: "answer directly — fastest", thinking: false, effort: "high" },
39
66
  { label: "Thinking", description: "think first, then answer", thinking: true, effort: "medium" },
@@ -59,6 +86,11 @@ const PRICES = {
59
86
  // GPT-6 Sol and Luna: list prices, no promotion (developers.openai.com/api/docs/pricing,
60
87
  // checked 2026-09-23).
61
88
  [SOL_6]: { cacheHit: 0.2, cacheMiss: 2, output: 10 },
89
+ // GPT-6.1 Sol: the same input and output rate as GPT-6 Sol with HALF its cache-read price
90
+ // (developers.openai.com/api/docs/pricing, checked 2026-10-01). Over 272K input tokens the
91
+ // whole request bills at 2x input and cache and 1.5x output; the usable window here is far
92
+ // below that, so it is not modelled.
93
+ [SOL_61]: { cacheHit: 0.1, cacheMiss: 2, output: 10 },
62
94
  [LUNA_6]: { cacheHit: 0.01, cacheMiss: 0.1, output: 0.5 },
63
95
  [SOL]: { cacheHit: 0.4, cacheMiss: 4, output: 20 },
64
96
  [TERRA]: { cacheHit: 0.2, cacheMiss: 2, output: 12 },
@@ -100,16 +132,18 @@ export function acceptsImages(_model) {
100
132
  /**
101
133
  * Coerce a stored or unknown config onto a model this provider actually serves.
102
134
  *
103
- * There is no per-model rule to enforce here — the family shares one ladder, so an
104
- * unknown model id falls back and an unknown effort clamps, and that is all. The
105
- * result is then snapped onto a rung `/think` actually lists, so a config carried
106
- * in from another provider by `/model` cannot leave the user on a setting the menu
107
- * has no tick beside.
135
+ * Two corrections. A model that cannot skip reasoning is moved onto thinking, at the
136
+ * LIGHTEST rung rather than whatever effort the old config carried: a "no thinking" config
137
+ * arrives from another model with effort `high`, and landing on `high` would spend more of
138
+ * the user's money than the setting they chose. Then the result is snapped onto a rung
139
+ * `/think` actually lists, so a config carried in from another provider by `/model` cannot
140
+ * leave the user on a setting the menu has no tick beside.
108
141
  */
109
142
  export function normalize(config) {
110
143
  const model = PRICES[config.model] ? config.model : DEFAULT_MODEL;
111
- const thinking = config.thinking === true;
112
- const effort = EFFORTS.includes(config.effort) ? config.effort : "high";
144
+ const forcedOn = !canSkipReasoning(model) && config.thinking !== true;
145
+ const thinking = forcedOn || config.thinking === true;
146
+ const effort = forcedOn ? "low" : EFFORTS.includes(config.effort) ? config.effort : "high";
113
147
  return { model, thinking, effort: snapToOfferedRung(model, thinking, effort) };
114
148
  }
115
149
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/openai/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/drivers/openai/manifest.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { metaManifest } from "./meta/manifest.js";
13
13
  import { minimaxManifest } from "./minimax/manifest.js";
14
14
  import { tencentManifest } from "./tencent/manifest.js";
15
15
  import { openrouterManifest } from "./openrouter/manifest.js";
16
+ import { ollamaManifest } from "./ollama/manifest.js";
16
17
  /** Every provider's cheap metadata, in display order. Always loaded. */
17
18
  const MANIFESTS = [
18
19
  deepseekManifest,
@@ -30,6 +31,7 @@ const MANIFESTS = [
30
31
  minimaxManifest,
31
32
  tencentManifest,
32
33
  openrouterManifest,
34
+ ollamaManifest,
33
35
  ];
34
36
  /** How to load each provider's wire code, on demand. Keyed by manifest id. */
35
37
  const LOADERS = {
@@ -48,6 +50,7 @@ const LOADERS = {
48
50
  minimax: async () => (await import("./minimax/index.js")).minimaxDriver,
49
51
  tencent: async () => (await import("./tencent/index.js")).tencentDriver,
50
52
  openrouter: async () => (await import("./openrouter/index.js")).openrouterDriver,
53
+ ollama: async () => (await import("./ollama/index.js")).ollamaDriver,
51
54
  };
52
55
  /** The provider used when a model id doesn't match any other. */
53
56
  const FALLBACK = MANIFESTS[0];
@@ -182,6 +185,10 @@ export async function refreshModels(options = {}) {
182
185
  // A list younger than the caller's tolerance is left alone. A router's catalogue is
183
186
  // a large download, and asking for it on every picker open costs a visible pause
184
187
  // for a list that changes weekly.
188
+ // A local runtime is asked every time: it answers in milliseconds, and its list changes the
189
+ // moment a model is pulled.
190
+ if (m.local)
191
+ return true;
185
192
  const at = refreshedAt.get(m.id);
186
193
  return maxAge <= 0 || at === undefined || now - at >= maxAge;
187
194
  });
@@ -228,6 +235,10 @@ export function seedDiscovered(id, models, fetchedAt) {
228
235
  export function discoveredProviderIds() {
229
236
  return MANIFESTS.filter((m) => m.discoverModels).map((m) => m.id);
230
237
  }
238
+ /** Ids of the providers that run on this machine (a local model server), whose answer is quick and changes at any moment. */
239
+ export function localProviderIds() {
240
+ return MANIFESTS.filter((m) => m.discoverModels && m.local).map((m) => m.id);
241
+ }
231
242
  /** Drop every discovered list. For tests, and for a full provider reset. */
232
243
  export function clearDiscovered() {
233
244
  discovered.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/drivers/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/drivers/registry.ts"],"names":[],"mappings":"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"}