@markusylisiurunen/tau 0.3.94 → 0.3.96

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 (142) hide show
  1. package/dist/code_mode/command.js +3 -1
  2. package/dist/code_mode/command.js.map +1 -1
  3. package/dist/code_mode/output.d.ts +3 -0
  4. package/dist/code_mode/output.js +8 -2
  5. package/dist/code_mode/output.js.map +1 -1
  6. package/dist/code_mode/runtime.d.ts +7 -1
  7. package/dist/code_mode/runtime.js +18 -14
  8. package/dist/code_mode/runtime.js.map +1 -1
  9. package/dist/core/code_mode/agents.js +434 -0
  10. package/dist/core/code_mode/agents.js.map +1 -0
  11. package/dist/core/code_mode/bash.js +14 -17
  12. package/dist/core/code_mode/bash.js.map +1 -1
  13. package/dist/core/code_mode/history.js +1 -0
  14. package/dist/core/code_mode/history.js.map +1 -1
  15. package/dist/core/code_mode/models.js +31 -4
  16. package/dist/core/code_mode/models.js.map +1 -1
  17. package/dist/core/code_mode/sdk.js +6 -0
  18. package/dist/core/code_mode/sdk.js.map +1 -1
  19. package/dist/core/config/content_loader.js +3 -13
  20. package/dist/core/config/content_loader.js.map +1 -1
  21. package/dist/core/debug.js +2 -2
  22. package/dist/core/debug.js.map +1 -1
  23. package/dist/core/history/history_manager.js +7 -4
  24. package/dist/core/history/history_manager.js.map +1 -1
  25. package/dist/core/index.js +0 -4
  26. package/dist/core/index.js.map +1 -1
  27. package/dist/core/mcp/manager.js +7 -0
  28. package/dist/core/mcp/manager.js.map +1 -1
  29. package/dist/core/models/openrouter.js +25 -1
  30. package/dist/core/models/openrouter.js.map +1 -1
  31. package/dist/core/personas.js +3 -11
  32. package/dist/core/personas.js.map +1 -1
  33. package/dist/core/runtime/chat_runtime.js +11 -10
  34. package/dist/core/runtime/chat_runtime.js.map +1 -1
  35. package/dist/core/runtime/session_prompt_composer.js +9 -8
  36. package/dist/core/runtime/session_prompt_composer.js.map +1 -1
  37. package/dist/core/static/code_mode/history/documentation.md +2 -1
  38. package/dist/core/static/code_mode/sandbox_runner.mjs +4 -0
  39. package/dist/core/static/index.js +18 -5
  40. package/dist/core/static/index.js.map +1 -1
  41. package/dist/core/static/prompts/subagent-prefix.md +17 -0
  42. package/dist/core/static/tau_docs/client-tools.md +4 -0
  43. package/dist/core/static/tau_docs/code-mode.md +77 -0
  44. package/dist/core/static/tau_docs/config-reference.md +4 -2
  45. package/dist/core/static/tau_docs/history.md +5 -3
  46. package/dist/core/static/tau_docs/index.md +2 -1
  47. package/dist/core/static/tau_docs/manifest.json +1 -0
  48. package/dist/core/static/tau_docs/node-sdk.md +2 -0
  49. package/dist/core/static/tau_docs/openrouter.md +2 -0
  50. package/dist/core/static/tau_docs/pdf-unpacking.md +1 -1
  51. package/dist/core/static/tau_docs/personas.md +4 -5
  52. package/dist/core/static/tau_docs/prompts-and-project-context.md +1 -1
  53. package/dist/core/static/tau_docs/security.md +1 -1
  54. package/dist/core/static/tau_docs/sessions.md +1 -1
  55. package/dist/core/static/tau_docs/subagents.md +106 -27
  56. package/dist/core/static/tau_docs/tools.md +28 -64
  57. package/dist/core/static/tau_docs/troubleshooting.md +2 -2
  58. package/dist/core/static/tau_docs/tui.md +2 -0
  59. package/dist/core/subagents/agent_supervisor.js +185 -339
  60. package/dist/core/subagents/agent_supervisor.js.map +1 -1
  61. package/dist/core/subagents/claude_code_protocol.js +4 -0
  62. package/dist/core/subagents/claude_code_protocol.js.map +1 -1
  63. package/dist/core/subagents/claude_code_runner.js +134 -11
  64. package/dist/core/subagents/claude_code_runner.js.map +1 -1
  65. package/dist/core/subagents/claude_code_runner.mjs +80 -77
  66. package/dist/core/subagents/claude_code_runtime.js +250 -9
  67. package/dist/core/subagents/claude_code_runtime.js.map +1 -1
  68. package/dist/core/subagents/errors.js +18 -0
  69. package/dist/core/subagents/errors.js.map +1 -0
  70. package/dist/core/subagents/events.js +25 -0
  71. package/dist/core/subagents/events.js.map +1 -0
  72. package/dist/core/subagents/format.js +2 -98
  73. package/dist/core/subagents/format.js.map +1 -1
  74. package/dist/core/subagents/native_subagent_runtime.js +270 -0
  75. package/dist/core/subagents/native_subagent_runtime.js.map +1 -0
  76. package/dist/core/subagents/prompt.js +3 -5
  77. package/dist/core/subagents/prompt.js.map +1 -1
  78. package/dist/core/subagents/registry.js +5 -3
  79. package/dist/core/subagents/registry.js.map +1 -1
  80. package/dist/core/subagents/runtime.js +13 -0
  81. package/dist/core/subagents/runtime.js.map +1 -0
  82. package/dist/core/subagents/trace.js +149 -0
  83. package/dist/core/subagents/trace.js.map +1 -0
  84. package/dist/core/tools/agent_jobs.js +51 -0
  85. package/dist/core/tools/agent_jobs.js.map +1 -0
  86. package/dist/core/tools/background_jobs.js +205 -0
  87. package/dist/core/tools/background_jobs.js.map +1 -0
  88. package/dist/core/tools/bash.js +11 -45
  89. package/dist/core/tools/bash.js.map +1 -1
  90. package/dist/core/tools/bash_jobs.js +44 -238
  91. package/dist/core/tools/bash_jobs.js.map +1 -1
  92. package/dist/core/tools/catalog.js +37 -72
  93. package/dist/core/tools/catalog.js.map +1 -1
  94. package/dist/core/tools/code.js +177 -54
  95. package/dist/core/tools/code.js.map +1 -1
  96. package/dist/core/tools/code_jobs.js +128 -0
  97. package/dist/core/tools/code_jobs.js.map +1 -0
  98. package/dist/core/tools/code_mode.js +88 -101
  99. package/dist/core/tools/code_mode.js.map +1 -1
  100. package/dist/core/tools/code_mode_worker.js +13 -7
  101. package/dist/core/tools/code_mode_worker.js.map +1 -1
  102. package/dist/core/tools/job_output.js +53 -0
  103. package/dist/core/tools/job_output.js.map +1 -0
  104. package/dist/core/tools/output_file.js +38 -0
  105. package/dist/core/tools/output_file.js.map +1 -0
  106. package/dist/core/tools/presentation.js +19 -9
  107. package/dist/core/tools/presentation.js.map +1 -1
  108. package/dist/core/tools/tool_names.js +8 -6
  109. package/dist/core/tools/tool_names.js.map +1 -1
  110. package/dist/core/tools/wait_for_agents.js +47 -38
  111. package/dist/core/tools/wait_for_agents.js.map +1 -1
  112. package/dist/core/version.js +1 -1
  113. package/dist/diff_tool/app/dist/assets/{core-33fyIuI3.js → core-NkxL1yZC.js} +1 -1
  114. package/dist/diff_tool/app/dist/assets/{highlights-BZwSBtSw.js → highlights-Coi8xHW0.js} +1 -1
  115. package/dist/diff_tool/app/dist/assets/index-Jt-l2Q96.js +205 -0
  116. package/dist/diff_tool/app/dist/assets/langs-qJAo26KT.js +1 -0
  117. package/dist/diff_tool/app/dist/assets/{shiki-CC72VX9t.js → shiki-B8l9Ufae.js} +2 -2
  118. package/dist/diff_tool/app/dist/assets/{stream-tokenizer-C6SDg59j.js → stream-tokenizer-h1lwRQEk.js} +1 -1
  119. package/dist/diff_tool/app/dist/assets/{themes-2vjCbM1J.js → themes-D3P9yN9_.js} +2 -2
  120. package/dist/diff_tool/app/dist/index.html +1 -1
  121. package/dist/host/hosted_ephemeral_agent_session.js +13 -3
  122. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  123. package/dist/host/local_session_host.js +5 -5
  124. package/dist/host/local_session_host.js.map +1 -1
  125. package/dist/sdk/code_mode.js +2 -2
  126. package/dist/sdk/code_mode.js.map +1 -1
  127. package/dist/store/session_snapshot_migrations.js +27 -1
  128. package/dist/store/session_snapshot_migrations.js.map +1 -1
  129. package/dist/tui/ui/subagent_panel.js +4 -1
  130. package/dist/tui/ui/subagent_panel.js.map +1 -1
  131. package/package.json +5 -5
  132. package/dist/core/static/prompts/subagent-wrapper.md +0 -20
  133. package/dist/core/tools/interrupt_agent.js +0 -142
  134. package/dist/core/tools/interrupt_agent.js.map +0 -1
  135. package/dist/core/tools/list_agents.js +0 -85
  136. package/dist/core/tools/list_agents.js.map +0 -1
  137. package/dist/core/tools/send_input_to_agent.js +0 -177
  138. package/dist/core/tools/send_input_to_agent.js.map +0 -1
  139. package/dist/core/tools/spawn_agent.js +0 -275
  140. package/dist/core/tools/spawn_agent.js.map +0 -1
  141. package/dist/diff_tool/app/dist/assets/index-Bv8JVYFD.js +0 -202
  142. package/dist/diff_tool/app/dist/assets/langs-DnGrwrZ-.js +0 -1
