@markusylisiurunen/tau 0.2.17 → 0.2.18

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 (50) hide show
  1. package/README.md +11 -2
  2. package/dist/core/commands/registry.js +6 -6
  3. package/dist/core/commands/registry.js.map +1 -1
  4. package/dist/core/prompts.js +3 -1
  5. package/dist/core/prompts.js.map +1 -1
  6. package/dist/core/tools/bash.js +114 -130
  7. package/dist/core/tools/bash.js.map +1 -1
  8. package/dist/core/tools/edit.js +11 -17
  9. package/dist/core/tools/edit.js.map +1 -1
  10. package/dist/core/tools/execution_backend.js +31 -59
  11. package/dist/core/tools/execution_backend.js.map +1 -1
  12. package/dist/core/tools/grep.js +36 -87
  13. package/dist/core/tools/grep.js.map +1 -1
  14. package/dist/core/tools/list.js +20 -45
  15. package/dist/core/tools/list.js.map +1 -1
  16. package/dist/core/tools/read.js +35 -55
  17. package/dist/core/tools/read.js.map +1 -1
  18. package/dist/core/tools/registry.js.map +1 -1
  19. package/dist/core/tools/sandbox/docker_sandbox.js +2 -0
  20. package/dist/core/tools/sandbox/docker_sandbox.js.map +1 -1
  21. package/dist/core/tools/send_input_to_agent.js +1 -0
  22. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  23. package/dist/core/tools/spawn_agent.js +1 -0
  24. package/dist/core/tools/spawn_agent.js.map +1 -1
  25. package/dist/core/tools/subagent_ui.js +5 -2
  26. package/dist/core/tools/subagent_ui.js.map +1 -1
  27. package/dist/core/tools/terminate_agent.js +1 -0
  28. package/dist/core/tools/terminate_agent.js.map +1 -1
  29. package/dist/core/tools/view_image.js +10 -16
  30. package/dist/core/tools/view_image.js.map +1 -1
  31. package/dist/core/tools/wait_for_agent.js +32 -35
  32. package/dist/core/tools/wait_for_agent.js.map +1 -1
  33. package/dist/core/tools/web_fetch.js +21 -8
  34. package/dist/core/tools/web_fetch.js.map +1 -1
  35. package/dist/core/tools/web_search.js +21 -8
  36. package/dist/core/tools/web_search.js.map +1 -1
  37. package/dist/core/tools/write.js +9 -21
  38. package/dist/core/tools/write.js.map +1 -1
  39. package/dist/core/utils/spawn_capture.js +60 -15
  40. package/dist/core/utils/spawn_capture.js.map +1 -1
  41. package/dist/core/utils/tool_preview.js +32 -4
  42. package/dist/core/utils/tool_preview.js.map +1 -1
  43. package/dist/core/utils/truncate.js +87 -48
  44. package/dist/core/utils/truncate.js.map +1 -1
  45. package/dist/core/version.js +1 -1
  46. package/dist/tui/chat_controller.js +6 -7
  47. package/dist/tui/chat_controller.js.map +1 -1
  48. package/dist/tui/ui/tool_ui_registry.js +2 -0
  49. package/dist/tui/ui/tool_ui_registry.js.map +1 -1
  50. package/package.json +1 -1
package/README.md CHANGED
@@ -282,8 +282,8 @@ tau supports slash commands for common actions:
282
282
  | `/checkpoint` | save a checkpoint file for loading later |
283
283
  | `/reload` | reload personas, prompts, skills, and themes from disk |
284
284
  | `/cd <path>` | change the working directory |
285
- | `/compact:only-summary` | compress history and continue with a summary |
286
- | `/compact:with-last-turn` | compress history but keep the last exchange |
285
+ | `/compact:only-summary [prompt]` | compress history and continue with a summary |
286
+ | `/compact:with-last-turn [prompt]` | compress history but keep the last exchange |
287
287
  | `/prune:earliest-first [fraction]` | prune tool results from the start of the session |
288
288
  | `/prune:largest-first [fraction]` | prune largest tool results first |
289
289
  | `/persona:<id>` | switch to a different persona |
@@ -490,6 +490,15 @@ the model sees your messages, any file contents you've shared, and the results o
490
490
 
491
491
  tool calls are displayed in the UI so you can see exactly what the model is doing. use `ctrl+o` to toggle between compact and detailed views.
492
492
 
