pi-agent-flow 2.0.1 → 2.0.5

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 (233) hide show
  1. package/README.md +126 -489
  2. package/agents/audit.md +24 -15
  3. package/agents/build.md +4 -3
  4. package/agents/craft.md +4 -4
  5. package/agents/debug.md +5 -4
  6. package/agents/ideas.md +6 -5
  7. package/agents/scout.md +10 -8
  8. package/agents/trace.md +23 -0
  9. package/dist/batch/apply-patch.d.ts +60 -0
  10. package/dist/batch/apply-patch.d.ts.map +1 -0
  11. package/dist/batch/apply-patch.js +477 -0
  12. package/dist/batch/apply-patch.js.map +1 -0
  13. package/dist/batch/batch-bash.d.ts +10 -6
  14. package/dist/batch/batch-bash.d.ts.map +1 -1
  15. package/dist/batch/batch-bash.js +59 -11
  16. package/dist/batch/batch-bash.js.map +1 -1
  17. package/dist/batch/constants.d.ts +38 -6
  18. package/dist/batch/constants.d.ts.map +1 -1
  19. package/dist/batch/constants.js +26 -4
  20. package/dist/batch/constants.js.map +1 -1
  21. package/dist/batch/execute.d.ts +8 -2
  22. package/dist/batch/execute.d.ts.map +1 -1
  23. package/dist/batch/execute.js +222 -67
  24. package/dist/batch/execute.js.map +1 -1
  25. package/dist/batch/fuzzy-edit.d.ts +4 -1
  26. package/dist/batch/fuzzy-edit.d.ts.map +1 -1
  27. package/dist/batch/fuzzy-edit.js +7 -2
  28. package/dist/batch/fuzzy-edit.js.map +1 -1
  29. package/dist/batch/index.d.ts +10 -24
  30. package/dist/batch/index.d.ts.map +1 -1
  31. package/dist/batch/index.js +120 -120
  32. package/dist/batch/index.js.map +1 -1
  33. package/dist/batch/render.d.ts +22 -5
  34. package/dist/batch/render.d.ts.map +1 -1
  35. package/dist/batch/render.js +353 -15
  36. package/dist/batch/render.js.map +1 -1
  37. package/dist/batch/summary.d.ts.map +1 -1
  38. package/dist/batch/summary.js +26 -4
  39. package/dist/batch/summary.js.map +1 -1
  40. package/dist/config/config.d.ts +5 -4
  41. package/dist/config/config.d.ts.map +1 -1
  42. package/dist/config/config.js +15 -5
  43. package/dist/config/config.js.map +1 -1
  44. package/dist/config/models.d.ts.map +1 -1
  45. package/dist/config/models.js +7 -1
  46. package/dist/config/models.js.map +1 -1
  47. package/dist/config/settings-resolver.d.ts +5 -4
  48. package/dist/config/settings-resolver.d.ts.map +1 -1
  49. package/dist/config/settings-resolver.js +50 -21
  50. package/dist/config/settings-resolver.js.map +1 -1
  51. package/dist/core2/snapshot.d.ts +21 -0
  52. package/dist/core2/snapshot.d.ts.map +1 -0
  53. package/dist/core2/snapshot.js +214 -0
  54. package/dist/core2/snapshot.js.map +1 -0
  55. package/dist/{core → flow}/agents.d.ts.map +1 -1
  56. package/dist/{core → flow}/agents.js +5 -2
  57. package/dist/{core → flow}/agents.js.map +1 -1
  58. package/dist/flow/auto-warp.d.ts +1 -1
  59. package/dist/flow/auto-warp.js +1 -1
  60. package/dist/flow/command.d.ts +1 -1
  61. package/dist/flow/command.d.ts.map +1 -1
  62. package/dist/flow/complexity.d.ts +20 -0
  63. package/dist/flow/complexity.d.ts.map +1 -0
  64. package/dist/flow/complexity.js +34 -0
  65. package/dist/flow/complexity.js.map +1 -0
  66. package/dist/flow/continuation.d.ts +1 -1
  67. package/dist/flow/continuation.d.ts.map +1 -1
  68. package/dist/flow/continuation.js +4 -3
  69. package/dist/flow/continuation.js.map +1 -1
  70. package/dist/{core → flow}/depth.d.ts +4 -4
  71. package/dist/{core → flow}/depth.d.ts.map +1 -1
  72. package/dist/{core → flow}/depth.js +5 -5
  73. package/dist/{core → flow}/depth.js.map +1 -1
  74. package/dist/{core → flow}/executor.d.ts +42 -22
  75. package/dist/flow/executor.d.ts.map +1 -0
  76. package/dist/flow/executor.js +727 -0
  77. package/dist/flow/executor.js.map +1 -0
  78. package/dist/flow/index.d.ts +4 -4
  79. package/dist/flow/index.d.ts.map +1 -1
  80. package/dist/flow/index.js +4 -4
  81. package/dist/flow/index.js.map +1 -1
  82. package/dist/flow/loop-command.d.ts +1 -1
  83. package/dist/flow/loop-command.d.ts.map +1 -1
  84. package/dist/flow/loop-command.js +3 -0
  85. package/dist/flow/loop-command.js.map +1 -1
  86. package/dist/{core/flow.d.ts → flow/runner.d.ts} +20 -16
  87. package/dist/flow/runner.d.ts.map +1 -0
  88. package/dist/{core/flow.js → flow/runner.js} +105 -61
  89. package/dist/flow/runner.js.map +1 -0
  90. package/dist/{core → flow}/session-registry.d.ts.map +1 -1
  91. package/dist/{core → flow}/session-registry.js.map +1 -1
  92. package/dist/flow/settings-command.d.ts +3 -3
  93. package/dist/flow/settings-command.d.ts.map +1 -1
  94. package/dist/flow/settings-command.js +43 -22
  95. package/dist/flow/settings-command.js.map +1 -1
  96. package/dist/{core/delegation.d.ts → flow/transition.d.ts} +8 -8
  97. package/dist/{core/delegation.d.ts.map → flow/transition.d.ts.map} +1 -1
  98. package/dist/{core/delegation.js → flow/transition.js} +12 -12
  99. package/dist/{core/delegation.js.map → flow/transition.js.map} +1 -1
  100. package/dist/flow/types.d.ts +4 -0
  101. package/dist/flow/types.d.ts.map +1 -1
  102. package/dist/flow/warp.d.ts +15 -0
  103. package/dist/flow/warp.d.ts.map +1 -0
  104. package/dist/flow/warp.js +207 -0
  105. package/dist/flow/warp.js.map +1 -0
  106. package/dist/index.d.ts +1 -2
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +237 -89
  109. package/dist/index.js.map +1 -1
  110. package/dist/notify/notify.d.ts +1 -1
  111. package/dist/notify/notify.d.ts.map +1 -1
  112. package/dist/notify/notify.js +1 -1
  113. package/dist/snapshot/cli-args.d.ts +2 -2
  114. package/dist/snapshot/cli-args.d.ts.map +1 -1
  115. package/dist/snapshot/cli-args.js +21 -5
  116. package/dist/snapshot/cli-args.js.map +1 -1
  117. package/dist/snapshot/runner-events.d.ts +7 -2
  118. package/dist/snapshot/runner-events.d.ts.map +1 -1
  119. package/dist/snapshot/runner-events.js +137 -19
  120. package/dist/snapshot/runner-events.js.map +1 -1
  121. package/dist/snapshot/structured-output.d.ts +1 -1
  122. package/dist/snapshot/structured-output.d.ts.map +1 -1
  123. package/dist/snapshot/structured-output.js +20 -2
  124. package/dist/snapshot/structured-output.js.map +1 -1
  125. package/dist/steering/flow-prompt.d.ts +4 -4
  126. package/dist/steering/flow-prompt.d.ts.map +1 -1
  127. package/dist/steering/flow-prompt.js +18 -37
  128. package/dist/steering/flow-prompt.js.map +1 -1
  129. package/dist/steering/sliding-prompt.d.ts.map +1 -1
  130. package/dist/steering/sliding-prompt.js +8 -7
  131. package/dist/steering/sliding-prompt.js.map +1 -1
  132. package/dist/steering/tool-utils.d.ts +31 -8
  133. package/dist/steering/tool-utils.d.ts.map +1 -1
  134. package/dist/steering/tool-utils.js +63 -30
  135. package/dist/steering/tool-utils.js.map +1 -1
  136. package/dist/tools/ask-user.d.ts +2 -19
  137. package/dist/tools/ask-user.d.ts.map +1 -1
  138. package/dist/tools/ask-user.js +14 -38
  139. package/dist/tools/ask-user.js.map +1 -1
  140. package/dist/tools/timed-bash.d.ts +1 -1
  141. package/dist/tools/timed-bash.d.ts.map +1 -1
  142. package/dist/tools/timed-bash.js +11 -9
  143. package/dist/tools/timed-bash.js.map +1 -1
  144. package/dist/tools/trace.d.ts +34 -0
  145. package/dist/tools/trace.d.ts.map +1 -0
  146. package/dist/tools/trace.js +180 -0
  147. package/dist/tools/trace.js.map +1 -0
  148. package/dist/tools/web-ops.d.ts +85 -0
  149. package/dist/tools/web-ops.d.ts.map +1 -0
  150. package/dist/tools/{web-tool.js → web-ops.js} +51 -127
  151. package/dist/tools/web-ops.js.map +1 -0
  152. package/dist/tui/flow-colors.d.ts +1 -0
  153. package/dist/tui/flow-colors.d.ts.map +1 -1
  154. package/dist/tui/flow-colors.js +2 -2
  155. package/dist/tui/flow-colors.js.map +1 -1
  156. package/dist/tui/render-utils.d.ts.map +1 -1
  157. package/dist/tui/render-utils.js +2 -4
  158. package/dist/tui/render-utils.js.map +1 -1
  159. package/dist/tui/render.d.ts +41 -1
  160. package/dist/tui/render.d.ts.map +1 -1
  161. package/dist/tui/render.js +724 -189
  162. package/dist/tui/render.js.map +1 -1
  163. package/dist/tui/scramble/algorithm.d.ts +4 -2
  164. package/dist/tui/scramble/algorithm.d.ts.map +1 -1
  165. package/dist/tui/scramble/algorithm.js +44 -12
  166. package/dist/tui/scramble/algorithm.js.map +1 -1
  167. package/dist/tui/scramble/constants.d.ts +3 -0
  168. package/dist/tui/scramble/constants.d.ts.map +1 -1
  169. package/dist/tui/scramble/constants.js +4 -1
  170. package/dist/tui/scramble/constants.js.map +1 -1
  171. package/dist/tui/scramble/index.d.ts +3 -2
  172. package/dist/tui/scramble/index.d.ts.map +1 -1
  173. package/dist/tui/scramble/index.js +2 -2
  174. package/dist/tui/scramble/index.js.map +1 -1
  175. package/dist/tui/scramble/manager.d.ts +2 -2
  176. package/dist/tui/scramble/manager.d.ts.map +1 -1
  177. package/dist/tui/scramble/manager.js +37 -20
  178. package/dist/tui/scramble/manager.js.map +1 -1
  179. package/dist/tui/scramble/utils.js +1 -1
  180. package/dist/tui/scramble/utils.js.map +1 -1
  181. package/dist/types/flow.d.ts +17 -1
  182. package/dist/types/flow.d.ts.map +1 -1
  183. package/dist/types/flow.js +11 -2
  184. package/dist/types/flow.js.map +1 -1
  185. package/dist/types/output.d.ts +11 -36
  186. package/dist/types/output.d.ts.map +1 -1
  187. package/dist/types/output.js +1 -1
  188. package/dist/types/ui.d.ts +1 -1
  189. package/dist/types/ui.d.ts.map +1 -1
  190. package/package.json +10 -10
  191. package/dist/core/executor.d.ts.map +0 -1
  192. package/dist/core/executor.js +0 -378
  193. package/dist/core/executor.js.map +0 -1
  194. package/dist/core/flow.d.ts.map +0 -1
  195. package/dist/core/flow.js.map +0 -1
  196. package/dist/core/session-mode.d.ts +0 -11
  197. package/dist/core/session-mode.d.ts.map +0 -1
  198. package/dist/core/session-mode.js +0 -26
  199. package/dist/core/session-mode.js.map +0 -1
  200. package/dist/core/transitions.d.ts +0 -39
  201. package/dist/core/transitions.d.ts.map +0 -1
  202. package/dist/core/transitions.js +0 -59
  203. package/dist/core/transitions.js.map +0 -1
  204. package/dist/flow/perform-warp.d.ts +0 -28
  205. package/dist/flow/perform-warp.d.ts.map +0 -1
  206. package/dist/flow/perform-warp.js +0 -127
  207. package/dist/flow/perform-warp.js.map +0 -1
  208. package/dist/flow/warp-command.d.ts +0 -8
  209. package/dist/flow/warp-command.d.ts.map +0 -1
  210. package/dist/flow/warp-command.js +0 -144
  211. package/dist/flow/warp-command.js.map +0 -1
  212. package/dist/flow/warp-utils.d.ts +0 -11
  213. package/dist/flow/warp-utils.d.ts.map +0 -1
  214. package/dist/flow/warp-utils.js +0 -187
  215. package/dist/flow/warp-utils.js.map +0 -1
  216. package/dist/snapshot/index.d.ts +0 -2
  217. package/dist/snapshot/index.d.ts.map +0 -1
  218. package/dist/snapshot/index.js +0 -2
  219. package/dist/snapshot/index.js.map +0 -1
  220. package/dist/snapshot/reasoning-strip.d.ts +0 -22
  221. package/dist/snapshot/reasoning-strip.d.ts.map +0 -1
  222. package/dist/snapshot/reasoning-strip.js +0 -58
  223. package/dist/snapshot/reasoning-strip.js.map +0 -1
  224. package/dist/snapshot/snapshot.d.ts +0 -77
  225. package/dist/snapshot/snapshot.d.ts.map +0 -1
  226. package/dist/snapshot/snapshot.js +0 -1791
  227. package/dist/snapshot/snapshot.js.map +0 -1
  228. package/dist/tools/web-tool.d.ts +0 -46
  229. package/dist/tools/web-tool.d.ts.map +0 -1
  230. package/dist/tools/web-tool.js.map +0 -1
  231. /package/dist/{core → flow}/agents.d.ts +0 -0
  232. /package/dist/{core → flow}/session-registry.d.ts +0 -0
  233. /package/dist/{core → flow}/session-registry.js +0 -0
