pi-agent-flow 1.8.40 → 2.0.0

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 (291) hide show
  1. package/README.md +33 -37
  2. package/agents/audit.md +18 -22
  3. package/agents/build.md +20 -22
  4. package/agents/craft.md +20 -27
  5. package/agents/debug.md +21 -28
  6. package/agents/ideas.md +18 -101
  7. package/agents/scout.md +15 -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 +3 -3
  11. package/dist/batch/batch-bash.js.map +1 -1
  12. package/dist/batch/constants.d.ts +19 -5
  13. package/dist/batch/constants.d.ts.map +1 -1
  14. package/dist/batch/constants.js +4 -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 +97 -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/summary.d.ts +5 -0
  32. package/dist/batch/summary.d.ts.map +1 -0
  33. package/dist/batch/summary.js +101 -0
  34. package/dist/batch/summary.js.map +1 -0
  35. package/dist/{config.d.ts → config/config.d.ts} +34 -2
  36. package/dist/config/config.d.ts.map +1 -0
  37. package/dist/{config.js → config/config.js} +157 -9
  38. package/dist/config/config.js.map +1 -0
  39. package/dist/config/log.d.ts +27 -0
  40. package/dist/config/log.d.ts.map +1 -0
  41. package/dist/config/log.js +104 -0
  42. package/dist/config/log.js.map +1 -0
  43. package/dist/{settings-resolver.d.ts → config/settings-resolver.d.ts} +9 -2
  44. package/dist/config/settings-resolver.d.ts.map +1 -0
  45. package/dist/config/settings-resolver.js +275 -0
  46. package/dist/config/settings-resolver.js.map +1 -0
  47. package/dist/core/agents.d.ts.map +1 -0
  48. package/dist/{agents.js → core/agents.js} +11 -10
  49. package/dist/core/agents.js.map +1 -0
  50. package/dist/core/delegation.d.ts +24 -0
  51. package/dist/core/delegation.d.ts.map +1 -0
  52. package/dist/core/delegation.js +55 -0
  53. package/dist/core/delegation.js.map +1 -0
  54. package/dist/core/depth.d.ts.map +1 -0
  55. package/dist/{depth.js → core/depth.js} +9 -8
  56. package/dist/core/depth.js.map +1 -0
  57. package/dist/{executor.d.ts → core/executor.d.ts} +11 -3
  58. package/dist/core/executor.d.ts.map +1 -0
  59. package/dist/{executor.js → core/executor.js} +49 -14
  60. package/dist/core/executor.js.map +1 -0
  61. package/dist/{flow.d.ts → core/flow.d.ts} +4 -1
  62. package/dist/core/flow.d.ts.map +1 -0
  63. package/dist/{flow.js → core/flow.js} +110 -45
  64. package/dist/core/flow.js.map +1 -0
  65. package/dist/{session-mode.d.ts → core/session-mode.d.ts} +2 -1
  66. package/dist/core/session-mode.d.ts.map +1 -0
  67. package/dist/{session-mode.js → core/session-mode.js} +1 -1
  68. package/dist/core/session-mode.js.map +1 -0
  69. package/dist/core/session-registry.d.ts +16 -0
  70. package/dist/core/session-registry.d.ts.map +1 -0
  71. package/dist/core/session-registry.js +30 -0
  72. package/dist/core/session-registry.js.map +1 -0
  73. package/dist/core/transitions.d.ts.map +1 -0
  74. package/dist/{transitions.js → core/transitions.js} +1 -1
  75. package/dist/core/transitions.js.map +1 -0
  76. package/dist/flow/command.d.ts +8 -0
  77. package/dist/flow/command.d.ts.map +1 -0
  78. package/dist/flow/command.js +189 -0
  79. package/dist/flow/command.js.map +1 -0
  80. package/dist/flow/continuation.d.ts +16 -0
  81. package/dist/flow/continuation.d.ts.map +1 -0
  82. package/dist/flow/continuation.js +151 -0
  83. package/dist/flow/continuation.js.map +1 -0
  84. package/dist/flow/index.d.ts +15 -0
  85. package/dist/flow/index.d.ts.map +1 -0
  86. package/dist/flow/index.js +22 -0
  87. package/dist/flow/index.js.map +1 -0
  88. package/dist/flow/settings-command.d.ts +51 -0
  89. package/dist/flow/settings-command.d.ts.map +1 -0
  90. package/dist/flow/settings-command.js +851 -0
  91. package/dist/flow/settings-command.js.map +1 -0
  92. package/dist/flow/store.d.ts +26 -0
  93. package/dist/flow/store.d.ts.map +1 -0
  94. package/dist/flow/store.js +158 -0
  95. package/dist/flow/store.js.map +1 -0
  96. package/dist/flow/template-strings.d.ts +8 -0
  97. package/dist/flow/template-strings.d.ts.map +1 -0
  98. package/dist/flow/template-strings.js +39 -0
  99. package/dist/flow/template-strings.js.map +1 -0
  100. package/dist/flow/types.d.ts +55 -0
  101. package/dist/flow/types.d.ts.map +1 -0
  102. package/dist/flow/types.js +5 -0
  103. package/dist/flow/types.js.map +1 -0
  104. package/dist/flow/warp-command.d.ts +9 -0
  105. package/dist/flow/warp-command.d.ts.map +1 -0
  106. package/dist/flow/warp-command.js +405 -0
  107. package/dist/flow/warp-command.js.map +1 -0
  108. package/dist/index.d.ts +3 -1
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +103 -29
  111. package/dist/index.js.map +1 -1
  112. package/dist/{notify-state.d.ts → notify/notify-state.d.ts} +2 -1
  113. package/dist/notify/notify-state.d.ts.map +1 -0
  114. package/dist/notify/notify-state.js.map +1 -0
  115. package/dist/notify/notify.d.ts.map +1 -0
  116. package/dist/{notify.js → notify/notify.js} +3 -2
  117. package/dist/notify/notify.js.map +1 -0
  118. package/dist/{cli-args.d.ts → snapshot/cli-args.d.ts} +3 -2
  119. package/dist/snapshot/cli-args.d.ts.map +1 -0
  120. package/dist/{cli-args.js → snapshot/cli-args.js} +1 -1
  121. package/dist/snapshot/cli-args.js.map +1 -0
  122. package/dist/snapshot/index.d.ts +2 -0
  123. package/dist/snapshot/index.d.ts.map +1 -0
  124. package/dist/snapshot/index.js +2 -0
  125. package/dist/snapshot/index.js.map +1 -0
  126. package/dist/{reasoning-strip.d.ts → snapshot/reasoning-strip.d.ts} +0 -4
  127. package/dist/snapshot/reasoning-strip.d.ts.map +1 -0
  128. package/dist/{reasoning-strip.js → snapshot/reasoning-strip.js} +2 -2
  129. package/dist/snapshot/reasoning-strip.js.map +1 -0
  130. package/dist/snapshot/runner-events.d.ts.map +1 -0
  131. package/dist/{runner-events.js → snapshot/runner-events.js} +1 -1
  132. package/dist/snapshot/runner-events.js.map +1 -0
  133. package/dist/{snapshot.d.ts → snapshot/snapshot.d.ts} +5 -2
  134. package/dist/snapshot/snapshot.d.ts.map +1 -0
  135. package/dist/{snapshot.js → snapshot/snapshot.js} +166 -35
  136. package/dist/snapshot/snapshot.js.map +1 -0
  137. package/dist/{structured-output.d.ts → snapshot/structured-output.d.ts} +1 -1
  138. package/dist/snapshot/structured-output.d.ts.map +1 -0
  139. package/dist/snapshot/structured-output.js.map +1 -0
  140. package/dist/{flow-prompt.d.ts → steering/flow-prompt.d.ts} +2 -2
  141. package/dist/steering/flow-prompt.d.ts.map +1 -0
  142. package/dist/{flow-prompt.js → steering/flow-prompt.js} +1 -1
  143. package/dist/steering/flow-prompt.js.map +1 -0
  144. package/dist/{sliding-prompt.d.ts → steering/sliding-prompt.d.ts} +8 -7
  145. package/dist/steering/sliding-prompt.d.ts.map +1 -0
  146. package/dist/{sliding-prompt.js → steering/sliding-prompt.js} +15 -64
  147. package/dist/steering/sliding-prompt.js.map +1 -0
  148. package/dist/{tool-utils.d.ts → steering/tool-utils.d.ts} +1 -0
  149. package/dist/steering/tool-utils.d.ts.map +1 -0
  150. package/dist/{tool-utils.js → steering/tool-utils.js} +10 -3
  151. package/dist/steering/tool-utils.js.map +1 -0
  152. package/dist/{ask-user.d.ts → tools/ask-user.d.ts} +3 -15
  153. package/dist/tools/ask-user.d.ts.map +1 -0
  154. package/dist/tools/ask-user.js +778 -0
  155. package/dist/tools/ask-user.js.map +1 -0
  156. package/dist/{timed-bash.d.ts → tools/timed-bash.d.ts} +2 -7
  157. package/dist/tools/timed-bash.d.ts.map +1 -0
  158. package/dist/{timed-bash.js → tools/timed-bash.js} +2 -2
  159. package/dist/tools/timed-bash.js.map +1 -0
  160. package/dist/{web-tool.d.ts → tools/web-tool.d.ts} +1 -1
  161. package/dist/tools/web-tool.d.ts.map +1 -0
  162. package/dist/{web-tool.js → tools/web-tool.js} +8 -7
  163. package/dist/tools/web-tool.js.map +1 -0
  164. package/dist/tui/flow-colors.d.ts +55 -0
  165. package/dist/tui/flow-colors.d.ts.map +1 -0
  166. package/dist/tui/flow-colors.js +22 -0
  167. package/dist/tui/flow-colors.js.map +1 -0
  168. package/dist/{render-utils.d.ts → tui/render-utils.d.ts} +1 -1
  169. package/dist/tui/render-utils.d.ts.map +1 -0
  170. package/dist/{render-utils.js → tui/render-utils.js} +3 -3
  171. package/dist/tui/render-utils.js.map +1 -0
  172. package/dist/tui/render.d.ts +21 -0
  173. package/dist/tui/render.d.ts.map +1 -0
  174. package/dist/tui/render.js +813 -0
  175. package/dist/tui/render.js.map +1 -0
  176. package/dist/tui/scramble/algorithm.d.ts +7 -0
  177. package/dist/tui/scramble/algorithm.d.ts.map +1 -0
  178. package/dist/tui/scramble/algorithm.js +227 -0
  179. package/dist/tui/scramble/algorithm.js.map +1 -0
  180. package/dist/tui/scramble/constants.d.ts +99 -0
  181. package/dist/tui/scramble/constants.d.ts.map +1 -0
  182. package/dist/tui/scramble/constants.js +101 -0
  183. package/dist/tui/scramble/constants.js.map +1 -0
  184. package/dist/tui/scramble/index.d.ts +6 -0
  185. package/dist/tui/scramble/index.d.ts.map +1 -0
  186. package/dist/tui/scramble/index.js +6 -0
  187. package/dist/tui/scramble/index.js.map +1 -0
  188. package/dist/tui/scramble/manager.d.ts +48 -0
  189. package/dist/tui/scramble/manager.d.ts.map +1 -0
  190. package/dist/tui/scramble/manager.js +959 -0
  191. package/dist/tui/scramble/manager.js.map +1 -0
  192. package/dist/tui/scramble/utils.d.ts +18 -0
  193. package/dist/tui/scramble/utils.d.ts.map +1 -0
  194. package/dist/tui/scramble/utils.js +145 -0
  195. package/dist/tui/scramble/utils.js.map +1 -0
  196. package/dist/tui/single-select-layout.d.ts +17 -0
  197. package/dist/tui/single-select-layout.d.ts.map +1 -0
  198. package/dist/{single-select-layout.js → tui/single-select-layout.js} +8 -25
  199. package/dist/tui/single-select-layout.js.map +1 -0
  200. package/dist/types/flow.d.ts +110 -0
  201. package/dist/types/flow.d.ts.map +1 -0
  202. package/dist/{types.js → types/flow.js} +3 -54
  203. package/dist/types/flow.js.map +1 -0
  204. package/dist/types/index.d.ts +8 -0
  205. package/dist/types/index.d.ts.map +1 -0
  206. package/dist/types/index.js +7 -0
  207. package/dist/types/index.js.map +1 -0
  208. package/dist/types/output.d.ts +104 -0
  209. package/dist/types/output.d.ts.map +1 -0
  210. package/dist/types/output.js +5 -0
  211. package/dist/types/output.js.map +1 -0
  212. package/dist/types/ui.d.ts +24 -0
  213. package/dist/types/ui.d.ts.map +1 -0
  214. package/dist/types/ui.js +55 -0
  215. package/dist/types/ui.js.map +1 -0
  216. package/package.json +1 -1
  217. package/dist/agents.d.ts.map +0 -1
  218. package/dist/agents.js.map +0 -1
  219. package/dist/ask-user.d.ts.map +0 -1
  220. package/dist/ask-user.js +0 -1405
  221. package/dist/ask-user.js.map +0 -1
  222. package/dist/batch.d.ts +0 -12
  223. package/dist/batch.d.ts.map +0 -1
  224. package/dist/batch.js +0 -11
  225. package/dist/batch.js.map +0 -1
  226. package/dist/cli-args.d.ts.map +0 -1
  227. package/dist/cli-args.js.map +0 -1
  228. package/dist/config.d.ts.map +0 -1
  229. package/dist/config.js.map +0 -1
  230. package/dist/depth.d.ts.map +0 -1
  231. package/dist/depth.js.map +0 -1
  232. package/dist/executor.d.ts.map +0 -1
  233. package/dist/executor.js.map +0 -1
  234. package/dist/flow-prompt.d.ts.map +0 -1
  235. package/dist/flow-prompt.js.map +0 -1
  236. package/dist/flow.d.ts.map +0 -1
  237. package/dist/flow.js.map +0 -1
  238. package/dist/notify-state.d.ts.map +0 -1
  239. package/dist/notify-state.js.map +0 -1
  240. package/dist/notify.d.ts.map +0 -1
  241. package/dist/notify.js.map +0 -1
  242. package/dist/reasoning-strip.d.ts.map +0 -1
  243. package/dist/reasoning-strip.js.map +0 -1
  244. package/dist/render-utils.d.ts.map +0 -1
  245. package/dist/render-utils.js.map +0 -1
  246. package/dist/render.d.ts +0 -24
  247. package/dist/render.d.ts.map +0 -1
  248. package/dist/render.js +0 -592
  249. package/dist/render.js.map +0 -1
  250. package/dist/runner-events.d.ts.map +0 -1
  251. package/dist/runner-events.js.map +0 -1
  252. package/dist/scramble.d.ts +0 -183
  253. package/dist/scramble.d.ts.map +0 -1
  254. package/dist/scramble.js +0 -2478
  255. package/dist/scramble.js.map +0 -1
  256. package/dist/session-mode.d.ts.map +0 -1
  257. package/dist/session-mode.js.map +0 -1
  258. package/dist/settings-resolver.d.ts.map +0 -1
  259. package/dist/settings-resolver.js +0 -148
  260. package/dist/settings-resolver.js.map +0 -1
  261. package/dist/single-select-layout.d.ts +0 -20
  262. package/dist/single-select-layout.d.ts.map +0 -1
  263. package/dist/single-select-layout.js.map +0 -1
  264. package/dist/sliding-prompt.d.ts.map +0 -1
  265. package/dist/sliding-prompt.js.map +0 -1
  266. package/dist/snapshot.d.ts.map +0 -1
  267. package/dist/snapshot.js.map +0 -1
  268. package/dist/spec-mode.d.ts +0 -13
  269. package/dist/spec-mode.d.ts.map +0 -1
  270. package/dist/spec-mode.js +0 -90
  271. package/dist/spec-mode.js.map +0 -1
  272. package/dist/structured-output.d.ts.map +0 -1
  273. package/dist/structured-output.js.map +0 -1
  274. package/dist/timed-bash.d.ts.map +0 -1
  275. package/dist/timed-bash.js.map +0 -1
  276. package/dist/tool-utils.d.ts.map +0 -1
  277. package/dist/tool-utils.js.map +0 -1
  278. package/dist/transitions.d.ts.map +0 -1
  279. package/dist/transitions.js.map +0 -1
  280. package/dist/types.d.ts +0 -224
  281. package/dist/types.d.ts.map +0 -1
  282. package/dist/types.js.map +0 -1
  283. package/dist/web-tool.d.ts.map +0 -1
  284. package/dist/web-tool.js.map +0 -1
  285. /package/dist/{agents.d.ts → core/agents.d.ts} +0 -0
  286. /package/dist/{depth.d.ts → core/depth.d.ts} +0 -0
  287. /package/dist/{transitions.d.ts → core/transitions.d.ts} +0 -0
  288. /package/dist/{notify-state.js → notify/notify-state.js} +0 -0
  289. /package/dist/{notify.d.ts → notify/notify.d.ts} +0 -0
  290. /package/dist/{runner-events.d.ts → snapshot/runner-events.d.ts} +0 -0
  291. /package/dist/{structured-output.js → snapshot/structured-output.js} +0 -0
