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
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
* execution. Parsed by processFlowJsonLine().
|
|
17
17
|
*/
|
|
18
18
|
import { stripReasoningFromAssistantMessage } from "./reasoning-strip.js";
|
|
19
|
-
import { stripSteeringHintFromContent, contentContainsSteeringHintTag, isJsonEqual, } from "
|
|
20
|
-
import { stripStrategicHintsFromContent } from "
|
|
19
|
+
import { stripSteeringHintFromContent, contentContainsSteeringHintTag, isJsonEqual, } from "../steering/sliding-prompt.js";
|
|
20
|
+
import { stripStrategicHintsFromContent } from "../steering/tool-utils.js";
|
|
21
|
+
import { logError } from "../config/log.js";
|
|
21
22
|
// ---------------------------------------------------------------------------
|
|
22
23
|
// Session snapshot serialization
|
|
23
24
|
// ---------------------------------------------------------------------------
|
|
@@ -163,7 +164,7 @@ function logCompress(toolName, before, after) {
|
|
|
163
164
|
if (!DEBUG_CONTEXT)
|
|
164
165
|
return;
|
|
165
166
|
const reduction = before > 0 ? ((1 - after / before) * 100).toFixed(0) : "0";
|
|
166
|
-
|
|
167
|
+
logError(`[context-compress] ${toolName}: ${before} → ${after} bytes (${reduction}% reduction)`);
|
|
167
168
|
}
|
|
168
169
|
const KNOWN_SECTION_HEADERS = [
|
|
169
170
|
/^--- (.+) \((\d+) lines\) ---$/,
|
|
@@ -434,7 +435,7 @@ export function compressToolResults(snapshot, cache) {
|
|
|
434
435
|
? (typeof rawContent === "string" ? rawContent.length : JSON.stringify(rawContent).length)
|
|
435
436
|
: 0;
|
|
436
437
|
const size = originalText.length || contentSize || line.length;
|
|
437
|
-
rendered = `[flow] prior result · ${size} chars (not cached
|
|
438
|
+
rendered = `[flow] prior result · ${size} chars — full context unavailable (result not cached at this depth)`;
|
|
438
439
|
}
|
|
439
440
|
else {
|
|
440
441
|
const renderResults = compressed.map(renderCompressedFlowResult);
|
|
@@ -618,12 +619,62 @@ export function stripBatchReadToolCalls(snapshot) {
|
|
|
618
619
|
}
|
|
619
620
|
return `${result.join("\n")}\n`;
|
|
620
621
|
}
|
|
622
|
+
// ---------------------------------------------------------------------------
|
|
623
|
+
// Reparent orphans
|
|
624
|
+
// ---------------------------------------------------------------------------
|
|
625
|
+
/**
|
|
626
|
+
* Fix parentId references that point to messages which no longer exist.
|
|
627
|
+
* Call this after any pass that drops messages.
|
|
628
|
+
*/
|
|
629
|
+
function reparentOrphans(snapshot) {
|
|
630
|
+
const lines = snapshot.trimEnd().split("\n");
|
|
631
|
+
const survivingIds = new Set();
|
|
632
|
+
for (const line of lines) {
|
|
633
|
+
try {
|
|
634
|
+
const entry = JSON.parse(line);
|
|
635
|
+
const id = entry?.message?.id ?? entry?.message?.messageId ?? entry?.id;
|
|
636
|
+
if (typeof id === "string" && id)
|
|
637
|
+
survivingIds.add(id);
|
|
638
|
+
const parentId = entry?.parentId ?? entry?.parentMessageId ?? entry?.message?.parentId ?? entry?.message?.parentMessageId;
|
|
639
|
+
if (typeof parentId === "string" && parentId && !(typeof id === "string" && id))
|
|
640
|
+
survivingIds.add(parentId);
|
|
641
|
+
}
|
|
642
|
+
catch { /* ignore */ }
|
|
643
|
+
}
|
|
644
|
+
for (let i = 0; i < lines.length; i++) {
|
|
645
|
+
try {
|
|
646
|
+
let entry = JSON.parse(lines[i]);
|
|
647
|
+
const entryParentId = entry.parentId ?? entry.parentMessageId;
|
|
648
|
+
const messageParentId = entry.message?.parentId ?? entry.message?.parentMessageId;
|
|
649
|
+
const parentId = entryParentId ?? messageParentId;
|
|
650
|
+
if (typeof parentId === "string" && parentId && !survivingIds.has(parentId)) {
|
|
651
|
+
let modified = false;
|
|
652
|
+
if (entry.parentId === parentId || entry.parentMessageId === parentId) {
|
|
653
|
+
const { parentId: _pid, parentMessageId: _pmid, ...restEntry } = entry;
|
|
654
|
+
entry = restEntry;
|
|
655
|
+
modified = true;
|
|
656
|
+
}
|
|
657
|
+
if (entry.message && (entry.message.parentId === parentId || entry.message.parentMessageId === parentId)) {
|
|
658
|
+
const { parentId: _pid, parentMessageId: _pmid, ...restMessage } = entry.message;
|
|
659
|
+
entry = { ...entry, message: restMessage };
|
|
660
|
+
modified = true;
|
|
661
|
+
}
|
|
662
|
+
if (modified) {
|
|
663
|
+
lines[i] = JSON.stringify(entry);
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
catch { /* ignore */ }
|
|
668
|
+
}
|
|
669
|
+
return `${lines.join("\n")}\n`;
|
|
670
|
+
}
|
|
621
671
|
export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
622
672
|
if (!snapshot)
|
|
623
|
-
return snapshot;
|
|
673
|
+
return { result: snapshot, passesApplied: [] };
|
|
624
674
|
const preBytes = snapshot.length;
|
|
625
675
|
const lines = snapshot.trimEnd().split("\n");
|
|
626
676
|
const sanitizedLines = [];
|
|
677
|
+
const subPasses = new Set();
|
|
627
678
|
for (let i = 0; i < lines.length; i++) {
|
|
628
679
|
const line = lines[i];
|
|
629
680
|
let entry;
|
|
@@ -647,18 +698,64 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
647
698
|
...(options.depth !== undefined ? { depth: options.depth } : {}),
|
|
648
699
|
};
|
|
649
700
|
changed = true;
|
|
701
|
+
subPasses.add("forkMetadataInjection");
|
|
650
702
|
}
|
|
651
703
|
// Replace the parent orchestrator system prompt with a brief note.
|
|
652
704
|
// Children receive their own directive in the <activation> block.
|
|
653
705
|
if (entry.systemPrompt && typeof entry.systemPrompt === "string") {
|
|
654
706
|
entry = { ...entry, systemPrompt: "[parent orchestrator system prompt stripped — child receives its own directive]" };
|
|
655
707
|
changed = true;
|
|
708
|
+
subPasses.add("stripSystemPrompt");
|
|
709
|
+
}
|
|
710
|
+
// Prevent child from inheriting parent's session identity.
|
|
711
|
+
// Rename id → parentId so lineage is preserved but the child
|
|
712
|
+
// generates its own session identifier.
|
|
713
|
+
if ('id' in entry) {
|
|
714
|
+
entry = { ...entry, parentId: entry.id };
|
|
715
|
+
delete entry.id;
|
|
716
|
+
changed = true;
|
|
717
|
+
subPasses.add('stripSessionId');
|
|
656
718
|
}
|
|
657
719
|
}
|
|
720
|
+
// Drop type: "system" entries — the parent orchestrator system prompt was already
|
|
721
|
+
// stripped from the header above. Standalone system events leak the full prompt.
|
|
722
|
+
// Children receive their own directive in the <activation> block.
|
|
723
|
+
if (entry?.type === "system") {
|
|
724
|
+
subPasses.add("dropSystemEvents");
|
|
725
|
+
continue;
|
|
726
|
+
}
|
|
727
|
+
// Drop custom_message entries — hidden orchestrator instructions (e.g.
|
|
728
|
+
// flow continuation hook messages with display:false) that children
|
|
729
|
+
// should never see.
|
|
730
|
+
if (entry?.type === "custom_message") {
|
|
731
|
+
subPasses.add("dropCustomMessages");
|
|
732
|
+
continue;
|
|
733
|
+
}
|
|
734
|
+
// Drop parent-specific configuration events; child receives its own
|
|
735
|
+
// model/tier via the <activation> block and CLI args.
|
|
736
|
+
if (entry?.type === "model_change" || entry?.type === "thinking_level_change") {
|
|
737
|
+
subPasses.add("dropConfigEvents");
|
|
738
|
+
continue;
|
|
739
|
+
}
|
|
740
|
+
// Defense-in-depth: drop entries with an explicit unknown type that do not
|
|
741
|
+
// belong in the fork snapshot protocol. Entries without a type field (e.g. bare
|
|
742
|
+
// session headers from getHeader) pass through unchanged.
|
|
743
|
+
if (entry?.type !== undefined &&
|
|
744
|
+
entry?.type !== "session" &&
|
|
745
|
+
entry?.type !== "message") {
|
|
746
|
+
subPasses.add("dropUnknownTypes");
|
|
747
|
+
continue;
|
|
748
|
+
}
|
|
749
|
+
// Drop malformed message entries that lack a message payload.
|
|
750
|
+
if (entry?.type === "message" && !entry.message) {
|
|
751
|
+
subPasses.add("dropMalformedMessages");
|
|
752
|
+
continue;
|
|
753
|
+
}
|
|
658
754
|
// Drop sliding system prompt messages entirely.
|
|
659
755
|
if (entry?.type === "message" &&
|
|
660
756
|
entry.message?.role === "system" &&
|
|
661
757
|
contentContainsSteeringHintTag(entry.message?.content)) {
|
|
758
|
+
subPasses.add("dropSlidingSystemPrompts");
|
|
662
759
|
continue;
|
|
663
760
|
}
|
|
664
761
|
if (entry?.type === "message" && entry.message) {
|
|
@@ -667,6 +764,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
667
764
|
if (message.role === "toolResult") {
|
|
668
765
|
message = { ...message, role: "tool" };
|
|
669
766
|
changed = true;
|
|
767
|
+
subPasses.add("normalizeToolResultRole");
|
|
670
768
|
}
|
|
671
769
|
// Strip reasoning/thinking from assistant messages.
|
|
672
770
|
// (Reasoning typically only appears in assistant messages, but we
|
|
@@ -676,7 +774,10 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
676
774
|
if (message.role === "assistant" || message.role === "system" || message.role === "tool") {
|
|
677
775
|
const stripped = stripReasoningFromAssistantMessage(message);
|
|
678
776
|
message = stripped.message;
|
|
679
|
-
|
|
777
|
+
if (stripped.changed) {
|
|
778
|
+
changed = true;
|
|
779
|
+
subPasses.add("stripReasoning");
|
|
780
|
+
}
|
|
680
781
|
}
|
|
681
782
|
// Strip inner `message.timestamp` — the outer event-level timestamp (ISO string)
|
|
682
783
|
// is sufficient for ordering. The inner epoch-ms timestamp is redundant.
|
|
@@ -684,6 +785,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
684
785
|
const { timestamp, ...restMessage } = message;
|
|
685
786
|
message = restMessage;
|
|
686
787
|
changed = true;
|
|
788
|
+
subPasses.add("stripTimestamps");
|
|
687
789
|
}
|
|
688
790
|
// Strip API metadata fields that children don't need (~5-7 KB per assistant message).
|
|
689
791
|
// IMPORTANT: keep `usage` (including `totalTokens`). The child `pi` process replays
|
|
@@ -707,6 +809,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
707
809
|
if (stripped) {
|
|
708
810
|
message = { ...rest, ...(cleanedUsage !== undefined ? { usage: cleanedUsage } : {}) };
|
|
709
811
|
changed = true;
|
|
812
|
+
subPasses.add("stripApiMetadata");
|
|
710
813
|
}
|
|
711
814
|
}
|
|
712
815
|
// Strip `details` from tool/toolResult messages — carries FlowDetails UI metadata
|
|
@@ -716,6 +819,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
716
819
|
const { details, ...restMessage } = message;
|
|
717
820
|
message = restMessage;
|
|
718
821
|
changed = true;
|
|
822
|
+
subPasses.add("stripDetails");
|
|
719
823
|
}
|
|
720
824
|
}
|
|
721
825
|
if ("content" in message) {
|
|
@@ -725,6 +829,7 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
725
829
|
if (!isJsonEqual(afterSliding, modifiedContent)) {
|
|
726
830
|
modifiedContent = afterSliding;
|
|
727
831
|
changed = true;
|
|
832
|
+
subPasses.add("stripSteeringHints");
|
|
728
833
|
}
|
|
729
834
|
// Strip strategic hints from tool results
|
|
730
835
|
if (message.role === "tool" || message.role === "toolResult") {
|
|
@@ -732,6 +837,47 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
732
837
|
if (!isJsonEqual(afterHints, modifiedContent)) {
|
|
733
838
|
modifiedContent = afterHints;
|
|
734
839
|
changed = true;
|
|
840
|
+
subPasses.add("stripStrategicHints");
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
// Compress parent activation prompts in nested snapshot JSONL
|
|
844
|
+
// (detect user messages containing <context-seal> at depth >= 2).
|
|
845
|
+
if (message.role === "user" && options?.depth !== undefined && options.depth >= 2) {
|
|
846
|
+
let hasParentActivation = false;
|
|
847
|
+
let previewText = "";
|
|
848
|
+
const parentActivationRegex = /<context-seal>[\s\S]*?<\/context-seal>/;
|
|
849
|
+
let fullText = "";
|
|
850
|
+
if (typeof modifiedContent === "string") {
|
|
851
|
+
fullText = modifiedContent;
|
|
852
|
+
}
|
|
853
|
+
else if (Array.isArray(modifiedContent)) {
|
|
854
|
+
fullText = modifiedContent
|
|
855
|
+
.filter((p) => p.type === "text" && typeof p.text === "string")
|
|
856
|
+
.map((p) => p.text)
|
|
857
|
+
.join("");
|
|
858
|
+
}
|
|
859
|
+
if (parentActivationRegex.test(fullText)) {
|
|
860
|
+
hasParentActivation = true;
|
|
861
|
+
// Extract mission content for preview; fall back to content after </context-seal>
|
|
862
|
+
const missionMatch = fullText.match(/<mission>([\s\S]*?)<\/mission>/);
|
|
863
|
+
if (missionMatch) {
|
|
864
|
+
previewText = missionMatch[1].trim().replace(/\s+/g, " ").slice(0, 200).trim();
|
|
865
|
+
}
|
|
866
|
+
else {
|
|
867
|
+
const afterSeal = fullText.split(/<\/context-seal>/).pop() ?? fullText;
|
|
868
|
+
previewText = afterSeal.trim().slice(0, 200).trim();
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
if (hasParentActivation) {
|
|
872
|
+
const compact = `[Parent flow activation stripped] Mission preview: ${previewText}`;
|
|
873
|
+
if (typeof modifiedContent === "string") {
|
|
874
|
+
modifiedContent = compact;
|
|
875
|
+
}
|
|
876
|
+
else {
|
|
877
|
+
modifiedContent = [{ type: "text", text: compact }];
|
|
878
|
+
}
|
|
879
|
+
changed = true;
|
|
880
|
+
subPasses.add("compressParentActivation");
|
|
735
881
|
}
|
|
736
882
|
}
|
|
737
883
|
if (changed) {
|
|
@@ -745,44 +891,28 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
745
891
|
const outLine = changed ? JSON.stringify(entry) : line;
|
|
746
892
|
sanitizedLines.push(outLine);
|
|
747
893
|
}
|
|
748
|
-
|
|
749
|
-
// Build a set of surviving message IDs, then fix any parentId that points
|
|
750
|
-
// to a removed message.
|
|
751
|
-
const survivingIds = new Set();
|
|
752
|
-
for (const line of sanitizedLines) {
|
|
753
|
-
try {
|
|
754
|
-
const entry = JSON.parse(line);
|
|
755
|
-
const id = entry?.message?.id ?? entry?.message?.messageId ?? entry?.id;
|
|
756
|
-
if (typeof id === "string" && id)
|
|
757
|
-
survivingIds.add(id);
|
|
758
|
-
}
|
|
759
|
-
catch { /* ignore */ }
|
|
760
|
-
}
|
|
761
|
-
for (let i = 0; i < sanitizedLines.length; i++) {
|
|
762
|
-
try {
|
|
763
|
-
const entry = JSON.parse(sanitizedLines[i]);
|
|
764
|
-
if (!entry?.message)
|
|
765
|
-
continue;
|
|
766
|
-
const parentId = entry.message.parentId ?? entry.message.parentMessageId;
|
|
767
|
-
if (typeof parentId === "string" && parentId && !survivingIds.has(parentId)) {
|
|
768
|
-
const { parentId: _pid, parentMessageId: _pmid, ...restMessage } = entry.message;
|
|
769
|
-
entry.message = restMessage;
|
|
770
|
-
sanitizedLines[i] = JSON.stringify(entry);
|
|
771
|
-
}
|
|
772
|
-
}
|
|
773
|
-
catch { /* ignore */ }
|
|
774
|
-
}
|
|
894
|
+
const passesApplied = [];
|
|
775
895
|
let sanitized = `${sanitizedLines.join("\n")}\n`;
|
|
896
|
+
passesApplied.push(...subPasses);
|
|
897
|
+
// Reparent orphaned parentIds after steering-hint messages were dropped.
|
|
898
|
+
sanitized = reparentOrphans(sanitized);
|
|
899
|
+
passesApplied.push("reparentOrphans");
|
|
776
900
|
// Strip batch_read tool calls from assistant messages.
|
|
777
901
|
// Children don't have batch_read in their active tools.
|
|
778
902
|
sanitized = stripBatchReadToolCalls(sanitized);
|
|
903
|
+
passesApplied.push("stripBatchRead");
|
|
779
904
|
// Compress tool results (flow, batch, web, ask_user).
|
|
780
905
|
sanitized = compressToolResults(sanitized, cache);
|
|
906
|
+
passesApplied.push("compressToolResults");
|
|
907
|
+
// Reparent again after stripBatchRead and compressToolResults may have
|
|
908
|
+
// dropped additional messages, leaving new orphaned parentIds.
|
|
909
|
+
sanitized = reparentOrphans(sanitized);
|
|
910
|
+
passesApplied.push("reparentOrphans");
|
|
781
911
|
// Telemetry: measure total delta across sanitization, stripping, and compression.
|
|
782
912
|
const postBytes = sanitized.length;
|
|
783
913
|
const reduction = preBytes > 0 ? ((1 - postBytes / preBytes) * 100).toFixed(0) : "0";
|
|
784
914
|
if (DEBUG_CONTEXT) {
|
|
785
|
-
|
|
915
|
+
logError(`[context-snapshot] pre: ${preBytes} → post: ${postBytes} bytes (${reduction}% reduction)`);
|
|
786
916
|
}
|
|
787
917
|
// Always emit compression-stats as a trailing metadata entry so the dump contains
|
|
788
918
|
// observability data regardless of DEBUG_CONTEXT setting.
|
|
@@ -791,7 +921,8 @@ export function sanitizeForkSnapshot(snapshot, cache = new Map(), options) {
|
|
|
791
921
|
preBytes,
|
|
792
922
|
postBytes,
|
|
793
923
|
reductionPercent: Number(reduction),
|
|
924
|
+
passesApplied,
|
|
794
925
|
}) + "\n";
|
|
795
|
-
return sanitized;
|
|
926
|
+
return { result: sanitized, passesApplied };
|
|
796
927
|
}
|
|
797
928
|
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/snapshot/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* and validates it against the FlowStructuredOutput schema.
|
|
6
6
|
*/
|
|
7
7
|
import type { Message } from "@mariozechner/pi-ai";
|
|
8
|
-
import type { CommandEntry, FlowStructuredOutput } from "
|
|
8
|
+
import type { CommandEntry, FlowStructuredOutput } from "../types/output.js";
|
|
9
9
|
/**
|
|
10
10
|
* Extract a structured JSON output block from the end of an assistant's text.
|
|
11
11
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../../src/snapshot/structured-output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAU,YAAY,EAAa,oBAAoB,EAAe,MAAM,oBAAoB,CAAC;AAwD7G;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAoCtF;AAyCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAuH/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-output.js","sourceRoot":"","sources":["../../src/snapshot/structured-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Extracted from index.ts for single-responsibility and testability.
|
|
5
5
|
*/
|
|
6
|
-
import type { FlowConfig } from "
|
|
7
|
-
import type { FlowDepthConfig } from "
|
|
6
|
+
import type { FlowConfig } from "../core/agents.js";
|
|
7
|
+
import type { FlowDepthConfig } from "../core/depth.js";
|
|
8
8
|
export interface BeforeAgentStartEvent {
|
|
9
9
|
prompt: string;
|
|
10
10
|
systemPrompt: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-prompt.d.ts","sourceRoot":"","sources":["../../src/steering/flow-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMxD,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACrB;AAMD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAI9D;AAMD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,OAAO,EACpB,eAAe,EAAE,UAAU,EAAE,EAC7B,WAAW,EAAE,eAAe,GAC1B,MAAM,GAAG,SAAS,CAyFpB"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Extracted from index.ts for single-responsibility and testability.
|
|
5
5
|
*/
|
|
6
|
-
import { looksLikeUrlPrompt, looksLikeWebSearchPrompt, } from "
|
|
6
|
+
import { looksLikeUrlPrompt, looksLikeWebSearchPrompt, } from "../tools/web-tool.js";
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
8
8
|
// Active tools helper
|
|
9
9
|
// ---------------------------------------------------------------------------
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-prompt.js","sourceRoot":"","sources":["../../src/steering/flow-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACN,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,sBAAsB,CAAC;AAY9B,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,UAAU,kBAAkB,CAAC,QAAiB;IACnD,OAAO,QAAQ;QACd,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;QAC3C,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC1E,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CAC1C,KAA4B,EAC5B,YAAqB,EACrB,WAAoB,EACpB,eAA6B,EAC7B,WAA4B;IAE5B,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;IAEjF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAExD,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC;QACZ,eAAe,CAAC,IAAI,CACnB,+GAA+G,CAC/G,CAAC;IACH,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACpB,eAAe,CAAC,IAAI,CACnB,yHAAyH,CACzH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACtC,IAAI,CAAC,YAAY,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,YAAY;YACX,0BAA0B;gBAC1B,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,sEAAsE;IACtE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CACN,YAAY;YACZ,iBAAiB,QAAQ,MAAM;YAC/B,iBAAiB,YAAY,IAAI,QAAQ,cAAc,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAC/K,CAAC;IACH,CAAC;IAED,OAAO,CACN,YAAY;QACZ;;;;EAIA,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;WA0BC,YAAY,IAAI,QAAQ,cAAc,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;;;;;;;;;CAStK,CACC,CAAC;AACH,CAAC"}
|
|
@@ -7,12 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const STEERING_HINT_OPEN_TAG: string;
|
|
9
9
|
export declare const STEERING_HINT_CLOSE_TAG: string;
|
|
10
|
-
/** Query whether spec-driven planning mode is active. */
|
|
11
|
-
export declare function isSpecModeActive(): boolean;
|
|
12
|
-
/** Set spec-driven planning mode on/off. */
|
|
13
|
-
export declare function setSpecModeActive(active: boolean): void;
|
|
14
10
|
export declare const STEERING_HINT: string;
|
|
15
|
-
export declare const IMPLEMENT_PROMPT: string;
|
|
16
11
|
/** Input-message content types (string or multipart text-part array). */
|
|
17
12
|
type MessageContent = string | Array<{
|
|
18
13
|
type: string;
|
|
@@ -39,7 +34,13 @@ export declare function stripSteeringHintsFromMessages(messages: any[]): {
|
|
|
39
34
|
messages: any[];
|
|
40
35
|
changed: boolean;
|
|
41
36
|
};
|
|
42
|
-
|
|
43
|
-
|
|
37
|
+
export declare function configureSteering(config: {
|
|
38
|
+
enabled: boolean;
|
|
39
|
+
customPrompt?: string;
|
|
40
|
+
}): void;
|
|
41
|
+
/** Build a system message containing the steering hint.
|
|
42
|
+
* Returns null when steering is disabled so the caller can skip injection.
|
|
43
|
+
*/
|
|
44
|
+
export declare function makeSteeringHintMessage(referenceMessage?: any): any | null;
|
|
44
45
|
export {};
|
|
45
46
|
//# sourceMappingURL=sliding-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sliding-prompt.d.ts","sourceRoot":"","sources":["../../src/steering/sliding-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,eAAO,MAAM,sBAAsB,QAAuD,CAAC;AAC3F,eAAO,MAAM,uBAAuB,QAAwD,CAAC;AAE7F,eAAO,MAAM,aAAa,QASG,CAAC;AAgB9B,yEAAyE;AACzE,KAAK,cAAc,GAAG,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAkBtE,sDAAsD;AACtD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,yEAAyE;AACzE,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GACjD,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAU5C;AAED,wFAAwF;AACxF,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAW/E;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAc3D;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAoBrG;AAQD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAE3F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAU1E"}
|
|
@@ -12,74 +12,12 @@ import { randomUUID } from "node:crypto";
|
|
|
12
12
|
const STEERING_HINT_UUID = randomUUID();
|
|
13
13
|
export const STEERING_HINT_OPEN_TAG = `<pi-flow-steering-hint id="${STEERING_HINT_UUID}">`;
|
|
14
14
|
export const STEERING_HINT_CLOSE_TAG = `</pi-flow-steering-hint id="${STEERING_HINT_UUID}">`;
|
|
15
|
-
// ---------------------------------------------------------------------------
|
|
16
|
-
// Mode state — toggled by /spec command
|
|
17
|
-
// ---------------------------------------------------------------------------
|
|
18
|
-
let _specModeActive = true;
|
|
19
|
-
/** Query whether spec-driven planning mode is active. */
|
|
20
|
-
export function isSpecModeActive() {
|
|
21
|
-
return _specModeActive;
|
|
22
|
-
}
|
|
23
|
-
/** Set spec-driven planning mode on/off. */
|
|
24
|
-
export function setSpecModeActive(active) {
|
|
25
|
-
_specModeActive = active;
|
|
26
|
-
}
|
|
27
15
|
export const STEERING_HINT = `${STEERING_HINT_OPEN_TAG}\n` +
|
|
28
|
-
`You are in spec-driven planning mode.\n\n` +
|
|
29
|
-
`Your goal: Investigate the codebase, discuss with the user, and guide them to type /spec when ready to proceed to implementation.\n\n` +
|
|
30
|
-
`IMPORTANT: You are the orchestrator. You have batch_read, flow, web, and ask_user.\n` +
|
|
31
|
-
`You do NOT have bash or write. Delegate bash/write operations to flows.\n\n` +
|
|
32
|
-
`## Phase 1: Investigate\n\n` +
|
|
33
|
-
`### Direct (batch_read):\n` +
|
|
34
|
-
`- Read package.json, tsconfig, existing source files\n` +
|
|
35
|
-
`- Read test files, config files, documentation\n` +
|
|
36
|
-
`- Identify patterns, conventions, architecture\n\n` +
|
|
37
|
-
`### Delegated (flow [scout]):\n` +
|
|
38
|
-
`- flow [scout] intent: "Check git status, current branch, recent commits, test setup, CI config. Report findings."\n\n` +
|
|
39
|
-
`### Build a mental map:\n` +
|
|
40
|
-
`- Tech stack, patterns, test coverage, constraints\n` +
|
|
41
|
-
`- What exists vs what needs to be built\n\n` +
|
|
42
|
-
`## Phase 2: Discuss (2-3 questions via ask_user)\n\n` +
|
|
43
|
-
`Ask 2-3 targeted questions grounded in Phase 1 findings.\n\n` +
|
|
44
|
-
`### Question styles (use ALL three):\n` +
|
|
45
|
-
`1. **Challenge assumptions** — "You asked for X, but codebase has Y. Extend Y or build X?"\n` +
|
|
46
|
-
`2. **Present trade-offs** — "Approach A [fast] vs B [extensible]. Which fits?"\n` +
|
|
47
|
-
`3. **Gap-filling** — "Do you need offline support? Expected scale?"\n\n` +
|
|
48
|
-
`### Rules:\n` +
|
|
49
|
-
`- NEVER ask what you can discover with tools\n` +
|
|
50
|
-
`- Mark recommended option with [preferred], place it first\n` +
|
|
51
|
-
`- 2-4 options per question with clear trade-off descriptions\n` +
|
|
52
|
-
`- Questions must be codebase-specific, not generic\n` +
|
|
53
|
-
`## Phase 3: Recommend Exit\n\n` +
|
|
54
|
-
`Tell the user:\n` +
|
|
55
|
-
`"When you're ready to implement, type /spec to exit planning mode. A plan will be synthesized from our discussion and placed in the editor for review."\n\n` +
|
|
56
|
-
`### Keep the summary concise:\n` +
|
|
57
|
-
`- Investigation Findings (current state + evidence)\n` +
|
|
58
|
-
`- User Alignment (Q&A record with impact)\n` +
|
|
59
|
-
`- Technical Context (stack, deps, testing)\n` +
|
|
60
|
-
`- Design Decisions (decision/choice/rationale table)\n` +
|
|
61
|
-
`- Implementation Plan (phased)\n` +
|
|
62
|
-
`- Risks & Mitigations\n` +
|
|
63
|
-
`- Assumptions\n\n` +
|
|
64
|
-
`## Phase 4: Hand-off\n\n` +
|
|
65
|
-
`After the user types /spec, the system synthesizes a plan and switches to implement mode. Do not initiate builds yourself.\n\n` +
|
|
66
|
-
`## Anti-patterns:\n` +
|
|
67
|
-
`- ❌ Asking without investigating first\n` +
|
|
68
|
-
`- ❌ Skipping investigation\n` +
|
|
69
|
-
`- ❌ Asking about discoverable facts\n` +
|
|
70
|
-
`- ❌ Not marking [preferred]\n` +
|
|
71
|
-
`- ❌ Writing spec without Q&A record\n` +
|
|
72
|
-
`- ❌ Using bash/write directly (delegate to flows)\n` +
|
|
73
|
-
`- ❌ Using the build flow (use scout, ideas, or craft for investigation and planning)\n` +
|
|
74
|
-
`- ❌ Recommending to build or implement right away instead of guiding the user to type /spec\n` +
|
|
75
|
-
`${STEERING_HINT_CLOSE_TAG}`;
|
|
76
|
-
export const IMPLEMENT_PROMPT = `${STEERING_HINT_OPEN_TAG}\n` +
|
|
77
16
|
`You are the orchestrator. You have batch_read, flow, web, and ask_user.\n` +
|
|
78
17
|
`You do NOT have bash or write. Delegate all implementation to flows.\n\n` +
|
|
79
18
|
`- Context: Answer directly if possible; otherwise, investigate first, then delegate.\n` +
|
|
80
19
|
`- Acts: [Route all git, bash, CLI, or terminal tasks to \`build\` flow, For major conflicts or misaligned goals use ask_user, For lengthy plans with many steps use ask_user to confirm main points before proceeding]\n` +
|
|
81
20
|
`- Mindset: Gather context before acting. Investigate, discuss, plan — then delegate.\n` +
|
|
82
|
-
`- Spec: If a spec exists in \`.specs/\`, read it first and use it to guide implementation.\n` +
|
|
83
21
|
`- Anti-patterns: [Never implement directly, Never ask what you can discover with tools, Never skip investigation]\n` +
|
|
84
22
|
`Note: Context is inherited automatically for child flow; write intents focusing only on new work.\n` +
|
|
85
23
|
`${STEERING_HINT_CLOSE_TAG}`;
|
|
@@ -175,11 +113,24 @@ export function stripSteeringHintsFromMessages(messages) {
|
|
|
175
113
|
});
|
|
176
114
|
return { messages: result, changed };
|
|
177
115
|
}
|
|
178
|
-
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
// Configurable steering
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
let steeringConfig = { enabled: true, customPrompt: undefined };
|
|
120
|
+
export function configureSteering(config) {
|
|
121
|
+
steeringConfig = { enabled: config.enabled, customPrompt: config.customPrompt };
|
|
122
|
+
}
|
|
123
|
+
/** Build a system message containing the steering hint.
|
|
124
|
+
* Returns null when steering is disabled so the caller can skip injection.
|
|
125
|
+
*/
|
|
179
126
|
export function makeSteeringHintMessage(referenceMessage) {
|
|
127
|
+
if (!steeringConfig.enabled) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
const body = steeringConfig.customPrompt ?? STEERING_HINT;
|
|
180
131
|
return {
|
|
181
132
|
role: "system",
|
|
182
|
-
content:
|
|
133
|
+
content: body,
|
|
183
134
|
timestamp: referenceMessage?.timestamp,
|
|
184
135
|
};
|
|
185
136
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sliding-prompt.js","sourceRoot":"","sources":["../../src/steering/sliding-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-utils.d.ts","sourceRoot":"","sources":["../../src/steering/tool-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOtE;AAID,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE7D;AAgBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAUjD;AAWD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAMzD"}
|