pi-agent-flow 2.3.1 → 2.3.3

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 (209) hide show
  1. package/agents/craft.md +1 -1
  2. package/agents/debug.md +1 -1
  3. package/agents/ideas.md +1 -1
  4. package/dist/batch/batch-bash.d.ts +1 -6
  5. package/dist/batch/batch-bash.d.ts.map +1 -1
  6. package/dist/batch/batch-bash.js +2 -7
  7. package/dist/batch/batch-bash.js.map +1 -1
  8. package/dist/batch/constants.d.ts +2 -4
  9. package/dist/batch/constants.d.ts.map +1 -1
  10. package/dist/batch/execute.d.ts +2 -2
  11. package/dist/batch/execute.d.ts.map +1 -1
  12. package/dist/batch/execute.js +1 -13
  13. package/dist/batch/execute.js.map +1 -1
  14. package/dist/batch/fuzzy-edit.d.ts +1 -1
  15. package/dist/batch/fuzzy-edit.d.ts.map +1 -1
  16. package/dist/batch/fuzzy-edit.js +17 -43
  17. package/dist/batch/fuzzy-edit.js.map +1 -1
  18. package/dist/batch/index.d.ts +73 -0
  19. package/dist/batch/index.d.ts.map +1 -0
  20. package/dist/batch/index.js +450 -0
  21. package/dist/batch/index.js.map +1 -0
  22. package/dist/batch/normalize.d.ts +4 -0
  23. package/dist/batch/normalize.d.ts.map +1 -0
  24. package/dist/batch/normalize.js +85 -0
  25. package/dist/batch/normalize.js.map +1 -0
  26. package/dist/batch/summary.d.ts.map +1 -1
  27. package/dist/batch/summary.js +0 -146
  28. package/dist/batch/summary.js.map +1 -1
  29. package/dist/core2/snapshot.d.ts.map +1 -1
  30. package/dist/core2/snapshot.js +1 -8
  31. package/dist/core2/snapshot.js.map +1 -1
  32. package/dist/flow/continuation.d.ts.map +1 -1
  33. package/dist/flow/continuation.js +0 -26
  34. package/dist/flow/continuation.js.map +1 -1
  35. package/dist/flow/executor.d.ts.map +1 -1
  36. package/dist/flow/executor.js +0 -1
  37. package/dist/flow/executor.js.map +1 -1
  38. package/dist/flow/flow-args-prep.d.ts +28 -0
  39. package/dist/flow/flow-args-prep.d.ts.map +1 -0
  40. package/dist/flow/flow-args-prep.js +84 -0
  41. package/dist/flow/flow-args-prep.js.map +1 -0
  42. package/dist/flow/flow-args.js +1 -1
  43. package/dist/flow/flow-args.js.map +1 -1
  44. package/dist/flow/flow-dispatch-prep.d.ts +11 -0
  45. package/dist/flow/flow-dispatch-prep.d.ts.map +1 -0
  46. package/dist/flow/flow-dispatch-prep.js +40 -0
  47. package/dist/flow/flow-dispatch-prep.js.map +1 -0
  48. package/dist/flow/op-aliases.d.ts +51 -0
  49. package/dist/flow/op-aliases.d.ts.map +1 -0
  50. package/dist/flow/op-aliases.js +185 -0
  51. package/dist/flow/op-aliases.js.map +1 -0
  52. package/dist/flow/process-lifecycle.d.ts.map +1 -1
  53. package/dist/flow/process-lifecycle.js +3 -11
  54. package/dist/flow/process-lifecycle.js.map +1 -1
  55. package/dist/flow/runner.d.ts.map +1 -1
  56. package/dist/flow/runner.js +5 -36
  57. package/dist/flow/runner.js.map +1 -1
  58. package/dist/flow/warp.d.ts.map +1 -1
  59. package/dist/flow/warp.js +10 -16
  60. package/dist/flow/warp.js.map +1 -1
  61. package/dist/index.d.ts +4 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +251 -159
  64. package/dist/index.js.map +1 -1
  65. package/dist/steering/flow-prompt.js +2 -2
  66. package/dist/steering/flow-prompt.js.map +1 -1
  67. package/dist/steering/sliding-prompt.js +2 -2
  68. package/dist/steering/sliding-prompt.js.map +1 -1
  69. package/dist/tools/array-coerce.d.ts +9 -0
  70. package/dist/tools/array-coerce.d.ts.map +1 -0
  71. package/dist/tools/array-coerce.js +47 -0
  72. package/dist/tools/array-coerce.js.map +1 -0
  73. package/dist/tools/ask-user.d.ts +7 -10
  74. package/dist/tools/ask-user.d.ts.map +1 -1
  75. package/dist/tools/ask-user.js +62 -51
  76. package/dist/tools/ask-user.js.map +1 -1
  77. package/dist/tools/trace-dispatch-prep.d.ts +10 -0
  78. package/dist/tools/trace-dispatch-prep.d.ts.map +1 -0
  79. package/dist/tools/trace-dispatch-prep.js +199 -0
  80. package/dist/tools/trace-dispatch-prep.js.map +1 -0
  81. package/dist/tools/trace.d.ts +7 -12
  82. package/dist/tools/trace.d.ts.map +1 -1
  83. package/dist/tools/trace.js +194 -155
  84. package/dist/tools/trace.js.map +1 -1
  85. package/dist/tools/web-ops.d.ts +0 -40
  86. package/dist/tools/web-ops.d.ts.map +1 -1
  87. package/dist/tools/web-ops.js +3 -7
  88. package/dist/tools/web-ops.js.map +1 -1
  89. package/package.json +2 -3
  90. package/dist/cli/ask-user.d.ts +0 -40
  91. package/dist/cli/ask-user.d.ts.map +0 -1
  92. package/dist/cli/ask-user.js +0 -117
  93. package/dist/cli/ask-user.js.map +0 -1
  94. package/dist/cli/batch-read.d.ts +0 -17
  95. package/dist/cli/batch-read.d.ts.map +0 -1
  96. package/dist/cli/batch-read.js +0 -76
  97. package/dist/cli/batch-read.js.map +0 -1
  98. package/dist/cli/batch.d.ts +0 -20
  99. package/dist/cli/batch.d.ts.map +0 -1
  100. package/dist/cli/batch.js +0 -128
  101. package/dist/cli/batch.js.map +0 -1
  102. package/dist/cli/chain.d.ts +0 -24
  103. package/dist/cli/chain.d.ts.map +0 -1
  104. package/dist/cli/chain.js +0 -166
  105. package/dist/cli/chain.js.map +0 -1
  106. package/dist/cli/exec/bash.d.ts +0 -7
  107. package/dist/cli/exec/bash.d.ts.map +0 -1
  108. package/dist/cli/exec/bash.js +0 -63
  109. package/dist/cli/exec/bash.js.map +0 -1
  110. package/dist/cli/exec/delete.d.ts +0 -6
  111. package/dist/cli/exec/delete.d.ts.map +0 -1
  112. package/dist/cli/exec/delete.js +0 -18
  113. package/dist/cli/exec/delete.js.map +0 -1
  114. package/dist/cli/exec/edit.d.ts +0 -6
  115. package/dist/cli/exec/edit.d.ts.map +0 -1
  116. package/dist/cli/exec/edit.js +0 -44
  117. package/dist/cli/exec/edit.js.map +0 -1
  118. package/dist/cli/exec/patch.d.ts +0 -6
  119. package/dist/cli/exec/patch.d.ts.map +0 -1
  120. package/dist/cli/exec/patch.js +0 -20
  121. package/dist/cli/exec/patch.js.map +0 -1
  122. package/dist/cli/exec/poll.d.ts +0 -7
  123. package/dist/cli/exec/poll.d.ts.map +0 -1
  124. package/dist/cli/exec/poll.js +0 -59
  125. package/dist/cli/exec/poll.js.map +0 -1
  126. package/dist/cli/exec/read.d.ts +0 -15
  127. package/dist/cli/exec/read.d.ts.map +0 -1
  128. package/dist/cli/exec/read.js +0 -54
  129. package/dist/cli/exec/read.js.map +0 -1
  130. package/dist/cli/exec/rg.d.ts +0 -10
  131. package/dist/cli/exec/rg.d.ts.map +0 -1
  132. package/dist/cli/exec/rg.js +0 -32
  133. package/dist/cli/exec/rg.js.map +0 -1
  134. package/dist/cli/exec/util.d.ts +0 -9
  135. package/dist/cli/exec/util.d.ts.map +0 -1
  136. package/dist/cli/exec/util.js +0 -8
  137. package/dist/cli/exec/util.js.map +0 -1
  138. package/dist/cli/exec/web.d.ts +0 -8
  139. package/dist/cli/exec/web.d.ts.map +0 -1
  140. package/dist/cli/exec/web.js +0 -48
  141. package/dist/cli/exec/web.js.map +0 -1
  142. package/dist/cli/exec/write.d.ts +0 -6
  143. package/dist/cli/exec/write.d.ts.map +0 -1
  144. package/dist/cli/exec/write.js +0 -23
  145. package/dist/cli/exec/write.js.map +0 -1
  146. package/dist/cli/flags/bash.d.ts +0 -3
  147. package/dist/cli/flags/bash.d.ts.map +0 -1
  148. package/dist/cli/flags/bash.js +0 -7
  149. package/dist/cli/flags/bash.js.map +0 -1
  150. package/dist/cli/flags/delete.d.ts +0 -3
  151. package/dist/cli/flags/delete.d.ts.map +0 -1
  152. package/dist/cli/flags/delete.js +0 -4
  153. package/dist/cli/flags/delete.js.map +0 -1
  154. package/dist/cli/flags/edit.d.ts +0 -3
  155. package/dist/cli/flags/edit.d.ts.map +0 -1
  156. package/dist/cli/flags/edit.js +0 -8
  157. package/dist/cli/flags/edit.js.map +0 -1
  158. package/dist/cli/flags/patch.d.ts +0 -3
  159. package/dist/cli/flags/patch.d.ts.map +0 -1
  160. package/dist/cli/flags/patch.js +0 -5
  161. package/dist/cli/flags/patch.js.map +0 -1
  162. package/dist/cli/flags/poll.d.ts +0 -3
  163. package/dist/cli/flags/poll.d.ts.map +0 -1
  164. package/dist/cli/flags/poll.js +0 -5
  165. package/dist/cli/flags/poll.js.map +0 -1
  166. package/dist/cli/flags/read.d.ts +0 -3
  167. package/dist/cli/flags/read.d.ts.map +0 -1
  168. package/dist/cli/flags/read.js +0 -7
  169. package/dist/cli/flags/read.js.map +0 -1
  170. package/dist/cli/flags/rg.d.ts +0 -3
  171. package/dist/cli/flags/rg.d.ts.map +0 -1
  172. package/dist/cli/flags/rg.js +0 -10
  173. package/dist/cli/flags/rg.js.map +0 -1
  174. package/dist/cli/flags/web.d.ts +0 -3
  175. package/dist/cli/flags/web.d.ts.map +0 -1
  176. package/dist/cli/flags/web.js +0 -7
  177. package/dist/cli/flags/web.js.map +0 -1
  178. package/dist/cli/flags/write.d.ts +0 -3
  179. package/dist/cli/flags/write.d.ts.map +0 -1
  180. package/dist/cli/flags/write.js +0 -5
  181. package/dist/cli/flags/write.js.map +0 -1
  182. package/dist/cli/flow.d.ts +0 -33
  183. package/dist/cli/flow.d.ts.map +0 -1
  184. package/dist/cli/flow.js +0 -185
  185. package/dist/cli/flow.js.map +0 -1
  186. package/dist/cli/format.d.ts +0 -12
  187. package/dist/cli/format.d.ts.map +0 -1
  188. package/dist/cli/format.js +0 -29
  189. package/dist/cli/format.js.map +0 -1
  190. package/dist/cli/help.d.ts +0 -16
  191. package/dist/cli/help.d.ts.map +0 -1
  192. package/dist/cli/help.js +0 -42
  193. package/dist/cli/help.js.map +0 -1
  194. package/dist/cli/parse.d.ts +0 -24
  195. package/dist/cli/parse.d.ts.map +0 -1
  196. package/dist/cli/parse.js +0 -165
  197. package/dist/cli/parse.js.map +0 -1
  198. package/dist/cli/register.d.ts +0 -69
  199. package/dist/cli/register.d.ts.map +0 -1
  200. package/dist/cli/register.js +0 -82
  201. package/dist/cli/register.js.map +0 -1
  202. package/dist/cli/runner.d.ts +0 -30
  203. package/dist/cli/runner.d.ts.map +0 -1
  204. package/dist/cli/runner.js +0 -102
  205. package/dist/cli/runner.js.map +0 -1
  206. package/dist/cli/tokenize.d.ts +0 -9
  207. package/dist/cli/tokenize.d.ts.map +0 -1
  208. package/dist/cli/tokenize.js +0 -80
  209. package/dist/cli/tokenize.js.map +0 -1
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * Trace tool — standalone quick verbatim reads and checks.
3
3
  *
