pi-agent-flow 2.0.2 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/README.md +1 -1
  2. package/agents/audit.md +24 -17
  3. package/agents/build.md +1 -1
  4. package/agents/craft.md +1 -1
  5. package/agents/debug.md +1 -1
  6. package/agents/ideas.md +1 -1
  7. package/agents/scout.md +8 -8
  8. package/agents/trace.md +23 -0
  9. package/dist/batch/batch-bash.d.ts +10 -0
  10. package/dist/batch/batch-bash.d.ts.map +1 -1
  11. package/dist/batch/batch-bash.js +35 -2
  12. package/dist/batch/batch-bash.js.map +1 -1
  13. package/dist/batch/constants.d.ts +6 -3
  14. package/dist/batch/constants.d.ts.map +1 -1
  15. package/dist/batch/execute.js +2 -2
  16. package/dist/batch/execute.js.map +1 -1
  17. package/dist/batch/index.d.ts +9 -11
  18. package/dist/batch/index.d.ts.map +1 -1
  19. package/dist/batch/index.js +88 -58
  20. package/dist/batch/index.js.map +1 -1
  21. package/dist/batch/render.d.ts +22 -5
  22. package/dist/batch/render.d.ts.map +1 -1
  23. package/dist/batch/render.js +332 -17
  24. package/dist/batch/render.js.map +1 -1
  25. package/dist/batch/summary.d.ts.map +1 -1
  26. package/dist/batch/summary.js +22 -4
  27. package/dist/batch/summary.js.map +1 -1
  28. package/dist/config/config.d.ts +5 -4
  29. package/dist/config/config.d.ts.map +1 -1
  30. package/dist/config/config.js +15 -5
  31. package/dist/config/config.js.map +1 -1
  32. package/dist/config/models.d.ts.map +1 -1
  33. package/dist/config/models.js +7 -1
  34. package/dist/config/models.js.map +1 -1
  35. package/dist/config/settings-resolver.d.ts +5 -4
  36. package/dist/config/settings-resolver.d.ts.map +1 -1
  37. package/dist/config/settings-resolver.js +50 -21
  38. package/dist/config/settings-resolver.js.map +1 -1
  39. package/dist/core2/snapshot.d.ts +21 -0
  40. package/dist/core2/snapshot.d.ts.map +1 -0
  41. package/dist/core2/snapshot.js +214 -0
  42. package/dist/core2/snapshot.js.map +1 -0
  43. package/dist/{core → flow}/agents.d.ts.map +1 -1
  44. package/dist/{core → flow}/agents.js +5 -2
  45. package/dist/{core → flow}/agents.js.map +1 -1
  46. package/dist/flow/command.d.ts +1 -1
  47. package/dist/flow/command.d.ts.map +1 -1
  48. package/dist/flow/complexity.d.ts +20 -0
  49. package/dist/flow/complexity.d.ts.map +1 -0
  50. package/dist/flow/complexity.js +34 -0
  51. package/dist/flow/complexity.js.map +1 -0
  52. package/dist/flow/continuation.d.ts +1 -1
  53. package/dist/flow/continuation.d.ts.map +1 -1
  54. package/dist/flow/continuation.js +2 -1
  55. package/dist/flow/continuation.js.map +1 -1
  56. package/dist/{core → flow}/depth.d.ts +1 -1
  57. package/dist/{core → flow}/depth.d.ts.map +1 -1
  58. package/dist/{core → flow}/depth.js.map +1 -1
  59. package/dist/{core → flow}/executor.d.ts +39 -19
  60. package/dist/flow/executor.d.ts.map +1 -0
  61. package/dist/flow/executor.js +727 -0
  62. package/dist/flow/executor.js.map +1 -0
  63. package/dist/flow/index.d.ts +2 -2
  64. package/dist/flow/index.d.ts.map +1 -1
  65. package/dist/flow/index.js +1 -1
  66. package/dist/flow/index.js.map +1 -1
  67. package/dist/flow/loop-command.d.ts +1 -1
  68. package/dist/flow/loop-command.d.ts.map +1 -1
  69. package/dist/{core/flow.d.ts → flow/runner.d.ts} +10 -13
  70. package/dist/flow/runner.d.ts.map +1 -0
  71. package/dist/{core/flow.js → flow/runner.js} +35 -34
  72. package/dist/flow/runner.js.map +1 -0
  73. package/dist/{core → flow}/session-registry.d.ts.map +1 -1
  74. package/dist/{core → flow}/session-registry.js.map +1 -1
  75. package/dist/flow/settings-command.d.ts +3 -3
  76. package/dist/flow/settings-command.d.ts.map +1 -1
  77. package/dist/flow/settings-command.js +39 -21
  78. package/dist/flow/settings-command.js.map +1 -1
  79. package/dist/{core → flow}/transition.d.ts.map +1 -1
  80. package/dist/{core → flow}/transition.js.map +1 -1
  81. package/dist/flow/types.d.ts +4 -0
  82. package/dist/flow/types.d.ts.map +1 -1
  83. package/dist/flow/warp.d.ts +1 -1
  84. package/dist/flow/warp.d.ts.map +1 -1
  85. package/dist/index.d.ts +1 -2
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +189 -188
  88. package/dist/index.js.map +1 -1
  89. package/dist/notify/notify.d.ts +1 -1
  90. package/dist/notify/notify.d.ts.map +1 -1
  91. package/dist/notify/notify.js +1 -1
  92. package/dist/snapshot/cli-args.d.ts +2 -2
  93. package/dist/snapshot/cli-args.d.ts.map +1 -1
  94. package/dist/snapshot/cli-args.js +21 -5
  95. package/dist/snapshot/cli-args.js.map +1 -1
  96. package/dist/snapshot/runner-events.d.ts +2 -2
  97. package/dist/snapshot/runner-events.d.ts.map +1 -1
  98. package/dist/snapshot/runner-events.js +48 -4
  99. package/dist/snapshot/runner-events.js.map +1 -1
  100. package/dist/snapshot/structured-output.d.ts +1 -1
  101. package/dist/snapshot/structured-output.d.ts.map +1 -1
  102. package/dist/snapshot/structured-output.js +20 -2
  103. package/dist/snapshot/structured-output.js.map +1 -1
  104. package/dist/steering/flow-prompt.d.ts +2 -2
  105. package/dist/steering/flow-prompt.d.ts.map +1 -1
  106. package/dist/steering/flow-prompt.js +14 -33
  107. package/dist/steering/flow-prompt.js.map +1 -1
  108. package/dist/steering/sliding-prompt.d.ts.map +1 -1
  109. package/dist/steering/sliding-prompt.js +3 -2
  110. package/dist/steering/sliding-prompt.js.map +1 -1
  111. package/dist/tools/ask-user.d.ts +2 -2
  112. package/dist/tools/ask-user.d.ts.map +1 -1
  113. package/dist/tools/ask-user.js +1 -1
  114. package/dist/tools/ask-user.js.map +1 -1
  115. package/dist/tools/timed-bash.js +1 -1
  116. package/dist/tools/timed-bash.js.map +1 -1
  117. package/dist/tools/trace.d.ts +34 -0
  118. package/dist/tools/trace.d.ts.map +1 -0
  119. package/dist/tools/trace.js +180 -0
  120. package/dist/tools/trace.js.map +1 -0
  121. package/dist/tools/web-ops.d.ts +85 -0
  122. package/dist/tools/web-ops.d.ts.map +1 -0
  123. package/dist/tools/{web-tool.js → web-ops.js} +51 -125
  124. package/dist/tools/web-ops.js.map +1 -0
  125. package/dist/tui/flow-colors.d.ts +1 -0
  126. package/dist/tui/flow-colors.d.ts.map +1 -1
  127. package/dist/tui/flow-colors.js +2 -2
  128. package/dist/tui/flow-colors.js.map +1 -1
  129. package/dist/tui/render-utils.js +1 -1
  130. package/dist/tui/render-utils.js.map +1 -1
  131. package/dist/tui/render.d.ts +32 -1
  132. package/dist/tui/render.d.ts.map +1 -1
  133. package/dist/tui/render.js +666 -170
  134. package/dist/tui/render.js.map +1 -1
  135. package/dist/tui/scramble/algorithm.d.ts +4 -2
  136. package/dist/tui/scramble/algorithm.d.ts.map +1 -1
  137. package/dist/tui/scramble/algorithm.js +44 -12
  138. package/dist/tui/scramble/algorithm.js.map +1 -1
  139. package/dist/tui/scramble/constants.d.ts +3 -0
  140. package/dist/tui/scramble/constants.d.ts.map +1 -1
  141. package/dist/tui/scramble/constants.js +4 -1
  142. package/dist/tui/scramble/constants.js.map +1 -1
  143. package/dist/tui/scramble/index.d.ts +2 -1
  144. package/dist/tui/scramble/index.d.ts.map +1 -1
  145. package/dist/tui/scramble/index.js +1 -1
  146. package/dist/tui/scramble/index.js.map +1 -1
  147. package/dist/tui/scramble/manager.d.ts +1 -1
  148. package/dist/tui/scramble/manager.d.ts.map +1 -1
  149. package/dist/tui/scramble/manager.js +24 -19
  150. package/dist/tui/scramble/manager.js.map +1 -1
  151. package/dist/types/flow.d.ts +17 -1
  152. package/dist/types/flow.d.ts.map +1 -1
  153. package/dist/types/flow.js.map +1 -1
  154. package/dist/types/output.d.ts +11 -36
  155. package/dist/types/output.d.ts.map +1 -1
  156. package/dist/types/output.js +1 -1
  157. package/dist/types/ui.d.ts +1 -1
  158. package/dist/types/ui.d.ts.map +1 -1
  159. package/package.json +9 -9
  160. package/dist/core/executor.d.ts.map +0 -1
  161. package/dist/core/executor.js +0 -378
  162. package/dist/core/executor.js.map +0 -1
  163. package/dist/core/flow.d.ts.map +0 -1
  164. package/dist/core/flow.js.map +0 -1
  165. package/dist/core/session-mode.d.ts +0 -11
  166. package/dist/core/session-mode.d.ts.map +0 -1
  167. package/dist/core/session-mode.js +0 -26
  168. package/dist/core/session-mode.js.map +0 -1
  169. package/dist/core/transitions.d.ts +0 -39
  170. package/dist/core/transitions.d.ts.map +0 -1
  171. package/dist/core/transitions.js +0 -59
  172. package/dist/core/transitions.js.map +0 -1
  173. package/dist/snapshot/index.d.ts +0 -2
  174. package/dist/snapshot/index.d.ts.map +0 -1
  175. package/dist/snapshot/index.js +0 -2
  176. package/dist/snapshot/index.js.map +0 -1
  177. package/dist/snapshot/reasoning-strip.d.ts +0 -22
  178. package/dist/snapshot/reasoning-strip.d.ts.map +0 -1
  179. package/dist/snapshot/reasoning-strip.js +0 -58
  180. package/dist/snapshot/reasoning-strip.js.map +0 -1
  181. package/dist/snapshot/snapshot.d.ts +0 -77
  182. package/dist/snapshot/snapshot.d.ts.map +0 -1
  183. package/dist/snapshot/snapshot.js +0 -1824
  184. package/dist/snapshot/snapshot.js.map +0 -1
  185. package/dist/tools/web-tool.d.ts +0 -46
  186. package/dist/tools/web-tool.d.ts.map +0 -1
  187. package/dist/tools/web-tool.js.map +0 -1
  188. /package/dist/{core → flow}/agents.d.ts +0 -0
  189. /package/dist/{core → flow}/depth.js +0 -0
  190. /package/dist/{core → flow}/session-registry.d.ts +0 -0
  191. /package/dist/{core → flow}/session-registry.js +0 -0
  192. /package/dist/{core → flow}/transition.d.ts +0 -0
  193. /package/dist/{core → flow}/transition.js +0 -0