@@ -16,8 +16,9 @@
16
16
  * execution. Parsed by processFlowJsonLine().
17
17
  */
18
18
  import { stripReasoningFromAssistantMessage } from "./reasoning-strip.js";
19
- import { stripSteeringHintFromContent, contentContainsSteeringHintTag, isJsonEqual, } from "./sliding-prompt.js";
20
- import { stripStrategicHintsFromContent } from "./tool-utils.js";
19
+ import { stripSteeringHintFromContent, contentContainsSteeringHintTag, isJsonEqual, } from "../steering/sliding-prompt.js";
20
+ import { stripStrategicHintsFromContent } from "../steering/tool-utils.js";
21
+ import { logError } from "../config/log.js";
21
22
  // ---------------------------------------------------------------------------
22
23
  // Session snapshot serialization
23
24
  // ---------------------------------------------------------------------------
@@ -163,7 +164,7 @@ function logCompress(toolName, before, after) {
163
164
  if (!DEBUG_CONTEXT)
164
165
  return;
165
166
  const reduction = before > 0 ? ((1 - after / before) * 100).toFixed(0) : "0";
166
- console.error(`[context-compress] ${toolName}: ${before} → ${after} bytes (${reduction}% reduction)`);
167
+ logError(`[context-compress] ${toolName}: ${before} → ${after} bytes (${reduction}% reduction)`);
167
168
  }