@@ -0,0 +1,205 @@
1
+ import { Type } from "typebox";
2
+ import { z } from "zod";
3
+ import { formatCwd } from "../utils/format.js";
4
+ import { formatTokenEstimate } from "../utils/token.js";
5
+ import { TRUNCATION_MARKER } from "../utils/truncate.js";
6
+ import { formatZodError } from "../utils/zod.js";
7
+ import { buildToolRunPresentation, formatToolDurationMs } from "./presentation.js";
8
+ import { createTextToolOutcome, executeTool } from "./registry.js";
9
+ export const MAX_JOBS = 64;
10
+ export const JOB_WAIT_DEFAULT_MS = 60_000;
11
+ export const JOB_WAIT_MAX_MS = 300_000;
12
+ export async function waitForJobs(jobs, timeout, signal) {
13
+ if (!Number.isInteger(timeout) || timeout <= 0 || timeout > JOB_WAIT_MAX_MS)
14
+ throw new Error(`timeout must be a positive integer up to ${JOB_WAIT_MAX_MS}.`);
15
+ if (!jobs.length)
16
+ throw new Error("ids must not be empty.");
17
+ signal.throwIfAborted();
18
+ let timer;
19
+ let abort;
20
+ try {
21
+ return await Promise.race([
22
+ ...jobs.map((job) => job.done.then(() => false)),
23
+ new Promise((resolve) => {
24
+ timer = setTimeout(() => resolve(true), timeout);
25
+ }),
26
+ new Promise((_, reject) => {
27
+ abort = () => reject(signal.reason);
28
+ signal.addEventListener("abort", abort, { once: true });
29
+ }),
30
+ ]);
31
+ }
32
+ finally {
33
+ clearTimeout(timer);
34
+ signal.removeEventListener("abort", abort);
35
+ }
36
+ }
37
+ export function buildJobMetadata(args) {
38
+ const lines = args.text.split("\n").length;
39
+ return [
40
+ ...(args.truncated ? [TRUNCATION_MARKER] : []),
41
+ ...(args.workingDirectory ? [formatCwd(args.workingDirectory)] : []),
42
+ formatToolDurationMs(args.durationMs),
43
+ formatTokenEstimate(Buffer.byteLength(args.text, "utf8")),
44
+ `${lines} line${lines === 1 ? "" : "s"}`,
45
+ ...(args.timedOut ? ["timed out"] : []),
46
+ ];
47
+ }
48
+ function buildJobPresentation(kind, toolName, args, text, metadata) {
49
+ const detailText = text?.replace(/\r\n?/g, "\n").trimEnd();
50
+ return buildToolRunPresentation({
51
+ toolName,
52
+ operation: kind,
53
+ subject: args ? (args.ids?.join(", ") ?? args.id ?? "jobs") : "(invalid arguments)",
54
+ details: detailText ? detailText.split("\n").map((text) => ({ text })) : [],
55
+ metadata,
56
+ });
57
+ }
58
+ export function createJobToolDefinitions(jobs, kind) {
59
+ const label = kind === "bash" ? "Bash" : "code";
60
+ const id = Type.String({ minLength: 1, pattern: "^[^\\r\\n]+$" });
61
+ const idSchema = z
62
+ .string()
63
+ .min(1)
64
+ .regex(/^[^\r\n]+$/);
65
+ const includeOutput = Type.Optional(Type.Boolean({
66
+ description: "Include captured output; defaults to true. Set false to return only job metadata. Error details are part of the output, so they are omitted too.",
67
+ }));
68
+ const maxOutputTokens = Type.Optional(Type.Integer({
69
+ minimum: 1,
70
+ maximum: 65536,
71
+ description: "Maximum estimated tokens of output text for the whole response, divided evenly among the requested jobs. Defaults to 8192. Increase it when you need more output, up to 65536, or read the reported text log.",
72
+ }));
73
+ const outputTokensSchema = z.number().int().min(1).max(65536).optional();
74
+ return [
75
+ {
76
+ name: `list_${kind}_jobs`,
77
+ description: `List your ${label} jobs and their status, without output. Up to 64 records are retained; older completed jobs are evicted when needed.`,
78
+ parameters: Type.Object({}, { additionalProperties: false }),
79
+ parser: z.object({}).strict(),
80
+ },
81
+ {
82
+ name: `read_${kind}_job`,
83
+ description: `Read a ${label} job's current status and captured output without waiting. Long output is shortened to its beginning and end. After the job finishes, the result reports a text log with all retained text; read that file instead of rerunning the job.`,
84
+ parameters: Type.Object({ id, includeOutput, maxOutputTokens }, { additionalProperties: false }),
85
+ parser: z
86
+ .object({
87
+ id: idSchema,
88
+ includeOutput: z.boolean().optional(),
89
+ maxOutputTokens: outputTokensSchema,
90
+ })
91
+ .strict(),
92
+ },
93
+ {
94
+ name: `stop_${kind}_job`,
95
+ description: kind === "bash"
96
+ ? "Stop a Bash job and its process group, escalating to forced termination if needed. Waits until the job has stopped and returns its final record."
97
+ : "Stop a code job and its in-flight capability calls. Bash jobs the program started keep running. Waits until the code job has stopped and returns its final record.",
98
+ parameters: Type.Object({ id, includeOutput, maxOutputTokens }, { additionalProperties: false }),
99
+ parser: z
100
+ .object({
101
+ id: idSchema,
102
+ includeOutput: z.boolean().optional(),
103
+ maxOutputTokens: outputTokensSchema,
104
+ })
105
+ .strict(),
106
+ },
107
+ {
108
+ name: `wait_for_${kind}_jobs`,
109
+ description: `Wait until any requested ${label} job finishes. Returns after 60 seconds by default, at most 5 minutes. Timeout and interruption cancel only the wait, not jobs. Completed results remain readable.`,
110
+ parameters: Type.Object({
111
+ includeOutput,
112
+ maxOutputTokens,
113
+ ids: Type.Array(id, { minItems: 1, maxItems: MAX_JOBS }),
114
+ timeout: Type.Optional(Type.Integer({
115
+ minimum: 1,
116
+ maximum: JOB_WAIT_MAX_MS,
117
+ description: "Wait timeout in milliseconds; defaults to 60000.",
118
+ })),
119
+ }, { additionalProperties: false }),
120
+ parser: z
121
+ .object({
122
+ includeOutput: z.boolean().optional(),
123
+ maxOutputTokens: outputTokensSchema,
124
+ ids: z.array(idSchema).min(1).max(MAX_JOBS),
125
+ timeout: z.number().int().positive().max(JOB_WAIT_MAX_MS).optional(),
126
+ })
127
+ .strict(),
128
+ },
129
+ ].map(({ parser, ...schema }) => ({
130
+ schema,
131
+ describe: (call) => {
132
+ const parsed = parser.safeParse(call.arguments);
133
+ return {
134
+ presentation: buildJobPresentation(kind, schema.name, parsed.success ? parsed.data : undefined),
135
+ };
136
+ },
137
+ execute: (call, context) => executeTool(context, async () => {
138
+ const startedAt = Date.now();
139
+ const parsed = parser.safeParse(call.arguments);
140
+ if (!parsed.success) {
141
+ const reason = `Invalid arguments: ${formatZodError(parsed.error)}`;
142
+ return {
143
+ ...createTextToolOutcome(reason, "blocked"),
144
+ uiEvent: {
145
+ type: "tool_call_blocked",
146
+ toolCallId: call.id,
147
+ toolName: schema.name,
148
+ reason,
149
+ presentation: buildJobPresentation(kind, schema.name, undefined, reason),
150
+ },
151
+ };
152
+ }
153
+ const args = parsed.data;
154
+ try {
155
+ context.signal.throwIfAborted();
156
+ let timedOut = false;
157
+ if ("ids" in args)
158
+ timedOut = await jobs.waitJobs(args.ids, args.timeout ?? JOB_WAIT_DEFAULT_MS, context.signal);
159
+ else if ("id" in args && schema.name === `stop_${kind}_job`)
160
+ await jobs.stopJob(args.id);
161
+ const result = await jobs.inspect("ids" in args ? args.ids : "id" in args ? [args.id] : undefined, "id" in args || "ids" in args ? (args.includeOutput ?? true) : false, "maxOutputTokens" in args ? args.maxOutputTokens : undefined);
162
+ if (timedOut) {
163
+ const note = `Wait timed out after ${"timeout" in args ? (args.timeout ?? JOB_WAIT_DEFAULT_MS) : JOB_WAIT_DEFAULT_MS}ms; jobs are still running.\n\n`;
164
+ result.text = note + result.text;
165
+ if (result.content)
166
+ result.content.unshift({ type: "text", text: note });
167
+ }
168
+ const { text } = result;
169
+ return {
170
+ ...createTextToolOutcome(text, "succeeded"),
171
+ ...(result.content ? { content: result.content } : {}),
172
+ uiEvent: {
173
+ type: "tool_call_finished",
174
+ toolCallId: call.id,
175
+ toolName: schema.name,
176
+ status: "success",
177
+ presentation: buildJobPresentation(kind, schema.name, args, text, buildJobMetadata({
178
+ ...result,
179
+ timedOut,
180
+ durationMs: Math.max(0, Date.now() - startedAt),
181
+ })),
182
+ },
183
+ };
184
+ }
185
+ catch (error) {
186
+ const reason = context.signal.aborted
187
+ ? `${kind === "bash" ? "Bash" : "Code"} job operation was cancelled.`
188
+ : error instanceof Error
189
+ ? error.message
190
+ : String(error);
191
+ return {
192
+ ...createTextToolOutcome(reason, context.signal.aborted ? "cancelled" : "failed"),
193
+ uiEvent: {
194
+ type: "tool_call_finished",
195
+ toolCallId: call.id,
196
+ toolName: schema.name,
197
+ status: "error",
198
+ presentation: buildJobPresentation(kind, schema.name, args, context.signal.aborted ? undefined : reason),
199
+ },
200
+ };
201
+ }
202
+ }),
203
+ }));
204
+ }
205
+ //# sourceMappingURL=background_jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background_jobs.js","sourceRoot":"","sources":["../../../src/core/tools/background_jobs.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@ import { formatCwd } from "../utils/format.js";
6
6
  import { bytesToTokens, formatTokenEstimate } from "../utils/token.js";