4
- * Bash-style CLI: single `cmd` field with optional flags and pre-flight dispatch.
4
+ * Split from the `flow` tool to eliminate the confusion where the agent
5
+ * nested dispatch ops as siblings in the `flow[]` array instead of inside
6
+ * a task object. Trace is self-defining (agents/trace.md already
7
+ * contains the full mission), so it needs zero required fields.
5
8
  */
6
9
  import { Type } from "@sinclair/typebox";
7
10
  import { runFlowWithLiveSession } from "../flow/flow-live.js";
@@ -12,101 +15,162 @@ import { renderFlowCall, renderFlowResult } from "../tui/render.js";
12
15
  import { getFlowLiveState } from "../tui/flow-live-state.js";
13
16
  import { DEFAULT_FLOW_COLORS } from "../tui/flow-colors.js";
14
17
  import { getFlowOutput } from "../types/flow.js";
18
+ import { executeOperations } from "../batch/execute.js";
19
+ import { runBashWithLimits } from "../batch/batch-bash.js";
15
20
  import { logWarn } from "../config/log.js";
21
+ import { runWebOps } from "./web-ops.js";
22
+ import { BASH_DEFAULT_TIMEOUT_MS } from "../batch/constants.js";
16
23
  import { extractTraceStructuredOutput, resolveToolEvidence } from "../snapshot/trace-output.js";