168
169
  const KNOWN_SECTION_HEADERS = [
169
170
  /^--- (.+) \((\d+) lines\) ---$/,
@@ -434,7 +435,7 @@ export function compressToolResults(snapshot, cache) {
434
435
  ? (typeof rawContent === "string" ? rawContent.length : JSON.stringify(rawContent).length)
435
436
  : 0;
436
437
  const size = originalText.length || contentSize || line.length;
437
- rendered = `[flow] prior result · ${size} chars (not cached or evicted)`;
438
+ rendered = `[flow] prior result · ${size} chars — full context unavailable (result not cached at this depth)`;
438
439
  }
439
440
  else {
440
441
  const renderResults = compressed.map(renderCompressedFlowResult);
@@ -618,12 +619,62 @@ export function stripBatchReadToolCalls(snapshot) {
618
619
  }
619
620
  return `${result.join("\n")}\n`;
620
621
  }
622
+ // ---------------------------------------------------------------------------
623
+ // Reparent orphans
624
+ // ---------------------------------------------------------------------------
625
+ /**
626
+ * Fix parentId references that point to messages which no longer exist.
627
+ * Call this after any pass that drops messages.
628
+ */
629
+ function reparentOrphans(snapshot) {
630
+ const lines = snapshot.trimEnd().split("\n");
631
+ const survivingIds = new Set();
632
+ for (const line of lines) {
633
+ try {
634
+ const entry = JSON.parse(line);
635
+ const id = entry?.message?.id ?? entry?.message?.messageId ?? entry?.id;
636
+ if (typeof id === "string" && id)
637
+ survivingIds.add(id);
638
+ const parentId = entry?.parentId ?? entry?.parentMessageId ?? entry?.message?.parentId ?? entry?.message?.parentMessageId;
639
+ if (typeof parentId === "string" && parentId && !(typeof id === "string" && id))
640
+ survivingIds.add(parentId);
641
+ }
642
+ catch { /* ignore */ }
643
+ }
644
+ for (let i = 0; i < lines.length; i++) {
645
+ try {
646
+ let entry = JSON.parse(lines[i]);
647
+ const entryParentId = entry.parentId ?? entry.parentMessageId;
648
+ const messageParentId = entry.message?.parentId ?? entry.message?.parentMessageId;
649
+ const parentId = entryParentId ?? messageParentId;
650
+ if (typeof parentId === "string" && parentId && !survivingIds.has(parentId)) {
651
+ let modified = false;
652
+ if (entry.parentId === parentId || entry.parentMessageId === parentId) {
653
+ const { parentId: _pid, parentMessageId: _pmid, ...restEntry } = entry;
654
+ entry = restEntry;
655
+ modified = true;
656
+ }
657
+ if (entry.message && (entry.message.parentId === parentId || entry.message.parentMessageId === parentId)) {
658
+ const { parentId: _pid, parentMessageId: _pmid, ...restMessage } = entry.message;
659
+ entry = { ...entry, message: restMessage };
660
+ modified = true;
661
+ }
662
+ if (modified) {
663
+ lines[i] = JSON.stringify(entry);
664
+ }
665
+ }
666
+ }
667
+ catch { /* ignore */ }
668
+ }
669
+ return `${lines.join("\n")}\n`;
670
+ }
621
671
  export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
622
672
  if (!snapshot)
623
- return snapshot;
673
+ return { result: snapshot, passesApplied: [] };
624
674
  const preBytes = snapshot.length;
625
675
  const lines = snapshot.trimEnd().split("\n");
626
676
  const sanitizedLines = [];
677
+ const subPasses = new Set();
627
678
  for (let i = 0; i < lines.length; i++) {
628
679
  const line = lines[i];
629
680
  let entry;
@@ -647,18 +698,64 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
647
698
  ...(options.depth !== undefined ? { depth: options.depth } : {}),
648
699
  };
649
700
  changed = true;
701
+ subPasses.add("forkMetadataInjection");
650
702
  }
