@markusylisiurunen/tau 0.3.39 → 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 (138) hide show
  1. package/README.md +34 -38
  2. package/dist/core/agent/agent_runtime.js +0 -22
  3. package/dist/core/agent/agent_runtime.js.map +1 -1
  4. package/dist/core/cli.js +2 -2
  5. package/dist/core/cli.js.map +1 -1
  6. package/dist/core/commands/registry.js +22 -20
  7. package/dist/core/commands/registry.js.map +1 -1
  8. package/dist/core/config/builtin_themes.js +936 -998
  9. package/dist/core/config/builtin_themes.js.map +1 -1
  10. package/dist/core/history/migrations.js +57 -0
  11. package/dist/core/history/migrations.js.map +1 -0
  12. package/dist/core/history/setup.js +18 -0
  13. package/dist/core/history/setup.js.map +1 -1
  14. package/dist/core/personas.js +8 -53
  15. package/dist/core/personas.js.map +1 -1
  16. package/dist/core/runtime/chat_runtime.js +0 -6
  17. package/dist/core/runtime/chat_runtime.js.map +1 -1
  18. package/dist/core/session/direct_bash.js +8 -8
  19. package/dist/core/session/direct_bash.js.map +1 -1
  20. package/dist/core/session/runner.js +6 -1
  21. package/dist/core/session/runner.js.map +1 -1
  22. package/dist/core/static/code_mode/history/documentation.md +3 -3
  23. package/dist/core/static/code_mode/nook/documentation.md +6 -4
  24. package/dist/core/static/code_mode/web/documentation.md +3 -3
  25. package/dist/core/tools/bash.js +80 -63
  26. package/dist/core/tools/bash.js.map +1 -1
  27. package/dist/core/tools/code_mode.js +45 -12
  28. package/dist/core/tools/code_mode.js.map +1 -1
  29. package/dist/core/tools/edit.js +72 -84
  30. package/dist/core/tools/edit.js.map +1 -1
  31. package/dist/core/tools/goal.js +97 -16
  32. package/dist/core/tools/goal.js.map +1 -1
  33. package/dist/core/tools/history.js +13 -15
  34. package/dist/core/tools/history.js.map +1 -1
  35. package/dist/core/tools/interrupt_agent.js +56 -37
  36. package/dist/core/tools/interrupt_agent.js.map +1 -1
  37. package/dist/core/tools/list_agents.js +28 -13
  38. package/dist/core/tools/list_agents.js.map +1 -1
  39. package/dist/core/tools/nook.js +15 -15
  40. package/dist/core/tools/nook.js.map +1 -1
  41. package/dist/core/tools/presentation.js +226 -0
  42. package/dist/core/tools/presentation.js.map +1 -0
  43. package/dist/core/tools/registry.js.map +1 -1
  44. package/dist/core/tools/send_input_to_agent.js +57 -47
  45. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  46. package/dist/core/tools/spawn_agent.js +81 -52
  47. package/dist/core/tools/spawn_agent.js.map +1 -1
  48. package/dist/core/tools/subagent_ui.js +14 -38
  49. package/dist/core/tools/subagent_ui.js.map +1 -1
  50. package/dist/core/tools/view_image.js +45 -45
  51. package/dist/core/tools/view_image.js.map +1 -1
  52. package/dist/core/tools/wait_for_agents.js +94 -56
  53. package/dist/core/tools/wait_for_agents.js.map +1 -1
  54. package/dist/core/tools/web.js +11 -13
  55. package/dist/core/tools/web.js.map +1 -1
  56. package/dist/core/tools/write.js +41 -39
  57. package/dist/core/tools/write.js.map +1 -1
  58. package/dist/core/utils/gemini_speech.js +1 -1
  59. package/dist/core/utils/gemini_speech.js.map +1 -1
  60. package/dist/core/utils/subagent_utils.js +3 -3
  61. package/dist/core/utils/subagent_utils.js.map +1 -1
  62. package/dist/core/version.js +1 -1
  63. package/dist/execution/cloudflare_sandbox_execution_environment.js +1 -1
  64. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
  65. package/dist/history/worker/index.js +149 -192
  66. package/dist/history/worker/index.js.map +1 -1
  67. package/dist/host/client_tool_broker.js +29 -31
  68. package/dist/host/client_tool_broker.js.map +1 -1
  69. package/dist/host/local_session_host.js +11 -5
  70. package/dist/host/local_session_host.js.map +1 -1
  71. package/dist/main.js +6 -6
  72. package/dist/main.js.map +1 -1
  73. package/dist/tui/chat_controller/diff_review_service.js +1 -1
  74. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  75. package/dist/tui/chat_controller/history_labels.js +13 -0
  76. package/dist/tui/chat_controller/history_labels.js.map +1 -1
  77. package/dist/tui/chat_view.js +24 -50
  78. package/dist/tui/chat_view.js.map +1 -1
  79. package/dist/tui/session_chat_app.js +3 -4
  80. package/dist/tui/session_chat_app.js.map +1 -1
  81. package/dist/tui/session_chat_controller.js +80 -111
  82. package/dist/tui/session_chat_controller.js.map +1 -1
  83. package/dist/tui/terminal_appearance.js +44 -25
  84. package/dist/tui/terminal_appearance.js.map +1 -1
  85. package/dist/tui/ui/autocomplete_item.js +2 -0
  86. package/dist/tui/ui/autocomplete_item.js.map +1 -0
  87. package/dist/tui/ui/chat_container.js +1 -14
  88. package/dist/tui/ui/chat_container.js.map +1 -1
  89. package/dist/tui/ui/chat_message_model.js +4 -12
  90. package/dist/tui/ui/chat_message_model.js.map +1 -1
  91. package/dist/tui/ui/components/autocomplete_list.js +138 -0
  92. package/dist/tui/ui/components/autocomplete_list.js.map +1 -0
  93. package/dist/tui/ui/components/editor.js +33 -40
  94. package/dist/tui/ui/components/editor.js.map +1 -1
  95. package/dist/tui/ui/components/one_line_segments.js +0 -67
  96. package/dist/tui/ui/components/one_line_segments.js.map +1 -1
  97. package/dist/tui/ui/custom_editor.js +15 -11
  98. package/dist/tui/ui/custom_editor.js.map +1 -1
  99. package/dist/tui/ui/diff_review_message.js +1 -11
  100. package/dist/tui/ui/diff_review_message.js.map +1 -1
  101. package/dist/tui/ui/footer.js +63 -13
  102. package/dist/tui/ui/footer.js.map +1 -1
  103. package/dist/tui/ui/rewind_picker.js +17 -47
  104. package/dist/tui/ui/rewind_picker.js.map +1 -1
  105. package/dist/tui/ui/slash_autocomplete.js +43 -64
  106. package/dist/tui/ui/slash_autocomplete.js.map +1 -1
  107. package/dist/tui/ui/subagent_editor_pane.js +3 -3
  108. package/dist/tui/ui/theme/index.js +1 -1
  109. package/dist/tui/ui/theme/index.js.map +1 -1
  110. package/dist/tui/ui/theme/palette.js +245 -8
  111. package/dist/tui/ui/theme/palette.js.map +1 -1
  112. package/dist/tui/ui/theme/theme.js +3 -30
  113. package/dist/tui/ui/theme/theme.js.map +1 -1
  114. package/dist/tui/ui/tool_card.js +137 -0
  115. package/dist/tui/ui/tool_card.js.map +1 -0
  116. package/dist/tui/ui/user_message.js +3 -6
  117. package/dist/tui/ui/user_message.js.map +1 -1
  118. package/package.json +2 -2
  119. package/dist/core/utils/tool_preview.js +0 -73
  120. package/dist/core/utils/tool_preview.js.map +0 -1
  121. package/dist/tui/chat_controller/command_hints.js +0 -35
  122. package/dist/tui/chat_controller/command_hints.js.map +0 -1
  123. package/dist/tui/ui/bash_execution.js +0 -129
  124. package/dist/tui/ui/bash_execution.js.map +0 -1
  125. package/dist/tui/ui/components/dynamic_border.js +0 -11
  126. package/dist/tui/ui/components/dynamic_border.js.map +0 -1
  127. package/dist/tui/ui/components/header_box.js +0 -107
  128. package/dist/tui/ui/components/header_box.js.map +0 -1
  129. package/dist/tui/ui/components/header_line.js +0 -60
  130. package/dist/tui/ui/components/header_line.js.map +0 -1
  131. package/dist/tui/ui/components/padded_container.js +0 -24
  132. package/dist/tui/ui/components/padded_container.js.map +0 -1
  133. package/dist/tui/ui/file_execution.js +0 -176
  134. package/dist/tui/ui/file_execution.js.map +0 -1
  135. package/dist/tui/ui/tool_output.js +0 -163
  136. package/dist/tui/ui/tool_output.js.map +0 -1
  137. package/dist/tui/ui/tool_ui_registry.js +0 -786
  138. package/dist/tui/ui/tool_ui_registry.js.map +0 -1
