@markusylisiurunen/tau 0.3.94 → 0.3.95

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 (139) hide show
  1. package/dist/code_mode/command.js +3 -1
  2. package/dist/code_mode/command.js.map +1 -1
  3. package/dist/code_mode/output.d.ts +3 -0
  4. package/dist/code_mode/output.js +8 -2
  5. package/dist/code_mode/output.js.map +1 -1
  6. package/dist/code_mode/runtime.d.ts +7 -1
  7. package/dist/code_mode/runtime.js +18 -14
  8. package/dist/code_mode/runtime.js.map +1 -1
  9. package/dist/core/code_mode/agents.js +434 -0
  10. package/dist/core/code_mode/agents.js.map +1 -0
  11. package/dist/core/code_mode/bash.js +14 -17
  12. package/dist/core/code_mode/bash.js.map +1 -1
  13. package/dist/core/code_mode/history.js +1 -0
  14. package/dist/core/code_mode/history.js.map +1 -1
  15. package/dist/core/code_mode/models.js +27 -4
  16. package/dist/core/code_mode/models.js.map +1 -1
  17. package/dist/core/code_mode/sdk.js +6 -0
  18. package/dist/core/code_mode/sdk.js.map +1 -1
  19. package/dist/core/config/content_loader.js +3 -13
  20. package/dist/core/config/content_loader.js.map +1 -1
  21. package/dist/core/debug.js +2 -2
  22. package/dist/core/debug.js.map +1 -1
  23. package/dist/core/history/history_manager.js +7 -4
  24. package/dist/core/history/history_manager.js.map +1 -1
  25. package/dist/core/index.js +0 -4
  26. package/dist/core/index.js.map +1 -1
  27. package/dist/core/mcp/manager.js +7 -0
  28. package/dist/core/mcp/manager.js.map +1 -1
  29. package/dist/core/models/openrouter.js +25 -1
  30. package/dist/core/models/openrouter.js.map +1 -1
  31. package/dist/core/personas.js +3 -11
  32. package/dist/core/personas.js.map +1 -1
  33. package/dist/core/runtime/chat_runtime.js +11 -10
  34. package/dist/core/runtime/chat_runtime.js.map +1 -1
  35. package/dist/core/runtime/session_prompt_composer.js +9 -8
  36. package/dist/core/runtime/session_prompt_composer.js.map +1 -1
  37. package/dist/core/static/code_mode/history/documentation.md +2 -1
  38. package/dist/core/static/code_mode/sandbox_runner.mjs +4 -0
  39. package/dist/core/static/index.js +18 -5
  40. package/dist/core/static/index.js.map +1 -1
  41. package/dist/core/static/prompts/subagent-prefix.md +17 -0
  42. package/dist/core/static/tau_docs/client-tools.md +4 -0
  43. package/dist/core/static/tau_docs/code-mode.md +77 -0
  44. package/dist/core/static/tau_docs/config-reference.md +4 -2
  45. package/dist/core/static/tau_docs/history.md +5 -3
  46. package/dist/core/static/tau_docs/index.md +2 -1
  47. package/dist/core/static/tau_docs/manifest.json +1 -0
  48. package/dist/core/static/tau_docs/node-sdk.md +2 -0
  49. package/dist/core/static/tau_docs/openrouter.md +2 -0
  50. package/dist/core/static/tau_docs/pdf-unpacking.md +1 -1
  51. package/dist/core/static/tau_docs/personas.md +4 -5
  52. package/dist/core/static/tau_docs/prompts-and-project-context.md +1 -1
  53. package/dist/core/static/tau_docs/security.md +1 -1
  54. package/dist/core/static/tau_docs/sessions.md +1 -1
  55. package/dist/core/static/tau_docs/subagents.md +106 -27
  56. package/dist/core/static/tau_docs/tools.md +32 -62
  57. package/dist/core/static/tau_docs/troubleshooting.md +2 -2
  58. package/dist/core/subagents/agent_supervisor.js +185 -339
  59. package/dist/core/subagents/agent_supervisor.js.map +1 -1
  60. package/dist/core/subagents/claude_code_protocol.js +4 -0
  61. package/dist/core/subagents/claude_code_protocol.js.map +1 -1
  62. package/dist/core/subagents/claude_code_runner.js +134 -11
  63. package/dist/core/subagents/claude_code_runner.js.map +1 -1
  64. package/dist/core/subagents/claude_code_runner.mjs +80 -77
  65. package/dist/core/subagents/claude_code_runtime.js +250 -9
  66. package/dist/core/subagents/claude_code_runtime.js.map +1 -1
  67. package/dist/core/subagents/errors.js +18 -0
  68. package/dist/core/subagents/errors.js.map +1 -0
  69. package/dist/core/subagents/events.js +25 -0
  70. package/dist/core/subagents/events.js.map +1 -0
  71. package/dist/core/subagents/format.js +2 -98
  72. package/dist/core/subagents/format.js.map +1 -1
  73. package/dist/core/subagents/native_subagent_runtime.js +270 -0
  74. package/dist/core/subagents/native_subagent_runtime.js.map +1 -0
  75. package/dist/core/subagents/prompt.js +3 -5
  76. package/dist/core/subagents/prompt.js.map +1 -1
  77. package/dist/core/subagents/registry.js +5 -3
  78. package/dist/core/subagents/registry.js.map +1 -1
  79. package/dist/core/subagents/runtime.js +13 -0
  80. package/dist/core/subagents/runtime.js.map +1 -0
  81. package/dist/core/subagents/trace.js +149 -0
  82. package/dist/core/subagents/trace.js.map +1 -0
  83. package/dist/core/tools/agent_jobs.js +51 -0
  84. package/dist/core/tools/agent_jobs.js.map +1 -0
  85. package/dist/core/tools/background_jobs.js +205 -0
  86. package/dist/core/tools/background_jobs.js.map +1 -0
  87. package/dist/core/tools/bash.js +11 -45
  88. package/dist/core/tools/bash.js.map +1 -1
  89. package/dist/core/tools/bash_jobs.js +44 -238
  90. package/dist/core/tools/bash_jobs.js.map +1 -1
  91. package/dist/core/tools/catalog.js +37 -72
  92. package/dist/core/tools/catalog.js.map +1 -1
  93. package/dist/core/tools/code.js +177 -54
  94. package/dist/core/tools/code.js.map +1 -1
  95. package/dist/core/tools/code_jobs.js +128 -0
  96. package/dist/core/tools/code_jobs.js.map +1 -0
  97. package/dist/core/tools/code_mode.js +88 -101
  98. package/dist/core/tools/code_mode.js.map +1 -1
  99. package/dist/core/tools/code_mode_worker.js +13 -7
  100. package/dist/core/tools/code_mode_worker.js.map +1 -1
  101. package/dist/core/tools/job_output.js +53 -0
  102. package/dist/core/tools/job_output.js.map +1 -0
  103. package/dist/core/tools/output_file.js +38 -0
  104. package/dist/core/tools/output_file.js.map +1 -0
  105. package/dist/core/tools/presentation.js +19 -9
  106. package/dist/core/tools/presentation.js.map +1 -1
  107. package/dist/core/tools/tool_names.js +8 -6
  108. package/dist/core/tools/tool_names.js.map +1 -1
  109. package/dist/core/tools/wait_for_agents.js +41 -33
  110. package/dist/core/tools/wait_for_agents.js.map +1 -1
  111. package/dist/core/version.js +1 -1
  112. package/dist/diff_tool/app/dist/assets/{core-33fyIuI3.js → core-NkxL1yZC.js} +1 -1
  113. package/dist/diff_tool/app/dist/assets/{highlights-BZwSBtSw.js → highlights-Coi8xHW0.js} +1 -1
  114. package/dist/diff_tool/app/dist/assets/index-Jt-l2Q96.js +205 -0
  115. package/dist/diff_tool/app/dist/assets/langs-qJAo26KT.js +1 -0
  116. package/dist/diff_tool/app/dist/assets/{shiki-CC72VX9t.js → shiki-B8l9Ufae.js} +2 -2
  117. package/dist/diff_tool/app/dist/assets/{stream-tokenizer-C6SDg59j.js → stream-tokenizer-h1lwRQEk.js} +1 -1
  118. package/dist/diff_tool/app/dist/assets/{themes-2vjCbM1J.js → themes-D3P9yN9_.js} +2 -2
  119. package/dist/diff_tool/app/dist/index.html +1 -1
  120. package/dist/host/hosted_ephemeral_agent_session.js +13 -3
  121. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  122. package/dist/host/local_session_host.js +5 -5
  123. package/dist/host/local_session_host.js.map +1 -1
  124. package/dist/sdk/code_mode.js +2 -2
  125. package/dist/sdk/code_mode.js.map +1 -1
  126. package/dist/store/session_snapshot_migrations.js +27 -1
  127. package/dist/store/session_snapshot_migrations.js.map +1 -1
  128. package/package.json +5 -5
  129. package/dist/core/static/prompts/subagent-wrapper.md +0 -20
  130. package/dist/core/tools/interrupt_agent.js +0 -142
  131. package/dist/core/tools/interrupt_agent.js.map +0 -1
  132. package/dist/core/tools/list_agents.js +0 -85
  133. package/dist/core/tools/list_agents.js.map +0 -1
  134. package/dist/core/tools/send_input_to_agent.js +0 -177
  135. package/dist/core/tools/send_input_to_agent.js.map +0 -1
  136. package/dist/core/tools/spawn_agent.js +0 -275
  137. package/dist/core/tools/spawn_agent.js.map +0 -1
  138. package/dist/diff_tool/app/dist/assets/index-Bv8JVYFD.js +0 -202
  139. package/dist/diff_tool/app/dist/assets/langs-DnGrwrZ-.js +0 -1
