@markusylisiurunen/tau 0.3.32 → 0.3.33

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 (131) hide show
  1. package/README.md +9 -14
  2. package/dist/core/agent/agent_runtime.js +1505 -0
  3. package/dist/core/agent/agent_runtime.js.map +1 -0
  4. package/dist/core/agent/events.js +2 -0
  5. package/dist/core/agent/events.js.map +1 -0
  6. package/dist/core/commands/registry.js +0 -42
  7. package/dist/core/commands/registry.js.map +1 -1
  8. package/dist/core/config/content_loader.js +3 -1
  9. package/dist/core/config/content_loader.js.map +1 -1
  10. package/dist/core/index.js +1 -1
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/core/models/catalog.js +7 -1
  13. package/dist/core/models/catalog.js.map +1 -1
  14. package/dist/core/models/tau_model_overrides.js +10 -0
  15. package/dist/core/models/tau_model_overrides.js.map +1 -0
  16. package/dist/core/modes/index.js.map +1 -1
  17. package/dist/core/personas.js +2 -1
  18. package/dist/core/personas.js.map +1 -1
  19. package/dist/core/runtime/agent_model.js +50 -0
  20. package/dist/core/runtime/agent_model.js.map +1 -0
  21. package/dist/core/runtime/chat_runtime.js +173 -63
  22. package/dist/core/runtime/chat_runtime.js.map +1 -1
  23. package/dist/core/runtime/model_executor.js +2 -0
  24. package/dist/core/runtime/model_executor.js.map +1 -0
  25. package/dist/core/runtime/model_sampler.js +21 -0
  26. package/dist/core/runtime/model_sampler.js.map +1 -0
  27. package/dist/core/session/compaction.js +1 -1
  28. package/dist/core/session/compaction.js.map +1 -1
  29. package/dist/core/session/direct_bash.js.map +1 -1
  30. package/dist/core/session/message_accumulator.js +3 -5
  31. package/dist/core/session/message_accumulator.js.map +1 -1
  32. package/dist/core/session/runner.js +197 -98
  33. package/dist/core/session/runner.js.map +1 -1
  34. package/dist/core/subagents/agent_supervisor.js +337 -0
  35. package/dist/core/subagents/agent_supervisor.js.map +1 -0
  36. package/dist/core/tools/activity.js +2 -0
  37. package/dist/core/tools/activity.js.map +1 -0
  38. package/dist/core/tools/bash.js +64 -67
  39. package/dist/core/tools/bash.js.map +1 -1
  40. package/dist/core/tools/catalog.js +46 -24
  41. package/dist/core/tools/catalog.js.map +1 -1
  42. package/dist/core/tools/code_mode.js +65 -58
  43. package/dist/core/tools/code_mode.js.map +1 -1
  44. package/dist/core/tools/edit.js +11 -12
  45. package/dist/core/tools/edit.js.map +1 -1
  46. package/dist/core/tools/nook.js +3 -2
  47. package/dist/core/tools/nook.js.map +1 -1
  48. package/dist/core/tools/registry.js +27 -13
  49. package/dist/core/tools/registry.js.map +1 -1
  50. package/dist/core/tools/send_input_to_agent.js +75 -90
  51. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  52. package/dist/core/tools/spawn_agent.js +95 -100
  53. package/dist/core/tools/spawn_agent.js.map +1 -1
  54. package/dist/core/tools/terminate_agent.js +75 -82
  55. package/dist/core/tools/terminate_agent.js.map +1 -1
  56. package/dist/core/tools/view_image.js +11 -16
  57. package/dist/core/tools/view_image.js.map +1 -1
  58. package/dist/core/tools/wait_for_agents.js +61 -68
  59. package/dist/core/tools/wait_for_agents.js.map +1 -1
  60. package/dist/core/tools/web.js +3 -3
  61. package/dist/core/tools/web.js.map +1 -1
  62. package/dist/core/tools/write.js +10 -11
  63. package/dist/core/tools/write.js.map +1 -1
  64. package/dist/core/usage/logs.js.map +1 -1
  65. package/dist/core/utils/subagent_utils.js.map +1 -1
  66. package/dist/core/version.js +1 -1
  67. package/dist/execution/execution_environment.js.map +1 -1
  68. package/dist/execution/tool_backend_execution_environment.js +1 -7
  69. package/dist/execution/tool_backend_execution_environment.js.map +1 -1
  70. package/dist/host/client_tool_broker.js +26 -20
  71. package/dist/host/client_tool_broker.js.map +1 -1
  72. package/dist/host/hosted_ephemeral_agent_session.js +104 -167
  73. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  74. package/dist/host/local_session_host.js +310 -197
  75. package/dist/host/local_session_host.js.map +1 -1
  76. package/dist/host/session_host.js.map +1 -1
  77. package/dist/host/session_protocol_handler.js +121 -101
  78. package/dist/host/session_protocol_handler.js.map +1 -1
  79. package/dist/main.js +10 -2
  80. package/dist/main.js.map +1 -1
  81. package/dist/protocol/index.d.ts +1 -1
  82. package/dist/protocol/index.js.map +1 -1
  83. package/dist/protocol/session_protocol.d.ts +19 -21
  84. package/dist/protocol/session_protocol.js +150 -56
  85. package/dist/protocol/session_protocol.js.map +1 -1
  86. package/dist/sdk/index.d.ts +1 -1
  87. package/dist/sdk/index.js.map +1 -1
  88. package/dist/sdk/session.js +4 -21
  89. package/dist/sdk/session.js.map +1 -1
  90. package/dist/sdk/types.d.ts +2 -7
  91. package/dist/store/file_session_store.js +13 -9
  92. package/dist/store/file_session_store.js.map +1 -1
  93. package/dist/store/session_snapshot_migrations.js +133 -0
  94. package/dist/store/session_snapshot_migrations.js.map +1 -0
  95. package/dist/tui/chat_controller/command_hints.js +0 -6
  96. package/dist/tui/chat_controller/command_hints.js.map +1 -1
  97. package/dist/tui/chat_view.js +19 -12
  98. package/dist/tui/chat_view.js.map +1 -1
  99. package/dist/tui/session_chat_app.js +0 -8
  100. package/dist/tui/session_chat_app.js.map +1 -1
  101. package/dist/tui/session_chat_controller.js +94 -115
  102. package/dist/tui/session_chat_controller.js.map +1 -1
  103. package/dist/tui/tool_ui_router.js +12 -226
  104. package/dist/tui/tool_ui_router.js.map +1 -1
  105. package/dist/tui/ui/bash_execution.js +3 -3
  106. package/dist/tui/ui/bash_execution.js.map +1 -1
  107. package/dist/tui/ui/chat_message_model.js +2 -2
  108. package/dist/tui/ui/chat_message_model.js.map +1 -1
  109. package/dist/tui/ui/subagent_panel.js +39 -2
  110. package/dist/tui/ui/subagent_panel.js.map +1 -1
  111. package/dist/tui/ui/tool_ui_model.js +2 -0
  112. package/dist/tui/ui/tool_ui_model.js.map +1 -0
  113. package/dist/tui/ui/tool_ui_registry.js +256 -31
  114. package/dist/tui/ui/tool_ui_registry.js.map +1 -1
  115. package/package.json +1 -1
  116. package/dist/core/events/types.js +0 -2
  117. package/dist/core/events/types.js.map +0 -1
  118. package/dist/core/modes/mode_adapter.js +0 -2
  119. package/dist/core/modes/mode_adapter.js.map +0 -1
  120. package/dist/core/runtime/conversation_turn_runtime.js +0 -88
  121. package/dist/core/runtime/conversation_turn_runtime.js.map +0 -1
  122. package/dist/core/session/core_session.js +0 -86
  123. package/dist/core/session/core_session.js.map +0 -1
  124. package/dist/core/session/pruning.js +0 -587
  125. package/dist/core/session/pruning.js.map +0 -1
  126. package/dist/core/session/session_engine.js +0 -1246
  127. package/dist/core/session/session_engine.js.map +0 -1
  128. package/dist/core/subagents/control_plane.js +0 -339
  129. package/dist/core/subagents/control_plane.js.map +0 -1
  130. package/dist/core/subagents/subagent_engine.js +0 -258
  131. package/dist/core/subagents/subagent_engine.js.map +0 -1
