pi-agent-flow 2.0.2 → 2.0.6

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 (192) hide show
  1. package/README.md +1 -1
  2. package/agents/audit.md +24 -17
  3. package/agents/build.md +1 -1
  4. package/agents/craft.md +1 -1
  5. package/agents/debug.md +1 -1
  6. package/agents/ideas.md +1 -1
  7. package/agents/scout.md +8 -8
  8. package/agents/trace.md +23 -0
  9. package/dist/batch/batch-bash.d.ts +10 -0
  10. package/dist/batch/batch-bash.d.ts.map +1 -1
  11. package/dist/batch/batch-bash.js +35 -2
  12. package/dist/batch/batch-bash.js.map +1 -1
  13. package/dist/batch/constants.d.ts +6 -3
  14. package/dist/batch/constants.d.ts.map +1 -1
  15. package/dist/batch/execute.js +2 -2
  16. package/dist/batch/execute.js.map +1 -1
  17. package/dist/batch/index.d.ts +9 -11
  18. package/dist/batch/index.d.ts.map +1 -1
  19. package/dist/batch/index.js +88 -58
  20. package/dist/batch/index.js.map +1 -1
  21. package/dist/batch/render.d.ts +22 -5
  22. package/dist/batch/render.d.ts.map +1 -1
  23. package/dist/batch/render.js +332 -17
  24. package/dist/batch/render.js.map +1 -1
  25. package/dist/batch/summary.d.ts.map +1 -1
  26. package/dist/batch/summary.js +22 -4
  27. package/dist/batch/summary.js.map +1 -1
  28. package/dist/config/config.d.ts +5 -4
  29. package/dist/config/config.d.ts.map +1 -1
  30. package/dist/config/config.js +15 -5
  31. package/dist/config/config.js.map +1 -1
  32. package/dist/config/models.d.ts.map +1 -1
  33. package/dist/config/models.js +7 -1
  34. package/dist/config/models.js.map +1 -1
  35. package/dist/config/settings-resolver.d.ts +5 -4
  36. package/dist/config/settings-resolver.d.ts.map +1 -1
  37. package/dist/config/settings-resolver.js +50 -21
  38. package/dist/config/settings-resolver.js.map +1 -1
  39. package/dist/core2/snapshot.d.ts +21 -0
  40. package/dist/core2/snapshot.d.ts.map +1 -0
  41. package/dist/core2/snapshot.js +214 -0
  42. package/dist/core2/snapshot.js.map +1 -0
  43. package/dist/{core → flow}/agents.d.ts.map +1 -1
  44. package/dist/{core → flow}/agents.js +5 -2
  45. package/dist/{core → flow}/agents.js.map +1 -1
  46. package/dist/flow/command.d.ts +1 -1
  47. package/dist/flow/command.d.ts.map +1 -1
  48. package/dist/flow/complexity.d.ts +20 -0
  49. package/dist/flow/complexity.d.ts.map +1 -0
  50. package/dist/flow/complexity.js +34 -0
  51. package/dist/flow/complexity.js.map +1 -0
  52. package/dist/flow/continuation.d.ts +1 -1
  53. package/dist/flow/continuation.d.ts.map +1 -1
  54. package/dist/flow/continuation.js +2 -1
  55. package/dist/flow/continuation.js.map +1 -1
  56. package/dist/{core → flow}/depth.d.ts +1 -1
  57. package/dist/{core → flow}/depth.d.ts.map +1 -1
  58. package/dist/{core → flow}/depth.js.map +1 -1
  59. package/dist/{core → flow}/executor.d.ts +39 -19
  60. package/dist/flow/executor.d.ts.map +1 -0
  61. package/dist/flow/executor.js +727 -0
  62. package/dist/flow/executor.js.map +1 -0
  63. package/dist/flow/index.d.ts +2 -2
  64. package/dist/flow/index.d.ts.map +1 -1
  65. package/dist/flow/index.js +1 -1
  66. package/dist/flow/index.js.map +1 -1
  67. package/dist/flow/loop-command.d.ts +1 -1
  68. package/dist/flow/loop-command.d.ts.map +1 -1
  69. package/dist/{core/flow.d.ts → flow/runner.d.ts} +10 -13
  70. package/dist/flow/runner.d.ts.map +1 -0
  71. package/dist/{core/flow.js → flow/runner.js} +35 -34
  72. package/dist/flow/runner.js.map +1 -0
  73. package/dist/{core → flow}/session-registry.d.ts.map +1 -1
  74. package/dist/{core → flow}/session-registry.js.map +1 -1
  75. package/dist/flow/settings-command.d.ts +3 -3
  76. package/dist/flow/settings-command.d.ts.map +1 -1
  77. package/dist/flow/settings-command.js +39 -21
  78. package/dist/flow/settings-command.js.map +1 -1
  79. package/dist/{core → flow}/transition.d.ts.map +1 -1
  80. package/dist/{core → flow}/transition.js.map +1 -1
  81. package/dist/flow/types.d.ts +4 -0
  82. package/dist/flow/types.d.ts.map +1 -1
  83. package/dist/flow/warp.d.ts +1 -1
  84. package/dist/flow/warp.d.ts.map +1 -1
  85. package/dist/index.d.ts +1 -2
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +190 -189
  88. package/dist/index.js.map +1 -1
  89. package/dist/notify/notify.d.ts +1 -1
  90. package/dist/notify/notify.d.ts.map +1 -1
  91. package/dist/notify/notify.js +1 -1
  92. package/dist/snapshot/cli-args.d.ts +2 -2
  93. package/dist/snapshot/cli-args.d.ts.map +1 -1
  94. package/dist/snapshot/cli-args.js +21 -5
  95. package/dist/snapshot/cli-args.js.map +1 -1
  96. package/dist/snapshot/runner-events.d.ts +2 -2
  97. package/dist/snapshot/runner-events.d.ts.map +1 -1
  98. package/dist/snapshot/runner-events.js +48 -4
  99. package/dist/snapshot/runner-events.js.map +1 -1
  100. package/dist/snapshot/structured-output.d.ts +1 -1
  101. package/dist/snapshot/structured-output.d.ts.map +1 -1
  102. package/dist/snapshot/structured-output.js +20 -2
  103. package/dist/snapshot/structured-output.js.map +1 -1
  104. package/dist/steering/flow-prompt.d.ts +1 -3
  105. package/dist/steering/flow-prompt.d.ts.map +1 -1
  106. package/dist/steering/flow-prompt.js +7 -63
  107. package/dist/steering/flow-prompt.js.map +1 -1
  108. package/dist/steering/sliding-prompt.js +10 -10
  109. package/dist/steering/sliding-prompt.js.map +1 -1
  110. package/dist/tools/ask-user.d.ts +2 -2
  111. package/dist/tools/ask-user.d.ts.map +1 -1
  112. package/dist/tools/ask-user.js +1 -1
  113. package/dist/tools/ask-user.js.map +1 -1
  114. package/dist/tools/timed-bash.js +1 -1
  115. package/dist/tools/timed-bash.js.map +1 -1
  116. package/dist/tools/trace.d.ts +34 -0
  117. package/dist/tools/trace.d.ts.map +1 -0
  118. package/dist/tools/trace.js +180 -0
  119. package/dist/tools/trace.js.map +1 -0
  120. package/dist/tools/web-ops.d.ts +85 -0
  121. package/dist/tools/web-ops.d.ts.map +1 -0
  122. package/dist/tools/{web-tool.js → web-ops.js} +51 -125
  123. package/dist/tools/web-ops.js.map +1 -0
  124. package/dist/tui/flow-colors.d.ts +1 -0
  125. package/dist/tui/flow-colors.d.ts.map +1 -1
  126. package/dist/tui/flow-colors.js +2 -2
  127. package/dist/tui/flow-colors.js.map +1 -1
  128. package/dist/tui/render-utils.js +1 -1
  129. package/dist/tui/render-utils.js.map +1 -1
  130. package/dist/tui/render.d.ts +32 -1
  131. package/dist/tui/render.d.ts.map +1 -1
  132. package/dist/tui/render.js +666 -170
  133. package/dist/tui/render.js.map +1 -1
  134. package/dist/tui/scramble/algorithm.d.ts +4 -2
  135. package/dist/tui/scramble/algorithm.d.ts.map +1 -1
  136. package/dist/tui/scramble/algorithm.js +44 -12
  137. package/dist/tui/scramble/algorithm.js.map +1 -1
  138. package/dist/tui/scramble/constants.d.ts +3 -0
  139. package/dist/tui/scramble/constants.d.ts.map +1 -1
  140. package/dist/tui/scramble/constants.js +4 -1
  141. package/dist/tui/scramble/constants.js.map +1 -1
  142. package/dist/tui/scramble/index.d.ts +2 -1
  143. package/dist/tui/scramble/index.d.ts.map +1 -1
  144. package/dist/tui/scramble/index.js +1 -1
  145. package/dist/tui/scramble/index.js.map +1 -1
  146. package/dist/tui/scramble/manager.d.ts +1 -1
  147. package/dist/tui/scramble/manager.d.ts.map +1 -1
  148. package/dist/tui/scramble/manager.js +24 -19
  149. package/dist/tui/scramble/manager.js.map +1 -1
  150. package/dist/types/flow.d.ts +17 -1
  151. package/dist/types/flow.d.ts.map +1 -1
  152. package/dist/types/flow.js.map +1 -1
  153. package/dist/types/output.d.ts +11 -36
  154. package/dist/types/output.d.ts.map +1 -1
  155. package/dist/types/output.js +1 -1
  156. package/dist/types/ui.d.ts +1 -1
  157. package/dist/types/ui.d.ts.map +1 -1
  158. package/package.json +9 -9
  159. package/dist/core/executor.d.ts.map +0 -1
  160. package/dist/core/executor.js +0 -378
  161. package/dist/core/executor.js.map +0 -1
  162. package/dist/core/flow.d.ts.map +0 -1
  163. package/dist/core/flow.js.map +0 -1
  164. package/dist/core/session-mode.d.ts +0 -11
  165. package/dist/core/session-mode.d.ts.map +0 -1
  166. package/dist/core/session-mode.js +0 -26
  167. package/dist/core/session-mode.js.map +0 -1
  168. package/dist/core/transitions.d.ts +0 -39
  169. package/dist/core/transitions.d.ts.map +0 -1
  170. package/dist/core/transitions.js +0 -59
  171. package/dist/core/transitions.js.map +0 -1
  172. package/dist/snapshot/index.d.ts +0 -2
  173. package/dist/snapshot/index.d.ts.map +0 -1
  174. package/dist/snapshot/index.js +0 -2
  175. package/dist/snapshot/index.js.map +0 -1
  176. package/dist/snapshot/reasoning-strip.d.ts +0 -22
  177. package/dist/snapshot/reasoning-strip.d.ts.map +0 -1
  178. package/dist/snapshot/reasoning-strip.js +0 -58
  179. package/dist/snapshot/reasoning-strip.js.map +0 -1
  180. package/dist/snapshot/snapshot.d.ts +0 -77
  181. package/dist/snapshot/snapshot.d.ts.map +0 -1
  182. package/dist/snapshot/snapshot.js +0 -1824
  183. package/dist/snapshot/snapshot.js.map +0 -1
  184. package/dist/tools/web-tool.d.ts +0 -46
  185. package/dist/tools/web-tool.d.ts.map +0 -1
  186. package/dist/tools/web-tool.js.map +0 -1
  187. /package/dist/{core → flow}/agents.d.ts +0 -0
  188. /package/dist/{core → flow}/depth.js +0 -0
  189. /package/dist/{core → flow}/session-registry.d.ts +0 -0
  190. /package/dist/{core → flow}/session-registry.js +0 -0
  191. /package/dist/{core → flow}/transition.d.ts +0 -0
  192. /package/dist/{core → flow}/transition.js +0 -0