493
+ ## tool output truncation
494
+
495
+ tool output is truncated using a `bytes / 6` token heuristic (shown as `…N tokens truncated…`).
496
+
497
+ - **bash (assistant)**: 4,096 token limit. if output exceeds this and `maxOutputTokens` is unset, output is middle-truncated to a 512-token gated preview. re-run with `maxOutputTokens` set to 4,096-16,384; if the user explicitly requests more, it may be set up to 65,536 (user requests are checked). bash captures the last 1MB of output.
498
+ - **bash (user `!`)**: 65,536 token limit.
499
+ - **read/grep**: capture the first 1MB of output, then cap to 8,192 tokens by keeping the start and truncating the tail, with a note to read smaller chunks or narrow the search.
500
+ - **web_search/web_fetch**: large responses are middle-truncated to their token limits (8,192 / 16,384 tokens).
501
+
493
502
  ## creating a release
494
503
 
495
504
  publishing to npm happens automatically via github actions when a github release is published.
@@ -187,7 +187,7 @@ export function createCommandRegistry() {
187
187
  });
188
188
  registry.register({
189
189
  id: "compactOnlySummary",
190
- usage: "/compact:only-summary",
190
+ usage: "/compact:only-summary [prompt]",
191
191
  description: "summarize and start new session",
192
192
  autocompleteDescription: "compact history to a summary",
193
193
  argument: "none",
@@ -202,7 +202,7 @@ export function createCommandRegistry() {
202
202
  });
203
203
  registry.register({
204
204
  id: "compactSummaryAndLastTurn",
205
- usage: "/compact:with-last-turn",
205
+ usage: "/compact:with-last-turn [prompt]",
206
206
  description: "summarize and include previous last turn",
207
207
  autocompleteDescription: "compact history, keep last turn",
208
208
  argument: "none",
@@ -217,7 +217,7 @@ export function createCommandRegistry() {
217
217
  });
218
218
  registry.register({
219
219
  id: "pruneEarliestFirst",
220
- usage: "/prune:earliest-first [fraction]",
220
+ usage: "/prune:earliest-first [frac]",
221
221
  description: "prune earliest tool results from context",
222
222
  autocompleteDescription: "prune earliest tool results",
223
223
  argument: "none",
@@ -232,7 +232,7 @@ export function createCommandRegistry() {
232
232
  });
233
233
  registry.register({
234
234
  id: "pruneLargestFirst",
235
- usage: "/prune:largest-first [fraction]",
235
+ usage: "/prune:largest-first [frac]",
236
236
  description: "prune largest tool results from context",
237
237
  autocompleteDescription: "prune largest tool results",
238
238
  argument: "none",
@@ -248,8 +248,8 @@ export function createCommandRegistry() {
248
248
  registry.register({
249
249
  id: "reload",
250
250
  usage: "/reload",
251
- description: "reload prompts, skills, themes, bash commands, and AGENTS.md from disk",
252
- autocompleteDescription: "reload prompts, skills, themes, bash commands, and AGENTS.md from disk",
251
+ description: "reload prompts, skills, themes, bash commands, and AGENTS.md",
252
+ autocompleteDescription: "reload prompts, skills, themes, bash commands, and AGENTS.md",
253
253
  argument: "none",
254
254
  section: "base",
255
255
  parse: (raw) => {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/commands/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/commands/registry.ts"],"names":[],"mappings":"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"}
@@ -152,6 +152,8 @@ What to review: {{review_scope}}
152
152
 
153
153
  Read the diff carefully. When you need more context (surrounding code, related functions, type definitions), use additional commands: \`cat\`, \`rg\`, \`sed -n '<start>,<end>p'\`, or similar. Fetch only what you need to evaluate the change. If referenced code falls outside what you can access, note that gap; a missing expected change often indicates a bug.
154
154
 
155
+ When you run the diff command, set the bash tool's max output tokens limit to 32768. Large diffs are expected here.
156
+
155
157
  ## What to flag
156
158
 
157
159
  Flag an issue only when it meets all of these criteria:
@@ -210,7 +212,7 @@ function getCodeReviewTemplateWithScope(scope) {
210
212
  }
211
213
  const TEMPLATE_COMMIT = [
212
214
  "Please commit my staged changes.",
213
- "Run `git diff --staged` to see what's there, and if nothing is staged, just tell me and stop.",
215
+ "Run `git diff --staged` (set max output tokens to 32768) to see what's there, and if nothing is staged, just tell me and stop.",
214
216
  "Write a commit message that uses imperative mood, stays lowercase except for proper nouns, skips trailing punctuation, and omits conventional prefixes like `feat:` or `fix:`.",
215
217
  "Keep it to a single line under 90 characters that summarizes everything staged.",
216
218
  'Run `git commit -m "<message>"` immediately after.',
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/core/prompts.ts"],"names":[],"mappings":"AAOA,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoF/B,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDrB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmE5B,CAAC,IAAI,EAAE,CAAC;AAET,SAAS,8BAA8B,CAAC,KAAa;IACnD,OAAO,oBAAoB,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,kCAAkC;IAClC,+FAA+F;IAC/F,gLAAgL;IAChL,iFAAiF;IACjF,oDAAoD;IACpD,0EAA0E;IAC1E,+CAA+C;CAChD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,OAAO,GAAqB;IACvC;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,uBAAuB;KAClC;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,iEAAiE;QAC9E,QAAQ,EAAE,aAAa;KACxB;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,8BAA8B,CAAC,qBAAqB,CAAC;KAChE;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE,8BAA8B,CAAC,oBAAoB,CAAC;KAC/D;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,2DAA2D;QACxE,QAAQ,EAAE,8BAA8B,CAAC,wBAAwB,CAAC;KACnE;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/core/prompts.ts"],"names":[],"mappings":"AAOA,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoF/B,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDrB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqE5B,CAAC,IAAI,EAAE,CAAC;AAET,SAAS,8BAA8B,CAAC,KAAa;IACnD,OAAO,oBAAoB,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,kCAAkC;IAClC,gIAAgI;IAChI,gLAAgL;IAChL,iFAAiF;IACjF,oDAAoD;IACpD,0EAA0E;IAC1E,+CAA+C;CAChD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,OAAO,GAAqB;IACvC;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,uBAAuB;KAClC;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,iEAAiE;QAC9E,QAAQ,EAAE,aAAa;KACxB;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,8BAA8B,CAAC,qBAAqB,CAAC;KAChE;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE,8BAA8B,CAAC,oBAAoB,CAAC;KAC/D;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,2DAA2D;QACxE,QAAQ,EAAE,8BAA8B,CAAC,wBAAwB,CAAC;KACnE;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,CAAC"}
@@ -2,19 +2,40 @@ import { Type } from "@sinclair/typebox";
2
2
  import stripAnsi from "strip-ansi";
3
3
  import { z } from "zod";
4
4
  import { createToolError, createToolResult } from "../utils/messages.js";
5
- import { formatTokenEstimate } from "../utils/token.js";
6
- import { formatBytes, truncateMiddleForModel } from "../utils/truncate.js";
7
- export const BASH_TOOL_MAX_STDOUT_LINES = 4096;
8
- export const BASH_TOOL_MAX_STDOUT_TOKENS = 25000;
9
- export const BASH_TOOL_MAX_STDERR_LINES = 4096;
10
- export const BASH_TOOL_MAX_STDERR_TOKENS = 25000;
11
- export const BASH_USER_MAX_STDOUT_LINES = 16384;
12
- export const BASH_USER_MAX_STDOUT_TOKENS = 100000;
13
- export const BASH_USER_MAX_STDERR_LINES = 4096;
14
- export const BASH_USER_MAX_STDERR_TOKENS = 25000;
5
+ import { bytesToTokens, formatTokenEstimate } from "../utils/token.js";
6
+ import { buildHeadTailPreviewLines } from "../utils/tool_preview.js";
7
+ import { formatBytes, TRUNCATION_MARKER, truncateForTokens, } from "../utils/truncate.js";
8
+ const BASH_MODEL_DEFAULT_MAX_TOKENS = 4096;
9
+ const BASH_MODEL_DEFAULT_PREVIEW_TOKENS = 512;
10
+ const BASH_MODEL_MAX_AUTONOMOUS_TOKENS = 16384;
11
+ const BASH_MAX_OUTPUT_TOKENS = 65536;
12
+ const BASH_USER_MAX_TOKENS = BASH_MAX_OUTPUT_TOKENS;
13
+ const BASH_MODEL_DEFAULT_POLICY = {
14
+ maxTokens: BASH_MODEL_DEFAULT_MAX_TOKENS,
15
+ gateOnExcess: true,
16
+ previewTokens: BASH_MODEL_DEFAULT_PREVIEW_TOKENS,
17
+ };
18
+ const BASH_USER_POLICY = {
19
+ maxTokens: BASH_USER_MAX_TOKENS,
20
+ };
21
+ function clampOutputTokens(value) {
22
+ if (value === undefined || !Number.isFinite(value))
23
+ return undefined;
24
+ return Math.min(Math.max(value, BASH_MODEL_DEFAULT_MAX_TOKENS), BASH_MAX_OUTPUT_TOKENS);
25
+ }
26
+ export function getBashOutputPolicy(args) {
27
+ if (args.mode === "user") {
28
+ return BASH_USER_POLICY;
29
+ }
30
+ if (args.hasMaxOutputTokens) {
31
+ const maxTokens = clampOutputTokens(args.maxOutputTokens) ?? BASH_MODEL_DEFAULT_MAX_TOKENS;
32
+ return { maxTokens };
33
+ }
34
+ return BASH_MODEL_DEFAULT_POLICY;
35
+ }
15
36
  export const BASH_DEFAULT_TIMEOUT_MS = 60_000;
16
37
  const BASH_DESCRIPTION = [
17
- "Execute a shell command in the current working directory and return stdout/stderr.",
38
+ "Execute a shell command in the current working directory and return its output.",
18
39
  "Interactive commands are not supported (no TTY/stdin); commands that prompt or open editors will hang or fail.",
19
40
  "CRITICAL: Always evaluate and provide an accurate safetyLevel assessment.",
20
41
  ].join(" ");
@@ -28,6 +49,13 @@ const BASH_SAFETY_LEVEL_DESCRIPTION = [
28
49
  ].join(" ");
29
50
  const BASH_WORKING_DIRECTORY_DESCRIPTION = "Working directory for the command. If omitted, uses the current working directory. Prefer this over `cd` in the command.";
30
51
  const BASH_TIMEOUT_DESCRIPTION = "Timeout in milliseconds. If omitted, defaults to 60 seconds. Use a longer timeout for known slow operations like builds or large clones.";
52
+ const BASH_MAX_OUTPUT_TOKENS_DESCRIPTION = [
53
+ "Optional maximum number of output tokens to return to the model.",
54
+ `Leave unset by default. If more output is needed, set a value between ${BASH_MODEL_DEFAULT_MAX_TOKENS} and ${BASH_MODEL_MAX_AUTONOMOUS_TOKENS}.`,
55
+ `Only exceed ${BASH_MODEL_MAX_AUTONOMOUS_TOKENS} when the user explicitly requests more output, up to ${BASH_MAX_OUTPUT_TOKENS}.`,
56
+ `User requests are checked by the system, so do not exceed ${BASH_MODEL_MAX_AUTONOMOUS_TOKENS} autonomously.`,
57
+ `If unset and output exceeds ${BASH_MODEL_DEFAULT_MAX_TOKENS} tokens, the tool returns a ${BASH_MODEL_DEFAULT_PREVIEW_TOKENS}-token preview with a gating notice.`,
58
+ ].join(" ");
31
59
  export const BASH_TOOL = {
32
60
  name: "bash",
33
61
  description: BASH_DESCRIPTION,
@@ -45,63 +73,50 @@ export const BASH_TOOL = {
45
73
  timeout: Type.Optional(Type.Number({
46
74
  description: BASH_TIMEOUT_DESCRIPTION,
47
75
  })),
76
+ maxOutputTokens: Type.Optional(Type.Integer({
77
+ description: BASH_MAX_OUTPUT_TOKENS_DESCRIPTION,
78
+ minimum: 1,
79
+ maximum: BASH_MAX_OUTPUT_TOKENS,
80
+ })),
48
81
  }, { additionalProperties: false }),
49
82
  };
50
- export function prepareBashOutput(stdout, stderr, captureTruncated, limits) {
51
- const cleanStdout = stripAnsi(stdout);
52
- const cleanStderr = stripAnsi(stderr);
53
- const stdoutTrunc = truncateMiddleForModel(cleanStdout, {
54
- maxLines: limits.stdout.maxLines,
55
- maxTokens: limits.stdout.maxTokens,
56
- });
57
- const stderrTrunc = truncateMiddleForModel(cleanStderr, {
58
- maxLines: limits.stderr.maxLines,
59
- maxTokens: limits.stderr.maxTokens,
83
+ export function prepareBashOutput(output, captureTruncated, policy) {
84
+ const cleanOutput = stripAnsi(output);
85
+ const maxTruncation = truncateForTokens(cleanOutput, {
86
+ maxTokens: policy.maxTokens,
87
+ strategy: "middle",
60
88
  });
61
- const stdoutHasOutput = stdoutTrunc.content.trim().length > 0;
62
- const stderrHasOutput = stderrTrunc.content.trim().length > 0;
63
- const combinedParts = [];
64
- if (stdoutHasOutput) {
65
- combinedParts.push(stdoutTrunc.content);
66
- }
67
- if (stderrHasOutput) {
68
- combinedParts.push(`[stderr]\n${stderrTrunc.content}`);
69
- }
70
- const combined = combinedParts.join("\n");
71
- const combinedTotalParts = [];
72
- const stdoutRawHasOutput = cleanStdout.trim().length > 0;
73
- const stderrRawHasOutput = cleanStderr.trim().length > 0;
74
- if (stdoutRawHasOutput) {
75
- combinedTotalParts.push(cleanStdout);
89
+ if (policy.gateOnExcess && maxTruncation.truncated) {
90
+ const previewTokens = policy.previewTokens ?? BASH_MODEL_DEFAULT_PREVIEW_TOKENS;
91
+ const previewTruncation = truncateForTokens(cleanOutput, {
92
+ maxTokens: previewTokens,
93
+ strategy: "middle",
94
+ });
95
+ return {
96
+ output: previewTruncation.content,
97
+ model: previewTruncation,
98
+ captureTruncated,
99
+ gated: true,
100
+ };
76
101
  }
77
- if (stderrRawHasOutput) {
78
- combinedTotalParts.push(`[stderr]\n${cleanStderr}`);
79
- }
80
- const combinedTotal = combinedTotalParts.join("\n");
81
- const modelTruncation = {
82
- content: combined,
83
- truncated: stdoutTrunc.truncated || stderrTrunc.truncated,
84
- truncatedBy: (stdoutTrunc.truncatedBy || stderrTrunc.truncatedBy),
85
- totalLines: combinedTotal === "" ? 0 : combinedTotal.split("\n").length,
86
- totalBytes: Buffer.byteLength(combinedTotal, "utf-8"),
87
- outputLines: combined === "" ? 0 : combined.split("\n").length,
88
- outputBytes: Buffer.byteLength(combined, "utf-8"),
89
- maxLines: limits.stdout.maxLines + limits.stderr.maxLines,
90
- maxTokens: limits.stdout.maxTokens + limits.stderr.maxTokens,
91
- };
92
102
  return {
93
- output: combined,
94
- rawOutput: combinedTotal,
95
- model: modelTruncation,
103
+ output: maxTruncation.content,
104
+ model: maxTruncation,
96
105
  captureTruncated,
97
106
  };
98
107
  }
99
108
  export function formatBashToolResultText(args) {
100
109
  const { truncationInfo, exitCode } = args;
101
- const { model, captureTruncated } = truncationInfo;
110
+ const { model, captureTruncated, gated } = truncationInfo;
111
+ if (gated) {
112
+ const preview = model.content.trimEnd() || "(no output)";
113
+ const gateNote = `\n\n[output gated: this command already ran and any side effects have persisted. if the large output was expected, re-run this bash tool call with maxOutputTokens set (${BASH_MODEL_DEFAULT_MAX_TOKENS}-${BASH_MODEL_MAX_AUTONOMOUS_TOKENS}; up to ${BASH_MAX_OUTPUT_TOKENS} only when the user explicitly requests it). user requests are checked by the system, so do not exceed ${BASH_MODEL_MAX_AUTONOMOUS_TOKENS} autonomously.]`;
114
+ const exitNote = exitCode !== null && exitCode !== 0 ? `\n(exit ${exitCode})` : "";
115
+ return `${preview}${gateNote}${exitNote}`;
116
+ }
102
117
  const outputForContext = model.content.trimEnd() || "(no output)";
103
118
  const truncNote = model.truncated || captureTruncated
104
- ? `\n\n[output truncated for context: ${model.outputLines} lines / ${model.outputBytes} bytes shown of ${model.totalLines} lines / ${model.totalBytes} bytes]`
119
+ ? `\n\n[output truncated for context: ${model.outputLines} lines / ${formatBytes(model.outputBytes)} shown of ${model.totalLines} lines / ${formatBytes(model.totalBytes)} (~${bytesToTokens(model.totalBytes)} tokens)]`
105
120
  : "";
106
121
  const exitNote = exitCode !== null && exitCode !== 0 ? `\n(exit ${exitCode})` : "";
107
122
  return `${outputForContext}${truncNote}${exitNote}`;
@@ -111,38 +126,13 @@ export function formatBashUserMessageText(args) {
111
126
  const { model, captureTruncated } = truncationInfo;
112
127
  const outputForContext = model.content.trimEnd() || "(no output)";
113
128
  const truncNote = model.truncated || captureTruncated
114
- ? `\n\n[output truncated for context: ${model.outputLines} lines / ${model.outputBytes} bytes shown of ${model.totalLines} lines / ${model.totalBytes} bytes]`
129
+ ? `\n\n[output truncated for context: ${model.outputLines} lines / ${formatBytes(model.outputBytes)} shown of ${model.totalLines} lines / ${formatBytes(model.totalBytes)} (~${bytesToTokens(model.totalBytes)} tokens)]`
115
130
  : "";
116
131
  const bashContextText = `$ ${command}\n${outputForContext}${truncNote}`;
117
132
  return `Bash command output:\n${bashContextText}`;
118
133
  }
119
134
  const COMPACT_OUTPUT_HEAD_LINES = 3;
120
135
  const COMPACT_OUTPUT_TAIL_LINES = 3;
121
- const BASH_UI_MAX_LINE_LENGTH = 256;
122
- function truncateLineToMax(line) {
123
- if (BASH_UI_MAX_LINE_LENGTH <= 0)
124
- return "";
125
- const chars = Array.from(line);
126
- if (chars.length <= BASH_UI_MAX_LINE_LENGTH)
127
- return line;
128
- if (BASH_UI_MAX_LINE_LENGTH === 1)
129
- return "…";
130
- return `${chars.slice(0, BASH_UI_MAX_LINE_LENGTH - 1).join("")}…`;
131
- }
132
- function buildCompactOutputLines(output, headCount = COMPACT_OUTPUT_HEAD_LINES, tailCount = COMPACT_OUTPUT_TAIL_LINES) {
133
- const cleaned = output.replace(/\n+$/, "");
134
- if (cleaned.trim().length === 0)
135
- return [];
136
- const lines = cleaned.split("\n");
137
- const total = lines.length;
138
- if (total <= headCount + tailCount)
139
- return lines.map(truncateLineToMax);
140
- const head = lines.slice(0, headCount).map(truncateLineToMax);
141
- const tail = lines.slice(Math.max(total - tailCount, headCount)).map(truncateLineToMax);
142
- const remaining = Math.max(0, total - head.length - tail.length);
143
- const label = remaining === 1 ? "line" : "lines";
144
- return [...head, `…${remaining} more ${label}…`, ...tail];
145
- }
146
136
  function formatDurationMs(durationMs) {
147
137
  if (durationMs === null || durationMs === undefined || !Number.isFinite(durationMs)) {
148
138
  return "?ms";
@@ -154,54 +144,36 @@ function formatDurationMs(durationMs) {
154
144
  return `${(ms / 1000).toFixed(1)}s`;
155
145
  return `${Math.round(ms / 1000)}s`;
156
146
  }
157
- function formatSizeSummary(lines, bytes) {
158
- return `${lines} lines (${formatTokenEstimate(bytes)} · ${formatBytes(bytes)})`;
159
- }
160
147
  export function buildBashUiText(args) {
161
148
  const { truncationInfo, exitCode, durationMs } = args;
162
149
  const { model, captureTruncated } = truncationInfo;
163
150
  const previewSource = truncationInfo.output;
164
- const outputLinesPreview = buildCompactOutputLines(previewSource, args.previewLines?.head ?? COMPACT_OUTPUT_HEAD_LINES, args.previewLines?.tail ?? COMPACT_OUTPUT_TAIL_LINES);
151
+ const outputLinesPreview = buildHeadTailPreviewLines(previewSource, {
152
+ headLines: args.previewLines?.head ?? COMPACT_OUTPUT_HEAD_LINES,
153
+ tailLines: args.previewLines?.tail ?? COMPACT_OUTPUT_TAIL_LINES,
154
+ });
165
155
  const previewLines = outputLinesPreview.map((line) => ({
166
156
  text: line,
167
157
  }));
168
- const hasOutput = model.totalBytes > 0;
169
- const showTotals = model.truncated || captureTruncated;
170
- const outputLines = showTotals ? model.totalLines : model.outputLines;
171
- const outputBytes = showTotals ? model.totalBytes : model.outputBytes;
158
+ const outputLines = model.outputLines;
159
+ const outputBytes = model.outputBytes;
160
+ const hasOutput = outputBytes > 0;
172
161
  const exitSummary = exitCode === null ? "exit ?" : `exit ${exitCode}`;
173
162
  const durationLabel = formatDurationMs(durationMs);
174
163
  const lineLabel = hasOutput ? `${outputLines} line${outputLines === 1 ? "" : "s"}` : "no output";
175
- const bytesLabel = hasOutput ? formatBytes(outputBytes).toLowerCase() : undefined;
176
- const tokenLabel = hasOutput ? formatTokenEstimate(outputBytes) : "";
177
- const infoParts = bytesLabel
178
- ? [durationLabel, lineLabel, tokenLabel, bytesLabel]
179
- : [durationLabel, lineLabel];
180
- const infoText = infoParts.join(" · ");
181
- const summaryLine = `${exitSummary} · ${infoText}`;
182
- const fullLines = [];
183
- const pushSection = (text) => {
184
- if (!text)
185
- return;
186
- if (fullLines.length > 0) {
187
- fullLines.push({ text: "" });
188
- }
189
- for (const line of text.split("\n")) {
190
- fullLines.push({ text: line });
191
- }
192
- };
193
- const rawOutput = truncationInfo.rawOutput.trimEnd();
194
- if (rawOutput) {
195
- pushSection(rawOutput);
196
- }
164
+ const bytesLabel = hasOutput ? formatBytes(outputBytes) : undefined;
165
+ const tokenLabel = hasOutput ? formatTokenEstimate(outputBytes) : undefined;
166
+ const summaryParts = [];
197
167
  if (model.truncated || captureTruncated) {
198
- const shown = formatSizeSummary(model.outputLines, model.outputBytes);
199
- const total = formatSizeSummary(model.totalLines, model.totalBytes);
200
- pushSection(`truncated for model: ${shown} of ${total}`);
168
+ summaryParts.push(TRUNCATION_MARKER);
201
169
  }
202
- if (exitCode !== null && exitCode !== 0) {
203
- pushSection(`(exit ${exitCode})`);
170
+ summaryParts.push(exitSummary, durationLabel, lineLabel);
171
+ if (tokenLabel && bytesLabel) {
172
+ summaryParts.push(tokenLabel, bytesLabel);
204
173
  }
174
+ const summaryLine = summaryParts.join(" · ");
175
+ const fullText = args.fullText?.trimEnd() ?? "";
176
+ const fullLines = fullText ? fullText.split("\n").map((text) => ({ text })) : [];
205
177
  return {
206
178
  previewLines,
207
179
  statusLine: summaryLine,
@@ -222,6 +194,7 @@ const bashArgsSchema = z.object({
222
194
  safetyLevel: z.enum(["read", "write"]).optional().catch(undefined),
223
195
  workingDirectory: z.string().trim().optional().catch(undefined),
224
196
  timeout: z.number().positive().optional().catch(undefined),
197
+ maxOutputTokens: z.number().int().positive().optional().catch(undefined),
225
198
  });
226
199
  function parseBashArgs(raw) {
227
200
  const parsed = bashArgsSchema.safeParse(raw);
@@ -231,14 +204,24 @@ function parseBashArgs(raw) {
231
204
  : undefined;
232
205
  const workingDirectory = parsed.success ? parsed.data.workingDirectory : undefined;
233
206
  const timeout = parsed.success ? parsed.data.timeout : undefined;
207
+ const maxOutputTokens = parsed.success ? parsed.data.maxOutputTokens : undefined;
208
+ const hasMaxOutputTokens = typeof raw === "object" && raw !== null && "maxOutputTokens" in raw;
234
209
  const commandForDisplay = command || "(missing command)";
235
- return { command, safetyLevel, workingDirectory, timeout, commandForDisplay };
210
+ return {
211
+ command,
212
+ safetyLevel,
213
+ workingDirectory,
214
+ timeout,
215
+ maxOutputTokens: clampOutputTokens(maxOutputTokens),
216
+ hasMaxOutputTokens,
217
+ commandForDisplay,
218
+ };
236
219
  }
237
220
  export function createBashToolDefinition(backend) {
238
221
  return {
239
222
  schema: BASH_TOOL,
240
223
  async dispatch(toolCall, riskLevel, signal) {
241
- const { command, safetyLevel, workingDirectory, timeout, commandForDisplay } = parseBashArgs(toolCall.arguments);
224
+ const { command, safetyLevel, workingDirectory, timeout, maxOutputTokens, hasMaxOutputTokens, commandForDisplay, } = parseBashArgs(toolCall.arguments);
242
225
  const headerTarget = commandForDisplay.split(/\r?\n/)[0] ?? commandForDisplay;
243
226
  const blocked = (reason) => {
244
227
  const toolResult = createToolError(toolCall, reason);
@@ -276,25 +259,26 @@ export function createBashToolDefinition(backend) {
276
259
  run: (async () => {
277
260
  try {
278
261
  const startedAt = Date.now();
279
- const { stdout, stderr, exitCode, truncated: captureTruncated, } = await backend.runBash(command, {
262
+ const { output, exitCode, truncated: captureTruncated, } = await backend.runBash(command, {
280
263
  signal,
281
264
  timeoutMs: timeout ?? BASH_DEFAULT_TIMEOUT_MS,
282
265
  cwd: workingDirectory,
283
266
  });
284
267
  const durationMs = Math.max(0, Date.now() - startedAt);
285
- const truncationInfo = prepareBashOutput(stdout, stderr, captureTruncated, {
286
- stdout: {
287
- maxLines: BASH_TOOL_MAX_STDOUT_LINES,
288
- maxTokens: BASH_TOOL_MAX_STDOUT_TOKENS,
289
- },
290
- stderr: {
291
- maxLines: BASH_TOOL_MAX_STDERR_LINES,
292
- maxTokens: BASH_TOOL_MAX_STDERR_TOKENS,
293
- },
268
+ const outputPolicy = getBashOutputPolicy({
269
+ mode: "model",
270
+ maxOutputTokens,
271
+ hasMaxOutputTokens,
294
272
  });
273
+ const truncationInfo = prepareBashOutput(output, captureTruncated, outputPolicy);
295
274
  const toolText = formatBashToolResultText({ truncationInfo, exitCode });
296
275
  const isError = exitCode === null || exitCode !== 0;
297
- const uiText = buildBashUiText({ truncationInfo, exitCode, durationMs });
276
+ const uiText = buildBashUiText({
277
+ truncationInfo,
278
+ exitCode,
279
+ durationMs,
280
+ fullText: toolText,
281
+ });
298
282
  const toolResult = createToolResult(toolCall, toolText, isError);
299
283
  const uiEvent = {
300
284
  type: "bash_execution",
@@ -1 +1 @@
1
- {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/core/tools/bash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/core/tools/bash.ts"],"names":[],"mappings":"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"}
@@ -155,9 +155,11 @@ function buildLineDiff(oldText, newText) {
155
155
  }
156
156
  return { lines, added, removed };
157
157
  }
158
+ function formatEditToolResultText(args) {
159
+ return args.summaryLine;
160
+ }
158
161
  function buildEditUiText(args) {
159
- const { oldLength, newLength, oldText, newText } = args;
160
- const { lines: diffLines, added, removed } = buildLineDiff(oldText, newText);
162
+ const { summaryLine, statusLine, diffLines } = args;
161
163
  const formatLine = (line) => {
162
164
  const text = line;
163
165
  if (line.startsWith("+ "))
@@ -167,10 +169,6 @@ function buildEditUiText(args) {
167
169
  return { text };
168
170
  };
169
171
  const previewLines = diffLines.map((line) => formatLine(line));
170
- const sizeDiff = newLength - oldLength;
171
- const diffStr = sizeDiff === 0 ? "same size" : sizeDiff > 0 ? `+${sizeDiff} chars` : `${sizeDiff} chars`;
172
- const summaryLine = `replaced ${oldLength} → ${newLength} chars (${diffStr})`;
173
- const statusLine = `+${added}, -${removed} · ${summaryLine}`;
174
172
  const fullLines = [{ text: summaryLine }];
175
173
  if (diffLines.length > 0) {
176
174
  fullLines.push({ text: "" }, ...diffLines.map((line) => formatLine(line)));
@@ -250,18 +248,14 @@ export function createEditToolDefinition(backend) {
250
248
  const newContent = content.replace(oldText, () => newText);
251
249
  try {
252
250
  await backend.writeFile(path, newContent);
253
- const oldLines = oldText.split("\n").length;
254
- const newLines = newText.split("\n").length;
255
- const lineDiff = newLines - oldLines;
256
- const lineDiffStr = lineDiff === 0 ? "" : lineDiff > 0 ? ` (+${lineDiff} lines)` : ` (${lineDiff} lines)`;
257
- const resultText = `successfully edited ${path}: replaced ${oldText.length} chars with ${newText.length} chars${lineDiffStr}`;
251
+ const { lines: diffLines, added, removed } = buildLineDiff(oldText, newText);
252
+ const sizeDiff = newText.length - oldText.length;
253
+ const sizeDiffStr = sizeDiff === 0 ? "same size" : sizeDiff > 0 ? `+${sizeDiff} chars` : `${sizeDiff} chars`;
254
+ const summaryLine = `successfully edited ${path}: ${oldText.length} ${newText.length} chars (${sizeDiffStr})`;
255
+ const statusLine = `+${added}, -${removed} · ${oldText.length} ${newText.length} chars (${sizeDiffStr})`;
256
+ const resultText = formatEditToolResultText({ summaryLine });
258
257
  const toolResult = createToolSuccess(toolCall, resultText);
259
- const uiText = buildEditUiText({
260
- oldLength: oldText.length,
261
- newLength: newText.length,
262
- oldText,
263
- newText,
264
- });
258
+ const uiText = buildEditUiText({ summaryLine, statusLine, diffLines });
265
259
  const uiEvent = {
266
260
  type: "edit_success",
267
261
  path,