@@ -0,0 +1,337 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { AgentRuntime, createAgentSpec } from "../agent/agent_runtime.js";
3
+ import { resolveAgentModel } from "../runtime/agent_model.js";
4
+ import { createDefaultCoreDeps } from "../runtime/deps.js";
5
+ import { ToolCatalog } from "../tools/catalog.js";
6
+ import { appendUsageLogEntry, getUsageCostTotal, getUsageTotals, } from "../usage/logs.js";
7
+ import { extractAssistantText } from "../utils/messages.js";
8
+ import { extractAssistantTextForProgress, formatToolUiEventForProgress, getToolResultFirstLine, } from "../utils/subagent_utils.js";
9
+ const MAX_ACTIVE_SUBAGENTS = 8;
10
+ async function raceWithAbort(promise, signal) {
11
+ if (!signal)
12
+ return await promise;
13
+ signal.throwIfAborted();
14
+ return await new Promise((resolve, reject) => {
15
+ const onAbort = () => reject(new Error("aborted"));
16
+ signal.addEventListener("abort", onAbort, { once: true });
17
+ promise.then((value) => {
18
+ signal.removeEventListener("abort", onAbort);
19
+ resolve(value);
20
+ }, (error) => {
21
+ signal.removeEventListener("abort", onAbort);
22
+ reject(error);
23
+ });
24
+ });
25
+ }
26
+ export class AgentSupervisor {
27
+ options;
28
+ records = new Map();
29
+ deps;
30
+ constructor(options) {
31
+ this.options = options;
32
+ this.deps = options.deps ?? createDefaultCoreDeps();
33
+ }
34
+ reset() {
35
+ this.retainOrigins(new Set());
36
+ }
37
+ retainOrigins(originHistoryEntryIds) {
38
+ for (const [id, record] of this.records) {
39
+ if (originHistoryEntryIds.has(record.originHistoryEntryId))
40
+ continue;
41
+ this.records.delete(id);
42
+ record.runtime.dispose();
43
+ }
44
+ }
45
+ getActiveCount() {
46
+ return [...this.records.values()].filter((record) => record.status === "running").length;
47
+ }
48
+ getActiveCompactionContext() {
49
+ const active = [...this.records.values()].filter((record) => record.status === "running");
50
+ if (active.length === 0)
51
+ return undefined;
52
+ const entries = active
53
+ .map((record) => {
54
+ const abort = record.abortRequested ? ", abort requested" : "";
55
+ return `- ${record.id}: ${record.title} (name: ${record.name}, status: ${record.status}${abort})`;
56
+ })
57
+ .join("\n");
58
+ return `<active-subagents>\n${entries}\n</active-subagents>`;
59
+ }
60
+ spawn(options) {
61
+ if (this.getActiveCount() >= MAX_ACTIVE_SUBAGENTS) {
62
+ return {
63
+ ok: false,
64
+ reason: `Subagent limit reached (max ${MAX_ACTIVE_SUBAGENTS} active). Wait for existing agents to finish.`,
65
+ };
66
+ }
67
+ const workingDirectory = options.runtimeConfig.workingDirectory.trim();
68
+ if (!workingDirectory) {
69
+ return { ok: false, reason: "Subagent workingDirectory must not be blank." };
70
+ }
71
+ const id = randomUUID();
72
+ const runtimeConfig = { ...options.runtimeConfig, workingDirectory };
73
+ const persona = {
74
+ id: `${options.personaId ?? "subagent"}-${runtimeConfig.name}`,
75
+ label: runtimeConfig.name,
76
+ description: runtimeConfig.description ?? "Background agent",
77
+ source: "project",
78
+ systemPrompt: runtimeConfig.systemPrompt,
79
+ model: runtimeConfig.model,
80
+ settings: runtimeConfig.settings ?? {},
81
+ tools: runtimeConfig.tools,
82
+ skills: [],
83
+ };
84
+ const runtime = new AgentRuntime({
85
+ spec: createAgentSpec({
86
+ ...resolveAgentModel(persona, options.config, {
87
+ includeModelNotice: true,
88
+ deps: this.deps,
89
+ }),
90
+ systemPrompt: runtimeConfig.systemPrompt,
91
+ tools: ToolCatalog.createSubagentRegistry(runtimeConfig.tools, options.backend, workingDirectory, options.config),
92
+ }),
93
+ eventSink: async (event) => await this.recordAgentEvent(id, event),
94
+ clock: this.deps.clock,
95
+ });
96
+ const record = {
97
+ id,
98
+ name: runtimeConfig.name,
99
+ title: options.title,
100
+ modelLabel: options.modelLabel,
101
+ originHistoryEntryId: options.originHistoryEntryId,
102
+ runtimeConfig,
103
+ config: options.config,
104
+ backend: options.backend,
105
+ personaId: options.personaId,
106
+ runtime,
107
+ status: "running",
108
+ costTotal: 0,
109
+ turns: 0,
110
+ toolCalls: 0,
111
+ usage: {
112
+ input: 0,
113
+ output: 0,
114
+ cacheRead: 0,
115
+ cacheWrite: 0,
116
+ contextWindowUsageTokens: 0,
117
+ contextWindow: runtimeConfig.model.contextWindow,
118
+ },
119
+ startedAt: Date.now(),
120
+ abortRequested: false,
121
+ completion: Promise.resolve(undefined),
122
+ };
123
+ this.records.set(id, record);
124
+ this.startRun(record, options.prompt);
125
+ return { ok: true, id };
126
+ }
127
+ sendInput(options) {
128
+ const record = this.records.get(options.id);
129
+ if (!record)
130
+ return { ok: false, reason: `Unknown subagent ID: ${options.id}` };
131
+ if (record.status === "running") {
132
+ return {
133
+ ok: false,
134
+ reason: `Subagent ${options.id} is already running. Wait for it to finish before sending input.`,
135
+ };
136
+ }
137
+ if (this.getActiveCount() >= MAX_ACTIVE_SUBAGENTS) {
138
+ return {
139
+ ok: false,
140
+ reason: `Subagent limit reached (max ${MAX_ACTIVE_SUBAGENTS} active). Wait for existing agents to finish.`,
141
+ };
142
+ }
143
+ this.startRun(record, options.prompt);
144
+ return { ok: true, id: record.id, name: record.name, title: record.title };
145
+ }
146
+ async waitForAgents(ids, signal) {
147
+ const missing = ids.filter((id) => !this.records.has(id));
148
+ if (missing.length > 0)
149
+ throw new Error(`Unknown subagent ID(s): ${missing.join(", ")}`);
150
+ await raceWithAbort(Promise.race(ids.map((id) => this.waitForRecord(id))), signal);
151
+ return this.getCompletedRecords(ids).map((record) => this.toResult(record));
152
+ }
153
+ async terminate(id, signal) {
154
+ const record = this.records.get(id);
155
+ if (!record)
156
+ return undefined;
157
+ if (record.status === "running") {
158
+ record.abortRequested = true;
159
+ record.runtime.interrupt();
160
+ await this.emit({ type: "subagent_abort_requested", id });
161
+ }
162
+ return this.toResult(await raceWithAbort(this.waitForRecord(id), signal));
163
+ }
164
+ getSnapshot(id) {
165
+ const record = this.records.get(id);
166
+ return record ? this.toSnapshot(record) : undefined;
167
+ }
168
+ listSnapshots() {
169
+ return [...this.records.values()].map((record) => this.toSnapshot(record));
170
+ }
171
+ startRun(record, prompt) {
172
+ record.status = "running";
173
+ record.startedAt = Date.now();
174
+ record.finishedAt = undefined;
175
+ record.abortRequested = false;
176
+ record.error = undefined;
177
+ record.finalText = undefined;
178
+ record.completion = this.emit({ type: "subagent_spawned", state: this.toSnapshot(record) })
179
+ .then(async () => {
180
+ if (record.abortRequested) {
181
+ throw new Error("subagent was interrupted");
182
+ }
183
+ return await record.runtime.submit(prompt);
184
+ })
185
+ .then((result) => {
186
+ if (record.abortRequested || result.aborted) {
187
+ throw new Error("subagent was interrupted");
188
+ }
189
+ if (result.blocked)
190
+ throw new Error(result.blocked.message);
191
+ if (result.limitReached)
192
+ throw new Error(result.limitReached.message);
193
+ const assistant = [...record.runtime.rawHistory]
194
+ .reverse()
195
+ .find((message) => message.role === "assistant");
196
+ const finalText = assistant ? extractAssistantText(assistant).trim() : "";
197
+ if (!finalText)
198
+ throw new Error("Sub-agent produced an empty response.");
199
+ record.status = "success";
200
+ record.finalText = finalText;
201
+ return record;
202
+ })
203
+ .catch((error) => {
204
+ const aborted = record.abortRequested;
205
+ record.status = aborted ? "aborted" : "error";
206
+ record.error = aborted ? undefined : error instanceof Error ? error.message : String(error);
207
+ return record;
208
+ })
209
+ .then(async (resolved) => {
210
+ resolved.finishedAt = Date.now();
211
+ if (this.records.get(resolved.id) === resolved) {
212
+ await this.emit({ type: "subagent_finished", state: this.toSnapshot(resolved) });
213
+ }
214
+ return resolved;
215
+ });
216
+ }
217
+ async recordAgentEvent(id, event) {
218
+ const record = this.records.get(id);
219
+ if (!record)
220
+ return;
221
+ let text = "";
222
+ switch (event.type) {
223
+ case "assistant_final": {
224
+ const usage = getUsageTotals(event.message.usage);
225
+ const cost = getUsageCostTotal(event.message.usage);
226
+ record.turns += 1;
227
+ record.costTotal += cost;
228
+ record.usage = {
229
+ input: record.usage.input + usage.input,
230
+ output: record.usage.output + usage.output,
231
+ cacheRead: record.usage.cacheRead + usage.cacheRead,
232
+ cacheWrite: record.usage.cacheWrite + usage.cacheWrite,
233
+ contextWindowUsageTokens: usage.input + usage.output + usage.cacheRead + usage.cacheWrite,
234
+ contextWindow: record.runtimeConfig.model.contextWindow,
235
+ };
236
+ (this.options.recordUsage ?? appendUsageLogEntry)({
237
+ timestamp: event.message.timestamp,
238
+ sessionId: record.id,
239
+ personaId: record.personaId ?? event.personaId,
240
+ provider: event.message.provider,
241
+ model: event.message.model,
242
+ api: event.message.api,
243
+ reasoningEffort: event.reasoningEffort,
244
+ usage,
245
+ cost: { total: cost },
246
+ agent: { type: "subagent", name: record.name },
247
+ });
248
+ text = extractAssistantTextForProgress(event.message) ?? "";
249
+ break;
250
+ }
251
+ case "tool_call_admitted":
252
+ record.toolCalls += 1;
253
+ return;
254
+ case "tool_activity":
255
+ text = formatToolUiEventForProgress(event.activity) ?? "";
256
+ break;
257
+ case "tool_result":
258
+ if (event.message.isError) {
259
+ const firstLine = getToolResultFirstLine(event.message);
260
+ text = firstLine
261
+ ? `${event.message.toolName}: ${firstLine}`
262
+ : `${event.message.toolName}: tool returned an error`;
263
+ }
264
+ break;
265
+ case "turn_started":
266
+ text = "assistant: thinking";
267
+ break;
268
+ case "turn_finished":
269
+ if (event.outcome === "completed")
270
+ text = "done";
271
+ break;
272
+ case "notice":
273
+ text = event.text;
274
+ break;
275
+ default:
276
+ return;
277
+ }
278
+ await this.emit({
279
+ type: "subagent_progress",
280
+ id,
281
+ text,
282
+ costTotal: record.costTotal,
283
+ turns: record.turns,
284
+ toolCalls: record.toolCalls,
285
+ usage: { ...record.usage },
286
+ });
287
+ }
288
+ getCompletedRecords(ids) {
289
+ return ids
290
+ .map((id) => this.records.get(id))
291
+ .filter((record) => record !== undefined && record.status !== "running");
292
+ }
293
+ async waitForRecord(id) {
294
+ const record = this.records.get(id);
295
+ if (!record)
296
+ throw new Error(`Unknown subagent ID: ${id}`);
297
+ return await record.completion;
298
+ }
299
+ toSnapshot(record) {
300
+ return {
301
+ id: record.id,
302
+ name: record.name,
303
+ title: record.title,
304
+ modelLabel: record.modelLabel,
305
+ status: record.status,
306
+ costTotal: record.costTotal,
307
+ turns: record.turns,
308
+ toolCalls: record.toolCalls,
309
+ usage: { ...record.usage },
310
+ startedAt: record.startedAt,
311
+ finishedAt: record.finishedAt,
312
+ abortRequested: record.abortRequested,
313
+ error: record.error,
314
+ finalText: record.finalText,
315
+ };
316
+ }
317
+ toResult(record) {
318
+ const { usage: _usage, runtime: _runtime, completion: _completion, ...result } = record;
319
+ return {
320
+ id: result.id,
321
+ name: result.name,
322
+ title: result.title,
323
+ status: result.status,
324
+ costTotal: result.costTotal,
325
+ turns: result.turns,
326
+ toolCalls: result.toolCalls,
327
+ finalText: result.finalText,
328
+ error: result.error,
329
+ startedAt: result.startedAt,
330
+ finishedAt: result.finishedAt,
331
+ };
332
+ }
333
+ async emit(event) {
334
+ await this.options.onEvent(event);
335
+ }
336
+ }
337
+ //# sourceMappingURL=agent_supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent_supervisor.js","sourceRoot":"","sources":["../../../src/core/subagents/agent_supervisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../../src/core/tools/activity.ts"],"names":[],"mappings":""}
@@ -3,11 +3,10 @@ import stripAnsi from "strip-ansi";
3
3
  import { Type } from "typebox";
