pi-agent-flow 1.8.40 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -37
- package/agents/audit.md +18 -22
- package/agents/build.md +20 -22
- package/agents/craft.md +20 -27
- package/agents/debug.md +21 -28
- package/agents/ideas.md +18 -101
- package/agents/scout.md +15 -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 +3 -3
- package/dist/batch/batch-bash.js.map +1 -1
- package/dist/batch/constants.d.ts +19 -5
- package/dist/batch/constants.d.ts.map +1 -1
- package/dist/batch/constants.js +4 -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 +97 -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/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/{config.d.ts → config/config.d.ts} +34 -2
- package/dist/config/config.d.ts.map +1 -0
- package/dist/{config.js → config/config.js} +157 -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/{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} +11 -10
- 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 +55 -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} +11 -3
- package/dist/core/executor.d.ts.map +1 -0
- package/dist/{executor.js → core/executor.js} +49 -14
- package/dist/core/executor.js.map +1 -0
- package/dist/{flow.d.ts → core/flow.d.ts} +4 -1
- package/dist/core/flow.d.ts.map +1 -0
- package/dist/{flow.js → core/flow.js} +110 -45
- 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} +1 -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/command.d.ts +8 -0
- package/dist/flow/command.d.ts.map +1 -0
- package/dist/flow/command.js +189 -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 +151 -0
- package/dist/flow/continuation.js.map +1 -0
- package/dist/flow/index.d.ts +15 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +22 -0
- package/dist/flow/index.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 +851 -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 +158 -0
- package/dist/flow/store.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 +39 -0
- package/dist/flow/template-strings.js.map +1 -0
- package/dist/flow/types.d.ts +55 -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 +9 -0
- package/dist/flow/warp-command.d.ts.map +1 -0
- package/dist/flow/warp-command.js +405 -0
- package/dist/flow/warp-command.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +103 -29
- 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} +3 -2
- package/dist/snapshot/cli-args.d.ts.map +1 -0
- package/dist/{cli-args.js → snapshot/cli-args.js} +1 -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} +5 -2
- package/dist/snapshot/snapshot.d.ts.map +1 -0
- package/dist/{snapshot.js → snapshot/snapshot.js} +166 -35
- 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} +15 -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} +2 -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} +1 -1
- package/dist/tui/render-utils.d.ts.map +1 -0
- package/dist/{render-utils.js → tui/render-utils.js} +3 -3
- 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 +813 -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 +48 -0
- package/dist/tui/scramble/manager.d.ts.map +1 -0
- package/dist/tui/scramble/manager.js +959 -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 +110 -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 +104 -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.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
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings resolution for session_start handler.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from index.ts for single-responsibility and testability.
|
|
5
|
+
*/
|
|
6
|
+
import * as os from "node:os";
|
|
7
|
+
import * as fs from "node:fs";
|
|
8
|
+
import { discoverFlows } from "../core/agents.js";
|
|
9
|
+
import { loadFlowModelConfigs, loadFlowSettings, loadProjectFlowModelConfigName, normalizeFlowModeName, selectFlowModelStrategy, writeGlobalFlowMode, formatFlowModelStrategy, } from "./config.js";
|
|
10
|
+
import { getInheritedCliArgs } from "../snapshot/cli-args.js";
|
|
11
|
+
import { parseBoolean, FLOW_TOOL_OPTIMIZE_ENV } from "../core/depth.js";
|
|
12
|
+
import { logWarn } from "./log.js";
|
|
13
|
+
import { DEFAULT_AGENT_SESSION_MODE, PI_FLOW_SESSION_MODE_ENV, parseAgentSessionMode, } from "../core/session-mode.js";
|
|
14
|
+
// Environment variables for steering and animation
|
|
15
|
+
const PI_FLOW_NO_STEERING_ENV = "PI_FLOW_NO_STEERING";
|
|
16
|
+
const PI_FLOW_NO_STRATEGIC_HINT_ENV = "PI_FLOW_NO_STRATEGIC_HINT";
|
|
17
|
+
const PI_FLOW_NO_ANIMATION_ENV = "PI_FLOW_NO_ANIMATION";
|
|
18
|
+
const PI_FLOW_NO_GLITCH_ENV = "PI_FLOW_NO_GLITCH";
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Resolution
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
/**
|
|
23
|
+
* Resolve all flow settings from env vars, CLI flags, and settings files.
|
|
24
|
+
*
|
|
25
|
+
* Called from the session_start handler. Returns the resolved settings
|
|
26
|
+
* plus discovered flows and model configs.
|
|
27
|
+
*/
|
|
28
|
+
export function resolveSettings(pi, cwd) {
|
|
29
|
+
const inheritedCliArgs = getInheritedCliArgs();
|
|
30
|
+
let toolOptimize = true;
|
|
31
|
+
let structuredOutput = true;
|
|
32
|
+
let maxConcurrency = 4;
|
|
33
|
+
let defaultSessionMode = DEFAULT_AGENT_SESSION_MODE;
|
|
34
|
+
let steeringEnabled = true;
|
|
35
|
+
let steeringCustomPrompt = undefined;
|
|
36
|
+
let steeringStrategicHint = true;
|
|
37
|
+
let animationEnabled = true;
|
|
38
|
+
let animationGlitch = true;
|
|
39
|
+
let askUserEnabled = false;
|
|
40
|
+
let askUserTimeout = 300000; // 5 minutes in ms
|
|
41
|
+
const envToolOptimize = process.env[FLOW_TOOL_OPTIMIZE_ENV];
|
|
42
|
+
if (envToolOptimize !== undefined) {
|
|
43
|
+
const parsed = parseBoolean(envToolOptimize);
|
|
44
|
+
if (parsed !== null)
|
|
45
|
+
toolOptimize = parsed;
|
|
46
|
+
}
|
|
47
|
+
// Auto-discover flows
|
|
48
|
+
const discovery = discoverFlows(cwd, "all");
|
|
49
|
+
const discoveredFlows = discovery.flows;
|
|
50
|
+
let loadedFlowModelConfigs = loadFlowModelConfigs(cwd);
|
|
51
|
+
let activeRuntimeFlowMode = undefined;
|
|
52
|
+
// Resolve --flow-mode persistent switch
|
|
53
|
+
const requestedFlowMode = normalizeFlowModeName(pi.getFlag("flow-mode"));
|
|
54
|
+
if (requestedFlowMode !== undefined) {
|
|
55
|
+
if (!Object.prototype.hasOwnProperty.call(loadedFlowModelConfigs.configs, requestedFlowMode)) {
|
|
56
|
+
const availableModes = Object.keys(loadedFlowModelConfigs.configs).sort().join(", ") || "(none)";
|
|
57
|
+
logWarn(`[pi-agent-flow] Cannot switch flow mode to "${requestedFlowMode}"; no flowModelConfigs.${requestedFlowMode} strategy was found. Available modes: ${availableModes}.`);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
try {
|
|
61
|
+
writeGlobalFlowMode(requestedFlowMode);
|
|
62
|
+
const strategy = loadedFlowModelConfigs.configs[requestedFlowMode] ?? {};
|
|
63
|
+
const strategyDescription = formatFlowModelStrategy(requestedFlowMode, strategy);
|
|
64
|
+
logWarn(strategyDescription);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
68
|
+
logWarn(`[pi-agent-flow] ${message}`);
|
|
69
|
+
}
|
|
70
|
+
const projectFlowModelConfig = loadProjectFlowModelConfigName(cwd);
|
|
71
|
+
if (projectFlowModelConfig !== undefined && projectFlowModelConfig !== requestedFlowMode) {
|
|
72
|
+
logWarn(`[pi-agent-flow] Switched global flow mode to "${requestedFlowMode}"; this project selects "${projectFlowModelConfig}" in .pi/settings.json, so future runs in this project may still use "${projectFlowModelConfig}" unless project settings are changed.`);
|
|
73
|
+
}
|
|
74
|
+
activeRuntimeFlowMode = requestedFlowMode;
|
|
75
|
+
loadedFlowModelConfigs = selectFlowModelStrategy(loadedFlowModelConfigs.configs, requestedFlowMode);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Resolve settings from .pi/settings.json
|
|
79
|
+
const flowSettings = loadFlowSettings(cwd);
|
|
80
|
+
if (typeof flowSettings.structuredOutput === "boolean") {
|
|
81
|
+
structuredOutput = flowSettings.structuredOutput;
|
|
82
|
+
}
|
|
83
|
+
if (typeof flowSettings.maxConcurrency === "number") {
|
|
84
|
+
maxConcurrency = flowSettings.maxConcurrency;
|
|
85
|
+
}
|
|
86
|
+
// steering defaults from settings.json
|
|
87
|
+
if (typeof flowSettings.steering?.enabled === "boolean") {
|
|
88
|
+
steeringEnabled = flowSettings.steering.enabled;
|
|
89
|
+
}
|
|
90
|
+
if (typeof flowSettings.steering?.customPrompt === "string") {
|
|
91
|
+
steeringCustomPrompt = flowSettings.steering.customPrompt;
|
|
92
|
+
}
|
|
93
|
+
if (typeof flowSettings.steering?.strategicHint === "boolean") {
|
|
94
|
+
steeringStrategicHint = flowSettings.steering.strategicHint;
|
|
95
|
+
}
|
|
96
|
+
// animation defaults from settings.json
|
|
97
|
+
if (typeof flowSettings.animation?.enabled === "boolean") {
|
|
98
|
+
animationEnabled = flowSettings.animation.enabled;
|
|
99
|
+
}
|
|
100
|
+
if (typeof flowSettings.animation?.glitch === "boolean") {
|
|
101
|
+
animationGlitch = flowSettings.animation.glitch;
|
|
102
|
+
}
|
|
103
|
+
// Resolve toolOptimize: CLI flag > env var > settings.json > default
|
|
104
|
+
const cliFlag = pi.getFlag("tool-optimize");
|
|
105
|
+
if (typeof flowSettings.toolOptimize === "boolean") {
|
|
106
|
+
toolOptimize = flowSettings.toolOptimize;
|
|
107
|
+
}
|
|
108
|
+
if (envToolOptimize !== undefined) {
|
|
109
|
+
const parsed = parseBoolean(envToolOptimize);
|
|
110
|
+
if (parsed !== null)
|
|
111
|
+
toolOptimize = parsed;
|
|
112
|
+
}
|
|
113
|
+
if (typeof cliFlag === "boolean") {
|
|
114
|
+
toolOptimize = cliFlag;
|
|
115
|
+
}
|
|
116
|
+
else if (typeof cliFlag === "string") {
|
|
117
|
+
const parsed = parseBoolean(cliFlag);
|
|
118
|
+
if (parsed !== null)
|
|
119
|
+
toolOptimize = parsed;
|
|
120
|
+
}
|
|
121
|
+
// Resolve sessionMode: CLI flag > env var > settings.json > default
|
|
122
|
+
defaultSessionMode = flowSettings.sessionMode ?? DEFAULT_AGENT_SESSION_MODE;
|
|
123
|
+
const envSessionModeRaw = process.env[PI_FLOW_SESSION_MODE_ENV];
|
|
124
|
+
if (envSessionModeRaw !== undefined) {
|
|
125
|
+
const envSessionMode = parseAgentSessionMode(envSessionModeRaw);
|
|
126
|
+
if (envSessionMode !== undefined) {
|
|
127
|
+
defaultSessionMode = envSessionMode;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
logWarn(`[pi-agent-flow] Ignoring invalid ${PI_FLOW_SESSION_MODE_ENV}="${envSessionModeRaw}". Expected fast, default, long, or extreme_long.`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const cliSessionModeRaw = pi.getFlag("flow-session-mode");
|
|
134
|
+
if (typeof cliSessionModeRaw === "string") {
|
|
135
|
+
const cliSessionMode = parseAgentSessionMode(cliSessionModeRaw);
|
|
136
|
+
if (cliSessionMode !== undefined) {
|
|
137
|
+
defaultSessionMode = cliSessionMode;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
logWarn(`[pi-agent-flow] Ignoring invalid --flow-session-mode value "${cliSessionModeRaw}". Expected fast, default, long, or extreme_long.`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else if (inheritedCliArgs.flowSessionMode !== undefined) {
|
|
144
|
+
defaultSessionMode = inheritedCliArgs.flowSessionMode;
|
|
145
|
+
}
|
|
146
|
+
// Resolve maxConcurrency: CLI flag > env var > settings.json > default
|
|
147
|
+
const cliConcurrency = pi.getFlag("flow-max-concurrency");
|
|
148
|
+
if (typeof cliConcurrency === "string") {
|
|
149
|
+
const parsed = Number(cliConcurrency);
|
|
150
|
+
if (Number.isSafeInteger(parsed) && parsed >= 1)
|
|
151
|
+
maxConcurrency = parsed;
|
|
152
|
+
}
|
|
153
|
+
else if (typeof cliConcurrency === "number" && Number.isSafeInteger(cliConcurrency) && cliConcurrency >= 1) {
|
|
154
|
+
maxConcurrency = cliConcurrency;
|
|
155
|
+
}
|
|
156
|
+
const envConcurrency = process.env["PI_FLOW_MAX_CONCURRENCY"];
|
|
157
|
+
if (envConcurrency !== undefined && typeof cliConcurrency === "undefined") {
|
|
158
|
+
const parsed = Number(envConcurrency);
|
|
159
|
+
if (Number.isSafeInteger(parsed) && parsed >= 1)
|
|
160
|
+
maxConcurrency = parsed;
|
|
161
|
+
}
|
|
162
|
+
// Cap concurrency to the number of available CPUs
|
|
163
|
+
if (typeof os.availableParallelism === "function") {
|
|
164
|
+
const hwConcurrency = os.availableParallelism();
|
|
165
|
+
if (hwConcurrency > 0)
|
|
166
|
+
maxConcurrency = Math.min(maxConcurrency, hwConcurrency);
|
|
167
|
+
}
|
|
168
|
+
// Resolve steering: CLI flag > env var > settings.json > default
|
|
169
|
+
const envNoSteering = process.env[PI_FLOW_NO_STEERING_ENV];
|
|
170
|
+
if (envNoSteering !== undefined) {
|
|
171
|
+
const parsed = parseBoolean(envNoSteering);
|
|
172
|
+
if (parsed !== null)
|
|
173
|
+
steeringEnabled = !parsed; // env is "NO" steering, so invert
|
|
174
|
+
}
|
|
175
|
+
const cliNoSteering = pi.getFlag("no-steering");
|
|
176
|
+
if (typeof cliNoSteering === "boolean") {
|
|
177
|
+
steeringEnabled = !cliNoSteering;
|
|
178
|
+
}
|
|
179
|
+
else if (typeof cliNoSteering === "string") {
|
|
180
|
+
const parsed = parseBoolean(cliNoSteering);
|
|
181
|
+
if (parsed !== null)
|
|
182
|
+
steeringEnabled = !parsed;
|
|
183
|
+
}
|
|
184
|
+
// Resolve strategic hint: CLI flag > env var > settings.json > default
|
|
185
|
+
const envNoStrategicHint = process.env[PI_FLOW_NO_STRATEGIC_HINT_ENV];
|
|
186
|
+
if (envNoStrategicHint !== undefined) {
|
|
187
|
+
const parsed = parseBoolean(envNoStrategicHint);
|
|
188
|
+
if (parsed !== null)
|
|
189
|
+
steeringStrategicHint = !parsed;
|
|
190
|
+
}
|
|
191
|
+
const cliNoStrategicHint = pi.getFlag("no-strategic-hint");
|
|
192
|
+
if (typeof cliNoStrategicHint === "boolean") {
|
|
193
|
+
steeringStrategicHint = !cliNoStrategicHint;
|
|
194
|
+
}
|
|
195
|
+
else if (typeof cliNoStrategicHint === "string") {
|
|
196
|
+
const parsed = parseBoolean(cliNoStrategicHint);
|
|
197
|
+
if (parsed !== null)
|
|
198
|
+
steeringStrategicHint = !parsed;
|
|
199
|
+
}
|
|
200
|
+
// Resolve animation: CLI flag > env var > settings.json > default
|
|
201
|
+
const envNoAnimation = process.env[PI_FLOW_NO_ANIMATION_ENV];
|
|
202
|
+
if (envNoAnimation !== undefined) {
|
|
203
|
+
const parsed = parseBoolean(envNoAnimation);
|
|
204
|
+
if (parsed !== null)
|
|
205
|
+
animationEnabled = !parsed;
|
|
206
|
+
}
|
|
207
|
+
const cliNoAnimation = pi.getFlag("no-animation");
|
|
208
|
+
if (typeof cliNoAnimation === "boolean") {
|
|
209
|
+
animationEnabled = !cliNoAnimation;
|
|
210
|
+
}
|
|
211
|
+
else if (typeof cliNoAnimation === "string") {
|
|
212
|
+
const parsed = parseBoolean(cliNoAnimation);
|
|
213
|
+
if (parsed !== null)
|
|
214
|
+
animationEnabled = !parsed;
|
|
215
|
+
}
|
|
216
|
+
// Resolve glitch: CLI flag > env var > settings.json > default
|
|
217
|
+
const envNoGlitch = process.env[PI_FLOW_NO_GLITCH_ENV];
|
|
218
|
+
if (envNoGlitch !== undefined) {
|
|
219
|
+
const parsed = parseBoolean(envNoGlitch);
|
|
220
|
+
if (parsed !== null)
|
|
221
|
+
animationGlitch = !parsed;
|
|
222
|
+
}
|
|
223
|
+
const cliNoGlitch = pi.getFlag("no-glitch");
|
|
224
|
+
if (typeof cliNoGlitch === "boolean") {
|
|
225
|
+
animationGlitch = !cliNoGlitch;
|
|
226
|
+
}
|
|
227
|
+
else if (typeof cliNoGlitch === "string") {
|
|
228
|
+
const parsed = parseBoolean(cliNoGlitch);
|
|
229
|
+
if (parsed !== null)
|
|
230
|
+
animationGlitch = !parsed;
|
|
231
|
+
}
|
|
232
|
+
// Resolve askUser: settings.json > env var > default
|
|
233
|
+
if (typeof flowSettings.askUser?.enabled === "boolean") {
|
|
234
|
+
askUserEnabled = flowSettings.askUser.enabled;
|
|
235
|
+
}
|
|
236
|
+
if (typeof flowSettings.askUser?.timeout === "number") {
|
|
237
|
+
askUserTimeout = flowSettings.askUser.timeout * 1000;
|
|
238
|
+
}
|
|
239
|
+
const envAskUserTimeout = process.env["PI_ASK_USER_TIMEOUT"];
|
|
240
|
+
if (envAskUserTimeout !== undefined) {
|
|
241
|
+
const parsed = Number(envAskUserTimeout);
|
|
242
|
+
if (Number.isSafeInteger(parsed) && parsed >= 1) {
|
|
243
|
+
askUserTimeout = parsed * 1000;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
// Resolve custom steering prompt: CLI flag only (path to file)
|
|
247
|
+
const cliSteeringPrompt = pi.getFlag("steering-prompt");
|
|
248
|
+
if (typeof cliSteeringPrompt === "string" && cliSteeringPrompt.trim()) {
|
|
249
|
+
try {
|
|
250
|
+
steeringCustomPrompt = fs.readFileSync(cliSteeringPrompt.trim(), "utf-8").trim();
|
|
251
|
+
}
|
|
252
|
+
catch (err) {
|
|
253
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
254
|
+
logWarn(`[pi-agent-flow] Could not read steering-prompt file: ${msg}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return {
|
|
258
|
+
toolOptimize,
|
|
259
|
+
structuredOutput,
|
|
260
|
+
maxConcurrency,
|
|
261
|
+
defaultSessionMode,
|
|
262
|
+
steeringEnabled,
|
|
263
|
+
steeringCustomPrompt,
|
|
264
|
+
steeringStrategicHint,
|
|
265
|
+
animationEnabled,
|
|
266
|
+
animationGlitch,
|
|
267
|
+
askUserEnabled,
|
|
268
|
+
askUserTimeout,
|
|
269
|
+
discoveredFlows,
|
|
270
|
+
loadedFlowModelConfigs,
|
|
271
|
+
activeRuntimeFlowMode,
|
|
272
|
+
projectFlowsDir: discovery.projectFlowsDir,
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=settings-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-resolver.js","sourceRoot":"","sources":["../../src/config/settings-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/core/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;AAExE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAetD;AA2MD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,mBAAmB,CAsBhF"}
|
|
@@ -13,6 +13,7 @@ import { parseFrontmatter } from "@mariozechner/pi-coding-agent";
|
|
|
13
13
|
import * as fs from "node:fs";
|
|
14
14
|
import * as os from "node:os";
|
|
15
15
|
import * as path from "node:path";
|
|
16
|
+
import { logWarn } from "../config/log.js";
|
|
16
17
|
/** Determine the model tier for a given flow name. */
|
|
17
18
|
export function getFlowTier(flowName) {
|
|
18
19
|
const normalized = flowName.toLowerCase().trim();
|
|
@@ -53,7 +54,7 @@ function getBundledFlowsDir() {
|
|
|
53
54
|
if (import.meta.url) {
|
|
54
55
|
const pluginDir = path.dirname(new URL(import.meta.url).pathname);
|
|
55
56
|
// Check same directory first, then parent (for src/ layout)
|
|
56
|
-
for (const base of [pluginDir, path.dirname(pluginDir)]) {
|
|
57
|
+
for (const base of [pluginDir, path.dirname(pluginDir), path.dirname(path.dirname(pluginDir))]) {
|
|
57
58
|
const dir = path.join(base, "agents");
|
|
58
59
|
if (fs.existsSync(dir))
|
|
59
60
|
return dir;
|
|
@@ -64,7 +65,7 @@ function getBundledFlowsDir() {
|
|
|
64
65
|
// Method 2: __dirname (CommonJS / jiti)
|
|
65
66
|
try {
|
|
66
67
|
if (typeof __dirname !== "undefined") {
|
|
67
|
-
for (const base of [__dirname, path.dirname(__dirname)]) {
|
|
68
|
+
for (const base of [__dirname, path.dirname(__dirname), path.dirname(path.dirname(__dirname))]) {
|
|
68
69
|
const dir = path.join(base, "agents");
|
|
69
70
|
if (fs.existsSync(dir))
|
|
70
71
|
return dir;
|
|
@@ -111,7 +112,7 @@ function parseFlowFile(filePath, source) {
|
|
|
111
112
|
}
|
|
112
113
|
catch (err) {
|
|
113
114
|
const message = err instanceof Error ? err.message : String(err);
|
|
114
|
-
|
|
115
|
+
logWarn(`[pi-agent-flow] Skipping invalid flow file "${filePath}": ${message}`);
|
|
115
116
|
return null;
|
|
116
117
|
}
|
|
117
118
|
const frontmatter = parsed.frontmatter ?? {};
|
|
@@ -120,9 +121,9 @@ function parseFlowFile(filePath, source) {
|
|
|
120
121
|
const description = typeof frontmatter.description === "string" ? frontmatter.description.trim() : "";
|
|
121
122
|
if (!name || !description) {
|
|
122
123
|
if (!name)
|
|
123
|
-
|
|
124
|
+
logWarn(`[pi-agent-flow] Skipping flow file "${filePath}": missing or empty 'name' field.`);
|
|
124
125
|
if (!description)
|
|
125
|
-
|
|
126
|
+
logWarn(`[pi-agent-flow] Skipping flow file "${filePath}": missing or empty 'description' field.`);
|
|
126
127
|
return null;
|
|
127
128
|
}
|
|
128
129
|
// Warn about unknown frontmatter keys
|
|
@@ -132,7 +133,7 @@ function parseFlowFile(filePath, source) {
|
|
|
132
133
|
]);
|
|
133
134
|
for (const key of Object.keys(frontmatter)) {
|
|
134
135
|
if (!knownKeys.has(key)) {
|
|
135
|
-
|
|
136
|
+
logWarn(`[pi-agent-flow] Unknown frontmatter key "${key}" in "${filePath}". This field will be ignored.`);
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
139
|
let tools;
|
|
@@ -153,7 +154,7 @@ function parseFlowFile(filePath, source) {
|
|
|
153
154
|
tools = parsedTools;
|
|
154
155
|
}
|
|
155
156
|
else if (frontmatter.tools !== undefined) {
|
|
156
|
-
|
|
157
|
+
logWarn(`[pi-agent-flow] Ignoring invalid tools field in "${filePath}". Expected a comma-separated string or string array.`);
|
|
157
158
|
}
|
|
158
159
|
let maxDepth;
|
|
159
160
|
if (typeof frontmatter.maxDepth === "number") {
|
|
@@ -177,11 +178,11 @@ function parseFlowFile(filePath, source) {
|
|
|
177
178
|
inheritContext = false;
|
|
178
179
|
}
|
|
179
180
|
else {
|
|
180
|
-
|
|
181
|
+
logWarn(`[pi-agent-flow] Ignoring invalid inheritContext value "${frontmatter.inheritContext}" in "${filePath}". Expected true/false.`);
|
|
181
182
|
}
|
|
182
183
|
}
|
|
183
184
|
else if (frontmatter.inheritContext !== undefined) {
|
|
184
|
-
|
|
185
|
+
logWarn(`[pi-agent-flow] Ignoring invalid inheritContext field in "${filePath}". Expected boolean or string.`);
|
|
185
186
|
}
|
|
186
187
|
// Tier: prefer explicit frontmatter, fall back to name-based inference
|
|
187
188
|
let tier;
|
|
@@ -191,7 +192,7 @@ function parseFlowFile(filePath, source) {
|
|
|
191
192
|
tier = normalized;
|
|
192
193
|
}
|
|
193
194
|
else {
|
|
194
|
-
|
|
195
|
+
logWarn(`[pi-agent-flow] Ignoring invalid tier "${frontmatter.tier}" in "${filePath}". Expected lite, flash, or full.`);
|
|
195
196
|
}
|
|
196
197
|
}
|
|
197
198
|
return {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/core/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation logic extracted from flow.ts.
|
|
3
|
+
*
|
|
4
|
+
* Computes depth/canDelegate state and builds delegation-related
|
|
5
|
+
* prompt fragments for child flow activation.
|
|
6
|
+
*/
|
|
7
|
+
import type { FlowConfig } from "./agents.js";
|
|
8
|
+
export interface DelegationState {
|
|
9
|
+
currentDepth: number;
|
|
10
|
+
effectiveMaxDepth: number;
|
|
11
|
+
canDelegate: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function computeDelegationState(parentDepth: number, maxDepth: number): DelegationState;
|
|
14
|
+
export declare function buildGuardLine(currentDepth: number, effectiveMaxDepth: number, preventCycles: boolean, parentFlowStack: string[]): string;
|
|
15
|
+
export declare function buildDelegationRule(canDelegate: boolean, guardLine: string): string;
|
|
16
|
+
export declare function buildFlowListSection(canDelegate: boolean, discoveredFlows: FlowConfig[]): string;
|
|
17
|
+
export declare function buildLineage(flowName: string, parentFlowStack: string[]): string;
|
|
18
|
+
export declare function buildParentLineageHint(parentFlowStack: string[]): string;
|
|
19
|
+
export declare function computeChildPropagation(parentDepth: number, maxDepth: number, parentFlowStack: string[], normalizedFlowName: string): {
|
|
20
|
+
nextDepth: number;
|
|
21
|
+
propagatedMaxDepth: number;
|
|
22
|
+
propagatedStack: string[];
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=delegation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/core/delegation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,MAAM,WAAW,eAAe;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;CACrB;AAMD,wBAAgB,sBAAsB,CACrC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd,eAAe,CAKjB;AAMD,wBAAgB,cAAc,CAC7B,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,aAAa,EAAE,OAAO,EACtB,eAAe,EAAE,MAAM,EAAE,GACvB,MAAM,CAGR;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAInF;AAED,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,OAAO,EACpB,eAAe,EAAE,UAAU,EAAE,GAC3B,MAAM,CAUR;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhF;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAIxE;AAMD,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EAAE,EACzB,kBAAkB,EAAE,MAAM,GACxB;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC1B,CAKA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation logic extracted from flow.ts.
|
|
3
|
+
*
|
|
4
|
+
* Computes depth/canDelegate state and builds delegation-related
|
|
5
|
+
* prompt fragments for child flow activation.
|
|
6
|
+
*/
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Depth / delegation state
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
export function computeDelegationState(parentDepth, maxDepth) {
|
|
11
|
+
const currentDepth = Math.max(0, Math.floor(parentDepth)) + 1;
|
|
12
|
+
const effectiveMaxDepth = Math.max(0, Math.floor(maxDepth));
|
|
13
|
+
const canDelegate = currentDepth < effectiveMaxDepth;
|
|
14
|
+
return { currentDepth, effectiveMaxDepth, canDelegate };
|
|
15
|
+
}
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Prompt fragment builders
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
export function buildGuardLine(currentDepth, effectiveMaxDepth, preventCycles, parentFlowStack) {
|
|
20
|
+
const stackLabel = parentFlowStack.length > 0 ? parentFlowStack.join(" -> ") : "(root)";
|
|
21
|
+
return `depth ${currentDepth}/${effectiveMaxDepth} | cycles: ${preventCycles ? "blocked" : "off"} | stack: ${stackLabel}`;
|
|
22
|
+
}
|
|
23
|
+
export function buildDelegationRule(canDelegate, guardLine) {
|
|
24
|
+
return canDelegate
|
|
25
|
+
? `You may delegate to sub-flows (${guardLine}).`
|
|
26
|
+
: `You may NOT delegate to sub-flows (${guardLine}).`;
|
|
27
|
+
}
|
|
28
|
+
export function buildFlowListSection(canDelegate, discoveredFlows) {
|
|
29
|
+
if (!canDelegate || discoveredFlows.length === 0)
|
|
30
|
+
return "";
|
|
31
|
+
return (`Available flows:\n${discoveredFlows
|
|
32
|
+
.map((f) => {
|
|
33
|
+
const badge = f.source === "project" ? " 🔒" : f.source === "user" ? " ⚙" : "";
|
|
34
|
+
return `- [${f.name}]${badge} — ${f.description}`;
|
|
35
|
+
})
|
|
36
|
+
.join("\n")}\n`);
|
|
37
|
+
}
|
|
38
|
+
export function buildLineage(flowName, parentFlowStack) {
|
|
39
|
+
return ["orchestrator", ...parentFlowStack, flowName].join(" → ");
|
|
40
|
+
}
|
|
41
|
+
export function buildParentLineageHint(parentFlowStack) {
|
|
42
|
+
return parentFlowStack.length > 0
|
|
43
|
+
? `Spawned by: ${parentFlowStack.join(" → ")}.\n`
|
|
44
|
+
: "";
|
|
45
|
+
}
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
// Child env propagation
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
export function computeChildPropagation(parentDepth, maxDepth, parentFlowStack, normalizedFlowName) {
|
|
50
|
+
const nextDepth = Math.max(0, Math.floor(parentDepth)) + 1;
|
|
51
|
+
const propagatedMaxDepth = Math.max(0, Math.floor(maxDepth));
|
|
52
|
+
const propagatedStack = [...parentFlowStack, normalizedFlowName];
|
|
53
|
+
return { nextDepth, propagatedMaxDepth, propagatedStack };
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=delegation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../src/core/delegation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../src/core/depth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAOlE,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,gCAAgC,OAAO,CAAC;AACrD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAM9D,MAAM,WAAW,eAAe;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;CACvB;AAMD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAOzD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAiB5D;AAuCD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,GAAG,eAAe,CAmGxE"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Extracted from index.ts for single-responsibility and testability.
|
|
5
5
|
*/
|
|
6
|
+
import { logWarn } from "../config/log.js";
|
|
6
7
|
// ---------------------------------------------------------------------------
|
|
7
8
|
// Constants
|
|
8
9
|
// ---------------------------------------------------------------------------
|
|
@@ -96,23 +97,23 @@ export function resolveFlowDepthConfig(pi) {
|
|
|
96
97
|
const depthRaw = process.env[FLOW_DEPTH_ENV];
|
|
97
98
|
const parsedDepth = parseNonNegativeInt(depthRaw);
|
|
98
99
|
if (depthRaw !== undefined && parsedDepth === null) {
|
|
99
|
-
|
|
100
|
+
logWarn(`[pi-agent-flow] Ignoring invalid ${FLOW_DEPTH_ENV}="${depthRaw}". Expected a non-negative integer.`);
|
|
100
101
|
}
|
|
101
102
|
const currentDepth = parsedDepth ?? 0;
|
|
102
103
|
const stackRaw = process.env[FLOW_STACK_ENV];
|
|
103
104
|
const ancestorFlowStack = parseFlowStack(stackRaw);
|
|
104
105
|
if (stackRaw !== undefined && ancestorFlowStack === null) {
|
|
105
|
-
|
|
106
|
+
logWarn(`[pi-agent-flow] Ignoring invalid ${FLOW_STACK_ENV} value. Expected a JSON array of flow names.`);
|
|
106
107
|
}
|
|
107
108
|
const envMaxDepthRaw = process.env[FLOW_MAX_DEPTH_ENV];
|
|
108
109
|
const envMaxDepth = parseNonNegativeInt(envMaxDepthRaw);
|
|
109
110
|
if (envMaxDepthRaw !== undefined && envMaxDepth === null) {
|
|
110
|
-
|
|
111
|
+
logWarn(`[pi-agent-flow] Ignoring invalid ${FLOW_MAX_DEPTH_ENV}="${envMaxDepthRaw}". Expected a non-negative integer.`);
|
|
111
112
|
}
|
|
112
113
|
const argvFlagRaw = getMaxDepthFlagFromArgv(process.argv);
|
|
113
114
|
const argvFlagMaxDepth = argvFlagRaw !== null ? parseNonNegativeInt(argvFlagRaw) : null;
|
|
114
115
|
if (argvFlagRaw !== null && argvFlagMaxDepth === null) {
|
|
115
|
-
|
|
116
|
+
logWarn(`[pi-agent-flow] Ignoring invalid --flow-max-depth value "${argvFlagRaw}". Expected a non-negative integer.`);
|
|
116
117
|
}
|
|
117
118
|
const runtimeFlagValue = pi.getFlag("flow-max-depth");
|
|
118
119
|
const runtimeFlagMaxDepth = typeof runtimeFlagValue === "string"
|
|
@@ -121,12 +122,12 @@ export function resolveFlowDepthConfig(pi) {
|
|
|
121
122
|
if (argvFlagRaw === null &&
|
|
122
123
|
typeof runtimeFlagValue === "string" &&
|
|
123
124
|
runtimeFlagMaxDepth === null) {
|
|
124
|
-
|
|
125
|
+
logWarn(`[pi-agent-flow] Ignoring invalid --flow-max-depth value "${runtimeFlagValue}". Expected a non-negative integer.`);
|
|
125
126
|
}
|
|
126
127
|
const envPreventCyclesRaw = process.env[FLOW_PREVENT_CYCLES_ENV];
|
|
127
128
|
const envPreventCycles = parseBoolean(envPreventCyclesRaw);
|
|
128
129
|
if (envPreventCyclesRaw !== undefined && envPreventCycles === null) {
|
|
129
|
-
|
|
130
|
+
logWarn(`[pi-agent-flow] Ignoring invalid ${FLOW_PREVENT_CYCLES_ENV}="${envPreventCyclesRaw}". Expected true/false.`);
|
|
130
131
|
}
|
|
131
132
|
const argvPreventCyclesRaw = getPreventCyclesFlagFromArgv(process.argv);
|
|
132
133
|
const argvPreventCycles = typeof argvPreventCyclesRaw === "boolean"
|
|
@@ -134,14 +135,14 @@ export function resolveFlowDepthConfig(pi) {
|
|
|
134
135
|
: parseBoolean(argvPreventCyclesRaw);
|
|
135
136
|
if (typeof argvPreventCyclesRaw === "string" &&
|
|
136
137
|
argvPreventCycles === null) {
|
|
137
|
-
|
|
138
|
+
logWarn(`[pi-agent-flow] Ignoring invalid --flow-prevent-cycles value "${argvPreventCyclesRaw}". Expected true/false.`);
|
|
138
139
|
}
|
|
139
140
|
const runtimePreventCyclesRaw = pi.getFlag("flow-prevent-cycles");
|
|
140
141
|
const runtimePreventCycles = parseBoolean(runtimePreventCyclesRaw);
|
|
141
142
|
if (argvPreventCyclesRaw === null &&
|
|
142
143
|
runtimePreventCyclesRaw !== undefined &&
|
|
143
144
|
runtimePreventCycles === null) {
|
|
144
|
-
|
|
145
|
+
logWarn(`[pi-agent-flow] Ignoring invalid --flow-prevent-cycles value "${String(runtimePreventCyclesRaw)}". Expected true/false.`);
|
|
145
146
|
}
|
|
146
147
|
const flagMaxDepth = argvFlagMaxDepth ?? runtimeFlagMaxDepth;
|
|
147
148
|
const maxDepth = flagMaxDepth ?? envMaxDepth ?? DEFAULT_MAX_DELEGATION_DEPTH;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"depth.js","sourceRoot":"","sources":["../../src/core/depth.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
* and telemetry.
|
|
7
7
|
*/
|
|
8
8
|
import type { FlowConfig } from "./agents.js";
|
|
9
|
-
import type { SingleResult, FlowDetails,
|
|
10
|
-
import {
|
|
9
|
+
import type { SingleResult, FlowDetails, FlowMetrics } from "../types/flow.js";
|
|
10
|
+
import type { CompressedFlowResult } from "../types/output.js";
|
|
11
|
+
import { type LoadedFlowModelConfigs } from "../config/config.js";
|
|
11
12
|
import { type AgentSessionMode } from "./session-mode.js";
|
|
13
|
+
import type { GoalContext } from '../flow/types.js';
|
|
12
14
|
export interface FlowExecutorDeps {
|
|
13
15
|
/** All discovered flow configs. */
|
|
14
16
|
flows: FlowConfig[];
|
|
@@ -50,10 +52,11 @@ export interface FlowExecutorDeps {
|
|
|
50
52
|
flowResultCache: Map<string, CompressedFlowResult[]>;
|
|
51
53
|
/** Project flows directory. */
|
|
52
54
|
projectFlowsDir: string | null;
|
|
53
|
-
/** Session manager for fork snapshot. */
|
|
55
|
+
/** Session manager for fork snapshot and session identification. */
|
|
54
56
|
sessionManager: {
|
|
55
57
|
getHeader: () => unknown;
|
|
56
58
|
getBranch: () => unknown[];
|
|
59
|
+
getSessionId: () => string;
|
|
57
60
|
};
|
|
58
61
|
/** Whether UI is available for confirmation. */
|
|
59
62
|
hasUI: boolean;
|
|
@@ -63,6 +66,10 @@ export interface FlowExecutorDeps {
|
|
|
63
66
|
onFlowMetrics?: (metrics: FlowMetrics) => void;
|
|
64
67
|
/** Whether to prompt the user before running project-local flows. Default: true. */
|
|
65
68
|
confirmProjectFlows?: boolean;
|
|
69
|
+
/** Optional callback invoked after all flows complete to record goal usage. */
|
|
70
|
+
goalContinuationCallback?: (results: SingleResult[]) => Promise<void>;
|
|
71
|
+
/** Optional active goal context to inject into child flow prompts. */
|
|
72
|
+
goalContext?: GoalContext;
|
|
66
73
|
}
|
|
67
74
|
export interface ExecuteFlowParams {
|
|
68
75
|
type: string;
|
|
@@ -79,6 +86,7 @@ export interface ExecuteFlowResult {
|
|
|
79
86
|
}>;
|
|
80
87
|
details: FlowDetails;
|
|
81
88
|
isError?: boolean;
|
|
89
|
+
_toolCallId?: string;
|
|
82
90
|
}
|
|
83
91
|
/** Evict oldest entries from the cache when it exceeds the cap. */
|
|
84
92
|
export declare function evictCacheOverflow(cache: Map<string, unknown>): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"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"}
|