package/dist/index.js CHANGED
@@ -6,185 +6,164 @@
6
6
  */
7
7
  import { Type } from "@sinclair/typebox";
8
8
  import { setupNotify } from "./notify/notify.js";
9
- import { discoverFlows, getFlowTier } from "./core/agents.js";
9
+ import { discoverFlows, getFlowTier } from "./flow/agents.js";
10
10
  import { getInheritedCliArgs } from "./snapshot/cli-args.js";
11
11
  import { renderFlowCall, renderFlowResult } from "./tui/render.js";
12
- import { terminateAllChildGroups } from "./core/flow.js";
13
- import { executeFlows, evictCacheOverflow } from "./core/executor.js";
12
+ import { DEFAULT_FLOW_COLORS } from "./tui/flow-colors.js";
13
+ import { terminateAllChildGroups } from "./flow/runner.js";
14
+ import { executeFlows } from "./flow/executor.js";
14
15
  import { appendDirectiveOnce, resetDirectiveTracker, configureDirective, stripDirectivesFromMessages } from "./steering/tool-utils.js";
15
- import { createBatchTool, createBatchReadTool, BashProcessTracker, createBatchBashPollTool, } from "./batch/index.js";
16
- import { createWebTool } from "./tools/web-tool.js";
16
+ import { createBatchTool, createBatchReadTool, BashProcessTracker, createBatchBashPollTool, runBashWithLimits, } from "./batch/index.js";
17
17
  import { createAskUserTool } from "./tools/ask-user.js";