4
4
  import { z } from "zod";
5
5
  import { formatCwd } from "../utils/format.js";
6
- import { createToolError, createToolResult } from "../utils/messages.js";
7
6
  import { bytesToTokens, formatTokenEstimate } from "../utils/token.js";
8
7
  import { buildHeadTailPreviewLines } from "../utils/tool_preview.js";
9
8
  import { formatBytes, TRUNCATION_MARKER, truncateForTokens, } from "../utils/truncate.js";
10
- import { createToolDispatch } from "./registry.js";
9
+ import { createTextToolOutcome, executeTool, } from "./registry.js";
11
10
  import { TOOL_NAME_BASH } from "./tool_names.js";
12
11
  const BASH_MODEL_DEFAULT_MAX_TOKENS = 8192;
13
12
  const BASH_MODEL_DEFAULT_PREVIEW_TOKENS = 2048;
@@ -278,18 +277,19 @@ function getBashDisplayTarget(raw) {
278
277
  }
279
278
  return parsedArgs.data.commandForDisplay.split(/\r?\n/)[0] ?? parsedArgs.data.commandForDisplay;
280
279
  }
281
- export function createBashToolDefinition(backend) {
280
+ export function createBashToolDefinition(backend, cwd) {
282
281
  return {
283
282
  schema: BASH_TOOL,
284
- getDisplayTarget: (toolCall) => getBashDisplayTarget(toolCall.arguments),
285
- async dispatch(toolCall, signal, context) {
283
+ describe: (toolCall) => ({ headerTarget: getBashDisplayTarget(toolCall.arguments) }),
284
+ async execute(toolCall, context) {
285
+ const { signal } = context;
286
286
  const parsedArgs = parseBashArgs(toolCall.arguments);
287
287
  const commandForDisplay = parsedArgs.ok
288
288
  ? parsedArgs.data.commandForDisplay
289
289
  : parsedArgs.commandForDisplay;
290
290
  const headerTarget = getBashDisplayTarget(toolCall.arguments);
291
291
  const blocked = (reason) => {
292
- const toolResult = createToolError(toolCall, reason);
292
+ const outcome = createTextToolOutcome(reason, "blocked");
293
293
  const uiEvent = {
294
294
  type: "bash_blocked",
295
295
  toolCallId: toolCall.id,
@@ -297,74 +297,71 @@ export function createBashToolDefinition(backend) {
297
297
  headerTarget,
298
298
  reason,
299
299
  };
300
- return { toolResult, uiEvent };
300
+ return { content: outcome.content, outcome: outcome.outcome, uiEvent };
301
301
  };
302
302
  if (!parsedArgs.ok) {
303
- return createToolDispatch(() => blocked(`Invalid arguments: ${parsedArgs.error}`));
303
+ return executeTool(context, () => blocked(`Invalid arguments: ${parsedArgs.error}`));
304
304
  }
305
305
  const { command, workingDirectory, timeout, maxOutputTokens, hasMaxOutputTokens } = parsedArgs.data;
306
306
  const effectiveWorkingDirectory = resolveBashWorkingDirectory({
307
- contextCwd: context.cwd,
307
+ contextCwd: cwd,
308
308
  workingDirectory,
309
309
  });
310
- return {
311
- startedUiEvent: {
312
- type: "bash_started",
313
- toolCallId: toolCall.id,
314
- command,
315
- headerTarget,
316
- },
317
- run: (async () => {
318
- try {
319
- const startedAt = Date.now();
320
- const { output, exitCode, truncated: captureTruncated, } = await backend.runBash(command, {
321
- signal,
322
- timeoutMs: timeout ?? BASH_DEFAULT_TIMEOUT_MS,
323
- cwd: effectiveWorkingDirectory,
324
- });
325
- const durationMs = Math.max(0, Date.now() - startedAt);
326
- const outputPolicy = getBashOutputPolicy({
327
- mode: "model",
328
- maxOutputTokens,
329
- hasMaxOutputTokens,
330
- });
331
- const truncationInfo = await prepareBashOutput(output, captureTruncated, outputPolicy, backend);
332
- const toolText = formatBashToolResultText({ truncationInfo, exitCode });
333
- const isError = exitCode === null || exitCode !== 0;
334
- const uiText = buildBashUiText({
335
- truncationInfo,
336
- exitCode,
337
- durationMs,
338
- workingDirectory: workingDirectory ? effectiveWorkingDirectory : undefined,
339
- fullText: toolText,
340
- });
341
- const toolResult = createToolResult(toolCall, toolText, isError);
342
- const uiEvent = {
343
- type: "bash_execution",
344
- toolCallId: toolCall.id,
345
- command,
346
- headerTarget,
347
- exitCode,
348
- truncationInfo,
349
- uiText,
350
- durationMs,
351
- };
352
- return { toolResult, uiEvent };
353
- }
354
- catch (e) {
355
- const msg = `Bash tool execution failed: ${e instanceof Error ? e.message : String(e)}`;
356
- const toolResult = createToolError(toolCall, msg);
357
- const uiEvent = {
358
- type: "bash_blocked",
359
- command: commandForDisplay,
360
- headerTarget,
361
- reason: msg,
362
- toolCallId: toolCall.id,
363
- };
364
- return { toolResult, uiEvent };
365
- }
366
- })(),
367
- };
310
+ return executeTool(context, async () => {
311
+ try {
312
+ const startedAt = Date.now();
313
+ const { output, exitCode, truncated: captureTruncated, aborted, timedOut, } = await backend.runBash(command, {
314
+ signal,
315
+ timeoutMs: timeout ?? BASH_DEFAULT_TIMEOUT_MS,
316
+ cwd: effectiveWorkingDirectory,
317
+ });
318
+ const durationMs = Math.max(0, Date.now() - startedAt);
319
+ const outputPolicy = getBashOutputPolicy({
320
+ mode: "model",
321
+ maxOutputTokens,
322
+ hasMaxOutputTokens,
323
+ });
324
+ const truncationInfo = await prepareBashOutput(output, captureTruncated, outputPolicy, backend);
325
+ const toolText = formatBashToolResultText({ truncationInfo, exitCode });
326
+ const isError = exitCode === null || exitCode !== 0;
327
+ const uiText = buildBashUiText({
328
+ truncationInfo,
329
+ exitCode,
330
+ durationMs,
331
+ workingDirectory: workingDirectory ? effectiveWorkingDirectory : undefined,
332
+ fullText: toolText,
333
+ });
334
+ const outcome = createTextToolOutcome(toolText, aborted || timedOut ? "cancelled" : isError ? "failed" : "succeeded");
335
+ const uiEvent = {
336
+ type: "bash_execution",
337
+ toolCallId: toolCall.id,
338
+ command,
339
+ headerTarget,
340
+ exitCode,
341
+ truncationInfo,
342
+ uiText,
343
+ durationMs,
344
+ };
345
+ return { content: outcome.content, outcome: outcome.outcome, uiEvent };
346
+ }
347
+ catch (e) {
348
+ const msg = `Bash tool execution failed: ${e instanceof Error ? e.message : String(e)}`;
349
+ const outcome = createTextToolOutcome(msg, "failed");
350
+ const uiEvent = {
351
+ type: "bash_blocked",
352
+ command: commandForDisplay,
353
+ headerTarget,
354
+ reason: msg,
355
+ toolCallId: toolCall.id,
356
+ };
357
+ return { content: outcome.content, outcome: outcome.outcome, uiEvent };
358
+ }
359
+ }, {
360
+ type: "bash_started",
361
+ toolCallId: toolCall.id,
362
+ command,
363
+ headerTarget,
364
+ });
368
365
  },
369
366
  };
370
367
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/core/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,WAAW,EACX,iBAAiB,EAEjB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAW9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAC3C,MAAM,iCAAiC,GAAG,IAAI,CAAC;AAC/C,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAC/C,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAQpD,MAAM,yBAAyB,GAAqB;IAClD,SAAS,EAAE,6BAA6B;IACxC,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,iCAAiC;CACjD,CAAC;AAEF,MAAM,gBAAgB,GAAqB;IACzC,SAAS,EAAE,oBAAoB;CAChC,CAAC;AAEF,SAAS,iBAAiB,CAAC,KAAyB;IAClD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACrE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,6BAA6B,CAAC,EAAE,sBAAsB,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAInC;IACC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,6BAA6B,CAAC;QAC3F,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,MAAM,gBAAgB,GAAG;IACvB,iHAAiH;IACjH,gHAAgH;CACjH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;AAEhE,MAAM,kCAAkC,GACtC,0HAA0H,CAAC;AAE7H,MAAM,wBAAwB,GAC5B,0IAA0I,CAAC;AAE7I,MAAM,kCAAkC,GAAG;IACzC,kEAAkE;IAClE,eAAe,6BAA6B,0TAA0T;IACtW,yDAAyD,6BAA6B,QAAQ,gCAAgC,GAAG;IACjI,eAAe,gCAAgC,yDAAyD,sBAAsB,GAAG;IACjI,6DAA6D,gCAAgC,gBAAgB;IAC7G,2CAA2C,6BAA6B,+BAA+B,iCAAiC,sCAAsC;CAC/K,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CACrB;QACE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,wBAAwB;SACtC,CAAC;QACF,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAC7B,IAAI,CAAC,MAAM,CAAC;YACV,WAAW,EAAE,kCAAkC;SAChD,CAAC,CACH;QACD,OAAO,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,MAAM,CAAC;YACV,WAAW,EAAE,wBAAwB;SACtC,CAAC,CACH;QACD,eAAe,EAAE,IAAI,CAAC,QAAQ,CAC5B,IAAI,CAAC,OAAO,CAAC;YACX,WAAW,EAAE,kCAAkC;YAC/C,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,sBAAsB;SAChC,CAAC,CACH;KACF,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC;CACF,CAAC;AAUF,MAAM,yBAAyB,GAAG,KAAK,CAAC;AACxC,MAAM,qBAAqB,GAAG;;;;;;;;CAQ7B,CAAC,IAAI,EAAE,CAAC;AAET,KAAK,UAAU,sBAAsB,CAAC,OAA6B;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE,EAAE;YACpE,SAAS,EAAE,yBAAyB;SACrC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,OAA6B,EAC7B,OAAe;IAEf,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAuB;IACvD,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,yBAAyB,IAAI,CAAC,IAAI,kIAAkI,CAAC;AAC9K,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,gBAAyB,EACzB,MAAwB,EACxB,OAA6B;IAE7B,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,iBAAiB,CAAC,WAAW,EAAE;QACnD,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS;QAC5C,CAAC,CAAC,MAAM,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,MAAM,CAAC,YAAY,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,iCAAiC,CAAC;QAChF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,WAAW,EAAE;YACvD,SAAS,EAAE,aAAa;YACxB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,iBAAiB,CAAC,OAAO;YACjC,KAAK,EAAE,iBAAiB;YACxB,gBAAgB;YAChB,KAAK,EAAE,IAAI;YACX,cAAc;SACf,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,aAAa,CAAC,OAAO;QAC7B,KAAK,EAAE,aAAa;QACpB,gBAAgB;QAChB,cAAc;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAGxC;IACC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC1C,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC;IAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC;IAE5C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,2GAA2G,kBAAkB,WAAW,wBAAwB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,yHAAyH,6BAA6B,IAAI,gCAAgC,iBAAiB,gCAAgC,yDAAyD,sBAAsB,+DAA+D,gCAAgC,iBAAiB,CAAC;QACtnB,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,WAAW,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,qCAAqC,CAAC;IAC/C,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC;IACvC,MAAM,SAAS,GACb,KAAK,CAAC,SAAS,IAAI,gBAAgB;QACjC,CAAC,CAAC,sCAAsC,KAAK,CAAC,WAAW,YAAY,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,KAAK,CAAC,UAAU,YAAY,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,4BAA4B,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,wBAAwB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,GAAG;QACrS,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAIzC;IACC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC;IAEnE,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,aAAa,CAAC;IAClE,MAAM,SAAS,GACb,KAAK,CAAC,SAAS,IAAI,gBAAgB;QACjC,CAAC,CAAC,sCAAsC,KAAK,CAAC,WAAW,YAAY,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,KAAK,CAAC,UAAU,YAAY,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,4BAA4B,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,wBAAwB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,GAAG;QACrS,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,eAAe,GAAG,KAAK,OAAO,KAAK,gBAAgB,GAAG,SAAS,GAAG,QAAQ,EAAE,CAAC;IACnF,OAAO,yBAAyB,eAAe,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,yBAAyB,GAAG,CAAC,CAAC;AACpC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAEpC,SAAS,gBAAgB,CAAC,UAAqC;IAC7D,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,IAAI,EAAE,GAAG,MAAM;QAAE,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACrD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAO/B;IACC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACtD,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC;IAEnD,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,aAAa,EAAE;QAClE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,yBAAyB;QAC/D,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,yBAAyB;KAChE,CAAC,CAAC;IACH,MAAM,YAAY,GAAiB,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,EAAE,IAAI;KACX,CAAC,CAAC,CAAC;IAEJ,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACtC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACtC,MAAM,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,EAAE,CAAC;IACtE,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB;QACjD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAClC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,QAAQ,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IACjG,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACxC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,IAAI,qBAAqB,EAAE,CAAC;QAC1B,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC5C,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC7B,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChD,MAAM,SAAS,GAAiB,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/F,OAAO;QACL,YAAY;QACZ,UAAU,EAAE,WAAW;QACvB,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,IAGpC;IACC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACnF,CAAC;AAED,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,SAAS,aAAa,CAAC,GAAY;IAajC,MAAM,SAAS,GACb,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAE,GAA+B,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,MAAM,kBAAkB,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9E,MAAM,iBAAiB,GACrB,SAAS,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;QAChD,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,mBAAmB;QACjD,CAAC,CAAC,mBAAmB,CAAC;IAE1B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACnE,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;YAC5B,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB;YAC9C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;YAC5B,eAAe,EAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YAC/D,kBAAkB;YAClB,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;SACvC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAY;IACxC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA6B;IACpE,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxE,KAAK,CAAC,QAAQ,CACZ,QAAkB,EAClB,MAAmB,EACnB,OAA4B;YAE5B,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,iBAAiB,GAAG,UAAU,CAAC,EAAE;gBACrC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB;gBACnC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;YACjC,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAE9D,MAAM,OAAO,GAAG,CAAC,MAAc,EAAsB,EAAE;gBACrD,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM,OAAO,GAAgB;oBAC3B,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,OAAO,EAAE,iBAAiB;oBAC1B,YAAY;oBACZ,MAAM;iBACP,CAAC;gBACF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YACjC,CAAC,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,sBAAsB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAC/E,UAAU,CAAC,IAAI,CAAC;YAElB,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;gBAC5D,UAAU,EAAE,OAAO,CAAC,GAAG;gBACvB,gBAAgB;aACjB,CAAC,CAAC;YAEH,OAAO;gBACL,cAAc,EAAE;oBACd,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,OAAO;oBACP,YAAY;iBACb;gBACD,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE;oBACf,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC7B,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EAAE,gBAAgB,GAC5B,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;4BACjC,MAAM;4BACN,SAAS,EAAE,OAAO,IAAI,uBAAuB;4BAC7C,GAAG,EAAE,yBAAyB;yBAC/B,CAAC,CAAC;wBACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;wBAEvD,MAAM,YAAY,GAAG,mBAAmB,CAAC;4BACvC,IAAI,EAAE,OAAO;4BACb,eAAe;4BACf,kBAAkB;yBACnB,CAAC,CAAC;wBACH,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAC5C,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,OAAO,CACR,CAAC;wBACF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;wBACxE,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC;wBACpD,MAAM,MAAM,GAAG,eAAe,CAAC;4BAC7B,cAAc;4BACd,QAAQ;4BACR,UAAU;4BACV,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS;4BAC1E,QAAQ,EAAE,QAAQ;yBACnB,CAAC,CAAC;wBAEH,MAAM,UAAU,GAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACpF,MAAM,OAAO,GAAgB;4BAC3B,IAAI,EAAE,gBAAgB;4BACtB,UAAU,EAAE,QAAQ,CAAC,EAAE;4BACvB,OAAO;4BACP,YAAY;4BACZ,QAAQ;4BACR,cAAc;4BACd,MAAM;4BACN,UAAU;yBACX,CAAC;wBACF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;oBACjC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,GAAG,GAAG,+BAA+B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxF,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAClD,MAAM,OAAO,GAAgB;4BAC3B,IAAI,EAAE,cAAc;4BACpB,OAAO,EAAE,iBAAiB;4BAC1B,YAAY;4BACZ,MAAM,EAAE,GAAG;4BACX,UAAU,EAAE,QAAQ,CAAC,EAAE;yBACxB,CAAC;wBACF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;oBACjC,CAAC;gBACH,CAAC,CAAC,EAAE;aACL,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/core/tools/bash.ts"],"names":[],"mappings":"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"}