@markusylisiurunen/tau 0.3.40 → 0.3.41

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 (125) hide show
  1. package/README.md +29 -33
  2. package/dist/core/cli.js +2 -2
  3. package/dist/core/cli.js.map +1 -1
  4. package/dist/core/commands/registry.js +22 -20
  5. package/dist/core/commands/registry.js.map +1 -1
  6. package/dist/core/config/builtin_themes.js +936 -998
  7. package/dist/core/config/builtin_themes.js.map +1 -1
  8. package/dist/core/personas.js +8 -53
  9. package/dist/core/personas.js.map +1 -1
  10. package/dist/core/session/direct_bash.js +8 -8
  11. package/dist/core/session/direct_bash.js.map +1 -1
  12. package/dist/core/session/runner.js +6 -1
  13. package/dist/core/session/runner.js.map +1 -1
  14. package/dist/core/tools/bash.js +80 -63
  15. package/dist/core/tools/bash.js.map +1 -1
  16. package/dist/core/tools/code_mode.js +33 -12
  17. package/dist/core/tools/code_mode.js.map +1 -1
  18. package/dist/core/tools/edit.js +72 -84
  19. package/dist/core/tools/edit.js.map +1 -1
  20. package/dist/core/tools/goal.js +97 -16
  21. package/dist/core/tools/goal.js.map +1 -1
  22. package/dist/core/tools/history.js +3 -3
  23. package/dist/core/tools/history.js.map +1 -1
  24. package/dist/core/tools/interrupt_agent.js +56 -37
  25. package/dist/core/tools/interrupt_agent.js.map +1 -1
  26. package/dist/core/tools/list_agents.js +28 -13
  27. package/dist/core/tools/list_agents.js.map +1 -1
  28. package/dist/core/tools/nook.js +3 -3
  29. package/dist/core/tools/nook.js.map +1 -1
  30. package/dist/core/tools/presentation.js +226 -0
  31. package/dist/core/tools/presentation.js.map +1 -0
  32. package/dist/core/tools/registry.js.map +1 -1
  33. package/dist/core/tools/send_input_to_agent.js +57 -47
  34. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  35. package/dist/core/tools/spawn_agent.js +81 -52
  36. package/dist/core/tools/spawn_agent.js.map +1 -1
  37. package/dist/core/tools/subagent_ui.js +14 -38
  38. package/dist/core/tools/subagent_ui.js.map +1 -1
  39. package/dist/core/tools/view_image.js +45 -45
  40. package/dist/core/tools/view_image.js.map +1 -1
  41. package/dist/core/tools/wait_for_agents.js +94 -56
  42. package/dist/core/tools/wait_for_agents.js.map +1 -1
  43. package/dist/core/tools/web.js +3 -3
  44. package/dist/core/tools/web.js.map +1 -1
  45. package/dist/core/tools/write.js +41 -39
  46. package/dist/core/tools/write.js.map +1 -1
  47. package/dist/core/utils/gemini_speech.js +1 -1
  48. package/dist/core/utils/gemini_speech.js.map +1 -1
  49. package/dist/core/utils/subagent_utils.js +3 -3
  50. package/dist/core/utils/subagent_utils.js.map +1 -1
  51. package/dist/core/version.js +1 -1
  52. package/dist/execution/cloudflare_sandbox_execution_environment.js +1 -1
  53. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
  54. package/dist/host/client_tool_broker.js +29 -31
  55. package/dist/host/client_tool_broker.js.map +1 -1
  56. package/dist/host/local_session_host.js +10 -4
  57. package/dist/host/local_session_host.js.map +1 -1
  58. package/dist/main.js +6 -6
  59. package/dist/main.js.map +1 -1
  60. package/dist/tui/chat_controller/diff_review_service.js +1 -1
  61. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  62. package/dist/tui/chat_controller/history_labels.js +13 -0
  63. package/dist/tui/chat_controller/history_labels.js.map +1 -1
  64. package/dist/tui/chat_view.js +24 -50
  65. package/dist/tui/chat_view.js.map +1 -1
  66. package/dist/tui/session_chat_app.js +3 -4
  67. package/dist/tui/session_chat_app.js.map +1 -1
  68. package/dist/tui/session_chat_controller.js +80 -111
  69. package/dist/tui/session_chat_controller.js.map +1 -1
  70. package/dist/tui/terminal_appearance.js +44 -25
  71. package/dist/tui/terminal_appearance.js.map +1 -1
  72. package/dist/tui/ui/autocomplete_item.js +2 -0
  73. package/dist/tui/ui/autocomplete_item.js.map +1 -0
  74. package/dist/tui/ui/chat_container.js +1 -14
  75. package/dist/tui/ui/chat_container.js.map +1 -1
  76. package/dist/tui/ui/chat_message_model.js +4 -12
  77. package/dist/tui/ui/chat_message_model.js.map +1 -1
  78. package/dist/tui/ui/components/autocomplete_list.js +138 -0
  79. package/dist/tui/ui/components/autocomplete_list.js.map +1 -0
  80. package/dist/tui/ui/components/editor.js +33 -40
  81. package/dist/tui/ui/components/editor.js.map +1 -1
  82. package/dist/tui/ui/components/one_line_segments.js +0 -67
  83. package/dist/tui/ui/components/one_line_segments.js.map +1 -1
  84. package/dist/tui/ui/custom_editor.js +15 -11
  85. package/dist/tui/ui/custom_editor.js.map +1 -1
  86. package/dist/tui/ui/diff_review_message.js +1 -11
  87. package/dist/tui/ui/diff_review_message.js.map +1 -1
  88. package/dist/tui/ui/footer.js +63 -13
  89. package/dist/tui/ui/footer.js.map +1 -1
  90. package/dist/tui/ui/rewind_picker.js +17 -47
  91. package/dist/tui/ui/rewind_picker.js.map +1 -1
  92. package/dist/tui/ui/slash_autocomplete.js +43 -64
  93. package/dist/tui/ui/slash_autocomplete.js.map +1 -1
  94. package/dist/tui/ui/subagent_editor_pane.js +3 -3
  95. package/dist/tui/ui/theme/index.js +1 -1
  96. package/dist/tui/ui/theme/index.js.map +1 -1
  97. package/dist/tui/ui/theme/palette.js +245 -8
  98. package/dist/tui/ui/theme/palette.js.map +1 -1
  99. package/dist/tui/ui/theme/theme.js +3 -30
  100. package/dist/tui/ui/theme/theme.js.map +1 -1
  101. package/dist/tui/ui/tool_card.js +137 -0
  102. package/dist/tui/ui/tool_card.js.map +1 -0
  103. package/dist/tui/ui/user_message.js +3 -6
  104. package/dist/tui/ui/user_message.js.map +1 -1
  105. package/package.json +2 -2
  106. package/dist/core/utils/tool_preview.js +0 -73
  107. package/dist/core/utils/tool_preview.js.map +0 -1
  108. package/dist/tui/chat_controller/command_hints.js +0 -35
  109. package/dist/tui/chat_controller/command_hints.js.map +0 -1
  110. package/dist/tui/ui/bash_execution.js +0 -129
  111. package/dist/tui/ui/bash_execution.js.map +0 -1
  112. package/dist/tui/ui/components/dynamic_border.js +0 -11
  113. package/dist/tui/ui/components/dynamic_border.js.map +0 -1
  114. package/dist/tui/ui/components/header_box.js +0 -107
  115. package/dist/tui/ui/components/header_box.js.map +0 -1
  116. package/dist/tui/ui/components/header_line.js +0 -60
  117. package/dist/tui/ui/components/header_line.js.map +0 -1
  118. package/dist/tui/ui/components/padded_container.js +0 -24
  119. package/dist/tui/ui/components/padded_container.js.map +0 -1
  120. package/dist/tui/ui/file_execution.js +0 -176
  121. package/dist/tui/ui/file_execution.js.map +0 -1
  122. package/dist/tui/ui/tool_output.js +0 -163
  123. package/dist/tui/ui/tool_output.js.map +0 -1
  124. package/dist/tui/ui/tool_ui_registry.js +0 -786
  125. package/dist/tui/ui/tool_ui_registry.js.map +0 -1