18
18
  import { stripSteeringHintText, stripSteeringHintsFromMessages, makeSteeringHintMessage, configureSteering, } from "./steering/sliding-prompt.js";
19
19
  import { registerFlow, getGoal, getGoalForSession, recordFlowCompletion, addTokens, shutdownWakeup } from "./flow/index.js";
20
- import * as sessionRegistry from "./core/session-registry.js";
20
+ import * as sessionRegistry from "./flow/session-registry.js";
21
21
  import { createTimedBashToolDefinition } from "./tools/timed-bash.js";
22
- import { resolveFlowDepthConfig, } from "./core/depth.js";
23
- import { buildForkSessionSnapshotJsonl, sanitizeForkSnapshot, } from "./snapshot/snapshot.js";
22
+ import { createTraceTool } from "./tools/trace.js";
23
+ import { executeOperations } from "./batch/execute.js";
24
+ import { runWebOps } from "./tools/web-ops.js";
25
+ import { resolveFlowDepthConfig, } from "./flow/depth.js";
26
+ import { buildCore2Snapshot } from "./core2/snapshot.js";
24
27
  import { resolveSettings, } from "./config/settings-resolver.js";
25
28
  import { scrambleManager } from "./tui/scramble/index.js";
26
29
  import { logWarn, logError } from "./config/log.js";
27
30
  export { logWarn, logError };