@@ -1,14 +1,31 @@
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 { Text, TruncatedText } from "@mariozechner/pi-tui";
5
- import type { BatchTheme } from "./constants.js";
6
- export declare function renderBatchCall(args: Record<string, unknown>, theme: BatchTheme): Text;
9
+ import { Container } from "@earendil-works/pi-tui";
10
+ import type { BatchTheme, OpResult } from "./constants.js";
11
+ export declare function renderBatchCall(_args: Record<string, unknown>, _theme: BatchTheme): Container;
7
12
  export declare function renderBatchResult(result: {
8
13
  content?: Array<{
9
14
  type: string;
10
15
  text?: string;
11
16
  }>;
12
- }, expanded: boolean, _theme: BatchTheme, args?: Record<string, unknown>): Text | TruncatedText;
13
- export declare function renderBatchReadCall(args: Record<string, unknown>, theme: BatchTheme): Text;
17
+ details?: {
18
+ results?: OpResult[];
19
+ };
20
+ }, expanded: boolean, theme: BatchTheme, args?: Record<string, unknown>): any;
21
+ export declare function renderBatchReadResult(result: {
22
+ content?: Array<{
23
+ type: string;
24
+ text?: string;
25
+ }>;
26
+ details?: {
27
+ results?: OpResult[];
28
+ };
29
+ }, expanded: boolean, theme: BatchTheme, args?: Record<string, unknown>): any;
30
+ export declare function renderBatchReadCall(_args: Record<string, unknown>, _theme: BatchTheme): Container;
14
31
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/batch/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,gBAAgB,CAAC;AAO3D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAGtF;AAED,wBAAgB,iBAAiB,CAChC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,EAC5D,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,UAAU,EAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,GAAG,aAAa,CAqBtB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAG1F"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/batch/render.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAuB,MAAM,wBAAwB,CAAC;AAGxE,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAwB3D,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,CAG7F;AAgVD,wBAAgB,iBAAiB,CAChC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAA;CAAE,EAChG,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,UAAU,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,GAAG,CAML;AAED,wBAAgB,qBAAqB,CACpC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAA;CAAE,EAChG,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,UAAU,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,GAAG,CAML;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,CAGjG"}
@@ -1,26 +1,345 @@
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 { 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);
12
+ import { italic } from "../tui/render-utils.js";
13
+ /** Reuse a cached root container from args.state so the TUI host's reference stays valid. */
14
+ function reuseRootContainer(args, fresh) {
15
+ const state = args?.state;
16
+ if (!state)
17
+ return fresh;
18
+ if (!state.__rootContainer) {
19
+ const root = new Container();
20
+ root.addChild(fresh);
21
+ state.__rootContainer = root;
22
+ return root;
23
+ }
24
+ const root = state.__rootContainer;
25
+ root.clear();
26
+ root.addChild(fresh);
27
+ root.invalidate();
28
+ return root;
29
+ }
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
+ }
10
68
  }
