@markusylisiurunen/tau 0.2.7 → 0.2.9

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 (81) hide show
  1. package/README.md +39 -34
  2. package/dist/core/commands/registry.js +2 -0
  3. package/dist/core/commands/registry.js.map +1 -1
  4. package/dist/core/config/content_loader.js +75 -12
  5. package/dist/core/config/content_loader.js.map +1 -1
  6. package/dist/core/events/index.js.map +1 -1
  7. package/dist/core/events/types.js.map +1 -1
  8. package/dist/core/index.js +4 -2
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/core/personas.js +9 -3
  11. package/dist/core/personas.js.map +1 -1
  12. package/dist/core/session/core_session.js +6 -0
  13. package/dist/core/session/core_session.js.map +1 -1
  14. package/dist/core/session/runner.js +53 -189
  15. package/dist/core/session/runner.js.map +1 -1
  16. package/dist/core/session/session_engine.js +26 -1
  17. package/dist/core/session/session_engine.js.map +1 -1
  18. package/dist/core/subagents/control_plane.js +256 -0
  19. package/dist/core/subagents/control_plane.js.map +1 -0
  20. package/dist/core/subagents/explore.js +6 -4
  21. package/dist/core/subagents/explore.js.map +1 -1
  22. package/dist/core/subagents/subagent_engine.js +31 -19
  23. package/dist/core/subagents/subagent_engine.js.map +1 -1
  24. package/dist/core/subagents/web.js +7 -4
  25. package/dist/core/subagents/web.js.map +1 -1
  26. package/dist/core/tools/catalog.js +24 -6
  27. package/dist/core/tools/catalog.js.map +1 -1
  28. package/dist/core/tools/communicate.js +45 -0
  29. package/dist/core/tools/communicate.js.map +1 -0
  30. package/dist/core/tools/edit.js +1 -1
  31. package/dist/core/tools/edit.js.map +1 -1
  32. package/dist/core/tools/execution_backend.js +2 -2
  33. package/dist/core/tools/execution_backend.js.map +1 -1
  34. package/dist/core/tools/registry.js.map +1 -1
  35. package/dist/core/tools/spawn_agent.js +173 -0
  36. package/dist/core/tools/spawn_agent.js.map +1 -0
  37. package/dist/core/tools/subagent_ui.js +39 -0
  38. package/dist/core/tools/subagent_ui.js.map +1 -0
  39. package/dist/core/tools/terminate_agent.js +141 -0
  40. package/dist/core/tools/terminate_agent.js.map +1 -0
  41. package/dist/core/tools/wait_for_agent.js +178 -0
  42. package/dist/core/tools/wait_for_agent.js.map +1 -0
  43. package/dist/core/utils/auto_retry.js +27 -2
  44. package/dist/core/utils/auto_retry.js.map +1 -1
  45. package/dist/core/utils/{fork.js → compact.js} +2 -2
  46. package/dist/core/utils/compact.js.map +1 -0
  47. package/dist/core/utils/format.js +17 -0
  48. package/dist/core/utils/format.js.map +1 -1
  49. package/dist/core/utils/project_files.js +31 -5
  50. package/dist/core/utils/project_files.js.map +1 -1
  51. package/dist/core/utils/subagent_utils.js +4 -0
  52. package/dist/core/utils/subagent_utils.js.map +1 -1
  53. package/dist/core/version.js +1 -1
  54. package/dist/tui/chat_controller.js +65 -16
  55. package/dist/tui/chat_controller.js.map +1 -1
  56. package/dist/tui/chat_view.js +29 -5
  57. package/dist/tui/chat_view.js.map +1 -1
  58. package/dist/tui/tool_ui_router.js +89 -77
  59. package/dist/tui/tool_ui_router.js.map +1 -1
  60. package/dist/tui/ui/chat_message_model.js +0 -2
  61. package/dist/tui/ui/chat_message_model.js.map +1 -1
  62. package/dist/tui/ui/custom_editor.js +42 -6
  63. package/dist/tui/ui/custom_editor.js.map +1 -1
  64. package/dist/tui/ui/subagent_editor_pane.js +67 -0
  65. package/dist/tui/ui/subagent_editor_pane.js.map +1 -0
  66. package/dist/tui/ui/subagent_panel.js +249 -0
  67. package/dist/tui/ui/subagent_panel.js.map +1 -0
  68. package/dist/tui/ui/theme/theme.js +1 -0
  69. package/dist/tui/ui/theme/theme.js.map +1 -1
  70. package/dist/tui/ui/tool_ui_registry.js +226 -41
  71. package/dist/tui/ui/tool_ui_registry.js.map +1 -1
  72. package/package.json +1 -1
  73. package/dist/core/tools/fork.js +0 -239
  74. package/dist/core/tools/fork.js.map +0 -1
  75. package/dist/core/tools/task.js +0 -151
  76. package/dist/core/tools/task.js.map +0 -1
  77. package/dist/core/tools/task_schema.js +0 -29
  78. package/dist/core/tools/task_schema.js.map +0 -1
  79. package/dist/core/utils/fork.js.map +0 -1
  80. package/dist/tui/ui/task_execution.js +0 -256
  81. package/dist/tui/ui/task_execution.js.map +0 -1