28
- // ---------------------------------------------------------------------------
29
- // Persistent flow result cache — shared across execute() calls so historical
30
- // flow results are compressed properly in fork snapshots.
31
- // ---------------------------------------------------------------------------
32
- const flowResultCache = new Map();
33
- /**
34
- * Reconstruct flowResultCache from an existing session branch after restart.
35
- * Scans tool results for the "flow" tool and rebuilds CompressedFlowResult
36
- * entries so child-fork compression works immediately without waiting for
37
- * new flows to complete.
38
- */
39
- function reconstructFlowResultCache(sessionManager, cache) {
40
- const branch = sessionManager.getBranch();
41
- if (!Array.isArray(branch) || branch.length === 0)
42
- return;
43
- // Pass 1: map toolCallId -> "flow" from assistant messages
44
- const toolCallIdToName = new Map();
45
- for (const entry of branch) {
46
- if (!entry || typeof entry !== "object")
47
- continue;
48
- const e = entry;
49
- if (e.type !== "message")
50
- continue;
51
- const msg = e.message;
52
- if (!msg || msg.role !== "assistant")
53
- continue;
54
- const content = msg.content;
55
- if (!Array.isArray(content))
56
- continue;
57
- for (const part of content) {
58
- if (!part || typeof part !== "object")
59
- continue;
60
- const p = part;
61
- if (p.type === "toolCall" && p.name === "flow") {
62
- const tcId = (p.id ?? p.toolCallId);
63
- if (tcId)
64
- toolCallIdToName.set(tcId, "flow");
65
- }
66
- }
67
- }
68
- // Pass 2: scan tool/toolResult messages and rebuild cache
69
- for (const entry of branch) {
70
- if (!entry || typeof entry !== "object")
71
- continue;
72
- const e = entry;
73
- if (e.type !== "message")
74
- continue;
75
- const msg = e.message;
76
- if (!msg || (msg.role !== "tool" && msg.role !== "toolResult"))
77
- continue;
78
- let toolCallId;
79
- if (typeof msg.toolCallId === "string" && msg.toolCallId.trim()) {
80
- toolCallId = msg.toolCallId;
81
- }
82
- else if (Array.isArray(msg.content)) {
83
- for (const part of msg.content) {
84
- if (!part || typeof part !== "object")
85
- continue;
86
- const p = part;
87
- if (p.type === "toolResult" && typeof p.toolCallId === "string" && p.toolCallId.trim()) {
88
- toolCallId = p.toolCallId;
89
- break;
90
- }
91
- }
92
- }
93
- if (!toolCallId || toolCallIdToName.get(toolCallId) !== "flow")
94
- continue;
95
- const details = msg.details;
96
- if (!details || !Array.isArray(details.results))
97
- continue;
98
- const results = details.results;
99
- const compressed = [];
100
- for (const r of results) {
101
- const so = r.structuredOutput;
102
- if (!so)
103
- continue;
104
- const c = {
105
- type: typeof r.type === "string" ? r.type : "unknown",
106
- status: typeof r.exitCode === "number" && r.exitCode === 0 ? "accomplished" : "failed",
107
- };
108
- if (typeof r.intent === "string")
109
- c.intent = r.intent;
110
- if (typeof r.aim === "string")
111
- c.aim = r.aim;
112
- if (typeof so.summary === "string")
113
- c.summary = so.summary;
114
- if (Array.isArray(so.files))
115
- c.files = so.files;
116
- if (Array.isArray(so.actions))
117
- c.actions = so.actions;
118
- if (Array.isArray(so.commands))
119
- c.commands = so.commands;
120
- if (Array.isArray(so.notDone))
121
- c.notDone = so.notDone;
122
- if (Array.isArray(so.nextSteps))
123
- c.nextSteps = so.nextSteps;
124
- if (Array.isArray(so.reasoning))
125
- c.reasoning = so.reasoning;
126
- if (Array.isArray(so.notes))
127
- c.notes = so.notes;
128
- if (typeof r.errorMessage === "string")
129
- c.error = r.errorMessage;
130
- compressed.push(c);
131
- }
132
- if (compressed.length > 0) {
133
- const existing = cache.get(toolCallId) ?? [];
134
- existing.push(...compressed);
135
- cache.set(toolCallId, existing);
136
- }
137
- }
138
- evictCacheOverflow(cache);
139
- }
140
31
  import { computeActiveTools, buildBeforeAgentStartPrompt, } from "./steering/flow-prompt.js";
141
32
  // ---------------------------------------------------------------------------
142
33
  // Tool parameter schema
143
34
  // ---------------------------------------------------------------------------