651
703
  // Replace the parent orchestrator system prompt with a brief note.
652
704
  // Children receive their own directive in the <activation> block.
653
705
  if (entry.systemPrompt && typeof entry.systemPrompt === "string") {
654
706
  entry = { ...entry, systemPrompt: "[parent orchestrator system prompt stripped — child receives its own directive]" };
655
707
  changed = true;
708
+ subPasses.add("stripSystemPrompt");
709
+ }
710
+ // Prevent child from inheriting parent's session identity.
711
+ // Rename id → parentId so lineage is preserved but the child
712
+ // generates its own session identifier.
713
+ if ('id' in entry) {
714
+ entry = { ...entry, parentId: entry.id };
715
+ delete entry.id;
716
+ changed = true;
717
+ subPasses.add('stripSessionId');
656
718
  }
657
719
  }
720
+ // Drop type: "system" entries — the parent orchestrator system prompt was already
721
+ // stripped from the header above. Standalone system events leak the full prompt.
722
+ // Children receive their own directive in the <activation> block.
723
+ if (entry?.type === "system") {
724
+ subPasses.add("dropSystemEvents");
725
+ continue;
726
+ }
727
+ // Drop custom_message entries — hidden orchestrator instructions (e.g.
728
+ // flow continuation hook messages with display:false) that children
729
+ // should never see.
730
+ if (entry?.type === "custom_message") {
731
+ subPasses.add("dropCustomMessages");
732
+ continue;
733
+ }
734
+ // Drop parent-specific configuration events; child receives its own
735
+ // model/tier via the <activation> block and CLI args.
736
+ if (entry?.type === "model_change" || entry?.type === "thinking_level_change") {
737
+ subPasses.add("dropConfigEvents");
738
+ continue;
739
+ }
740
+ // Defense-in-depth: drop entries with an explicit unknown type that do not
741
+ // belong in the fork snapshot protocol. Entries without a type field (e.g. bare
742
+ // session headers from getHeader) pass through unchanged.
743
+ if (entry?.type !== undefined &&
744
+ entry?.type !== "session" &&
745
+ entry?.type !== "message") {
746
+ subPasses.add("dropUnknownTypes");
747
+ continue;
748
+ }
749
+ // Drop malformed message entries that lack a message payload.
750
+ if (entry?.type === "message" && !entry.message) {
751
+ subPasses.add("dropMalformedMessages");
752
+ continue;
753
+ }
658
754
  // Drop sliding system prompt messages entirely.