17
- import { runBatchCli } from "../cli/batch.js";
18
- import { splitOnDoubleDash } from "../cli/chain.js";
19
- import { tokenize } from "../cli/tokenize.js";
20
- import { parseCommand, CliError } from "../cli/parse.js";
24
+ import { prepareTraceDispatchArguments } from "./trace-dispatch-prep.js";
21
25
  // ---------------------------------------------------------------------------
22
- // Help text
26
+ // Dispatch schemas — mirror of the flow-tool dispatch (kept here to avoid
27
+ // circular imports with src/index.ts).
23
28
  // ---------------------------------------------------------------------------
24
- const TRACE_HELP = `trace — read-first investigation tool
25
-
26
- USAGE:
27
- trace [flags] [-- <batch-dispatch>]
28
-
29
- FLAGS:
30
- --intent <text> Mission override. Default: trace agent's built-in description.
31
- --cwd <path> Working directory override. Default: session cwd.
32
- --complexity <level> snap | simple | moderate | complex | intricate. Default: simple.
33
- --help, -h Show this help text.
34
-
35
- DISPATCH:
36
- Everything after the first top-level \`--\` is a batch-style command.
37
- Examples:
38
- trace -- batch read src/index.ts
39
- trace --intent "verify auth" -- batch read src/auth.ts; batch rg -q "password" src/
40
-
41
- EXAMPLES:
42
- trace # default mission, no dispatch
43
- trace --intent "verify auth" # override mission
44
- trace --cwd /tmp # override cwd
45
- trace --complexity moderate # override budget
46
- trace -- batch read foo.txt # pre-flight read
47
- trace help # show this help
48
- `;
49
- // ---------------------------------------------------------------------------
50
- // Flag spec
51
- // ---------------------------------------------------------------------------
52
- const TRACE_FLAG_SPEC = {
53
- intent: { short: "i", type: "string", description: "Mission override" },
54
- cwd: { type: "string", description: "Working directory override" },
55
- complexity: { short: "x", type: "string", description: "Budget level: snap, simple, moderate, complex, intricate" },
56
- help: { short: "h", type: "boolean", description: "Show help" },
57
- };
58
- const VALID_COMPLEXITY = ["snap", "simple", "moderate", "complex", "intricate"];
59
- // ---------------------------------------------------------------------------
60
- // Command parser
61
- // ---------------------------------------------------------------------------
62
- export function parseTraceCmd(cmd) {
63
- const trimmed = cmd.trim();
64
- if (trimmed.length === 0 || trimmed === "help" || trimmed === "--help" || trimmed === "-h") {
65
- return { flags: {}, dispatch: "", help: true };
66
- }
67
- const { pre, post } = splitOnDoubleDash(trimmed);
68
- let tokens = tokenize(pre);
69
- if (tokens[0] === "trace") {
70
- tokens.shift();
71
- }
72
- if (tokens.length > 0 && (tokens[0] === "help" || tokens[0] === "--help" || tokens[0] === "-h")) {
73
- return { flags: {}, dispatch: "", help: true };
74
- }
75
- if (tokens.length === 0) {
76
- return { flags: {}, dispatch: post.trim(), help: false };
77
- }
78
- // Prepend dummy subcommand so parseCommand can parse flags
79
- tokens.unshift("trace");
80
- const parsed = parseCommand(tokens, TRACE_FLAG_SPEC);
81
- if (parsed.flags.help) {
82
- return { flags: {}, dispatch: "", help: true };
83
- }
84
- const flags = {};
85
- if (parsed.flags.intent) {
86
- flags.intent = String(parsed.flags.intent);
87
- }
88
- if (parsed.flags.cwd) {
89
- flags.cwd = String(parsed.flags.cwd);
90
- }
91
- if (parsed.flags.complexity) {
92
- flags.complexity = String(parsed.flags.complexity);
93
- }
94
- if (flags.complexity && !VALID_COMPLEXITY.includes(flags.complexity)) {
95
- throw new CliError(`Invalid complexity: ${flags.complexity}`, `Valid levels: ${VALID_COMPLEXITY.join(", ")}`);
29
+ const BatchDispatchOp = Type.Object({
30
+ tool: Type.Literal("batch"),
31
+ ops: Type.Array(Type.Object({
32
+ o: Type.String(),
33
+ p: Type.Optional(Type.String()),
34
+ s: Type.Optional(Type.Number()),
35
+ l: Type.Optional(Type.Number()),
36
+ i: Type.Optional(Type.Union([Type.String(), Type.Boolean()])),
37
+ t: Type.Optional(Type.Union([Type.Number(), Type.String()])),
38
+ c: Type.Optional(Type.String()),
39
+ e: Type.Optional(Type.Array(Type.Object({ f: Type.String(), r: Type.String() }))),
40
+ h: Type.Optional(Type.String()),
41
+ q: Type.Optional(Type.String()),
42
+ n: Type.Optional(Type.Number()),
43
+ u: Type.Optional(Type.Number()),
44
+ }), { description: "File/batch operations matching the batch tool schema." }),
45
+ });
46
+ const BashDispatchOp = Type.Object({
47
+ tool: Type.Literal("bash"),
48
+ ops: Type.Array(Type.Object({
49
+ c: Type.String({ description: "Shell command. Alias: cmd." }),
50
+ h: Type.Optional(Type.String({ description: "Working directory override. Alias: cwd." })),
51
+ t: Type.Optional(Type.Number({ description: "Timeout in ms. Alias: timeout." })),
52
+ }), { description: "Bash command objects." }),
53
+ });
54
+ const WebDispatchOp = Type.Object({
55
+ tool: Type.Literal("web"),
56
+ ops: Type.Array(Type.Object({
57
+ o: Type.Union([Type.Literal("search"), Type.Literal("fetch")]),
58
+ q: Type.Optional(Type.String()),
59
+ u: Type.Optional(Type.String()),
60
+ f: Type.Optional(Type.String()),
61
+ }), { description: "Web operations matching the web tool schema." }),
62
+ });
63
+ const DispatchOpSchema = Type.Union([BatchDispatchOp, BashDispatchOp, WebDispatchOp], {
64
+ description: "Pre-dispatch tool call with discriminated tool type and typed ops array.",
65
+ });
66
+ async function executeDispatchOps(dispatch, cwd, ctx, signal) {
67
+ const parts = [];
68
+ const messages = [];
69
+ let toolCallIndex = 0;
70
+ for (const group of dispatch) {
71
+ if (signal?.aborted)
72
+ break;
73
+ const toolCallId = `pre_dispatch_${group.tool}_${toolCallIndex++}`;
74
+ let resultString = "";
75
+ try {
76
+ if (group.tool === "batch") {
77
+ const fileOps = group.ops.filter((op) => op.o !== "bash");
78
+ const bashOps = group.ops.filter((op) => op.o === "bash");
79
+ const subParts = [];
80
+ if (fileOps.length > 0) {
81
+ const fileOutput = await executeOperations(fileOps, cwd, signal, { includeLimitWarnings: true });
82
+ subParts.push(fileOutput.contentText);
83
+ }
84
+ if (bashOps.length > 0) {
85
+ for (const op of bashOps) {
86
+ const { stdout, stderr, exitCode } = await runBashWithLimits(op.c ?? "", op.h ?? cwd, op.t ?? BASH_DEFAULT_TIMEOUT_MS, signal);
87
+ subParts.push(`stdout:\n${stdout}${stderr ? `\nstderr:\n${stderr}` : ""}${exitCode !== 0 ? `\nexitCode: ${exitCode}` : ""}`);
88
+ }
89
+ }
90
+ resultString = subParts.join("\n\n");
91
+ parts.push(`### batch (file ops)\n\ntool_call_id: ${toolCallId}\n\n${resultString}`);
92
+ }
93
+ else if (group.tool === "bash") {
94
+ const subParts = [];
95
+ for (const cmd of group.ops) {
96
+ const { stdout, stderr, exitCode } = await runBashWithLimits(cmd.c, cmd.h ?? cwd, cmd.t ?? BASH_DEFAULT_TIMEOUT_MS, signal);
97
+ subParts.push(`stdout:\n${stdout}${stderr ? `\nstderr:\n${stderr}` : ""}${exitCode !== 0 ? `\nexitCode: ${exitCode}` : ""}`);
98
+ }
99
+ resultString = subParts.join("\n\n");
100
+ parts.push(`### bash\n\ntool_call_id: ${toolCallId}\n\n${resultString}`);
101
+ }
102
+ else if (group.tool === "web") {
103
+ const webOutput = await runWebOps({ op: group.ops }, ctx, signal);
104
+ resultString = webOutput.content[0].text;
105
+ parts.push(`### web\n\ntool_call_id: ${toolCallId}\n\n${resultString}`);
106
+ }
107
+ }
108
+ catch (err) {
109
+ resultString = `Error: ${err instanceof Error ? err.message : String(err)}`;
110
+ parts.push(`### ${group.tool}\n\ntool_call_id: ${toolCallId}\n\n${resultString}`);
111
+ }
112
+ // Add mock messages
113
+ messages.push({
114
+ role: "assistant",
115
+ content: [
116
+ {
117
+ type: "toolCall",
118
+ toolCallId,
119
+ name: group.tool,
120
+ arguments: group.tool === "batch"
121
+ ? { o: group.ops }
122
+ : group.tool === "bash"
123
+ ? { ops: group.ops }
124
+ : { op: group.ops },
125
+ }
126
+ ]
127
+ });
128
+ messages.push({
129
+ role: "tool",
130
+ toolCallId,
131
+ content: [
132
+ {
133
+ type: "text",
134
+ text: resultString,
135
+ }
136
+ ]
137
+ });
96
138
  }
97
- return { flags, dispatch: post.trim(), help: false };
139
+ return {
140
+ promptString: parts.join("\n\n"),
141
+ messages,
142
+ };
98
143
  }
99
144
  // ---------------------------------------------------------------------------
100
- // Schema
145
+ // Override tool params — zero required fields
101
146
  // ---------------------------------------------------------------------------
102
- export const TraceCliParams = Type.Object({
103
- cmd: Type.String({
104
- description: "Trace command. Optional flags (--intent, --cwd, --complexity) followed by optional pre-flight dispatch after `--`. Run with `cmd: 'help'` for the man page.",
105
- }),
147
+ export const TraceParams = Type.Object({
148
+ intent: Type.Optional(Type.String({
149
+ description: "Optional mission override. Defaults to the trace agent's built-in description.",
150
+ })),
151
+ dispatch: Type.Optional(Type.Array(DispatchOpSchema, {
152
+ description: "Tools to run before the trace starts (results injected into prompt).",
153
+ })),
154
+ cwd: Type.Optional(Type.String({ description: "Working directory override." })),
155
+ complexity: Type.Optional(Type.Union([
156
+ Type.Literal("snap"),
157
+ Type.Literal("simple"),
158
+ Type.Literal("moderate"),
159
+ Type.Literal("complex"),
160
+ Type.Literal("intricate"),
161
+ ], { description: "Budget level. Default: simple." })),
162
+ }, {
163
+ title: "TraceToolParams",
164
+ description: "Activate trace mode — read files verbatim, run checks, explore codebase. All fields optional.",
165
+ examples: [
166
+ {},
167
+ { dispatch: [{ tool: "batch", ops: [{ o: "read", p: "src/main.ts" }] }] },
168
+ { dispatch: [{ tool: "bash", ops: ["git status"] }] },
169
+ { dispatch: [{ tool: "batch", ops: [{ p: "src/index.ts" }] }] },
170
+ { dispatch: [{ tool: "bash", ops: [{ tool: "bash", ops: { item: { c: "ls" } } }] }] },
171
+ { dispatch: [{ t: "bash", o: [{ cmd: "ls -la" }] }] },
172
+ ],
106
173
  });
107
- // ---------------------------------------------------------------------------
108
- // Runtime resolution
109
- // ---------------------------------------------------------------------------
110
174
  function resolveTraceRuntime(opts, traceFlow, ctx, toolCallId, intent) {
111
175
  const tier = (traceFlow.tier ?? "lite");
112
176
  let selectedStrategy;
@@ -124,6 +188,20 @@ function resolveTraceRuntime(opts, traceFlow, ctx, toolCallId, intent) {
124
188
  });
125
189
  const resolvedModel = candidates[0];
126
190
  const maxContextTokens = resolveModelContextWindow(resolvedModel);
191
+ // INTENTIONALLY OMIT: `tier` and `compressionProfile`.
192
+ //
193
+ // Trace is a leaf tool that must see the main agent's FULL context.
194
+ // Passing `tier: lite` would cap messages to 30 (lite default), causing
195
+ // 0 user messages to appear in the shared context display.
196
+ // Passing `compressionProfile: files-first` would filter/drop messages
197
+ // based on profile scoring, again hiding the main agent's conversation.
198
+ //
199
+ // The `tier: lite` in agents/trace.md only affects MODEL SELECTION
200
+ // (cheaper model), NOT snapshot compression.
201
+ //
202
+ // Bug history (2026-06): these WERE previously passed, causing the
203
+ // shared context to show 0 user messages. Fixed by removing them.
204
+ // DO NOT re-add tier or compressionProfile here.
127
205
  const { snapshot: forkSessionSnapshotJsonl, stats: compressionStats } = buildSnapshotWithCompression(ctx.sessionManager, {
128
206
  activeToolCallId: toolCallId,
129
207
  compressionLevel: opts.getSettings?.()?.contextCompression,
@@ -141,23 +219,31 @@ function resolveTraceRuntime(opts, traceFlow, ctx, toolCallId, intent) {
141
219
  intent,
142
220
  };
143
221
  }
144
- // ---------------------------------------------------------------------------
145
- // Tool factory
146
- // ---------------------------------------------------------------------------
147
222
  export function createTraceTool(opts = {}) {
148
223
  let lastResolvedModel;
149
224
  let lastResolvedMaxCtx;
150
- let lastResolvedIntent;
151
225
  return {
152
226
  name: "trace",
153
227
  label: "Trace",
154
228
  promptSnippet: "Quick verbatim reads, checks, and exploration. All fields optional.",
155
229
  promptGuidelines: [
156
230
  "All fields optional — the trace agent infers its mission from context.",
157
- "Optional pre-flight dispatch runs batch-style commands before the trace starts.",
231
+ "Optional `dispatch` runs pre-flight reads, writes, edits, or bash commands before the trace starts.",
158
232
  ],
159
- description: "Spawn the `trace` agent for read-first investigation. Pass flags (`--intent`, `--cwd`, `--complexity`) and optional pre-flight ops after `--`. Examples: `trace` `trace --intent \"verify auth\"` • `trace -- batch read src/auth.ts`. NOT a shell. Defaults to `simple` budget. Use for code investigation, exploration, and verification. Pass [cmd]: \"help\" for the man page.",
160
- parameters: TraceCliParams,
233
+ description: "Read-first investigation with optional pre-flight tools. Reads files verbatim and runs pre-flight checks via [batch] [bash] [web] dispatch before the trace starts. All fields optional; defaults to a [simple] budget. Use for code investigation, exploration, and verification.",
234
+ parameters: TraceParams,
235
+ prepareArguments: (input) => {
236
+ const result = prepareTraceDispatchArguments(input);
237
+ // Return the normalized form whenever the normalizer actually
238
+ // transformed the input. The `changed` flag covers both explicit
239
+ // transformations (with notes) AND silent-drop cases (without notes
240
+ // but with structural changes — e.g., a group with no valid `tool`,
241
+ // or a non-array `ops` replaced with []). Without this, strict
242
+ // schema validation would see the un-normalized malformed shape.
243
+ if (!result.changed && result.notes.length === 0)
244
+ return input;
245
+ return { ...input, dispatch: result.dispatch, _dispatchNotes: result.notes };
246
+ },
161
247
  async execute(toolCallId, params, signal, onUpdate, ctx) {
162
248
  if (!opts.getSettings?.()) {
163
249
  throw new Error("Error: session not initialized");
@@ -165,40 +251,14 @@ export function createTraceTool(opts = {}) {
165
251
  const depthConfig = opts.getDepthConfig?.();
166
252
  const parentDepth = depthConfig?.currentDepth ?? 0;
167
253
  const parentFlowStack = depthConfig?.ancestorFlowStack ?? [];
168
- const maxDepth = 0;
254
+ const maxDepth = 0; // trace is a leaf — never transitions further
169
255
  const preventCycles = depthConfig?.preventCycles ?? true;
170
256
  const discovery = discoverFlows(ctx.cwd, "all");
171
257
  const traceFlow = discovery.flows.find(f => f.name === "trace");
172
258
  if (!traceFlow) {
173
259
  throw new Error("Trace agent not found. Expected agents/trace.md to be present.");
174
260
  }
175
- // Parse the trace command
176
- let parsed;
177
- try {
178
- parsed = parseTraceCmd(params.cmd ?? "");
179
- }
180
- catch (err) {
181
- if (err instanceof CliError) {
182
- const text = err.hint ? `${err.message} (hint: ${err.hint})` : err.message;
183
- return {
184
- content: [{ type: "text", text }],
185
- details: undefined,
186
- failed: true,
187
- _toolCallId: toolCallId,
188
- };
189
- }
190
- throw err;
191
- }
192
- // Help response
193
- if (parsed.help) {
194
- return {
195
- content: [{ type: "text", text: TRACE_HELP }],
196
- details: undefined,
197
- failed: false,
198
- _toolCallId: toolCallId,
199
- };
200
- }
201
- const intent = parsed.flags.intent ?? traceFlow.description;
261
+ const intent = params.intent ?? traceFlow.description;
202
262
  const runtime = resolveTraceRuntime(opts, traceFlow, ctx, toolCallId, intent);
203
263
  const { resolvedModel, maxContextTokens, forkSessionSnapshotJsonl, sharedContext, compressionStats, } = runtime;
204
264
  const makeDetails = (results) => ({
@@ -210,37 +270,15 @@ export function createTraceTool(opts = {}) {
210
270
  });
211
271
  lastResolvedModel = resolvedModel;
212
272
  lastResolvedMaxCtx = maxContextTokens;
213
- lastResolvedIntent = intent;
214
- // Pre-flight dispatch via batch CLI
215
- let preDispatchResults;
216
- const preDispatchMessages = [];
217
- const resolvedCwd = parsed.flags.cwd ?? ctx.cwd;
218
- if (parsed.dispatch.length > 0) {
219
- const dispatchResult = await runBatchCli(parsed.dispatch, resolvedCwd, undefined, ctx.sessionManager, signal);
220
- preDispatchResults = dispatchResult.text;
221
- const preDispatchToolCallId = "pre_dispatch_batch_0";
222
- preDispatchMessages.push({
223
- role: "assistant",
224
- content: [
225
- {
226
- type: "toolCall",
227
- toolCallId: preDispatchToolCallId,
228
- name: "batch",
229
- arguments: { cmd: parsed.dispatch },
230
- },
231
- ],
232
- });
233
- preDispatchMessages.push({
234
- role: "tool",
235
- toolCallId: preDispatchToolCallId,
236
- content: [
237
- {
238
- type: "text",
239
- text: dispatchResult.text,
240
- },
241
- ],
242
- });
273
+ const preDispatch = params.dispatch?.length
274
+ ? await executeDispatchOps(params.dispatch, params.cwd ?? ctx.cwd, ctx, signal)
275
+ : undefined;
276
+ let preDispatchResults = preDispatch?.promptString;
277
+ const dispatchNotes = params._dispatchNotes;
278
+ if (dispatchNotes && dispatchNotes.length > 0) {
279
+ preDispatchResults = `normalized:\n${dispatchNotes.map((n) => `- ${n}`).join("\n")}\n\n${preDispatchResults ?? ""}`;
243
280
  }
281
+ const preDispatchMessages = preDispatch?.messages ?? [];
244
282
  const result = await runFlowWithLiveSession(toolCallId, {
245
283
  sharedContext,
246
284
  model: resolvedModel,
@@ -253,7 +291,7 @@ export function createTraceTool(opts = {}) {
253
291
  flowName: "trace",
254
292
  intent,
255
293
  aim: "",
256
- taskCwd: parsed.flags.cwd,
294
+ taskCwd: params.cwd,
257
295
  forkSessionSnapshotJsonl,
258
296
  parentDepth,
259
297
  parentFlowStack,
@@ -261,7 +299,7 @@ export function createTraceTool(opts = {}) {
261
299
  preventCycles,
262
300
  toolOptimize: opts.getSettings?.()?.toolOptimize,
263
301
  structuredOutput: opts.getSettings?.()?.structuredOutput,
264
- complexity: (parsed.flags.complexity ?? "simple"),
302
+ complexity: params.complexity ?? "simple",
265
303
  model: resolvedModel,
266
304
  maxContextTokens,
267
305
  compressionStats,
@@ -277,6 +315,7 @@ export function createTraceTool(opts = {}) {
277
315
  if (evidence) {
278
316
  outputText += "\n\n" + evidence;
279
317
  }
318
+ // Inject enriched evidence into messages so renderer shows it after completion.
280
319
  result.messages.push({
281
320
  role: "assistant",
282
321
  content: [{ type: "text", text: outputText }],
@@ -302,7 +341,7 @@ export function createTraceTool(opts = {}) {
302
341
  flow: [
303
342
  {
304
343
  type: "trace",
305
- intent: lastResolvedIntent || "Trace mode",
344
+ intent: args?.intent || "Trace mode",
306
345
  aim: "",
307
346
  model: live?.model ?? lastResolvedModel,
308
347
  maxContextTokens: live?.maxContextTokens ?? lastResolvedMaxCtx,
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/tools/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/tools/trace.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,3 @@
1
- type SearchResult = {
2
- title: string;
3
- url: string;
4
- snippet: string;
5
- source: "brave" | "duckduckgo";
6
- };
7
1
  export type WebOpInput = {
8
2
  o: "search";
9
3
  q: string;
@@ -28,39 +22,6 @@ export declare function runWebOps(params: WebOpsParams, ctx: {
28
22
  ops: Record<string, unknown>[];
29
23
  };
30
24
  }>;
31
- export declare function runWebSearch(params: {
32
- query: string;
33
- }, signal?: AbortSignal): Promise<{
34
- content: {
35
- type: "text";
36
- text: string;
37
- }[];
38
- details: {
39
- query: string;
40
- results: SearchResult[];
41
- errors: string[] | undefined;
42
- };
43
- }>;
44
- export declare function runWebFetch(params: {
45
- url: string;
46
- format?: string;
47
- }, ctx: {
48
- sessionManager: {
49
- getSessionDir(): string;
50
- };
51
- }, signal?: AbortSignal): Promise<{
52
- content: {
53
- type: "text";
54
- text: string;
55
- }[];
56
- details: {
57
- url: string;
58
- title: string;
59
- filePath: string;
60
- contentLength: number;
61
- format: string;
62
- };
63
- }>;
64
25
  export declare function extractSnippet(raw: string, title: string): string;
65
26
  export declare function validateFetchUrl(url: string): void;
66
27
  export declare function htmlToMarkdown(html: string, baseUrl: string): {
@@ -72,5 +33,4 @@ export declare function stripMarkdownFormatting(markdown: string): string;
72
33
  export declare function urlToHash(url: string): string;
73
34
  export declare function looksLikeUrlPrompt(prompt: string | undefined): boolean;
74
35
  export declare function looksLikeWebSearchPrompt(prompt: string | undefined): boolean;
75
- export {};
76
36
  //# sourceMappingURL=web-ops.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-ops.d.ts","sourceRoot":"","sources":["../../src/tools/web-ops.ts"],"names":[],"mappings":"AAaA,KAAK,YAAY,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GACnB;IAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,CAAC,EAAE,OAAO,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,MAAM,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,UAAU,EAAE,CAAC;CACjB,CAAC;AAuBF,wBAAsB,SAAS,CAC9B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE;IAAE,cAAc,EAAE;QAAE,aAAa,IAAI,MAAM,CAAA;KAAE,CAAA;CAAE,EACpD,MAAM,CAAC,EAAE,WAAW;;;;;;;;GA4CpB;AAMD,wBAAsB,YAAY,CACjC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EACzB,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;GA4BpB;AA2JD,wBAAsB,WAAW,CAChC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,GAAG,EAAE;IAAE,cAAc,EAAE;QAAE,aAAa,IAAI,MAAM,CAAA;KAAE,CAAA;CAAE,EACpD,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;GAqEpB;AAuFD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA6BlD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAyCjG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY5E;AAOD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA4BhE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AA6BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGtE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAkB5E"}
1
+ {"version":3,"file":"web-ops.d.ts","sourceRoot":"","sources":["../../src/tools/web-ops.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,UAAU,GACnB;IAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,CAAC,EAAE,OAAO,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,MAAM,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,UAAU,EAAE,CAAC;CACjB,CAAC;AAuBF,wBAAsB,SAAS,CAC9B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE;IAAE,cAAc,EAAE;QAAE,aAAa,IAAI,MAAM,CAAA;KAAE,CAAA;CAAE,EACpD,MAAM,CAAC,EAAE,WAAW;;;;;;;;GA4CpB;AA0VD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA6BlD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAyCjG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY5E;AAOD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA4BhE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AA6BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGtE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAkB5E"}
@@ -72,7 +72,7 @@ export async function runWebOps(params, ctx, signal) {
72
72
  // ---------------------------------------------------------------------------
73
73
  // Search
74
74
  // ---------------------------------------------------------------------------
75
- export async function runWebSearch(params, signal) {
75
+ async function runWebSearch(params, signal) {
76
76
  const { results, errors } = await searchKeyless(params.query, signal);
77
77
  let text;
78
78
  if (results.length > 0) {
@@ -222,7 +222,7 @@ async function duckDuckGoHtmlSearch(query, signal) {
222
222
  // ---------------------------------------------------------------------------
223
223
  // Fetch
224
224
  // ---------------------------------------------------------------------------
225
- export async function runWebFetch(params, ctx, signal) {
225
+ async function runWebFetch(params, ctx, signal) {
226
226
  validateFetchUrl(params.url);
227
227
  const format = params.format ?? "markdown";
228
228
  const html = await fetchHtml(params.url, signal);
@@ -344,13 +344,9 @@ function fetchWithCurl(url, signal) {
344
344
  resolve(stdout);
345
345
  });
346
346
  if (signal) {
347
- const onAbort = () => {
347
+ signal.addEventListener("abort", () => {
348
348
  child.kill("SIGTERM");
349
349
  reject(new Error("Aborted"));
350
- };
351
- signal.addEventListener("abort", onAbort, { once: true });
352
- child.on("close", () => {
353
- signal.removeEventListener("abort", onAbort);
354
350
  });
355
351
  }
356
352
  });