pi-agent-flow 1.8.40 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -37
- package/agents/audit.md +21 -22
- package/agents/build.md +23 -22
- package/agents/craft.md +23 -27
- package/agents/debug.md +24 -28
- package/agents/ideas.md +21 -101
- package/agents/scout.md +20 -19
- package/dist/batch/batch-bash.d.ts +2 -2
- package/dist/batch/batch-bash.d.ts.map +1 -1
- package/dist/batch/batch-bash.js +30 -7
- package/dist/batch/batch-bash.js.map +1 -1
- package/dist/batch/constants.d.ts +31 -5
- package/dist/batch/constants.d.ts.map +1 -1
- package/dist/batch/constants.js +50 -3
- package/dist/batch/constants.js.map +1 -1
- package/dist/batch/execute.d.ts +0 -1
- package/dist/batch/execute.d.ts.map +1 -1
- package/dist/batch/execute.js +210 -6
- package/dist/batch/execute.js.map +1 -1
- package/dist/batch/fuzzy-edit.d.ts +0 -6
- package/dist/batch/fuzzy-edit.d.ts.map +1 -1
- package/dist/batch/fuzzy-edit.js +1 -1
- package/dist/batch/fuzzy-edit.js.map +1 -1
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js +87 -16
- package/dist/batch/index.js.map +1 -1
- package/dist/batch/render.d.ts +0 -1
- package/dist/batch/render.d.ts.map +1 -1
- package/dist/batch/render.js +7 -101
- package/dist/batch/render.js.map +1 -1
- package/dist/batch/shell-compress.d.ts +25 -0
- package/dist/batch/shell-compress.d.ts.map +1 -0
- package/dist/batch/shell-compress.js +602 -0
- package/dist/batch/shell-compress.js.map +1 -0
- package/dist/batch/summary.d.ts +5 -0
- package/dist/batch/summary.d.ts.map +1 -0
- package/dist/batch/summary.js +101 -0
- package/dist/batch/summary.js.map +1 -0
- package/dist/batch/symbols.d.ts.map +1 -1
- package/dist/batch/symbols.js +12 -7
- package/dist/batch/symbols.js.map +1 -1
- package/dist/{config.d.ts → config/config.d.ts} +39 -2
- package/dist/config/config.d.ts.map +1 -0
- package/dist/{config.js → config/config.js} +220 -9
- package/dist/config/config.js.map +1 -0
- package/dist/config/log.d.ts +27 -0
- package/dist/config/log.d.ts.map +1 -0
- package/dist/config/log.js +104 -0
- package/dist/config/log.js.map +1 -0
- package/dist/config/models.d.ts +2 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +49 -0
- package/dist/config/models.js.map +1 -0
- package/dist/{settings-resolver.d.ts → config/settings-resolver.d.ts} +9 -2
- package/dist/config/settings-resolver.d.ts.map +1 -0
- package/dist/config/settings-resolver.js +275 -0
- package/dist/config/settings-resolver.js.map +1 -0
- package/dist/core/agents.d.ts.map +1 -0
- package/dist/{agents.js → core/agents.js} +13 -12
- package/dist/core/agents.js.map +1 -0
- package/dist/core/delegation.d.ts +24 -0
- package/dist/core/delegation.d.ts.map +1 -0
- package/dist/core/delegation.js +48 -0
- package/dist/core/delegation.js.map +1 -0
- package/dist/core/depth.d.ts.map +1 -0
- package/dist/{depth.js → core/depth.js} +9 -8
- package/dist/core/depth.js.map +1 -0
- package/dist/{executor.d.ts → core/executor.d.ts} +18 -3
- package/dist/core/executor.d.ts.map +1 -0
- package/dist/{executor.js → core/executor.js} +53 -14
- package/dist/core/executor.js.map +1 -0
- package/dist/{flow.d.ts → core/flow.d.ts} +13 -1
- package/dist/core/flow.d.ts.map +1 -0
- package/dist/{flow.js → core/flow.js} +125 -64
- package/dist/core/flow.js.map +1 -0
- package/dist/{session-mode.d.ts → core/session-mode.d.ts} +2 -1
- package/dist/core/session-mode.d.ts.map +1 -0
- package/dist/{session-mode.js → core/session-mode.js} +2 -1
- package/dist/core/session-mode.js.map +1 -0
- package/dist/core/session-registry.d.ts +16 -0
- package/dist/core/session-registry.d.ts.map +1 -0
- package/dist/core/session-registry.js +30 -0
- package/dist/core/session-registry.js.map +1 -0
- package/dist/core/transitions.d.ts.map +1 -0
- package/dist/{transitions.js → core/transitions.js} +1 -1
- package/dist/core/transitions.js.map +1 -0
- package/dist/flow/auto-warp.d.ts +12 -0
- package/dist/flow/auto-warp.d.ts.map +1 -0
- package/dist/flow/auto-warp.js +29 -0
- package/dist/flow/auto-warp.js.map +1 -0
- package/dist/flow/command.d.ts +8 -0
- package/dist/flow/command.d.ts.map +1 -0
- package/dist/flow/command.js +194 -0
- package/dist/flow/command.js.map +1 -0
- package/dist/flow/continuation.d.ts +16 -0
- package/dist/flow/continuation.d.ts.map +1 -0
- package/dist/flow/continuation.js +188 -0
- package/dist/flow/continuation.js.map +1 -0
- package/dist/flow/index.d.ts +18 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +25 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/flow/loop-command.d.ts +8 -0
- package/dist/flow/loop-command.d.ts.map +1 -0
- package/dist/flow/loop-command.js +99 -0
- package/dist/flow/loop-command.js.map +1 -0
- package/dist/flow/loop-templates.d.ts +7 -0
- package/dist/flow/loop-templates.d.ts.map +1 -0
- package/dist/flow/loop-templates.js +38 -0
- package/dist/flow/loop-templates.js.map +1 -0
- package/dist/flow/loop.d.ts +19 -0
- package/dist/flow/loop.d.ts.map +1 -0
- package/dist/flow/loop.js +95 -0
- package/dist/flow/loop.js.map +1 -0
- package/dist/flow/perform-warp.d.ts +28 -0
- package/dist/flow/perform-warp.d.ts.map +1 -0
- package/dist/flow/perform-warp.js +127 -0
- package/dist/flow/perform-warp.js.map +1 -0
- package/dist/flow/settings-command.d.ts +51 -0
- package/dist/flow/settings-command.d.ts.map +1 -0
- package/dist/flow/settings-command.js +937 -0
- package/dist/flow/settings-command.js.map +1 -0
- package/dist/flow/store.d.ts +26 -0
- package/dist/flow/store.d.ts.map +1 -0
- package/dist/flow/store.js +166 -0
- package/dist/flow/store.js.map +1 -0
- package/dist/flow/template-shared.d.ts +9 -0
- package/dist/flow/template-shared.d.ts.map +1 -0
- package/dist/flow/template-shared.js +13 -0
- package/dist/flow/template-shared.js.map +1 -0
- package/dist/flow/template-strings.d.ts +8 -0
- package/dist/flow/template-strings.d.ts.map +1 -0
- package/dist/flow/template-strings.js +36 -0
- package/dist/flow/template-strings.js.map +1 -0
- package/dist/flow/types.d.ts +61 -0
- package/dist/flow/types.d.ts.map +1 -0
- package/dist/flow/types.js +5 -0
- package/dist/flow/types.js.map +1 -0
- package/dist/flow/warp-command.d.ts +8 -0
- package/dist/flow/warp-command.d.ts.map +1 -0
- package/dist/flow/warp-command.js +144 -0
- package/dist/flow/warp-command.js.map +1 -0
- package/dist/flow/warp-utils.d.ts +11 -0
- package/dist/flow/warp-utils.d.ts.map +1 -0
- package/dist/flow/warp-utils.js +187 -0
- package/dist/flow/warp-utils.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +115 -31
- package/dist/index.js.map +1 -1
- package/dist/{notify-state.d.ts → notify/notify-state.d.ts} +2 -1
- package/dist/notify/notify-state.d.ts.map +1 -0
- package/dist/notify/notify-state.js.map +1 -0
- package/dist/notify/notify.d.ts.map +1 -0
- package/dist/{notify.js → notify/notify.js} +3 -2
- package/dist/notify/notify.js.map +1 -0
- package/dist/{cli-args.d.ts → snapshot/cli-args.d.ts} +4 -2
- package/dist/snapshot/cli-args.d.ts.map +1 -0
- package/dist/{cli-args.js → snapshot/cli-args.js} +13 -1
- package/dist/snapshot/cli-args.js.map +1 -0
- package/dist/snapshot/index.d.ts +2 -0
- package/dist/snapshot/index.d.ts.map +1 -0
- package/dist/snapshot/index.js +2 -0
- package/dist/snapshot/index.js.map +1 -0
- package/dist/{reasoning-strip.d.ts → snapshot/reasoning-strip.d.ts} +0 -4
- package/dist/snapshot/reasoning-strip.d.ts.map +1 -0
- package/dist/{reasoning-strip.js → snapshot/reasoning-strip.js} +2 -2
- package/dist/snapshot/reasoning-strip.js.map +1 -0
- package/dist/snapshot/runner-events.d.ts.map +1 -0
- package/dist/{runner-events.js → snapshot/runner-events.js} +1 -1
- package/dist/snapshot/runner-events.js.map +1 -0
- package/dist/{snapshot.d.ts → snapshot/snapshot.d.ts} +24 -18
- package/dist/snapshot/snapshot.d.ts.map +1 -0
- package/dist/snapshot/snapshot.js +1791 -0
- package/dist/snapshot/snapshot.js.map +1 -0
- package/dist/{structured-output.d.ts → snapshot/structured-output.d.ts} +1 -1
- package/dist/snapshot/structured-output.d.ts.map +1 -0
- package/dist/snapshot/structured-output.js.map +1 -0
- package/dist/{flow-prompt.d.ts → steering/flow-prompt.d.ts} +2 -2
- package/dist/steering/flow-prompt.d.ts.map +1 -0
- package/dist/{flow-prompt.js → steering/flow-prompt.js} +1 -1
- package/dist/steering/flow-prompt.js.map +1 -0
- package/dist/{sliding-prompt.d.ts → steering/sliding-prompt.d.ts} +8 -7
- package/dist/steering/sliding-prompt.d.ts.map +1 -0
- package/dist/{sliding-prompt.js → steering/sliding-prompt.js} +18 -64
- package/dist/steering/sliding-prompt.js.map +1 -0
- package/dist/{tool-utils.d.ts → steering/tool-utils.d.ts} +1 -0
- package/dist/steering/tool-utils.d.ts.map +1 -0
- package/dist/{tool-utils.js → steering/tool-utils.js} +10 -3
- package/dist/steering/tool-utils.js.map +1 -0
- package/dist/{ask-user.d.ts → tools/ask-user.d.ts} +3 -15
- package/dist/tools/ask-user.d.ts.map +1 -0
- package/dist/tools/ask-user.js +778 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/{timed-bash.d.ts → tools/timed-bash.d.ts} +2 -7
- package/dist/tools/timed-bash.d.ts.map +1 -0
- package/dist/{timed-bash.js → tools/timed-bash.js} +11 -2
- package/dist/tools/timed-bash.js.map +1 -0
- package/dist/{web-tool.d.ts → tools/web-tool.d.ts} +1 -1
- package/dist/tools/web-tool.d.ts.map +1 -0
- package/dist/{web-tool.js → tools/web-tool.js} +8 -7
- package/dist/tools/web-tool.js.map +1 -0
- package/dist/tui/flow-colors.d.ts +55 -0
- package/dist/tui/flow-colors.d.ts.map +1 -0
- package/dist/tui/flow-colors.js +22 -0
- package/dist/tui/flow-colors.js.map +1 -0
- package/dist/{render-utils.d.ts → tui/render-utils.d.ts} +6 -2
- package/dist/tui/render-utils.d.ts.map +1 -0
- package/dist/{render-utils.js → tui/render-utils.js} +40 -12
- package/dist/tui/render-utils.js.map +1 -0
- package/dist/tui/render.d.ts +21 -0
- package/dist/tui/render.d.ts.map +1 -0
- package/dist/tui/render.js +786 -0
- package/dist/tui/render.js.map +1 -0
- package/dist/tui/scramble/algorithm.d.ts +7 -0
- package/dist/tui/scramble/algorithm.d.ts.map +1 -0
- package/dist/tui/scramble/algorithm.js +227 -0
- package/dist/tui/scramble/algorithm.js.map +1 -0
- package/dist/tui/scramble/constants.d.ts +99 -0
- package/dist/tui/scramble/constants.d.ts.map +1 -0
- package/dist/tui/scramble/constants.js +101 -0
- package/dist/tui/scramble/constants.js.map +1 -0
- package/dist/tui/scramble/index.d.ts +6 -0
- package/dist/tui/scramble/index.d.ts.map +1 -0
- package/dist/tui/scramble/index.js +6 -0
- package/dist/tui/scramble/index.js.map +1 -0
- package/dist/tui/scramble/manager.d.ts +44 -0
- package/dist/tui/scramble/manager.d.ts.map +1 -0
- package/dist/tui/scramble/manager.js +899 -0
- package/dist/tui/scramble/manager.js.map +1 -0
- package/dist/tui/scramble/utils.d.ts +18 -0
- package/dist/tui/scramble/utils.d.ts.map +1 -0
- package/dist/tui/scramble/utils.js +145 -0
- package/dist/tui/scramble/utils.js.map +1 -0
- package/dist/tui/single-select-layout.d.ts +17 -0
- package/dist/tui/single-select-layout.d.ts.map +1 -0
- package/dist/{single-select-layout.js → tui/single-select-layout.js} +8 -25
- package/dist/tui/single-select-layout.js.map +1 -0
- package/dist/types/flow.d.ts +112 -0
- package/dist/types/flow.d.ts.map +1 -0
- package/dist/{types.js → types/flow.js} +3 -54
- package/dist/types/flow.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/output.d.ts +110 -0
- package/dist/types/output.d.ts.map +1 -0
- package/dist/types/output.js +5 -0
- package/dist/types/output.js.map +1 -0
- package/dist/types/ui.d.ts +24 -0
- package/dist/types/ui.d.ts.map +1 -0
- package/dist/types/ui.js +55 -0
- package/dist/types/ui.js.map +1 -0
- package/package.json +1 -1
- package/dist/agents.d.ts.map +0 -1
- package/dist/agents.js.map +0 -1
- package/dist/ask-user.d.ts.map +0 -1
- package/dist/ask-user.js +0 -1405
- package/dist/ask-user.js.map +0 -1
- package/dist/batch.d.ts +0 -12
- package/dist/batch.d.ts.map +0 -1
- package/dist/batch.js +0 -11
- package/dist/batch.js.map +0 -1
- package/dist/cli-args.d.ts.map +0 -1
- package/dist/cli-args.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/depth.d.ts.map +0 -1
- package/dist/depth.js.map +0 -1
- package/dist/executor.d.ts.map +0 -1
- package/dist/executor.js.map +0 -1
- package/dist/flow-prompt.d.ts.map +0 -1
- package/dist/flow-prompt.js.map +0 -1
- package/dist/flow.d.ts.map +0 -1
- package/dist/flow.js.map +0 -1
- package/dist/notify-state.d.ts.map +0 -1
- package/dist/notify-state.js.map +0 -1
- package/dist/notify.d.ts.map +0 -1
- package/dist/notify.js.map +0 -1
- package/dist/reasoning-strip.d.ts.map +0 -1
- package/dist/reasoning-strip.js.map +0 -1
- package/dist/render-utils.d.ts.map +0 -1
- package/dist/render-utils.js.map +0 -1
- package/dist/render.d.ts +0 -24
- package/dist/render.d.ts.map +0 -1
- package/dist/render.js +0 -592
- package/dist/render.js.map +0 -1
- package/dist/runner-events.d.ts.map +0 -1
- package/dist/runner-events.js.map +0 -1
- package/dist/scramble.d.ts +0 -183
- package/dist/scramble.d.ts.map +0 -1
- package/dist/scramble.js +0 -2478
- package/dist/scramble.js.map +0 -1
- package/dist/session-mode.d.ts.map +0 -1
- package/dist/session-mode.js.map +0 -1
- package/dist/settings-resolver.d.ts.map +0 -1
- package/dist/settings-resolver.js +0 -148
- package/dist/settings-resolver.js.map +0 -1
- package/dist/single-select-layout.d.ts +0 -20
- package/dist/single-select-layout.d.ts.map +0 -1
- package/dist/single-select-layout.js.map +0 -1
- package/dist/sliding-prompt.d.ts.map +0 -1
- package/dist/sliding-prompt.js.map +0 -1
- package/dist/snapshot.d.ts.map +0 -1
- package/dist/snapshot.js +0 -797
- package/dist/snapshot.js.map +0 -1
- package/dist/spec-mode.d.ts +0 -13
- package/dist/spec-mode.d.ts.map +0 -1
- package/dist/spec-mode.js +0 -90
- package/dist/spec-mode.js.map +0 -1
- package/dist/structured-output.d.ts.map +0 -1
- package/dist/structured-output.js.map +0 -1
- package/dist/timed-bash.d.ts.map +0 -1
- package/dist/timed-bash.js.map +0 -1
- package/dist/tool-utils.d.ts.map +0 -1
- package/dist/tool-utils.js.map +0 -1
- package/dist/transitions.d.ts.map +0 -1
- package/dist/transitions.js.map +0 -1
- package/dist/types.d.ts +0 -224
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/web-tool.d.ts.map +0 -1
- package/dist/web-tool.js.map +0 -1
- /package/dist/{agents.d.ts → core/agents.d.ts} +0 -0
- /package/dist/{depth.d.ts → core/depth.d.ts} +0 -0
- /package/dist/{transitions.d.ts → core/transitions.d.ts} +0 -0
- /package/dist/{notify-state.js → notify/notify-state.js} +0 -0
- /package/dist/{notify.d.ts → notify/notify.d.ts} +0 -0
- /package/dist/{runner-events.d.ts → snapshot/runner-events.d.ts} +0 -0
- /package/dist/{structured-output.js → snapshot/structured-output.js} +0 -0
|
@@ -8,10 +8,12 @@ import { spawn } from "node:child_process";
|
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as os from "node:os";
|
|
10
10
|
import * as path from "node:path";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
11
|
+
import { getFlowTier } from "./agents.js";
|
|
12
|
+
import { getInheritedCliArgs } from "../snapshot/cli-args.js";
|
|
13
|
+
import { processFlowJsonLine, drainStreamingText, drainStreamingEstimate, drainCtxEstimate, updateSmoothedTps, drainSmoothedTps } from "../snapshot/runner-events.js";
|
|
14
|
+
import { emptyFlowUsage, getFlowOutput, normalizeFlowResult, } from "../types/flow.js";
|
|
15
|
+
import { extractStructuredOutput, generateCommandsFromHistory } from "../snapshot/structured-output.js";
|
|
16
|
+
import { logWarn, logError } from '../config/log.js';
|
|
15
17
|
import { DEFAULT_AGENT_SESSION_MODE, getAgentSessionTimeoutMs } from "./session-mode.js";
|
|
16
18
|
const isWindows = process.platform === "win32";
|
|
17
19
|
const SIGKILL_TIMEOUT_MS = 5000;
|
|
@@ -20,13 +22,17 @@ const AGENT_END_GRACE_MS = 2000;
|
|
|
20
22
|
const FLOW_TIME_BUDGET_WARNING_MS = 2 * 60 * 1000; // warn 2 min before kill
|
|
21
23
|
const FLOW_FINAL_URGE_MS = 135 * 1000; // final urge 135 s (2m15s) before kill (increased from 30s for wider summary window)
|
|
22
24
|
const REPORTING_GRACE_MS = 90_000; // grace period after timeout for agent to report findings (increased from 10s to 90s)
|
|
25
|
+
const SNAP_THRESHOLD_MS = 120_000; // threshold for proportional short-budget timer logic
|
|
23
26
|
const FLOW_TOOL_SUMMARY_GRACE_MS = FLOW_FINAL_URGE_MS; // bash/tool abort lead time so the agent can summarize
|
|
24
27
|
import { FLOW_DEPTH_ENV, FLOW_MAX_DEPTH_ENV, FLOW_STACK_ENV, FLOW_PREVENT_CYCLES_ENV, FLOW_TOOL_OPTIMIZE_ENV, } from "./depth.js";
|
|
28
|
+
import { computeDelegationState, buildGuardLine, buildDelegationRule, buildFlowListSection, buildLineage, computeChildPropagation, } from "./delegation.js";
|
|
25
29
|
const FLOW_DEADLINE_ENV = "PI_FLOW_DEADLINE_MS";
|
|
26
30
|
const FLOW_TOOL_SUMMARY_GRACE_ENV = "PI_FLOW_TOOL_SUMMARY_GRACE_MS";
|
|
27
31
|
const PI_OFFLINE_ENV = "PI_OFFLINE";
|
|
28
32
|
const FLOW_REMINDER_FILE_ENV = "PI_FLOW_REMINDER_FILE";
|
|
29
33
|
const FLOW_DUMP_SNAPSHOT_ENV = "PI_FLOW_DUMP_SNAPSHOT";
|
|
34
|
+
const packageJsonPath = path.join(path.dirname(new URL(import.meta.url).pathname), "../..", "package.json");
|
|
35
|
+
const { version: pipelineVersion } = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
30
36
|
// ---------------------------------------------------------------------------
|
|
31
37
|
// Global child process group tracking for signal propagation
|
|
32
38
|
// ---------------------------------------------------------------------------
|
|
@@ -155,6 +161,45 @@ function atomicWriteFileSync(targetPath, data) {
|
|
|
155
161
|
fs.renameSync(tmpPath, targetPath);
|
|
156
162
|
}
|
|
157
163
|
// ---------------------------------------------------------------------------
|
|
164
|
+
// Dump TTL cleanup
|
|
165
|
+
// ---------------------------------------------------------------------------
|
|
166
|
+
/**
|
|
167
|
+
* Delete stale dump files from the dump directory.
|
|
168
|
+
* Called once at the start of each dump block to prevent unbounded accumulation.
|
|
169
|
+
* Silently skips on any error (defensive).
|
|
170
|
+
*/
|
|
171
|
+
function cleanupStaleDumps(dumpPath, maxAgeHours = 168) {
|
|
172
|
+
try {
|
|
173
|
+
const dir = path.dirname(dumpPath);
|
|
174
|
+
const baseName = path.basename(dumpPath);
|
|
175
|
+
const ext = path.extname(baseName);
|
|
176
|
+
const base = ext ? baseName.slice(0, -ext.length) : baseName;
|
|
177
|
+
const entries = fs.readdirSync(dir);
|
|
178
|
+
const nowMs = Date.now();
|
|
179
|
+
const maxAgeMs = maxAgeHours * 60 * 60 * 1000;
|
|
180
|
+
let deleted = 0;
|
|
181
|
+
for (const entry of entries) {
|
|
182
|
+
// Match both pi-dump.* and snapshot-dump.* families, plus .txt twins
|
|
183
|
+
const isLegacyDump = entry.startsWith("snapshot-dump");
|
|
184
|
+
if (!entry.startsWith(base) && !isLegacyDump)
|
|
185
|
+
continue;
|
|
186
|
+
const entryPath = path.join(dir, entry);
|
|
187
|
+
try {
|
|
188
|
+
const stats = fs.statSync(entryPath);
|
|
189
|
+
if (nowMs - stats.mtimeMs > maxAgeMs) {
|
|
190
|
+
fs.unlinkSync(entryPath);
|
|
191
|
+
deleted++;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch { /* ignore per-entry errors */ }
|
|
195
|
+
}
|
|
196
|
+
if (deleted > 0) {
|
|
197
|
+
logError(`[pi-agent-flow] Cleaned ${deleted} stale dump file(s) from ${dir}`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch { /* ignore all errors silently */ }
|
|
201
|
+
}
|
|
202
|
+
// ---------------------------------------------------------------------------
|
|
158
203
|
// Reminder file helpers
|
|
159
204
|
// ---------------------------------------------------------------------------
|
|
160
205
|
/**
|
|
@@ -191,7 +236,7 @@ export function getOptimizedTools(flowTools, toolOptimize) {
|
|
|
191
236
|
? filtered
|
|
192
237
|
: [...filtered, "batch"];
|
|
193
238
|
}
|
|
194
|
-
function buildFlowArgs(flow, intent, forkSessionPath, model, parentDepth = 0, maxDepth = 0, toolOptimize = false, structuredOutput = true, sessionMode = DEFAULT_AGENT_SESSION_MODE, sessionTimeoutMs = getAgentSessionTimeoutMs(sessionMode), acceptance, discoveredFlows = [], parentFlowStack = [], preventCycles = true) {
|
|
239
|
+
function buildFlowArgs(flow, intent, forkSessionPath, model, parentDepth = 0, maxDepth = 0, toolOptimize = false, structuredOutput = true, sessionMode = DEFAULT_AGENT_SESSION_MODE, sessionTimeoutMs = getAgentSessionTimeoutMs(sessionMode), acceptance, discoveredFlows = [], parentFlowStack = [], preventCycles = true, goalContext, cwd) {
|
|
195
240
|
const args = [
|
|
196
241
|
"--mode",
|
|
197
242
|
"json",
|
|
@@ -232,17 +277,17 @@ function buildFlowArgs(flow, intent, forkSessionPath, model, parentDepth = 0, ma
|
|
|
232
277
|
args.push("--thinking", thinking);
|
|
233
278
|
// Compute delegation depth before building tool list — children that can
|
|
234
279
|
// delegate need the "flow" tool in their available set.
|
|
235
|
-
const currentDepth =
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
//
|
|
239
|
-
// getOptimizedTools. When toolOptimize is on and the child can delegate,
|
|
240
|
-
// include "flow" so it can spawn sub-flows.
|
|
280
|
+
const { currentDepth, effectiveMaxDepth, canDelegate } = computeDelegationState(parentDepth, maxDepth);
|
|
281
|
+
// Default tools for child flows. Legacy read/write/edit are NOT registered
|
|
282
|
+
// for children — only batch (which includes read/write ops) is available.
|
|
283
|
+
// The flow's frontmatter `tools` field overrides this default when set.
|
|
241
284
|
const defaultTools = toolOptimize
|
|
242
285
|
? canDelegate
|
|
243
286
|
? ["batch", "bash", "flow", "web"]
|
|
244
287
|
: ["batch", "bash", "web"]
|
|
245
|
-
:
|
|
288
|
+
: canDelegate
|
|
289
|
+
? ["batch", "bash", "flow", "web"]
|
|
290
|
+
: ["batch", "bash", "web"];
|
|
246
291
|
// getOptimizedTools replaces legacy read/write/edit with batch when
|
|
247
292
|
// toolOptimize is on. If the flow's frontmatter explicitly lists "flow",
|
|
248
293
|
// it passes through; otherwise the defaultTools above handle it.
|
|
@@ -265,28 +310,15 @@ function buildFlowArgs(flow, intent, forkSessionPath, model, parentDepth = 0, ma
|
|
|
265
310
|
`Your task begins NOW. Do not respond to or continue anything from the history.\n` +
|
|
266
311
|
`</context-seal>`;
|
|
267
312
|
// Phase 2: Activation — role, tools, depth, delegation rules (dynamically generated)
|
|
268
|
-
const
|
|
269
|
-
const
|
|
270
|
-
const
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
const
|
|
274
|
-
? `Available flows:\n${discoveredFlows
|
|
275
|
-
.map((f) => {
|
|
276
|
-
const badge = f.source === "project" ? " 🔒" : f.source === "user" ? " ⚙" : "";
|
|
277
|
-
return `- [${f.name}]${badge} — ${f.description}`;
|
|
278
|
-
})
|
|
279
|
-
.join("\n")}\n`
|
|
280
|
-
: "";
|
|
281
|
-
const timeBudgetHint = sessionTimeoutMs > 0
|
|
282
|
-
? `Session mode: ${sessionMode}. Time budget: ${Math.round(sessionTimeoutMs / 1000)}s total. Long-running tools may be interrupted near the deadline to preserve final-summary time; if a tool reports [Flow timeout], stop tool use and output structured findings immediately.\n`
|
|
283
|
-
: "";
|
|
284
|
-
const activation = `\n\n<activation flow="${flow.name}" depth="${currentDepth}" tools="${availableTools}">\n` +
|
|
313
|
+
const guardLine = buildGuardLine(currentDepth, effectiveMaxDepth, preventCycles, parentFlowStack);
|
|
314
|
+
const delegationRule = buildDelegationRule(canDelegate, guardLine);
|
|
315
|
+
const flowListSection = buildFlowListSection(canDelegate, discoveredFlows);
|
|
316
|
+
const effectiveTier = flow.tier ?? getFlowTier(flow.name);
|
|
317
|
+
const lineage = buildLineage(flow.name, parentFlowStack);
|
|
318
|
+
const activation = `\n\n<activation flow="${flow.name}" depth="${currentDepth}" tools="${availableTools}" tier="${effectiveTier}" lineage="${lineage}">\n` +
|
|
285
319
|
`You are a [${flow.name}] agent operating at depth ${currentDepth}.\n` +
|
|
286
|
-
`Available tools: ${availableTools}.\n` +
|
|
287
320
|
`${delegationRule}\n` +
|
|
288
321
|
`${flowListSection}` +
|
|
289
|
-
`${timeBudgetHint}` +
|
|
290
322
|
`Do not attempt to use any tool outside the available set — it will fail.\n` +
|
|
291
323
|
`</activation>`;
|
|
292
324
|
// Phase 3: Directive — the flow's system prompt (renamed from <system-directive>)
|
|
@@ -306,8 +338,12 @@ function buildFlowArgs(flow, intent, forkSessionPath, model, parentDepth = 0, ma
|
|
|
306
338
|
`\nExecute this mission. Use only your available tools. If blocked, report why — do not guess.\n` +
|
|
307
339
|
`Follow the output format specified in your directive.\n` +
|
|
308
340
|
`</mission>`;
|
|
341
|
+
// Phase 4.5: Flow goal context (optional)
|
|
342
|
+
const goalSection = goalContext?.objective
|
|
343
|
+
? `\n\n<flow>\nObjective: ${goalContext.objective}\n${goalContext.acceptance ? `Acceptance: ${goalContext.acceptance}\n` : ""}${goalContext.maxFlows !== undefined ? `Progress: ${goalContext.flowCount ?? 0}/${goalContext.maxFlows} flows used.\n` : ""}</flow>`
|
|
344
|
+
: "";
|
|
309
345
|
// -p must immediately precede the prompt so the CLI parser binds it correctly
|
|
310
|
-
args.push("-p", `${contextSeal}${activation}${directive}${mission}`);
|
|
346
|
+
args.push("-p", `${contextSeal}${activation}${directive}${mission}${goalSection}`);
|
|
311
347
|
return args;
|
|
312
348
|
}
|
|
313
349
|
/**
|
|
@@ -321,6 +357,7 @@ export async function runFlow(opts) {
|
|
|
321
357
|
const flow = flows.find((f) => f.name === normalizedFlowName);
|
|
322
358
|
if (!flow) {
|
|
323
359
|
const available = flows.map((f) => `"${f.name}"`).join(", ") || "none";
|
|
360
|
+
const resolvedMaxContextTokens = opts.maxContextTokens ?? inheritedCliArgs.maxContextTokens;
|
|
324
361
|
return {
|
|
325
362
|
type: normalizedFlowName,
|
|
326
363
|
agentSource: "unknown",
|
|
@@ -330,6 +367,7 @@ export async function runFlow(opts) {
|
|
|
330
367
|
messages: [],
|
|
331
368
|
stderr: `Unknown flow: "${flowName}". Available flows: ${available}.`,
|
|
332
369
|
usage: emptyFlowUsage(),
|
|
370
|
+
...(resolvedMaxContextTokens !== undefined ? { maxContextTokens: resolvedMaxContextTokens } : {}),
|
|
333
371
|
};
|
|
334
372
|
}
|
|
335
373
|
const effectiveSessionMode = opts.sessionMode ?? DEFAULT_AGENT_SESSION_MODE;
|
|
@@ -337,6 +375,7 @@ export async function runFlow(opts) {
|
|
|
337
375
|
const startedAtMs = Date.now();
|
|
338
376
|
const deadlineAtMs = effectiveTimeout > 0 ? startedAtMs + effectiveTimeout : undefined;
|
|
339
377
|
const resolvedModel = model ?? flow.model ?? inheritedCliArgs.fallbackModel;
|
|
378
|
+
const resolvedMaxContextTokens = opts.maxContextTokens ?? inheritedCliArgs.maxContextTokens;
|
|
340
379
|
const result = {
|
|
341
380
|
type: normalizedFlowName,
|
|
342
381
|
agentSource: flow.source,
|
|
@@ -350,6 +389,7 @@ export async function runFlow(opts) {
|
|
|
350
389
|
model: resolvedModel,
|
|
351
390
|
startedAtMs,
|
|
352
391
|
...(deadlineAtMs !== undefined ? { deadlineAtMs } : {}),
|
|
392
|
+
...(resolvedMaxContextTokens !== undefined ? { maxContextTokens: resolvedMaxContextTokens } : {}),
|
|
353
393
|
};
|
|
354
394
|
let liveStreamingText = "";
|
|
355
395
|
let liveEstimatedOutputTokens = 0;
|
|
@@ -358,6 +398,7 @@ export async function runFlow(opts) {
|
|
|
358
398
|
const streamingDelta = drainStreamingText(result);
|
|
359
399
|
if (streamingDelta)
|
|
360
400
|
liveStreamingText += streamingDelta;
|
|
401
|
+
// Live text is stored per-toolCallId by the executor's emitProgress, not here.
|
|
361
402
|
const estimatedTokens = drainStreamingEstimate(result);
|
|
362
403
|
if (result.usage.output !== lastActualOutputTokens) {
|
|
363
404
|
lastActualOutputTokens = result.usage.output;
|
|
@@ -395,58 +436,78 @@ export async function runFlow(opts) {
|
|
|
395
436
|
reminderFilePath = path.join(reminderTmpDir, "reminder.txt");
|
|
396
437
|
}
|
|
397
438
|
try {
|
|
398
|
-
const piArgs = buildFlowArgs(flow, intent, forkSessionTmpPath, model, parentDepth, maxDepth, toolOptimize, structuredOutput, effectiveSessionMode, effectiveTimeout, opts.acceptance, flows, parentFlowStack, preventCycles);
|
|
439
|
+
const piArgs = buildFlowArgs(flow, intent, forkSessionTmpPath, model, parentDepth, maxDepth, toolOptimize, structuredOutput, effectiveSessionMode, effectiveTimeout, opts.acceptance, flows, parentFlowStack, preventCycles, opts.goalContext, cwd);
|
|
399
440
|
// Dump verbatim child payload to disk for debugging when requested.
|
|
400
441
|
const dumpPath = process.env[FLOW_DUMP_SNAPSHOT_ENV] || inheritedCliArgs.dumpPath;
|
|
401
442
|
if (dumpPath) {
|
|
443
|
+
const maxAgeHours = Number(process.env.PI_FLOW_DUMP_MAX_AGE_HOURS);
|
|
444
|
+
cleanupStaleDumps(dumpPath, Number.isFinite(maxAgeHours) && maxAgeHours > 0 ? maxAgeHours : 168);
|
|
402
445
|
const promptIndex = piArgs.indexOf("-p");
|
|
403
446
|
const prompt = promptIndex >= 0 ? piArgs[promptIndex + 1] : "";
|
|
404
|
-
//
|
|
447
|
+
// Use out-of-band compression stats provided via RunFlowOptions.
|
|
405
448
|
let compressionStats = "";
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
const lastEntry = JSON.parse(lastLine);
|
|
411
|
-
if (lastEntry?.type === "compression-stats") {
|
|
412
|
-
compressionStats = `\n\n## Compression Stats\n\n- Pre-sanitization: ${lastEntry.preBytes} bytes\n- Post-sanitization: ${lastEntry.postBytes} bytes\n- Reduction: ${lastEntry.reductionPercent}%`;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
catch { /* ignore */ }
|
|
449
|
+
let passesApplied = [];
|
|
450
|
+
if (opts.compressionStats) {
|
|
451
|
+
compressionStats = `\n\n## Compression Stats\n\n- Pre-sanitization: ${opts.compressionStats.preBytes} bytes\n- Post-sanitization: ${opts.compressionStats.postBytes} bytes\n- Reduction: ${opts.compressionStats.reductionPercent}%`;
|
|
452
|
+
passesApplied = Array.isArray(opts.compressionStats.passesApplied) ? opts.compressionStats.passesApplied : [];
|
|
416
453
|
}
|
|
417
|
-
const
|
|
418
|
-
const
|
|
454
|
+
const effectiveTier = flow.tier ?? getFlowTier(flow.name);
|
|
455
|
+
const passesList = passesApplied.length > 0 ? passesApplied.join(", ") : forkSessionSnapshotJsonl ? "sanitizeForkSnapshot (see src/snapshot.ts)" : "(none — cold start)";
|
|
456
|
+
const sanitizationHeader = `<!-- pi-agent-flow dump | State: post-sanitization | Passes: ${passesList} | Flow: ${flow.name} | Tier: ${effectiveTier} | Pipeline: ${pipelineVersion} | Generated: ${new Date().toISOString()} -->`;
|
|
457
|
+
const markdownParts = [
|
|
419
458
|
sanitizationHeader,
|
|
420
459
|
``,
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
prompt,
|
|
428
|
-
compressionStats,
|
|
429
|
-
].join("\n");
|
|
460
|
+
];
|
|
461
|
+
if (forkSessionSnapshotJsonl) {
|
|
462
|
+
markdownParts.push(`## Session Snapshot (JSONL)`, ``, ...forkSessionSnapshotJsonl.split("\n"), ``);
|
|
463
|
+
}
|
|
464
|
+
markdownParts.push(`## Activation Prompt (-p)`, ``, prompt, compressionStats);
|
|
465
|
+
const markdown = markdownParts.join("\n");
|
|
430
466
|
const uniqueDumpPath = makeUniqueDumpPath(dumpPath, flow.name);
|
|
431
467
|
const uniqueTxtPath = makeUniqueDumpTxtPath(uniqueDumpPath);
|
|
432
468
|
try {
|
|
433
469
|
atomicWriteFileSync(uniqueDumpPath, markdown);
|
|
434
470
|
atomicWriteFileSync(uniqueTxtPath, prompt);
|
|
435
|
-
|
|
471
|
+
logError(`[pi-agent-flow] Snapshot dumped to ${uniqueDumpPath}`);
|
|
436
472
|
}
|
|
437
473
|
catch (err) {
|
|
438
|
-
|
|
474
|
+
logError(`[pi-agent-flow] Snapshot dump FAILED: ${err}`);
|
|
439
475
|
}
|
|
440
476
|
}
|
|
441
477
|
let wasAborted = false;
|
|
442
478
|
const exitCode = await new Promise((resolve) => {
|
|
443
|
-
const nextDepth =
|
|
444
|
-
const
|
|
445
|
-
const
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
const
|
|
479
|
+
const { nextDepth, propagatedMaxDepth, propagatedStack } = computeChildPropagation(parentDepth, maxDepth, parentFlowStack, normalizedFlowName);
|
|
480
|
+
const isShortBudget = effectiveTimeout <= SNAP_THRESHOLD_MS;
|
|
481
|
+
const warningMs = isShortBudget
|
|
482
|
+
? Math.floor(effectiveTimeout * 0.5)
|
|
483
|
+
: effectiveTimeout - FLOW_TIME_BUDGET_WARNING_MS;
|
|
484
|
+
const urgeMs = isShortBudget
|
|
485
|
+
? Math.floor(effectiveTimeout * 0.85)
|
|
486
|
+
: effectiveTimeout - FLOW_FINAL_URGE_MS;
|
|
487
|
+
const effectiveGraceMs = isShortBudget
|
|
488
|
+
? Math.max(5_000, Math.floor(effectiveTimeout * 0.15))
|
|
489
|
+
: REPORTING_GRACE_MS;
|
|
490
|
+
const toolSummaryGraceMs = isShortBudget
|
|
491
|
+
? Math.max(3_000, Math.floor(effectiveTimeout * 0.1))
|
|
492
|
+
: Math.min(FLOW_TOOL_SUMMARY_GRACE_MS, Math.max(0, effectiveTimeout), Math.max(effectiveTimeout >= 10_000 ? 1_000 : Math.floor(effectiveTimeout / 2), Math.floor(effectiveTimeout * 0.1)));
|
|
449
493
|
const { command, prefixArgs } = resolveFlowSpawn();
|
|
494
|
+
if (dumpPath) {
|
|
495
|
+
const distDir = path.dirname(new URL(import.meta.url).pathname);
|
|
496
|
+
const srcDir = path.join(distDir, "..", "src");
|
|
497
|
+
const checkStale = (srcFile, distFile) => {
|
|
498
|
+
try {
|
|
499
|
+
const srcMtime = fs.statSync(path.join(srcDir, srcFile)).mtimeMs;
|
|
500
|
+
const distMtime = fs.statSync(path.join(distDir, distFile)).mtimeMs;
|
|
501
|
+
return srcMtime > distMtime;
|
|
502
|
+
}
|
|
503
|
+
catch {
|
|
504
|
+
return false;
|
|
505
|
+
}
|
|
506
|
+
};
|
|
507
|
+
if (checkStale("snapshot.ts", "snapshot.js") || checkStale("flow.ts", "flow.js")) {
|
|
508
|
+
logWarn("⚠️ Source newer than dist — run npm run build for accurate dumps");
|
|
509
|
+
}
|
|
510
|
+
}
|
|
450
511
|
const proc = spawn(command, [...prefixArgs, ...piArgs], {
|
|
451
512
|
cwd: taskCwd ?? cwd,
|
|
452
513
|
shell: false,
|
|
@@ -718,7 +779,7 @@ export async function runFlow(opts) {
|
|
|
718
779
|
result.stopReason = "timeout";
|
|
719
780
|
result.errorMessage = `Flow timed out after ${Math.round(effectiveTimeout / 1000)}s.`;
|
|
720
781
|
terminateChild();
|
|
721
|
-
},
|
|
782
|
+
}, effectiveGraceMs);
|
|
722
783
|
graceTimer.unref();
|
|
723
784
|
}, effectiveTimeout);
|
|
724
785
|
timeoutTimer.unref();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/core/flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
declare const AGENT_SESSION_MODES: readonly ["snap", "fast", "default", "long", "extreme_long"];
|
|
2
2
|
export type AgentSessionMode = typeof AGENT_SESSION_MODES[number];
|
|
3
3
|
export declare const DEFAULT_AGENT_SESSION_MODE: AgentSessionMode;
|
|
4
4
|
export declare const MAX_AGENT_SESSION_TIMEOUT_MS = 1200000;
|
|
@@ -7,4 +7,5 @@ export declare const AGENT_SESSION_TIMEOUTS_MS: Record<AgentSessionMode, number>
|
|
|
7
7
|
export declare function parseAgentSessionMode(value: unknown): AgentSessionMode | undefined;
|
|
8
8
|
export declare function resolveAgentSessionMode(value: unknown, fallback?: AgentSessionMode): AgentSessionMode;
|
|
9
9
|
export declare function getAgentSessionTimeoutMs(mode: AgentSessionMode): number;
|
|
10
|
+
export {};
|
|
10
11
|
//# sourceMappingURL=session-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-mode.d.ts","sourceRoot":"","sources":["../../src/core/session-mode.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB,8DAA+D,CAAC;AAEzF,MAAM,MAAM,gBAAgB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAElE,eAAO,MAAM,0BAA0B,EAAE,gBAA4B,CAAC;AACtE,eAAO,MAAM,4BAA4B,UAAY,CAAC;AACtD,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAMtE,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAMlF;AAED,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,gBAA6C,GACrD,gBAAgB,CAElB;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAEvE"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
const AGENT_SESSION_MODES = ["snap", "fast", "default", "long", "extreme_long"];
|
|
2
2
|
export const DEFAULT_AGENT_SESSION_MODE = "default";
|
|
3
3
|
export const MAX_AGENT_SESSION_TIMEOUT_MS = 1_200_000;
|
|
4
4
|
export const PI_FLOW_SESSION_MODE_ENV = "PI_FLOW_SESSION_MODE";
|
|
5
5
|
export const AGENT_SESSION_TIMEOUTS_MS = {
|
|
6
|
+
snap: 90_000,
|
|
6
7
|
fast: 300_000,
|
|
7
8
|
default: 600_000,
|
|
8
9
|
long: 900_000,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-mode.js","sourceRoot":"","sources":["../../src/core/session-mode.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAU,CAAC;AAIzF,MAAM,CAAC,MAAM,0BAA0B,GAAqB,SAAS,CAAC;AACtE,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,CAAC;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,MAAM,CAAC,MAAM,yBAAyB,GAAqC;IAC1E,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,4BAA4B;CAC1C,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,KAAc;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAQ,mBAAyC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACrE,CAAC,CAAC,UAA8B;QAChC,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,KAAc,EACd,WAA6B,0BAA0B;IAEvD,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAsB;IAC9D,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session registry — maps cwd to the active sessionId.
|
|
3
|
+
*
|
|
4
|
+
* Replaces module-level singletons (_currentCwd, _currentSessionId) with a
|
|
5
|
+
* single Map that is populated at session_start and consulted by event
|
|
6
|
+
* handlers that do not receive ExtensionContext (e.g. turn_end).
|
|
7
|
+
*/
|
|
8
|
+
export declare function register(cwd: string, sessionId: string): void;
|
|
9
|
+
export declare function unregister(cwd: string): void;
|
|
10
|
+
export declare function getSessionId(cwd: string): string | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Returns the most recently registered cwd.
|
|
13
|
+
* Used by turn_end handlers that lack ExtensionContext.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getCwd(): string | undefined;
|
|
16
|
+
//# sourceMappingURL=session-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-registry.d.ts","sourceRoot":"","sources":["../../src/core/session-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAG7D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAK5C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5D;AAED;;;GAGG;AACH,wBAAgB,MAAM,IAAI,MAAM,GAAG,SAAS,CAE3C"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session registry — maps cwd to the active sessionId.
|
|
3
|
+
*
|
|
4
|
+
* Replaces module-level singletons (_currentCwd, _currentSessionId) with a
|
|
5
|
+
* single Map that is populated at session_start and consulted by event
|
|
6
|
+
* handlers that do not receive ExtensionContext (e.g. turn_end).
|
|
7
|
+
*/
|
|
8
|
+
const registry = new Map(); // cwd -> sessionId
|
|
9
|
+
let _lastCwd;
|
|
10
|
+
export function register(cwd, sessionId) {
|
|
11
|
+
registry.set(cwd, sessionId);
|
|
12
|
+
_lastCwd = cwd;
|
|
13
|
+
}
|
|
14
|
+
export function unregister(cwd) {
|
|
15
|
+
registry.delete(cwd);
|
|
16
|
+
if (_lastCwd === cwd) {
|
|
17
|
+
_lastCwd = undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function getSessionId(cwd) {
|
|
21
|
+
return registry.get(cwd);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns the most recently registered cwd.
|
|
25
|
+
* Used by turn_end handlers that lack ExtensionContext.
|
|
26
|
+
*/
|
|
27
|
+
export function getCwd() {
|
|
28
|
+
return _lastCwd;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=session-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-registry.js","sourceRoot":"","sources":["../../src/core/session-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,mBAAmB;AAC/D,IAAI,QAA4B,CAAC;AAEjC,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,SAAiB;IACrD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7B,QAAQ,GAAG,GAAG,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QACrB,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../src/core/transitions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,WAAW,cAAc;IAC9B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,EAAE,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrC,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;CACf;AAMD,eAAO,MAAM,mBAAmB,EAAE,cAAc,EAW/C,CAAC;AAMF;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,EACnH,WAAW,GAAE,cAAc,EAAwB,GACjD,MAAM,EAAE,CAuBV"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* follow-up flow given a source flow's outcome. The matrix is used by
|
|
6
6
|
* getTransitionAdvice() to generate advisory strings.
|
|
7
7
|
*/
|
|
8
|
-
import { isFlowSuccess } from "
|
|
8
|
+
import { isFlowSuccess } from "../types/flow.js";
|
|
9
9
|
// ---------------------------------------------------------------------------
|
|
10
10
|
// Default transition matrix
|
|
11
11
|
// ---------------------------------------------------------------------------
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/core/transitions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAiBjD,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACpD,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,6GAA6G,EAAE;IACpK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,4EAA4E,EAAE;IACnI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,2FAA2F,EAAE;IAClJ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,oGAAoG,EAAE;IAC3J,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,oGAAoG,EAAE;IAC3J,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,8EAA8E,EAAE;IACrI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,kGAAkG,EAAE;IACzJ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,kEAAkE,EAAE;IACzH,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,sEAAsE,EAAE;IAC7H,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,2GAA2G,EAAE;CAClK,CAAC;AAEF,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAClC,MAA+C,EAC/C,OAAmH,EACnH,cAAgC,mBAAmB;IAEnD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,MAAiD,CAAC,CAAC;QAEnF,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU;gBAAE,SAAS;YAElD,0BAA0B;YAC1B,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,SAAS;gBAAE,SAAS;YAC/C,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,SAAS;gBAAE,SAAS;YAE9C,0CAA0C;YAC1C,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;gBAAE,SAAS;YAErD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-warp orchestration for endless loops.
|
|
3
|
+
*
|
|
4
|
+
* When a loop is active and the goal budget is exceeded, instead of pausing
|
|
5
|
+
* we send a hidden message that triggers the orchestrator to call /flow:warp.
|
|
6
|
+
* The warp frontmatter receives loop context so the new session can resume
|
|
7
|
+
* seamlessly.
|
|
8
|
+
*/
|
|
9
|
+
import type { GoalEntry, LoopState } from "./types.js";
|
|
10
|
+
export declare function shouldAutoWarp(cwd: string, goal: GoalEntry): boolean;
|
|
11
|
+
export declare function buildAutoWarpPrompt(goal: GoalEntry, loop: LoopState): string;
|
|
12
|
+
//# sourceMappingURL=auto-warp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-warp.d.ts","sourceRoot":"","sources":["../../src/flow/auto-warp.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAMpE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAS5E"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-warp orchestration for endless loops.
|
|
3
|
+
*
|
|
4
|
+
* When a loop is active and the goal budget is exceeded, instead of pausing
|
|
5
|
+
* we send a hidden message that triggers the orchestrator to call /flow:warp.
|
|
6
|
+
* The warp frontmatter receives loop context so the new session can resume
|
|
7
|
+
* seamlessly.
|
|
8
|
+
*/
|
|
9
|
+
import { getLoop } from "./loop.js";
|
|
10
|
+
import { autoWarpTriggerTemplate } from "./loop-templates.js";
|
|
11
|
+
export function shouldAutoWarp(cwd, goal) {
|
|
12
|
+
const loop = getLoop(cwd);
|
|
13
|
+
if (!loop || loop.status !== "active")
|
|
14
|
+
return false;
|
|
15
|
+
const overTokens = goal.maxTokens !== undefined && goal.totalTokens >= goal.maxTokens;
|
|
16
|
+
const overFlows = goal.maxFlows !== undefined && goal.completedFlows.length >= goal.maxFlows;
|
|
17
|
+
return overTokens || overFlows;
|
|
18
|
+
}
|
|
19
|
+
export function buildAutoWarpPrompt(goal, loop) {
|
|
20
|
+
const acceptanceClause = goal.acceptance ? `\nAcceptance: ${goal.acceptance}` : "";
|
|
21
|
+
return autoWarpTriggerTemplate
|
|
22
|
+
.replace("{{objective}}", goal.objective)
|
|
23
|
+
.replace("{{acceptanceClause}}", acceptanceClause)
|
|
24
|
+
.replace("{{sessionCount}}", String(loop.sessionCount))
|
|
25
|
+
.replace("{{totalTokensAcrossSessions}}", String(loop.totalTokensAcrossSessions))
|
|
26
|
+
.replace("{{maxTokens}}", String(goal.maxTokens ?? "unlimited"))
|
|
27
|
+
.replace("{{totalFlowsAcrossSessions}}", String(loop.totalFlowsAcrossSessions));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=auto-warp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-warp.js","sourceRoot":"","sources":["../../src/flow/auto-warp.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,IAAe;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;IACtF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC;IAC7F,OAAO,UAAU,IAAI,SAAS,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAe,EAAE,IAAe;IAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO,uBAAuB;SAC3B,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;SACxC,OAAO,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;SACjD,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACtD,OAAO,CAAC,+BAA+B,EAAE,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;SAChF,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC;SAC/D,OAAO,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* /flow:goal slash command registration.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands: set, clear, pause, resume, edit, status, show
|
|
5
|
+
*/
|
|
6
|
+
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
7
|
+
export declare function setupFlowCommand(pi: ExtensionAPI): void;
|
|
8
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/flow/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,+BAA+B,CAAC;AA+B3F,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAsKvD"}
|