659
755
  if (entry?.type === "message" &&
660
756
  entry.message?.role === "system" &&
661
757
  contentContainsSteeringHintTag(entry.message?.content)) {
758
+ subPasses.add("dropSlidingSystemPrompts");
662
759
  continue;
663
760
  }
664
761
  if (entry?.type === "message" && entry.message) {
@@ -667,6 +764,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
667
764
  if (message.role === "toolResult") {
668
765
  message = { ...message, role: "tool" };
669
766
  changed = true;
767
+ subPasses.add("normalizeToolResultRole");
670
768
  }
671
769
  // Strip reasoning/thinking from assistant messages.
672
770
  // (Reasoning typically only appears in assistant messages, but we
@@ -676,7 +774,10 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
676
774
  if (message.role === "assistant" || message.role === "system" || message.role === "tool") {
677
775
  const stripped = stripReasoningFromAssistantMessage(message);
678
776
  message = stripped.message;
679
- changed ||= stripped.changed;
777
+ if (stripped.changed) {
778
+ changed = true;
779
+ subPasses.add("stripReasoning");
780
+ }
680
781
  }
681
782
  // Strip inner `message.timestamp` — the outer event-level timestamp (ISO string)
682
783
  // is sufficient for ordering. The inner epoch-ms timestamp is redundant.
@@ -684,6 +785,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
684
785
  const { timestamp, ...restMessage } = message;
685
786
  message = restMessage;
686
787
  changed = true;
788
+ subPasses.add("stripTimestamps");
687
789
  }
688
790
  // Strip API metadata fields that children don't need (~5-7 KB per assistant message).
689
791
  // IMPORTANT: keep `usage` (including `totalTokens`). The child `pi` process replays
@@ -707,6 +809,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
707
809
  if (stripped) {
708
810
  message = { ...rest, ...(cleanedUsage !== undefined ? { usage: cleanedUsage } : {}) };
709
811
  changed = true;
812
+ subPasses.add("stripApiMetadata");
710
813
  }
711
814
  }
712
815
  // Strip `details` from tool/toolResult messages — carries FlowDetails UI metadata
@@ -716,6 +819,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
716
819
  const { details, ...restMessage } = message;
717
820
  message = restMessage;
718
821
  changed = true;
822
+ subPasses.add("stripDetails");
719
823
  }
720
824
  }
721
825
  if ("content" in message) {
@@ -725,6 +829,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
725
829
  if (!isJsonEqual(afterSliding, modifiedContent)) {
726
830
  modifiedContent = afterSliding;
727
831
  changed = true;
832
+ subPasses.add("stripSteeringHints");
728
833
  }
729
834
  // Strip strategic hints from tool results
730
835
  if (message.role === "tool" || message.role === "toolResult") {
@@ -732,6 +837,47 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
732
837
  if (!isJsonEqual(afterHints, modifiedContent)) {
733
838
  modifiedContent = afterHints;
734
839
  changed = true;
840
+ subPasses.add("stripStrategicHints");
841
+ }
842
+ }
843
+ // Compress parent activation prompts in nested snapshot JSONL
844
+ // (detect user messages containing <context-seal> at depth >= 2).
845
+ if (message.role === "user" && options?.depth !== undefined && options.depth >= 2) {
846
+ let hasParentActivation = false;
847
+ let previewText = "";
848
+ const parentActivationRegex = /<context-seal>[\s\S]*?<\/context-seal>/;
849
+ let fullText = "";
850
+ if (typeof modifiedContent === "string") {
851
+ fullText = modifiedContent;
852
+ }
853
+ else if (Array.isArray(modifiedContent)) {
854
+ fullText = modifiedContent
855
+ .filter((p) => p.type === "text" && typeof p.text === "string")
856
+ .map((p) => p.text)
857
+ .join("");
858
+ }
859
+ if (parentActivationRegex.test(fullText)) {
860
+ hasParentActivation = true;
861
+ // Extract mission content for preview; fall back to content after </context-seal>
862
+ const missionMatch = fullText.match(/<mission>([\s\S]*?)<\/mission>/);
863
+ if (missionMatch) {
864
+ previewText = missionMatch[1].trim().replace(/\s+/g, " ").slice(0, 200).trim();
865
+ }
866
+ else {
867
+ const afterSeal = fullText.split(/<\/context-seal>/).pop() ?? fullText;
868
+ previewText = afterSeal.trim().slice(0, 200).trim();
869
+ }
870
+ }
871
+ if (hasParentActivation) {
872
+ const compact = `[Parent flow activation stripped] Mission preview: ${previewText}`;
873
+ if (typeof modifiedContent === "string") {
874
+ modifiedContent = compact;
875
+ }
876
+ else {
877
+ modifiedContent = [{ type: "text", text: compact }];
878
+ }
879
+ changed = true;
880
+ subPasses.add("compressParentActivation");
735
881
  }
736
882
  }
737
883
  if (changed) {
@@ -745,44 +891,28 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
745
891
  const outLine = changed ? JSON.stringify(entry) : line;
746
892
  sanitizedLines.push(outLine);
747
893
  }
748
- // Reparent orphaned parentIds after steering-hint messages were dropped.
749
- // Build a set of surviving message IDs, then fix any parentId that points
750
- // to a removed message.
751
- const survivingIds = new Set();
752
- for (const line of sanitizedLines) {
753
- try {
754
- const entry = JSON.parse(line);
755
- const id = entry?.message?.id ?? entry?.message?.messageId ?? entry?.id;
756
- if (typeof id === "string" && id)
757
- survivingIds.add(id);
758
- }
759
- catch { /* ignore */ }
760
- }
761
- for (let i = 0; i < sanitizedLines.length; i++) {
762
- try {
763
- const entry = JSON.parse(sanitizedLines[i]);
764
- if (!entry?.message)
765
- continue;
766
- const parentId = entry.message.parentId ?? entry.message.parentMessageId;
767
- if (typeof parentId === "string" && parentId && !survivingIds.has(parentId)) {
768
- const { parentId: _pid, parentMessageId: _pmid, ...restMessage } = entry.message;
769
- entry.message = restMessage;
770
- sanitizedLines[i] = JSON.stringify(entry);
771
- }
772
- }
773
- catch { /* ignore */ }
774
- }
894
+ const passesApplied = [];
775
895
  let sanitized = `${sanitizedLines.join("\n")}\n`;
896
+ passesApplied.push(...subPasses);
897
+ // Reparent orphaned parentIds after steering-hint messages were dropped.
898
+ sanitized = reparentOrphans(sanitized);
899
+ passesApplied.push("reparentOrphans");
776
900
  // Strip batch_read tool calls from assistant messages.
777
901
  // Children don't have batch_read in their active tools.
778
902
  sanitized = stripBatchReadToolCalls(sanitized);
903
+ passesApplied.push("stripBatchRead");
779
904
  // Compress tool results (flow, batch, web, ask_user).
780
905
  sanitized = compressToolResults(sanitized, cache);
906
+ passesApplied.push("compressToolResults");
907
+ // Reparent again after stripBatchRead and compressToolResults may have
908
+ // dropped additional messages, leaving new orphaned parentIds.
909
+ sanitized = reparentOrphans(sanitized);
910
+ passesApplied.push("reparentOrphans");
781
911
  // Telemetry: measure total delta across sanitization, stripping, and compression.
782
912
  const postBytes = sanitized.length;
783
913
  const reduction = preBytes > 0 ? ((1 - postBytes / preBytes) * 100).toFixed(0) : "0";
784
914
  if (DEBUG_CONTEXT) {
785
- console.error(`[context-snapshot] pre: ${preBytes} → post: ${postBytes} bytes (${reduction}% reduction)`);
915
+ logError(`[context-snapshot] pre: ${preBytes} → post: ${postBytes} bytes (${reduction}% reduction)`);
786
916
  }
787
917
  // Always emit compression-stats as a trailing metadata entry so the dump contains
788
918
  // observability data regardless of DEBUG_CONTEXT setting.
@@ -791,7 +921,8 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
791
921
  preBytes,
792
922
  postBytes,
793
923
  reductionPercent: Number(reduction),
924
+ passesApplied,
794
925
  }) + "\n";
