mindweave 2.4.9 → 2.5.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 (86) hide show
  1. package/README.md +145 -144
  2. package/dist/cli/App.js +47 -8
  3. package/dist/cli/App.js.map +1 -1
  4. package/dist/cli/commandArgs.js +7 -1
  5. package/dist/cli/commandArgs.js.map +1 -1
  6. package/dist/cli/commands.js +1 -0
  7. package/dist/cli/commands.js.map +1 -1
  8. package/dist/cli/components/ApprovalBox.js +10 -1
  9. package/dist/cli/components/ApprovalBox.js.map +1 -1
  10. package/dist/cli/components/McpMinitabs.js +1 -1
  11. package/dist/cli/components/Picker.js +1 -1
  12. package/dist/cli/components/Picker.js.map +1 -1
  13. package/dist/cli/components/ToolLine.js +1 -1
  14. package/dist/cli/components/ToolLine.js.map +1 -1
  15. package/dist/cli/feedback.js +223 -0
  16. package/dist/cli/feedback.js.map +1 -0
  17. package/dist/cli/framebuffer/writer.js +1 -1
  18. package/dist/cli/toolDisplay.js +4 -3
  19. package/dist/cli/toolDisplay.js.map +1 -1
  20. package/dist/core/turnRunner.js +366 -0
  21. package/dist/core/turnRunner.js.map +1 -0
  22. package/dist/drivers/anthropic/client.js +77 -21
  23. package/dist/drivers/anthropic/client.js.map +1 -1
  24. package/dist/drivers/anthropic/manifest.js +28 -11
  25. package/dist/drivers/anthropic/manifest.js.map +1 -1
  26. package/dist/drivers/cerebras/manifest.js +7 -1
  27. package/dist/drivers/cerebras/manifest.js.map +1 -1
  28. package/dist/drivers/deepseek/manifest.js +12 -31
  29. package/dist/drivers/deepseek/manifest.js.map +1 -1
  30. package/dist/drivers/glm/manifest.js +18 -5
  31. package/dist/drivers/glm/manifest.js.map +1 -1
  32. package/dist/drivers/kimi/manifest.js +13 -10
  33. package/dist/drivers/kimi/manifest.js.map +1 -1
  34. package/dist/drivers/meta/manifest.js +21 -16
  35. package/dist/drivers/meta/manifest.js.map +1 -1
  36. package/dist/drivers/minimax/manifest.js +15 -12
  37. package/dist/drivers/minimax/manifest.js.map +1 -1
  38. package/dist/drivers/openai/manifest.js +24 -7
  39. package/dist/drivers/openai/manifest.js.map +1 -1
  40. package/dist/drivers/qwen/manifest.js +19 -6
  41. package/dist/drivers/qwen/manifest.js.map +1 -1
  42. package/dist/drivers/xai/client.js +12 -10
  43. package/dist/drivers/xai/client.js.map +1 -1
  44. package/dist/drivers/xai/manifest.js +62 -25
  45. package/dist/drivers/xai/manifest.js.map +1 -1
  46. package/dist/dynamo/engine.js +179 -99
  47. package/dist/dynamo/engine.js.map +1 -1
  48. package/dist/governor/skills.js +1 -1
  49. package/dist/governor/write.js +61 -0
  50. package/dist/governor/write.js.map +1 -1
  51. package/dist/mcp/configWrite.js +1 -1
  52. package/dist/memory/compaction.js +10 -2
  53. package/dist/memory/compaction.js.map +1 -1
  54. package/dist/memory/store.js +8 -1
  55. package/dist/memory/store.js.map +1 -1
  56. package/dist/tools/backgroundShells.js +4 -3
  57. package/dist/tools/backgroundShells.js.map +1 -1
  58. package/dist/tools/deferredNative.js +13 -4
  59. package/dist/tools/deferredNative.js.map +1 -1
  60. package/dist/tools/detail.js +9 -6
  61. package/dist/tools/detail.js.map +1 -1
  62. package/dist/tools/edit.js +2 -1
  63. package/dist/tools/edit.js.map +1 -1
  64. package/dist/tools/governorTools.js +113 -9
  65. package/dist/tools/governorTools.js.map +1 -1
  66. package/dist/tools/mcpAdd.js +87 -4
  67. package/dist/tools/mcpAdd.js.map +1 -1
  68. package/dist/tools/mcpSearch.js +5 -4
  69. package/dist/tools/mcpSearch.js.map +1 -1
  70. package/dist/tools/mindweaveStatus.js +113 -0
  71. package/dist/tools/mindweaveStatus.js.map +1 -0
  72. package/dist/tools/nativeStderr.js +27 -0
  73. package/dist/tools/nativeStderr.js.map +1 -0
  74. package/dist/tools/registry.js +6 -4
  75. package/dist/tools/registry.js.map +1 -1
  76. package/dist/tools/replaceSymbol.js +2 -1
  77. package/dist/tools/replaceSymbol.js.map +1 -1
  78. package/dist/tools/runCommand.js +59 -21
  79. package/dist/tools/runCommand.js.map +1 -1
  80. package/dist/tools/screenshot.js +17 -4
  81. package/dist/tools/screenshot.js.map +1 -1
  82. package/dist/tools/todo.js +5 -5
  83. package/dist/tools/todo.js.map +1 -1
  84. package/dist/tools/writeFile.js +2 -1
  85. package/dist/tools/writeFile.js.map +1 -1
  86. package/package.json +7 -3