@@ -1,151 +0,0 @@
1
- import { z } from "zod";
2
- import { getSubagentDefinitionFromString } from "../subagents/registry.js";
3
- import { runSubagentToCompletion } from "../subagents/subagent_engine.js";
4
- import { createToolError, createToolResult } from "../utils/messages.js";
5
- import { AsyncUiEventQueue } from "../utils/subagent_utils.js";
6
- import { TASK_TOOL } from "./task_schema.js";
7
- const taskArgsSchema = z.object({
8
- name: z.string().trim().catch(""),
9
- title: z.string().trim().catch(""),
10
- prompt: z.string().trim().catch(""),
11
- });
12
- function parseTaskArgs(raw) {
13
- const parsed = taskArgsSchema.safeParse(raw);
14
- return parsed.success ? parsed.data : { name: "", title: "", prompt: "" };
15
- }
16
- function getEnabledSubagentConfig(context, definition) {
17
- const persona = context?.persona;
18
- const config = persona?.subagents;
19
- return config?.[definition.name];
20
- }
21
- export function createTaskToolDefinition(backend) {
22
- return {
23
- schema: TASK_TOOL,
24
- async dispatch(toolCall, _riskLevel, signal, context) {
25
- const { name, title, prompt } = parseTaskArgs(toolCall.arguments);
26
- const blocked = (reason, details) => {
27
- const toolResult = createToolError(toolCall, reason);
28
- const uiEvent = {
29
- type: "task_blocked",
30
- toolCallId: toolCall.id,
31
- kind: "task",
32
- name: details?.name ?? (name || undefined),
33
- title: details?.title ?? (title || "(task)"),
34
- reason,
35
- };
36
- return { kind: "single", toolResult, uiEvent };
37
- };
38
- if (!name || !title || !prompt) {
39
- const missing = [
40
- !name ? "name" : undefined,
41
- !title ? "title" : undefined,
42
- !prompt ? "prompt" : undefined,
43
- ].filter(Boolean);
44
- return blocked(`missing required parameter(s): ${missing.join(", ")}.`, {
45
- title: title || "(task)",
46
- });
47
- }
48
- if (!context?.persona.subagents || Object.keys(context.persona.subagents).length === 0) {
49
- return blocked("task tool is not enabled for the current persona.", { name, title });
50
- }
51
- const definition = getSubagentDefinitionFromString(name);
52
- if (!definition) {
53
- return blocked(`unknown sub-agent '${name}'.`, { name, title });
54
- }
55
- const personaConfig = getEnabledSubagentConfig(context, definition);
56
- if (!personaConfig) {
57
- return blocked(`sub-agent '${definition.name}' is not enabled for the current persona.`, {
58
- name: definition.name,
59
- title,
60
- });
61
- }
62
- const uiQueue = new AsyncUiEventQueue();
63
- let costTotal = 0;
64
- let turns = 0;
65
- let toolCalls = 0;
66
- const pushProgress = (eventText, nextCostTotal, nextTurns, nextToolCalls) => {
67
- costTotal = nextCostTotal;
68
- turns = nextTurns;
69
- toolCalls = nextToolCalls;
70
- uiQueue.push({
71
- type: "task_progress",
72
- toolCallId: toolCall.id,
73
- kind: "task",
74
- name: definition.name,
75
- title,
76
- event: eventText,
77
- costTotal,
78
- turns,
79
- toolCalls,
80
- });
81
- };
82
- const run = (async () => {
83
- let status = "success";
84
- let finalText = "";
85
- try {
86
- // Emit task started event
87
- pushProgress("task started", 0, 0, 0);
88
- const result = await runSubagentToCompletion({
89
- definition,
90
- personaConfig,
91
- prompt,
92
- config: context.config,
93
- authPath: context.authPath,
94
- backend,
95
- signal: signal ?? new AbortController().signal,
96
- onProgress: (e) => pushProgress(e.text, e.costTotal, e.turns, e.toolCalls),
97
- });
98
- const text = result.finalText.trim();
99
- if (!text) {
100
- throw new Error("sub-agent returned an empty response");
101
- }
102
- finalText = text;
103
- costTotal = result.costTotal;
104
- }
105
- catch (err) {
106
- if (signal?.aborted) {
107
- status = "aborted";
108
- finalText = "task aborted";
109
- }
110
- else {
111
- status = "error";
112
- finalText = `task failed: ${err instanceof Error ? err.message : String(err)}`;
113
- }
114
- }
115
- finally {
116
- uiQueue.close();
117
- }
118
- const toolResult = status === "success"
119
- ? createToolResult(toolCall, finalText, false)
120
- : createToolResult(toolCall, finalText, true);
121
- const uiEvent = {
122
- type: "task_finished",
123
- toolCallId: toolCall.id,
124
- kind: "task",
125
- name: definition.name,
126
- title,
127
- costTotal,
128
- turns,
129
- toolCalls,
130
- status,
131
- finalOutput: finalText,
132
- };
133
- return { kind: "single", toolResult, uiEvent };
134
- })();
135
- return {
136
- kind: "phased",
137
- startedUiEvent: {
138
- type: "task_started",
139
- toolCallId: toolCall.id,
140
- kind: "task",
141
- name: definition.name,
142
- title,
143
- },
144
- uiEvents: uiQueue,
145
- run,
146
- };
147
- },
148
- };
149
- }
150
- export { TASK_TOOL };
151
- //# sourceMappingURL=task.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/core/tools/task.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- const TASK_DESCRIPTION = [
3
- "Run an isolated sub-agent task to completion and return only its final text output.",
4
- "Use this to delegate narrow exploration or focused work to a constrained sub-agent.",
5
- "See your system instructions for available sub-agents, their capabilities, and intended use cases.",
6
- ].join(" ");
7
- const TASK_NAME_DESCRIPTION = [
8
- "Sub-agent name to run.",
9
- "Available sub-agents depend on the current persona configuration.",
10
- ].join(" ");
11
- const TASK_TITLE_DESCRIPTION = [
12
- "A short human-friendly UI title shown while the task runs.",
13
- "Do not use title case; all lower-case is preferred except for proper nouns.",
14
- ].join(" ");
15
- const TASK_PROMPT_DESCRIPTION = [
16
- "The prompt to send to the sub-agent.",
17
- "This is the only input the sub-agent will receive; it must be self-contained and specific.",
18
- "Include all necessary context and instructions in the prompt for the sub-agent to complete the task successfully.",
19
- ].join(" ");
20
- export const TASK_TOOL = {
21
- name: "task",
22
- description: TASK_DESCRIPTION,
23
- parameters: Type.Object({
24
- name: Type.String({ description: TASK_NAME_DESCRIPTION }),
25
- title: Type.String({ description: TASK_TITLE_DESCRIPTION }),
26
- prompt: Type.String({ description: TASK_PROMPT_DESCRIPTION }),
27
- }, { additionalProperties: false }),
28
- };
29
- //# sourceMappingURL=task_schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task_schema.js","sourceRoot":"","sources":["../../../src/core/tools/task_schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,gBAAgB,GAAG;IACvB,qFAAqF;IACrF,qFAAqF;IACrF,oGAAoG;CACrG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,qBAAqB,GAAG;IAC5B,wBAAwB;IACxB,mEAAmE;CACpE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,sBAAsB,GAAG;IAC7B,4DAA4D;IAC5D,6EAA6E;CAC9E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,uBAAuB,GAAG;IAC9B,sCAAsC;IACtC,4FAA4F;IAC5F,mHAAmH;CACpH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CACrB;QACE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;QACzD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC3D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;KAC9D,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/core/utils/fork.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,2BAA2B,CAAC,OAA2B;IACrE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,MAAM,YAAY,GAAG,OAA2B,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,MAAM,QAAQ,GAAG,KAAiB,CAAC;oBACnC,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrF,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,uCAAuC;gBACzC,CAAC;YACH,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,OAA4B,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,QAAQ,eAAe,CAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC"}
@@ -1,256 +0,0 @@
1
- import { Text, truncateToWidth, visibleWidth } from "@mariozechner/pi-tui";
2
- import { formatAdaptiveNumber } from "../../core/utils/format.js";
3
- import { PaddedContainer } from "./components/padded_container.js";
4
- import { buildHeaderLine, buildSection, renderToolOutput, } from "./tool_output.js";
5
- function formatCost(costTotal) {
6
- return `$${formatAdaptiveNumber(costTotal, 2, 5)}`;
7
- }
8
- function formatEventsForDisplay(lastEvents) {
9
- const filtered = [];
10
- for (const event of lastEvents) {
11
- const trimmed = event.trim();
12
- // Show bash running: events as "$ command"
13
- if (trimmed.startsWith("bash running:")) {
14
- const cmd = trimmed.replace(/^bash running:\s*/, "");
15
- filtered.push(`$ ${cmd}`);
16
- }
17
- // Show web tool calls like shell commands
18
- else if (trimmed.startsWith("web search:")) {
19
- const objective = trimmed
20
- .replace(/^web search:\s*/, "")
21
- .replace(/\s+/g, " ")
22
- .trim();
23
- filtered.push(`? ${objective}`);
24
- }
25
- else if (trimmed.startsWith("web fetch:")) {
26
- const url = trimmed
27
- .replace(/^web fetch:\s*/, "")
28
- .replace(/\s+/g, " ")
29
- .trim();
30
- filtered.push(`? ${url}`);
31
- }
32
- // Surface failures and blocked tool calls
33
- else if (trimmed.startsWith("bash blocked:")) {
34
- const msg = trimmed.replace(/^bash blocked:\s*/, "").trim();
35
- if (msg)
36
- filtered.push(`! ${msg}`);
37
- }
38
- else if (trimmed.startsWith("bash failed:")) {
39
- const msg = trimmed.replace(/^bash failed:\s*/, "").trim();
40
- if (msg)
41
- filtered.push(`! ${msg}`);
42
- }
43
- else if (trimmed.startsWith("web search failed:")) {
44
- const msg = trimmed
45
- .replace(/^web search failed:\s*/, "")
46
- .replace(/\s+/g, " ")
47
- .trim();
48
- if (msg)
49
- filtered.push(`! ${msg}`);
50
- }
51
- else if (trimmed.startsWith("web fetch failed:")) {
52
- const msg = trimmed
53
- .replace(/^web fetch failed:\s*/, "")
54
- .replace(/\s+/g, " ")
55
- .trim();
56
- if (msg)
57
- filtered.push(`! ${msg}`);
58
- }
59
- else if (trimmed.startsWith("tool blocked:")) {
60
- const msg = trimmed
61
- .replace(/^tool blocked:\s*/, "")
62
- .replace(/\s+/g, " ")
63
- .trim();
64
- if (msg)
65
- filtered.push(`! ${msg}`);
66
- }
67
- else if (trimmed.startsWith("tool error:")) {
68
- const msg = trimmed
69
- .replace(/^tool error:\s*/, "")
70
- .replace(/\s+/g, " ")
71
- .trim();
72
- if (msg)
73
- filtered.push(`! ${msg}`);
74
- }
75
- // Show agent text output as "> first line only"
76
- else if (trimmed.startsWith("agent:")) {
77
- const text = trimmed.replace(/^agent:\s*/, "");
78
- const firstLine = text.split("\n")[0];
79
- if (firstLine)
80
- filtered.push(`> ${firstLine}`);
81
- }
82
- }
83
- return filtered;
84
- }
85
- class TruncatedText {
86
- text;
87
- theme;
88
- constructor(text, theme) {
89
- this.text = text;
90
- this.theme = theme;
91
- }
92
- invalidate() { }
93
- render(width) {
94
- const { palette } = this.theme;
95
- const lines = this.text.split("\n");
96
- return lines.map((line) => {
97
- if (visibleWidth(line) > width) {
98
- return truncateToWidth(line, Math.max(1, width - 1), palette.textDim("…"));
99
- }
100
- return line;
101
- });
102
- }
103
- }
104
- export function buildTaskRunningView(theme, title, lastEvents, costTotal, turns, toolCalls, opts) {
105
- const { palette, text } = theme;
106
- const runningColor = (s) => palette.actionRunning(s);
107
- const kind = opts?.kind ?? "task";
108
- const subagentName = opts?.subagentName;
109
- const header = buildHeaderLine({
110
- bulletStyle: runningColor,
111
- bullet: "⏵",
112
- label: `${kind} running`,
113
- labelStyle: palette.textMuted,
114
- accent: title.trim(),
115
- accentStyle: palette.brandAccent,
116
- });
117
- const stats = `turns: ${turns}, tool calls: ${toolCalls}`;
118
- const eventLines = formatEventsForDisplay(lastEvents).slice(-8);
119
- const costPart = formatCost(costTotal);
120
- const costLine = subagentName
121
- ? palette.textMuted(`${subagentName} · ${costPart} (${stats})`)
122
- : palette.textMuted(`${costPart} (${stats})`);
123
- const extraParts = [];
124
- if (eventLines.length > 0) {
125
- extraParts.push(palette.textDim(eventLines.join("\n")));
126
- }
127
- extraParts.push(costLine);
128
- const expandedCostLine = subagentName
129
- ? palette.textMuted(`${subagentName} · ${formatCost(costTotal)} (${stats})`)
130
- : palette.textMuted(`${formatCost(costTotal)} (${stats})`);
131
- const extraComponent = extraParts.length > 0
132
- ? new PaddedContainer(new TruncatedText(extraParts.join("\n"), theme), 4)
133
- : undefined;
134
- const expandedTitle = subagentName
135
- ? `${runningColor(text.bold(`${kind}: ${title}`))}\n${palette.textDim(`subagent: ${subagentName}`)}`
136
- : runningColor(text.bold(`${kind}: ${title}`));
137
- const expandedSections = [];
138
- if (eventLines.length > 0) {
139
- expandedSections.push(palette.textDim(eventLines.join("\n")));
140
- }
141
- expandedSections.push(expandedCostLine);
142
- return {
143
- borderColor: runningColor,
144
- expanded: {
145
- title: expandedTitle,
146
- sections: expandedSections,
147
- },
148
- compact: {
149
- header,
150
- extraComponent,
151
- },
152
- };
153
- }
154
- export function buildTaskFinishedView(theme, title, costTotal, turns, toolCalls, status, finalOutput, opts) {
155
- const { palette, text } = theme;
156
- const successBullet = (s) => palette.actionSuccess(s);
157
- const isSuccess = status === "success";
158
- const kind = opts?.kind ?? "task";
159
- const subagentName = opts?.subagentName;
160
- const borderColor = status === "success"
161
- ? (s) => palette.actionSuccess(s)
162
- : status === "aborted"
163
- ? (s) => palette.statusWarn(s)
164
- : (s) => palette.actionError(s);
165
- const statusText = status === "success"
166
- ? `${kind} finished`
167
- : status === "aborted"
168
- ? `${kind} aborted`
169
- : `${kind} failed`;
170
- const header = buildHeaderLine({
171
- bulletStyle: isSuccess ? successBullet : borderColor,
172
- bullet: isSuccess ? "✓" : "✗",
173
- label: statusText,
174
- labelStyle: palette.textMuted,
175
- accent: title.trim(),
176
- accentStyle: palette.brandAccent,
177
- });
178
- const stats = `turns: ${turns}, tool calls: ${toolCalls}`;
179
- const outputTrimmed = finalOutput.trim();
180
- const outputPreview = outputTrimmed.split("\n").slice(0, 8).join("\n").trim();
181
- const costLine = subagentName
182
- ? palette.textMuted(`${subagentName} · ${formatCost(costTotal)} (${stats})`)
183
- : palette.textMuted(`${formatCost(costTotal)} (${stats})`);
184
- const extraParts = [];
185
- if (outputPreview) {
186
- extraParts.push(palette.textDim(outputPreview));
187
- }
188
- extraParts.push(costLine);
189
- const expandedTitleLines = [borderColor(text.bold(`${kind}: ${title}`))];
190
- if (subagentName) {
191
- expandedTitleLines.push(palette.textDim(`subagent: ${subagentName}`));
192
- }
193
- const expandedTitle = expandedTitleLines.join("\n");
194
- const expandedSections = [];
195
- if (outputTrimmed) {
196
- expandedSections.push(palette.textDim(outputTrimmed));
197
- }
198
- const expandedCostLine = subagentName
199
- ? palette.textMuted(`${subagentName} · ${formatCost(costTotal)} (${stats})`)
200
- : palette.textMuted(`${formatCost(costTotal)} (${stats})`);
201
- expandedSections.push(expandedCostLine);
202
- return {
203
- borderColor,
204
- expanded: {
205
- title: expandedTitle,
206
- sections: expandedSections,
207
- },
208
- compact: {
209
- header,
210
- extraComponent: new PaddedContainer(new Text(extraParts.join("\n"), 0, 0), 4),
211
- },
212
- };
213
- }
214
- export function buildTaskBlockedView(theme, title, reason, opts) {
215
- const { palette, text } = theme;
216
- const errorColor = (s) => palette.actionError(s);
217
- const kind = opts?.kind ?? "task";
218
- const subagentName = opts?.subagentName;
219
- const why = reason.trim();
220
- const header = buildHeaderLine({
221
- bulletStyle: errorColor,
222
- label: `${kind} blocked`,
223
- labelStyle: palette.textMuted,
224
- accent: title.trim(),
225
- accentStyle: palette.brandAccent,
226
- });
227
- const expandedTitle = subagentName
228
- ? `${errorColor(text.bold(`${kind}: ${title}`))}\n${palette.textDim(`subagent: ${subagentName}`)}`
229
- : errorColor(text.bold(`${kind}: ${title}`));
230
- const expandedSections = [];
231
- const whySection = buildSection(why ? [errorColor(why)] : []);
232
- if (whySection) {
233
- expandedSections.push(whySection);
234
- }
235
- return {
236
- borderColor: errorColor,
237
- expanded: {
238
- title: expandedTitle,
239
- sections: expandedSections,
240
- },
241
- compact: {
242
- header,
243
- extraText: why ? ` ${errorColor(why)}` : undefined,
244
- },
245
- };
246
- }
247
- export function renderTaskRunning(theme, title, lastEvents, costTotal, turns, toolCalls, compact, opts) {
248
- return renderToolOutput(buildTaskRunningView(theme, title, lastEvents, costTotal, turns, toolCalls, opts), compact);
249
- }
250
- export function renderTaskFinished(theme, title, costTotal, turns, toolCalls, status, finalOutput, compact, opts) {
251
- return renderToolOutput(buildTaskFinishedView(theme, title, costTotal, turns, toolCalls, status, finalOutput, opts), compact);
252
- }
253
- export function renderTaskBlocked(theme, title, reason, compact, opts) {
254
- return renderToolOutput(buildTaskBlockedView(theme, title, reason, opts), compact);
255
- }
256
- //# sourceMappingURL=task_execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task_execution.js","sourceRoot":"","sources":["../../../src/tui/ui/task_execution.ts"],"names":[],"mappings":"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"}