795
- return sanitized;
926
+ return { result: sanitized, passesApplied };
796
927
  }
797
928
  //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/snapshot/snapshot.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * and validates it against the FlowStructuredOutput schema.
6
6
  */
7
7
  import type { Message } from "@mariozechner/pi-ai";
8
- import type { CommandEntry, FlowStructuredOutput } from "./types.js";
8
+ import type { CommandEntry, FlowStructuredOutput } from "../types/output.js";
9
9
  /**
10
10
  * Extract a structured JSON output block from the end of an assistant's text.
11
11
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../../src/snapshot/structured-output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAU,YAAY,EAAa,oBAAoB,EAAe,MAAM,oBAAoB,CAAC;AAwD7G;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAoCtF;AAyCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAuH/E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-output.js","sourceRoot":"","sources":["../../src/snapshot/structured-output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,MAAM,cAAc,GAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAElF,SAAS,QAAQ,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,MAA+B,EAAE,GAAW;IACpE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,iFAAiF;AACjF,SAAS,gBAAgB,CAAC,IAAa;IACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3E,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACzF,OAAO,IAAI,CAAC;AACb,CAAC;AAED,iFAAiF;AACjF,SAAS,uBAAuB,CAAC,GAAY;IAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,CACN,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAC9B,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAoB,CAAC;QACjD,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC;QAC/B,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC;QAChC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC;QAC/B,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC;QACjC,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC;QACjC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAC7B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IACnD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,mDAAmD;IACnD,wDAAwD;IACxD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvD,sEAAsE;IACtE,iEAAiE;IACjE,OAAO;QACN,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;QAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;QAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;QACjC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,IAAY;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACvD,oDAAoD;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACzD,IAAI,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAClD,oDAAoD;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACzD,IAAI,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAmB;IAC9D,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,mCAAmC;IAEnC,+DAA+D;IAC/D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAChG,MAAM,EAAE,GACN,GAA0C,CAAC,UAAU;YACrD,GAA4C,CAAC,YAAY;YAC1D,EAAE,CAAC;QACJ,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;aACtB,MAAM,CAAC,CAAC,CAAkC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC/F,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACpC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,uEAAuE;IACvE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACzD,IAAI,KAAK;YAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,4EAA4E;IAC5E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElD,mEAAmE;IACnE,uCAAuC;IACvC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,iCAAiC;IAEjC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QACtE,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;gBAAE,SAAS;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAK,IAAyC,CAAC,QAAQ,IAAI,EAAE,CAAC;YACpF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,UAAU,GAAI,IAA2C,CAAC,UAAU,IAAK,IAA6C,CAAC,YAAY,IAAI,EAAE,CAAC;YAEhJ,QAAQ,IAAI,EAAE,CAAC;gBACd,KAAK,MAAM,CAAC,CAAC,CAAC;oBACb,MAAM,GAAG,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAC;oBAC3C,IAAI,GAAG,EAAE,CAAC;wBACT,QAAQ,CAAC,IAAI,CAAC;4BACb,OAAO,EAAE,GAAG;4BACZ,IAAI,EAAE,MAAM;4BACZ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAClF,CAAC,CAAC;oBACJ,CAAC;oBACD,MAAM;gBACP,CAAC;gBAED,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;wBAChC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACR,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;4BACvB,CAAC,CAAC,IAAI,CAAC,EAAE;4BACT,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;gCAC/B,CAAC,CAAC,IAAI,CAAC,UAAU;gCACjB,CAAC,CAAC,EAAE,CAAC;oBACR,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBACzD,MAAM,YAAY,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;oBAEzD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,EAAE;4BAAE,SAAS;wBAClB,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAW,CAAC;wBACzC,IAAI,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;4BACrC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAW,CAAC;4BACrC,IAAI,EAAE;gCAAE,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,OAAiB,CAAC,CAAC;4BAEtD,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;4BAErD,IAAI,MAAM,EAAE,CAAC;gCACZ,wDAAwD;gCACxD,QAAQ,CAAC,IAAI,CAAC;oCACb,OAAO,EAAE,EAAE,CAAC,OAAiB;oCAC7B,IAAI,EAAE,MAAM;oCACZ,aAAa,EAAE,MAAM;iCACrB,CAAC,CAAC;gCACH,IAAI,EAAE;oCAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChC,CAAC;4BACD,0DAA0D;wBAC3D,CAAC;oBACF,CAAC;oBACD,MAAM;gBACP,CAAC;gBAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;oBACxB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAa,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBACzD,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;oBAEvD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;wBACtB,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;4BAAE,SAAS,CAAC,kBAAkB;wBACxD,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACxC,IAAI,CAAC,OAAO;4BAAE,SAAS,CAAC,oBAAoB;wBAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACnC,IAAI,CAAC,MAAM;4BAAE,SAAS,CAAC,2CAA2C;wBAElE,QAAQ,CAAC,IAAI,CAAC;4BACb,OAAO;4BACP,IAAI,EAAE,MAAM;4BACZ,aAAa,EAAE,MAAM;yBACrB,CAAC,CAAC;wBACH,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACxB,CAAC;oBACD,MAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Extracted from index.ts for single-responsibility and testability.
5
5
  */