7
7
  import { formatBytes, TRUNCATION_MARKER, truncateForTokens, } from "../utils/truncate.js";
8
8
  import { formatZodError } from "../utils/zod.js";
9
- import { buildBashJobMetadata } from "./bash_jobs.js";
9
+ import { buildJobMetadata } from "./background_jobs.js";
10
+ import { MAX_COMMAND_CAPTURE_BYTES } from "./execution_backend.js";
11
+ import { writeOutputFile } from "./output_file.js";
10
12
  import { buildToolRunPresentation, formatToolDurationMs, } from "./presentation.js";
11
13
  import { createTextToolOutcome, executeTool, } from "./registry.js";
12
14
  import { TOOL_NAME_BASH } from "./tool_names.js";
@@ -42,14 +44,14 @@ export const BASH_DEFAULT_TIMEOUT_MS = 60_000;
42
44
  const BASH_DESCRIPTION = [
43
45
  "Execute a command in a fresh non-interactive login Bash in the current working directory and return its output.",
44
46
  "Choose the mode that avoids unnecessary waiting. Use background: true when it lets you make useful independent progress, for example inspecting code while a test suite runs. If you would only wait for the command to finish, use foreground mode with an appropriate timeout. Runtime alone does not determine the mode.",
45
- "Also use background: true to keep a service running or preserve execution across turns or interruptions. Launching several independent jobs and then waiting for them is valid concurrency. Use background mode instead of tmux or shell &. Returns a job ID after launch, not a readiness guarantee; use the Bash job tools to read, wait, or stop it. Jobs survive turns and interruptions, but job IDs and logs are not recovered after a session restart. If a previously returned job ID is unknown, do not assume the command never ran or is no longer running; check current process and output state before restarting it.",
47
+ "Also use background: true to keep a service running or preserve execution across turns or interruptions. Launching several independent jobs and then waiting for them is valid concurrency. Use background mode instead of tmux or shell &. Returns a job ID right away. Use the Bash job tools to read, wait for, or stop it. Jobs survive turns and interruptions, but job IDs and logs are not recovered after a session restart. If a previously returned job ID is unknown, do not assume the command never ran or is no longer running; check current process and output state before restarting it.",
46
48
  "Interactive commands are not supported (no TTY/stdin); commands that prompt or open editors will hang or fail.",
47
49
  ].join(" ");