@@ -1,36 +1,335 @@
1
1
  /**
2
2
  * batch — rendering helpers for tool calls and results.
3
+ *
4
+ * Result rendering uses a tree-directory format when `details.results`
5
+ * is available, showing per-operation status icons and metadata.
6
+ * Falls back to legacy flat text rendering when `details.results` is
7
+ * empty (backward compatibility for test fixtures and older data).
3
8
  */
4
- import { Container, Text, TruncatedText } from "@mariozechner/pi-tui";
9
+ import { Container, Text, TruncatedText } from "@earendil-works/pi-tui";
5
10
  import { scrambleManager, runScrambleTimer } from "../tui/scramble/index.js";
6
11
  import { stripAnsi } from "../tui/render-utils.js";
7
- import { formatBatchOpsSummary } from "./summary.js";
8
- function formatBatchCall(args) {
9
- return formatBatchOpsSummary(args);
10
- }
12
+ import { italic } from "../tui/render-utils.js";
11
13
  /** Reuse a cached root container from args.state so the TUI host's reference stays valid. */
12
14
  function reuseRootContainer(args, fresh) {
13
15
  const state = args?.state;
14
16
  if (!state)
15
17
  return fresh;
16
- if (!state.__batchRoot) {
18
+ if (!state.__rootContainer) {
17
19
  const root = new Container();
18
20
  root.addChild(fresh);
19
- state.__batchRoot = root;
21
+ state.__rootContainer = root;
20
22
  return root;
21
23
  }
22
- const root = state.__batchRoot;
24
+ const root = state.__rootContainer;
23
25
  root.clear();
24
26
  root.addChild(fresh);
25
27
  root.invalidate();
26
28
  return root;
27
29
  }
28
- export function renderBatchCall(args, theme) {
29
- const summary = formatBatchCall(args);
30
- const text = new Text(theme.fg("muted", "batch ") + theme.fg("accent", summary), 0, 0);
31
- return reuseRootContainer(args, text);
30
+ export function renderBatchCall(_args, _theme) {
31
+ // Call frame is invisible — result frame shows tool name + stats.
32
+ return new Container();
33
+ }
34
+ // ---------------------------------------------------------------------------
35
+ // Tree-directory result rendering
36
+ // ---------------------------------------------------------------------------
37
+ function shortenPath(p) {
38
+ const home = process.env.HOME || process.env.USERPROFILE || "";
39
+ return home && p.startsWith(home) ? `~${p.slice(home.length)}` : p;
40
+ }
41
+ function statusIcon(status) {
42
+ switch (status) {
43
+ case "ok":
44
+ return "✓";
45
+ case "error":
46
+ return "✗";
47
+ case "skipped":
48
+ return "⊘";
49
+ case "pending":
50
+ return "○";
51
+ default:
52
+ return "?";
53
+ }
54
+ }
55
+ function statusColor(status) {
56
+ switch (status) {
57
+ case "ok":
58
+ return "accent";
59
+ case "error":
60
+ return "error";
61
+ case "skipped":
62
+ return "muted";
63
+ case "pending":
64
+ return "warning";
65
+ default:
66
+ return "muted";
67
+ }
68
+ }
69
+ function formatOpTarget(op) {
70
+ switch (op.op) {
71
+ case "read":
72
+ return shortenPath(op.path ?? "?");
73
+ case "edit":
74
+ return shortenPath(op.path ?? "?");
75
+ case "write":
76
+ return shortenPath(op.path ?? "?");
77
+ case "delete":
78
+ return shortenPath(op.path ?? "?");
79
+ case "rg":
80
+ return shortenPath(op.path ?? "?");
81
+ case "bash":
82
+ return op.command ?? shortenPath(op.path ?? "?");
83
+ case "search":
84
+ return `"${op.q ?? op.query ?? "?"}"`;
85
+ case "fetch":
86
+ return op.url ?? op.u ?? "?";
87
+ case "patch":
88
+ return shortenPath(op.path ?? "patch");
89
+ default:
90
+ return shortenPath(op.path ?? "?");
91
+ }
32
92
  }
33
- export function renderBatchResult(result, expanded, _theme, args) {
93
+ function formatOpMeta(op) {
94
+ const parts = [];
95
+ switch (op.op) {
96
+ case "read": {
97
+ if (op.totalLines !== undefined)
98
+ parts.push(`${op.totalLines} lines`);
99
+ else if (op.content)
100
+ parts.push(`${op.content.split("\n").length} lines`);
101
+ if (op.truncated && op.nextOffset)
102
+ parts.push(`truncated, s=${op.nextOffset}`);
103
+ else if (op.truncated)
104
+ parts.push("truncated");
105
+ if (op.contextMap)
106
+ parts.push("context map");
107
+ break;
108
+ }
109
+ case "edit": {
110
+ if (op.blocksChanged !== undefined)
111
+ parts.push(`${op.blocksChanged} block${op.blocksChanged > 1 ? "s" : ""}`);
112
+ break;
113
+ }
114
+ case "write": {
115
+ if (op.bytes !== undefined)
116
+ parts.push(`${op.bytes} bytes`);
117
+ break;
118
+ }
119
+ case "rg": {
120
+ if (op.content) {
121
+ const matchCount = op.content.split("\n").filter((l) => l.trim()).length;
122
+ parts.push(`${matchCount} match${matchCount !== 1 ? "es" : ""}`);
123
+ }
124
+ break;
125
+ }
126
+ case "bash": {
127
+ if (op.exitCode !== undefined)
128
+ parts.push(`exit ${op.exitCode}`);
129
+ if (op.duration !== undefined)
130
+ parts.push(`${(op.duration / 1000).toFixed(1)}s`);
131
+ break;
132
+ }
133
+ case "search": {
134
+ const searchResults = op.results?.length;
135
+ if (searchResults !== undefined && searchResults >= 0) {
136
+ parts.push(`${searchResults} result${searchResults !== 1 ? "s" : ""}`);
137
+ }
138
+ else if (op.content) {
139
+ const resultCount = op.content.split("\n").filter((l) => l.trim()).length;
140
+ parts.push(`${resultCount} result${resultCount !== 1 ? "s" : ""}`);
141
+ }
142
+ break;
143
+ }
144
+ case "fetch": {
145
+ if (op.contentLength !== undefined)
146
+ parts.push(`${op.contentLength} bytes`);
147
+ else if (op.content)
148
+ parts.push(`${op.content.length} bytes`);
149
+ break;
150
+ }
151
+ case "patch": {
152
+ const parts2 = [];
153
+ if (op.affected?.added?.length)
154
+ parts2.push(`A ${op.affected.added.join(", ")}`);
155
+ if (op.affected?.modified?.length)
156
+ parts2.push(`M ${op.affected.modified.join(", ")}`);
157
+ if (op.affected?.deleted?.length)
158
+ parts2.push(`D ${op.affected.deleted.join(", ")}`);
159
+ if (parts2.length)
160
+ parts.push(parts2.join(" "));
161
+ break;
162
+ }
163
+ }
164
+ if (op.status === "error" && op.error) {
165
+ const shortError = op.error.length > 40 ? op.error.slice(0, 37) + "..." : op.error;
166
+ parts.push(shortError);
167
+ }
168
+ else if (op.status === "skipped" && op.error) {
169
+ const shortError = op.error.length > 40 ? op.error.slice(0, 37) + "..." : op.error;
170
+ parts.push(shortError);
171
+ }
172
+ if (parts.length === 0)
173
+ return "";
174
+ return " · " + parts.join(" · ");
175
+ }
176
+ function buildResultHeader(results) {
177
+ const total = results.length;
178
+ const ok = results.filter((r) => r.status === "ok").length;
179
+ const err = results.filter((r) => r.status === "error").length;
180
+ const skipped = results.filter((r) => r.status === "skipped").length;
181
+ const pending = results.filter((r) => r.status === "pending").length;
182
+ // Per-op-type tallies for the "file / web / bash" breakdown
183
+ const typeCounts = {};
184
+ for (const r of results) {
185
+ const type = r.op === "read" || r.op === "edit" || r.op === "write" || r.op === "delete" || r.op === "rg" || r.op === "patch"
186
+ ? "file"
187
+ : r.op === "search" || r.op === "fetch"
188
+ ? "web"
189
+ : r.op === "bash"
190
+ ? "bash"
191
+ : r.op;
192
+ typeCounts[type] = (typeCounts[type] || 0) + 1;
193
+ }
194
+ const parts = [`${total} op${total !== 1 ? "s" : ""}`];
195
+ if (ok > 0)
196
+ parts.push(`${ok} ok`);
197
+ if (err > 0)
198
+ parts.push(`${err} err`);
199
+ if (skipped > 0)
200
+ parts.push(`${skipped} skipped`);
201
+ if (pending > 0)
202
+ parts.push(`${pending} pending`);
203
+ // Add type tallies: e.g. "2 file · 1 web · 1 bash"
204
+ const typeOrder = ["file", "web", "bash"];
205
+ for (const type of typeOrder) {
206
+ const count = typeCounts[type];
207
+ if (count)
208
+ parts.push(`${count} ${type}`);
209
+ }
210
+ // Any remaining unclassified types
211
+ for (const [type, count] of Object.entries(typeCounts)) {
212
+ if (!typeOrder.includes(type) && count)
213
+ parts.push(`${count} ${type}`);
214
+ }
215
+ return parts.join(" · ");
216
+ }
217
+ function buildOpContentPreview(op, childPrefix) {
218
+ if (op.status !== "ok")
219
+ return null;
220
+ switch (op.op) {
221
+ case "read": {
222
+ if (!op.content)
223
+ return null;
224
+ const lines = op.content.split("\n");
225
+ const preview = lines.slice(0, 3).join("\n");
226
+ return preview || null;
227
+ }
228
+ case "rg": {
229
+ if (!op.content)
230
+ return null;
231
+ const lines = op.content.split("\n").filter((l) => l.trim());
232
+ const preview = lines.slice(0, 3).join("\n");
233
+ return preview || null;
234
+ }
235
+ case "bash": {
236
+ if (!op.stdout?.trim())
237
+ return null;
238
+ const lines = op.stdout.split("\n");
239
+ const preview = lines.slice(0, 3).join("\n");
240
+ return preview || null;
241
+ }
242
+ case "search": {
243
+ const results = op.results;
244
+ if (results && results.length > 0) {
245
+ const preview = results
246
+ .slice(0, 3)
247
+ .map((r) => `${r.title || "untitled"} — ${r.url || "?"}`)
248
+ .join("\n");
249
+ return preview || null;
250
+ }
251
+ if (!op.content)
252
+ return null;
253
+ const lines = op.content.split("\n");
254
+ const preview = lines.slice(0, 3).join("\n");
255
+ return preview || null;
256
+ }
257
+ case "fetch": {
258
+ const filePath = op.filePath;
259
+ const contentLen = op.contentLength ?? op.contentLength;
260
+ if (filePath) {
261
+ return `saved: ${shortenPath(filePath)}${contentLen !== undefined ? ` (${contentLen} bytes)` : ""}`;
262
+ }
263
+ if (!op.content)
264
+ return null;
265
+ const lines = op.content.split("\n");
266
+ const preview = lines.slice(0, 3).join("\n");
267
+ return preview || null;
268
+ }
269
+ default:
270
+ return null;
271
+ }
272
+ }
273
+ /** Extract plain text from a Container by recursively reading child text nodes. */
274
+ function extractContainerText(node) {
275
+ if ("text" in node && typeof node.text === "string") {
276
+ return node.text;
277
+ }
278
+ else if ("children" in node && Array.isArray(node.children)) {
279
+ return node.children.map((child) => extractContainerText(child)).join("\n");
280
+ }
281
+ return String(node);
282
+ }
283
+ function renderTreeResult(results, expanded, theme, args, isBatchRead = false) {
284
+ const container = new Container();
285
+ const label = isBatchRead ? "batch_read" : "batch";
286
+ // Header line
287
+ const header = `${label} · ${buildResultHeader(results)}`;
288
+ container.addChild(new Text(theme.fg("muted", header), 0, 0));
289
+ // Tree lines
290
+ for (let i = 0; i < results.length; i++) {
291
+ const op = results[i];
292
+ const isLast = i === results.length - 1;
293
+ const treePrefix = isLast ? "└─" : "├─";
294
+ const childPrefix = isLast ? " " : "│ ";
295
+ const icon = statusIcon(op.status);
296
+ const iconColored = theme.fg(statusColor(op.status), icon);
297
+ const target = formatOpTarget(op);
298
+ const meta = formatOpMeta(op);
299
+ const treeLine = `${treePrefix} ${iconColored} ${op.op}: ${theme.fg("accent", target)}${meta ? theme.fg("muted", meta) : ""}`;
300
+ container.addChild(new Text(treeLine, 0, 0));
301
+ // Expanded content preview
302
+ if (expanded) {
303
+ const preview = buildOpContentPreview(op, childPrefix);
304
+ if (preview) {
305
+ const previewLines = preview.split("\n");
306
+ for (const line of previewLines) {
307
+ container.addChild(new Text(`${childPrefix}${theme.fg("muted", italic(line))}`, 0, 0));
308
+ }
309
+ }
310
+ }
311
+ }
312
+ // Scramble animation support
313
+ const canAnimate = !!args?.invalidate && !!args?.state;
314
+ if (canAnimate) {
315
+ const id = args?.toolCallId || args?.id || label;
316
+ const now = Date.now();
317
+ const fullText = extractContainerText(container);
318
+ const scrambled = scrambleManager.updateText(id, "result", stripAnsi(fullText), now, false).content;
319
+ // Rebuild container with scrambled text
320
+ const scrambledContainer = new Container();
321
+ for (const line of scrambled.split("\n")) {
322
+ scrambledContainer.addChild(new Text(line, 0, 0));
323
+ }
324
+ runScrambleTimer(args, id);
325
+ return reuseRootContainer(args, scrambledContainer);
326
+ }
327
+ return reuseRootContainer(args, container);
328
+ }
329
+ // ---------------------------------------------------------------------------
330
+ // Legacy fallback (content-text based)
331
+ // ---------------------------------------------------------------------------
332
+ function renderLegacyResult(result, expanded, args) {
34
333
  const fullText = result.content?.find((c) => c.type === "text")?.text ?? "";
35
334
  const canAnimate = !!args?.invalidate && !!args?.state;
36
335
  if (!canAnimate) {
@@ -56,9 +355,25 @@ export function renderBatchResult(result, expanded, _theme, args) {
56
355
  const fresh = new Text(scrambled, 0, 0);
57
356
  return reuseRootContainer(args, fresh);
58
357
  }
59
- export function renderBatchReadCall(args, theme) {
60
- const summary = formatBatchCall(args);
61
- const text = new Text(theme.fg("muted", "batch_read ") + theme.fg("accent", summary), 0, 0);
62
- return reuseRootContainer(args, text);
358
+ // ---------------------------------------------------------------------------
359
+ // Public entry points
360
+ // ---------------------------------------------------------------------------
361
+ export function renderBatchResult(result, expanded, theme, args) {
362
+ const results = result.details?.results;
363
+ if (results && results.length > 0) {
364
+ return renderTreeResult(results, expanded, theme, args, false);
365
+ }
366
+ return renderLegacyResult(result, expanded, args);
367
+ }
368
+ export function renderBatchReadResult(result, expanded, theme, args) {
369
+ const results = result.details?.results;
370
+ if (results && results.length > 0) {
371
+ return renderTreeResult(results, expanded, theme, args, true);
372
+ }
373
+ return renderLegacyResult(result, expanded, args);
374
+ }
375
+ export function renderBatchReadCall(_args, _theme) {
376
+ // Call frame is invisible — result frame shows tool name + stats.
377
+ return new Container();
63
378
  }
64
379
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/batch/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,SAAS,eAAe,CAAC,IAA6B;IACrD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,6FAA6F;AAC7F,SAAS,kBAAkB,CAC1B,IAAyC,EACzC,KAA2B;IAE3B,MAAM,KAAK,GAAI,IAAY,EAAE,KAAwC,CAAC;IACtE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,WAAwB,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;IACb,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAA6B,EAAE,KAAiB;IAC/E,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAS,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,MAA4D,EAC5D,QAAiB,EACjB,MAAkB,EAClB,IAA8B;IAE9B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;IAC5E,MAAM,UAAU,GAAG,CAAC,CAAE,IAAY,EAAE,UAAU,IAAI,CAAC,CAAE,IAAY,EAAE,KAAK,CAAC;IACzE,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7E,OAAO,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAkB,CAAC;QACzD,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAS,CAAC;IAChD,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,EAAE,GAAI,IAAY,EAAE,UAAU,IAAK,IAAY,EAAE,EAAE,IAAI,OAAO,CAAC;IACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC;QACnG,gBAAgB,CAAC,IAAuC,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAkB,CAAC;IACzD,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC;IACpG,gBAAgB,CAAC,IAAuC,EAAE,EAAE,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAS,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAA6B,EAAE,KAAiB;IACnF,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5F,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAS,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/batch/render.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/batch/summary.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0EH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA6B3E"}
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/batch/summary.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0FH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA+B3E"}
@@ -32,8 +32,20 @@ function extractBatchOps(args) {
32
32
  return { o: opName, p: opPath, e: edits, c: cmd, s: offset, l: limit, q: pattern, t: typeFilter };
33
33
  });
34
34
  }
35
+ function extractWebOps(args) {
36
+ const rawOps = args?.w;
37
+ if (!Array.isArray(rawOps))
38
+ return [];
39
+ return rawOps
40
+ .filter((op) => !!op && typeof op === "object")
41
+ .map((op) => ({
42
+ o: String(op.o ?? "?"),
43
+ q: typeof op.q === "string" ? op.q : undefined,
44
+ u: typeof op.u === "string" ? op.u : undefined,
45
+ }));
46
+ }
35
47
  function formatOpSummary(op) {
36
- const shortPath = shortenPath(op.p);
48
+ const shortPath = op.p ? shortenPath(op.p) : "";
37
49
  switch (op.o) {
38
50
  case "bash": {
39
51
  const cmd = op.c ?? "?";
@@ -65,22 +77,28 @@ function formatOpSummary(op) {
65
77
  return `rg ${op.q ?? "?"} in ${shortPath}${op.t ? ` (${op.t})` : ""}`;
66
78
  case "delete":
67
79
  return `delete ${shortPath}`;
80
+ case "search":
81
+ return `search: "${op.q ?? ""}"`;
82
+ case "fetch":
83
+ return `fetch: ${op.u ?? ""}`;
68
84
  case "patch": {
69
85
  const patchPreview = op.c ? ` (${op.c.split("\n")[0]}…)` : "";
70
86
  return `patch${patchPreview}`;
71
87
  }
72
88
  default:
73
- return `${op.o} ${shortPath}`;
89
+ return op.p ? `${op.o} ${shortPath}` : `${op.o}`;
74
90
  }
75
91
  }
76
92
  export function formatBatchOpsSummary(args) {
77
93
  const ops = extractBatchOps(args);
78
- if (ops.length === 0)
94
+ const webOps = extractWebOps(args);
95
+ const allOps = [...ops, ...webOps];
96
+ if (allOps.length === 0)
79
97
  return "batch (empty)";
80
98
  const parts = [];
81
99
  let prev = "";
82
100
  let count = 0;
83
- for (const op of ops) {
101
+ for (const op of allOps) {
84
102
  const summary = formatOpSummary(op);
85
103
  if (summary === prev) {
86
104
  count++;
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/batch/summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/batch/summary.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@
4
4
  * Reads global (~/.pi/agent/settings.json) and project (.pi/settings.json)
5
5
  * settings, with project overriding global for flowModelConfigs.
6
6
  */
7
- import { type AgentSessionMode } from "../core/session-mode.js";
8
- import { type FlowTier } from "../core/agents.js";
7
+ import { type Complexity } from "../flow/complexity.js";
8
+ import { type FlowTier } from "../flow/agents.js";
9
9
  export interface FlowModelTierConfig {
10
10
  primary?: string;
11
11
  failover?: string[];
@@ -23,8 +23,8 @@ export interface FlowSettings {
23
23
  structuredOutput?: boolean;
24
24
  /** Maximum number of flows to execute concurrently. Default: 4. */
25
25
  maxConcurrency?: number;
26
- /** Default child-flow session mode. Default: "default" (600s). */
27
- sessionMode?: AgentSessionMode;
26
+ /** Default child-flow complexity. Default: "moderate" (600s, 1x audit). */
27
+ complexity?: Complexity;
28
28
  steering?: {
29
29
  /** Skip entire steering system message when false. Default: true. */
30
30
  enabled?: boolean;
@@ -45,6 +45,7 @@ export interface FlowSettings {
45
45
  /** Auto-dismiss timeout in seconds. Default: 300 (5 min). */
46
46
  timeout?: number;
47
47
  };
48
+ bodyVerbosity?: "lite" | "full";
48
49
  loop?: {
49
50
  /** Enable endless loop behavior. Default: false. */
50
51
  enabled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  import * as fs from "node:fs";
8
8
  import * as os from "node:os";
9
9
  import * as path from "node:path";
10
- import { parseAgentSessionMode } from "../core/session-mode.js";
10
+ import { parseComplexity } from "../flow/complexity.js";
11
11
  import { logWarn } from "./log.js";
12
12
  import { resolveModelContextWindow as resolveModelContextWindowFromModels } from "./models.js";
13
13
  const BUILTIN_FLOW_MODEL_CONFIGS = {
@@ -28,7 +28,13 @@ function readSettingsJson(filePath) {
28
28
  }
29
29
  export function getGlobalSettingsPath() {
30
30
  const agentDir = process.env["PI_CODING_AGENT_DIR"]?.trim() || path.join(os.homedir(), ".pi", "agent");
31
- return path.join(agentDir, "settings.json");
31
+ const defaultPath = path.join(agentDir, "settings.json");
32
+ if (!process.env["PI_CODING_AGENT_DIR"] && !fs.existsSync(defaultPath)) {
33
+ const rootPath = path.join(os.homedir(), ".pi", "settings.json");
34
+ if (fs.existsSync(rootPath))
35
+ return rootPath;
36
+ }
37
+ return defaultPath;
32
38
  }
33
39
  function getProjectSettingsPath(cwd) {
34
40
  return path.join(cwd, ".pi", "settings.json");
@@ -169,9 +175,9 @@ function extractFlowSettings(settings) {
169
175
  if (typeof obj.maxConcurrency === "number" && Number.isSafeInteger(obj.maxConcurrency) && obj.maxConcurrency >= 1) {
170
176
  result.maxConcurrency = obj.maxConcurrency;
171
177
  }
172
- const sessionMode = parseAgentSessionMode(obj.sessionMode);
173
- if (sessionMode !== undefined) {
174
- result.sessionMode = sessionMode;
178
+ const complexity = parseComplexity(obj.complexity);
179
+ if (complexity !== undefined) {
180
+ result.complexity = complexity;
175
181
  }
176
182
  // Parse nested steering settings
177
183
  if (isPlainObject(obj.steering)) {
@@ -209,6 +215,10 @@ function extractFlowSettings(settings) {
209
215
  }
210
216
  result.askUser = askUser;
211
217
  }
218
+ // Parse body verbosity setting
219
+ if (typeof obj.bodyVerbosity === "string" && (obj.bodyVerbosity === "lite" || obj.bodyVerbosity === "full")) {
220
+ result.bodyVerbosity = obj.bodyVerbosity;
221
+ }
212
222
  // Parse nested loop settings
213
223
  if (isPlainObject(obj.loop)) {
214
224
  const loop = {};