6
- import type { FlowConfig } from "./agents.js";
7
- import type { FlowDepthConfig } from "./depth.js";
6
+ import type { FlowConfig } from "../core/agents.js";
7
+ import type { FlowDepthConfig } from "../core/depth.js";
8
8
  export interface BeforeAgentStartEvent {
9
9
  prompt: string;
10
10
  systemPrompt: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-prompt.d.ts","sourceRoot":"","sources":["../../src/steering/flow-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMxD,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACrB;AAMD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAI9D;AAMD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,OAAO,EACpB,eAAe,EAAE,UAAU,EAAE,EAC7B,WAAW,EAAE,eAAe,GAC1B,MAAM,GAAG,SAAS,CAyFpB"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Extracted from index.ts for single-responsibility and testability.
5
5
  */
6
- import { looksLikeUrlPrompt, looksLikeWebSearchPrompt, } from "./web-tool.js";
6
+ import { looksLikeUrlPrompt, looksLikeWebSearchPrompt, } from "../tools/web-tool.js";
7
7
  // ---------------------------------------------------------------------------
8
8
  // Active tools helper
9
9
  // ---------------------------------------------------------------------------
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-prompt.js","sourceRoot":"","sources":["../../src/steering/flow-prompt.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,7 @@
7
7
  */
8
8
  export declare const STEERING_HINT_OPEN_TAG: string;
9
9
  export declare const STEERING_HINT_CLOSE_TAG: string;
10
- /** Query whether spec-driven planning mode is active. */
11
- export declare function isSpecModeActive(): boolean;
12
- /** Set spec-driven planning mode on/off. */
13
- export declare function setSpecModeActive(active: boolean): void;
14
10
  export declare const STEERING_HINT: string;
15
- export declare const IMPLEMENT_PROMPT: string;
16
11
  /** Input-message content types (string or multipart text-part array). */
17
12
  type MessageContent = string | Array<{
18
13
  type: string;
@@ -39,7 +34,13 @@ export declare function stripSteeringHintsFromMessages(messages: any[]): {
39
34
  messages: any[];
40
35
  changed: boolean;
41
36
  };
42
- /** Build a system message containing the steering hint. */
43
- export declare function makeSteeringHintMessage(referenceMessage?: any): any;
37
+ export declare function configureSteering(config: {
38
+ enabled: boolean;
39
+ customPrompt?: string;
40
+ }): void;
41
+ /** Build a system message containing the steering hint.
42
+ * Returns null when steering is disabled so the caller can skip injection.
43
+ */
44
+ export declare function makeSteeringHintMessage(referenceMessage?: any): any | null;
44
45
  export {};
45
46
  //# sourceMappingURL=sliding-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sliding-prompt.d.ts","sourceRoot":"","sources":["../../src/steering/sliding-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,eAAO,MAAM,sBAAsB,QAAuD,CAAC;AAC3F,eAAO,MAAM,uBAAuB,QAAwD,CAAC;AAE7F,eAAO,MAAM,aAAa,QASG,CAAC;AAgB9B,yEAAyE;AACzE,KAAK,cAAc,GAAG,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAkBtE,sDAAsD;AACtD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,yEAAyE;AACzE,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GACjD,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAU5C;AAED,wFAAwF;AACxF,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAW/E;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAc3D;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAoBrG;AAQD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAE3F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAU1E"}
@@ -12,74 +12,12 @@ import { randomUUID } from "node:crypto";
12
12
  const STEERING_HINT_UUID = randomUUID();
13
13
  export const STEERING_HINT_OPEN_TAG = `<pi-flow-steering-hint id="${STEERING_HINT_UUID}">`;
14
14
  export const STEERING_HINT_CLOSE_TAG = `</pi-flow-steering-hint id="${STEERING_HINT_UUID}">`;
15
- // ---------------------------------------------------------------------------
16
- // Mode state — toggled by /spec command
17
- // ---------------------------------------------------------------------------
18
- let _specModeActive = true;
19
- /** Query whether spec-driven planning mode is active. */
20
- export function isSpecModeActive() {
21
- return _specModeActive;
22
- }
23
- /** Set spec-driven planning mode on/off. */
24
- export function setSpecModeActive(active) {
25
- _specModeActive = active;
26
- }
27
15
  export const STEERING_HINT = `${STEERING_HINT_OPEN_TAG}\n` +
28
- `You are in spec-driven planning mode.\n\n` +
29
- `Your goal: Investigate the codebase, discuss with the user, and guide them to type /spec when ready to proceed to implementation.\n\n` +
30
- `IMPORTANT: You are the orchestrator. You have batch_read, flow, web, and ask_user.\n` +
31
- `You do NOT have bash or write. Delegate bash/write operations to flows.\n\n` +
32
- `## Phase 1: Investigate\n\n` +
33
- `### Direct (batch_read):\n` +
34
- `- Read package.json, tsconfig, existing source files\n` +
35
- `- Read test files, config files, documentation\n` +
36
- `- Identify patterns, conventions, architecture\n\n` +
37
- `### Delegated (flow [scout]):\n` +
38
- `- flow [scout] intent: "Check git status, current branch, recent commits, test setup, CI config. Report findings."\n\n` +
39
- `### Build a mental map:\n` +
40
- `- Tech stack, patterns, test coverage, constraints\n` +
41
- `- What exists vs what needs to be built\n\n` +
42
- `## Phase 2: Discuss (2-3 questions via ask_user)\n\n` +
43
- `Ask 2-3 targeted questions grounded in Phase 1 findings.\n\n` +
44
- `### Question styles (use ALL three):\n` +
45
- `1. **Challenge assumptions** — "You asked for X, but codebase has Y. Extend Y or build X?"\n` +
46
- `2. **Present trade-offs** — "Approach A [fast] vs B [extensible]. Which fits?"\n` +
47
- `3. **Gap-filling** — "Do you need offline support? Expected scale?"\n\n` +
48
- `### Rules:\n` +
49
- `- NEVER ask what you can discover with tools\n` +
50
- `- Mark recommended option with [preferred], place it first\n` +
51
- `- 2-4 options per question with clear trade-off descriptions\n` +
52
- `- Questions must be codebase-specific, not generic\n` +
53
- `## Phase 3: Recommend Exit\n\n` +
54
- `Tell the user:\n` +
55
- `"When you're ready to implement, type /spec to exit planning mode. A plan will be synthesized from our discussion and placed in the editor for review."\n\n` +
56
- `### Keep the summary concise:\n` +
57
- `- Investigation Findings (current state + evidence)\n` +
58
- `- User Alignment (Q&A record with impact)\n` +
59
- `- Technical Context (stack, deps, testing)\n` +
60
- `- Design Decisions (decision/choice/rationale table)\n` +
61
- `- Implementation Plan (phased)\n` +
62
- `- Risks & Mitigations\n` +
63
- `- Assumptions\n\n` +
64
- `## Phase 4: Hand-off\n\n` +
65
- `After the user types /spec, the system synthesizes a plan and switches to implement mode. Do not initiate builds yourself.\n\n` +
66
- `## Anti-patterns:\n` +
67
- `- ❌ Asking without investigating first\n` +
68
- `- ❌ Skipping investigation\n` +
69
- `- ❌ Asking about discoverable facts\n` +
70
- `- ❌ Not marking [preferred]\n` +
71
- `- ❌ Writing spec without Q&A record\n` +
72
- `- ❌ Using bash/write directly (delegate to flows)\n` +
73
- `- ❌ Using the build flow (use scout, ideas, or craft for investigation and planning)\n` +
74
- `- ❌ Recommending to build or implement right away instead of guiding the user to type /spec\n` +
75
- `${STEERING_HINT_CLOSE_TAG}`;
76
- export const IMPLEMENT_PROMPT = `${STEERING_HINT_OPEN_TAG}\n` +
77
16
  `You are the orchestrator. You have batch_read, flow, web, and ask_user.\n` +
78
17
  `You do NOT have bash or write. Delegate all implementation to flows.\n\n` +
79
18
  `- Context: Answer directly if possible; otherwise, investigate first, then delegate.\n` +
80
19
  `- Acts: [Route all git, bash, CLI, or terminal tasks to \`build\` flow, For major conflicts or misaligned goals use ask_user, For lengthy plans with many steps use ask_user to confirm main points before proceeding]\n` +
81
20
  `- Mindset: Gather context before acting. Investigate, discuss, plan — then delegate.\n` +
82
- `- Spec: If a spec exists in \`.specs/\`, read it first and use it to guide implementation.\n` +
83
21
  `- Anti-patterns: [Never implement directly, Never ask what you can discover with tools, Never skip investigation]\n` +
84
22
  `Note: Context is inherited automatically for child flow; write intents focusing only on new work.\n` +
85
23
  `${STEERING_HINT_CLOSE_TAG}`;
@@ -175,11 +113,24 @@ export function stripSteeringHintsFromMessages(messages) {
175
113
  });
176
114
  return { messages: result, changed };
177
115
  }