48
50
  const BASH_COMMAND_DESCRIPTION = "The Bash command to execute.";
49
51
  const BASH_WORKING_DIRECTORY_DESCRIPTION = "Single-line working directory for the command. If omitted, uses the current working directory. Prefer this over `cd` in the command.";
50
52
  const BASH_TIMEOUT_DESCRIPTION = "Timeout in milliseconds for foreground commands only; cannot be combined with background: true. If omitted, defaults to 60 seconds. Use a longer timeout for known slow operations like builds or large clones.";
51
53
  const BASH_MAX_OUTPUT_TOKENS_DESCRIPTION = [
52
- "Optional maximum number of output tokens to return to the model. Foreground only; omit for background jobs, which use bounded log tails.",
54
+ "Optional maximum number of output tokens to return to the model. Foreground only; for background jobs, set maxOutputTokens when reading or waiting for the job.",
53
55
  `Defaults to ${BASH_MODEL_DEFAULT_MAX_TOKENS} tokens if unset. Most commands should leave this unset. Usually it is better to run a more scoped command than to request more output. Do not set it speculatively or just in case. Only set it when you genuinely need more output, such as after a truncated result or when the user explicitly asks for more detail.`,
54
56
  `When more output is truly needed, set a value between ${BASH_MODEL_DEFAULT_MAX_TOKENS} and ${BASH_MODEL_MAX_AUTONOMOUS_TOKENS}.`,
55
57
  `Only exceed ${BASH_MODEL_MAX_AUTONOMOUS_TOKENS} when the user explicitly requests more output, up to ${BASH_MAX_OUTPUT_TOKENS}.`,
@@ -61,7 +63,7 @@ export const BASH_TOOL = {
61
63
  description: BASH_DESCRIPTION,
62
64
  parameters: Type.Object({
63
65
  background: Type.Optional(Type.Boolean({
64
- description: "Run as a session-owned background job when useful independent work can proceed while it runs, for a persistent service, or for execution across turns or interruptions. If you would only wait for completion, omit or use false. Cannot be combined with timeout or maxOutputTokens.",
66
+ description: "Run as a background job when useful independent work can proceed while it runs, for a persistent service, or for execution across turns or interruptions. If you would only wait for completion, omit or use false. Cannot be combined with timeout or maxOutputTokens.",
65
67
  })),
66
68
  command: Type.String({
67
69
  description: BASH_COMMAND_DESCRIPTION,
@@ -80,43 +82,6 @@ export const BASH_TOOL = {
80
82
  })),
81
83
  }, { additionalProperties: false }),
82
84
  };
83
- const BASH_TEMP_FILE_TIMEOUT_MS = 2_000;
84
- const BASH_TEMP_FILE_SCRIPT = `
85
- const fs = require("node:fs");
86
- const os = require("node:os");
87
- const path = require("node:path");
88
- const { randomUUID } = require("node:crypto");
89
- const file = path.join(os.tmpdir(), "tau-bash-output." + randomUUID());
90
- fs.closeSync(fs.openSync(file, "wx"));
91
- process.stdout.write(file);
92
- `.trim();
93
- async function createBashTempFilePath(backend) {
94
- try {
95
- const result = await backend.runNodeScript(BASH_TEMP_FILE_SCRIPT, [], {
96
- timeoutMs: BASH_TEMP_FILE_TIMEOUT_MS,
97
- });
98
- if (result.exitCode !== 0)
99
- return undefined;
100
- return result.stdout.trim() || undefined;
101
- }
102
- catch {
103
- return undefined;
104
- }
105
- }
106
- export async function writeBashTempFile(backend, content) {
107
- if (!content)
108
- return undefined;
109
- const tempPath = await createBashTempFilePath(backend);
110
- if (!tempPath)
111
- return undefined;
112
- try {
113
- const result = await backend.writeFile(tempPath, content);
114
- return result.path;
115
- }
116
- catch {
117
- return undefined;
118
- }
119
- }
120
85
  function formatBashOutputFileHint(args) {
121
86
  if (!args.path)
122
87
  return "";
@@ -129,7 +94,7 @@ export async function prepareBashOutput(output, captureTruncated, policy, backen
129
94
  strategy: "middle",
130
95
  });
131
96
  const fullOutputPath = maxTruncation.truncated
132
- ? await writeBashTempFile(backend, cleanOutput)
97
+ ? await writeOutputFile(backend, cleanOutput)
133
98
  : undefined;
134
99
  if (policy.gateOnExcess && maxTruncation.truncated) {
135
100
  const previewTokens = policy.previewTokens ?? BASH_MODEL_DEFAULT_PREVIEW_TOKENS;
@@ -314,7 +279,7 @@ function parseBashArgs(raw) {
314
279
  if (parsed.data.background && hasMaxOutputTokens) {
315
280
  return {
316
281
  ok: false,
317
- error: "maxOutputTokens is only available for foreground commands; background jobs use bounded log tails.",
282
+ error: "maxOutputTokens is only available for foreground commands; set it on a job read, wait, or stop instead.",
318
283
  commandForDisplay,
319
284
  };
320
285
  }
@@ -403,7 +368,7 @@ export function createBashToolDefinition(backend, cwd, jobs) {
403
368
  try {
404
369
  if (parsedArgs.data.background) {
405
370
  const id = await jobs.start(backend, command, effectiveWorkingDirectory, signal);
406
- const text = `${jobs.format([id], false).text}\nApplication readiness has not been checked.`;
371
+ const text = `Started background Bash job ${id} in ${JSON.stringify(effectiveWorkingDirectory)}. Use read_bash_job to check progress or wait_for_bash_jobs to wait for completion.`;
407
372
  const outcome = createTextToolOutcome(text, "succeeded");
408
373
  const uiEvent = {
409
374
  type: "bash_execution",
@@ -414,7 +379,7 @@ export function createBashToolDefinition(backend, cwd, jobs) {
414
379
  toolName: TOOL_NAME_BASH,
415
380
  subject: command,
416
381
  operation: "background",
417
- metadata: buildBashJobMetadata({
382
+ metadata: buildJobMetadata({
418
383
  text,
419
384
  durationMs: Math.max(0, Date.now() - callStartedAt),
420
385
  workingDirectory: effectiveWorkingDirectory,
@@ -430,6 +395,7 @@ export function createBashToolDefinition(backend, cwd, jobs) {
430
395
  const { output, exitCode, truncated: captureTruncated, aborted, timedOut, closeSignal, } = await backend.runBash(command, {
431
396
  signal,
432
397
  timeoutMs: effectiveTimeoutMs,
398
+ maxCaptureBytes: MAX_COMMAND_CAPTURE_BYTES,
433
399
  cwd: effectiveWorkingDirectory,
434
400
  });
435
401
  const durationMs = Math.max(0, Date.now() - startedAt);
@@ -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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"}