11
- export function renderBatchCall(args, theme) {
12
- const summary = formatBatchCall(args);
13
- return new Text(theme.fg("muted", "batch ") + theme.fg("accent", summary), 0, 0);
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
+ }
14
92
  }
15
- 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) {
16
333
  const fullText = result.content?.find((c) => c.type === "text")?.text ?? "";
17
334
  const canAnimate = !!args?.invalidate && !!args?.state;
18
335
  if (!canAnimate) {
19
336
  if (!expanded) {
20
337
  const summary = fullText.split("\n")[0] ?? "";
21
- return new TruncatedText(scrambleManager.renderStatic(summary), 0, 0);
338
+ const fresh = new TruncatedText(scrambleManager.renderStatic(summary), 0, 0);
339
+ return reuseRootContainer(args, fresh);
22
340
  }
23
- return new Text(scrambleManager.renderStatic(fullText), 0, 0);
341
+ const fresh = new Text(scrambleManager.renderStatic(fullText), 0, 0);
342
+ return reuseRootContainer(args, fresh);
24
343
  }
25
344
  const now = Date.now();
26
345
  const id = args?.toolCallId || args?.id || "batch";
@@ -28,14 +347,33 @@ export function renderBatchResult(result, expanded, _theme, args) {
28
347
  const summary = fullText.split("\n")[0] ?? "";
29
348
  const scrambled = scrambleManager.updateText(id, "result", stripAnsi(summary), now, false).content;
30
349
  runScrambleTimer(args, id);
31
- return new TruncatedText(scrambled, 0, 0);
350
+ const fresh = new TruncatedText(scrambled, 0, 0);
351
+ return reuseRootContainer(args, fresh);
32
352
  }
33
353
  const scrambled = scrambleManager.updateText(id, "result", stripAnsi(fullText), now, false).content;
34
354
  runScrambleTimer(args, id);
35
- return new Text(scrambled, 0, 0);
355
+ const fresh = new Text(scrambled, 0, 0);
356
+ return reuseRootContainer(args, fresh);
357
+ }
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);
36
374
  }
