@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,44 +2,62 @@ import { Type } from "typebox";
2
2
  import { z } from "zod";
3
3
  import { formatInterruptAgentResult } 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, formatSubagentStatusLine } from "./subagent_ui.js";
7
+ import { buildSubagentPresentation, formatSubagentMetadata } from "./subagent_ui.js";
7
8
  import { TOOL_NAME_INTERRUPT_AGENT } from "./tool_names.js";
8
9
  const INTERRUPT_AGENT_DESCRIPTION = [
9
10
  "Interrupt the current run of a subagent and return its latest state.",
10
11
  "The subagent thread remains available for follow-up input.",
11
12
  "If the subagent is already idle, this returns its latest state without changing it.",
12
13
  ].join(" ");
13
- const INTERRUPT_AGENT_ID_DESCRIPTION = "Subagent id to interrupt.";
14
+ const INTERRUPT_AGENT_ID_DESCRIPTION = "Single-line subagent id to interrupt.";
14
15
  export const INTERRUPT_AGENT_TOOL = {
15
16
  name: TOOL_NAME_INTERRUPT_AGENT,
16
17
  description: INTERRUPT_AGENT_DESCRIPTION,
17
18
  parameters: Type.Object({
18
- id: Type.String({ description: INTERRUPT_AGENT_ID_DESCRIPTION }),
19
+ id: Type.String({
20
+ description: INTERRUPT_AGENT_ID_DESCRIPTION,
21
+ pattern: "^[^\\r\\n]+$",
22
+ }),
19
23
  }, { additionalProperties: false }),
20
24
  };
21
25
  const interruptArgsSchema = z.object({
22
- id: z.string().trim().min(1),
26
+ id: z
27
+ .string()
28
+ .trim()
29
+ .min(1)
30
+ .refine((id) => !/[\r\n]/.test(id), "Subagent ID must be a single line."),
23
31
  });
