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
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Shared warp utilities — sanitization, system prompt, and goal extraction.
3
+ */
4
+ export declare const MAX_CONVERSATION_CHARS = 15000;
5
+ export declare function sanitizeBranchForWarp(messages: any[]): {
6
+ messages: any[];
7
+ passesApplied: string[];
8
+ };
9
+ export declare const SYSTEM_PROMPT = "You are a context transfer and execution planning assistant. Given a conversation history and the user's goal, generate a structured warp prompt that serves as a ready-to-execute project brief for a new session.\n\nYour output MUST use this exact format:\n\nFRONTMATTER (YAML between --- delimiters):\n context \u2014 1-2 sentence orientation summary\n end_goal \u2014 The finish line, not the next step\n decisions \u2014 Key choices already made (list)\n files \u2014 Files touched with what changed (list)\n open_items \u2014 Unresolved work or questions (list)\n watch_out \u2014 Edge cases, gotchas, fragile assumptions (list)\n uncertain_areas \u2014 Areas of the codebase or design that need re-assessment before proceeding (list)\n context_gathering:\n aim \u2014 What the initial scout/discovery should accomplish\n scope \u2014 Specific things to explore or map (list)\n execution_plan:\n - phase \u2014 Phase name\n parallel \u2014 true/false, can this run alongside other phases?\n group \u2014 If parallel, which execution group (A, B, C...)\n flow \u2014 Which flow type to use (scout, build, audit, craft...)\n flows \u2014 OR multiple flows if parallel within the phase\n task \u2014 Clear, actionable task for this phase\n depends_on \u2014 Phase(s) that must complete first\n produces \u2014 What \"done\" means for this phase\n success_criteria \u2014 How to know the overall work is complete (list)\n\nBODY (after the closing ---):\n A concise Task section restating the immediate next action.\n\nRULES:\n1. Always start with a context_gathering phase \u2014 the new session has no context yet, so discovery comes first.\n2. Mark phases parallel:true when they have no data dependencies on each other. Use group labels (A, B, C) to cluster parallel work.\n3. Each phase should produce a concrete artifact, evidence of completion before moving on to the next.\n4. Respect the given plan scaffold.\n5. Use flow types from: scout, build, audit, craft, debug, ideas.\n6. Success criteria should be the final state, i.e. integration test pass, code coverage with verified output, etc.\n7. If an active goal from the prior session exists, include it in the frontmatter context.\n8. Preserve unresolved blockers, open questions, or \"not done\" items from prior flow results in open_items.\n9. Flag any uncertain areas \u2014 parts of the codebase, design decisions, or assumptions that may have shifted since the conversation and need re-assessment via a scout or audit flow before committing to a plan.\n10. No tool calls, all attemps that you need to discover, note it to the watch_out list or uncertain_areas list.\n11. Your entire response must be the warp prompt starting with '---' (YAML frontmatter opening). No preamble, no explanations, no tool calls.\n\nFormat your response as a prompt the user can send to start the new thread. Be concise but include all necessary context. Do not include any preamble like \"Here is the prompt\" \u2014 just output the prompt itself.\n\nIMPORTANT: You are a text generation assistant, not an agent. Do NOT attempt tool calls, file operations, code execution, or any actions. Output ONLY the structured prompt text.";
10
+ export declare function extractGoalFromPrompt(prompt: string): string;
11
+ //# sourceMappingURL=warp-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-utils.d.ts","sourceRoot":"","sources":["../../src/flow/warp-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAE5C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAqGnG;AAED,eAAO,MAAM,aAAa,suGA4CwJ,CAAC;AAEnL,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAyC5D"}
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Shared warp utilities — sanitization, system prompt, and goal extraction.
3
+ */
4
+ import { stripReasoningFromAssistantMessage } from "../snapshot/reasoning-strip.js";
5
+ import { stripSteeringHintFromContent, isJsonEqual, contentContainsSteeringHintTag, } from "../steering/sliding-prompt.js";
6
+ import { stripStrategicHintsFromContent } from "../steering/tool-utils.js";
7
+ export const MAX_CONVERSATION_CHARS = 15000;
8
+ export function sanitizeBranchForWarp(messages) {
9
+ const passesApplied = new Set();
10
+ const sanitized = [];
11
+ for (const message of messages) {
12
+ if (!message)
13
+ continue;
14
+ // Drop messages with role: 'custom' (hidden orchestrator messages that convertToLlm would promote to user)
15
+ if (message.role === "custom") {
16
+ passesApplied.add("dropCustomMessages");
17
+ continue;
18
+ }
19
+ // Drop messages with role: 'system' that contain steering hint tags
20
+ if (message.role === "system" && contentContainsSteeringHintTag(message.content)) {
21
+ passesApplied.add("dropSlidingSystemPrompts");
22
+ continue;
23
+ }
24
+ let changed = false;
25
+ let sanitizedMessage = message;
26
+ // Strip reasoning/thinking from assistant messages
27
+ if (message.role === "assistant" || message.role === "system" || message.role === "tool") {
28
+ const stripped = stripReasoningFromAssistantMessage(message);
29
+ if (stripped.changed) {
30
+ sanitizedMessage = stripped.message;
31
+ changed = true;
32
+ passesApplied.add("stripReasoning");
33
+ }
34
+ }
35
+ // Strip timestamp from message objects
36
+ if ("timestamp" in sanitizedMessage) {
37
+ const { timestamp, ...rest } = sanitizedMessage;
38
+ sanitizedMessage = rest;
39
+ changed = true;
40
+ passesApplied.add("stripTimestamps");
41
+ }
42
+ // Strip API metadata from assistant messages (keep usage but strip cost)
43
+ if (sanitizedMessage.role === "assistant") {
44
+ const { api, provider, model, stopReason, responseId, responseModel, usage, ...rest } = sanitizedMessage;
45
+ let stripped = false;
46
+ if (api !== undefined || provider !== undefined || model !== undefined ||
47
+ stopReason !== undefined || responseId !== undefined || responseModel !== undefined) {
48
+ stripped = true;
49
+ }
50
+ let cleanedUsage = usage;
51
+ if (usage && typeof usage === "object" && "cost" in usage) {
52
+ const { cost, ...usageWithoutCost } = usage;
53
+ cleanedUsage = usageWithoutCost;
54
+ stripped = true;
55
+ }
56
+ if (stripped) {
57
+ sanitizedMessage = { ...rest, ...(cleanedUsage !== undefined ? { usage: cleanedUsage } : {}) };
58
+ changed = true;
59
+ passesApplied.add("stripApiMetadata");
60
+ }
61
+ }
62
+ // Strip 'details' from tool/toolResult messages
63
+ if (sanitizedMessage.role === "tool" || sanitizedMessage.role === "toolResult") {
64
+ if ("details" in sanitizedMessage) {
65
+ const { details, ...rest } = sanitizedMessage;
66
+ sanitizedMessage = rest;
67
+ changed = true;
68
+ passesApplied.add("stripDetails");
69
+ }
70
+ }
71
+ if ("content" in sanitizedMessage) {
72
+ let modifiedContent = sanitizedMessage.content;
73
+ // Strip steering hints from message content
74
+ const afterSliding = stripSteeringHintFromContent(modifiedContent);
75
+ if (!isJsonEqual(afterSliding, modifiedContent)) {
76
+ modifiedContent = afterSliding;
77
+ changed = true;
78
+ passesApplied.add("stripSteeringHints");
79
+ }
80
+ // Strip strategic hints from tool result content
81
+ if (sanitizedMessage.role === "tool" || sanitizedMessage.role === "toolResult") {
82
+ const afterHints = stripStrategicHintsFromContent(modifiedContent);
83
+ if (!isJsonEqual(afterHints, modifiedContent)) {
84
+ modifiedContent = afterHints;
85
+ changed = true;
86
+ passesApplied.add("stripStrategicHints");
87
+ }
88
+ }
89
+ if (changed) {
90
+ sanitizedMessage = { ...sanitizedMessage, content: modifiedContent };
91
+ }
92
+ }
93
+ sanitized.push(sanitizedMessage);
94
+ }
95
+ return { messages: sanitized, passesApplied: Array.from(passesApplied) };
96
+ }
97
+ export const SYSTEM_PROMPT = `You are a context transfer and execution planning assistant. Given a conversation history and the user's goal, generate a structured warp prompt that serves as a ready-to-execute project brief for a new session.
98
+
99
+ Your output MUST use this exact format:
100
+
101
+ FRONTMATTER (YAML between --- delimiters):
102
+ context — 1-2 sentence orientation summary
103
+ end_goal — The finish line, not the next step
104
+ decisions — Key choices already made (list)
105
+ files — Files touched with what changed (list)
106
+ open_items — Unresolved work or questions (list)
107
+ watch_out — Edge cases, gotchas, fragile assumptions (list)
108
+ uncertain_areas — Areas of the codebase or design that need re-assessment before proceeding (list)
109
+ context_gathering:
110
+ aim — What the initial scout/discovery should accomplish
111
+ scope — Specific things to explore or map (list)
112
+ execution_plan:
113
+ - phase — Phase name
114
+ parallel — true/false, can this run alongside other phases?
115
+ group — If parallel, which execution group (A, B, C...)
116
+ flow — Which flow type to use (scout, build, audit, craft...)
117
+ flows — OR multiple flows if parallel within the phase
118
+ task — Clear, actionable task for this phase
119
+ depends_on — Phase(s) that must complete first
120
+ produces — What "done" means for this phase
121
+ success_criteria — How to know the overall work is complete (list)
122
+
123
+ BODY (after the closing ---):
124
+ A concise Task section restating the immediate next action.
125
+
126
+ RULES:
127
+ 1. Always start with a context_gathering phase — the new session has no context yet, so discovery comes first.
128
+ 2. Mark phases parallel:true when they have no data dependencies on each other. Use group labels (A, B, C) to cluster parallel work.
129
+ 3. Each phase should produce a concrete artifact, evidence of completion before moving on to the next.
130
+ 4. Respect the given plan scaffold.
131
+ 5. Use flow types from: scout, build, audit, craft, debug, ideas.
132
+ 6. Success criteria should be the final state, i.e. integration test pass, code coverage with verified output, etc.
133
+ 7. If an active goal from the prior session exists, include it in the frontmatter context.
134
+ 8. Preserve unresolved blockers, open questions, or "not done" items from prior flow results in open_items.
135
+ 9. Flag any uncertain areas — parts of the codebase, design decisions, or assumptions that may have shifted since the conversation and need re-assessment via a scout or audit flow before committing to a plan.
136
+ 10. No tool calls, all attemps that you need to discover, note it to the watch_out list or uncertain_areas list.
137
+ 11. Your entire response must be the warp prompt starting with '---' (YAML frontmatter opening). No preamble, no explanations, no tool calls.
138
+
139
+ Format your response as a prompt the user can send to start the new thread. Be concise but include all necessary context. Do not include any preamble like "Here is the prompt" — just output the prompt itself.
140
+
141
+ IMPORTANT: You are a text generation assistant, not an agent. Do NOT attempt tool calls, file operations, code execution, or any actions. Output ONLY the structured prompt text.`;
142
+ export function extractGoalFromPrompt(prompt) {
143
+ const MAX_GOAL_LEN = 200;
144
+ // Helper: find first meaningful line and strip bullet/numbered prefixes
145
+ const pickFirstLine = (text) => {
146
+ const lines = text.split('\n');
147
+ for (const raw of lines) {
148
+ const trimmed = raw.trim();
149
+ if (!trimmed || trimmed.startsWith('#'))
150
+ continue;
151
+ const cleaned = trimmed.replace(/^[-*•]\s+|^\d+\.\s+/, '');
152
+ if (cleaned)
153
+ return cleaned.length > MAX_GOAL_LEN ? cleaned.slice(0, MAX_GOAL_LEN).trimEnd() : cleaned;
154
+ }
155
+ return undefined;
156
+ };
157
+ // Strategy 1: Parse end_goal from YAML frontmatter
158
+ const endGoalMatch = prompt.match(/^end_goal:\s*["']?(.+?)["']?\s*$/m);
159
+ if (endGoalMatch?.[1]) {
160
+ const endGoal = endGoalMatch[1].trim();
161
+ const contextMatch = prompt.match(/^context:\s*["']?(.+?)["']?\s*$/m);
162
+ if (contextMatch?.[1]) {
163
+ const context = contextMatch[1].trim();
164
+ const combined = `${endGoal}. Context: ${context}`;
165
+ if (combined.length <= MAX_GOAL_LEN)
166
+ return combined;
167
+ }
168
+ return endGoal.length > MAX_GOAL_LEN ? endGoal.slice(0, MAX_GOAL_LEN).trimEnd() : endGoal;
169
+ }
170
+ // Try to find ## Task section
171
+ const taskMatch = prompt.match(/##\s*Task\s*\n([\s\S]*?)(?=\n##|$)/i);
172
+ if (taskMatch?.[1]) {
173
+ const picked = pickFirstLine(taskMatch[1]);
174
+ if (picked)
175
+ return picked;
176
+ }
177
+ // Fallback: first non-empty, non-header, non-bullet line after ---
178
+ const bodyStart = prompt.indexOf('---', 3);
179
+ if (bodyStart !== -1) {
180
+ const body = prompt.slice(bodyStart + 3);
181
+ const picked = pickFirstLine(body);
182
+ if (picked)
183
+ return picked;
184
+ }
185
+ return 'Continue the work from the warped context';
186
+ }
187
+ //# sourceMappingURL=warp-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-utils.js","sourceRoot":"","sources":["../../src/flow/warp-utils.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,9 @@
5
5
  * Each flow receives a forked snapshot of the current session context.
6
6
  */
7
7
  import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
8
- export { compressToolResults, compressFlowToolResults, stripBatchReadToolCalls } from "./snapshot.js";
8
+ import { logWarn, logError } from "./config/log.js";
9
+ export { logWarn, logError };
10
+ export { compressToolResults, stripBatchReadToolCalls } from "./snapshot/snapshot.js";
11
+ export { type FlowColorConfig } from "./tui/flow-colors.js";
9
12
  export default function (pi: ExtensionAPI): void;
10
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAuHlE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAMtG,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAgVxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,+BAA+B,CAAC;AA+CpF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAoF7B,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM5D,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAiaxC"}
package/dist/index.js CHANGED
@@ -5,28 +5,32 @@
5
5
  * Each flow receives a forked snapshot of the current session context.
6
6
  */
7
7
  import { Type } from "@sinclair/typebox";
8
- import { setupNotify } from "./notify.js";
9
- import { discoverFlows, getFlowTier } from "./agents.js";
10
- import { getInheritedCliArgs } from "./cli-args.js";
11
- import { renderFlowCall, renderFlowResult } from "./render.js";
12
- import { terminateAllChildGroups } from "./flow.js";
13
- import { executeFlows } from "./executor.js";
14
- import { appendStrategicHintOnce, resetStrategicHintTracker } from "./tool-utils.js";
15
- import { createBatchTool, createBatchReadTool, BashProcessTracker, createBatchBashPollTool } from "./batch.js";
16
- import { createWebTool } from "./web-tool.js";
17
- import { createAskUserTool } from "./ask-user.js";
18
- import { stripSteeringHintText, stripSteeringHintsFromMessages, makeSteeringHintMessage, } from "./sliding-prompt.js";
19
- import { setupSpecMode } from "./spec-mode.js";
20
- import { createTimedBashToolDefinition } from "./timed-bash.js";
21
- import { resolveFlowDepthConfig, } from "./depth.js";
22
- import { buildForkSessionSnapshotJsonl, sanitizeForkSnapshot, } from "./snapshot.js";
23
- import { resolveSettings, } from "./settings-resolver.js";
8
+ import { setupNotify } from "./notify/notify.js";
9
+ import { discoverFlows, getFlowTier } from "./core/agents.js";
10
+ import { getInheritedCliArgs } from "./snapshot/cli-args.js";
11
+ import { renderFlowCall, renderFlowResult } from "./tui/render.js";
12
+ import { terminateAllChildGroups } from "./core/flow.js";
13
+ import { executeFlows } from "./core/executor.js";
14
+ import { appendStrategicHintOnce, resetStrategicHintTracker, configureStrategicHint } from "./steering/tool-utils.js";
15
+ import { createBatchTool, createBatchReadTool, BashProcessTracker, createBatchBashPollTool, } from "./batch/index.js";
16
+ import { createWebTool } from "./tools/web-tool.js";
17
+ import { createAskUserTool } from "./tools/ask-user.js";
18
+ import { stripSteeringHintText, stripSteeringHintsFromMessages, makeSteeringHintMessage, configureSteering, } from "./steering/sliding-prompt.js";
19
+ import { registerFlow, getGoal, getGoalForSession, recordFlowCompletion, addTokens, shutdownWakeup } from "./flow/index.js";
20
+ import * as sessionRegistry from "./core/session-registry.js";
21
+ import { createTimedBashToolDefinition } from "./tools/timed-bash.js";
22
+ import { resolveFlowDepthConfig, } from "./core/depth.js";
23
+ import { buildForkSessionSnapshotJsonl, sanitizeForkSnapshot, } from "./snapshot/snapshot.js";
24
+ import { resolveSettings, } from "./config/settings-resolver.js";
25
+ import { scrambleManager } from "./tui/scramble/index.js";
26
+ import { logWarn, logError } from "./config/log.js";
27
+ export { logWarn, logError };
24
28
  // ---------------------------------------------------------------------------
25
29
  // Persistent flow result cache — shared across execute() calls so historical
26
30
  // flow results are compressed properly in fork snapshots.
27
31
  // ---------------------------------------------------------------------------
28
32
  const flowResultCache = new Map();
29
- import { computeActiveTools, buildBeforeAgentStartPrompt, } from "./flow-prompt.js";
33
+ import { computeActiveTools, buildBeforeAgentStartPrompt, } from "./steering/flow-prompt.js";
30
34
  // ---------------------------------------------------------------------------
31
35
  // Tool parameter schema
32
36
  // ---------------------------------------------------------------------------
@@ -43,12 +47,13 @@ const FlowItem = Type.Object({
43
47
  acceptance: Type.Optional(Type.String({ description: "Short success criteria — one sentence stating what done looks like." })),
44
48
  cwd: Type.Optional(Type.String({ description: "Working directory override for this flow." })),
45
49
  sessionMode: Type.Optional(Type.Union([
50
+ Type.Literal("snap"),
46
51
  Type.Literal("fast"),
47
52
  Type.Literal("default"),
48
53
  Type.Literal("long"),
49
54
  Type.Literal("extreme_long"),
50
55
  ], {
51
- description: "Agent session budget for this flow: fast=300s, default=600s, long=900s, extreme_long=1200s. Use long or extreme_long only when the work genuinely needs the larger budget.",
56
+ description: "Agent session budget for this flow: snap=90s, fast=300s, default=600s, long=900s, extreme_long=1200s. Use long or extreme_long only when the work genuinely needs the larger budget.",
52
57
  })),
53
58
  }, {
54
59
  title: "FlowTask",
@@ -82,7 +87,7 @@ function makeFlowDetailsFactory(projectFlowsDir) {
82
87
  });
83
88
  }
84
89
  // Re-export compressToolResults and stripBatchReadToolCalls for tests
85
- export { compressToolResults, compressFlowToolResults, stripBatchReadToolCalls } from "./snapshot.js";
90
+ export { compressToolResults, stripBatchReadToolCalls } from "./snapshot/snapshot.js";
86
91
  // ---------------------------------------------------------------------------
87
92
  // Extension entry point
88
93
  // ---------------------------------------------------------------------------
@@ -120,24 +125,51 @@ export default function (pi) {
120
125
  type: "string",
121
126
  });
122
127
  pi.registerFlag("flow-session-mode", {
123
- description: "Default child-flow session mode: fast (300s), default (600s), long (900s), or extreme_long (1200s).",
128
+ description: "Default child-flow session mode: snap (90s), fast (300s), default (600s), long (900s), or extreme_long (1200s).",
124
129
  type: "string",
125
130
  });
126
131
  pi.registerFlag("tool-optimize", {
127
132
  description: "Use the unified batch tool instead of separate read/write/edit tools (default: true).",
128
133
  type: "boolean",
129
134
  });
135
+ pi.registerFlag("no-steering", {
136
+ description: "Disable orchestrator steering hint injection.",
137
+ type: "boolean",
138
+ });
139
+ pi.registerFlag("steering-prompt", {
140
+ description: "Path to file containing custom steering prompt.",
141
+ type: "string",
142
+ });
143
+ pi.registerFlag("no-strategic-hint", {
144
+ description: "Disable strategic [Hint: ...] after tool results.",
145
+ type: "boolean",
146
+ });
147
+ pi.registerFlag("no-animation", {
148
+ description: "Disable all flow animation (instant render).",
149
+ type: "boolean",
150
+ });
151
+ pi.registerFlag("no-glitch", {
152
+ description: "Disable glitch/scramble effect.",
153
+ type: "boolean",
154
+ });
130
155
  // Wire up bundled notification channel
131
156
  setupNotify(pi);
132
- // Wire up /spec toggle
133
- setupSpecMode(pi);
157
+ // Wire up /flow command and continuation hooks
158
+ registerFlow(pi);
134
159
  const depthConfig = resolveFlowDepthConfig(pi);
135
160
  const { currentDepth, maxDepth, canDelegate, ancestorFlowStack, preventCycles } = depthConfig;
136
161
  let resolved;
162
+ let _sessionCtx;
137
163
  let bashTracker;
138
164
  // Auto-discover flows on session start
139
165
  pi.on("session_start", async (_event, ctx) => {
166
+ sessionRegistry.register(ctx.cwd, ctx.sessionManager.getSessionId());
167
+ _sessionCtx = ctx;
140
168
  resolved = resolveSettings(pi, ctx.cwd);
169
+ // Wire resolved settings to modules
170
+ configureSteering({ enabled: resolved.steeringEnabled, customPrompt: resolved.steeringCustomPrompt });
171
+ configureStrategicHint(resolved.steeringStrategicHint);
172
+ scrambleManager.setAnimationConfig({ enabled: resolved.animationEnabled, glitch: resolved.animationGlitch });
141
173
  // Only restrict tools for the main orchestrator (depth 0).
142
174
  // Child flows (depth > 0) receive their tools via --tools CLI arg;
143
175
  // overriding them here would strip bash/batch from children.
@@ -236,12 +268,17 @@ export default function (pi) {
236
268
  }
237
269
  }
238
270
  const lastUserIndex = userIndices[userIndices.length - 1];
239
- const modified = [
240
- ...messages.slice(0, lastUserIndex),
241
- makeSteeringHintMessage(messages[lastUserIndex]),
242
- ...messages.slice(lastUserIndex),
243
- ];
244
- const result = { messages: modified };
271
+ const hintMessage = makeSteeringHintMessage(messages[lastUserIndex]);
272
+ const modified = hintMessage
273
+ ? [
274
+ ...messages.slice(0, lastUserIndex),
275
+ hintMessage,
276
+ ...messages.slice(lastUserIndex),
277
+ ]
278
+ : messages;
279
+ const result = {};
280
+ if (hintMessage || messagesChanged)
281
+ result.messages = modified;
245
282
  if (systemPromptChanged) {
246
283
  result.systemPrompt = systemPrompt;
247
284
  }
@@ -282,9 +319,11 @@ export default function (pi) {
282
319
  // artifacts before passing it to child flows.
283
320
  // Uses the persistent module-level cache so historical flow results
284
321
  // are properly compressed (not passed through verbatim).
285
- const forkSessionSnapshotJsonl = sanitizeForkSnapshot(buildForkSessionSnapshotJsonl(ctx.sessionManager), flowResultCache, {
322
+ const { result: forkSessionSnapshotJsonl, stats: forkSessionSnapshotStats } = sanitizeForkSnapshot(buildForkSessionSnapshotJsonl(ctx.sessionManager), flowResultCache, {
323
+ forkedFrom: ctx.sessionManager.getSessionId(),
286
324
  forkedAt: new Date().toISOString(),
287
325
  depth: currentDepth + 1,
326
+ ...(ancestorFlowStack.length > 0 ? { parentFlow: ancestorFlowStack[ancestorFlowStack.length - 1] } : {}),
288
327
  });
289
328
  const getTierOverride = (tier) => {
290
329
  const flagName = tier === "lite"
@@ -298,6 +337,20 @@ export default function (pi) {
298
337
  const inheritedValue = inheritedCliArgs.tieredModels?.[tier];
299
338
  return typeof inheritedValue === "string" && inheritedValue.trim() ? inheritedValue.trim() : undefined;
300
339
  };
340
+ let activeGoal = getGoalForSession(ctx.cwd, sessionRegistry.getSessionId(ctx.cwd));
341
+ if (!activeGoal) {
342
+ const anyGoal = getGoal(ctx.cwd);
343
+ if (anyGoal && anyGoal.status === "active") {
344
+ logWarn(`[pi-agent-flow] Session mismatch for goal: expected ${sessionRegistry.getSessionId(ctx.cwd)}, got ${anyGoal.sessionId ?? "none"}. Using goal anyway.`);
345
+ activeGoal = anyGoal;
346
+ }
347
+ }
348
+ const goalContext = activeGoal ? {
349
+ objective: activeGoal.objective,
350
+ acceptance: activeGoal.acceptance,
351
+ flowCount: activeGoal.completedFlows.length,
352
+ maxFlows: activeGoal.maxFlows,
353
+ } : undefined;
301
354
  const result = await executeFlows({
302
355
  flows,
303
356
  currentDepth,
@@ -317,6 +370,7 @@ export default function (pi) {
317
370
  tierOverrideResolver: getTierOverride,
318
371
  fallbackModel: inheritedCliArgs.fallbackModel,
319
372
  forkSessionSnapshotJsonl,
373
+ forkSessionSnapshotStats,
320
374
  flowResultCache,
321
375
  projectFlowsDir: discovery.projectFlowsDir,
322
376
  sessionManager: ctx.sessionManager,
@@ -325,11 +379,22 @@ export default function (pi) {
325
379
  onFlowMetrics: (metrics) => { if (typeof pi.emit === "function")
326
380
  pi.emit("pi-agent-flow:complete", metrics); },
327
381
  confirmProjectFlows: params.confirmProjectFlows,
382
+ goalContext,
383
+ goalContinuationCallback: async (results) => {
384
+ const goal = getGoalForSession(ctx.cwd, sessionRegistry.getSessionId(ctx.cwd));
385
+ if (!goal)
386
+ return;
387
+ for (const r of results) {
388
+ recordFlowCompletion(ctx.cwd, { type: r.type, intent: r.intent, aim: r.aim });
389
+ addTokens(ctx.cwd, r.usage.input + r.usage.output);
390
+ }
391
+ },
328
392
  }, params.flow.map((f) => ({ type: f.type, intent: f.intent, aim: f.aim, acceptance: f.acceptance, cwd: f.cwd, sessionMode: f.sessionMode })), toolCallId);
329
393
  const flowToolResult = {
330
394
  content: result.content,
331
395
  details: result.details,
332
396
  isError: result.isError,
397
+ _toolCallId: toolCallId,
333
398
  };
334
399
  appendStrategicHintOnce(flowToolResult);
335
400
  return flowToolResult;
@@ -346,8 +411,26 @@ export default function (pi) {
346
411
  discoverFlows: (cwd) => discoverFlows(cwd, "all"),
347
412
  getFlowTier: (name) => getFlowTier(name),
348
413
  getSettings: () => resolved
349
- ? { toolOptimize: resolved.toolOptimize, structuredOutput: resolved.structuredOutput, maxConcurrency: resolved.maxConcurrency }
350
- : { toolOptimize: true, structuredOutput: true, maxConcurrency: 4 },
414
+ ? {
415
+ toolOptimize: resolved.toolOptimize,
416
+ structuredOutput: resolved.structuredOutput,
417
+ maxConcurrency: resolved.maxConcurrency,
418
+ steeringEnabled: resolved.steeringEnabled,
419
+ steeringCustomPrompt: resolved.steeringCustomPrompt,
420
+ steeringStrategicHint: resolved.steeringStrategicHint,
421
+ animationEnabled: resolved.animationEnabled,
422
+ animationGlitch: resolved.animationGlitch,
423
+ }
424
+ : {
425
+ toolOptimize: true,
426
+ structuredOutput: true,
427
+ maxConcurrency: 4,
428
+ steeringEnabled: true,
429
+ steeringCustomPrompt: undefined,
430
+ steeringStrategicHint: true,
431
+ animationEnabled: true,
432
+ animationGlitch: true,
433
+ },
351
434
  };
352
435
  if (typeof pi.emit === "function") {
353
436
  pi.emit("pi-agent-flow:ready", pluginApi);
@@ -369,6 +452,7 @@ export default function (pi) {
369
452
  catch { /* best-effort */ }
370
453
  }
371
454
  terminateAllChildGroups();
455
+ shutdownWakeup();
372
456
  if (typeof pi.emit === "function") {
373
457
  pi.emit("pi-agent-flow:shutdown", { reason: "process-exit" });
374
458
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * so that the notification handler can produce context-aware title/body text.
6
6
  * State is reset at the start of each turn.
7
7
  */
8
- export interface NotifyState {
8
+ interface NotifyState {
9
9
  /** True when ask_user was invoked this turn. */
10
10
  pendingDecision: boolean;
11
11
  /** Name of the last flow that completed. */
@@ -30,4 +30,5 @@ export declare function setPendingDecision(): void;
30
30
  * @param total - Total number of flows in the batch
31
31
  */
32
32
  export declare function setFlowComplete(name: string, acceptance: string | undefined, index: number, total: number): void;
33
+ export {};
33
34
  //# sourceMappingURL=notify-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-state.d.ts","sourceRoot":"","sources":["../../src/notify/notify-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,UAAU,WAAW;IACpB,gDAAgD;IAChD,eAAe,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACnB;AAUD,gEAAgE;AAChE,wBAAgB,cAAc,IAAI,QAAQ,CAAC,WAAW,CAAC,CAEtD;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACX,IAAI,CAKN"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-state.js","sourceRoot":"","sources":["../../src/notify/notify-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,MAAM,aAAa,GAA0B,MAAM,CAAC,MAAM,CAAC;IAC1D,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;CACb,CAAC,CAAC;AAEH,IAAI,KAAK,GAAgB,EAAE,GAAG,aAAa,EAAE,CAAC;AAE9C,gEAAgE;AAChE,MAAM,UAAU,cAAc;IAC7B,OAAO,KAAK,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,gBAAgB;IAC/B,KAAK,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;AAC9B,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,kBAAkB;IACjC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC9B,IAAY,EACZ,UAA8B,EAC9B,KAAa,EACb,KAAa;IAEb,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC;IACtC,KAAK,CAAC,cAAc,GAAG,KAAK,GAAG,CAAC,CAAC;IACjC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/notify/notify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAuOlE,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,QAuE3C"}
@@ -8,8 +8,9 @@ import { execFile } from "node:child_process";
8
8
  import { existsSync, readFileSync } from "node:fs";
9
9
  import * as os from "node:os";
10
10
  import * as path from "node:path";
11
- import { FLOW_DEPTH_ENV, parseNonNegativeInt } from "./depth.js";
11
+ import { FLOW_DEPTH_ENV, parseNonNegativeInt } from "../core/depth.js";
12
12
  import { getNotifyState, resetNotifyState } from "./notify-state.js";
13
+ import { logError } from "../config/log.js";
13
14
  const DEFAULT_CONFIG = {
14
15
  enabled: true,
15
16
  onlyWhenInteractive: true,
@@ -46,7 +47,7 @@ function readConfigFile(filePath) {
46
47
  return JSON.parse(readFileSync(filePath, "utf-8"));
47
48
  }
48
49
  catch (error) {
49
- console.error(`Warning: Could not parse ${filePath}: ${error}`);
50
+ logError(`Warning: Could not parse ${filePath}: ${error}`);
50
51
  return {};
51
52
  }
52
53
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/notify/notify.ts"],"names":[],"mappings":"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"}