@prestyj/cli 5.28.1 → 5.29.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/assets/motion/bin/contact-sheet.mjs +9 -3
- package/assets/motion/bin/cues.mjs +337 -0
- package/assets/motion/bin/library.mjs +53 -10
- package/assets/motion/bin/motion-blur.mjs +943 -0
- package/assets/motion/bin/motion-check.mjs +354 -3
- package/assets/motion/bin/music-fit.mjs +436 -0
- package/assets/motion/bin/pdf-extract.mjs +22 -10
- package/assets/motion/bin/reference-study.mjs +346 -0
- package/assets/motion/bin/score-synth.mjs +1052 -93
- package/assets/motion/library/README.md +50 -14
- package/assets/motion/library/kit/moves.js +1981 -0
- package/assets/motion/library/library.json +232 -0
- package/assets/motion/library/pieces/camera-rig/meta.json +13 -0
- package/assets/motion/library/pieces/camera-rig/piece.html +153 -0
- package/assets/motion/library/pieces/camera-rig/preview.jpg +0 -0
- package/assets/motion/library/pieces/chain-knock/meta.json +13 -0
- package/assets/motion/library/pieces/chain-knock/piece.html +195 -0
- package/assets/motion/library/pieces/chain-knock/preview.jpg +0 -0
- package/assets/motion/library/pieces/gather-to-logo/meta.json +13 -0
- package/assets/motion/library/pieces/gather-to-logo/piece.html +159 -0
- package/assets/motion/library/pieces/gather-to-logo/preview.jpg +0 -0
- package/assets/motion/library/pieces/morph-carry/meta.json +13 -0
- package/assets/motion/library/pieces/morph-carry/piece.html +173 -0
- package/assets/motion/library/pieces/morph-carry/preview.jpg +0 -0
- package/assets/motion/library/pieces/one-shape-journey/meta.json +13 -0
- package/assets/motion/library/pieces/one-shape-journey/piece.html +195 -0
- package/assets/motion/library/pieces/one-shape-journey/preview.jpg +0 -0
- package/assets/motion/library/pieces/open-from-subject/meta.json +13 -0
- package/assets/motion/library/pieces/open-from-subject/piece.html +168 -0
- package/assets/motion/library/pieces/open-from-subject/preview.jpg +0 -0
- package/assets/motion/library/pieces/request-to-result/meta.json +13 -0
- package/assets/motion/library/pieces/request-to-result/piece.html +212 -0
- package/assets/motion/library/pieces/request-to-result/preview.jpg +0 -0
- package/assets/motion/library/pieces/scale-dive/meta.json +13 -0
- package/assets/motion/library/pieces/scale-dive/piece.html +321 -0
- package/assets/motion/library/pieces/scale-dive/preview.jpg +0 -0
- package/assets/motion/library/pieces/screen-replica-steps/meta.json +13 -0
- package/assets/motion/library/pieces/screen-replica-steps/piece.html +366 -0
- package/assets/motion/library/pieces/screen-replica-steps/preview.jpg +0 -0
- package/assets/motion/library/pieces/zoom-into-card/meta.json +13 -0
- package/assets/motion/library/pieces/zoom-into-card/piece.html +179 -0
- package/assets/motion/library/pieces/zoom-into-card/preview.jpg +0 -0
- package/assets/motion/library/sheets/diagram.jpg +0 -0
- package/assets/motion/library/sheets/frame.jpg +0 -0
- package/assets/motion/library/sheets/transition.jpg +0 -0
- package/assets/motion/library/sheets/ui.jpg +0 -0
- package/assets/motion/references/build-sheet.md +206 -0
- package/assets/motion/references/runtime/determinism-rules.md +1 -1
- package/assets/motion/references/runtime/gsap-easing-and-stagger.md +29 -29
- package/assets/motion/references/runtime/inputs-and-assets.md +7 -12
- package/assets/motion/references/runtime/lint-validate-inspect.md +3 -3
- package/assets/motion/references/runtime/minimal-composition.md +1 -1
- package/assets/motion/references/runtime/preview-render.md +3 -3
- package/assets/motion/skills/app-walkthrough/SKILL.md +66 -0
- package/assets/motion/skills/before-after/SKILL.md +53 -0
- package/assets/motion/skills/brand-kit/SKILL.md +3 -3
- package/assets/motion/skills/dev-tool-video/SKILL.md +57 -0
- package/assets/motion/skills/launch-video/SKILL.md +62 -0
- package/assets/motion/skills/match-reference/SKILL.md +58 -0
- package/assets/motion/skills/motion/SKILL.md +78 -85
- package/assets/motion/skills/source-ingest/SKILL.md +17 -6
- package/assets/motion/skills/website-video/SKILL.md +59 -0
- package/assets/skills/bulletproof/SKILL.md +36 -11
- package/assets/skills/bulletproof/references/agent-surface.md +19 -9
- package/assets/skills/bulletproof/references/audit-protocol.md +20 -5
- package/assets/skills/bulletproof/references/platform-playbooks.md +5 -4
- package/assets/skills/bulletproof/references/provenance.md +26 -1
- package/assets/skills/bulletproof/references/secure-defaults.md +6 -5
- package/assets/skills/bulletproof/references/supply-chain.md +21 -17
- package/assets/skills/bulletproof/references/threat-landscape.md +28 -26
- package/assets/skills/bulletproof/references/verification.md +2 -0
- package/assets/skills/clarify/SKILL.md +25 -16
- package/assets/skills/code-review/SKILL.md +71 -13
- package/assets/skills/code-review/references/agent-diffs.md +27 -0
- package/assets/skills/code-review/references/tests.md +19 -0
- package/assets/skills/compliance-guard/SKILL.md +20 -5
- package/assets/skills/compliance-guard/references/artifacts.md +1 -1
- package/assets/skills/compliance-guard/references/eu-uk.md +16 -16
- package/assets/skills/compliance-guard/references/lawsuit-vectors.md +5 -5
- package/assets/skills/compliance-guard/references/provenance.md +41 -2
- package/assets/skills/compliance-guard/references/sector-gates.md +3 -3
- package/assets/skills/compliance-guard/references/security-baseline.md +2 -2
- package/assets/skills/compliance-guard/references/trigger-map.md +5 -5
- package/assets/skills/compliance-guard/references/us.md +27 -21
- package/assets/skills/durable/SKILL.md +87 -79
- package/assets/skills/durable/references/agent-db-safety.md +69 -0
- package/assets/skills/durable/references/backups-and-runtime.md +19 -12
- package/assets/skills/durable/references/migrations-and-schema.md +13 -6
- package/assets/skills/evidence-led-ui/SKILL.md +69 -127
- package/assets/skills/evidence-led-ui/references/anti-defaults.md +107 -208
- package/assets/skills/evidence-led-ui/references/direction.md +124 -0
- package/assets/skills/evidence-led-ui/references/production-contract.md +8 -0
- package/assets/skills/evidence-led-ui/references/provenance.md +24 -1
- package/assets/skills/lean/SKILL.md +90 -71
- package/assets/skills/lean/references/memory-and-processes.md +3 -2
- package/assets/skills/lean/references/playbooks.md +37 -12
- package/assets/skills/refactoring/SKILL.md +24 -3
- package/assets/skills/refactoring/references/agent-pitfalls.md +4 -1
- package/assets/skills/refactoring/references/legacy.md +21 -0
- package/assets/skills/root-cause/SKILL.md +20 -10
- package/assets/skills/shared-language/SKILL.md +16 -14
- package/assets/skills/tdd/SKILL.md +27 -15
- package/dist/app-sidecar.js +203 -47
- package/dist/app-sidecar.js.map +1 -1
- package/dist/cli.js +17 -26
- package/dist/cli.js.map +1 -1
- package/dist/core/acceptance-checks.d.ts +48 -0
- package/dist/core/acceptance-checks.js +144 -0
- package/dist/core/acceptance-checks.js.map +1 -0
- package/dist/core/agent-session.d.ts +106 -72
- package/dist/core/agent-session.js +539 -399
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents.d.ts +6 -5
- package/dist/core/agents.js.map +1 -1
- package/dist/core/ask-user.d.ts +90 -8
- package/dist/core/ask-user.js +124 -13
- package/dist/core/ask-user.js.map +1 -1
- package/dist/core/bundled-agents.js +1 -3
- package/dist/core/bundled-agents.js.map +1 -1
- package/dist/core/cache-diagnostics.d.ts +68 -0
- package/dist/core/cache-diagnostics.js +196 -0
- package/dist/core/cache-diagnostics.js.map +1 -0
- package/dist/core/cache-expiry.d.ts +87 -0
- package/dist/core/cache-expiry.js +111 -0
- package/dist/core/cache-expiry.js.map +1 -0
- package/dist/core/compaction/compactor.js +78 -48
- package/dist/core/compaction/compactor.js.map +1 -1
- package/dist/core/compaction/plan-step-policy.d.ts +46 -0
- package/dist/core/compaction/plan-step-policy.js +57 -0
- package/dist/core/compaction/plan-step-policy.js.map +1 -0
- package/dist/core/destructive-git-guard.d.ts +90 -0
- package/dist/core/destructive-git-guard.js +871 -0
- package/dist/core/destructive-git-guard.js.map +1 -0
- package/dist/core/event-bus.d.ts +3 -0
- package/dist/core/event-bus.js +5 -0
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/injection-detect.d.ts +38 -0
- package/dist/core/injection-detect.js +232 -0
- package/dist/core/injection-detect.js.map +1 -0
- package/dist/core/keep-awake.d.ts +88 -0
- package/dist/core/keep-awake.js +251 -0
- package/dist/core/keep-awake.js.map +1 -0
- package/dist/core/mcp/client.d.ts +72 -0
- package/dist/core/mcp/client.js +264 -41
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/mcp/content.js +6 -2
- package/dist/core/mcp/content.js.map +1 -1
- package/dist/core/mcp/store.d.ts +6 -1
- package/dist/core/mcp/store.js +12 -1
- package/dist/core/mcp/store.js.map +1 -1
- package/dist/core/mcp/types.d.ts +18 -0
- package/dist/core/model-unavailable.d.ts +14 -0
- package/dist/core/model-unavailable.js +23 -0
- package/dist/core/model-unavailable.js.map +1 -0
- package/dist/core/node-debugger.d.ts +148 -0
- package/dist/core/node-debugger.js +642 -0
- package/dist/core/node-debugger.js.map +1 -0
- package/dist/core/package-threats.d.ts +18 -0
- package/dist/core/package-threats.js +168 -0
- package/dist/core/package-threats.js.map +1 -0
- package/dist/core/persistent-shell.d.ts +58 -6
- package/dist/core/persistent-shell.js +331 -49
- package/dist/core/persistent-shell.js.map +1 -1
- package/dist/core/process-manager.d.ts +14 -0
- package/dist/core/process-manager.js +61 -0
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/progress/git-xp.js +8 -14
- package/dist/core/progress/git-xp.js.map +1 -1
- package/dist/core/session-history.d.ts +12 -0
- package/dist/core/session-history.js +27 -0
- package/dist/core/session-history.js.map +1 -1
- package/dist/core/session-manager.d.ts +13 -1
- package/dist/core/session-manager.js +38 -18
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-summary-index.d.ts +37 -0
- package/dist/core/session-summary-index.js +172 -0
- package/dist/core/session-summary-index.js.map +1 -0
- package/dist/core/settings-manager.d.ts +2 -0
- package/dist/core/settings-manager.js +10 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/shell-threats-popular-packages.d.ts +11 -0
- package/dist/core/shell-threats-popular-packages.js +675 -0
- package/dist/core/shell-threats-popular-packages.js.map +1 -0
- package/dist/core/shell-threats.d.ts +8 -0
- package/dist/core/shell-threats.js +186 -0
- package/dist/core/shell-threats.js.map +1 -0
- package/dist/core/skills.js +3 -1
- package/dist/core/skills.js.map +1 -1
- package/dist/core/stream-rules.d.ts +30 -0
- package/dist/core/stream-rules.js +151 -0
- package/dist/core/stream-rules.js.map +1 -0
- package/dist/core/subagent-manager.d.ts +20 -5
- package/dist/core/subagent-manager.js +22 -8
- package/dist/core/subagent-manager.js.map +1 -1
- package/dist/core/subagent-receipt.d.ts +54 -0
- package/dist/core/subagent-receipt.js +276 -0
- package/dist/core/subagent-receipt.js.map +1 -0
- package/dist/core/subagent-turn-record.d.ts +2 -0
- package/dist/core/subagent-turn-record.js.map +1 -1
- package/dist/core/test-impact.d.ts +73 -0
- package/dist/core/test-impact.js +467 -0
- package/dist/core/test-impact.js.map +1 -0
- package/dist/core/thinking-level.d.ts +1 -1
- package/dist/core/thinking-level.js +1 -1
- package/dist/core/thinking-level.js.map +1 -1
- package/dist/core/verification-gate.d.ts +2 -0
- package/dist/core/verification-gate.js +4 -0
- package/dist/core/verification-gate.js.map +1 -1
- package/dist/core/verification-snapshot.js +3 -5
- package/dist/core/verification-snapshot.js.map +1 -1
- package/dist/core/workspace-guard.d.ts +18 -7
- package/dist/core/workspace-guard.js +227 -60
- package/dist/core/workspace-guard.js.map +1 -1
- package/dist/interactive.js +2 -1
- package/dist/interactive.js.map +1 -1
- package/dist/modes/subagent-worker-mode.js +34 -6
- package/dist/modes/subagent-worker-mode.js.map +1 -1
- package/dist/motion-agent/motion-agent.d.ts +6 -2
- package/dist/motion-agent/motion-agent.js +5 -7
- package/dist/motion-agent/motion-agent.js.map +1 -1
- package/dist/motion-agent/motion-prompt.d.ts +1 -1
- package/dist/motion-agent/motion-prompt.js +14 -19
- package/dist/motion-agent/motion-prompt.js.map +1 -1
- package/dist/motion-agent/motion-review.d.ts +10 -3
- package/dist/motion-agent/motion-review.js +15 -7
- package/dist/motion-agent/motion-review.js.map +1 -1
- package/dist/motion-agent/motion-studio-context.js +1 -1
- package/dist/motion-agent/motion-studio-context.js.map +1 -1
- package/dist/system-prompt.js +3 -1
- package/dist/system-prompt.js.map +1 -1
- package/dist/test-support/keep-alive.d.ts +14 -0
- package/dist/test-support/keep-alive.js +17 -0
- package/dist/test-support/keep-alive.js.map +1 -0
- package/dist/tools/ask-user.js +3 -3
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/bash-read-evidence.d.ts +10 -0
- package/dist/tools/bash-read-evidence.js +133 -0
- package/dist/tools/bash-read-evidence.js.map +1 -0
- package/dist/tools/bash.d.ts +10 -1
- package/dist/tools/bash.js +115 -7
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/debug.d.ts +54 -0
- package/dist/tools/debug.js +233 -0
- package/dist/tools/debug.js.map +1 -0
- package/dist/tools/edit.js +12 -4
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/goals.d.ts +1 -1
- package/dist/tools/index.d.ts +19 -2
- package/dist/tools/index.js +47 -7
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/prompt-hints.js +2 -0
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/read-tracker.d.ts +5 -0
- package/dist/tools/read-tracker.js +19 -9
- package/dist/tools/read-tracker.js.map +1 -1
- package/dist/tools/read.js +3 -2
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/skill.js +5 -0
- package/dist/tools/skill.js.map +1 -1
- package/dist/tools/subagent-control.js +44 -8
- package/dist/tools/subagent-control.js.map +1 -1
- package/dist/tools/subagent-shared.d.ts +29 -8
- package/dist/tools/subagent-shared.js +45 -14
- package/dist/tools/subagent-shared.js.map +1 -1
- package/dist/tools/subagent.d.ts +8 -2
- package/dist/tools/subagent.js +28 -10
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/task-output.js +3 -2
- package/dist/tools/task-output.js.map +1 -1
- package/dist/tools/task-send.d.ts +1 -1
- package/dist/tools/task-send.js +15 -1
- package/dist/tools/task-send.js.map +1 -1
- package/dist/tools/tool-tiers.d.ts +2 -2
- package/dist/tools/tool-tiers.js +3 -2
- package/dist/tools/tool-tiers.js.map +1 -1
- package/dist/tools/truncate.d.ts +21 -0
- package/dist/tools/truncate.js +187 -0
- package/dist/tools/truncate.js.map +1 -1
- package/dist/tools/ui-adopt.js +2 -0
- package/dist/tools/ui-adopt.js.map +1 -1
- package/dist/ui/App.d.ts +0 -4
- package/dist/ui/App.js +5 -28
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/components/ActivityIndicator.js +1 -0
- package/dist/ui/components/ActivityIndicator.js.map +1 -1
- package/dist/ui/hooks/useAgentLoop.d.ts +1 -8
- package/dist/ui/hooks/useAgentLoop.js +1 -119
- package/dist/ui/hooks/useAgentLoop.js.map +1 -1
- package/dist/ui/render.d.ts +0 -4
- package/dist/ui/render.js +0 -2
- package/dist/ui/render.js.map +1 -1
- package/dist/utils/git.d.ts +77 -0
- package/dist/utils/git.js +285 -21
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/github-ci.js +2 -1
- package/dist/utils/github-ci.js.map +1 -1
- package/dist/utils/github.js +11 -9
- package/dist/utils/github.js.map +1 -1
- package/dist/utils/image.d.ts +14 -0
- package/dist/utils/image.js +16 -0
- package/dist/utils/image.js.map +1 -1
- package/dist/utils/process.d.ts +20 -0
- package/dist/utils/process.js +98 -0
- package/dist/utils/process.js.map +1 -1
- package/package.json +5 -5
- package/assets/motion/references/motion-language.md +0 -128
- package/assets/motion/skills/video-qa/SKILL.md +0 -89
- package/dist/core/ideal-review-subagent.d.ts +0 -56
- package/dist/core/ideal-review-subagent.js +0 -112
- package/dist/core/ideal-review-subagent.js.map +0 -1
- package/dist/core/ideal-review.d.ts +0 -82
- package/dist/core/ideal-review.js +0 -242
- package/dist/core/ideal-review.js.map +0 -1
- package/dist/motion-agent/motion-check-tool.d.ts +0 -35
- package/dist/motion-agent/motion-check-tool.js +0 -514
- package/dist/motion-agent/motion-check-tool.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type AgentTool } from "@prestyj/agent";
|
|
2
|
-
import { type Message, type MessageProvenance, type Provider, type ThinkingLevel } from "@prestyj/ai";
|
|
2
|
+
import { type Message, type MessageProvenance, type Provider, type Usage, type ThinkingLevel } from "@prestyj/ai";
|
|
3
3
|
import { EventBus } from "./event-bus.js";
|
|
4
4
|
import { type CompletionReview } from "./completion-review.js";
|
|
5
5
|
import { SlashCommandRegistry } from "./slash-commands.js";
|
|
@@ -9,6 +9,7 @@ import type { BackgroundProcess } from "./process-manager.js";
|
|
|
9
9
|
import type { MCPElicitHandler } from "./mcp/index.js";
|
|
10
10
|
import { type ContextLimits } from "./context-limits.js";
|
|
11
11
|
import { type ImportForeignTranscriptResult } from "./foreign-session-import.js";
|
|
12
|
+
import { type CacheExpiryStatus } from "./cache-expiry.js";
|
|
12
13
|
import { type EnhanceResult } from "../utils/prompt-enhancer.js";
|
|
13
14
|
import { type VerificationEvidence } from "./verification-evidence.js";
|
|
14
15
|
/** A chat attachment (image / video / other file) prepared for the model. The
|
|
@@ -162,7 +163,7 @@ export interface AgentSessionOptions {
|
|
|
162
163
|
sessionRootDir?: string;
|
|
163
164
|
/** Register EZ Coder built-in/prompt/custom slash commands. Defaults to true. */
|
|
164
165
|
coderSlashCommands?: boolean;
|
|
165
|
-
/** Enable loop-break
|
|
166
|
+
/** Enable loop-break and re-grounding hooks. Defaults to true. */
|
|
166
167
|
selfCorrectionHooks?: boolean;
|
|
167
168
|
/** Override the semantic-loop judge LLM call (tests). Receives the finished
|
|
168
169
|
* prompt, returns the model's raw reply. Default: one-shot `stream()` call
|
|
@@ -229,6 +230,7 @@ export declare class AgentSession {
|
|
|
229
230
|
private autopilotMarkers;
|
|
230
231
|
private appMarkers;
|
|
231
232
|
private turnMetrics;
|
|
233
|
+
private readonly cacheDiagnostics;
|
|
232
234
|
/** Internal-only (EZ_INTERNAL): live per-session cost/reliability recorder.
|
|
233
235
|
* Absent entirely in public builds — see core/internal-diagnostics.ts. */
|
|
234
236
|
private diagnosticsRecorder?;
|
|
@@ -240,6 +242,7 @@ export declare class AgentSession {
|
|
|
240
242
|
/** Forgets every file read; called whenever the conversation is replaced or
|
|
241
243
|
* rewound, so the model must re-read a file before changing it. */
|
|
242
244
|
private clearReadTracker;
|
|
245
|
+
private recordBashReads;
|
|
243
246
|
private skills;
|
|
244
247
|
private cacheKeyLogged;
|
|
245
248
|
private hookStats;
|
|
@@ -252,20 +255,6 @@ export declare class AgentSession {
|
|
|
252
255
|
private hookFileEditCounts;
|
|
253
256
|
private hookToolCalls;
|
|
254
257
|
private backgroundVerification;
|
|
255
|
-
private idealReviewPhase;
|
|
256
|
-
/** Runtime-only suppression while Nolan owns verification in autopilot mode. */
|
|
257
|
-
private idealReviewSuppressed;
|
|
258
|
-
/** Mirror of the last `hook_armed` value broadcast this run, so the event
|
|
259
|
-
* fires only on a real edge. */
|
|
260
|
-
private idealReviewArmed;
|
|
261
|
-
/** Cached test-drift probe, keyed by the size of the edited-file set. Drift
|
|
262
|
-
* depends only on WHICH files were edited and that set only grows, so this
|
|
263
|
-
* keeps the arming check off the filesystem on most tool results — the probe
|
|
264
|
-
* is several sync existsSync calls per edited file. */
|
|
265
|
-
private idealDriftProbe;
|
|
266
|
-
private readonly reviewCoverage;
|
|
267
|
-
/** Coverage follow-ups spent this run, capped by MAX_REVIEW_COVERAGE_INJECTIONS. */
|
|
268
|
-
private reviewCoverageInjected;
|
|
269
258
|
/** 0 = none; 1 = first nudge sent; 2 = final stop-and-report injected. */
|
|
270
259
|
private loopBreakInjected;
|
|
271
260
|
private regroundingInjected;
|
|
@@ -275,8 +264,6 @@ export declare class AgentSession {
|
|
|
275
264
|
* injection at the next steering poll; judge failures fail open (no
|
|
276
265
|
* injection) and still consume budget + cooldown. */
|
|
277
266
|
private semanticLoop;
|
|
278
|
-
/** Independent Ideal reviewer spawned once per run (score-gated). */
|
|
279
|
-
private independentReviewStarted;
|
|
280
267
|
/**
|
|
281
268
|
* The environment as the cached system prompt currently describes it.
|
|
282
269
|
* Re-recorded on every prompt build, so a rebuild (e.g. `/add-dir`) needs no
|
|
@@ -287,11 +274,12 @@ export declare class AgentSession {
|
|
|
287
274
|
private runStartedAt;
|
|
288
275
|
/** Gate injections spent this run, capped by MAX_PROCESS_GATE_INJECTIONS. */
|
|
289
276
|
private processGateInjected;
|
|
290
|
-
/** Verification gate: code edited this run, nothing proved it since.
|
|
277
|
+
/** Verification gate: code edited this run, nothing proved it since. Always
|
|
278
|
+
* tracks evidence for run status; the `verificationGateEnabled` setting
|
|
279
|
+
* decides whether an unverified stop is also continued once. */
|
|
291
280
|
private readonly verificationGate;
|
|
292
|
-
/** Mirror of the last
|
|
293
|
-
|
|
294
|
-
private verificationArmed;
|
|
281
|
+
/** Mirror of the last `hook_armed` value, so the event fires only on an edge. */
|
|
282
|
+
private preFinalArmed;
|
|
295
283
|
private compactionOccurred;
|
|
296
284
|
/**
|
|
297
285
|
* Re-grounding carry-over for post-turn compaction. `resetHookState` clears
|
|
@@ -304,6 +292,12 @@ export declare class AgentSession {
|
|
|
304
292
|
private postTurnCompaction?;
|
|
305
293
|
private lastCompactionCompacted;
|
|
306
294
|
private compactionRetryAfter;
|
|
295
|
+
/**
|
|
296
|
+
* SoL-Pi plan-step compaction bookkeeping (see compaction/plan-step-policy.ts).
|
|
297
|
+
* Step progress comes from `[DONE:n]` markers in assistant text — the same
|
|
298
|
+
* contract the approved-plan UI tracks.
|
|
299
|
+
*/
|
|
300
|
+
private planStepState;
|
|
307
301
|
/** A restored oversized checkpoint must be canonicalized before its first prompt is persisted. */
|
|
308
302
|
private deferredCompactionPending;
|
|
309
303
|
/** Latest provider count, anchored to the assistant response it measured. */
|
|
@@ -311,8 +305,12 @@ export declare class AgentSession {
|
|
|
311
305
|
private originalRequest;
|
|
312
306
|
private userQueue;
|
|
313
307
|
private queueSeq;
|
|
308
|
+
/** Instant interrupt: the running loop's preempt listeners, fired on queueMessage. */
|
|
309
|
+
private steeringListeners;
|
|
314
310
|
private processManager?;
|
|
315
311
|
private lspManager?;
|
|
312
|
+
private testImpact?;
|
|
313
|
+
private debugManager?;
|
|
316
314
|
private subAgentManager?;
|
|
317
315
|
/**
|
|
318
316
|
* Out-of-band push notifications (finished children, background-process
|
|
@@ -460,6 +458,14 @@ export declare class AgentSession {
|
|
|
460
458
|
* registration on an existing catalog would leave those tools unreachable.
|
|
461
459
|
*/
|
|
462
460
|
private ensureToolSearchTool;
|
|
461
|
+
/**
|
|
462
|
+
* `wait_agent` is deferred, yet nearly every `spawn_agent` is followed by it,
|
|
463
|
+
* so the model spent a whole turn on `tool_search` just to load it (bench 41:
|
|
464
|
+
* ~6 s per fan-out). Promote it as soon as a spawn succeeds instead: the tool
|
|
465
|
+
* list grows exactly as it would after that `tool_search`, one turn earlier,
|
|
466
|
+
* and sessions that never spawn keep the smaller prefix.
|
|
467
|
+
*/
|
|
468
|
+
private promoteWaitAgentAfterSpawn;
|
|
463
469
|
/** Append tools, replacing any same-named entry (cached stub → live tool). */
|
|
464
470
|
private replaceOrPushTools;
|
|
465
471
|
/** Swap already-promoted cached stubs for their live equivalents, in place. */
|
|
@@ -518,10 +524,17 @@ export declare class AgentSession {
|
|
|
518
524
|
private resetHookState;
|
|
519
525
|
/**
|
|
520
526
|
* Fold one agent event into the hook stat accumulators. Pure bookkeeping —
|
|
521
|
-
* the same signals the TUI's useAgentLoop collects, so
|
|
522
|
-
*
|
|
527
|
+
* the same signals the TUI's useAgentLoop collects, so loop-break decisions
|
|
528
|
+
* match across the CLI and the app.
|
|
523
529
|
*/
|
|
524
530
|
private trackHookEvent;
|
|
531
|
+
/**
|
|
532
|
+
* Count full-file `cat` output from the step that just finished as reads, so
|
|
533
|
+
* an edit after `cat` does not cost a second read. Uses the step's results as
|
|
534
|
+
* stored in the transcript (after per-turn trimming): only bytes the model
|
|
535
|
+
* actually received count.
|
|
536
|
+
*/
|
|
537
|
+
private creditBashReads;
|
|
525
538
|
/**
|
|
526
539
|
* Append every message added since the last flush to the session file.
|
|
527
540
|
*
|
|
@@ -553,15 +566,6 @@ export declare class AgentSession {
|
|
|
553
566
|
* cheaper routing: judging a model's own failure patterns with a weaker
|
|
554
567
|
* model swaps false negatives for false positives. */
|
|
555
568
|
private callSemanticLoopJudge;
|
|
556
|
-
/** Independent fresh-context review of the finished work (Codex Guardian
|
|
557
|
-
* pattern). Spawns a READ-ONLY child on the ACTIVE model, waits bounded,
|
|
558
|
-
* and returns findings for the acting agent to address — or nothing when
|
|
559
|
-
* the review passes, is unavailable, or fails (in-thread review remains the
|
|
560
|
-
* fallback; the feature degrades, never blocks).
|
|
561
|
-
*
|
|
562
|
-
* Runs inside the pre-stop poll, so the candidate final answer is already
|
|
563
|
-
* held by arming and this wait cannot race a streamed answer. */
|
|
564
|
-
private runIndependentReview;
|
|
565
569
|
/**
|
|
566
570
|
* Turn-budget extension gate. The loop consults this instead of stopping
|
|
567
571
|
* mid-task when it exhausts `maxTurns`. Grant ONLY on evidence of progress —
|
|
@@ -569,45 +573,31 @@ export declare class AgentSession {
|
|
|
569
573
|
* with — so reuse the same stuck signals that drive the loop-breaker.
|
|
570
574
|
*/
|
|
571
575
|
private shouldExtendTurnBudget;
|
|
572
|
-
/**
|
|
573
|
-
*
|
|
574
|
-
*
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
*
|
|
578
|
-
*
|
|
579
|
-
*
|
|
580
|
-
*
|
|
581
|
-
|
|
582
|
-
* appear-then-vanish flash. Over-arming by one turn point costs only live
|
|
583
|
-
* token streaming on a final answer that then shows whole; under-arming costs
|
|
584
|
-
* the flash, so this errs toward arming.
|
|
585
|
-
*/
|
|
586
|
-
private wouldInjectIdealReview;
|
|
587
|
-
/** Would a stop right now inject the verification gate? Same conditions as
|
|
588
|
-
* the pre-stop branch below, so arming and injection cannot disagree. */
|
|
589
|
-
private wouldInjectVerification;
|
|
576
|
+
/** Is the pre-stop verification gate active for this session? Off by the
|
|
577
|
+
* `verificationGateEnabled` setting, by `selfCorrectionHooks: false`, and for
|
|
578
|
+
* allow-listed sessions that cannot run commands at all. */
|
|
579
|
+
private verificationGateActive;
|
|
580
|
+
/** Would a stop right now inject a pre-final follow-up? Queued LSP
|
|
581
|
+
* diagnostics (real errors injected below), a mode-owned completion review,
|
|
582
|
+
* or the verification gate can, so clients hold the candidate answer only
|
|
583
|
+
* then. Same conditions as the pre-stop branch, so arming and injection
|
|
584
|
+
* cannot disagree. */
|
|
585
|
+
private wouldInjectBeforeFinal;
|
|
590
586
|
/** Broadcast pre-final hook arming on change. Both edges matter: armed=false
|
|
591
|
-
* after the hook fires is what lets a client stream the
|
|
592
|
-
*
|
|
593
|
-
*
|
|
594
|
-
* Callable before `initialize()`: the sidecar sets Nolan's review suppression
|
|
595
|
-
* on a freshly constructed session, and every arming predicate below reads
|
|
596
|
-
* settings that `initialize()` has not loaded yet. Nothing can be armed
|
|
597
|
-
* before the session can run a turn, and the first `tool_result`/`turn_end`
|
|
598
|
-
* recomputes both edges — so skipping is the correct answer, not a patch. */
|
|
587
|
+
* after the hook fires is what lets a client stream the final answer live
|
|
588
|
+
* again. Callable before `initialize()`, when no manager exists yet. */
|
|
599
589
|
private refreshHookArming;
|
|
600
|
-
private refreshVerificationArmed;
|
|
601
|
-
private refreshIdealReviewArmed;
|
|
602
590
|
/**
|
|
603
|
-
* Pre-stop
|
|
604
|
-
*
|
|
591
|
+
* Pre-stop follow-ups: LSP errors, unread child agents and background
|
|
592
|
+
* processes, the verification gate (when `verificationGateEnabled`), and a
|
|
593
|
+
* mode-owned completion review.
|
|
605
594
|
*/
|
|
606
595
|
private getHookFollowUpMessages;
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
/** Auto-compact if needed, run agent loop with auth retry, and persist messages. */
|
|
596
|
+
/** Wraps the real run: cancels an in-flight cache prewarm and tracks run
|
|
597
|
+
* activity / last real request time for {@link prewarm}. */
|
|
610
598
|
private runLoop;
|
|
599
|
+
/** Auto-compact if needed, run agent loop with auth retry, and persist messages. */
|
|
600
|
+
private runLoopInner;
|
|
611
601
|
switchModel(provider: string, model: string): Promise<void>;
|
|
612
602
|
/**
|
|
613
603
|
* Record the switch as its own trailing message at the point it happened,
|
|
@@ -634,6 +624,20 @@ export declare class AgentSession {
|
|
|
634
624
|
* protect it.
|
|
635
625
|
*/
|
|
636
626
|
private settlePostTurnCompaction;
|
|
627
|
+
/**
|
|
628
|
+
* Advance plan-step bookkeeping over the messages added since the last
|
|
629
|
+
* observation and, when a plan step was newly completed (`[DONE:n]`), run
|
|
630
|
+
* the SoL-Pi cost rule. Called between model steps (in-flight) and once
|
|
631
|
+
* after the run; `scanIndex` and `doneSteps` make each message and each
|
|
632
|
+
* step count once across both paths. Returns undefined when no step
|
|
633
|
+
* completed since the last observation.
|
|
634
|
+
*/
|
|
635
|
+
private observePlanStepProgress;
|
|
636
|
+
/**
|
|
637
|
+
* Plan-step bookkeeping after ANY successful compaction (as in the bench:
|
|
638
|
+
* every compaction leaves a cache-write cost to be repaid by later savings).
|
|
639
|
+
*/
|
|
640
|
+
private recordPlanStepCompaction;
|
|
637
641
|
/**
|
|
638
642
|
* Post-turn compaction: once the final response has been delivered, compact
|
|
639
643
|
* in the background while the user reads the answer, instead of making the
|
|
@@ -642,7 +646,9 @@ export declare class AgentSession {
|
|
|
642
646
|
* Codex `model_post_turn_compact_threshold_percent` guards: skip when user
|
|
643
647
|
* input is already queued (it would race the next turn), when the run was
|
|
644
648
|
* aborted, or during the failure cooldown — and never let a compaction
|
|
645
|
-
* error surface in the completed turn.
|
|
649
|
+
* error surface in the completed turn. Besides the size trigger, a newly
|
|
650
|
+
* completed approved-plan step may compact when the cache-cost rule in
|
|
651
|
+
* compaction/plan-step-policy.ts says the shrink pays for itself.
|
|
646
652
|
*/
|
|
647
653
|
private maybeCompactPostTurn;
|
|
648
654
|
compact(existingCredentials?: {
|
|
@@ -688,13 +694,13 @@ export declare class AgentSession {
|
|
|
688
694
|
size: number;
|
|
689
695
|
costUsd?: number;
|
|
690
696
|
};
|
|
691
|
-
getPlanMode(): boolean;
|
|
692
697
|
/**
|
|
693
|
-
*
|
|
694
|
-
*
|
|
695
|
-
*
|
|
698
|
+
* Whether the provider's prompt cache has likely lapsed since the last
|
|
699
|
+
* successful request, and how many tokens the next message would re-read at
|
|
700
|
+
* full price. Null when the route has no known TTL or the chat is empty.
|
|
696
701
|
*/
|
|
697
|
-
|
|
702
|
+
getCacheExpiryStatus(now?: number): CacheExpiryStatus | null;
|
|
703
|
+
getPlanMode(): boolean;
|
|
698
704
|
/** Queue a user message (optionally with attachments) to be injected mid-run
|
|
699
705
|
* as steering. Returns the new queue length. No-op semantics are the caller's
|
|
700
706
|
* concern. */
|
|
@@ -726,6 +732,13 @@ export declare class AgentSession {
|
|
|
726
732
|
listBackgroundProcesses(): BackgroundProcess[];
|
|
727
733
|
/** Stop a background process by id. Returns a human-readable status string. */
|
|
728
734
|
killBackgroundProcess(id: string): Promise<string>;
|
|
735
|
+
/**
|
|
736
|
+
* Force-stop every background process tree, synchronously. Background
|
|
737
|
+
* commands run in their own process group, so the daemon's group kill on
|
|
738
|
+
* quit never reaches them: this is the only thing that does. Callers on a
|
|
739
|
+
* shutdown deadline run it before awaiting anything that can hang.
|
|
740
|
+
*/
|
|
741
|
+
stopBackgroundProcesses(): void;
|
|
729
742
|
/** Replace a host-owned system prompt in place without resetting conversation history. */
|
|
730
743
|
setCustomSystemPrompt(systemPrompt: string, promptCacheKeyPrefix?: string): void;
|
|
731
744
|
/**
|
|
@@ -794,6 +807,11 @@ export declare class AgentSession {
|
|
|
794
807
|
* the standard prompt therefore needs a rebuild. Custom and sub-agent
|
|
795
808
|
* prompts never render packs, so detection is skipped for them.
|
|
796
809
|
*/
|
|
810
|
+
/**
|
|
811
|
+
* Bring the system prompt to the exact state the next provider request will
|
|
812
|
+
* send. Shared by real runs and {@link prewarm} so both see one prefix.
|
|
813
|
+
*/
|
|
814
|
+
private prepareSystemPromptForRequest;
|
|
797
815
|
private refreshActiveLanguages;
|
|
798
816
|
/** Rebuild messages[0] from current plan-mode + approved-plan state. */
|
|
799
817
|
private rebuildSystemPromptInPlace;
|
|
@@ -929,6 +947,22 @@ export declare class AgentSession {
|
|
|
929
947
|
/** Replace the abort signal (e.g. after cancellation). */
|
|
930
948
|
setSignal(signal: AbortSignal): void;
|
|
931
949
|
private bindManagerCancellation;
|
|
950
|
+
private runLoopDepth;
|
|
951
|
+
private lastRealRequestAt;
|
|
952
|
+
private lastPrewarmAt;
|
|
953
|
+
private prewarmController;
|
|
954
|
+
/**
|
|
955
|
+
* Best-effort Anthropic prompt-cache prewarm before the user's next turn
|
|
956
|
+
* (desktop app calls this on the first keystroke after opening a chat or an
|
|
957
|
+
* idle pause). Sends the exact request prefix the next real turn will use —
|
|
958
|
+
* same system/tools/thinking/cache options — with `max_tokens: 1`, so the
|
|
959
|
+
* first real reply is a cache read instead of a cold write.
|
|
960
|
+
*/
|
|
961
|
+
prewarm(signal?: AbortSignal): Promise<{
|
|
962
|
+
ok: boolean;
|
|
963
|
+
reason: string;
|
|
964
|
+
usage?: Usage;
|
|
965
|
+
}>;
|
|
932
966
|
/** True when speedProfile is "optimized" (1-h cache TTL + pre-warm), or the
|
|
933
967
|
* session was constructed with `forceLongCacheRetention` (Nolan sessions). */
|
|
934
968
|
private isSpeedOptimized;
|