24
- function getInterruptAgentDisplayTarget(raw) {
32
+ function getInterruptAgentSubject(raw) {
25
33
  const parsedArgs = parseToolArgs(interruptArgsSchema, raw);
26
34
  return parsedArgs.ok ? parsedArgs.data.id : "(invalid arguments)";
27
35
  }
28
36
  export function createInterruptAgentToolDefinition(supervisor) {
29
37
  return {
30
38
  schema: INTERRUPT_AGENT_TOOL,
31
- describe: (toolCall) => ({ headerTarget: getInterruptAgentDisplayTarget(toolCall.arguments) }),
39
+ describe: (toolCall) => {
40
+ const subject = getInterruptAgentSubject(toolCall.arguments);
41
+ return {
42
+ presentation: buildToolRunPresentation({ toolName: TOOL_NAME_INTERRUPT_AGENT, subject }),
43
+ };
44
+ },
32
45
  async execute(toolCall, context) {
33
46
  const { signal } = context;
34
47
  let id = "";
35
- const headerTarget = getInterruptAgentDisplayTarget(toolCall.arguments);
48
+ const subject = getInterruptAgentSubject(toolCall.arguments);
36
49
  const blocked = (reason) => {
37
50
  const outcome = createTextToolOutcome(reason, "blocked");
38
51
  const uiEvent = {
39
- type: "interrupt_agent_blocked",
52
+ type: "tool_call_blocked",
40
53
  toolCallId: toolCall.id,
41
- agentId: id || undefined,
42
- headerTarget,
54
+ toolName: TOOL_NAME_INTERRUPT_AGENT,
55
+ presentation: buildToolRunPresentation({
56
+ toolName: TOOL_NAME_INTERRUPT_AGENT,
57
+ subject: subject,
58
+ details: [{ text: reason }],
59
+ detailTruncation: false,
60
+ }),
43
61
  reason,
44
62
  };
45
63
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
@@ -64,24 +82,19 @@ export function createInterruptAgentToolDefinition(supervisor) {
64
82
  const durationMs = state.run.status === "running"
65
83
  ? undefined
66
84
  : Math.max(0, state.run.finishedAt - state.run.startedAt);
67
- const statusText = formatSubagentStatusLine({
68
- costTotal: state.costTotal,
69
- durationMs,
70
- });
71
- const uiText = buildSubagentUiText({
85
+ const presentation = buildSubagentPresentation({
86
+ toolName: TOOL_NAME_INTERRUPT_AGENT,
87
+ subject: subject,
72
88
  output: resultText,
73
- statusText,
74
- maxOutputLines: 16,
75
- fullText: resultText,
89
+ detailTruncation: false,
90
+ metadata: formatSubagentMetadata({ costTotal: state.costTotal, durationMs }),
76
91
  });
77
92
  const uiEvent = {
78
- type: "interrupt_agent_finished",
93
+ type: "tool_call_finished",
79
94
  toolCallId: toolCall.id,
80
- agentId: id,
81
- headerTarget,
95
+ toolName: TOOL_NAME_INTERRUPT_AGENT,
96
+ presentation,
82
97
  status: "success",
83
- finalStatus: state.run.status,
84
- uiText,
85
98
  };
86
99
  const outcome = createTextToolOutcome(resultText, "succeeded");
87
100
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
@@ -89,29 +102,35 @@ export function createInterruptAgentToolDefinition(supervisor) {
89
102
  catch (error) {
90
103
  const message = error instanceof Error ? error.message : String(error);
91
104
  const reason = message.trim() || "The interrupt_agent request failed.";
92
- const uiText = buildSubagentUiText({
93
- output: reason,
94
- statusText: "error",
95
- maxOutputLines: 16,
96
- fullText: reason,
97
- });
105
+ const presentation = signal.aborted
106
+ ? buildToolRunPresentation({
107
+ toolName: TOOL_NAME_INTERRUPT_AGENT,
108
+ subject,
109
+ })
110
+ : buildSubagentPresentation({
111
+ toolName: TOOL_NAME_INTERRUPT_AGENT,
112
+ subject,
113
+ output: reason,
114
+ detailTruncation: false,
115
+ });
98
116
  const uiEvent = {
99
- type: "interrupt_agent_finished",
117
+ type: "tool_call_finished",
100
118
  toolCallId: toolCall.id,
101
- agentId: id,
102
- headerTarget,
119
+ toolName: TOOL_NAME_INTERRUPT_AGENT,
120
+ presentation,
103
121
  status: "error",
104
- message: reason,
105
- uiText,
106
122
  };
107
123
  const outcome = createTextToolOutcome(reason, signal.aborted ? "cancelled" : "failed");
108
124
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
109
125
  }
110
126
  }, {
111
- type: "interrupt_agent_started",
127
+ type: "tool_call_started",
112
128
  toolCallId: toolCall.id,
113
- agentId: id,
114
- headerTarget,
129
+ toolName: TOOL_NAME_INTERRUPT_AGENT,
130
+ presentation: buildToolRunPresentation({
131
+ toolName: TOOL_NAME_INTERRUPT_AGENT,
132
+ subject: subject,
133
+ }),
115
134
  });
116
135
  },
117
136
  };
@@ -1 +1 @@
1
- {"version":3,"file":"interrupt_agent.js","sourceRoot":"","sources":["../../../src/core/tools/interrupt_agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interrupt_agent.js","sourceRoot":"","sources":["../../../src/core/tools/interrupt_agent.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import { Type } from "typebox";
2
2
  import { z } from "zod";
3
3
  import { formatListAgentsResult } 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_LIST_AGENTS } from "./tool_names.js";
8
9
  const LIST_AGENTS_DESCRIPTION = [
9
10
  "List all spawned subagents and their current state.",
@@ -18,14 +19,24 @@ const listArgsSchema = z.object({}).strict();
18
19
  export function createListAgentsToolDefinition(supervisor) {
19
20
  return {
20
21
  schema: LIST_AGENTS_TOOL,
21
- describe: () => ({ headerTarget: "subagents" }),
22
+ describe: () => ({
23
+ presentation: buildToolRunPresentation({
24
+ toolName: TOOL_NAME_LIST_AGENTS,
25
+ subject: "subagents",
26
+ }),
27
+ }),
22
28
  async execute(toolCall, context) {
23
29
  const blocked = (reason) => {
24
30
  const outcome = createTextToolOutcome(reason, "blocked");
25
31
  const uiEvent = {
26
- type: "list_agents_blocked",
32
+ type: "tool_call_blocked",
27
33
  toolCallId: toolCall.id,
28
- headerTarget: "subagents",
34
+ toolName: TOOL_NAME_LIST_AGENTS,
35
+ presentation: buildToolRunPresentation({
36
+ toolName: TOOL_NAME_LIST_AGENTS,
37
+ subject: "subagents",
38
+ details: [{ text: reason }],
39
+ }),
29
40
  reason,
30
41
  };
31
42
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
@@ -39,24 +50,28 @@ export function createListAgentsToolDefinition(supervisor) {
39
50
  const capacity = supervisor.getCapacity();
40
51
  const resultText = formatListAgentsResult(states, capacity);
41
52
  const outcome = createTextToolOutcome(resultText, "succeeded");
42
- const uiText = buildSubagentUiText({
53
+ const presentation = buildSubagentPresentation({
54
+ toolName: TOOL_NAME_LIST_AGENTS,
55
+ subject: "subagents",
43
56
  output: resultText,
44
- statusText: `running ${capacity.running}/${capacity.limit}`,
45
- maxOutputLines: 16,
46
- fullText: resultText,
57
+ detailTruncation: false,
47
58
  });
48
59
  const uiEvent = {
49
- type: "list_agents_finished",
60
+ type: "tool_call_finished",
50
61
  toolCallId: toolCall.id,
51
- headerTarget: "subagents",
62
+ toolName: TOOL_NAME_LIST_AGENTS,
63
+ presentation,
52
64
  status: "success",
53
- uiText,
54
65
  };
55
66
  return { content: outcome.content, outcome: outcome.outcome, uiEvent };
56
67
  }, {
57
- type: "list_agents_started",
68
+ type: "tool_call_started",
58
69
  toolCallId: toolCall.id,
59
- headerTarget: "subagents",
70
+ toolName: TOOL_NAME_LIST_AGENTS,
71
+ presentation: buildToolRunPresentation({
72
+ toolName: TOOL_NAME_LIST_AGENTS,
73
+ subject: "subagents",
74
+ }),
60
75
  });
61
76
  },
62
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"list_agents.js","sourceRoot":"","sources":["../../../src/core/tools/list_agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list_agents.js","sourceRoot":"","sources":["../../../src/core/tools/list_agents.ts"],"names":[],"mappings":"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"}
@@ -5,24 +5,24 @@ import { createNookClientFromConfig } from "../nook/client.js";
5
5
  import { buildNookDeployManifestFromBackend, buildNookTemplateManifestFromBackend, } from "../nook/deploy.js";
6
6
  import { validateNookSiteSlug, validateNookTemplateName } from "../nook/validation.js";
7
7
  import { formatZodError } from "../utils/zod.js";
8
- import { createCodeModeToolDefinition, } from "./code_mode.js";
8
+ import { buildCodeModeToolDescription, createCodeModeToolDefinition, } from "./code_mode.js";
9
9
  import { executeCodeModeWorker } from "./code_mode_worker.js";
10
10
  import { TOOL_NAME_NOOK } from "./tool_names.js";
11
11
  const NOOK_CODE_MODE_TIMEOUT_MS = 60_000;
12
12
  const NOOK_CODE_MODE_OUTPUT_TOKENS = 8_192;
13
13
  const MAX_KV_KEY_LENGTH = 256;
14
14
  const MAX_KV_VALUE_BYTES = 64 * 1024;
15
- const NOOK_DESCRIPTION = [
16
- "Run a one-shot JavaScript program to operate the configured Nook platform: Tau's Cloudflare-backed static mini-app host for publishing built front-end artifacts with optional per-site same-origin JSON KV.",
17
- "Do not use this tool autonomously; use it only when the user asks to manage Nook, deploy/publish/host an app or artifact, inspect Nook state, or manage Nook KV.",
18
- "If the user asks to deploy a static artifact or mini-app, this is usually the right deployment target.",
19
- "Top-level await is supported. The program receives nook, docs, and console globals.",
20
- "Only text written through console methods is returned; program return values are ignored.",
21
- "To discover the available Nook APIs, run a program that prints docs with console.log(docs), then use that documentation in the next turn.",
22
- "The static docs describe the agent-facing SDK. When app-authoring guidance or the browser/KV contract is needed, print await nook.skill() before authoring the app.",
23
- "When preparing site files for deployment, write the complete site directory under a fresh mktemp directory and deploy that directory; do not scatter generated site files into the project tree.",
24
- "Sites and templates can be copied to an existing empty destination directory. Edit/build copied files normally, then deploy a built static directory separately.",
25
- ].join(" ");
15
+ const NOOK_DESCRIPTION = buildCodeModeToolDescription({
16
+ sdkGlobal: "nook",
17
+ introduction: [
18
+ "Run a one-shot JavaScript program to operate the configured Nook platform: Tau's Cloudflare-backed static mini-app host for publishing built front-end artifacts with optional per-site same-origin JSON KV.",
19
+ "Do not use this tool autonomously; use it only when the user asks to manage Nook, deploy/publish/host an app or artifact, inspect Nook state, or manage Nook KV.",
20
+ "If the user asks to deploy a static artifact or mini-app, this is usually the right deployment target.",
21
+ ],
22
+ additionalDocumentation: [
23
+ "When app-authoring guidance is needed, treat nook.skill() as a second documentation step: after reading docs, run a separate documentation-only call that does nothing except console.log(await nook.skill()). Read the returned guide before authoring or modifying the app in later calls.",
24
+ ],
25
+ });
26
26
  export const NOOK_TOOL = {
27
27
  name: TOOL_NAME_NOOK,
28
28
  description: NOOK_DESCRIPTION,
@@ -67,7 +67,7 @@ function parseNookArguments(raw) {
67
67
  const rawCode = typeof raw === "object" && raw !== null && typeof raw.code === "string"
68
68
  ? raw.code
69
69
  : "";
70
- const displayTarget = rawCode
70
+ const subject = rawCode
71
71
  .split(/\r?\n/)
72
72
  .map((line) => line.trim())
73
73
  .find(Boolean) ?? "(invalid code)";
@@ -77,14 +77,14 @@ function parseNookArguments(raw) {
77
77
  ok: false,
78
78
  error: formatZodError(parsed.error),
79
79
  code: rawCode,
80
- displayTarget,
80
+ subject,
81
81
  };
82
82
  }
83
83
  return {
84
84
  ok: true,
85
85
  args: parsed.data,
86
86
  code: parsed.data.code,
87
- displayTarget,
87
+ subject,
88
88
  };
89
89
  }
90
90
  function parseBridgeArguments(request) {
@@ -1 +1 @@
1
- {"version":3,"file":"nook.js","sourceRoot":"","sources":["../../../src/core/tools/nook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nook.js","sourceRoot":"","sources":["../../../src/core/tools/nook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,226 @@
1
+ import { z } from "zod";
2
+ import { TOOL_NAME_BASH, TOOL_NAME_EDIT, TOOL_NAME_HISTORY, TOOL_NAME_INTERRUPT_AGENT, TOOL_NAME_LIST_AGENTS, TOOL_NAME_NOOK, TOOL_NAME_SEND_INPUT_TO_AGENT, TOOL_NAME_SPAWN_AGENT, TOOL_NAME_VIEW_IMAGE, TOOL_NAME_WAIT_FOR_AGENTS, TOOL_NAME_WEB, TOOL_NAME_WRITE, } from "./tool_names.js";
3
+ export const TOOL_UI_FACET_VERSION = 2;
4
+ export const TOOL_CARD_SUBJECT_MAX_LINES = 8;
5
+ export const TOOL_CARD_DEFAULT_DETAILS_MAX_LINES = 7;
6
+ export const TOOL_CARD_TRUNCATED_DETAILS_MAX_LINES = 17;
7
+ export const TOOL_CARD_MAX_LINE_CHARS = 512;
8
+ function isBoundedLine(text) {
9
+ return (!text.includes("\n") &&
10
+ !text.includes("\r") &&
11
+ Array.from(text).length <= TOOL_CARD_MAX_LINE_CHARS);
12
+ }
13
+ const boundedLineSchema = z.string().refine(isBoundedLine, "must be one bounded line");
14
+ const boundedLabelSchema = boundedLineSchema.min(1);
15
+ const toolCardLineSchema = z
16
+ .object({
17
+ text: boundedLineSchema,
18
+ tone: z.enum(["added", "removed"]).optional(),
19
+ wrap: z.enum(["word", "character"]),
20
+ })
21
+ .strict();
22
+ const toolRunPresentationSchema = z
23
+ .object({
24
+ actionByStatus: z
25
+ .object({
26
+ preparing: boundedLabelSchema,
27
+ queued: boundedLabelSchema,
28
+ running: boundedLabelSchema,
29
+ succeeded: boundedLabelSchema,
30
+ failed: boundedLabelSchema,
31
+ blocked: boundedLabelSchema,
32
+ cancelled: boundedLabelSchema,
33
+ })
34
+ .strict(),
35
+ operation: boundedLabelSchema.optional(),
36
+ subject: z
37
+ .string()
38
+ .min(1)
39
+ .refine((subject) => {
40
+ const lines = subject.split("\n");
41
+ return lines.length <= TOOL_CARD_SUBJECT_MAX_LINES && lines.every(isBoundedLine);
42
+ }, "must contain only bounded lines"),
43
+ subjectWrap: z.enum(["word", "character"]),
44
+ details: z.array(toolCardLineSchema),
45
+ metadata: z.array(boundedLineSchema),
46
+ })
47
+ .strict();
48
+ const GENERIC_TOOL_RUN_ACTION_LABELS = {
49
+ preparing: "preparing",
50
+ queued: "queued",
51
+ running: "running",
52
+ succeeded: "completed",
53
+ failed: "failed",
54
+ blocked: "blocked",
55
+ cancelled: "cancelled",
56
+ };
57
+ const TOOL_RUN_ACTION_LABELS = {
58
+ [TOOL_NAME_BASH]: {
59
+ ...GENERIC_TOOL_RUN_ACTION_LABELS,
60
+ succeeded: "ran",
61
+ },
62
+ [TOOL_NAME_WRITE]: {
63
+ ...GENERIC_TOOL_RUN_ACTION_LABELS,
64
+ queued: "queued write",
65
+ running: "writing",
66
+ succeeded: "wrote",
67
+ failed: "failed to write",
68
+ blocked: "write blocked",
69
+ cancelled: "write cancelled",
70
+ },
71
+ [TOOL_NAME_EDIT]: {
72
+ ...GENERIC_TOOL_RUN_ACTION_LABELS,
73
+ queued: "queued edit",
74
+ running: "editing",
75
+ succeeded: "edited",
76
+ failed: "failed to edit",
77
+ blocked: "edit blocked",
78
+ cancelled: "edit cancelled",
79
+ },
80
+ [TOOL_NAME_VIEW_IMAGE]: {
81
+ ...GENERIC_TOOL_RUN_ACTION_LABELS,
82
+ queued: "queued view image",
83
+ running: "viewing",
84
+ succeeded: "viewed",
85
+ failed: "failed to view",
86
+ blocked: "view image blocked",
87
+ cancelled: "view image cancelled",
88
+ },
89
+ [TOOL_NAME_SPAWN_AGENT]: {
90
+ ...GENERIC_TOOL_RUN_ACTION_LABELS,
91
+ queued: "queued spawn",
92
+ running: "spawning",
93
+ succeeded: "spawned",
94
+ failed: "spawn failed",
95
+ blocked: "spawn blocked",
96
+ cancelled: "spawn cancelled",
97
+ },
98
+ [TOOL_NAME_SEND_INPUT_TO_AGENT]: {
99
+ ...GENERIC_TOOL_RUN_ACTION_LABELS,
100
+ queued: "queued input",
101
+ running: "sending input",
102
+ succeeded: "sent input",
103
+ failed: "failed to send input",
104
+ blocked: "send input blocked",
105
+ cancelled: "send input cancelled",
106
+ },
107
+ [TOOL_NAME_WAIT_FOR_AGENTS]: {
108
+ ...GENERIC_TOOL_RUN_ACTION_LABELS,
109
+ queued: "queued wait",
110
+ running: "waiting",
111
+ succeeded: "finished waiting",
112
+ failed: "wait failed",
113
+ blocked: "wait blocked",
114
+ cancelled: "wait cancelled",
115
+ },
116
+ [TOOL_NAME_LIST_AGENTS]: {
117
+ ...GENERIC_TOOL_RUN_ACTION_LABELS,
118
+ queued: "queued list",
119
+ running: "listing",
120
+ succeeded: "listed",
121
+ failed: "failed to list",
122
+ blocked: "list blocked",
123
+ cancelled: "list cancelled",
124
+ },
125
+ [TOOL_NAME_INTERRUPT_AGENT]: {
126
+ ...GENERIC_TOOL_RUN_ACTION_LABELS,
127
+ queued: "queued interruption",
128
+ running: "interrupting",
129
+ succeeded: "interrupted",
130
+ failed: "failed to interrupt",
131
+ blocked: "interruption blocked",
132
+ cancelled: "interruption cancelled",
133
+ },
134
+ };
135
+ function truncateLine(text) {
136
+ const characters = Array.from(text);
137
+ if (characters.length <= TOOL_CARD_MAX_LINE_CHARS)
138
+ return text;
139
+ return `${characters.slice(0, TOOL_CARD_MAX_LINE_CHARS - 1).join("")}…`;
140
+ }
141
+ function normalizeLabel(text) {
142
+ return truncateLine(text.replace(/\s+/g, " ").trim());
143
+ }
144
+ export function formatToolDurationMs(durationMs) {
145
+ const ms = Math.round(durationMs);
146
+ if (ms < 1000)
147
+ return `${ms}ms`;
148
+ if (ms < 10_000)
149
+ return `${(ms / 1000).toFixed(1)}s`;
150
+ return `${Math.round(ms / 1000)}s`;
151
+ }
152
+ function truncateLines(lines, maxLines, strategy = "middle") {
153
+ const bounded = lines.map((line) => ({ ...line, text: truncateLine(line.text) }));
154
+ if (bounded.length <= maxLines)
155
+ return bounded;
156
+ if (strategy === "head") {
157
+ const headCount = maxLines - 1;
158
+ const omitted = bounded.length - headCount;
159
+ return [
160
+ ...bounded.slice(0, headCount),
161
+ { text: `…${omitted} more ${omitted === 1 ? "line" : "lines"}…`, wrap: "word" },
162
+ ];
163
+ }
164
+ const headCount = Math.ceil((maxLines - 1) / 2);
165
+ const tailCount = maxLines - headCount - 1;
166
+ const omitted = bounded.length - headCount - tailCount;
167
+ return [
168
+ ...bounded.slice(0, headCount),
169
+ { text: `…${omitted} more ${omitted === 1 ? "line" : "lines"}…`, wrap: "word" },
170
+ ...bounded.slice(-tailCount),
171
+ ];
172
+ }
173
+ export function parseToolRunPresentation(value) {
174
+ return toolRunPresentationSchema.parse(value);
175
+ }
176
+ function getToolRunActionLabels(toolName) {
177
+ return Object.hasOwn(TOOL_RUN_ACTION_LABELS, toolName)
178
+ ? (TOOL_RUN_ACTION_LABELS[toolName] ?? GENERIC_TOOL_RUN_ACTION_LABELS)
179
+ : GENERIC_TOOL_RUN_ACTION_LABELS;
180
+ }
181
+ const CHARACTER_WRAPPED_SUBJECT_TOOLS = new Set([
182
+ TOOL_NAME_BASH,
183
+ TOOL_NAME_WEB,
184
+ TOOL_NAME_HISTORY,
185
+ TOOL_NAME_NOOK,
186
+ TOOL_NAME_WRITE,
187
+ TOOL_NAME_EDIT,
188
+ TOOL_NAME_VIEW_IMAGE,
189
+ ]);
190
+ export function buildToolRunPresentation(args) {
191
+ const subjectLines = args.subject.replace(/\r\n?/g, "\n").replace(/\n+$/, "").split("\n");
192
+ const boundedSubject = truncateLines(subjectLines.map((text) => ({ text, wrap: "word" })), TOOL_CARD_SUBJECT_MAX_LINES)
193
+ .map((line) => line.text)
194
+ .join("\n");
195
+ const labels = { ...getToolRunActionLabels(args.toolName), ...args.actionOverrides };
196
+ for (const status of Object.keys(labels)) {
197
+ labels[status] = normalizeLabel(labels[status]) || GENERIC_TOOL_RUN_ACTION_LABELS[status];
198
+ }
199
+ const details = (args.details ?? []).flatMap((line) => line.text
200
+ .replace(/\r\n?/g, "\n")
201
+ .split("\n")
202
+ .map((text) => ({ ...line, text, wrap: line.wrap ?? "word" })));
203
+ const detailTruncation = args.detailTruncation ?? {
204
+ maxLines: TOOL_CARD_DEFAULT_DETAILS_MAX_LINES,
205
+ strategy: "middle",
206
+ };
207
+ if (detailTruncation !== false &&
208
+ (!Number.isInteger(detailTruncation.maxLines) ||
209
+ detailTruncation.maxLines < 1 ||
210
+ detailTruncation.maxLines > TOOL_CARD_TRUNCATED_DETAILS_MAX_LINES)) {
211
+ throw new Error(`detail maxLines must be between 1 and ${TOOL_CARD_TRUNCATED_DETAILS_MAX_LINES}`);
212
+ }
213
+ const boundedDetails = detailTruncation === false
214
+ ? details.map((line) => ({ ...line, text: truncateLine(line.text) }))
215
+ : truncateLines(details, detailTruncation.maxLines, detailTruncation.strategy);
216
+ return parseToolRunPresentation({
217
+ actionByStatus: labels,
218
+ ...(args.operation ? { operation: normalizeLabel(args.operation) } : {}),
219
+ subject: boundedSubject || args.toolName,
220
+ subjectWrap: args.subjectWrap ??
221
+ (CHARACTER_WRAPPED_SUBJECT_TOOLS.has(args.toolName) ? "character" : "word"),
222
+ details: boundedDetails,
223
+ metadata: (args.metadata ?? []).map(normalizeLabel).filter((part) => part.length > 0),
224
+ });
225
+ }
226
+ //# sourceMappingURL=presentation.js.map