@@ -2,6 +2,7 @@ import { Type } from "typebox";
2
2
  import { z } from "zod";
3
3
  import { buildLineDiff } from "../utils/line_diff.js";
4
4
  import { formatZodError } from "../utils/zod.js";
5
+ import { buildToolRunPresentation } from "./presentation.js";
5
6
  import { createTextToolOutcome, executeTool, } from "./registry.js";
6
7
  import { TOOL_NAME_EDIT } from "./tool_names.js";
7
8
  const EDIT_DESCRIPTION = [
@@ -9,7 +10,7 @@ const EDIT_DESCRIPTION = [
9
10
  "Finds and replaces exactly one occurrence of oldText with newText.",
10
11
  "Fails if the file doesn't exist, if oldText is not found, or if multiple matches exist.",
11
12
  ].join(" ");
12
- const EDIT_PATH_DESCRIPTION = "Absolute or relative path to the file to edit.";
13
+ const EDIT_PATH_DESCRIPTION = "Single-line absolute or relative path to the file to edit.";
13
14
  const EDIT_OLD_TEXT_DESCRIPTION = [
14
15
  "The exact text to find and replace, including whitespace and newlines.",
15
16
  "Must match exactly one occurrence.",
@@ -20,24 +21,39 @@ export const EDIT_TOOL = {
20
21
  name: TOOL_NAME_EDIT,
21
22
  description: EDIT_DESCRIPTION,
22
23
  parameters: Type.Object({
23
- path: Type.String({ description: EDIT_PATH_DESCRIPTION }),
24
+ path: Type.String({
25
+ description: EDIT_PATH_DESCRIPTION,
26
+ pattern: "^[^\\r\\n]+$",
27
+ }),
24
28
  oldText: Type.String({ description: EDIT_OLD_TEXT_DESCRIPTION }),
25
29
  newText: Type.String({ description: EDIT_NEW_TEXT_DESCRIPTION }),
26
30
  }, { additionalProperties: false }),
27
31
  };
28
- const editArgsSchema = z.object({
29
- path: z.string().trim().min(1),
30
- oldText: z.string().min(1),
32
+ const editArgsSchema = z
33
+ .object({
34
+ path: z.string(),
35
+ oldText: z.string(),
31
36
  newText: z.string(),
32
- });
37
+ })
38
+ .strict();
33
39
  function parseEditArgs(raw) {
34
40
  const parsed = editArgsSchema.safeParse(raw);
35
41
  if (!parsed.success) {
36
42
  return { ok: false, error: formatZodError(parsed.error) };
37
43
  }
38
- return { ok: true, data: parsed.data };
44
+ const path = parsed.data.path.trim();
45
+ if (!path) {
46
+ return { ok: false, error: "path must not be empty." };
47
+ }
48
+ if (/[\r\n]/.test(path)) {
49
+ return { ok: false, error: "path must be a single line." };
50
+ }
51
+ if (!parsed.data.oldText) {
52
+ return { ok: false, error: "oldText must not be empty." };
53
+ }
54
+ return { ok: true, data: { ...parsed.data, path } };
39
55
  }
40
- function getEditDisplayTarget(raw) {
56
+ function getEditSubject(raw) {
41
57
  const parsedArgs = parseEditArgs(raw);
42
58
  return parsedArgs.ok ? parsedArgs.data.path : "(invalid arguments)";
43
59
  }
@@ -54,57 +70,54 @@ function countOccurrences(content, search) {
54
70
  }
55
71
  return count;
56
72
  }
57
- function findMatchContext(content, search, contextLines = 2) {
58
- const index = content.indexOf(search);
59
- if (index === -1)
60
- return "";
61
- const lines = content.split(/\r?\n/);
62
- const matchLineIndex = content.slice(0, index).split(/\r?\n/).length - 1;
63
- const startLine = Math.max(0, matchLineIndex - contextLines);
64
- const endLine = Math.min(lines.length - 1, matchLineIndex + contextLines);
65
- const contextSnippet = lines.slice(startLine, endLine + 1).join("\n");
66
- return `Lines ${startLine + 1}-${endLine + 1}:\n${contextSnippet}`;
73
+ function formatSignedDelta(value, unit) {
74
+ const prefix = value > 0 ? "+" : "";
75
+ return `${prefix}${value} ${unit}${Math.abs(value) === 1 ? "" : "s"}`;
67
76
  }
68
- function formatEditToolResultText(args) {
69
- return args.summaryLine;
70
- }
71
- function buildEditUiText(args) {
72
- const { summaryLine, statusLine, diffLines } = args;
73
- const formatLine = (line) => {
74
- const text = line;
75
- if (line.startsWith("+ "))
76
- return { text, tone: "diffAdd" };
77
- if (line.startsWith("- "))
78
- return { text, tone: "diffRemove" };
79
- return { text };
80
- };
81
- const previewLines = diffLines.map((line) => formatLine(line));
82
- const fullLines = [{ text: summaryLine }];
83
- if (diffLines.length > 0) {
84
- fullLines.push({ text: "" }, ...diffLines.map((line) => formatLine(line)));
85
- }
86
- return {
87
- previewLines,
88
- statusLine,
89
- fullLines,
90
- };
77
+ function buildEditPresentation(args) {
78
+ const details = args.diffLines.map((text) => {
79
+ if (text.startsWith("+ "))
80
+ return { text, tone: "added", wrap: "character" };
81
+ if (text.startsWith("- "))
82
+ return { text, tone: "removed", wrap: "character" };
83
+ return { text, wrap: "character" };
84
+ });
85
+ return buildToolRunPresentation({
86
+ toolName: TOOL_NAME_EDIT,
87
+ subject: args.subject,
88
+ details,
89
+ detailTruncation: false,
90
+ metadata: [
91
+ formatSignedDelta(args.added - args.removed, "line"),
92
+ formatSignedDelta(args.newLength - args.oldLength, "char"),
93
+ ],
94
+ });
91
95
  }
92
96
  export function createEditToolDefinition(backend) {
93
97
  return {
94
98
  schema: EDIT_TOOL,
95
- describe: (toolCall) => ({ headerTarget: getEditDisplayTarget(toolCall.arguments) }),
99
+ describe: (toolCall) => {
100
+ const subject = getEditSubject(toolCall.arguments);
101
+ return {
102
+ presentation: buildToolRunPresentation({ toolName: TOOL_NAME_EDIT, subject }),
103
+ };
104
+ },
96
105
  async execute(toolCall, context) {
97
106
  return executeTool(context, async () => {
98
107
  const parsedArgs = parseEditArgs(toolCall.arguments);
99
108
  const path = parsedArgs.ok ? parsedArgs.data.path : "";
100
- const headerTarget = getEditDisplayTarget(toolCall.arguments);
109
+ const subject = getEditSubject(toolCall.arguments);
101
110
  const blocked = (reason, semanticOutcome = "blocked") => {
102
111
  const outcome = createTextToolOutcome(reason, semanticOutcome);
103
112
  const uiEvent = {
104
113
  type: "edit_blocked",
105
114
  toolCallId: toolCall.id,
106
115
  path: path || "(invalid path)",
107
- headerTarget,
116
+ presentation: buildToolRunPresentation({
117
+ toolName: TOOL_NAME_EDIT,
118
+ subject: subject,
119
+ details: [{ text: reason }],
120
+ }),
108
121
  reason,
109
122
  };
110
123
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
@@ -127,58 +140,33 @@ export function createEditToolDefinition(backend) {
127
140
  }
128
141
  const matchCount = countOccurrences(content, oldText);
129
142
  if (matchCount === 0) {
130
- // Provide helpful context for debugging
143
+ const noMatchMessage = "No exact match for oldText was found in the file. Read the file first to see its current content.";
131
144
  const trimmedOld = oldText.trim();
132
- const trimmedCount = trimmedOld !== oldText ? countOccurrences(content, trimmedOld) : 0;
133
- let hint = "";
134
- if (trimmedCount > 0) {
135
- hint =
136
- " Hint: Found matches when ignoring leading/trailing whitespace. Check that your oldText exactly matches the file content, including whitespace.";
137
- }
138
- else if (oldText.includes("\n")) {
139
- hint =
140
- " Hint: Your search contains newlines. Ensure line endings match the file (LF vs CRLF) and indentation is exact.";
141
- }
142
- else {
143
- // Check for partial matches
144
- const words = oldText.split(/\s+/).filter((w) => w.length > 3);
145
- const partialMatches = words.filter((w) => content.includes(w));
146
- if (partialMatches.length > 0 && partialMatches.length < words.length) {
147
- hint = ` Hint: Some words from oldText were found ('${partialMatches.slice(0, 3).join("', '")}'), but the exact string was not. Check for typos or extra whitespace.`;
148
- }
149
- }
150
- return blocked(`No exact match for oldText was found in the file.${hint} Read the file first to see its current content.`);
145
+ const hasWhitespaceOnlyMismatch = trimmedOld !== oldText && countOccurrences(content, trimmedOld) > 0;
146
+ return blocked(hasWhitespaceOnlyMismatch
147
+ ? `${noMatchMessage} Hint: Found matches when ignoring leading/trailing whitespace.`
148
+ : noMatchMessage);
151
149
  }
152
150
  if (matchCount > 1) {
153
- const firstMatchContext = findMatchContext(content, oldText);
154
- return blocked(`Found ${matchCount} matches for oldText, but exactly 1 is required. Make oldText more specific to match only one location.\n\nFirst match context:\n${firstMatchContext}`);
151
+ return blocked(`Found ${matchCount} matches for oldText, but exactly 1 is required. Make oldText more specific to match only one location.`);
155
152
  }
156
- // Exactly one match -> perform the replacement
157
153
  const newContent = content.replace(oldText, () => newText);
158
154
  try {
159
155
  await backend.writeFile(path, newContent);
160
156
  const { lines: diffLines, added, removed } = buildLineDiff(oldText, newText);
161
- const sizeDiff = newText.length - oldText.length;
162
- const sizeDiffStr = sizeDiff === 0
163
- ? "Same size"
164
- : sizeDiff > 0
165
- ? `+${sizeDiff} chars`
166
- : `${sizeDiff} chars`;
167
- const summaryLine = `Successfully edited ${path}: ${oldText.length} → ${newText.length} chars (${sizeDiffStr})`;
168
- const statusLine = `+${added}, -${removed} · ${oldText.length} → ${newText.length} chars (${sizeDiffStr})`;
169
- const resultText = formatEditToolResultText({ summaryLine });
170
- const outcome = createTextToolOutcome(resultText, "succeeded");
171
- const uiText = buildEditUiText({ summaryLine, statusLine, diffLines });
157
+ const outcome = createTextToolOutcome(`Successfully edited ${path}.`, "succeeded");
172
158
  const uiEvent = {
173
159
  type: "edit_success",
174
160
  toolCallId: toolCall.id,
175
161
  path,
176
- headerTarget,
177
- oldLength: oldText.length,
178
- newLength: newText.length,
179
- oldText,
180
- newText,
181
- uiText,
162
+ presentation: buildEditPresentation({
163
+ subject: subject,
164
+ diffLines,
165
+ added,
166
+ removed,
167
+ oldLength: oldText.length,
168
+ newLength: newText.length,
169
+ }),
182
170
  };
183
171
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
184
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/core/tools/edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/core/tools/edit.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import { Type } from "typebox";
2
2
  import { z } from "zod";
3
3
  import { buildBlockedGoalInstruction, buildGoalPolicy, formatGoalState } from "../session/goal.js";
4
4
  import { parseToolArgs } from "../utils/zod.js";
5
- import { createTextToolOutcome, } from "./registry.js";
5
+ import { buildToolRunPresentation, } from "./presentation.js";
6
+ import { createTextToolOutcome, executeTool, } from "./registry.js";
6
7
  import { TOOL_NAME_CREATE_GOAL, TOOL_NAME_GET_GOAL, TOOL_NAME_UPDATE_GOAL } from "./tool_names.js";
7
8
  const GET_GOAL_TOOL = {
8
9
  name: TOOL_NAME_GET_GOAL,
@@ -26,6 +27,35 @@ const UPDATE_GOAL_TOOL = {
26
27
  };
27
28
  const emptyArgsSchema = z.object({}).strict();
28
29
  const createArgsSchema = z.object({ objective: z.string().trim().min(1) }).strict();
30
+ const GOAL_ACTION_LABELS = {
31
+ [TOOL_NAME_GET_GOAL]: {
32
+ preparing: "preparing check",
33
+ queued: "queued check",
34
+ running: "checking",
35
+ succeeded: "checked",
36
+ failed: "failed to check",
37
+ blocked: "check blocked",
38
+ cancelled: "check cancelled",
39
+ },
40
+ [TOOL_NAME_CREATE_GOAL]: {
41
+ preparing: "preparing creation",
42
+ queued: "queued creation",
43
+ running: "creating",
44
+ succeeded: "created",
45
+ failed: "failed to create",
46
+ blocked: "creation blocked",
47
+ cancelled: "creation cancelled",
48
+ },
49
+ [TOOL_NAME_UPDATE_GOAL]: {
50
+ preparing: "preparing update",
51
+ queued: "queued update",
52
+ running: "updating",
53
+ succeeded: "updated",
54
+ failed: "failed to update",
55
+ blocked: "update blocked",
56
+ cancelled: "update cancelled",
57
+ },
58
+ };
29
59
  const updateArgsSchema = z
30
60
  .object({
31
61
  objective: z.string().trim().min(1).optional(),
@@ -43,7 +73,12 @@ export function createGoalToolDefinitions(manager) {
43
73
  createGoalTool(GET_GOAL_TOOL, emptyArgsSchema, () => formatGoalState(manager.getGoal())),
44
74
  createGoalTool(CREATE_GOAL_TOOL, createArgsSchema, async ({ objective }) => {
45
75
  const goal = await manager.createGoal(objective);
46
- return `Session goal created.\n\n${buildGoalPolicy(goal)}`;
76
+ return {
77
+ text: `Session goal created.\n\n${buildGoalPolicy(goal)}`,
78
+ presentation: {
79
+ details: [{ text: goal.objective }],
80
+ },
81
+ };
47
82
  }),
48
83
  createGoalTool(UPDATE_GOAL_TOOL, updateArgsSchema, async (update) => {
49
84
  const goal = await manager.updateGoal(update);
@@ -51,26 +86,72 @@ export function createGoalToolDefinitions(manager) {
51
86
  return "The session goal is complete and has been cleared.";
52
87
  }
53
88
  const instruction = goal.status === "active" ? buildGoalPolicy(goal) : buildBlockedGoalInstruction(goal);
54
- return `Session goal updated.\n\n${instruction}`;
89
+ return {
90
+ text: `Session goal updated.\n\n${instruction}`,
91
+ presentation: {
92
+ details: [{ text: goal.objective }],
93
+ },
94
+ };
55
95
  }),
56
96
  ];
57
97
  }
58
98
  function createGoalTool(schema, argsSchema, execute) {
99
+ const actionOverrides = GOAL_ACTION_LABELS[schema.name];
100
+ if (!actionOverrides) {
101
+ throw new Error(`missing goal action labels for '${schema.name}'`);
102
+ }
59
103
  return {
60
104
  schema,
61
- describe: () => ({ headerTarget: "goal" }),
62
- async execute(toolCall, _context) {
63
- const parsed = parseToolArgs(argsSchema, toolCall.arguments);
64
- if (!parsed.ok) {
65
- return createTextToolOutcome(`Invalid arguments: ${parsed.error}`, "blocked");
66
- }
67
- try {
68
- const result = await execute(parsed.data);
69
- return createTextToolOutcome(result, "succeeded");
70
- }
71
- catch (error) {
72
- return createTextToolOutcome(error instanceof Error ? error.message : String(error), "blocked");
73
- }
105
+ describe: () => ({
106
+ presentation: buildToolRunPresentation({
107
+ toolName: schema.name,
108
+ subject: "goal",
109
+ actionOverrides,
110
+ }),
111
+ }),
112
+ async execute(toolCall, context) {
113
+ const finish = (text, outcome, successPresentation) => {
114
+ return {
115
+ ...createTextToolOutcome(text, outcome),
116
+ uiEvent: {
117
+ type: "tool_call_finished",
118
+ toolCallId: toolCall.id,
119
+ toolName: schema.name,
120
+ presentation: buildToolRunPresentation({
121
+ toolName: schema.name,
122
+ subject: "goal",
123
+ details: successPresentation?.details ?? [{ text }],
124
+ ...(successPresentation ? { detailTruncation: false } : {}),
125
+ actionOverrides,
126
+ }),
127
+ status: outcome === "succeeded" ? "success" : "error",
128
+ },
129
+ };
130
+ };
131
+ return executeTool(context, async () => {
132
+ const parsed = parseToolArgs(argsSchema, toolCall.arguments);
133
+ if (!parsed.ok) {
134
+ return finish(`Invalid arguments: ${parsed.error}`, "blocked");
135
+ }
136
+ try {
137
+ const result = await execute(parsed.data);
138
+ return typeof result === "string"
139
+ ? finish(result, "succeeded")
140
+ : finish(result.text, "succeeded", result.presentation);
141
+ }
142
+ catch (error) {
143
+ return finish(error instanceof Error ? error.message : String(error), "blocked");
144
+ }
145
+ }, {
146
+ type: "tool_call_started",
147
+ toolCallId: toolCall.id,
148
+ toolName: schema.name,
149
+ presentation: buildToolRunPresentation({
150
+ toolName: schema.name,
151
+ subject: "goal",
152
+ actionOverrides,
153
+ }),
154
+ });
74
155
  },
75
156
  };
76
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"goal.js","sourceRoot":"","sources":["../../../src/core/tools/goal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"goal.js","sourceRoot":"","sources":["../../../src/core/tools/goal.ts"],"names":[],"mappings":"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"}
@@ -2,21 +2,19 @@ import { readFileSync } from "node:fs";
2
2
  import { Type } from "typebox";
3
3
  import { z } from "zod";
4
4
  import { formatZodError } from "../utils/zod.js";
5
- import { createCodeModeToolDefinition, } from "./code_mode.js";
5
+ import { buildCodeModeToolDescription, createCodeModeToolDefinition, } from "./code_mode.js";
6
6
  import { executeCodeModeWorker } from "./code_mode_worker.js";
7
7
  import { TOOL_NAME_HISTORY } from "./tool_names.js";
8
8
  const HISTORY_CODE_MODE_TIMEOUT_MS = 60_000;
9
9
  const HISTORY_CODE_MODE_OUTPUT_TOKENS = 8_192;
10
- const HISTORY_DESCRIPTION = [
11
- "Run a one-shot JavaScript program to search and read durable transcripts from the configured history collection.",
12
- "Use this tool only when the user or other active instructions directly ask you to reference, search, or read historical transcripts; do not invoke it merely because prior sessions might be relevant.",
13
- "The tool is read-only and has global visibility across repositories and execution environments.",
14
- "Top-level await is supported. The program receives history, docs, and console globals.",
15
- "Only text written through console methods is returned; program return values are ignored.",
16
- "Use history.search to find concise session descriptors, then history.read only for the selected transcripts and ranges needed.",
17
- "Ordinary JavaScript can filter, map, group, and combine returned data.",
18
- "To discover the available APIs, run a program that prints docs with console.log(docs), then use that documentation in the next turn.",
19
- ].join(" ");
10
+ const HISTORY_DESCRIPTION = buildCodeModeToolDescription({
11
+ sdkGlobal: "history",
12
+ introduction: [
13
+ "Run a one-shot JavaScript program to search and read durable transcripts from the configured history collection.",
14
+ "Use this tool only when the user or other active instructions directly ask you to reference, search, or read historical transcripts; do not invoke it merely because prior sessions might be relevant.",
15
+ "The tool is read-only and has global visibility across repositories and execution environments.",
16
+ ],
17
+ });
20
18
  export const HISTORY_TOOL = {
21
19
  name: TOOL_NAME_HISTORY,
22
20
  description: HISTORY_DESCRIPTION,
@@ -38,7 +36,7 @@ const searchInputSchema = z
38
36
  .object({
39
37
  query: z.string().trim().min(1).max(1_000).optional(),
40
38
  attributes: attributeFiltersSchema.optional(),
41
- limit: z.number().int().min(1).max(100).default(10),
39
+ limit: z.number().int().min(1).max(75).default(10),
42
40
  cursor: z.string().min(1).max(2_048).optional(),
43
41
  })
44
42
  .strict();
@@ -55,7 +53,7 @@ function parseHistoryArguments(raw) {
55
53
  const rawCode = typeof raw === "object" && raw !== null && typeof raw.code === "string"
56
54
  ? raw.code
57
55
  : "";
58
- const displayTarget = rawCode
56
+ const subject = rawCode
59
57
  .split(/\r?\n/)
60
58
  .map((line) => line.trim())
61
59
  .find(Boolean) ?? "(invalid code)";
@@ -65,14 +63,14 @@ function parseHistoryArguments(raw) {
65
63
  ok: false,
66
64
  error: formatZodError(parsed.error),
67
65
  code: rawCode,
68
- displayTarget,
66
+ subject,
69
67
  };
70
68
  }
71
69
  return {
72
70
  ok: true,
73
71
  args: parsed.data,
74
72
  code: parsed.data.code,
75
- displayTarget,
73
+ subject,
76
74
  };
77
75
  }
78
76
  function parseBridgeArguments(request) {
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/core/tools/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAEL,4BAA4B,GAE7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAA8B,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAC5C,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAE9C,MAAM,mBAAmB,GAAG;IAC1B,kHAAkH;IAClH,wMAAwM;IACxM,iGAAiG;IACjG,wFAAwF;IACxF,2FAA2F;IAC3F,gIAAgI;IAChI,wEAAwE;IACxE,sIAAsI;CACvI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,IAAI,CAAC,MAAM,CACrB;QACE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,yEAAyE;SACvF,CAAC;KACH,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC;CACF,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAGhF,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC;IACpC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CAC9D,CAAC,CAAC;AACH,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,qBAAqB,CAAC;KACxD,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAChE,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IACrD,UAAU,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,aAAa,GAAG,YAAY,CAChC,IAAI,GAAG,CAAC,8CAA8C,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EACxE,MAAM,CACP,CAAC;AACF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,gDAAgD,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAEpG,SAAS,qBAAqB,CAAC,GAAY;IACzC,MAAM,OAAO,GACX,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,OAAQ,GAA0B,CAAC,IAAI,KAAK,QAAQ;QAC7F,CAAC,CAAE,GAAwB,CAAC,IAAI;QAChC,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,aAAa,GACjB,OAAO;SACJ,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC;IACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;YACnC,IAAI,EAAE,OAAO;YACb,aAAa;SACd,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;QACtB,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA8B;IAC1D,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,MAAM,6BAA6B,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAA8B,EAC9B,OAAqB,EACrB,MAAmB;IAEnB,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAA6B,EAC7B,OAAqB;IAErB,MAAM,cAAc,GAA4C;QAC9D,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,EAAE,SAAS,EAAE,+BAA+B,EAAE;QAC5D,SAAS,EAAE,4BAA4B;QACvC,cAAc,EAAE,qBAAqB;QACrC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAClC,qBAAqB,CAAC;YACpB,gBAAgB;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE;YACzC,MAAM;YACN,SAAS,EAAE,4BAA4B;YACvC,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,CACxC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;SACxD,CAAC;KACL,CAAC;IACF,OAAO,4BAA4B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/core/tools/history.ts"],"names":[],"mappings":"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"}