pi-agent-flow 1.8.1 → 1.8.3

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 (154) hide show
  1. package/README.md +4 -30
  2. package/agents/audit.md +1 -2
  3. package/agents/build.md +1 -0
  4. package/agents/craft.md +12 -8
  5. package/agents/debug.md +2 -2
  6. package/agents/ideas.md +1 -0
  7. package/agents/scout.md +1 -0
  8. package/dist/agents.d.ts +41 -0
  9. package/dist/agents.d.ts.map +1 -0
  10. package/dist/agents.js +283 -0
  11. package/dist/agents.js.map +1 -0
  12. package/dist/batch/batch-bash.d.ts +87 -0
  13. package/dist/batch/batch-bash.d.ts.map +1 -0
  14. package/dist/batch/batch-bash.js +369 -0
  15. package/dist/batch/batch-bash.js.map +1 -0
  16. package/dist/batch/constants.d.ts +100 -0
  17. package/dist/batch/constants.d.ts.map +1 -0
  18. package/dist/batch/constants.js +15 -0
  19. package/dist/batch/constants.js.map +1 -0
  20. package/dist/batch/execute.d.ts +21 -0
  21. package/dist/batch/execute.d.ts.map +1 -0
  22. package/dist/batch/execute.js +440 -0
  23. package/dist/batch/execute.js.map +1 -0
  24. package/dist/batch/fuzzy-edit.d.ts +29 -0
  25. package/dist/batch/fuzzy-edit.d.ts.map +1 -0
  26. package/dist/batch/fuzzy-edit.js +257 -0
  27. package/dist/batch/fuzzy-edit.js.map +1 -0
  28. package/dist/batch/index.d.ts +85 -0
  29. package/dist/batch/index.d.ts.map +1 -0
  30. package/dist/batch/index.js +422 -0
  31. package/dist/batch/index.js.map +1 -0
  32. package/dist/batch/render.d.ts +14 -0
  33. package/dist/batch/render.d.ts.map +1 -0
  34. package/dist/batch/render.js +74 -0
  35. package/dist/batch/render.js.map +1 -0
  36. package/dist/batch/symbols.d.ts +9 -0
  37. package/dist/batch/symbols.d.ts.map +1 -0
  38. package/dist/batch/symbols.js +310 -0
  39. package/dist/batch/symbols.js.map +1 -0
  40. package/dist/batch.d.ts +12 -0
  41. package/dist/batch.d.ts.map +1 -0
  42. package/dist/batch.js +11 -0
  43. package/dist/batch.js.map +1 -0
  44. package/dist/cli-args.d.ts +27 -0
  45. package/dist/cli-args.d.ts.map +1 -0
  46. package/dist/cli-args.js +265 -0
  47. package/dist/cli-args.js.map +1 -0
  48. package/dist/config.d.ts +58 -0
  49. package/dist/config.d.ts.map +1 -0
  50. package/dist/config.js +296 -0
  51. package/dist/config.js.map +1 -0
  52. package/dist/depth.d.ts +25 -0
  53. package/dist/depth.d.ts.map +1 -0
  54. package/dist/depth.js +160 -0
  55. package/dist/depth.js.map +1 -0
  56. package/dist/executor.d.ts +87 -0
  57. package/dist/executor.d.ts.map +1 -0
  58. package/dist/executor.js +295 -0
  59. package/dist/executor.js.map +1 -0
  60. package/dist/flow-prompt.d.ts +23 -0
  61. package/dist/flow-prompt.d.ts.map +1 -0
  62. package/dist/flow-prompt.js +99 -0
  63. package/dist/flow-prompt.js.map +1 -0
  64. package/dist/flow.d.ts +76 -0
  65. package/dist/flow.d.ts.map +1 -0
  66. package/dist/flow.js +704 -0
  67. package/dist/flow.js.map +1 -0
  68. package/dist/index.d.ts +10 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +327 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/reasoning-strip.d.ts +26 -0
  73. package/dist/reasoning-strip.d.ts.map +1 -0
  74. package/dist/reasoning-strip.js +58 -0
  75. package/dist/reasoning-strip.js.map +1 -0
  76. package/dist/render-utils.d.ts +42 -0
  77. package/dist/render-utils.d.ts.map +1 -0
  78. package/dist/render-utils.js +182 -0
  79. package/dist/render-utils.js.map +1 -0
  80. package/dist/render.d.ts +24 -0
  81. package/dist/render.d.ts.map +1 -0
  82. package/dist/render.js +409 -0
  83. package/dist/render.js.map +1 -0
  84. package/dist/runner-events.d.ts +59 -0
  85. package/dist/runner-events.d.ts.map +1 -0
  86. package/dist/runner-events.js +539 -0
  87. package/dist/runner-events.js.map +1 -0
  88. package/dist/session-mode.d.ts +10 -0
  89. package/dist/session-mode.d.ts.map +1 -0
  90. package/dist/session-mode.js +25 -0
  91. package/dist/session-mode.js.map +1 -0
  92. package/dist/settings-resolver.d.ts +28 -0
  93. package/dist/settings-resolver.d.ts.map +1 -0
  94. package/dist/settings-resolver.js +148 -0
  95. package/dist/settings-resolver.js.map +1 -0
  96. package/dist/sliding-prompt.d.ts +40 -0
  97. package/dist/sliding-prompt.d.ts.map +1 -0
  98. package/dist/sliding-prompt.js +121 -0
  99. package/dist/sliding-prompt.js.map +1 -0
  100. package/dist/snapshot.d.ts +29 -0
  101. package/dist/snapshot.d.ts.map +1 -0
  102. package/dist/snapshot.js +199 -0
  103. package/dist/snapshot.js.map +1 -0
  104. package/dist/structured-output.d.ts +36 -0
  105. package/dist/structured-output.d.ts.map +1 -0
  106. package/dist/structured-output.js +244 -0
  107. package/dist/structured-output.js.map +1 -0
  108. package/dist/timed-bash.d.ts +45 -0
  109. package/dist/timed-bash.d.ts.map +1 -0
  110. package/dist/timed-bash.js +219 -0
  111. package/dist/timed-bash.js.map +1 -0
  112. package/dist/tool-utils.d.ts +20 -0
  113. package/dist/tool-utils.d.ts.map +1 -0
  114. package/dist/tool-utils.js +38 -0
  115. package/dist/tool-utils.js.map +1 -0
  116. package/dist/transitions.d.ts +39 -0
  117. package/dist/transitions.d.ts.map +1 -0
  118. package/dist/transitions.js +59 -0
  119. package/dist/transitions.js.map +1 -0
  120. package/dist/types.d.ts +207 -0
  121. package/dist/types.d.ts.map +1 -0
  122. package/dist/types.js +143 -0
  123. package/dist/types.js.map +1 -0
  124. package/dist/web-tool.d.ts +35 -0
  125. package/dist/web-tool.d.ts.map +1 -0
  126. package/dist/web-tool.js +545 -0
  127. package/dist/web-tool.js.map +1 -0
  128. package/package.json +7 -5
  129. package/src/agents.ts +0 -299
  130. package/src/ambient.d.ts +0 -107
  131. package/src/batch/batch-bash.ts +0 -443
  132. package/src/batch/constants.ts +0 -128
  133. package/src/batch/execute.ts +0 -551
  134. package/src/batch/fuzzy-edit.ts +0 -323
  135. package/src/batch/index.ts +0 -494
  136. package/src/batch/render.ts +0 -81
  137. package/src/batch/symbols.ts +0 -341
  138. package/src/batch.ts +0 -28
  139. package/src/cli-args.ts +0 -315
  140. package/src/config.ts +0 -391
  141. package/src/executor.ts +0 -445
  142. package/src/flow.ts +0 -834
  143. package/src/hooks.ts +0 -294
  144. package/src/index.ts +0 -1132
  145. package/src/render-utils.ts +0 -205
  146. package/src/render.ts +0 -524
  147. package/src/runner-events.ts +0 -692
  148. package/src/session-mode.ts +0 -33
  149. package/src/sliding-prompt.ts +0 -144
  150. package/src/structured-output.ts +0 -195
  151. package/src/timed-bash.ts +0 -270
  152. package/src/transitions.ts +0 -86
  153. package/src/types.ts +0 -386
  154. package/src/web-tool.ts +0 -663
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Pi Flow Extension (fork-only)
3
+ *
4
+ * Delegates tasks to specialized flow states running as isolated pi processes.
5
+ * Each flow receives a forked snapshot of the current session context.
6
+ */
7
+ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
8
+ export { compressFlowToolResults } from "./snapshot.js";
9
+ export default function (pi: ExtensionAPI): void;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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;AAoGlE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAMxD,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAuSxC"}
package/dist/index.js ADDED
@@ -0,0 +1,327 @@
1
+ /**
2
+ * Pi Flow Extension (fork-only)
3
+ *
4
+ * Delegates tasks to specialized flow states running as isolated pi processes.
5
+ * Each flow receives a forked snapshot of the current session context.
6
+ */
7
+ import { Type } from "@sinclair/typebox";
8
+ import { discoverFlows, getFlowTier } from "./agents.js";
9
+ import { getInheritedCliArgs } from "./cli-args.js";
10
+ import { renderFlowCall, renderFlowResult } from "./render.js";
11
+ import { terminateAllChildGroups } from "./flow.js";
12
+ import { executeFlows } from "./executor.js";
13
+ import { appendStrategicHint } from "./tool-utils.js";
14
+ import { createBatchTool, createBatchReadTool, BashProcessTracker, createBatchBashPollTool } from "./batch.js";
15
+ import { createWebTool } from "./web-tool.js";
16
+ import { stripSlidingPromptText, stripSlidingPromptsFromMessages, makeSlidingPromptMessage, } from "./sliding-prompt.js";
17
+ import { createTimedBashToolDefinition } from "./timed-bash.js";
18
+ import { resolveFlowDepthConfig, } from "./depth.js";
19
+ import { buildForkSessionSnapshotJsonl, sanitizeForkSnapshot, } from "./snapshot.js";
20
+ import { resolveSettings, } from "./settings-resolver.js";
21
+ import { computeActiveTools, buildBeforeAgentStartPrompt, } from "./flow-prompt.js";
22
+ // ---------------------------------------------------------------------------
23
+ // Tool parameter schema
24
+ // ---------------------------------------------------------------------------
25
+ const FlowItem = Type.Object({
26
+ type: Type.String({
27
+ description: "Flow type. Matching is case-insensitive. Must correspond to an available flow name such as scout, debug, build, craft, audit, or ideas.",
28
+ }),
29
+ intent: Type.String({
30
+ description: "Clear, specific mission for this flow.",
31
+ }),
32
+ aim: Type.String({
33
+ description: "Extreme short intent — one sentence, 5-7 words, headline-style summary of what this flow does.",
34
+ }),
35
+ cwd: Type.Optional(Type.String({ description: "Working directory override for this flow." })),
36
+ sessionMode: Type.Optional(Type.Union([
37
+ Type.Literal("fast"),
38
+ Type.Literal("default"),
39
+ Type.Literal("long"),
40
+ Type.Literal("extreme_long"),
41
+ ], {
42
+ 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.",
43
+ })),
44
+ });
45
+ const FlowParams = Type.Object({
46
+ flow: Type.Array(FlowItem, {
47
+ description: "Array of flow tasks to execute. Each runs in its own forked process. " +
48
+ "Optional sessionMode selects the child-agent budget: fast=300s, default=600s, long=900s, extreme_long=1200s. " +
49
+ 'Example: { flow: [{ type: "scout", "intent": "Find all authentication-related code and trace JWT validation", "aim": "Find auth code and trace JWT", "sessionMode": "fast" }, { type: "build", "intent": "Fix the bug in user registration", "aim": "Fix registration bug", "sessionMode": "long" }] }',
50
+ minItems: 1,
51
+ }),
52
+ confirmProjectFlows: Type.Optional(Type.Boolean({
53
+ description: "Whether to prompt the user before running project-local flows. Default: true.",
54
+ default: true,
55
+ })),
56
+ });
57
+ const inheritedCliArgs = getInheritedCliArgs();
58
+ // ---------------------------------------------------------------------------
59
+ // Helpers
60
+ // ---------------------------------------------------------------------------
61
+ function makeFlowDetailsFactory(projectFlowsDir) {
62
+ return (results) => ({
63
+ mode: "flow",
64
+ delegationMode: "fork",
65
+ projectAgentsDir: projectFlowsDir,
66
+ results,
67
+ });
68
+ }
69
+ // Re-export compressFlowToolResults for tests
70
+ export { compressFlowToolResults } from "./snapshot.js";
71
+ // ---------------------------------------------------------------------------
72
+ // Extension entry point
73
+ // ---------------------------------------------------------------------------
74
+ export default function (pi) {
75
+ pi.registerFlag("flow-max-depth", {
76
+ description: "Maximum allowed flow delegation depth (default: 3).",
77
+ type: "string",
78
+ });
79
+ pi.registerFlag("flow-prevent-cycles", {
80
+ description: "Block delegating to flows already in the current delegation stack (default: true).",
81
+ type: "boolean",
82
+ });
83
+ pi.registerFlag("flow-model-config", {
84
+ description: "Named flow model strategy from settings.json flowModelConfigs.",
85
+ type: "string",
86
+ });
87
+ pi.registerFlag("flow-mode", {
88
+ description: "Persistently switch the global flow model strategy in ~/.pi/agent/settings.json.",
89
+ type: "string",
90
+ });
91
+ pi.registerFlag("flow-lite-model", {
92
+ description: "Model for lite-tier flows (scout, debug).",
93
+ type: "string",
94
+ });
95
+ pi.registerFlag("flow-flash-model", {
96
+ description: "Model for flash-tier flows (build, audit).",
97
+ type: "string",
98
+ });
99
+ pi.registerFlag("flow-full-model", {
100
+ description: "Model for full-tier flows (ideas, craft).",
101
+ type: "string",
102
+ });
103
+ pi.registerFlag("flow-max-concurrency", {
104
+ description: "Maximum number of flows to execute in parallel (default: 4).",
105
+ type: "string",
106
+ });
107
+ pi.registerFlag("flow-session-mode", {
108
+ description: "Default child-flow session mode: fast (300s), default (600s), or long (900s).",
109
+ type: "string",
110
+ });
111
+ pi.registerFlag("tool-optimize", {
112
+ description: "Use the unified batch tool instead of separate read/write/edit tools (default: true).",
113
+ type: "boolean",
114
+ });
115
+ const depthConfig = resolveFlowDepthConfig(pi);
116
+ const { currentDepth, maxDepth, canDelegate, ancestorFlowStack, preventCycles } = depthConfig;
117
+ let resolved;
118
+ let bashTracker;
119
+ // Auto-discover flows on session start
120
+ pi.on("session_start", async (_event, ctx) => {
121
+ resolved = resolveSettings(pi, ctx.cwd);
122
+ // Only restrict tools for the main orchestrator (depth 0).
123
+ // Child flows (depth > 0) receive their tools via --tools CLI arg;
124
+ // overriding them here would strip bash/batch from children.
125
+ if (currentDepth === 0) {
126
+ pi.setActiveTools(computeActiveTools(resolved.toolOptimize));
127
+ }
128
+ // Register batch and batch_read so they are available for main agent and child flows.
129
+ // The bashProcessTracker is shared between the batch tool (launches bash ops)
130
+ // and the batch_bash_poll tool (checks on pending bash ops).
131
+ if (resolved.toolOptimize) {
132
+ bashTracker = new BashProcessTracker();
133
+ pi.registerTool(createBatchReadTool());
134
+ pi.registerTool(createBatchTool(bashTracker));
135
+ pi.registerTool(createBatchBashPollTool(bashTracker));
136
+ }
137
+ // Override built-in bash with timed wrapper so the LLM sees execution-time classification.
138
+ const timedBash = createTimedBashToolDefinition(ctx.cwd);
139
+ if (timedBash) {
140
+ pi.registerTool(timedBash);
141
+ }
142
+ });
143
+ // Re-apply active tools every turn to survive registry refreshes.
144
+ // Skip for child flows — they get tools from --tools CLI arg.
145
+ pi.on("turn_start", () => {
146
+ if (currentDepth > 0 || !resolved)
147
+ return;
148
+ pi.setActiveTools(computeActiveTools(resolved.toolOptimize));
149
+ });
150
+ // Inject available flows into the system prompt.
151
+ // Skip entirely for child flows (depth > 0) — they get their instructions
152
+ // from the 4-part prompt structure in buildFlowArgs and have no web tool.
153
+ pi.on("before_agent_start", async (event) => {
154
+ if (currentDepth > 0 || !resolved)
155
+ return undefined;
156
+ const augmented = buildBeforeAgentStartPrompt(event, resolved.toolOptimize, canDelegate, resolved.discoveredFlows, depthConfig);
157
+ if (augmented === undefined)
158
+ return undefined;
159
+ return { systemPrompt: augmented };
160
+ });
161
+ // Sliding system prompt: insert as a separate system message immediately
162
+ // before the latest user message each turn. Strips from the static
163
+ // systemPrompt to avoid duplication, then inserts separately.
164
+ // Skipped for child flows (depth > 0) — they have explicit <mission> directives.
165
+ pi.on("context", async (event) => {
166
+ if (currentDepth > 0)
167
+ return undefined;
168
+ // Always strip old sliding prompt messages to prevent accumulation
169
+ const { messages, changed: messagesChanged } = stripSlidingPromptsFromMessages(event.messages);
170
+ // Find latest user message
171
+ const userIndices = messages
172
+ .map((m, i) => (m.role === "user" ? i : -1))
173
+ .filter((i) => i !== -1);
174
+ if (userIndices.length === 0) {
175
+ // No user message yet: keep sliding prompt in the static system prompt only.
176
+ return messagesChanged ? { messages } : undefined;
177
+ }
178
+ // Strip sliding from the static systemPrompt so it only appears once,
179
+ // as a separate message right before the latest user message.
180
+ let systemPrompt = event.systemPrompt;
181
+ let systemPromptChanged = false;
182
+ if (typeof systemPrompt === "string") {
183
+ const stripped = stripSlidingPromptText(systemPrompt);
184
+ if (stripped !== systemPrompt) {
185
+ systemPrompt = stripped;
186
+ systemPromptChanged = true;
187
+ }
188
+ }
189
+ const lastUserIndex = userIndices[userIndices.length - 1];
190
+ const modified = [
191
+ ...messages.slice(0, lastUserIndex),
192
+ makeSlidingPromptMessage(messages[lastUserIndex]),
193
+ ...messages.slice(lastUserIndex),
194
+ ];
195
+ const result = { messages: modified };
196
+ if (systemPromptChanged) {
197
+ result.systemPrompt = systemPrompt;
198
+ }
199
+ return result;
200
+ });
201
+ // Register the web tool
202
+ pi.registerTool(createWebTool());
203
+ // Register the flow tool
204
+ if (canDelegate) {
205
+ pi.registerTool({
206
+ name: "flow",
207
+ label: "Flow",
208
+ description: [
209
+ "If you cannot answer from your current context, you are forbidden from guessing.",
210
+ "You MUST enter to the following flow states, with tool call method.",
211
+ "",
212
+ "Flow states are isolated π processes with forked session snapshots. They run in parallel.",
213
+ 'Invoke: { "flow": [{ "type": "scout", "intent": "...", "aim": "...", "sessionMode": "default" }, ...] }',
214
+ "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.",
215
+ "States: scout, debug, build, craft, audit, ideas.",
216
+ "Custom states configs in (create if not exists): .md files in .pi/agents/ or ~/.pi/agent/agents/.",
217
+ ].join("\n"),
218
+ parameters: FlowParams,
219
+ async execute(toolCallId, params, signal, onUpdate, ctx) {
220
+ if (!resolved) {
221
+ return {
222
+ content: [{ type: "text", text: "Error: session not initialized" }],
223
+ details: makeFlowDetailsFactory(null)([]),
224
+ isError: true,
225
+ };
226
+ }
227
+ const discovery = discoverFlows(ctx.cwd, "all");
228
+ const { flows } = discovery;
229
+ const makeDetails = makeFlowDetailsFactory(discovery.projectFlowsDir);
230
+ // Build the full fork session snapshot and sanitize only non-inheritable
231
+ // artifacts before passing it to child flows.
232
+ const flowResultCache = new Map();
233
+ const forkSessionSnapshotJsonl = sanitizeForkSnapshot(buildForkSessionSnapshotJsonl(ctx.sessionManager), flowResultCache);
234
+ const getTierOverride = (tier) => {
235
+ const flagName = tier === "lite"
236
+ ? "flow-lite-model"
237
+ : tier === "flash"
238
+ ? "flow-flash-model"
239
+ : "flow-full-model";
240
+ const runtimeValue = pi.getFlag(flagName);
241
+ if (typeof runtimeValue === "string" && runtimeValue.trim())
242
+ return runtimeValue.trim();
243
+ const inheritedValue = inheritedCliArgs.tieredModels?.[tier];
244
+ return typeof inheritedValue === "string" && inheritedValue.trim() ? inheritedValue.trim() : undefined;
245
+ };
246
+ const result = await executeFlows({
247
+ flows,
248
+ currentDepth,
249
+ maxDepth,
250
+ ancestorFlowStack,
251
+ preventCycles,
252
+ toolOptimize: resolved.toolOptimize,
253
+ structuredOutput: resolved.structuredOutput,
254
+ cwd: ctx.cwd,
255
+ loadedFlowModelConfigs: resolved.loadedFlowModelConfigs,
256
+ maxConcurrency: resolved.maxConcurrency,
257
+ defaultSessionMode: resolved.defaultSessionMode,
258
+ signal,
259
+ onUpdate,
260
+ makeDetails,
261
+ getFlag: (name) => name === "flow-mode" ? resolved.activeRuntimeFlowMode : pi.getFlag(name),
262
+ tierOverrideResolver: getTierOverride,
263
+ fallbackModel: inheritedCliArgs.fallbackModel,
264
+ forkSessionSnapshotJsonl,
265
+ flowResultCache,
266
+ projectFlowsDir: discovery.projectFlowsDir,
267
+ sessionManager: ctx.sessionManager,
268
+ hasUI: ctx.hasUI,
269
+ uiConfirm: (title, body) => ctx.ui.confirm(title, body),
270
+ onFlowMetrics: (metrics) => { if (typeof pi.emit === "function")
271
+ pi.emit("pi-agent-flow:complete", metrics); },
272
+ confirmProjectFlows: params.confirmProjectFlows,
273
+ }, params.flow.map((f) => ({ type: f.type, intent: f.intent, aim: f.aim, cwd: f.cwd, sessionMode: f.sessionMode })), toolCallId);
274
+ const flowToolResult = {
275
+ content: result.content,
276
+ details: result.details,
277
+ isError: result.isError,
278
+ };
279
+ appendStrategicHint(flowToolResult);
280
+ return flowToolResult;
281
+ },
282
+ renderCall: (args, theme) => renderFlowCall(args, theme),
283
+ renderResult: (result, { expanded }, theme, args) => renderFlowResult(result, expanded, theme, args),
284
+ });
285
+ }
286
+ // -------------------------------------------------------------------------
287
+ // Public plugin API — expose for third-party extensions
288
+ // -------------------------------------------------------------------------
289
+ // Emit a ready event with the API surface so external plugins can extend.
290
+ const pluginApi = {
291
+ discoverFlows: (cwd) => discoverFlows(cwd, "all"),
292
+ getFlowTier: (name) => getFlowTier(name),
293
+ getSettings: () => resolved
294
+ ? { toolOptimize: resolved.toolOptimize, structuredOutput: resolved.structuredOutput, maxConcurrency: resolved.maxConcurrency }
295
+ : { toolOptimize: true, structuredOutput: true, maxConcurrency: 4 },
296
+ };
297
+ if (typeof pi.emit === "function") {
298
+ pi.emit("pi-agent-flow:ready", pluginApi);
299
+ }
300
+ // Register cleanup on process exit (once).
301
+ // We use prependListener on SIGINT/SIGTERM to propagate to child processes
302
+ // before the host's own signal handler runs. This avoids orphaned sub-agents.
303
+ // The host handler still runs afterward and handles terminal cleanup.
304
+ if (!globalThis.__pi_agent_flow_shutdown_registered) {
305
+ globalThis.__pi_agent_flow_shutdown_registered = true;
306
+ // Propagate signals to child process groups so sub-agents don't become orphans.
307
+ // We use prependListener so our handler runs first, before the host's cleanup.
308
+ const shutdown = () => {
309
+ // First, abort any pending bash operations tracked by the batch tool.
310
+ if (bashTracker) {
311
+ try {
312
+ bashTracker.abortAll();
313
+ }
314
+ catch { /* best-effort */ }
315
+ }
316
+ terminateAllChildGroups();
317
+ if (typeof pi.emit === "function") {
318
+ pi.emit("pi-agent-flow:shutdown", { reason: "process-exit" });
319
+ }
320
+ };
321
+ process.prependListener("SIGINT", shutdown);
322
+ process.prependListener("SIGTERM", shutdown);
323
+ // Also handle the 'exit' event, which fires when the host calls process.exit().
324
+ process.on("exit", shutdown);
325
+ }
326
+ }
327
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Canonical reasoning/thinking stripping for assistant messages.
3
+ *
4
+ * Shared between index.ts (session snapshot sanitization) and
5
+ * runner-events.ts (inbound message cleaning).
6
+ */
7
+ /** Message part types that represent reasoning/thinking content. */
8
+ export declare const REASONING_PART_TYPES: Set<string>;
9
+ /** Top-level fields on assistant messages that carry reasoning data. */
10
+ export declare const REASONING_FIELDS: string[];
11
+ /**
12
+ * Strip thinking/reasoning content from an assistant message.
13
+ *
14
+ * Removes top-level reasoning fields and filters reasoning parts
15
+ * from the content array. Returns the (possibly new) message and
16
+ * a boolean indicating whether anything was changed.
17
+ *
18
+ * This is the canonical implementation used by both index.ts
19
+ * (for session snapshot sanitization) and runner-events.ts
20
+ * (for inbound message cleaning).
21
+ */
22
+ export declare function stripReasoningFromAssistantMessage(message: any): {
23
+ message: any;
24
+ changed: boolean;
25
+ };
26
+ //# sourceMappingURL=reasoning-strip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-strip.d.ts","sourceRoot":"","sources":["../src/reasoning-strip.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,aAK/B,CAAC;AAEH,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,UAS5B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,GAAG,GAAG;IACjE,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACjB,CAwBA"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Canonical reasoning/thinking stripping for assistant messages.
3
+ *
4
+ * Shared between index.ts (session snapshot sanitization) and
5
+ * runner-events.ts (inbound message cleaning).
6
+ */
7
+ /** Message part types that represent reasoning/thinking content. */
8
+ export const REASONING_PART_TYPES = new Set([
9
+ "thinking",
10
+ "reasoning",
11
+ "reasoning_content",
12
+ "reasoningContent",
13
+ ]);
14
+ /** Top-level fields on assistant messages that carry reasoning data. */
15
+ export const REASONING_FIELDS = [
16
+ "thinking",
17
+ "thinkingSignature",
18
+ "thinking_signature",
19
+ "reasoning",
20
+ "reasoningContent",
21
+ "reasoning_content",
22
+ "reasoningSignature",
23
+ "reasoning_signature",
24
+ ];
25
+ /**
26
+ * Strip thinking/reasoning content from an assistant message.
27
+ *
28
+ * Removes top-level reasoning fields and filters reasoning parts
29
+ * from the content array. Returns the (possibly new) message and
30
+ * a boolean indicating whether anything was changed.
31
+ *
32
+ * This is the canonical implementation used by both index.ts
33
+ * (for session snapshot sanitization) and runner-events.ts
34
+ * (for inbound message cleaning).
35
+ */
36
+ export function stripReasoningFromAssistantMessage(message) {
37
+ let next = message;
38
+ let changed = false;
39
+ for (const field of REASONING_FIELDS) {
40
+ if (field in next) {
41
+ if (next === message)
42
+ next = { ...message };
43
+ delete next[field];
44
+ changed = true;
45
+ }
46
+ }
47
+ if (Array.isArray(message.content)) {
48
+ const filteredContent = message.content.filter((part) => !REASONING_PART_TYPES.has(part?.type));
49
+ if (filteredContent.length !== message.content.length) {
50
+ if (next === message)
51
+ next = { ...message };
52
+ next.content = filteredContent;
53
+ changed = true;
54
+ }
55
+ }
56
+ return { message: next, changed };
57
+ }
58
+ //# sourceMappingURL=reasoning-strip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-strip.js","sourceRoot":"","sources":["../src/reasoning-strip.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oEAAoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IAC3C,UAAU;IACV,WAAW;IACX,mBAAmB;IACnB,kBAAkB;CAClB,CAAC,CAAC;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC/B,UAAU;IACV,mBAAmB;IACnB,oBAAoB;IACpB,WAAW;IACX,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;CACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kCAAkC,CAAC,OAAY;IAI9D,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,KAAK,OAAO;gBAAE,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC;IACF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAC7C,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CACpD,CAAC;QACF,IAAI,eAAe,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvD,IAAI,IAAI,KAAK,OAAO;gBAAE,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;YAC/B,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC;IACF,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Pure utility functions for rendering - extracted for testability.
3
+ */
4
+ import type { UsageStats } from "./types.js";
5
+ /**
6
+ * Format a token count to exactly 5 characters with leading spaces.
7
+ * Shifts from k to M when value would exceed 5 chars.
8
+ * Examples: 500 → " 500", 1300 → " 1.3k", 32000 → "32.0k", 950500 → "0.95M"
9
+ */
10
+ export declare function formatFixedTokens(count: number): string;
11
+ /**
12
+ * Format flow type name to fixed width (5 chars) in lowercase with space padding.
13
+ * Examples: "debug" → "debug", "scout" → "scout", "build" → "build"
14
+ */
15
+ export declare function formatFlowTypeName(type: string): string;
16
+ export declare function formatCompactTokenPair(usage: Partial<UsageStats>): string;
17
+ export declare function formatCompactStats(usage: Partial<UsageStats>, model?: string, maxWidth?: number, options?: {
18
+ skipTokens?: boolean;
19
+ skipContext?: boolean;
20
+ hideModel?: boolean;
21
+ }): string;
22
+ export declare function formatCountdown(ms: number): string;
23
+ /** Return the visible (ANSI-stripped) character count. */
24
+ export declare function visibleLength(text: string): number;
25
+ /**
26
+ * Compute the remaining visible-character budget for a line,
27
+ * given the length of its prefix (indent + label + space).
28
+ * Respects `process.stdout.columns` with a floor of 40 and default of 80.
29
+ */
30
+ export declare function getTruncationBudget(prefixLength: number): number;
31
+ /** Fixed content budget for collapsed-line text (dir/act/log). */
32
+ export declare const CONTENT_MAX = 60;
33
+ /** Longer budget for detail lines (act/msg) to show more content. */
34
+ export declare const DETAIL_CONTENT_MAX = 80;
35
+ /**
36
+ * Compute how many visible chars of content fit after a prefix,
37
+ * using the given budget (defaults to CONTENT_MAX). Floor of 8 to keep things readable.
38
+ */
39
+ export declare function contentBudget(prefixVisibleLen: number, max?: number): number;
40
+ export declare function truncateChars(text: string, max: number): string;
41
+ export declare function tailText(text: string, max: number): string;
42
+ //# sourceMappingURL=render-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-utils.d.ts","sourceRoot":"","sources":["../src/render-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAevD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKvD;AAQD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAEzE;AAED,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAC1B,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAChF,MAAM,CA4BR;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKlD;AAKD,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,kEAAkE;AAClE,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,SAAc,GAAG,MAAM,CAEjF;AAsDD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAsB1D"}