pi-agent-flow 1.8.40 → 2.0.1

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 (331) hide show
  1. package/README.md +33 -37
  2. package/agents/audit.md +21 -22
  3. package/agents/build.md +23 -22
  4. package/agents/craft.md +23 -27
  5. package/agents/debug.md +24 -28
  6. package/agents/ideas.md +21 -101
  7. package/agents/scout.md +20 -19
  8. package/dist/batch/batch-bash.d.ts +2 -2
  9. package/dist/batch/batch-bash.d.ts.map +1 -1
  10. package/dist/batch/batch-bash.js +30 -7
  11. package/dist/batch/batch-bash.js.map +1 -1
  12. package/dist/batch/constants.d.ts +31 -5
  13. package/dist/batch/constants.d.ts.map +1 -1
  14. package/dist/batch/constants.js +50 -3
  15. package/dist/batch/constants.js.map +1 -1
  16. package/dist/batch/execute.d.ts +0 -1
  17. package/dist/batch/execute.d.ts.map +1 -1
  18. package/dist/batch/execute.js +210 -6
  19. package/dist/batch/execute.js.map +1 -1
  20. package/dist/batch/fuzzy-edit.d.ts +0 -6
  21. package/dist/batch/fuzzy-edit.d.ts.map +1 -1
  22. package/dist/batch/fuzzy-edit.js +1 -1
  23. package/dist/batch/fuzzy-edit.js.map +1 -1
  24. package/dist/batch/index.d.ts.map +1 -1
  25. package/dist/batch/index.js +87 -16
  26. package/dist/batch/index.js.map +1 -1
  27. package/dist/batch/render.d.ts +0 -1
  28. package/dist/batch/render.d.ts.map +1 -1
  29. package/dist/batch/render.js +7 -101
  30. package/dist/batch/render.js.map +1 -1
  31. package/dist/batch/shell-compress.d.ts +25 -0
  32. package/dist/batch/shell-compress.d.ts.map +1 -0
  33. package/dist/batch/shell-compress.js +602 -0
  34. package/dist/batch/shell-compress.js.map +1 -0
  35. package/dist/batch/summary.d.ts +5 -0
  36. package/dist/batch/summary.d.ts.map +1 -0
  37. package/dist/batch/summary.js +101 -0
  38. package/dist/batch/summary.js.map +1 -0
  39. package/dist/batch/symbols.d.ts.map +1 -1
  40. package/dist/batch/symbols.js +12 -7
  41. package/dist/batch/symbols.js.map +1 -1
  42. package/dist/{config.d.ts → config/config.d.ts} +39 -2
  43. package/dist/config/config.d.ts.map +1 -0
  44. package/dist/{config.js → config/config.js} +220 -9
  45. package/dist/config/config.js.map +1 -0
  46. package/dist/config/log.d.ts +27 -0
  47. package/dist/config/log.d.ts.map +1 -0
  48. package/dist/config/log.js +104 -0
  49. package/dist/config/log.js.map +1 -0
  50. package/dist/config/models.d.ts +2 -0
  51. package/dist/config/models.d.ts.map +1 -0
  52. package/dist/config/models.js +49 -0
  53. package/dist/config/models.js.map +1 -0
  54. package/dist/{settings-resolver.d.ts → config/settings-resolver.d.ts} +9 -2
  55. package/dist/config/settings-resolver.d.ts.map +1 -0
  56. package/dist/config/settings-resolver.js +275 -0
  57. package/dist/config/settings-resolver.js.map +1 -0
  58. package/dist/core/agents.d.ts.map +1 -0
  59. package/dist/{agents.js → core/agents.js} +13 -12
  60. package/dist/core/agents.js.map +1 -0
  61. package/dist/core/delegation.d.ts +24 -0
  62. package/dist/core/delegation.d.ts.map +1 -0
  63. package/dist/core/delegation.js +48 -0
  64. package/dist/core/delegation.js.map +1 -0
  65. package/dist/core/depth.d.ts.map +1 -0
  66. package/dist/{depth.js → core/depth.js} +9 -8
  67. package/dist/core/depth.js.map +1 -0
  68. package/dist/{executor.d.ts → core/executor.d.ts} +18 -3
  69. package/dist/core/executor.d.ts.map +1 -0
  70. package/dist/{executor.js → core/executor.js} +53 -14
  71. package/dist/core/executor.js.map +1 -0
  72. package/dist/{flow.d.ts → core/flow.d.ts} +13 -1
  73. package/dist/core/flow.d.ts.map +1 -0
  74. package/dist/{flow.js → core/flow.js} +125 -64
  75. package/dist/core/flow.js.map +1 -0
  76. package/dist/{session-mode.d.ts → core/session-mode.d.ts} +2 -1
  77. package/dist/core/session-mode.d.ts.map +1 -0
  78. package/dist/{session-mode.js → core/session-mode.js} +2 -1
  79. package/dist/core/session-mode.js.map +1 -0
  80. package/dist/core/session-registry.d.ts +16 -0
  81. package/dist/core/session-registry.d.ts.map +1 -0
  82. package/dist/core/session-registry.js +30 -0
  83. package/dist/core/session-registry.js.map +1 -0
  84. package/dist/core/transitions.d.ts.map +1 -0
  85. package/dist/{transitions.js → core/transitions.js} +1 -1
  86. package/dist/core/transitions.js.map +1 -0
  87. package/dist/flow/auto-warp.d.ts +12 -0
  88. package/dist/flow/auto-warp.d.ts.map +1 -0
  89. package/dist/flow/auto-warp.js +29 -0
  90. package/dist/flow/auto-warp.js.map +1 -0
  91. package/dist/flow/command.d.ts +8 -0
  92. package/dist/flow/command.d.ts.map +1 -0
  93. package/dist/flow/command.js +194 -0
  94. package/dist/flow/command.js.map +1 -0
  95. package/dist/flow/continuation.d.ts +16 -0
  96. package/dist/flow/continuation.d.ts.map +1 -0
  97. package/dist/flow/continuation.js +188 -0
  98. package/dist/flow/continuation.js.map +1 -0
  99. package/dist/flow/index.d.ts +18 -0
  100. package/dist/flow/index.d.ts.map +1 -0
  101. package/dist/flow/index.js +25 -0
  102. package/dist/flow/index.js.map +1 -0
  103. package/dist/flow/loop-command.d.ts +8 -0
  104. package/dist/flow/loop-command.d.ts.map +1 -0
  105. package/dist/flow/loop-command.js +99 -0
  106. package/dist/flow/loop-command.js.map +1 -0
  107. package/dist/flow/loop-templates.d.ts +7 -0
  108. package/dist/flow/loop-templates.d.ts.map +1 -0
  109. package/dist/flow/loop-templates.js +38 -0
  110. package/dist/flow/loop-templates.js.map +1 -0
  111. package/dist/flow/loop.d.ts +19 -0
  112. package/dist/flow/loop.d.ts.map +1 -0
  113. package/dist/flow/loop.js +95 -0
  114. package/dist/flow/loop.js.map +1 -0
  115. package/dist/flow/perform-warp.d.ts +28 -0
  116. package/dist/flow/perform-warp.d.ts.map +1 -0
  117. package/dist/flow/perform-warp.js +127 -0
  118. package/dist/flow/perform-warp.js.map +1 -0
  119. package/dist/flow/settings-command.d.ts +51 -0
  120. package/dist/flow/settings-command.d.ts.map +1 -0
  121. package/dist/flow/settings-command.js +937 -0
  122. package/dist/flow/settings-command.js.map +1 -0
  123. package/dist/flow/store.d.ts +26 -0
  124. package/dist/flow/store.d.ts.map +1 -0
  125. package/dist/flow/store.js +166 -0
  126. package/dist/flow/store.js.map +1 -0
  127. package/dist/flow/template-shared.d.ts +9 -0
  128. package/dist/flow/template-shared.d.ts.map +1 -0
  129. package/dist/flow/template-shared.js +13 -0
  130. package/dist/flow/template-shared.js.map +1 -0
  131. package/dist/flow/template-strings.d.ts +8 -0
  132. package/dist/flow/template-strings.d.ts.map +1 -0
  133. package/dist/flow/template-strings.js +36 -0
  134. package/dist/flow/template-strings.js.map +1 -0
  135. package/dist/flow/types.d.ts +61 -0
  136. package/dist/flow/types.d.ts.map +1 -0
  137. package/dist/flow/types.js +5 -0
  138. package/dist/flow/types.js.map +1 -0
  139. package/dist/flow/warp-command.d.ts +8 -0
  140. package/dist/flow/warp-command.d.ts.map +1 -0
  141. package/dist/flow/warp-command.js +144 -0
  142. package/dist/flow/warp-command.js.map +1 -0
  143. package/dist/flow/warp-utils.d.ts +11 -0
  144. package/dist/flow/warp-utils.d.ts.map +1 -0
  145. package/dist/flow/warp-utils.js +187 -0
  146. package/dist/flow/warp-utils.js.map +1 -0
  147. package/dist/index.d.ts +4 -1
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +115 -31
  150. package/dist/index.js.map +1 -1
  151. package/dist/{notify-state.d.ts → notify/notify-state.d.ts} +2 -1
  152. package/dist/notify/notify-state.d.ts.map +1 -0
  153. package/dist/notify/notify-state.js.map +1 -0
  154. package/dist/notify/notify.d.ts.map +1 -0
  155. package/dist/{notify.js → notify/notify.js} +3 -2
  156. package/dist/notify/notify.js.map +1 -0
  157. package/dist/{cli-args.d.ts → snapshot/cli-args.d.ts} +4 -2
  158. package/dist/snapshot/cli-args.d.ts.map +1 -0
  159. package/dist/{cli-args.js → snapshot/cli-args.js} +13 -1
  160. package/dist/snapshot/cli-args.js.map +1 -0
  161. package/dist/snapshot/index.d.ts +2 -0
  162. package/dist/snapshot/index.d.ts.map +1 -0
  163. package/dist/snapshot/index.js +2 -0
  164. package/dist/snapshot/index.js.map +1 -0
  165. package/dist/{reasoning-strip.d.ts → snapshot/reasoning-strip.d.ts} +0 -4
  166. package/dist/snapshot/reasoning-strip.d.ts.map +1 -0
  167. package/dist/{reasoning-strip.js → snapshot/reasoning-strip.js} +2 -2
  168. package/dist/snapshot/reasoning-strip.js.map +1 -0
  169. package/dist/snapshot/runner-events.d.ts.map +1 -0
  170. package/dist/{runner-events.js → snapshot/runner-events.js} +1 -1
  171. package/dist/snapshot/runner-events.js.map +1 -0
  172. package/dist/{snapshot.d.ts → snapshot/snapshot.d.ts} +24 -18
  173. package/dist/snapshot/snapshot.d.ts.map +1 -0
  174. package/dist/snapshot/snapshot.js +1791 -0
  175. package/dist/snapshot/snapshot.js.map +1 -0
  176. package/dist/{structured-output.d.ts → snapshot/structured-output.d.ts} +1 -1
  177. package/dist/snapshot/structured-output.d.ts.map +1 -0
  178. package/dist/snapshot/structured-output.js.map +1 -0
  179. package/dist/{flow-prompt.d.ts → steering/flow-prompt.d.ts} +2 -2
  180. package/dist/steering/flow-prompt.d.ts.map +1 -0
  181. package/dist/{flow-prompt.js → steering/flow-prompt.js} +1 -1
  182. package/dist/steering/flow-prompt.js.map +1 -0
  183. package/dist/{sliding-prompt.d.ts → steering/sliding-prompt.d.ts} +8 -7
  184. package/dist/steering/sliding-prompt.d.ts.map +1 -0
  185. package/dist/{sliding-prompt.js → steering/sliding-prompt.js} +18 -64
  186. package/dist/steering/sliding-prompt.js.map +1 -0
  187. package/dist/{tool-utils.d.ts → steering/tool-utils.d.ts} +1 -0
  188. package/dist/steering/tool-utils.d.ts.map +1 -0
  189. package/dist/{tool-utils.js → steering/tool-utils.js} +10 -3
  190. package/dist/steering/tool-utils.js.map +1 -0
  191. package/dist/{ask-user.d.ts → tools/ask-user.d.ts} +3 -15
  192. package/dist/tools/ask-user.d.ts.map +1 -0
  193. package/dist/tools/ask-user.js +778 -0
  194. package/dist/tools/ask-user.js.map +1 -0
  195. package/dist/{timed-bash.d.ts → tools/timed-bash.d.ts} +2 -7
  196. package/dist/tools/timed-bash.d.ts.map +1 -0
  197. package/dist/{timed-bash.js → tools/timed-bash.js} +11 -2
  198. package/dist/tools/timed-bash.js.map +1 -0
  199. package/dist/{web-tool.d.ts → tools/web-tool.d.ts} +1 -1
  200. package/dist/tools/web-tool.d.ts.map +1 -0
  201. package/dist/{web-tool.js → tools/web-tool.js} +8 -7
  202. package/dist/tools/web-tool.js.map +1 -0
  203. package/dist/tui/flow-colors.d.ts +55 -0
  204. package/dist/tui/flow-colors.d.ts.map +1 -0
  205. package/dist/tui/flow-colors.js +22 -0
  206. package/dist/tui/flow-colors.js.map +1 -0
  207. package/dist/{render-utils.d.ts → tui/render-utils.d.ts} +6 -2
  208. package/dist/tui/render-utils.d.ts.map +1 -0
  209. package/dist/{render-utils.js → tui/render-utils.js} +40 -12
  210. package/dist/tui/render-utils.js.map +1 -0
  211. package/dist/tui/render.d.ts +21 -0
  212. package/dist/tui/render.d.ts.map +1 -0
  213. package/dist/tui/render.js +786 -0
  214. package/dist/tui/render.js.map +1 -0
  215. package/dist/tui/scramble/algorithm.d.ts +7 -0
  216. package/dist/tui/scramble/algorithm.d.ts.map +1 -0
  217. package/dist/tui/scramble/algorithm.js +227 -0
  218. package/dist/tui/scramble/algorithm.js.map +1 -0
  219. package/dist/tui/scramble/constants.d.ts +99 -0
  220. package/dist/tui/scramble/constants.d.ts.map +1 -0
  221. package/dist/tui/scramble/constants.js +101 -0
  222. package/dist/tui/scramble/constants.js.map +1 -0
  223. package/dist/tui/scramble/index.d.ts +6 -0
  224. package/dist/tui/scramble/index.d.ts.map +1 -0
  225. package/dist/tui/scramble/index.js +6 -0
  226. package/dist/tui/scramble/index.js.map +1 -0
  227. package/dist/tui/scramble/manager.d.ts +44 -0
  228. package/dist/tui/scramble/manager.d.ts.map +1 -0
  229. package/dist/tui/scramble/manager.js +899 -0
  230. package/dist/tui/scramble/manager.js.map +1 -0
  231. package/dist/tui/scramble/utils.d.ts +18 -0
  232. package/dist/tui/scramble/utils.d.ts.map +1 -0
  233. package/dist/tui/scramble/utils.js +145 -0
  234. package/dist/tui/scramble/utils.js.map +1 -0
  235. package/dist/tui/single-select-layout.d.ts +17 -0
  236. package/dist/tui/single-select-layout.d.ts.map +1 -0
  237. package/dist/{single-select-layout.js → tui/single-select-layout.js} +8 -25
  238. package/dist/tui/single-select-layout.js.map +1 -0
  239. package/dist/types/flow.d.ts +112 -0
  240. package/dist/types/flow.d.ts.map +1 -0
  241. package/dist/{types.js → types/flow.js} +3 -54
  242. package/dist/types/flow.js.map +1 -0
  243. package/dist/types/index.d.ts +8 -0
  244. package/dist/types/index.d.ts.map +1 -0
  245. package/dist/types/index.js +7 -0
  246. package/dist/types/index.js.map +1 -0
  247. package/dist/types/output.d.ts +110 -0
  248. package/dist/types/output.d.ts.map +1 -0
  249. package/dist/types/output.js +5 -0
  250. package/dist/types/output.js.map +1 -0
  251. package/dist/types/ui.d.ts +24 -0
  252. package/dist/types/ui.d.ts.map +1 -0
  253. package/dist/types/ui.js +55 -0
  254. package/dist/types/ui.js.map +1 -0
  255. package/package.json +1 -1
  256. package/dist/agents.d.ts.map +0 -1
  257. package/dist/agents.js.map +0 -1
  258. package/dist/ask-user.d.ts.map +0 -1
  259. package/dist/ask-user.js +0 -1405
  260. package/dist/ask-user.js.map +0 -1
  261. package/dist/batch.d.ts +0 -12
  262. package/dist/batch.d.ts.map +0 -1
  263. package/dist/batch.js +0 -11
  264. package/dist/batch.js.map +0 -1
  265. package/dist/cli-args.d.ts.map +0 -1
  266. package/dist/cli-args.js.map +0 -1
  267. package/dist/config.d.ts.map +0 -1
  268. package/dist/config.js.map +0 -1
  269. package/dist/depth.d.ts.map +0 -1
  270. package/dist/depth.js.map +0 -1
  271. package/dist/executor.d.ts.map +0 -1
  272. package/dist/executor.js.map +0 -1
  273. package/dist/flow-prompt.d.ts.map +0 -1
  274. package/dist/flow-prompt.js.map +0 -1
  275. package/dist/flow.d.ts.map +0 -1
  276. package/dist/flow.js.map +0 -1
  277. package/dist/notify-state.d.ts.map +0 -1
  278. package/dist/notify-state.js.map +0 -1
  279. package/dist/notify.d.ts.map +0 -1
  280. package/dist/notify.js.map +0 -1
  281. package/dist/reasoning-strip.d.ts.map +0 -1
  282. package/dist/reasoning-strip.js.map +0 -1
  283. package/dist/render-utils.d.ts.map +0 -1
  284. package/dist/render-utils.js.map +0 -1
  285. package/dist/render.d.ts +0 -24
  286. package/dist/render.d.ts.map +0 -1
  287. package/dist/render.js +0 -592
  288. package/dist/render.js.map +0 -1
  289. package/dist/runner-events.d.ts.map +0 -1
  290. package/dist/runner-events.js.map +0 -1
  291. package/dist/scramble.d.ts +0 -183
  292. package/dist/scramble.d.ts.map +0 -1
  293. package/dist/scramble.js +0 -2478
  294. package/dist/scramble.js.map +0 -1
  295. package/dist/session-mode.d.ts.map +0 -1
  296. package/dist/session-mode.js.map +0 -1
  297. package/dist/settings-resolver.d.ts.map +0 -1
  298. package/dist/settings-resolver.js +0 -148
  299. package/dist/settings-resolver.js.map +0 -1
  300. package/dist/single-select-layout.d.ts +0 -20
  301. package/dist/single-select-layout.d.ts.map +0 -1
  302. package/dist/single-select-layout.js.map +0 -1
  303. package/dist/sliding-prompt.d.ts.map +0 -1
  304. package/dist/sliding-prompt.js.map +0 -1
  305. package/dist/snapshot.d.ts.map +0 -1
  306. package/dist/snapshot.js +0 -797
  307. package/dist/snapshot.js.map +0 -1
  308. package/dist/spec-mode.d.ts +0 -13
  309. package/dist/spec-mode.d.ts.map +0 -1
  310. package/dist/spec-mode.js +0 -90
  311. package/dist/spec-mode.js.map +0 -1
  312. package/dist/structured-output.d.ts.map +0 -1
  313. package/dist/structured-output.js.map +0 -1
  314. package/dist/timed-bash.d.ts.map +0 -1
  315. package/dist/timed-bash.js.map +0 -1
  316. package/dist/tool-utils.d.ts.map +0 -1
  317. package/dist/tool-utils.js.map +0 -1
  318. package/dist/transitions.d.ts.map +0 -1
  319. package/dist/transitions.js.map +0 -1
  320. package/dist/types.d.ts +0 -224
  321. package/dist/types.d.ts.map +0 -1
  322. package/dist/types.js.map +0 -1
  323. package/dist/web-tool.d.ts.map +0 -1
  324. package/dist/web-tool.js.map +0 -1
  325. /package/dist/{agents.d.ts → core/agents.d.ts} +0 -0
  326. /package/dist/{depth.d.ts → core/depth.d.ts} +0 -0
  327. /package/dist/{transitions.d.ts → core/transitions.d.ts} +0 -0
  328. /package/dist/{notify-state.js → notify/notify-state.js} +0 -0
  329. /package/dist/{notify.d.ts → notify/notify.d.ts} +0 -0
  330. /package/dist/{runner-events.d.ts → snapshot/runner-events.d.ts} +0 -0
  331. /package/dist/{structured-output.js → snapshot/structured-output.js} +0 -0