37
- export function renderBatchReadCall(args, theme) {
38
- const summary = formatBatchCall(args);
39
- return new Text(theme.fg("muted", "batch_read ") + theme.fg("accent", summary), 0, 0);
375
+ export function renderBatchReadCall(_args, _theme) {
376
+ // Call frame is invisible — result frame shows tool name + stats.
377
+ return new Container();
40
378
  }
41
379
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/batch/render.ts"],"names":[],"mappings":"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"}
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;AAsEH,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,18 +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 ?? ""}`;
84
+ case "patch": {
85
+ const patchPreview = op.c ? ` (${op.c.split("\n")[0]}…)` : "";
86
+ return `patch${patchPreview}`;
87
+ }
68
88
  default:
69
- return `${op.o} ${shortPath}`;
89
+ return op.p ? `${op.o} ${shortPath}` : `${op.o}`;
70
90
  }
71
91
  }
72
92
  export function formatBatchOpsSummary(args) {
73
93
  const ops = extractBatchOps(args);
74
- if (ops.length === 0)
94
+ const webOps = extractWebOps(args);
95
+ const allOps = [...ops, ...webOps];
96
+ if (allOps.length === 0)
75
97
  return "batch (empty)";
76
98
  const parts = [];
77
99
  let prev = "";
78
100
  let count = 0;
79
- for (const op of ops) {
101
+ for (const op of allOps) {
80
102
  const summary = formatOpSummary(op);
81
103
  if (summary === prev) {
82
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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"}