@@ -1,275 +0,0 @@
1
- import { resolve } from "node:path";
2
- import { Type } from "typebox";
3
- import { z } from "zod";
4
- import { formatSpawnAgentResult } from "../subagents/format.js";
5
- import { parseSubagentLaunchModel } from "../subagents/launch_model.js";
6
- import { resolveSubagentEffectiveSettings } from "../subagents/registry.js";
7
- import { formatCwd } from "../utils/format.js";
8
- import { parseToolArgs } from "../utils/zod.js";
9
- import { buildToolRunPresentation } from "./presentation.js";
10
- import { createTextToolOutcome, executeTool, } from "./registry.js";
11
- import { buildSubagentPresentation } from "./subagent_ui.js";
12
- import { TOOL_NAME_SPAWN_AGENT } from "./tool_names.js";
13
- const SPAWN_AGENT_DESCRIPTION = [
14
- "Spawn a subagent to run in the background and return its id.",
15
- "Use wait_for_agents to read its latest response once it finishes.",
16
- "Follow your system instructions for delegation policy.",
17
- ].join(" ");
18
- const SPAWN_AGENT_TITLE_DESCRIPTION = [
19
- "A short single-line human-friendly UI title shown while the subagent runs.",
20
- "Do not use title case; all lower-case is preferred except for proper nouns.",
21
- ].join(" ");
22
- const SPAWN_AGENT_PROMPT_DESCRIPTION = [
23
- "The prompt to send to the subagent.",
24
- "This is the only input the subagent will receive; it must be self-contained and specific.",
25
- "Include all necessary context and instructions in the prompt for the subagent to complete " +
26
- "the request successfully.",
27
- ].join(" ");
28
- const SPAWN_AGENT_MODEL_DESCRIPTION = [
29
- "Optional launch override in format <provider>/<model>:<effort>.",
30
- "By default, omit this field unless the user explicitly asks to use a specific model.",
31
- "When provided, the value must match one of the configured subagent launch models.",
32
- ].join(" ");
33
- const SPAWN_AGENT_WORKING_DIRECTORY_DESCRIPTION = [
34
- "Optional single-line working directory for the subagent.",
35
- "When set, subagent runs as if it was started in this directory.",
36
- ].join(" ");
37
- export const SPAWN_AGENT_TOOL = {
38
- name: TOOL_NAME_SPAWN_AGENT,
39
- description: SPAWN_AGENT_DESCRIPTION,
40
- parameters: Type.Object({
41
- title: Type.String({
42
- description: SPAWN_AGENT_TITLE_DESCRIPTION,
43
- pattern: "^[^\\r\\n]+$",
44
- }),
45
- prompt: Type.String({ description: SPAWN_AGENT_PROMPT_DESCRIPTION }),
46
- model: Type.Optional(Type.String({ description: SPAWN_AGENT_MODEL_DESCRIPTION })),
47
- workingDirectory: Type.Optional(Type.String({
48
- description: SPAWN_AGENT_WORKING_DIRECTORY_DESCRIPTION,
49
- pattern: "^[^\\r\\n]+$",
50
- })),
51
- }, { additionalProperties: false }),
52
- };
53
- const spawnArgsSchema = z
54
- .object({
55
- title: z
56
- .string()
57
- .trim()
58
- .min(1, "must not be empty.")
59
- .refine((title) => !/[\r\n]/.test(title), "must be a single line."),
60
- prompt: z.string().trim().min(1, "must not be empty."),
61
- model: z.string().trim().min(1, "must not be empty.").optional(),
62
- workingDirectory: z
63
- .string()
64
- .trim()
65
- .min(1, "must not be empty.")
66
- .refine((path) => !/[\r\n]/.test(path), "must be a single line.")
67
- .optional(),
68
- })
69
- .strict();
70
- function formatAllowedLaunchModels(launchModels) {
71
- if (launchModels.length === 0) {
72
- return "(None configured)";
73
- }
74
- return launchModels.map((entry) => `'${entry}'`).join(", ");
75
- }
76
- function getSpawnAgentSubject(raw) {
77
- const parsedArgs = parseToolArgs(spawnArgsSchema, raw);
78
- return parsedArgs.ok ? parsedArgs.data.title : "(invalid arguments)";
79
- }
80
- function getSpawnAgentWorkingDirectory(raw, baseCwd) {
81
- const parsedArgs = parseToolArgs(spawnArgsSchema, raw);
82
- const workingDirectory = parsedArgs.ok ? parsedArgs.data.workingDirectory : undefined;
83
- return workingDirectory ? resolve(baseCwd, workingDirectory) : baseCwd;
84
- }
85
- export function createSpawnAgentToolDefinition(options) {
86
- const { backend, supervisor } = options;
87
- return {
88
- schema: SPAWN_AGENT_TOOL,
89
- describe: (toolCall) => {
90
- const subject = getSpawnAgentSubject(toolCall.arguments);
91
- const workingDirectory = getSpawnAgentWorkingDirectory(toolCall.arguments, options.cwd);
92
- return {
93
- presentation: buildToolRunPresentation({
94
- toolName: TOOL_NAME_SPAWN_AGENT,
95
- subject,
96
- metadata: [formatCwd(workingDirectory)],
97
- }),
98
- };
99
- },
100
- async execute(toolCall, context) {
101
- const { signal } = context;
102
- let title = "";
103
- const subject = getSpawnAgentSubject(toolCall.arguments);
104
- const presentationWorkingDirectory = formatCwd(getSpawnAgentWorkingDirectory(toolCall.arguments, options.cwd));
105
- const blocked = (reason, details, semanticOutcome = "blocked") => {
106
- const outcome = createTextToolOutcome(reason, semanticOutcome);
107
- const uiEvent = {
108
- type: "tool_call_blocked",
109
- toolCallId: toolCall.id,
110
- toolName: TOOL_NAME_SPAWN_AGENT,
111
- presentation: buildToolRunPresentation({
112
- toolName: TOOL_NAME_SPAWN_AGENT,
113
- subject: details?.title ?? subject,
114
- details: [{ text: reason }],
115
- metadata: [presentationWorkingDirectory],
116
- }),
117
- reason,
118
- };
119
- return {
120
- content: outcome.content,
121
- outcome: outcome.outcome,
122
- uiEvent,
123
- };
124
- };
125
- const parsedArgs = parseToolArgs(spawnArgsSchema, toolCall.arguments);
126
- if (!parsedArgs.ok) {
127
- return executeTool(context, () => blocked(`Invalid arguments: ${parsedArgs.error}`));
128
- }
129
- const { prompt, model, workingDirectory } = parsedArgs.data;
130
- title = parsedArgs.data.title;
131
- const { persona, cwd: baseCwd, subagentSystemPrompt } = options;
132
- let launchModelOverride;
133
- if (model) {
134
- const parsedLaunchModel = parseSubagentLaunchModel(model, {
135
- resolveModel: options.modelResolver,
136
- });
137
- if (parsedLaunchModel.error || !parsedLaunchModel.launchModel) {
138
- return executeTool(context, () => blocked(`Invalid model parameter: ${parsedLaunchModel.error}.`, {
139
- title,
140
- }));
141
- }
142
- const launchModels = persona.subagentLaunchModels;
143
- if (launchModels.length === 0) {
144
- return executeTool(context, () => blocked(`Subagents do not allow launch model overrides. Allowed values: ${formatAllowedLaunchModels(launchModels)}.`, {
145
- title,
146
- }));
147
- }
148
- if (!launchModels.includes(parsedLaunchModel.launchModel.normalized)) {
149
- return executeTool(context, blocked(`Model '${parsedLaunchModel.launchModel.normalized}' is not allowed for subagents. Allowed values: ${formatAllowedLaunchModels(launchModels)}.`, {
150
- title,
151
- }));
152
- }
153
- launchModelOverride = parsedLaunchModel.launchModel;
154
- }
155
- const effectiveSettings = resolveSubagentEffectiveSettings({
156
- persona,
157
- launchModel: launchModelOverride,
158
- });
159
- const cwd = workingDirectory ? resolve(baseCwd, workingDirectory) : baseCwd;
160
- let runtimeConfig;
161
- if (effectiveSettings.kind === "claude-code") {
162
- runtimeConfig = { ...effectiveSettings, workingDirectory: cwd };
163
- }
164
- else {
165
- let effectiveSubagentPrompt = subagentSystemPrompt;
166
- if (workingDirectory && cwd !== resolve(baseCwd)) {
167
- if (!options.resolveSubagentPrompt) {
168
- return executeTool(context, () => blocked("Working-directory context resolution is unavailable.", { title }));
169
- }
170
- try {
171
- effectiveSubagentPrompt = await options.resolveSubagentPrompt({ cwd, persona });
172
- }
173
- catch (error) {
174
- const errorMessage = error instanceof Error ? error.message : String(error);
175
- return executeTool(context, () => blocked(`Could not build the subagent prompt for workingDirectory '${cwd}': ${errorMessage}`, { title }, "failed"));
176
- }
177
- }
178
- const systemPrompt = effectiveSubagentPrompt;
179
- if (!systemPrompt) {
180
- return executeTool(context, () => blocked(`The subagent system prompt is unavailable.`, {
181
- title,
182
- }));
183
- }
184
- runtimeConfig = { ...effectiveSettings, systemPrompt, workingDirectory: cwd };
185
- }
186
- const reasoning = runtimeConfig.kind === "native"
187
- ? (runtimeConfig.settings.reasoning ?? "none")
188
- : runtimeConfig.effort;
189
- const modelLabel = `${runtimeConfig.model.provider}/${runtimeConfig.model.id}:${reasoning}`;
190
- const statusWorkingDirectory = formatCwd(runtimeConfig.workingDirectory);
191
- const statusPrefixParts = [modelLabel, statusWorkingDirectory];
192
- return executeTool(context, async () => {
193
- if (signal?.aborted) {
194
- const reason = "Subagent creation was cancelled.";
195
- const outcome = createTextToolOutcome(reason, "cancelled");
196
- const presentation = buildToolRunPresentation({
197
- toolName: TOOL_NAME_SPAWN_AGENT,
198
- subject,
199
- metadata: statusPrefixParts,
200
- });
201
- const uiEvent = {
202
- type: "tool_call_finished",
203
- toolCallId: toolCall.id,
204
- toolName: TOOL_NAME_SPAWN_AGENT,
205
- presentation,
206
- status: "error",
207
- };
208
- return { content: outcome.content, outcome: outcome.outcome, uiEvent };
209
- }
210
- let spawnResult;
211
- try {
212
- spawnResult = supervisor.spawn({
213
- runtimeConfig,
214
- prompt,
215
- title,
216
- originHistoryEntryId: context.assistantMessageId,
217
- config: options.config,
218
- backend,
219
- bashJobs: options.bashJobs,
220
- history: options.history,
221
- mcp: options.mcp,
222
- personaId: persona.id,
223
- });
224
- }
225
- catch (error) {
226
- const errorMessage = error instanceof Error ? error.message : String(error);
227
- return blocked(`Could not create subagent: ${errorMessage}`, { title }, "failed");
228
- }
229
- if (!spawnResult.ok) {
230
- const outcome = createTextToolOutcome(spawnResult.reason, "blocked");
231
- const uiEvent = {
232
- type: "tool_call_blocked",
233
- toolCallId: toolCall.id,
234
- toolName: TOOL_NAME_SPAWN_AGENT,
235
- presentation: buildToolRunPresentation({
236
- toolName: TOOL_NAME_SPAWN_AGENT,
237
- subject: subject,
238
- details: [{ text: spawnResult.reason }],
239
- metadata: [statusWorkingDirectory],
240
- }),
241
- reason: spawnResult.reason,
242
- };
243
- return { content: outcome.content, outcome: outcome.outcome, uiEvent };
244
- }
245
- const resultText = formatSpawnAgentResult(spawnResult.state, spawnResult.capacity);
246
- const outcome = createTextToolOutcome(resultText, "succeeded");
247
- const presentation = buildSubagentPresentation({
248
- toolName: TOOL_NAME_SPAWN_AGENT,
249
- subject: subject,
250
- output: prompt,
251
- detailTruncation: false,
252
- metadata: [...statusPrefixParts, spawnResult.state.id],
253
- });
254
- const uiEvent = {
255
- type: "tool_call_finished",
256
- toolCallId: toolCall.id,
257
- toolName: TOOL_NAME_SPAWN_AGENT,
258
- presentation,
259
- status: "success",
260
- };
261
- return { content: outcome.content, outcome: outcome.outcome, uiEvent };
262
- }, {
263
- type: "tool_call_started",
264
- toolCallId: toolCall.id,
265
- toolName: TOOL_NAME_SPAWN_AGENT,
266
- presentation: buildToolRunPresentation({
267
- toolName: TOOL_NAME_SPAWN_AGENT,
268
- subject: subject,
269
- metadata: [statusWorkingDirectory],
270
- }),
271
- });
272
- },
273
- };
274
- }
275
- //# sourceMappingURL=spawn_agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spawn_agent.js","sourceRoot":"","sources":["../../../src/core/tools/spawn_agent.ts"],"names":[],"mappings":"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"}