178
- /** Build a system message containing the steering hint. */
116
+ // ---------------------------------------------------------------------------
117
+ // Configurable steering
118
+ // ---------------------------------------------------------------------------
119
+ let steeringConfig = { enabled: true, customPrompt: undefined };
120
+ export function configureSteering(config) {
121
+ steeringConfig = { enabled: config.enabled, customPrompt: config.customPrompt };
122
+ }
123
+ /** Build a system message containing the steering hint.
124
+ * Returns null when steering is disabled so the caller can skip injection.
125
+ */
179
126
  export function makeSteeringHintMessage(referenceMessage) {
127
+ if (!steeringConfig.enabled) {
128
+ return null;
129
+ }
130
+ const body = steeringConfig.customPrompt ?? STEERING_HINT;
180
131
  return {
181
132
  role: "system",
182
- content: _specModeActive ? STEERING_HINT : IMPLEMENT_PROMPT,
133
+ content: body,
183
134
  timestamp: referenceMessage?.timestamp,
184
135
  };
185
136
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sliding-prompt.js","sourceRoot":"","sources":["../../src/steering/sliding-prompt.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  * or push a new text item if none exists.
10
10
  */
11
11
  export declare function appendTextToToolResult(result: any, text: string): void;
12
+ export declare function configureStrategicHint(enabled: boolean): void;
12
13
  /**
13
14
  * Strip strategic hints from text.
14
15
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-utils.d.ts","sourceRoot":"","sources":["../../src/steering/tool-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOtE;AAID,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE7D;AAgBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAUjD;AAWD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAMzD"}