35
+ const BatchDispatchOp = Type.Object({
36
+ tool: Type.Literal("batch"),
37
+ ops: Type.Array(Type.Object({
38
+ o: Type.String(),
39
+ p: Type.String(),
40
+ c: Type.Optional(Type.String()),
41
+ e: Type.Optional(Type.Array(Type.Object({ f: Type.String(), r: Type.String() }))),
42
+ s: Type.Optional(Type.Number()),
43
+ l: Type.Optional(Type.Union([Type.Number(), Type.Boolean()])),
44
+ i: Type.Optional(Type.Union([Type.String(), Type.Boolean()])),
45
+ t: Type.Optional(Type.Union([Type.Number(), Type.String()])),
46
+ h: Type.Optional(Type.String()),
47
+ q: Type.Optional(Type.String()),
48
+ n: Type.Optional(Type.Number()),
49
+ u: Type.Optional(Type.Number()),
50
+ }), { description: "File/batch operations matching the batch tool schema." }),
51
+ });
52
+ const BashDispatchOp = Type.Object({
53
+ tool: Type.Literal("bash"),
54
+ ops: Type.Array(Type.Object({
55
+ c: Type.String({ description: "Shell command" }),
56
+ h: Type.Optional(Type.String({ description: "Working directory override" })),
57
+ t: Type.Optional(Type.Number({ description: "Timeout in ms" })),
58
+ }), { description: "Bash command objects." }),
59
+ });
60
+ const WebDispatchOp = Type.Object({
61
+ tool: Type.Literal("web"),
62
+ ops: Type.Array(Type.Object({
63
+ o: Type.Union([Type.Literal("search"), Type.Literal("fetch")]),
64
+ q: Type.Optional(Type.String()),
65
+ u: Type.Optional(Type.String()),
66
+ f: Type.Optional(Type.String()),
67
+ }), { description: "Web operations matching the web tool schema." }),
68
+ });
69
+ const DispatchOpSchema = Type.Union([BatchDispatchOp, BashDispatchOp, WebDispatchOp], {
70
+ description: "Pre-dispatch tool call with discriminated tool type and typed ops array.",
71
+ });
144
72
  const FlowItem = Type.Object({
145
73
  type: Type.String({
146
- description: "Flow type. Matching is case-insensitive. Must correspond to an available flow name such as scout, debug, build, craft, audit, or ideas.",
74
+ description: "Flow type (scout, debug, build, craft, audit, ideas).",
147
75
  }),
148
76
  intent: Type.String({
149
- description: "Specific mission for this flow — target concrete files, folders, or code patterns. Be precise in final outcome/expectation and common sense, but avoid over-specifying implementation details or assuming current state that may have shifted.",
77
+ description: "Detailed mission for this flow.",
150
78
  }),
151
79
  aim: Type.String({
152
- description: "Extreme short intent — one sentence, 5-7 words, headline-style summary of what this flow does.",
80
+ description: "Short (5-7 words) headline summary.",
153
81
  }),
154
- acceptance: Type.Optional(Type.String({ description: "Short success criteria one sentence stating what done looks like." })),
155
- cwd: Type.Optional(Type.String({ description: "Working directory override for this flow." })),
156
- sessionMode: Type.Optional(Type.Union([
82
+ acceptance: Type.Optional(Type.String({ description: "Success criteria for the task." })),
83
+ cwd: Type.Optional(Type.String({ description: "Working directory override." })),
84
+ complexity: Type.Union([
157
85
  Type.Literal("snap"),
158
- Type.Literal("fast"),
159
- Type.Literal("default"),
160
- Type.Literal("long"),
161
- Type.Literal("extreme_long"),
86
+ Type.Literal("simple"),
87
+ Type.Literal("moderate"),
88
+ Type.Literal("complex"),
89
+ Type.Literal("intricate"),
162
90
  ], {
163
- 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.",
91
+ description: "Budget/Audit level: snap (120s), simple (300s), moderate (600s), complex (900s), intricate (1200s).",
92
+ }),
93
+ dispatch: Type.Optional(Type.Array(DispatchOpSchema, {
94
+ description: "Tools to run before the flow starts (results are injected into the prompt).",
164
95
  })),
165
96
  }, {
166
97
  title: "FlowTask",
167
- description: "A single flow task — must be a JSON object, NOT a string.",
98
+ description: "A single flow task object.",
168
99
  });
169
100
  const FlowParams = Type.Object({
170
101
  flow: Type.Array(FlowItem, {
171
- description: "Array of flow tasks to execute. Each runs in its own forked process. " +
172
- "Optional sessionMode selects the flow state budget: fast=300s, default=600s, long=900s, extreme_long=1200s.",
173
- examples: [
174
- { type: "scout", intent: "Map auth module files and trace JWT validation path", aim: "Map auth and trace JWT" },
175
- { type: "audit", intent: "Audit input validation and SQL injection risks in user routes", aim: "Audit user route security" },
176
- ],
102
+ description: "Specialized flow tasks to dive into.",
177
103
  minItems: 1,
178
104
  }),
179
105
  confirmProjectFlows: Type.Optional(Type.Boolean({
180
- description: "Whether to prompt the user before running project-local flows. Default: true.",
106
+ description: "Prompt before running local flows. Default: true.",
181
107
  default: true,
182
108
  })),
109
+ auditLoop: Type.Optional(Type.Number({
110
+ description: "Override audit cycles (0-3).",
111
+ default: 0,
112
+ minimum: 0,
113
+ maximum: 3,
114
+ })),
115
+ }, {
116
+ title: "FlowToolParams",
117
+ description: "The root object MUST contain a 'flow' array. Never flatten fields to the root.",
118
+ examples: [{
119
+ flow: [{ type: "scout", intent: "Map auth module files", aim: "Map auth module", complexity: "moderate" }],
120
+ }],
183
121
  });
184
122
  const inheritedCliArgs = getInheritedCliArgs();
185
123
  // ---------------------------------------------------------------------------
186
124
  // Helpers
187
125
  // ---------------------------------------------------------------------------
126
+ async function executeDispatchOps(dispatch, cwd, ctx, signal) {
127
+ const parts = [];
128
+ let toolCallIndex = 0;
129
+ for (const group of dispatch) {
130
+ if (signal?.aborted)
131
+ break;
132
+ const toolCallId = `pre_dispatch_${group.tool}_${toolCallIndex++}`;
133
+ try {
134
+ if (group.tool === "batch") {
135
+ // Separate file ops from bash ops
136
+ const fileOps = group.ops.filter((op) => op.o !== "bash");
137
+ const bashOps = group.ops.filter((op) => op.o === "bash");
138
+ if (fileOps.length > 0) {
139
+ const fileOutput = await executeOperations(fileOps, cwd, signal, { includeLimitWarnings: true });
140
+ parts.push(`### batch (file ops)\n\ntool_call_id: ${toolCallId}\n\n${fileOutput.contentText}`);
141
+ }
142
+ if (bashOps.length > 0) {
143
+ for (const op of bashOps) {
144
+ const { stdout, stderr, exitCode } = await runBashWithLimits(op.c ?? "", op.h ?? cwd, op.t ?? 30000, signal);
145
+ parts.push(`### bash [${op.i ?? "auto"}] exit ${exitCode}\n\ntool_call_id: ${toolCallId}\n\n${stdout}${stderr ? `\n[stderr]\n${stderr}` : ""}`);
146
+ }
147
+ }
148
+ }
149
+ else if (group.tool === "bash") {
150
+ for (const cmd of group.ops) {
151
+ const { stdout, stderr, exitCode } = await runBashWithLimits(cmd.c, cmd.h ?? cwd, cmd.t ?? 30000, signal);
152
+ parts.push(`### bash\n\ntool_call_id: ${toolCallId}\n\n--- bash exit ${exitCode} ---\n${stdout}${stderr ? `\n[stderr]\n${stderr}` : ""}`);
153
+ }
154
+ }
155
+ else if (group.tool === "web") {
156
+ const webOutput = await runWebOps({ op: group.ops }, ctx, signal);
157
+ parts.push(`### web\n\ntool_call_id: ${toolCallId}\n\n${webOutput.content[0].text}`);
158
+ }
159
+ }
160
+ catch (err) {
161
+ const message = err instanceof Error ? err.message : String(err);
162
+ parts.push(`### ${group.tool} (error)\n\ntool_call_id: ${toolCallId}\n\nPre-dispatch failed: ${message}`);
163
+ }
164
+ }
165
+ return parts.join("\n\n---\n\n");
166
+ }
188
167
  function makeFlowDetailsFactory(projectFlowsDir) {
189
168
  return (results) => ({
190
169
  mode: "flow",
@@ -193,8 +172,6 @@ function makeFlowDetailsFactory(projectFlowsDir) {
193
172
  results,
194
173
  });
195
174
  }
196
- // Re-export compressToolResults and stripBatchReadToolCalls for tests
197
- export { compressToolResults, stripBatchReadToolCalls } from "./snapshot/snapshot.js";
198
175
  // ---------------------------------------------------------------------------
199
176
  // Extension entry point
200
177
  // ---------------------------------------------------------------------------
@@ -231,8 +208,8 @@ export default function (pi) {
231
208
  description: "Maximum number of flows to execute in parallel (default: 4).",
232
209
  type: "string",
233
210
  });
234
- pi.registerFlag("flow-session-mode", {
235
- description: "Default child-flow session mode: snap (90s), fast (300s), default (600s), long (900s), or extreme_long (1200s).",
211
+ pi.registerFlag("flow-complexity", {
212
+ description: "Default child-flow complexity: snap (120s no review), simple (300s no review), moderate (600s 1x audit), complex (900s 2x audit), or intricate (1200s 3x audit).",
236
213
  type: "string",
237
214
  });
238
215
  pi.registerFlag("tool-optimize", {
@@ -259,6 +236,14 @@ export default function (pi) {
259
236
  description: "Disable glitch/scramble effect.",
260
237
  type: "boolean",
261
238
  });
239
+ pi.registerFlag("body-lite", {
240
+ description: "Use lite collapsed body mode (aim + cmd only).",
241
+ type: "boolean",
242
+ });
243
+ pi.registerFlag("body-full", {
244
+ description: "Use full collapsed body mode (aim + cmd + msg).",
245
+ type: "boolean",
246
+ });
262
247
  // Wire up bundled notification channel
263
248
  setupNotify(pi);
264
249
  // Wire up /flow command and continuation hooks
@@ -273,11 +258,6 @@ export default function (pi) {
273
258
  sessionRegistry.register(ctx.cwd, ctx.sessionManager.getSessionId());
274
259
  _sessionCtx = ctx;
275
260
  resolved = resolveSettings(pi, ctx.cwd);
276
- // Reconstruct historical flow result cache so fork snapshots can compress
277
- // past flow results immediately (instead of showing placeholder text until
278
- // new flows complete). bashTracker is created fresh below — pending OS
279
- // processes are inherently lost across restarts, which is expected.
280
- reconstructFlowResultCache(ctx.sessionManager, flowResultCache);
281
261
  // Wire resolved settings to modules
282
262
  configureSteering({ enabled: resolved.steeringEnabled, customPrompt: resolved.steeringCustomPrompt });
283
263
  configureDirective(resolved.steeringStrategicHint);
@@ -289,17 +269,14 @@ export default function (pi) {
289
269
  pi.setActiveTools(computeActiveTools(resolved.toolOptimize));
290
270
  }
291
271
  // Register tools based on depth.
292
- // Depth 0 (main root state): only batch_read no bash ops, only reads + flow tool.
272
+ // Depth 0 (main root state): batch_read + no bash ops.
293
273
  // Depth > 0 (child flows): batch (with bash), batch_bash_poll — they need bash ops.
294
- // Children use batch for reads (which includes read ops), so batch_read is NOT
295
- // registered for depth > 0 to avoid confusion and keep the tool set minimal.
274
+ // batch_read is registered at all depths for trace and read-only child operations.
296
275
  // The bashProcessTracker is shared between the batch tool (launches bash ops)
297
276
  // and the batch_bash_poll tool (checks on pending bash ops).
298
277
  if (resolved.toolOptimize) {
299
- if (currentDepth === 0) {
300
- pi.registerTool(createBatchReadTool());
301
- }
302
- else {
278
+ pi.registerTool(createBatchReadTool());
279
+ if (currentDepth > 0) {
303
280
  bashTracker = new BashProcessTracker();
304
281
  pi.registerTool(createBatchTool(bashTracker, resolved.toolOptimize));
305
282
  pi.registerTool(createBatchBashPollTool(bashTracker));
@@ -316,7 +293,6 @@ export default function (pi) {
316
293
  });
317
294
  // Clean up global mutable state on session shutdown
318
295
  pi.on("session_shutdown", () => {
319
- flowResultCache.clear();
320
296
  _sessionCtx = undefined;
321
297
  // bashTracker and its pending OS processes are discarded on restart.
322
298
  // This is expected — child process state is not serializable.
@@ -347,6 +323,29 @@ export default function (pi) {
347
323
  return undefined;
348
324
  return { systemPrompt: augmented };
349
325
  });
326
+ // Compaction: inject flow context into the summarization prompt.
327
+ pi.on("session_before_compact", async (event, ctx) => {
328
+ const goal = getGoal(ctx.cwd);
329
+ if (!goal)
330
+ return undefined;
331
+ const completed = goal.completedFlows.slice(-3);
332
+ const flowSummary = completed.length > 0
333
+ ? `\nRecently completed flows:\n${completed.map(f => `- [${f.type}] ${f.aim}`).join("\n")}`
334
+ : "";
335
+ const injection = `\n\n[Flow Context]\nCurrent Goal: ${goal.objective}${goal.acceptance ? `\nAcceptance: ${goal.acceptance}` : ""}${flowSummary}\nMaintain this goal and status in the summary.`;
336
+ return { prompt: (event.prompt || "") + injection };
337
+ });
338
+ // Compaction: re-anchor flow context after summarization.
339
+ pi.on("session_compact", async (_event, ctx) => {
340
+ const goal = getGoal(ctx.cwd);
341
+ if (!goal)
342
+ return;
343
+ // Send a non-displaying message to re-anchor the agent to its goal.
344
+ pi.sendMessage({
345
+ content: `[Flow Re-anchor] Compaction completed. Current Goal: ${goal.objective}. Continue execution.`,
346
+ display: false,
347
+ }, { triggerTurn: false });
348
+ });
350
349
  // Steering hint: insert as a separate system message immediately
351
350
  // before the latest user message each turn. The steering hint is never
352
351
  // part of the static systemPrompt — it is injected dynamically here only.
@@ -413,31 +412,25 @@ export default function (pi) {
413
412
  }
414
413
  return result;
415
414
  });
416
- // Register the web tool
417
- pi.registerTool(createWebTool());
418
415
  // Register the ask_user tool
419
416
  pi.registerTool(createAskUserTool());
417
+ // Register the trace tool (available at all depths — spawns a lightweight child reflection flow)
418
+ pi.registerTool(createTraceTool({
419
+ getSettings: () => resolved ? { toolOptimize: resolved.toolOptimize, structuredOutput: resolved.structuredOutput, bodyVerbosity: resolved.bodyVerbosity } : undefined,
420
+ getDepthConfig: () => depthConfig,
421
+ }));
420
422
  // Register the flow tool
421
423
  if (canTransition) {
422
424
  pi.registerTool({
423
425
  name: "flow",
424
426
  label: "Flow",
425
- promptSnippet: "Transition to specialized agent flows running in isolated forked processes",
427
+ promptSnippet: "Dive into specialized flows (scout, debug, build, craft, audit, ideas) via a `flow` array.",
426
428
  promptGuidelines: [
427
- "Use `flow` when the task requires skills beyond your current context (scout, debug, build, craft, audit, ideas).",
428
- "Combine multiple related tasks into a single `flow` call with an array of flow items.",
429
- "Always provide a concrete intent, aim, and optional acceptance criteria.",
429
+ "Combine multiple tasks into a single `flow` array call.",
430
+ "Each task requires `type`, `intent`, `aim`, and `complexity`.",
431
+ "All tasks MUST be nested inside the `flow` array.",
430
432
  ],
431
- description: [
432
- "If you cannot answer from your current context, you are forbidden from guessing.",
433
- "You MUST enter to the following flow states, with tool call method.",
434
- "",
435
- "Flow states are isolated π processes with forked session snapshots. They run in parallel.",
436
- 'Invoke: { "flow": [{ "type": "scout", "intent": "...", "aim": "...", "sessionMode": "default" }, ...] }',
437
- "Session modes: fast=300s, default=600s, long=900s, extreme_long=1200s. Use long or extreme_long only when the work genuinely needs the larger budget.",
438
- "States: scout, debug, build, craft, audit, ideas.",
439
- "Custom states configs in (create if not exists): .md files in .pi/agents/ or ~/.pi/agent/agents/.",
440
- ].join("\n"),
433
+ description: "Dives into specialized flow states. Requires a `flow` array of tasks with specific `complexity` (snap, simple, moderate, complex, intricate).",
441
434
  parameters: FlowParams,
442
435
  async execute(toolCallId, params, signal, onUpdate, ctx) {
443
436
  if (!resolved) {
@@ -446,16 +439,10 @@ export default function (pi) {
446
439
  const discovery = discoverFlows(ctx.cwd, "all");
447
440
  const { flows } = discovery;
448
441
  const makeDetails = makeFlowDetailsFactory(discovery.projectFlowsDir);
449
- // Build the full fork session snapshot and sanitize only non-inheritable
450
- // artifacts before passing it to child flows.
451
- // Uses the persistent module-level cache so historical flow results
452
- // are properly compressed (not passed through verbatim).
453
- const { result: forkSessionSnapshotJsonl, stats: forkSessionSnapshotStats } = sanitizeForkSnapshot(buildForkSessionSnapshotJsonl(ctx.sessionManager), flowResultCache, {
454
- forkedFrom: ctx.sessionManager.getSessionId(),
455
- forkedAt: new Date().toISOString(),
456
- depth: currentDepth + 1,
457
- ...(ancestorFlowStack.length > 0 ? { parentFlow: ancestorFlowStack[ancestorFlowStack.length - 1] } : {}),
458
- });
442
+ // Build the fork session snapshot. Core-2 preserves all conversation
443
+ // verbatim in chronological order, stripping only batch read/write/edit
444
+ // bodies (keeping first 3 + last 3 lines as orientation).
445
+ const forkSessionSnapshotJsonl = buildCore2Snapshot(ctx.sessionManager);
459
446
  const getTierOverride = (tier) => {
460
447
  const flagName = tier === "lite"
461
448
  ? "flow-lite-model"
@@ -481,7 +468,13 @@ export default function (pi) {
481
468
  acceptance: activeGoal.acceptance,
482
469
  flowCount: activeGoal.completedFlows.length,
483
470
  maxFlows: activeGoal.maxFlows,
471
+ completedFlows: activeGoal.completedFlows.map(f => ({ type: f.type, aim: f.aim })),
484
472
  } : undefined;
473
+ const preDispatchResults = await Promise.all(params.flow.map(async (f) => {
474
+ if (!f.dispatch || f.dispatch.length === 0)
475
+ return undefined;
476
+ return executeDispatchOps(f.dispatch, f.cwd ?? ctx.cwd, ctx, signal);
477
+ }));
485
478
  const result = await executeFlows({
486
479
  flows,
487
480
  currentDepth,
@@ -493,7 +486,7 @@ export default function (pi) {
493
486
  cwd: ctx.cwd,
494
487
  loadedFlowModelConfigs: resolved.loadedFlowModelConfigs,
495
488
  maxConcurrency: resolved.maxConcurrency,
496
- defaultSessionMode: resolved.defaultSessionMode,
489
+ defaultComplexity: resolved.defaultComplexity,
497
490
  signal,
498
491
  onUpdate,
499
492
  makeDetails,
@@ -501,8 +494,6 @@ export default function (pi) {
501
494
  tierOverrideResolver: getTierOverride,
502
495
  fallbackModel: inheritedCliArgs.fallbackModel,
503
496
  forkSessionSnapshotJsonl,
504
- forkSessionSnapshotStats,
505
- flowResultCache,
506
497
  projectFlowsDir: discovery.projectFlowsDir,
507
498
  sessionManager: ctx.sessionManager,
508
499
  hasUI: ctx.hasUI,
@@ -520,7 +511,15 @@ export default function (pi) {
520
511
  addTokens(ctx.cwd, r.usage.input + r.usage.output);
521
512
  }
522
513
  },
523
- }, params.flow.map((f) => ({ type: f.type, intent: f.intent, aim: f.aim, acceptance: f.acceptance, cwd: f.cwd, sessionMode: f.sessionMode })), toolCallId);
514
+ }, params.flow.map((f, i) => ({
515
+ type: f.type,
516
+ intent: f.intent,
517
+ aim: f.aim,
518
+ acceptance: f.acceptance,
519
+ cwd: f.cwd,
520
+ complexity: f.complexity,
521
+ preDispatchResults: preDispatchResults[i],
522
+ })), toolCallId, params.auditLoop ?? 0);
524
523
  if (result.failed) {
525
524
  const text = result.content?.[0]?.text ?? "Flow execution failed";
526
525
  throw new Error(text);
@@ -546,8 +545,8 @@ export default function (pi) {
546
545
  appendDirectiveOnce(flowToolResult, hintContext);
547
546
  return flowToolResult;
548
547
  },
549
- renderCall: (args, theme) => renderFlowCall(args, theme),
550
- renderResult: (result, { expanded }, theme, args) => renderFlowResult(result, expanded, theme, args),
548
+ renderCall: (args, theme) => renderFlowCall(args, theme, { ...DEFAULT_FLOW_COLORS, bodyVerbosity: resolved?.bodyVerbosity }),
549
+ renderResult: (result, { expanded }, theme, args) => renderFlowResult(result, expanded, theme, args, { ...DEFAULT_FLOW_COLORS, bodyVerbosity: resolved?.bodyVerbosity }),
551
550
  });
552
551
  }
553
552
  // -------------------------------------------------------------------------
@@ -567,6 +566,7 @@ export default function (pi) {
567
566
  steeringStrategicHint: resolved.steeringStrategicHint,
568
567
  animationEnabled: resolved.animationEnabled,
569
568
  animationGlitch: resolved.animationGlitch,
569
+ bodyVerbosity: resolved.bodyVerbosity,
570
570
  }
571
571
  : {
572
572
  toolOptimize: true,
@@ -577,6 +577,7 @@ export default function (pi) {
577
577
  steeringStrategicHint: true,
578
578
  animationEnabled: true,
579
579
  animationGlitch: true,
580
+ bodyVerbosity: "lite",
580
581
  },
581
582
  };
582
583
  if (typeof pi.emit === "function") {
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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"}