@@ -2,15 +2,16 @@ import { Type } from "typebox";
2
2
  import { z } from "zod";
3
3
  import { formatSendInputToAgentResult } from "../subagents/format.js";
4
4
  import { parseToolArgs } from "../utils/zod.js";
5
+ import { buildToolRunPresentation } from "./presentation.js";
5
6
  import { createTextToolOutcome, executeTool, } from "./registry.js";
6
- import { buildSubagentUiText } from "./subagent_ui.js";
7
+ import { buildSubagentPresentation } from "./subagent_ui.js";
7
8
  import { TOOL_NAME_SEND_INPUT_TO_AGENT } from "./tool_names.js";
8
9
  const SEND_INPUT_TO_AGENT_DESCRIPTION = [
9
10
  "Send a follow-up prompt to an existing subagent.",
10
11
  "The subagent must be idle before you can send another input.",
11
12
  "Starting a new run replaces the previously retained response.",
12
13
  ].join(" ");
13
- const SEND_INPUT_TO_AGENT_ID_DESCRIPTION = "Subagent id to send input to.";
14
+ const SEND_INPUT_TO_AGENT_ID_DESCRIPTION = "Single-line subagent id to send input to.";
14
15
  const SEND_INPUT_TO_AGENT_PROMPT_DESCRIPTION = [
15
16
  "The prompt to send to the subagent.",
16
17
  "Include all necessary context and instructions for the next run.",
@@ -19,18 +20,25 @@ export const SEND_INPUT_TO_AGENT_TOOL = {
19
20
  name: TOOL_NAME_SEND_INPUT_TO_AGENT,
20
21
  description: SEND_INPUT_TO_AGENT_DESCRIPTION,
21
22
  parameters: Type.Object({
22
- id: Type.String({ description: SEND_INPUT_TO_AGENT_ID_DESCRIPTION }),
23
+ id: Type.String({
24
+ description: SEND_INPUT_TO_AGENT_ID_DESCRIPTION,
25
+ pattern: "^[^\\r\\n]+$",
26
+ }),
23
27
  prompt: Type.String({ description: SEND_INPUT_TO_AGENT_PROMPT_DESCRIPTION }),
24
28
  }, { additionalProperties: false }),
25
29
  };
26
30
  const sendInputArgsSchema = z.object({
27
- id: z.string().trim().min(1),
31
+ id: z
32
+ .string()
33
+ .trim()
34
+ .min(1)
35
+ .refine((id) => !/[\r\n]/.test(id), "Subagent ID must be a single line."),
28
36
  prompt: z.string().trim().min(1),
29
37
  });
30
38
  function resolveSnapshotTarget(snapshot) {
31
39
  return { name: snapshot.name, title: snapshot.title };
32
40
  }
33
- function getSendInputDisplayTarget(raw, supervisor) {
41
+ function getSendInputSubject(raw, supervisor) {
34
42
  const parsedArgs = parseToolArgs(sendInputArgsSchema, raw);
35
43
  if (!parsedArgs.ok) {
36
44
  return "(invalid arguments)";
@@ -41,23 +49,31 @@ function getSendInputDisplayTarget(raw, supervisor) {
41
49
  export function createSendInputToAgentToolDefinition(supervisor) {
42
50
  return {
43
51
  schema: SEND_INPUT_TO_AGENT_TOOL,
44
- describe: (toolCall) => ({
45
- headerTarget: getSendInputDisplayTarget(toolCall.arguments, supervisor),
46
- }),
52
+ describe: (toolCall) => {
53
+ const subject = getSendInputSubject(toolCall.arguments, supervisor);
54
+ return {
55
+ presentation: buildToolRunPresentation({
56
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
57
+ subject,
58
+ }),
59
+ };
60
+ },
47
61
  async execute(toolCall, context) {
48
62
  const { signal } = context;
49
63
  let id = "";
50
64
  let prompt = "";
51
- const headerTarget = getSendInputDisplayTarget(toolCall.arguments, supervisor);
65
+ const subject = getSendInputSubject(toolCall.arguments, supervisor);
52
66
  const blocked = (reason, details) => {
53
67
  const outcome = createTextToolOutcome(reason, "blocked");
54
68
  const uiEvent = {
55
- type: "send_input_to_agent_blocked",
69
+ type: "tool_call_blocked",
56
70
  toolCallId: toolCall.id,
57
- agentId: details?.id ?? (id || undefined),
58
- name: details?.name ?? undefined,
59
- title: details?.title ?? headerTarget,
60
- headerTarget: details?.title ?? headerTarget,
71
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
72
+ presentation: buildToolRunPresentation({
73
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
74
+ subject: details?.title ?? subject,
75
+ details: [{ text: reason }],
76
+ }),
61
77
  reason,
62
78
  };
63
79
  return {
@@ -73,29 +89,23 @@ export function createSendInputToAgentToolDefinition(supervisor) {
73
89
  ({ id, prompt } = parsedArgs.data);
74
90
  const snapshot = supervisor.getSnapshot(id);
75
91
  if (!snapshot) {
76
- return executeTool(context, () => blocked(`Unknown subagent ID: ${id}`, { id, title: id }));
92
+ return executeTool(context, () => blocked(`Unknown subagent ID: ${id}`, { title: id }));
77
93
  }
78
94
  const target = resolveSnapshotTarget(snapshot);
79
95
  return executeTool(context, async () => {
80
96
  if (signal?.aborted) {
81
97
  const reason = "Aborted.";
82
98
  const outcome = createTextToolOutcome(reason, "cancelled");
83
- const uiText = buildSubagentUiText({
84
- output: reason,
85
- statusText: `${target.name} · ${id}`,
86
- maxOutputLines: 16,
87
- fullText: reason,
99
+ const presentation = buildToolRunPresentation({
100
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
101
+ subject: target.title,
88
102
  });
89
103
  const uiEvent = {
90
- type: "send_input_to_agent_finished",
104
+ type: "tool_call_finished",
91
105
  toolCallId: toolCall.id,
92
- agentId: id,
93
- name: target.name,
94
- title: target.title,
95
- headerTarget: target.title,
106
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
107
+ presentation,
96
108
  status: "error",
97
- message: reason,
98
- uiText,
99
109
  };
100
110
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
101
111
  }
@@ -103,42 +113,42 @@ export function createSendInputToAgentToolDefinition(supervisor) {
103
113
  if (!sendResult.ok) {
104
114
  const outcome = createTextToolOutcome(sendResult.reason, "blocked");
105
115
  const uiEvent = {
106
- type: "send_input_to_agent_blocked",
116
+ type: "tool_call_blocked",
107
117
  toolCallId: toolCall.id,
108
- agentId: id,
109
- name: target.name,
110
- title: target.title,
111
- headerTarget: target.title,
118
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
119
+ presentation: buildToolRunPresentation({
120
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
121
+ subject: target.title,
122
+ details: [{ text: sendResult.reason }],
123
+ }),
112
124
  reason: sendResult.reason,
113
125
  };
114
126
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
115
127
  }
116
128
  const resultText = formatSendInputToAgentResult(sendResult.state, sendResult.capacity);
117
129
  const outcome = createTextToolOutcome(resultText, "succeeded");
118
- const uiText = buildSubagentUiText({
130
+ const presentation = buildSubagentPresentation({
131
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
132
+ subject: sendResult.state.title,
119
133
  output: prompt,
120
- statusText: `${sendResult.state.name} · ${sendResult.state.id}`,
121
- maxOutputLines: 16,
122
- fullText: resultText,
134
+ detailTruncation: { maxLines: 17, strategy: "middle" },
123
135
  });
124
136
  const uiEvent = {
125
- type: "send_input_to_agent_finished",
137
+ type: "tool_call_finished",
126
138
  toolCallId: toolCall.id,
127
- agentId: sendResult.state.id,
128
- name: sendResult.state.name,
129
- title: sendResult.state.title,
130
- headerTarget: sendResult.state.title,
139
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
140
+ presentation,
131
141
  status: "success",
132
- uiText,
133
142
  };
134
143
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
135
144
  }, {
136
- type: "send_input_to_agent_started",
145
+ type: "tool_call_started",
137
146
  toolCallId: toolCall.id,
138
- agentId: id,
139
- name: target.name,
140
- title: target.title,
141
- headerTarget: target.title,
147
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
148
+ presentation: buildToolRunPresentation({
149
+ toolName: TOOL_NAME_SEND_INPUT_TO_AGENT,
150
+ subject: target.title,
151
+ }),
142
152
  });
143
153
  },
144
154
  };
@@ -1 +1 @@
1
- {"version":3,"file":"send_input_to_agent.js","sourceRoot":"","sources":["../../../src/core/tools/send_input_to_agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send_input_to_agent.js","sourceRoot":"","sources":["../../../src/core/tools/send_input_to_agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAEL,qBAAqB,EACrB,WAAW,GAIZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,+BAA+B,GAAG;IACtC,kDAAkD;IAClD,8DAA8D;IAC9D,+DAA+D;CAChE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,kCAAkC,GAAG,2CAA2C,CAAC;AAEvF,MAAM,sCAAsC,GAAG;IAC7C,qCAAqC;IACrC,kEAAkE;CACnE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,wBAAwB,GAAS;IAC5C,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,+BAA+B;IAC5C,UAAU,EAAE,IAAI,CAAC,MAAM,CACrB;QACE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,kCAAkC;YAC/C,OAAO,EAAE,cAAc;SACxB,CAAC;QACF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;KAC7E,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC;CACF,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,oCAAoC,CAAC;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACjC,CAAC,CAAC;AAEH,SAAS,qBAAqB,CAAC,QAA+B;IAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY,EAAE,UAA2B;IACpE,MAAM,UAAU,GAAG,aAAa,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAC/B,OAAO,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,UAA2B;IAC9E,OAAO;QACL,MAAM,EAAE,wBAAwB;QAChC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACpE,OAAO;gBACL,YAAY,EAAE,wBAAwB,CAAC;oBACrC,QAAQ,EAAE,6BAA6B;oBACvC,OAAO;iBACR,CAAC;aACH,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,OAAO,CACX,QAAkB,EAClB,OAA6B;YAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;YACZ,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAEpE,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,OAA4B,EAAE,EAAE;gBAC/D,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAiB;oBAC5B,IAAI,EAAE,mBAAmB;oBACzB,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,QAAQ,EAAE,6BAA6B;oBACvC,YAAY,EAAE,wBAAwB,CAAC;wBACrC,QAAQ,EAAE,6BAA6B;wBACvC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO;wBAClC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qBAC5B,CAAC;oBACF,MAAM;iBACP,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO;iBAC4B,CAAC;YACxC,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,aAAa,CAAC,mBAAmB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,OAAO,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,sBAAsB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACvF,CAAC;YAED,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAEnC,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1F,CAAC;YAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAE/C,OAAO,WAAW,CAChB,OAAO,EACP,KAAK,IAAwC,EAAE;gBAC7C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,UAAU,CAAC;oBAC1B,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;oBAC3D,MAAM,YAAY,GAAG,wBAAwB,CAAC;wBAC5C,QAAQ,EAAE,6BAA6B;wBACvC,OAAO,EAAE,MAAM,CAAC,KAAK;qBACtB,CAAC,CAAC;oBACH,MAAM,OAAO,GAAiB;wBAC5B,IAAI,EAAE,oBAAoB;wBAC1B,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,QAAQ,EAAE,6BAA6B;wBACvC,YAAY;wBACZ,MAAM,EAAE,OAAO;qBAChB,CAAC;oBACF,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;gBACzE,CAAC;gBAED,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAExD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oBACpE,MAAM,OAAO,GAAiB;wBAC5B,IAAI,EAAE,mBAAmB;wBACzB,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,QAAQ,EAAE,6BAA6B;wBACvC,YAAY,EAAE,wBAAwB,CAAC;4BACrC,QAAQ,EAAE,6BAA6B;4BACvC,OAAO,EAAE,MAAM,CAAC,KAAK;4BACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;yBACvC,CAAC;wBACF,MAAM,EAAE,UAAU,CAAC,MAAM;qBAC1B,CAAC;oBACF,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;gBACzE,CAAC;gBAED,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACvF,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;gBAC/D,MAAM,YAAY,GAAG,yBAAyB,CAAC;oBAC7C,QAAQ,EAAE,6BAA6B;oBACvC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK;oBAC/B,MAAM,EAAE,MAAM;oBACd,gBAAgB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;iBACvD,CAAC,CAAC;gBACH,MAAM,OAAO,GAAiB;oBAC5B,IAAI,EAAE,oBAAoB;oBAC1B,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,QAAQ,EAAE,6BAA6B;oBACvC,YAAY;oBACZ,MAAM,EAAE,SAAS;iBAClB,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YACzE,CAAC,EACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,QAAQ,EAAE,6BAA6B;gBACvC,YAAY,EAAE,wBAAwB,CAAC;oBACrC,QAAQ,EAAE,6BAA6B;oBACvC,OAAO,EAAE,MAAM,CAAC,KAAK;iBACtB,CAAC;aACH,CACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -6,8 +6,9 @@ import { parseSubagentLaunchModel } from "../subagents/launch_model.js";
6
6
  import { getSubagentDescription, resolveSubagentEffectiveSettings } from "../subagents/registry.js";
7
7
  import { formatCwd } from "../utils/format.js";
8
8
  import { parseToolArgs } from "../utils/zod.js";
9
+ import { buildToolRunPresentation } from "./presentation.js";
9
10
  import { createTextToolOutcome, executeTool, } from "./registry.js";
10
- import { buildSubagentUiText } from "./subagent_ui.js";
11
+ import { buildSubagentPresentation } from "./subagent_ui.js";
11
12
  import { TOOL_NAME_SPAWN_AGENT } from "./tool_names.js";
12
13
  const SPAWN_AGENT_DESCRIPTION = [
13
14
  "Spawn a subagent to run in the background and return its id.",
@@ -19,7 +20,7 @@ const SPAWN_AGENT_NAME_DESCRIPTION = [
19
20
  "Available subagents depend on the current persona configuration.",
20
21
  ].join(" ");
21
22
  const SPAWN_AGENT_TITLE_DESCRIPTION = [
22
- "A short human-friendly UI title shown while the subagent runs.",
23
+ "A short single-line human-friendly UI title shown while the subagent runs.",
23
24
  "Do not use title case; all lower-case is preferred except for proper nouns.",
24
25
  ].join(" ");
25
26
  const SPAWN_AGENT_PROMPT_DESCRIPTION = [
@@ -34,7 +35,7 @@ const SPAWN_AGENT_MODEL_DESCRIPTION = [
34
35
  "When provided, the value must match one of the selected subagent's configured launch models.",
35
36
  ].join(" ");
36
37
  const SPAWN_AGENT_WORKING_DIRECTORY_DESCRIPTION = [
37
- "Optional working directory for the subagent.",
38
+ "Optional single-line working directory for the subagent.",
38
39
  "When set, subagent runs as if it was started in this directory.",
39
40
  ].join(" ");
40
41
  export const SPAWN_AGENT_TOOL = {
@@ -42,19 +43,34 @@ export const SPAWN_AGENT_TOOL = {
42
43
  description: SPAWN_AGENT_DESCRIPTION,
43
44
  parameters: Type.Object({
44
45
  name: Type.String({ description: SPAWN_AGENT_NAME_DESCRIPTION }),
45
- title: Type.String({ description: SPAWN_AGENT_TITLE_DESCRIPTION }),
46
+ title: Type.String({
47
+ description: SPAWN_AGENT_TITLE_DESCRIPTION,
48
+ pattern: "^[^\\r\\n]+$",
49
+ }),
46
50
  prompt: Type.String({ description: SPAWN_AGENT_PROMPT_DESCRIPTION }),
47
51
  model: Type.Optional(Type.String({ description: SPAWN_AGENT_MODEL_DESCRIPTION })),
48
- workingDirectory: Type.Optional(Type.String({ description: SPAWN_AGENT_WORKING_DIRECTORY_DESCRIPTION })),
52
+ workingDirectory: Type.Optional(Type.String({
53
+ description: SPAWN_AGENT_WORKING_DIRECTORY_DESCRIPTION,
54
+ pattern: "^[^\\r\\n]+$",
55
+ })),
49
56
  }, { additionalProperties: false }),
50
57
  };
51
58
  const spawnArgsSchema = z
52
59
  .object({
53
60
  name: z.string().trim().min(1),
54
- title: z.string().trim().min(1),
61
+ title: z
62
+ .string()
63
+ .trim()
64
+ .min(1)
65
+ .refine((title) => !/[\r\n]/.test(title), "Title must be a single line."),
55
66
  prompt: z.string().trim().min(1),
56
67
  model: z.string().trim().min(1).optional(),
57
- workingDirectory: z.string().trim().min(1).optional(),
68
+ workingDirectory: z
69
+ .string()
70
+ .trim()
71
+ .min(1)
72
+ .refine((path) => !/[\r\n]/.test(path), "Working directory must be a single line.")
73
+ .optional(),
58
74
  })
59
75
  .strict();
60
76
  function formatAllowedLaunchModels(launchModels) {
@@ -63,28 +79,48 @@ function formatAllowedLaunchModels(launchModels) {
63
79
  }
64
80
  return launchModels.map((entry) => `'${entry}'`).join(", ");
65
81
  }
66
- function getSpawnAgentDisplayTarget(raw) {
82
+ function getSpawnAgentSubject(raw) {
67
83
  const parsedArgs = parseToolArgs(spawnArgsSchema, raw);
68
84
  return parsedArgs.ok ? parsedArgs.data.title : "(invalid arguments)";
69
85
  }
86
+ function getSpawnAgentWorkingDirectory(raw, baseCwd) {
87
+ const parsedArgs = parseToolArgs(spawnArgsSchema, raw);
88
+ const workingDirectory = parsedArgs.ok ? parsedArgs.data.workingDirectory : undefined;
89
+ return workingDirectory ? resolve(baseCwd, workingDirectory) : baseCwd;
90
+ }
70
91
  export function createSpawnAgentToolDefinition(options) {
71
92
  const { backend, supervisor } = options;
72
93
  return {
73
94
  schema: SPAWN_AGENT_TOOL,
74
- describe: (toolCall) => ({ headerTarget: getSpawnAgentDisplayTarget(toolCall.arguments) }),
95
+ describe: (toolCall) => {
96
+ const subject = getSpawnAgentSubject(toolCall.arguments);
97
+ const workingDirectory = getSpawnAgentWorkingDirectory(toolCall.arguments, options.cwd);
98
+ return {
99
+ presentation: buildToolRunPresentation({
100
+ toolName: TOOL_NAME_SPAWN_AGENT,
101
+ subject,
102
+ metadata: [formatCwd(workingDirectory)],
103
+ }),
104
+ };
105
+ },
75
106
  async execute(toolCall, context) {
76
107
  const { signal } = context;
77
108
  let name = "";
78
109
  let title = "";
79
- const headerTarget = getSpawnAgentDisplayTarget(toolCall.arguments);
110
+ const subject = getSpawnAgentSubject(toolCall.arguments);
111
+ const presentationWorkingDirectory = formatCwd(getSpawnAgentWorkingDirectory(toolCall.arguments, options.cwd));
80
112
  const blocked = (reason, details) => {
81
113
  const outcome = createTextToolOutcome(reason, "blocked");
82
114
  const uiEvent = {
83
- type: "spawn_agent_blocked",
115
+ type: "tool_call_blocked",
84
116
  toolCallId: toolCall.id,
85
- name: details?.name ?? (name || undefined),
86
- title: details?.title ?? headerTarget,
87
- headerTarget: details?.title ?? headerTarget,
117
+ toolName: TOOL_NAME_SPAWN_AGENT,
118
+ presentation: buildToolRunPresentation({
119
+ toolName: TOOL_NAME_SPAWN_AGENT,
120
+ subject: details?.title ?? subject,
121
+ details: [{ text: reason }],
122
+ metadata: [presentationWorkingDirectory],
123
+ }),
88
124
  reason,
89
125
  };
90
126
  return {
@@ -108,7 +144,7 @@ export function createSpawnAgentToolDefinition(options) {
108
144
  let effectiveSubagentPrompts = subagentPrompts;
109
145
  if (workingDirectory) {
110
146
  if (!options.resolveSubagentRuntime) {
111
- return executeTool(context, () => blocked("Working-directory context resolution is unavailable.", { name, title }));
147
+ return executeTool(context, () => blocked("Working-directory context resolution is unavailable.", { title }));
112
148
  }
113
149
  try {
114
150
  const runtime = await options.resolveSubagentRuntime({ cwd, persona });
@@ -119,28 +155,24 @@ export function createSpawnAgentToolDefinition(options) {
119
155
  }
120
156
  catch (error) {
121
157
  return executeTool(context, () => blocked(`Failed to build the subagent prompt for workingDirectory '${cwd}': ${error.message}`, {
122
- name,
123
158
  title,
124
159
  }));
125
160
  }
126
161
  }
127
162
  if (!effectivePersona.subagents || Object.keys(effectivePersona.subagents).length === 0) {
128
163
  return executeTool(context, () => blocked("The spawn_agent tool is not enabled for the resolved persona.", {
129
- name,
130
164
  title,
131
165
  }));
132
166
  }
133
167
  const personaConfig = effectivePersona.subagents[name];
134
168
  if (!personaConfig) {
135
169
  return executeTool(context, () => blocked(`Subagent '${name}' is not enabled for the resolved persona.`, {
136
- name,
137
170
  title,
138
171
  }));
139
172
  }
140
173
  const systemPrompt = effectiveSubagentPrompts[name];
141
174
  if (!systemPrompt) {
142
175
  return executeTool(context, () => blocked(`Subagent '${name}' is missing its system prompt.`, {
143
- name,
144
176
  title,
145
177
  }));
146
178
  }
@@ -149,20 +181,17 @@ export function createSpawnAgentToolDefinition(options) {
149
181
  const parsedLaunchModel = parseSubagentLaunchModel(model, { resolveModel: modelResolver });
150
182
  if (parsedLaunchModel.error || !parsedLaunchModel.launchModel) {
151
183
  return executeTool(context, () => blocked(`Invalid model parameter: ${parsedLaunchModel.error}.`, {
152
- name,
153
184
  title,
154
185
  }));
155
186
  }
156
187
  const launchModels = personaConfig.launchModels ?? [];
157
188
  if (launchModels.length === 0) {
158
189
  return executeTool(context, () => blocked(`Subagent '${name}' does not allow launch model overrides. Allowed values: ${formatAllowedLaunchModels(launchModels)}.`, {
159
- name,
160
190
  title,
161
191
  }));
162
192
  }
163
193
  if (!launchModels.includes(parsedLaunchModel.launchModel.normalized)) {
164
194
  return executeTool(context, blocked(`Model '${parsedLaunchModel.launchModel.normalized}' is not allowed for subagent '${name}'. Allowed values: ${formatAllowedLaunchModels(launchModels)}.`, {
165
- name,
166
195
  title,
167
196
  }));
168
197
  }
@@ -187,21 +216,17 @@ export function createSpawnAgentToolDefinition(options) {
187
216
  if (signal?.aborted) {
188
217
  const reason = "Aborted.";
189
218
  const outcome = createTextToolOutcome(reason, "cancelled");
190
- const uiText = buildSubagentUiText({
191
- output: reason,
192
- statusText: [...statusPrefixParts, reason].join(" · "),
193
- maxOutputLines: 16,
194
- fullText: reason,
219
+ const presentation = buildToolRunPresentation({
220
+ toolName: TOOL_NAME_SPAWN_AGENT,
221
+ subject,
222
+ metadata: statusPrefixParts,
195
223
  });
196
224
  const uiEvent = {
197
- type: "spawn_agent_finished",
225
+ type: "tool_call_finished",
198
226
  toolCallId: toolCall.id,
199
- name,
200
- title,
201
- headerTarget,
227
+ toolName: TOOL_NAME_SPAWN_AGENT,
228
+ presentation,
202
229
  status: "error",
203
- message: reason,
204
- uiText,
205
230
  };
206
231
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
207
232
  }
@@ -218,41 +243,45 @@ export function createSpawnAgentToolDefinition(options) {
218
243
  if (!spawnResult.ok) {
219
244
  const outcome = createTextToolOutcome(spawnResult.reason, "blocked");
220
245
  const uiEvent = {
221
- type: "spawn_agent_blocked",
246
+ type: "tool_call_blocked",
222
247
  toolCallId: toolCall.id,
223
- name,
224
- title,
225
- headerTarget,
248
+ toolName: TOOL_NAME_SPAWN_AGENT,
249
+ presentation: buildToolRunPresentation({
250
+ toolName: TOOL_NAME_SPAWN_AGENT,
251
+ subject: subject,
252
+ details: [{ text: spawnResult.reason }],
253
+ metadata: [statusWorkingDirectory],
254
+ }),
226
255
  reason: spawnResult.reason,
227
256
  };
228
257
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
229
258
  }
230
259
  const resultText = formatSpawnAgentResult(spawnResult.state, spawnResult.capacity);
231
- const statusParts = [...statusPrefixParts, spawnResult.state.id];
232
260
  const outcome = createTextToolOutcome(resultText, "succeeded");
233
- const uiText = buildSubagentUiText({
261
+ const presentation = buildSubagentPresentation({
262
+ toolName: TOOL_NAME_SPAWN_AGENT,
263
+ subject: subject,
234
264
  output: prompt,
235
- statusText: statusParts.join(" · "),
236
- maxOutputLines: 16,
237
- fullText: resultText,
265
+ detailTruncation: { maxLines: 17, strategy: "middle" },
266
+ metadata: [...statusPrefixParts, spawnResult.state.id],
238
267
  });
239
268
  const uiEvent = {
240
- type: "spawn_agent_finished",
269
+ type: "tool_call_finished",
241
270
  toolCallId: toolCall.id,
242
- name,
243
- title,
244
- headerTarget,
271
+ toolName: TOOL_NAME_SPAWN_AGENT,
272
+ presentation,
245
273
  status: "success",
246
- agentId: spawnResult.state.id,
247
- uiText,
248
274
  };
249
275
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
250
276
  }, {
251
- type: "spawn_agent_started",
277
+ type: "tool_call_started",
252
278
  toolCallId: toolCall.id,
253
- name,
254
- title,
255
- headerTarget,
279
+ toolName: TOOL_NAME_SPAWN_AGENT,
280
+ presentation: buildToolRunPresentation({
281
+ toolName: TOOL_NAME_SPAWN_AGENT,
282
+ subject: subject,
283
+ metadata: [statusWorkingDirectory],
284
+ }),
256
285
  });
257
286
  },
258
287
  };
@@ -1 +1 @@
1
- {"version":3,"file":"spawn_agent.js","sourceRoot":"","sources":["../../../src/core/tools/spawn_agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn_agent.js","sourceRoot":"","sources":["../../../src/core/tools/spawn_agent.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,19 @@
1
1
  import { formatAdaptiveNumber, formatDurationMs } from "../utils/format.js";
2
- import { buildCompactPreviewLines } from "../utils/tool_preview.js";
3
- export function truncateOutputLines(lines, maxLines) {
4
- if (maxLines <= 0)
5
- return [];
6
- if (lines.length <= maxLines)
7
- return lines;
8
- const keptCount = Math.max(0, maxLines - 1);
9
- const remaining = Math.max(1, lines.length - keptCount);
10
- const marker = `…${remaining} more lines…`;
11
- return [...lines.slice(0, keptCount), marker];
12
- }
13
- export function buildSubagentUiText({ output, statusText, maxOutputLines, maxPreviewLines, fullText, }) {
14
- const trimmed = output.trimEnd();
15
- const outputLines = trimmed ? trimmed.split("\n") : [];
16
- const truncatedLines = typeof maxOutputLines === "number"
17
- ? truncateOutputLines(outputLines, maxOutputLines)
18
- : outputLines;
19
- const previewLimit = maxPreviewLines ?? maxOutputLines ?? truncatedLines.length;
20
- const preview = buildCompactPreviewLines(truncatedLines, {
21
- maxLines: previewLimit,
22
- totalLines: truncatedLines.length,
23
- unitLabel: "lines",
24
- indent: 0,
2
+ import { buildToolRunPresentation } from "./presentation.js";
3
+ export function buildSubagentPresentation(args) {
4
+ const output = args.output.trimEnd();
5
+ return buildToolRunPresentation({
6
+ toolName: args.toolName,
7
+ subject: args.subject,
8
+ details: output ? output.split("\n").map((text) => ({ text })) : [],
9
+ ...(args.detailTruncation !== undefined ? { detailTruncation: args.detailTruncation } : {}),
10
+ metadata: args.metadata ?? [],
25
11
  });
26
- const previewLines = preview ? preview.split("\n").map((text) => ({ text })) : [];
27
- const trimmedFullText = fullText?.trimEnd();
28
- const fullLines = trimmedFullText
29
- ? trimmedFullText.split("\n").map((text) => ({ text }))
30
- : truncatedLines.map((text) => ({ text }));
31
- const statusLine = statusText || undefined;
32
- return {
33
- previewLines,
34
- statusLine,
35
- fullLines,
36
- };
37
12
  }
38
- export function formatSubagentStatusLine({ costTotal, durationMs }) {
39
- const cost = `$${formatAdaptiveNumber(costTotal, 2, 5)}`;
40
- const duration = formatDurationMs(durationMs);
41
- return `cost ${cost} · duration ${duration}`;
13
+ export function formatSubagentMetadata(args) {
14
+ return [
15
+ `cost $${formatAdaptiveNumber(args.costTotal, 2, 5)}`,
16
+ `duration ${formatDurationMs(args.durationMs)}`,
17
+ ];
42
18
  }
43
19
  //# sourceMappingURL=subagent_ui.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent_ui.js","sourceRoot":"","sources":["../../../src/core/tools/subagent_ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAgBpE,MAAM,UAAU,mBAAmB,CAAC,KAAe,EAAE,QAAgB;IACnE,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,SAAS,cAAc,CAAC;IAC3C,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAClC,MAAM,EACN,UAAU,EACV,cAAc,EACd,eAAe,EACf,QAAQ,GACc;IACtB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,cAAc,GAClB,OAAO,cAAc,KAAK,QAAQ;QAChC,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC;QAClD,CAAC,CAAC,WAAW,CAAC;IAClB,MAAM,YAAY,GAAG,eAAe,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,CAAC;IAChF,MAAM,OAAO,GAAG,wBAAwB,CAAC,cAAc,EAAE;QACvD,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,cAAc,CAAC,MAAM;QACjC,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;IACH,MAAM,YAAY,GAAiB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,MAAM,eAAe,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAiB,eAAe;QAC7C,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,UAAU,IAAI,SAAS,CAAC;IAE3C,OAAO;QACL,YAAY;QACZ,UAAU;QACV,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAyB;IACvF,MAAM,IAAI,GAAG,IAAI,oBAAoB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,QAAQ,IAAI,eAAe,QAAQ,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"subagent_ui.js","sourceRoot":"","sources":["../../../src/core/tools/subagent_ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAA4B,MAAM,mBAAmB,CAAC;AAEvF,MAAM,UAAU,yBAAyB,CAAC,IAMzC;IACC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACrC,OAAO,wBAAwB,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACnE,GAAG,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAgD;IACrF,OAAO;QACL,SAAS,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;QACrD,YAAY,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;KAChD,CAAC;AACJ,CAAC"}