@@ -13,6 +13,7 @@ import { parseFrontmatter } from "@mariozechner/pi-coding-agent";
13
13
  import * as fs from "node:fs";
14
14
  import * as os from "node:os";
15
15
  import * as path from "node:path";
16
+ import { logWarn } from "../config/log.js";
16
17
  /** Determine the model tier for a given flow name. */
17
18
  export function getFlowTier(flowName) {
18
19
  const normalized = flowName.toLowerCase().trim();
@@ -53,7 +54,7 @@ function getBundledFlowsDir() {
53
54
  if (import.meta.url) {
54
55
  const pluginDir = path.dirname(new URL(import.meta.url).pathname);
55
56
  // Check same directory first, then parent (for src/ layout)
56
- for (const base of [pluginDir, path.dirname(pluginDir)]) {
57
+ for (const base of [pluginDir, path.dirname(pluginDir), path.dirname(path.dirname(pluginDir))]) {
57
58
  const dir = path.join(base, "agents");
58
59
  if (fs.existsSync(dir))
59
60
  return dir;
@@ -64,7 +65,7 @@ function getBundledFlowsDir() {
64
65
  // Method 2: __dirname (CommonJS / jiti)
65
66
  try {
66
67
  if (typeof __dirname !== "undefined") {
67
- for (const base of [__dirname, path.dirname(__dirname)]) {
68
+ for (const base of [__dirname, path.dirname(__dirname), path.dirname(path.dirname(__dirname))]) {
68
69
  const dir = path.join(base, "agents");
69
70
  if (fs.existsSync(dir))
70
71
  return dir;
@@ -111,7 +112,7 @@ function parseFlowFile(filePath, source) {
111
112
  }
112
113
  catch (err) {
113
114
  const message = err instanceof Error ? err.message : String(err);
114
- console.warn(`[pi-agent-flow] Skipping invalid flow file "${filePath}": ${message}`);
115
+ logWarn(`[pi-agent-flow] Skipping invalid flow file "${filePath}": ${message}`);
115
116
  return null;
116
117
  }
117
118
  const frontmatter = parsed.frontmatter ?? {};
@@ -120,9 +121,9 @@ function parseFlowFile(filePath, source) {
120
121
  const description = typeof frontmatter.description === "string" ? frontmatter.description.trim() : "";
121
122
  if (!name || !description) {
122
123
  if (!name)
123
- console.warn(`[pi-agent-flow] Skipping flow file "${filePath}": missing or empty 'name' field.`);
124
+ logWarn(`[pi-agent-flow] Skipping flow file "${filePath}": missing or empty 'name' field.`);
124
125
  if (!description)
125
- console.warn(`[pi-agent-flow] Skipping flow file "${filePath}": missing or empty 'description' field.`);
126
+ logWarn(`[pi-agent-flow] Skipping flow file "${filePath}": missing or empty 'description' field.`);
126
127
  return null;
127
128
  }
128
129
  // Warn about unknown frontmatter keys
@@ -132,14 +133,14 @@ function parseFlowFile(filePath, source) {
132
133
  ]);
133
134
  for (const key of Object.keys(frontmatter)) {
134
135
  if (!knownKeys.has(key)) {
135
- console.warn(`[pi-agent-flow] Unknown frontmatter key "${key}" in "${filePath}". This field will be ignored.`);
136
+ logWarn(`[pi-agent-flow] Unknown frontmatter key "${key}" in "${filePath}". This field will be ignored.`);
136
137
  }
137
138
  }
138
139
  let tools;
139
140
  if (typeof frontmatter.tools === "string") {
140
141
  const parsedTools = frontmatter.tools
141
142
  .split(",")
142
- .map((t) => t.trim())
143
+ .flatMap((t) => t.trim().split(/\s+/))
143
144
  .filter(Boolean);
144
145
  if (parsedTools.length > 0)
145
146
  tools = parsedTools;
@@ -147,13 +148,13 @@ function parseFlowFile(filePath, source) {
147
148
  else if (Array.isArray(frontmatter.tools)) {
148
149
  const parsedTools = frontmatter.tools
149
150
  .filter((t) => typeof t === "string")
150
- .map((t) => t.trim())
151
+ .flatMap((t) => t.trim().split(/\s+/))
151
152
  .filter(Boolean);
152
153
  if (parsedTools.length > 0)
153
154
  tools = parsedTools;
154
155
  }
155
156
  else if (frontmatter.tools !== undefined) {
156
- console.warn(`[pi-agent-flow] Ignoring invalid tools field in "${filePath}". Expected a comma-separated string or string array.`);
157
+ logWarn(`[pi-agent-flow] Ignoring invalid tools field in "${filePath}". Expected a comma-separated string or string array.`);
157
158
  }
158
159
  let maxDepth;
159
160
  if (typeof frontmatter.maxDepth === "number") {
@@ -177,11 +178,11 @@ function parseFlowFile(filePath, source) {
177
178
  inheritContext = false;
178
179
  }
179
180
  else {
180
- console.warn(`[pi-agent-flow] Ignoring invalid inheritContext value "${frontmatter.inheritContext}" in "${filePath}". Expected true/false.`);
181
+ logWarn(`[pi-agent-flow] Ignoring invalid inheritContext value "${frontmatter.inheritContext}" in "${filePath}". Expected true/false.`);
181
182
  }
182
183
  }
183
184
  else if (frontmatter.inheritContext !== undefined) {
184
- console.warn(`[pi-agent-flow] Ignoring invalid inheritContext field in "${filePath}". Expected boolean or string.`);
185
+ logWarn(`[pi-agent-flow] Ignoring invalid inheritContext field in "${filePath}". Expected boolean or string.`);
185
186
  }
186
187
  // Tier: prefer explicit frontmatter, fall back to name-based inference
187
188
  let tier;
@@ -191,7 +192,7 @@ function parseFlowFile(filePath, source) {
191
192
  tier = normalized;
192
193
  }
193
194
  else {
194
- console.warn(`[pi-agent-flow] Ignoring invalid tier "${frontmatter.tier}" in "${filePath}". Expected lite, flash, or full.`);
195
+ logWarn(`[pi-agent-flow] Ignoring invalid tier "${frontmatter.tier}" in "${filePath}". Expected lite, flash, or full.`);
195
196
  }
196
197
  }
197
198
  return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/core/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Delegation logic extracted from flow.ts.
3
+ *
4
+ * Computes depth/canDelegate state and builds delegation-related
5
+ * prompt fragments for child flow activation.
6
+ */
7
+ import type { FlowConfig } from "./agents.js";
8
+ export interface DelegationState {
9
+ currentDepth: number;
10
+ effectiveMaxDepth: number;
11
+ canDelegate: boolean;
12
+ }
13
+ export declare function computeDelegationState(parentDepth: number, maxDepth: number): DelegationState;
14
+ export declare function buildGuardLine(currentDepth: number, effectiveMaxDepth: number, preventCycles: boolean, parentFlowStack: string[]): string;
15
+ export declare function buildDelegationRule(canDelegate: boolean, guardLine: string): string;
16
+ export declare function buildFlowListSection(canDelegate: boolean, discoveredFlows: FlowConfig[]): string;
17
+ export declare function buildLineage(flowName: string, parentFlowStack: string[]): string;
18
+ export declare function buildParentLineageHint(_parentFlowStack: string[]): string;
19
+ export declare function computeChildPropagation(parentDepth: number, maxDepth: number, parentFlowStack: string[], normalizedFlowName: string): {
20
+ nextDepth: number;
21
+ propagatedMaxDepth: number;
22
+ propagatedStack: string[];
23
+ };
24
+ //# sourceMappingURL=delegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/core/delegation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,MAAM,WAAW,eAAe;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;CACrB;AAMD,wBAAgB,sBAAsB,CACrC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd,eAAe,CAKjB;AAMD,wBAAgB,cAAc,CAC7B,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,aAAa,EAAE,OAAO,EACtB,eAAe,EAAE,MAAM,EAAE,GACvB,MAAM,CAGR;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,OAAO,EACpB,eAAe,EAAE,UAAU,EAAE,GAC3B,MAAM,CAOR;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhF;AAED,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAEzE;AAMD,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EAAE,EACzB,kBAAkB,EAAE,MAAM,GACxB;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC1B,CAKA"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Delegation logic extracted from flow.ts.
3
+ *
4
+ * Computes depth/canDelegate state and builds delegation-related
5
+ * prompt fragments for child flow activation.
6
+ */
7
+ // ---------------------------------------------------------------------------
8
+ // Depth / delegation state
9
+ // ---------------------------------------------------------------------------
10
+ export function computeDelegationState(parentDepth, maxDepth) {
11
+ const currentDepth = Math.max(0, Math.floor(parentDepth)) + 1;
12
+ const effectiveMaxDepth = Math.max(0, Math.floor(maxDepth));
13
+ const canDelegate = currentDepth < effectiveMaxDepth;
14
+ return { currentDepth, effectiveMaxDepth, canDelegate };
15
+ }
16
+ // ---------------------------------------------------------------------------
17
+ // Prompt fragment builders
18
+ // ---------------------------------------------------------------------------
19
+ export function buildGuardLine(currentDepth, effectiveMaxDepth, preventCycles, parentFlowStack) {
20
+ const stackLabel = parentFlowStack.length > 0 ? parentFlowStack.join(" -> ") : "root";
21
+ return `depth ${currentDepth}/${effectiveMaxDepth} · stack: ${stackLabel}`;
22
+ }
23
+ export function buildDelegationRule(canDelegate, guardLine) {
24
+ return `Deleg: ${canDelegate ? "on" : "off"} (${guardLine})`;
25
+ }
26
+ export function buildFlowListSection(canDelegate, discoveredFlows) {
27
+ if (!canDelegate || discoveredFlows.length === 0)
28
+ return "";
29
+ return (`Available flows:\n${discoveredFlows
30
+ .map((f) => `- ${f.name}`)
31
+ .join("\n")}\n`);
32
+ }
33
+ export function buildLineage(flowName, parentFlowStack) {
34
+ return ["orchestrator", ...parentFlowStack, flowName].join(" → ");
35
+ }
36
+ export function buildParentLineageHint(_parentFlowStack) {
37
+ return "";
38
+ }
39
+ // ---------------------------------------------------------------------------
40
+ // Child env propagation
41
+ // ---------------------------------------------------------------------------
42
+ export function computeChildPropagation(parentDepth, maxDepth, parentFlowStack, normalizedFlowName) {
43
+ const nextDepth = Math.max(0, Math.floor(parentDepth)) + 1;
44
+ const propagatedMaxDepth = Math.max(0, Math.floor(maxDepth));
45
+ const propagatedStack = [...parentFlowStack, normalizedFlowName];
46
+ return { nextDepth, propagatedMaxDepth, propagatedStack };
47
+ }
48
+ //# sourceMappingURL=delegation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../src/core/delegation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,UAAU,sBAAsB,CACrC,WAAmB,EACnB,QAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,YAAY,GAAG,iBAAiB,CAAC;IACrD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,UAAU,cAAc,CAC7B,YAAoB,EACpB,iBAAyB,EACzB,aAAsB,EACtB,eAAyB;IAEzB,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACtF,OAAO,SAAS,YAAY,IAAI,iBAAiB,aAAa,UAAU,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAoB,EAAE,SAAiB;IAC1E,OAAO,UAAU,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,WAAoB,EACpB,eAA6B;IAE7B,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5D,OAAO,CACN,qBAAqB,eAAe;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;SACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,eAAyB;IACvE,OAAO,CAAC,cAAc,EAAE,GAAG,eAAe,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,gBAA0B;IAChE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,UAAU,uBAAuB,CACtC,WAAmB,EACnB,QAAgB,EAChB,eAAyB,EACzB,kBAA0B;IAM1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,CAAC,GAAG,eAAe,EAAE,kBAAkB,CAAC,CAAC;IACjE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../src/core/depth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAOlE,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,gCAAgC,OAAO,CAAC;AACrD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAM9D,MAAM,WAAW,eAAe;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;CACvB;AAMD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAOzD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAiB5D;AAuCD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,GAAG,eAAe,CAmGxE"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Extracted from index.ts for single-responsibility and testability.
5
5
  */
6
+ import { logWarn } from "../config/log.js";
6
7
  // ---------------------------------------------------------------------------
7
8
  // Constants
8
9
  // ---------------------------------------------------------------------------
@@ -96,23 +97,23 @@ export function resolveFlowDepthConfig(pi) {
96
97
  const depthRaw = process.env[FLOW_DEPTH_ENV];
97
98
  const parsedDepth = parseNonNegativeInt(depthRaw);
98
99
  if (depthRaw !== undefined && parsedDepth === null) {
99
- console.warn(`[pi-agent-flow] Ignoring invalid ${FLOW_DEPTH_ENV}="${depthRaw}". Expected a non-negative integer.`);
100
+ logWarn(`[pi-agent-flow] Ignoring invalid ${FLOW_DEPTH_ENV}="${depthRaw}". Expected a non-negative integer.`);
100
101
  }
101
102
  const currentDepth = parsedDepth ?? 0;
102
103
  const stackRaw = process.env[FLOW_STACK_ENV];
103
104
  const ancestorFlowStack = parseFlowStack(stackRaw);
104
105
  if (stackRaw !== undefined && ancestorFlowStack === null) {
105
- console.warn(`[pi-agent-flow] Ignoring invalid ${FLOW_STACK_ENV} value. Expected a JSON array of flow names.`);
106
+ logWarn(`[pi-agent-flow] Ignoring invalid ${FLOW_STACK_ENV} value. Expected a JSON array of flow names.`);
106
107
  }
107
108
  const envMaxDepthRaw = process.env[FLOW_MAX_DEPTH_ENV];
108
109
  const envMaxDepth = parseNonNegativeInt(envMaxDepthRaw);
109
110
  if (envMaxDepthRaw !== undefined && envMaxDepth === null) {
110
- console.warn(`[pi-agent-flow] Ignoring invalid ${FLOW_MAX_DEPTH_ENV}="${envMaxDepthRaw}". Expected a non-negative integer.`);
111
+ logWarn(`[pi-agent-flow] Ignoring invalid ${FLOW_MAX_DEPTH_ENV}="${envMaxDepthRaw}". Expected a non-negative integer.`);
111
112
  }
112
113
  const argvFlagRaw = getMaxDepthFlagFromArgv(process.argv);
113
114
  const argvFlagMaxDepth = argvFlagRaw !== null ? parseNonNegativeInt(argvFlagRaw) : null;
114
115
  if (argvFlagRaw !== null && argvFlagMaxDepth === null) {
115
- console.warn(`[pi-agent-flow] Ignoring invalid --flow-max-depth value "${argvFlagRaw}". Expected a non-negative integer.`);
116
+ logWarn(`[pi-agent-flow] Ignoring invalid --flow-max-depth value "${argvFlagRaw}". Expected a non-negative integer.`);
116
117
  }
117
118
  const runtimeFlagValue = pi.getFlag("flow-max-depth");
118
119
  const runtimeFlagMaxDepth = typeof runtimeFlagValue === "string"
@@ -121,12 +122,12 @@ export function resolveFlowDepthConfig(pi) {
121
122
  if (argvFlagRaw === null &&
122
123
  typeof runtimeFlagValue === "string" &&
123
124
  runtimeFlagMaxDepth === null) {
124
- console.warn(`[pi-agent-flow] Ignoring invalid --flow-max-depth value "${runtimeFlagValue}". Expected a non-negative integer.`);
125
+ logWarn(`[pi-agent-flow] Ignoring invalid --flow-max-depth value "${runtimeFlagValue}". Expected a non-negative integer.`);
125
126
  }
126
127
  const envPreventCyclesRaw = process.env[FLOW_PREVENT_CYCLES_ENV];
127
128
  const envPreventCycles = parseBoolean(envPreventCyclesRaw);
128
129
  if (envPreventCyclesRaw !== undefined && envPreventCycles === null) {
129
- console.warn(`[pi-agent-flow] Ignoring invalid ${FLOW_PREVENT_CYCLES_ENV}="${envPreventCyclesRaw}". Expected true/false.`);
130
+ logWarn(`[pi-agent-flow] Ignoring invalid ${FLOW_PREVENT_CYCLES_ENV}="${envPreventCyclesRaw}". Expected true/false.`);
130
131
  }
131
132
  const argvPreventCyclesRaw = getPreventCyclesFlagFromArgv(process.argv);
132
133
  const argvPreventCycles = typeof argvPreventCyclesRaw === "boolean"
@@ -134,14 +135,14 @@ export function resolveFlowDepthConfig(pi) {
134
135
  : parseBoolean(argvPreventCyclesRaw);
135
136
  if (typeof argvPreventCyclesRaw === "string" &&
136
137
  argvPreventCycles === null) {
137
- console.warn(`[pi-agent-flow] Ignoring invalid --flow-prevent-cycles value "${argvPreventCyclesRaw}". Expected true/false.`);
138
+ logWarn(`[pi-agent-flow] Ignoring invalid --flow-prevent-cycles value "${argvPreventCyclesRaw}". Expected true/false.`);
138
139
  }
139
140
  const runtimePreventCyclesRaw = pi.getFlag("flow-prevent-cycles");
140
141
  const runtimePreventCycles = parseBoolean(runtimePreventCyclesRaw);
141
142
  if (argvPreventCyclesRaw === null &&
142
143
  runtimePreventCyclesRaw !== undefined &&
143
144
  runtimePreventCycles === null) {
144
- console.warn(`[pi-agent-flow] Ignoring invalid --flow-prevent-cycles value "${String(runtimePreventCyclesRaw)}". Expected true/false.`);
145
+ logWarn(`[pi-agent-flow] Ignoring invalid --flow-prevent-cycles value "${String(runtimePreventCyclesRaw)}". Expected true/false.`);
145
146
  }
146
147
  const flagMaxDepth = argvFlagMaxDepth ?? runtimeFlagMaxDepth;
147
148
  const maxDepth = flagMaxDepth ?? envMaxDepth ?? DEFAULT_MAX_DELEGATION_DEPTH;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depth.js","sourceRoot":"","sources":["../../src/core/depth.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,11 @@
6
6
  * and telemetry.
7
7
  */
8
8
  import type { FlowConfig } from "./agents.js";
9
- import type { SingleResult, FlowDetails, CompressedFlowResult, FlowMetrics } from "./types.js";
10
- import { type LoadedFlowModelConfigs } from "./config.js";
9
+ import type { SingleResult, FlowDetails, FlowMetrics } from "../types/flow.js";
10
+ import type { CompressedFlowResult } from "../types/output.js";
11
+ import { type LoadedFlowModelConfigs } from "../config/config.js";
11
12
  import { type AgentSessionMode } from "./session-mode.js";
13
+ import type { GoalContext } from '../flow/types.js';
12
14
  export interface FlowExecutorDeps {
13
15
  /** All discovered flow configs. */
14
16
  flows: FlowConfig[];
@@ -46,14 +48,22 @@ export interface FlowExecutorDeps {
46
48
  fallbackModel?: string;
47
49
  /** Fork session snapshot JSONL. */
48
50
  forkSessionSnapshotJsonl: string | null;
51
+ /** Compression statistics from sanitizeForkSnapshot for dump header generation. */
52
+ forkSessionSnapshotStats?: {
53
+ preBytes: number;
54
+ postBytes: number;
55
+ reductionPercent: number;
56
+ passesApplied: string[];
57
+ } | null;
49
58
  /** Flow result cache for compression. */
50
59
  flowResultCache: Map<string, CompressedFlowResult[]>;
51
60
  /** Project flows directory. */
52
61
  projectFlowsDir: string | null;
53
- /** Session manager for fork snapshot. */
62
+ /** Session manager for fork snapshot and session identification. */
54
63
  sessionManager: {
55
64
  getHeader: () => unknown;
56
65
  getBranch: () => unknown[];
66
+ getSessionId: () => string;
57
67
  };
58
68
  /** Whether UI is available for confirmation. */
59
69
  hasUI: boolean;
@@ -63,6 +73,10 @@ export interface FlowExecutorDeps {
63
73
  onFlowMetrics?: (metrics: FlowMetrics) => void;
64
74
  /** Whether to prompt the user before running project-local flows. Default: true. */
65
75
  confirmProjectFlows?: boolean;
76
+ /** Optional callback invoked after all flows complete to record goal usage. */
77
+ goalContinuationCallback?: (results: SingleResult[]) => Promise<void>;
78
+ /** Optional active goal context to inject into child flow prompts. */
79
+ goalContext?: GoalContext;
66
80
  }
67
81
  export interface ExecuteFlowParams {
68
82
  type: string;
@@ -79,6 +93,7 @@ export interface ExecuteFlowResult {
79
93
  }>;
80
94
  details: FlowDetails;
81
95
  isError?: boolean;
96
+ _toolCallId?: string;
82
97
  }
83
98
  /** Evict oldest entries from the cache when it exceeds the cap. */
84
99
  export declare function evictCacheOverflow(cache: Map<string, unknown>): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM/D,OAAO,EAAyG,KAAK,sBAAsB,EAA0B,MAAM,qBAAqB,CAAC;AACjM,OAAO,EAAqD,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK7G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAMpD,MAAM,WAAW,gBAAgB;IAChC,mCAAmC;IACnC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,2CAA2C;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,wDAAwD;IACxD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IAEvB,uCAAuC;IACvC,kBAAkB,EAAE,gBAAgB,CAAC;IACrC,oBAAoB;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,6BAA6B,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAChG,gDAAgD;IAChD,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,CAAC;IACtD,4BAA4B;IAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,6CAA6C;IAC7C,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9E,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,mFAAmF;IACnF,wBAAwB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7H,yCAAyC;IACzC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACrD,+BAA+B;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oEAAoE;IACpE,cAAc,EAAE;QAAE,SAAS,EAAE,MAAM,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,OAAO,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC;IACrG,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,gCAAgC;IAChC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,0BAA0B;IAC1B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,+EAA+E;IAC/E,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,sEAAsE;IACtE,WAAW,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAgED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAapE;AAsBD;;;GAGG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAiT5B"}
@@ -5,13 +5,16 @@
5
5
  * project-flow confirmation, parallel execution with failover, caching,
6
6
  * and telemetry.
7
7
  */
8
- import { isFlowSuccess, isFlowError, isFlowComplete, emptyFlowUsage } from "./types.js";
8
+ import { isFlowSuccess, isFlowError, isFlowComplete, emptyFlowUsage } from "../types/flow.js";
9
9
  import { getTransitionAdvice } from "./transitions.js";
10
10
  import { mapFlowConcurrent, runFlow } from "./flow.js";
11
- import { getFlowSummaryText } from "./runner-events.js";
12
- import { normalizeFlowModeName, resolveFlowModelCandidates, selectFlowModelStrategy } from "./config.js";
11
+ import { getFlowSummaryText } from "../snapshot/runner-events.js";
12
+ import { normalizeFlowModeName, resolveFlowModelCandidates, resolveModelContextWindow, selectFlowModelStrategy } from "../config/config.js";
13
13
  import { getAgentSessionTimeoutMs, resolveAgentSessionMode } from "./session-mode.js";
14
- import { setFlowComplete } from "./notify-state.js";
14
+ import { setFlowComplete } from "../notify/notify-state.js";
15
+ import { setLiveText } from '../tui/scramble/index.js';
16
+ import { logWarn } from '../config/log.js';
17
+ import { markFlowCompleted } from '../flow/index.js';
15
18
  // ---------------------------------------------------------------------------
16
19
  // Helpers
17
20
  // ---------------------------------------------------------------------------
@@ -60,7 +63,7 @@ export function evictCacheOverflow(cache) {
60
63
  if (cache.size <= FLOW_RESULT_CACHE_MAX_ENTRIES)
61
64
  return;
62
65
  const excess = cache.size - FLOW_RESULT_CACHE_MAX_ENTRIES;
63
- console.warn(`[pi-agent-flow] Flow result cache overflow: evicting ${excess} oldest entries. ` +
66
+ logWarn(`[pi-agent-flow] Flow result cache overflow: evicting ${excess} oldest entries. ` +
64
67
  `Raising PI_FLOW_CACHE_MAX_ENTRIES (currently ${FLOW_RESULT_CACHE_MAX_ENTRIES}) may help for long sessions.`);
65
68
  const keys = cache.keys();
66
69
  for (let i = 0; i < excess; i++) {
@@ -96,7 +99,7 @@ function shouldFailover(result) {
96
99
  * project confirmation, parallel execution with model failover, and telemetry.
97
100
  */
98
101
  export async function executeFlows(deps, params, toolCallId) {
99
- const { flows, currentDepth, maxDepth, ancestorFlowStack, preventCycles, toolOptimize, structuredOutput, cwd, loadedFlowModelConfigs, maxConcurrency, defaultSessionMode, signal, onUpdate, makeDetails, getFlag, tierOverrideResolver, fallbackModel, forkSessionSnapshotJsonl, flowResultCache, projectFlowsDir, hasUI, uiConfirm, onFlowMetrics, confirmProjectFlows, } = deps;
102
+ const { flows, currentDepth, maxDepth, ancestorFlowStack, preventCycles, toolOptimize, structuredOutput, cwd, loadedFlowModelConfigs, maxConcurrency, defaultSessionMode, signal, onUpdate, makeDetails, getFlag, tierOverrideResolver, fallbackModel, forkSessionSnapshotJsonl, flowResultCache, projectFlowsDir, hasUI, uiConfirm, onFlowMetrics, confirmProjectFlows, goalContext, } = deps;
100
103
  const requested = new Set(params.map((f) => f.type.toLowerCase()));
101
104
  // Cycle check
102
105
  if (preventCycles) {
@@ -129,7 +132,7 @@ export async function executeFlows(deps, params, toolCallId) {
129
132
  const cliFlowMode = normalizeFlowModeName(getFlag("flow-mode"));
130
133
  const cliFlowModelConfig = normalizeFlowModeName(getFlag("flow-model-config"));
131
134
  if (cliFlowMode !== undefined && cliFlowModelConfig !== undefined && cliFlowMode !== cliFlowModelConfig) {
132
- console.warn(`[pi-agent-flow] Both --flow-mode "${cliFlowMode}" and --flow-model-config "${cliFlowModelConfig}" were provided. Using --flow-mode.`);
135
+ logWarn(`[pi-agent-flow] Both --flow-mode "${cliFlowMode}" and --flow-model-config "${cliFlowModelConfig}" were provided. Using --flow-mode.`);
133
136
  }
134
137
  const selectedFlowModelConfig = selectFlowModelStrategy(loadedFlowModelConfigs.configs, cliFlowMode ?? cliFlowModelConfig ?? loadedFlowModelConfigs.selectedName);
135
138
  // Pre-allocate results array
@@ -148,14 +151,29 @@ export async function executeFlows(deps, params, toolCallId) {
148
151
  };
149
152
  }
150
153
  // Streaming progress
151
- let lastStreamingText = "";
152
154
  let lastEmittedSignature;
153
155
  const emitProgress = (streamingText) => {
156
+ const activeStreamingText = allResults
157
+ .filter((r) => r.exitCode === -1)
158
+ .map((r) => r.streamingText)
159
+ .filter((text) => Boolean(text))
160
+ .at(-1);
161
+ const text = streamingText ?? activeStreamingText ?? "";
162
+ // (debug trace removed — was writing to /tmp/pi-flow-debug.log on every emitProgress call)
163
+ // Update live text store FIRST — always
164
+ const key = toolCallId || 'collapsed';
165
+ setLiveText(key, text);
166
+ setLiveText('collapsed', text);
167
+ for (let i = 0; i < allResults.length; i++) {
168
+ const r = allResults[i];
169
+ if (r.streamingText) {
170
+ setLiveText(`${key}#${i}`, r.streamingText);
171
+ setLiveText(`collapsed#${i}`, r.streamingText);
172
+ }
173
+ }
174
+ // Now check onUpdate for host callback
154
175
  if (!onUpdate)
155
176
  return;
156
- if (streamingText !== undefined)
157
- lastStreamingText = streamingText;
158
- const text = lastStreamingText || "";
159
177
  const signature = text +
160
178
  "|" +
161
179
  allResults
@@ -172,10 +190,10 @@ export async function executeFlows(deps, params, toolCallId) {
172
190
  onUpdate({
173
191
  content: [{ type: "text", text }],
174
192
  details: makeDetails([...allResults]),
193
+ _toolCallId: toolCallId,
175
194
  });
176
195
  };
177
- if (onUpdate)
178
- emitProgress();
196
+ emitProgress();
179
197
  // Execute all flows in parallel
180
198
  const executionStart = Date.now();
181
199
  const results = await mapFlowConcurrent(params, maxConcurrency, async (item, index) => {
@@ -202,6 +220,7 @@ export async function executeFlows(deps, params, toolCallId) {
202
220
  attemptedModels.push(candidateModel);
203
221
  const attemptStartMs = Date.now();
204
222
  const attemptTimeoutMs = getAgentSessionTimeoutMs(sessionMode);
223
+ const maxContextTokens = resolveModelContextWindow(candidateModel);
205
224
  allResults[index] = {
206
225
  type: normalizedType,
207
226
  agentSource: targetFlow?.source ?? "unknown",
@@ -214,6 +233,7 @@ export async function executeFlows(deps, params, toolCallId) {
214
233
  model: candidateModel,
215
234
  startedAtMs: attemptStartMs,
216
235
  deadlineAtMs: attemptStartMs + attemptTimeoutMs,
236
+ ...(maxContextTokens !== undefined ? { maxContextTokens } : {}),
217
237
  };
218
238
  emitProgress();
219
239
  result = await runFlow({
@@ -225,6 +245,7 @@ export async function executeFlows(deps, params, toolCallId) {
225
245
  acceptance: item.acceptance,
226
246
  taskCwd: item.cwd,
227
247
  forkSessionSnapshotJsonl: shouldInheritContext ? forkSessionSnapshotJsonl : null,
248
+ compressionStats: shouldInheritContext ? deps.forkSessionSnapshotStats : null,
228
249
  parentDepth: currentDepth,
229
250
  parentFlowStack: ancestorFlowStack,
230
251
  maxDepth: effectiveMaxDepth,
@@ -233,10 +254,18 @@ export async function executeFlows(deps, params, toolCallId) {
233
254
  structuredOutput,
234
255
  sessionMode,
235
256
  model: candidateModel,
257
+ maxContextTokens,
258
+ goalContext: deps.goalContext,
236
259
  signal,
237
260
  onUpdate: (partial) => {
238
261
  if (partial.details?.results[0]) {
239
262
  allResults[index] = partial.details.results[0];
263
+ // Update per-flow live text
264
+ const flowText = partial.content?.[0]?.text;
265
+ if (flowText !== undefined) {
266
+ setLiveText(`${toolCallId || 'collapsed'}#${index}`, flowText);
267
+ setLiveText(`collapsed#${index}`, flowText); // ← predictable fallback
268
+ }
240
269
  emitProgress(partial.content?.[0]?.text);
241
270
  }
242
271
  },
@@ -280,11 +309,20 @@ export async function executeFlows(deps, params, toolCallId) {
280
309
  if (lastResult) {
281
310
  setFlowComplete(lastResult.type, lastResult.acceptance, results.length - 1, results.length);
282
311
  }
312
+ // Mark flow completion for the continuation hold — gives the user
313
+ // time to read the result before the next flow auto-spawns.
314
+ markFlowCompleted(deps.sessionManager.getSessionId());
315
+ // Goal continuation callback
316
+ if (deps.goalContinuationCallback) {
317
+ await deps.goalContinuationCallback(results);
318
+ }
283
319
  // Cache flow results
284
320
  for (const result of results) {
285
321
  const so = result.structuredOutput;
286
- if (!so)
322
+ if (!so) {
323
+ logWarn(`[pi-agent-flow] Flow result for toolCallId=${toolCallId} type=${result.type} has no structuredOutput — cache entry skipped. This means child flows will see placeholder text instead of compressed results.`);
287
324
  continue;
325
+ }
288
326
  const compressed = {
289
327
  type: result.type,
290
328
  status: isFlowError(result) ? "failed" : "accomplished",
@@ -334,6 +372,7 @@ export async function executeFlows(deps, params, toolCallId) {
334
372
  text: `Flow: ${successCount}/${results.length} completed\n\n${flowReports.join("\n\n---\n\n")}${advisorBlock}`,
335
373
  }],
336
374
  details: makeDetails(results),
375
+ _toolCallId: toolCallId,
337
376
  };
338
377
  }
339
378
  //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,9 @@
6
6
  */
7
7
  import type { AgentToolResult } from "@mariozechner/pi-agent-core";
8
8
  import { type FlowConfig } from "./agents.js";
9
- import { type SingleResult, type FlowDetails } from "./types.js";
9
+ import { type SingleResult, type FlowDetails } from "../types/flow.js";
10
10
  import { type AgentSessionMode } from "./session-mode.js";
11
+ import type { GoalContext } from "../flow/types.js";
11
12
  /** Register a child process group for cleanup on shutdown. */
12
13
  export declare function registerChildGroup(pid: number, name: string): void;
13
14
  /** Unregister a completed/stopped child process group. */
@@ -62,6 +63,17 @@ export interface RunFlowOptions {
62
63
  makeDetails: (results: SingleResult[]) => FlowDetails;
63
64
  /** Child-flow session mode. Default: "default" (600s). */
64
65
  sessionMode?: AgentSessionMode;
66
+ /** Optional flow goal context to inject into the child prompt. */
67
+ goalContext?: GoalContext;
68
+ /** Compression statistics from sanitizeForkSnapshot for dump header generation. */
69
+ compressionStats?: {
70
+ preBytes: number;
71
+ postBytes: number;
72
+ reductionPercent: number;
73
+ passesApplied: string[];
74
+ } | null;
75
+ /** Optional max context token budget to record in the result. */
76
+ maxContextTokens?: number;
65
77
  }
66
78
  /**
67
79
  * Spawn a single flow process with forked session context.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/core/flow.ts"],"names":[],"mappings":"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"}