@@ -0,0 +1,366 @@
1
+ /**
2
+ * turnRunner.ts — drives one Mindweave turn for a caller that is not a terminal.
3
+ *
4
+ * `respond()` in dynamo/engine.ts already speaks nothing but plain JSON: a Session in,
5
+ * a stream of EngineEvents out, no filesystem or terminal coupling of its own (see
6
+ * dynamo/README.md). What the CLI adds on top is the reveal pacer that times each event
7
+ * onto the alt-screen — real UI concerns, of no use to a caller that draws its own
8
+ * chat. This module is the other front door: it maps the same events into a plain
9
+ * TurnEvent stream (the tool display names and colours come from cli/toolDisplay.ts,
10
+ * so a tool call reads the same way in every surface) with no Ink, no pacing, no
11
+ * terminal assumptions. A GUI or a server can drive a session with just this file.
12
+ */
13
+ import { respond } from "../dynamo/engine.js";
14
+ import { createSession, resumeSession, reloadProjectMemory } from "../memory/session.js";
15
+ import { saveSession, listSessions as listSessionsRaw } from "../memory/store.js";
16
+ import { toolDisplay, isGroupable } from "../cli/toolDisplay.js";
17
+ import { accessRefusal, providerOutage } from "../drivers/providerError.js";
18
+ import { providerOf, modelLabel, refreshModels, DISCOVERY_TTL_MS, withModel, saveModelConfig, thinkLevels, thinkLabel } from "../dynamo/model.js";
19
+ import { allProviders, modelsOf } from "../drivers/registry.js";
20
+ import { errText } from "../tools/editTarget.js";
21
+ import { loadConfig, hasApiKey, saveApiKey, removeApiKey } from "../cli/bootstrap.js";
22
+ import { describeImage, isRejection } from "../memory/images.js";
23
+ import { stat } from "node:fs/promises";
24
+ import { RECAP_STUB } from "../memory/compaction.js";
25
+ import { stopChassis } from "../alternator/lane.js";
26
+ import { APPROVAL_TEXT, APPROVAL_DISMISSED } from "../tools/approval.js";
27
+ import { MODES, DEFAULT_MODE, modeById, modeFromFlags } from "../cli/modes.js";
28
+ /**
29
+ * The interaction modes (Lightning/Architect/Sentinel) — a client concept, same
30
+ * pure data/functions the CLI's shift-tab indicator uses (cli/modes.ts). The
31
+ * engine never sees a mode name, only the `planMode`/`guarded` flags it implies.
32
+ */
33
+ export { MODES, DEFAULT_MODE, modeById, modeFromFlags };
34
+ /**
35
+ * `requestApproval`'s resolved string is a plain option label UNLESS the caller
36
+ * offered `freeText`: a typed answer comes back prefixed with `APPROVAL_TEXT`
37
+ * (strip it to get what was typed), and a dialog closed with no choice made should
38
+ * resolve to `APPROVAL_DISMISSED` exactly, never an empty string or a thrown error.
39
+ */
40
+ export { APPROVAL_TEXT, APPROVAL_DISMISSED };
41
+ /**
42
+ * Load the API key(s) into process.env — the same global `~/.mindweave/.env` /
43
+ * project `.env` / shell-env layering the CLI uses (see cli/bootstrap.ts). Call
44
+ * this once, at startup, before the first `startSession`.
45
+ */
46
+ export { loadConfig };
47
+ /**
48
+ * Every installed provider — the real registry (drivers/registry.ts), not a
49
+ * decorative list — with whether a key is already on file for it and the
50
+ * models it currently offers. Call `refreshDiscoveredModels()` first if the
51
+ * caller wants a discovered provider's (e.g. OpenRouter's) list fully current.
52
+ */
53
+ export function providerSummaries() {
54
+ return allProviders().map((p) => ({
55
+ id: p.id,
56
+ label: p.label,
57
+ apiKeyEnv: p.apiKeyEnv,
58
+ keysUrl: p.keysUrl,
59
+ connected: hasApiKey(p.apiKeyEnv),
60
+ models: modelsOf(p).map((m) => ({ id: m.id, label: m.label, description: m.description })),
61
+ }));
62
+ }
63
+ /** Pull fresh model lists for providers that discover theirs live (OpenRouter and
64
+ * any local-runtime provider) — same TTL the CLI's own picker uses. */
65
+ export function refreshDiscoveredModels() {
66
+ return refreshModels({ maxAgeMs: DISCOVERY_TTL_MS });
67
+ }
68
+ /** Save a key for a provider (slot 1 — the primary key). Takes effect immediately;
69
+ * no restart needed, same as the CLI's `/key`. */
70
+ export function setProviderKey(apiKeyEnv, key) {
71
+ saveApiKey(apiKeyEnv, key);
72
+ }
73
+ /** Remove the stored key at slot 1. A provider with no key on file falls back to
74
+ * whatever `requestApproval`-less refusal path its driver already has. */
75
+ export function clearProviderKey(apiKeyEnv) {
76
+ removeApiKey(apiKeyEnv, 1);
77
+ }
78
+ /** The model driving a session's NEXT turn — read after `setSessionModel`, or at
79
+ * session load, to show the composer's picker the model that's actually active. */
80
+ export function sessionModel(session) {
81
+ const id = session.modelConfig.model;
82
+ const manifest = providerOf(id);
83
+ return { id, label: modelLabel(id), providerId: manifest.id, providerLabel: manifest.label };
84
+ }
85
+ /**
86
+ * Switch a live session onto a different model, mid-conversation — the same thing
87
+ * `/model` does in the CLI. Synchronous onto the session (the next `runTurn` picks
88
+ * it up automatically; `ensureDriver` inside `respond()` loads that provider's wire
89
+ * code lazily, same as any other model choice), and persisted so the choice survives
90
+ * a restart. `withModel` also clamps the reasoning level onto whatever ladder the
91
+ * new model actually offers, so a thinking-heavy setting doesn't silently misfire
92
+ * on a model that has no such dial.
93
+ */
94
+ export async function setSessionModel(session, model) {
95
+ session.modelConfig = withModel(session.modelConfig, model);
96
+ await saveModelConfig(session.cwd, session.modelConfig);
97
+ }
98
+ /**
99
+ * The `/think` ladder for a session's CURRENT model, and which rung it's on now.
100
+ * Every model has its own ladder shape — DeepSeek is Standard/High/Maximum,
101
+ * Gemini is Standard/Thinking/Maximum, some models can't turn thinking off at
102
+ * all — so a fixed three-option Off/Standard/Extended picker is wrong for most
103
+ * of them. This is what the composer's thinking picker should build itself from,
104
+ * fresh, every time the model changes.
105
+ */
106
+ export function sessionThinkLevels(session) {
107
+ return { levels: thinkLevels(session.modelConfig.model), current: thinkLabel(session.modelConfig) };
108
+ }
109
+ /** Switch a live session onto a different rung of its model's OWN reasoning
110
+ * ladder — the same thing `/think` does in the CLI. Persisted like a model
111
+ * switch; takes effect on the next turn. */
112
+ export async function setSessionThinking(session, level) {
113
+ session.modelConfig = { ...session.modelConfig, thinking: level.thinking, effort: level.effort };
114
+ await saveModelConfig(session.cwd, session.modelConfig);
115
+ }
116
+ /** Start a brand-new session rooted at `cwd` — one per open project/window. */
117
+ export function startSession(cwd) {
118
+ return createSession(cwd);
119
+ }
120
+ /** Reopen a session that was saved earlier, so a chat window can be closed and reopened. */
121
+ export function loadSession(cwd, sessionId) {
122
+ return resumeSession(cwd, sessionId);
123
+ }
124
+ /**
125
+ * Release a session's live resources — background shells, MCP server processes,
126
+ * chassis (LSP) instances — before switching away from it. Same cleanup as the
127
+ * CLI's `stopCurrentLanes`: these are child processes / open handles the session
128
+ * owns, not garbage-collectable state, so leaving them running across a switch
129
+ * leaks a process pool per session swapped away from.
130
+ */
131
+ export async function disposeSession(session) {
132
+ const ctx = session.toolContext;
133
+ ctx.backgroundShells?.dispose();
134
+ await ctx.mcp?.dispose();
135
+ for (const ch of ctx.chassisByRoot?.values() ?? (ctx.chassis ? [ctx.chassis] : [])) {
136
+ await stopChassis(ch);
137
+ }
138
+ }
139
+ /** Every saved session for a project, most-recent first — for a session picker. */
140
+ export async function listSessions(cwd) {
141
+ const metas = await listSessionsRaw(cwd);
142
+ return [...metas].sort((a, b) => b.updatedAt - a.updatedAt);
143
+ }
144
+ /** Compaction appends "[<paths> was attached here but is no longer in context …]" to a
145
+ * user message whose image it evicted (see IMAGE_CLEARED_STUB; older sessions carry an
146
+ * earlier wording). That note is for the MODEL. Replay shows the person their own words,
147
+ * plus which attachments have expired. */
148
+ const EXPIRED_IMAGE_NOTE = /\s*\[([^[\]]+?) was attached here but is no longer in context[^\]]*\]/g;
149
+ function splitExpiredImages(content) {
150
+ const expired = [];
151
+ const text = content.replace(EXPIRED_IMAGE_NOTE, (_m, names) => {
152
+ for (const n of names.split(", "))
153
+ expired.push(n.split(/[\\/]/).pop() ?? n);
154
+ return "";
155
+ });
156
+ return expired.length ? { text: text.trimEnd(), expiredImages: expired } : { text: content };
157
+ }
158
+ /**
159
+ * Turn a loaded session's stored transcript back into the same shape the live
160
+ * TurnEvent stream uses, so a session switch in the UI can redraw the whole
161
+ * conversation with the one set of renderers instead of a second code path.
162
+ * A synthetic user entry (an internal nudge, never typed by the person) is
163
+ * skipped — see Entry's `synthetic` field.
164
+ */
165
+ export function replayHistory(session) {
166
+ const calls = new Map();
167
+ const out = [];
168
+ for (const entry of session.transcript) {
169
+ if (entry.role === "user") {
170
+ if (!entry.synthetic)
171
+ out.push({ type: "userMessage", ...splitExpiredImages(entry.content) });
172
+ }
173
+ else if (entry.role === "assistant") {
174
+ // RECAP_STUB is compaction's note to the MODEL that an old status reply was
175
+ // condensed; it is not something the agent said, so it is never shown.
176
+ if (entry.content.trim() && entry.content !== RECAP_STUB)
177
+ out.push({ type: "assistantMessage", text: entry.content });
178
+ for (const call of entry.toolCalls ?? [])
179
+ calls.set(call.id, call);
180
+ }
181
+ else if (entry.role === "tool") {
182
+ const call = calls.get(entry.toolCallId);
183
+ if (entry.quiet)
184
+ continue;
185
+ // The same display name a live toolStart carries ("Run", "Read"), not the raw
186
+ // tool id — a reopened session was showing `run_command` where the live one said Run.
187
+ let name = entry.displayName ?? call?.name ?? "tool";
188
+ let arg;
189
+ let kind = entry.displayKind ?? "meta";
190
+ if (call) {
191
+ const d = toolDisplay(call.name, safeParseArgs(call.arguments));
192
+ if (!entry.displayName)
193
+ name = d.name;
194
+ arg = d.arg;
195
+ if (!entry.displayKind)
196
+ kind = d.kind;
197
+ }
198
+ out.push({
199
+ type: "toolReplay",
200
+ name,
201
+ arg,
202
+ kind,
203
+ ok: !entry.isError,
204
+ summary: entry.summary ?? entry.content,
205
+ detail: entry.detail,
206
+ detailKind: entry.detailKind,
207
+ });
208
+ }
209
+ else if (entry.role === "summary") {
210
+ out.push({ type: "compactionSummary", text: entry.content });
211
+ }
212
+ }
213
+ return out;
214
+ }
215
+ /** Resolve dropped/attached file paths into ImageRefs, same checks the CLI applies
216
+ * (format, size, dimensions). A rejected file is reported through `onEvent` and
217
+ * otherwise just left out — it never blocks the rest of the message from sending. */
218
+ async function resolveImages(paths, onEvent) {
219
+ const refs = [];
220
+ for (const path of paths) {
221
+ try {
222
+ const st = await stat(path);
223
+ const described = await describeImage(path, st.size);
224
+ if (isRejection(described))
225
+ onEvent({ type: "activity", line: `${path}: ${described.reason}`, error: true });
226
+ else
227
+ refs.push(described);
228
+ }
229
+ catch {
230
+ onEvent({ type: "activity", line: `${path}: couldn't read that file`, error: true });
231
+ }
232
+ }
233
+ return refs;
234
+ }
235
+ function safeParseArgs(raw) {
236
+ try {
237
+ return JSON.parse(raw);
238
+ }
239
+ catch {
240
+ return {};
241
+ }
242
+ }
243
+ /**
244
+ * Wire the client-side channels a session needs beyond `respond()` itself — the
245
+ * same seam App.tsx's `attachApproval` fills for the CLI. Without `requestApproval`
246
+ * every approval call fails CLOSED (see tools/approval.ts): reads and in-workspace
247
+ * writes still work, but a forbidden-path lift, a write outside the workspace, an
248
+ * ask_user question, or reading another agent's data all get refused outright
249
+ * instead of asking. Call this once per session, right after `startSession` /
250
+ * `loadSession`, before the first `runTurn`.
251
+ */
252
+ export function attachHandlers(session, handlers) {
253
+ if (handlers.requestApproval)
254
+ session.toolContext.requestApproval = handlers.requestApproval;
255
+ if (handlers.interrupt)
256
+ session.toolContext.interrupt = handlers.interrupt;
257
+ if (handlers.onModeChange)
258
+ session.toolContext.onModeChange = handlers.onModeChange;
259
+ }
260
+ /** The mode a session's CURRENT flags amount to — read after load, or after
261
+ * `onModeChange` fires, to show the UI what's actually active. */
262
+ export function sessionMode(session) {
263
+ return modeFromFlags(session.toolContext);
264
+ }
265
+ /**
266
+ * Switch a session's interaction mode — same thing shift-tab does in the CLI.
267
+ * A client concept: sets the `planMode`/`guarded` flags the engine reads, never
268
+ * anything the engine itself knows the name of. Entering Sentinel clears any
269
+ * earlier per-tool grants, so it starts genuinely vigilant rather than carrying
270
+ * over permissions given under a looser mode.
271
+ */
272
+ export function applySessionMode(session, id) {
273
+ const mode = modeById(id);
274
+ session.toolContext.planMode = mode.readOnly;
275
+ session.toolContext.guarded = mode.guarded;
276
+ if (mode.guarded)
277
+ session.toolContext.guardAllowed = undefined;
278
+ }
279
+ /**
280
+ * Run one turn: append the user's message, stream the reply, persist after every step.
281
+ * Mirrors App.tsx's streamRespond — same event mapping, without the reveal pacer.
282
+ */
283
+ export async function runTurn(session, message, handlers) {
284
+ await reloadProjectMemory(session).catch(() => { });
285
+ const images = await resolveImages(message.imagePaths ?? [], handlers.onEvent);
286
+ session.transcript.push({
287
+ role: "user",
288
+ content: message.content,
289
+ ...(images.length > 0 ? { images } : {}),
290
+ });
291
+ await streamTurn(session, handlers);
292
+ }
293
+ /**
294
+ * Continue a session with NO new message — the engine notices what changed on its
295
+ * own (a background shell finished) from state already on the session. Mirrors the
296
+ * CLI's `reactToBackground`: it calls the exact same `streamRespond` a typed message
297
+ * would, just without anything new having been said.
298
+ */
299
+ export function continueTurn(session, handlers) {
300
+ return streamTurn(session, handlers);
301
+ }
302
+ /** Re-export of the CLI's own wake decision (cli/backgroundWake.ts) — plain state in,
303
+ * boolean out, no Ink involved — so a caller can reuse the exact same rule for when a
304
+ * finished background command is worth waking the model for. */
305
+ export { shouldReactToBackground } from "../cli/backgroundWake.js";
306
+ async function streamTurn(session, handlers) {
307
+ const { onEvent, steer, signal } = handlers;
308
+ try {
309
+ await respond(session, {
310
+ steer,
311
+ signal,
312
+ onActivity: (line, opts) => onEvent({ type: "activity", line, error: opts?.error }),
313
+ onCompaction: (report) => onEvent({ type: "compaction", before: report.before, after: report.after, window: report.window }),
314
+ onEvent: (e) => {
315
+ if (e.type === "text") {
316
+ onEvent({ type: "text", delta: e.delta });
317
+ }
318
+ else if (e.type === "tool" && e.phase === "start") {
319
+ if (e.name === "spawn_subagent")
320
+ return; // rendered by the subagentStart block, not a raw row
321
+ const d = toolDisplay(e.name, e.args);
322
+ if (e.agent) {
323
+ onEvent({ type: "subToolStart", agentId: e.agent, toolId: e.id, name: d.name, arg: d.arg, kind: d.kind });
324
+ }
325
+ else {
326
+ onEvent({ type: "toolStart", id: e.id, name: d.name, arg: d.arg, kind: d.kind, group: isGroupable(e.name), ...(d.covers ? { covers: d.covers } : {}) });
327
+ }
328
+ }
329
+ else if (e.type === "tool" && e.phase === "end") {
330
+ if (e.name === "spawn_subagent")
331
+ return;
332
+ if (e.agent) {
333
+ onEvent({ type: "subToolEnd", agentId: e.agent, toolId: e.id, ok: !e.error, summary: e.summary });
334
+ }
335
+ else {
336
+ onEvent({ type: "toolEnd", id: e.id, ok: !e.error, summary: e.summary, detail: e.detail, detailFull: e.detailFull, detailKind: e.detailKind, quiet: e.quiet });
337
+ }
338
+ }
339
+ else if (e.type === "subagent" && e.phase === "start") {
340
+ onEvent({ type: "subagentStart", id: e.id, task: e.task, readOnly: e.readOnly });
341
+ }
342
+ else if (e.type === "subagent" && e.phase === "end") {
343
+ onEvent({ type: "subagentEnd", id: e.id, ok: !e.error, summary: e.summary });
344
+ }
345
+ else if (e.type === "usage") {
346
+ onEvent({ type: "usage", promptTokens: e.promptTokens, completionTokens: e.completionTokens, totalTokens: e.totalTokens });
347
+ }
348
+ },
349
+ persist: () => saveSession(session),
350
+ });
351
+ onEvent({ type: "done" });
352
+ }
353
+ catch (error) {
354
+ const refusal = accessRefusal(error, providerOf(session.modelConfig.model).label, false) ??
355
+ providerOutage(error, providerOf(session.modelConfig.model).label, modelLabel(session.modelConfig.model));
356
+ if (refusal)
357
+ onEvent({ type: "notice", title: refusal.title, body: refusal.body });
358
+ else
359
+ onEvent({ type: "error", text: errText(error) });
360
+ onEvent({ type: "done" });
361
+ }
362
+ finally {
363
+ await saveSession(session);
364
+ }
365
+ }
366
+ //# sourceMappingURL=turnRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turnRunner.js","sourceRoot":"","sources":["../../src/core/turnRunner.ts"],"names":[],"mappings":"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"}
@@ -231,7 +231,14 @@ export function thinkingBudget(maxTokens) {
231
231
  function applyReasoning(body, model, cfg, maxTokens) {
232
232
  const surface = surfaceOf(model);
233
233
  if (!surface.canDisableThinking) {
234
- // Omit `thinking` entirely — the model is always thinking regardless.
234
+ // The model is always thinking; `disabled` and a token budget are both 400s.
235
+ // `adaptive` is its own mode restated, and is sent only to ask for the text of
236
+ // its between-tool-call progress updates, which is empty by default. Reasoning
237
+ // stays hidden under `updates`. See `progressRequestOptions` for the beta header.
238
+ if (surface.progressUpdates) {
239
+ // The SDK's types predate the `updates` value; the wire accepts it with the header.
240
+ body.thinking = { type: "adaptive", display: "updates" };
241
+ }
235
242
  }
236
243
  else if (!surface.takesEffort) {
237
244
  const budget = thinkingBudget(maxTokens);
@@ -244,6 +251,14 @@ function applyReasoning(body, model, cfg, maxTokens) {
244
251
  if (surface.takesEffort)
245
252
  body.output_config = { effort: cfg?.effort ?? "high" };
246
253
  }
254
+ /** The beta that makes `thinking.display: "updates"` legal. Without it that value is a 400. */
255
+ export const PROGRESS_UPDATES_BETA = "thinking-display-updates-2026-08-18";
256
+ /** Per-request options for a body from `buildBody`: the beta header rides along exactly
257
+ * when the body asks for progress updates, so the two can never disagree. */
258
+ export function progressRequestOptions(body, signal) {
259
+ const updates = body.thinking?.display === "updates";
260
+ return { signal, ...(updates ? { headers: { "anthropic-beta": PROGRESS_UPDATES_BETA } } : {}) };
261
+ }
247
262
  export function buildBody(req, maxTokens) {
248
263
  const cfg = req.model;
249
264
  const { messages, extraSystem } = renderMessages(req);
@@ -321,13 +336,36 @@ export function toStop(reason) {
321
336
  return "end";
322
337
  }
323
338
  }
324
- /** Pull the assembled reply and tool calls out of a finished message. */
325
- export function toTurn(message) {
339
+ /** What goes between a progress update and the text on either side of it: enough to
340
+ * make a paragraph break, and nothing if one is already there. */
341
+ export function paragraphBreak(before) {
342
+ if (!before || before.endsWith("\n\n"))
343
+ return "";
344
+ return before.endsWith("\n") ? "\n" : "\n\n";
345
+ }
346
+ /**
347
+ * Pull the assembled reply and tool calls out of a finished message.
348
+ *
349
+ * On a model with `progressUpdates`, a `thinking` block that carries text is a
350
+ * progress update (the request asked for `display: "updates"`, under which reasoning
351
+ * comes back empty), and it is part of the reply: the note the model wrote for the
352
+ * user before a tool call. It is kept as reply text, a paragraph of its own, exactly
353
+ * as `emit` streamed it, so the stored reply matches what was on screen.
354
+ */
355
+ export function toTurn(message, progressUpdates = surfaceOf(message.model).progressUpdates) {
326
356
  let content = "";
357
+ let afterUpdate = false;
327
358
  const toolCalls = [];
328
359
  for (const block of message.content) {
329
360
  if (block.type === "text") {
361
+ if (afterUpdate)
362
+ content += paragraphBreak(content);
330
363
  content += block.text;
364
+ afterUpdate = false;
365
+ }
366
+ else if (block.type === "thinking" && progressUpdates && block.thinking) {
367
+ content += paragraphBreak(content) + block.thinking;
368
+ afterUpdate = true;
331
369
  }
332
370
  else if (block.type === "tool_use") {
333
371
  toolCalls.push({
@@ -337,8 +375,8 @@ export function toTurn(message) {
337
375
  arguments: JSON.stringify(block.input ?? {}),
338
376
  });
339
377
  }
340
- // `thinking` blocks are deliberately dropped: reasoning reaches the live UI as
341
- // deltas, never the stored transcript.
378
+ // Reasoning `thinking` blocks are deliberately dropped: reasoning reaches the live
379
+ // UI as deltas, never the stored transcript.
342
380
  }
343
381
  return { content, toolCalls, stop: toStop(message.stop_reason) };
344
382
  }
@@ -367,9 +405,8 @@ export async function webSearch(query, options = {}) {
367
405
  /** Ask the model for one turn. Usage rides back with it: these are core's internal
368
406
  * calls, and they spend real tokens that the meter would otherwise never see. */
369
407
  export async function toolTurn(req, options = {}) {
370
- const message = await api().messages.create(buildBody(req, MAX_TOKENS_BUFFERED), {
371
- signal: options.signal,
372
- });
408
+ const body = buildBody(req, MAX_TOKENS_BUFFERED);
409
+ const message = await api().messages.create(body, progressRequestOptions(body, options.signal));
373
410
  return { ...toTurn(message), usage: toUsage(message.usage) };
374
411
  }
375
412
  /**
@@ -379,20 +416,16 @@ export async function toolTurn(req, options = {}) {
379
416
  * call's JSON), so nothing here has to reassemble fragmented arguments by hand.
380
417
  */
381
418
  export async function streamTurn(req, options = {}) {
382
- const stream = api().messages.stream(buildBody(req, MAX_TOKENS_STREAM), {
383
- signal: options.signal,
384
- });
419
+ const body = buildBody(req, MAX_TOKENS_STREAM);
420
+ const stream = api().messages.stream(body, progressRequestOptions(body, options.signal));
385
421
  // Accumulated alongside the emit so a stream that dies partway can still hand back
386
422
  // what the user watched arrive. Only the onEvent path needs it: with no sink nothing
387
423
  // reached the screen, so there is no visible reply to keep in step with.
388
- let seen = "";
424
+ const reply = replyStream(surfaceOf(body.model).progressUpdates);
389
425
  try {
390
426
  if (options.onEvent) {
391
- for await (const event of stream) {
392
- if (event.type === "content_block_delta" && event.delta.type === "text_delta")
393
- seen += event.delta.text;
394
- emit(event, options.onEvent);
395
- }
427
+ for await (const event of stream)
428
+ emit(event, options.onEvent, reply);
396
429
  }
397
430
  const message = await stream.finalMessage();
398
431
  return { ...toTurn(message), usage: toUsage(message.usage) };
@@ -400,15 +433,18 @@ export async function streamTurn(req, options = {}) {
400
433
  catch (error) {
401
434
  if (isAbortLike(error))
402
435
  throw error;
403
- return salvagePartialTurn(seen, error);
436
+ return salvagePartialTurn(reply.text, error);
404
437
  }
405
438
  }
439
+ export function replyStream(progressUpdates) {
440
+ return { progressUpdates, text: "", block: -1, afterUpdate: false };
441
+ }
406
442
  /**
407
443
  * Map one streaming event onto the shared event shape. Anthropic streams blocks
408
444
  * rather than a flat delta channel, so a tool call announces itself with a
409
445
  * `content_block_start` and then streams its arguments as `input_json_delta`.
410
446
  */
411
- export function emit(event, onEvent) {
447
+ export function emit(event, onEvent, reply) {
412
448
  if (event.type === "content_block_start") {
413
449
  const block = event.content_block;
414
450
  if (block.type === "tool_use") {
@@ -420,10 +456,30 @@ export function emit(event, onEvent) {
420
456
  return;
421
457
  const delta = event.delta;
422
458
  if (delta.type === "text_delta" && delta.text) {
423
- onEvent({ type: "text", delta: delta.text });
459
+ let text = delta.text;
460
+ if (reply) {
461
+ if (reply.afterUpdate && reply.block !== event.index)
462
+ text = paragraphBreak(reply.text) + text;
463
+ reply.afterUpdate = false;
464
+ reply.block = event.index;
465
+ reply.text += text;
466
+ }
467
+ onEvent({ type: "text", delta: text });
424
468
  }
425
469
  else if (delta.type === "thinking_delta" && delta.thinking) {
426
- onEvent({ type: "reasoning", delta: delta.thinking });
470
+ if (reply?.progressUpdates) {
471
+ // A progress update — the same rule `toTurn` applies, so screen and transcript agree.
472
+ let text = delta.thinking;
473
+ if (reply.block !== event.index)
474
+ text = paragraphBreak(reply.text) + text;
475
+ reply.afterUpdate = true;
476
+ reply.block = event.index;
477
+ reply.text += text;
478
+ onEvent({ type: "text", delta: text });
479
+ }
480
+ else {
481
+ onEvent({ type: "reasoning", delta: delta.thinking });
482
+ }
427
483
  }
428
484
  else if (delta.type === "input_json_delta" && delta.partial_json) {
429
485
  onEvent({ type: "tool_args", index: event.index, delta: delta.partial_json });
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/drivers/anthropic/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/drivers/anthropic/client.ts"],"names":[],"mappings":"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"}