@prestyj/cli 5.16.2 → 5.19.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 +2 -1
- package/assets/skills/refactoring/SKILL.md +64 -0
- package/assets/skills/refactoring/references/agent-pitfalls.md +43 -0
- package/assets/skills/refactoring/references/legacy.md +49 -0
- package/assets/skills/refactoring/references/smells.md +71 -0
- package/dist/app-sidecar-sessions.d.ts +0 -1
- package/dist/app-sidecar.d.ts +0 -1
- package/dist/app-sidecar.js +40 -9
- package/dist/app-sidecar.js.map +1 -1
- package/dist/chat-agents/general.d.ts +0 -1
- package/dist/chat-agents/index.d.ts +0 -1
- package/dist/chat-agents/jiwa.d.ts +0 -1
- package/dist/chat-agents/memory.d.ts +0 -1
- package/dist/chat-agents/research.d.ts +0 -1
- package/dist/chat-agents/shared.d.ts +0 -1
- package/dist/chat-agents/therapist.d.ts +0 -1
- package/dist/chat-agents/types.d.ts +0 -1
- package/dist/cli/auth.d.ts +0 -1
- package/dist/cli/command-routing.d.ts +0 -1
- package/dist/cli/mcp.d.ts +0 -1
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/pixel.d.ts +0 -1
- package/dist/cli/shared.d.ts +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/config.d.ts +0 -1
- package/dist/core/agent-notifications.d.ts +0 -1
- package/dist/core/agent-session.d.ts +45 -2
- package/dist/core/agent-session.js +521 -41
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents.d.ts +0 -1
- package/dist/core/api-benchmark.d.ts +0 -1
- package/dist/core/ask-user.d.ts +0 -1
- package/dist/core/auth/index.d.ts +0 -1
- package/dist/core/auth-providers.d.ts +0 -1
- package/dist/core/auth-storage.d.ts +0 -1
- package/dist/core/auto-update.d.ts +0 -1
- package/dist/core/autopilot-cycle.d.ts +7 -4
- package/dist/core/autopilot-cycle.js +43 -6
- package/dist/core/autopilot-cycle.js.map +1 -1
- package/dist/core/autopilot-gate.d.ts +0 -1
- package/dist/core/autopilot-gate.js.map +1 -1
- package/dist/core/autopilot-verdict.d.ts +2 -1
- package/dist/core/autopilot-verdict.js +25 -0
- package/dist/core/autopilot-verdict.js.map +1 -1
- package/dist/core/bash-spawn-benchmark.d.ts +0 -1
- package/dist/core/bundled-agents.d.ts +0 -1
- package/dist/core/cache-warm-benchmark.d.ts +0 -1
- package/dist/core/checkpoint-store.d.ts +0 -1
- package/dist/core/claude-code-version.d.ts +0 -1
- package/dist/core/code-retrieval-chunkers.d.ts +0 -1
- package/dist/core/code-retrieval.d.ts +0 -1
- package/dist/core/compaction/active-context.d.ts +0 -1
- package/dist/core/compaction/compactor.d.ts +34 -1
- package/dist/core/compaction/compactor.js +161 -2
- package/dist/core/compaction/compactor.js.map +1 -1
- package/dist/core/compaction/policy.d.ts +0 -1
- package/dist/core/compaction/query-aware-selector.d.ts +0 -1
- package/dist/core/compaction/token-estimator.d.ts +0 -1
- package/dist/core/compaction/tool-result-pruner.d.ts +0 -1
- package/dist/core/context-limits.d.ts +0 -1
- package/dist/core/custom-commands.d.ts +0 -1
- package/dist/core/encode-cwd.d.ts +0 -1
- package/dist/core/env-delta.d.ts +0 -1
- package/dist/core/event-bus.d.ts +5 -1
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +0 -1
- package/dist/core/extensions/plugin-bundles.d.ts +0 -1
- package/dist/core/extensions/types.d.ts +0 -1
- package/dist/core/fast-apply-benchmark.d.ts +0 -1
- package/dist/core/file-lock.d.ts +0 -1
- package/dist/core/foreign-session-import.d.ts +0 -1
- package/dist/core/foreign-transcript-blocks.d.ts +0 -1
- package/dist/core/goal-controller.d.ts +0 -1
- package/dist/core/goal-prerequisites.d.ts +0 -1
- package/dist/core/goal-store.d.ts +0 -1
- package/dist/core/goal-store.js.map +1 -1
- package/dist/core/goal-verifier.d.ts +0 -1
- package/dist/core/goal-verifier.js.map +1 -1
- package/dist/core/goal-worker.d.ts +0 -1
- package/dist/core/goal-worker.js.map +1 -1
- package/dist/core/hashline-edit-benchmark.d.ts +0 -1
- package/dist/core/hashline.d.ts +0 -1
- package/dist/core/ideal-review-subagent.d.ts +42 -0
- package/dist/core/ideal-review-subagent.js +95 -0
- package/dist/core/ideal-review-subagent.js.map +1 -0
- package/dist/core/ideal-review.d.ts +0 -1
- package/dist/core/ideal-review.js +18 -5
- package/dist/core/ideal-review.js.map +1 -1
- package/dist/core/index.d.ts +0 -1
- package/dist/core/internal-diagnostics.d.ts +142 -0
- package/dist/core/internal-diagnostics.js +450 -0
- package/dist/core/internal-diagnostics.js.map +1 -0
- package/dist/core/language-detector.d.ts +0 -1
- package/dist/core/local-endpoint-store.d.ts +0 -1
- package/dist/core/logger.d.ts +0 -1
- package/dist/core/loop-breaker.d.ts +0 -1
- package/dist/core/lsp/client.d.ts +8 -6
- package/dist/core/lsp/client.js +68 -18
- package/dist/core/lsp/client.js.map +1 -1
- package/dist/core/lsp/edit-telemetry.d.ts +0 -1
- package/dist/core/lsp/format.d.ts +0 -1
- package/dist/core/lsp/jsonrpc.d.ts +0 -1
- package/dist/core/lsp/manager.d.ts +16 -2
- package/dist/core/lsp/manager.js +170 -9
- package/dist/core/lsp/manager.js.map +1 -1
- package/dist/core/lsp/pool.d.ts +0 -1
- package/dist/core/lsp/pool.js.map +1 -1
- package/dist/core/lsp/servers.d.ts +0 -1
- package/dist/core/lsp/test-support.d.ts +0 -1
- package/dist/core/mcp/catalog-cache.d.ts +0 -1
- package/dist/core/mcp/client.d.ts +0 -1
- package/dist/core/mcp/content.d.ts +0 -1
- package/dist/core/mcp/defaults.d.ts +0 -1
- package/dist/core/mcp/deferred-catalog.d.ts +0 -1
- package/dist/core/mcp/elicitation-bridge.d.ts +0 -1
- package/dist/core/mcp/index.d.ts +0 -1
- package/dist/core/mcp/loopback.d.ts +0 -1
- package/dist/core/mcp/oauth-provider.d.ts +0 -1
- package/dist/core/mcp/oauth-store.d.ts +0 -1
- package/dist/core/mcp/parse-add-command.d.ts +0 -1
- package/dist/core/mcp/resolve-stdio.d.ts +0 -1
- package/dist/core/mcp/shared-pool.d.ts +0 -1
- package/dist/core/mcp/store.d.ts +0 -1
- package/dist/core/mcp/types.d.ts +0 -1
- package/dist/core/message-images.d.ts +0 -1
- package/dist/core/model-registry.d.ts +0 -1
- package/dist/core/network-guard.d.ts +0 -1
- package/dist/core/nolan-context.d.ts +5 -1
- package/dist/core/nolan-context.js +9 -2
- package/dist/core/nolan-context.js.map +1 -1
- package/dist/core/nolan-model.d.ts +0 -1
- package/dist/core/nolan-prompt.d.ts +0 -1
- package/dist/core/nolan-prompt.js +32 -14
- package/dist/core/nolan-prompt.js.map +1 -1
- package/dist/core/oauth/anthropic.d.ts +0 -1
- package/dist/core/oauth/gemini.d.ts +0 -1
- package/dist/core/oauth/kimi.d.ts +0 -1
- package/dist/core/oauth/openai.d.ts +0 -1
- package/dist/core/oauth/pkce.d.ts +0 -1
- package/dist/core/oauth/types.d.ts +0 -1
- package/dist/core/oauth/xai.d.ts +0 -1
- package/dist/core/parked-requests.d.ts +0 -1
- package/dist/core/persistent-shell.d.ts +0 -1
- package/dist/core/persistent-shell.js +3 -1
- package/dist/core/persistent-shell.js.map +1 -1
- package/dist/core/pixel-fix-agent.d.ts +0 -1
- package/dist/core/pixel-fix.d.ts +0 -1
- package/dist/core/pixel.d.ts +0 -1
- package/dist/core/platform-clis.d.ts +0 -1
- package/dist/core/process-gate.d.ts +0 -1
- package/dist/core/process-manager.d.ts +7 -4
- package/dist/core/process-manager.js +23 -7
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/progress/engine.d.ts +0 -1
- package/dist/core/progress/git-xp.d.ts +0 -1
- package/dist/core/progress/ranks.d.ts +0 -1
- package/dist/core/progress/rebuild.d.ts +0 -1
- package/dist/core/progress/store.d.ts +0 -1
- package/dist/core/progress/types.d.ts +0 -1
- package/dist/core/project-discovery.d.ts +0 -1
- package/dist/core/prompt-commands.d.ts +0 -1
- package/dist/core/radio.d.ts +0 -1
- package/dist/core/regrounding.d.ts +0 -1
- package/dist/core/resolve-start.d.ts +0 -1
- package/dist/core/run-claim.d.ts +0 -1
- package/dist/core/run-lifecycle.d.ts +0 -1
- package/dist/core/runtime-mode.d.ts +0 -1
- package/dist/core/sandbox-domains.d.ts +0 -1
- package/dist/core/sandbox-feedback.d.ts +0 -1
- package/dist/core/sandbox.d.ts +0 -1
- package/dist/core/semantic-loop-check.d.ts +58 -0
- package/dist/core/semantic-loop-check.js +103 -0
- package/dist/core/semantic-loop-check.js.map +1 -0
- package/dist/core/semantic-search-benchmark.d.ts +0 -1
- package/dist/core/session-compaction.d.ts +0 -1
- package/dist/core/session-export.d.ts +0 -1
- package/dist/core/session-history.d.ts +0 -1
- package/dist/core/session-manager.d.ts +1 -2
- package/dist/core/session-preview.d.ts +0 -1
- package/dist/core/session-storage.d.ts +0 -1
- package/dist/core/settings-manager.d.ts +0 -1
- package/dist/core/setup-history.d.ts +0 -1
- package/dist/core/shell-path.d.ts +0 -1
- package/dist/core/shell.d.ts +0 -1
- package/dist/core/shell.js +6 -3
- package/dist/core/shell.js.map +1 -1
- package/dist/core/shutdown.d.ts +0 -1
- package/dist/core/skills.d.ts +0 -1
- package/dist/core/slash-commands.d.ts +3 -2
- package/dist/core/slash-commands.js +6 -4
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/source-maps.d.ts +0 -1
- package/dist/core/speed-benchmark.d.ts +0 -1
- package/dist/core/steering.d.ts +0 -1
- package/dist/core/steroids.d.ts +0 -1
- package/dist/core/style-packs/index.d.ts +0 -1
- package/dist/core/style-packs/packs.d.ts +0 -1
- package/dist/core/subagent-manager.d.ts +7 -2
- package/dist/core/subagent-manager.js +15 -5
- package/dist/core/subagent-manager.js.map +1 -1
- package/dist/core/subagent-policy.d.ts +0 -1
- package/dist/core/subagent-store.d.ts +0 -1
- package/dist/core/subagent-turn-record.d.ts +0 -1
- package/dist/core/task-store.d.ts +0 -1
- package/dist/core/telegram-config.d.ts +0 -1
- package/dist/core/telegram.d.ts +0 -1
- package/dist/core/thinking-level.d.ts +0 -1
- package/dist/core/verification-evidence.d.ts +11 -2
- package/dist/core/verification-evidence.js +96 -22
- package/dist/core/verification-evidence.js.map +1 -1
- package/dist/core/verification-gate.d.ts +75 -36
- package/dist/core/verification-gate.js +301 -37
- package/dist/core/verification-gate.js.map +1 -1
- package/dist/core/verification-snapshot.d.ts +7 -0
- package/dist/core/verification-snapshot.js +111 -0
- package/dist/core/verification-snapshot.js.map +1 -0
- package/dist/core/verify-commands.d.ts +0 -1
- package/dist/core/voice-transcriber.d.ts +0 -1
- package/dist/core/workspace-guard.d.ts +0 -1
- package/dist/hf-pull.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/interactive.d.ts +0 -1
- package/dist/modes/acp-mode.d.ts +0 -1
- package/dist/modes/agent-home-mode.d.ts +0 -1
- package/dist/modes/index.d.ts +0 -1
- package/dist/modes/json-mode.d.ts +0 -1
- package/dist/modes/print-mode.d.ts +0 -1
- package/dist/modes/rpc-mode.d.ts +0 -1
- package/dist/modes/serve-mode.d.ts +0 -1
- package/dist/modes/subagent-worker-mode.d.ts +0 -1
- package/dist/session.d.ts +0 -1
- package/dist/system-prompt.d.ts +0 -1
- package/dist/system-prompt.js +53 -124
- package/dist/system-prompt.js.map +1 -1
- package/dist/test-support/fake-home.d.ts +0 -1
- package/dist/tools/ask-user.d.ts +0 -1
- package/dist/tools/bash.d.ts +0 -1
- package/dist/tools/bash.js +9 -4
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/code-nav.d.ts +0 -1
- package/dist/tools/code-skeleton.d.ts +0 -1
- package/dist/tools/compress.d.ts +0 -1
- package/dist/tools/edit-diff.d.ts +19 -2
- package/dist/tools/edit-diff.js +16 -3
- package/dist/tools/edit-diff.js.map +1 -1
- package/dist/tools/edit.d.ts +1 -2
- package/dist/tools/edit.js +36 -12
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/enter-plan.d.ts +0 -1
- package/dist/tools/exit-plan.d.ts +0 -1
- package/dist/tools/find.d.ts +0 -1
- package/dist/tools/generate-image.d.ts +5 -1
- package/dist/tools/generate-image.js +25 -7
- package/dist/tools/generate-image.js.map +1 -1
- package/dist/tools/goals.d.ts +0 -1
- package/dist/tools/grep.d.ts +0 -1
- package/dist/tools/html-extract.d.ts +0 -1
- package/dist/tools/index.d.ts +3 -2
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/ls.d.ts +0 -1
- package/dist/tools/operations.d.ts +0 -1
- package/dist/tools/overflow.d.ts +0 -1
- package/dist/tools/path-utils.d.ts +0 -1
- package/dist/tools/pdf-extract.d.ts +0 -1
- package/dist/tools/prompt-hints.d.ts +0 -1
- package/dist/tools/prompt-hints.js +1 -1
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/read-only-bash.d.ts +0 -1
- package/dist/tools/read-tracker.d.ts +0 -1
- package/dist/tools/read.d.ts +0 -1
- package/dist/tools/safe-env.d.ts +0 -1
- package/dist/tools/screenshot.d.ts +0 -1
- package/dist/tools/search-code.d.ts +0 -1
- package/dist/tools/session-stats.d.ts +26 -0
- package/dist/tools/session-stats.js +51 -0
- package/dist/tools/session-stats.js.map +1 -0
- package/dist/tools/skill.d.ts +0 -1
- package/dist/tools/skill.js +3 -5
- package/dist/tools/skill.js.map +1 -1
- package/dist/tools/source-path.d.ts +0 -1
- package/dist/tools/steroids.d.ts +0 -1
- package/dist/tools/steroids.js +1 -1
- package/dist/tools/subagent-control.d.ts +0 -1
- package/dist/tools/subagent-shared.d.ts +0 -1
- package/dist/tools/subagent.d.ts +0 -1
- package/dist/tools/task-output.d.ts +0 -1
- package/dist/tools/task-output.js +13 -6
- package/dist/tools/task-output.js.map +1 -1
- package/dist/tools/task-send.d.ts +0 -1
- package/dist/tools/task-stop.d.ts +0 -1
- package/dist/tools/tasks.d.ts +0 -1
- package/dist/tools/tool-search.d.ts +0 -1
- package/dist/tools/tool-tiers.d.ts +0 -1
- package/dist/tools/truncate.d.ts +0 -1
- package/dist/tools/web-fetch.d.ts +0 -1
- package/dist/tools/web-search.d.ts +0 -1
- package/dist/tools/write.d.ts +0 -1
- package/dist/types.d.ts +0 -1
- package/dist/ui/App.d.ts +0 -1
- package/dist/ui/App.js +6 -1
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/activity-phrases.d.ts +0 -1
- package/dist/ui/app-items.d.ts +0 -1
- package/dist/ui/components/ActivityIndicator.d.ts +0 -1
- package/dist/ui/components/AnimationContext.d.ts +0 -1
- package/dist/ui/components/AssistantMessage.d.ts +0 -1
- package/dist/ui/components/BackgroundTasksBar.d.ts +0 -1
- package/dist/ui/components/Banner.d.ts +0 -1
- package/dist/ui/components/ChatFooterPane.d.ts +0 -1
- package/dist/ui/components/ChatInputStack.d.ts +0 -1
- package/dist/ui/components/ChatLayout.d.ts +0 -1
- package/dist/ui/components/ChatLivePane.d.ts +0 -1
- package/dist/ui/components/ChatScreen.d.ts +0 -1
- package/dist/ui/components/ChatStatusRow.d.ts +0 -1
- package/dist/ui/components/CompactionNotice.d.ts +0 -1
- package/dist/ui/components/DiffFrame.d.ts +0 -1
- package/dist/ui/components/DiffView.d.ts +0 -1
- package/dist/ui/components/Footer.d.ts +0 -1
- package/dist/ui/components/FooterStatusRow.d.ts +0 -1
- package/dist/ui/components/FullScreenOverlayRouter.d.ts +0 -1
- package/dist/ui/components/GoalOverlay.d.ts +0 -1
- package/dist/ui/components/GoalStatusBar.d.ts +0 -1
- package/dist/ui/components/IdealHookMessage.d.ts +0 -1
- package/dist/ui/components/InputArea.d.ts +0 -1
- package/dist/ui/components/LiveToolPanel.d.ts +0 -1
- package/dist/ui/components/Markdown.d.ts +0 -1
- package/dist/ui/components/MessageResponse.d.ts +0 -1
- package/dist/ui/components/ModelSelector.d.ts +0 -1
- package/dist/ui/components/NoSelect.d.ts +0 -1
- package/dist/ui/components/Overlay.d.ts +0 -1
- package/dist/ui/components/PixelOverlay.d.ts +0 -1
- package/dist/ui/components/PlanApproval.d.ts +0 -1
- package/dist/ui/components/PlanBanner.d.ts +0 -1
- package/dist/ui/components/PlanModeLogo.d.ts +0 -1
- package/dist/ui/components/PlanOverlay.d.ts +0 -1
- package/dist/ui/components/PlanProgress.d.ts +0 -1
- package/dist/ui/components/QueueIndicator.d.ts +0 -1
- package/dist/ui/components/Ratchet.d.ts +0 -1
- package/dist/ui/components/RewindOverlay.d.ts +0 -1
- package/dist/ui/components/SelectList.d.ts +0 -1
- package/dist/ui/components/ServerToolExecution.d.ts +0 -1
- package/dist/ui/components/SessionSelector.d.ts +0 -1
- package/dist/ui/components/SessionSummary.d.ts +0 -1
- package/dist/ui/components/SettingsSelector.d.ts +0 -1
- package/dist/ui/components/SkillsOverlay.d.ts +0 -1
- package/dist/ui/components/SlashCommandMenu.d.ts +0 -1
- package/dist/ui/components/SlashStyledSelectList.d.ts +0 -1
- package/dist/ui/components/Spinner.d.ts +0 -1
- package/dist/ui/components/StreamingArea.d.ts +0 -1
- package/dist/ui/components/SubAgentPanel.d.ts +0 -1
- package/dist/ui/components/TaskOverlay.d.ts +0 -1
- package/dist/ui/components/TaskPickerMenu.d.ts +0 -1
- package/dist/ui/components/ThemeSelector.d.ts +0 -1
- package/dist/ui/components/ThinkingBlock.d.ts +0 -1
- package/dist/ui/components/ToolExecution.d.ts +0 -1
- package/dist/ui/components/ToolGroupExecution.d.ts +0 -1
- package/dist/ui/components/ToolUseLoader.d.ts +0 -1
- package/dist/ui/components/TranscriptViewport.d.ts +0 -1
- package/dist/ui/components/UserMessage.d.ts +0 -1
- package/dist/ui/components/force-color.d.ts +0 -1
- package/dist/ui/components/index.d.ts +0 -1
- package/dist/ui/constants/figures.d.ts +0 -1
- package/dist/ui/duration-format.d.ts +0 -1
- package/dist/ui/duration-summary.d.ts +0 -1
- package/dist/ui/error-item.d.ts +0 -1
- package/dist/ui/goal-events.d.ts +0 -1
- package/dist/ui/goal-events.js.map +1 -1
- package/dist/ui/goal-summary.d.ts +0 -1
- package/dist/ui/hooks/useAgentLoop.d.ts +0 -1
- package/dist/ui/hooks/useBlink.d.ts +0 -1
- package/dist/ui/hooks/useChatLayoutMeasurements.d.ts +0 -1
- package/dist/ui/hooks/useContextCompaction.d.ts +0 -1
- package/dist/ui/hooks/useDoublePress.d.ts +0 -1
- package/dist/ui/hooks/useMinDisplayTime.d.ts +0 -1
- package/dist/ui/hooks/useModeState.d.ts +0 -1
- package/dist/ui/hooks/usePixelFixFlow.d.ts +0 -1
- package/dist/ui/hooks/useSessionManager.d.ts +0 -1
- package/dist/ui/hooks/useSessionPersistence.d.ts +0 -1
- package/dist/ui/hooks/useSlashCommands.d.ts +0 -1
- package/dist/ui/hooks/useTaskPickerController.d.ts +0 -1
- package/dist/ui/hooks/useTerminalSize.d.ts +0 -1
- package/dist/ui/hooks/useTerminalTitle.d.ts +0 -1
- package/dist/ui/hooks/useTranscriptHistory.d.ts +0 -1
- package/dist/ui/hooks/useTranscriptScroll.d.ts +0 -1
- package/dist/ui/item-helpers.d.ts +0 -1
- package/dist/ui/layout-decisions.d.ts +0 -1
- package/dist/ui/live-area-height.d.ts +0 -1
- package/dist/ui/live-item-flush.d.ts +0 -1
- package/dist/ui/login.d.ts +0 -1
- package/dist/ui/mcp.d.ts +0 -1
- package/dist/ui/pixel.d.ts +0 -1
- package/dist/ui/prompt-routing.d.ts +0 -1
- package/dist/ui/render.d.ts +0 -1
- package/dist/ui/session-summary.d.ts +0 -1
- package/dist/ui/sessions.d.ts +0 -1
- package/dist/ui/spinner-frames.d.ts +0 -1
- package/dist/ui/stores/create-store.d.ts +0 -1
- package/dist/ui/stores/index.d.ts +0 -1
- package/dist/ui/stores/taskbar-store.d.ts +0 -1
- package/dist/ui/stores/transcript-scroll-store.d.ts +0 -1
- package/dist/ui/submit-prompt-command.d.ts +0 -1
- package/dist/ui/submit-slash-commands.d.ts +0 -1
- package/dist/ui/terminal-history-format.d.ts +0 -1
- package/dist/ui/terminal-history-spacing.d.ts +0 -1
- package/dist/ui/terminal-history-status-renderers.d.ts +0 -1
- package/dist/ui/terminal-history.d.ts +0 -1
- package/dist/ui/testing/screen-recorder.d.ts +0 -1
- package/dist/ui/theme/detect-theme.d.ts +0 -1
- package/dist/ui/theme/theme.d.ts +0 -1
- package/dist/ui/theme/theme.js.map +1 -1
- package/dist/ui/thinking-level.d.ts +0 -1
- package/dist/ui/tool-group-summary.d.ts +0 -1
- package/dist/ui/tool-line-summary.d.ts +0 -1
- package/dist/ui/transcript/MiscRows.d.ts +0 -1
- package/dist/ui/transcript/StatusRow.d.ts +0 -1
- package/dist/ui/transcript/ToolRows.d.ts +0 -1
- package/dist/ui/transcript/TranscriptItemFrame.d.ts +0 -1
- package/dist/ui/transcript/TranscriptRenderer.d.ts +0 -1
- package/dist/ui/transcript/presentation.d.ts +0 -1
- package/dist/ui/transcript/spacing.d.ts +0 -1
- package/dist/ui/transcript/tool-presentation.d.ts +0 -1
- package/dist/ui/transcript/tool-presentation.js.map +1 -1
- package/dist/ui/transcript/transcript-lines.d.ts +0 -1
- package/dist/ui/utils/assistant-stream-split.d.ts +0 -1
- package/dist/ui/utils/highlight.d.ts +0 -1
- package/dist/ui/utils/hyperlink.d.ts +0 -1
- package/dist/ui/utils/latex-to-unicode.d.ts +0 -1
- package/dist/ui/utils/markdown-cache.d.ts +0 -1
- package/dist/ui/utils/markdown-renderer.d.ts +0 -1
- package/dist/ui/utils/markdown-table.d.ts +0 -1
- package/dist/ui/utils/signal.d.ts +0 -1
- package/dist/ui/utils/supports-hyperlinks.d.ts +0 -1
- package/dist/ui/utils/table-text.d.ts +0 -1
- package/dist/ui/utils/terminal-graphics.d.ts +0 -1
- package/dist/ui/utils/terminal-input.d.ts +0 -1
- package/dist/ui/utils/text-utils.d.ts +0 -1
- package/dist/ui/utils/token-to-ansi.d.ts +0 -1
- package/dist/ui/utils/user-message-display.d.ts +0 -1
- package/dist/ui/utils/word-diff.d.ts +0 -1
- package/dist/utils/error-handler.d.ts +0 -1
- package/dist/utils/format.d.ts +0 -1
- package/dist/utils/git.d.ts +0 -1
- package/dist/utils/github-ci.d.ts +18 -0
- package/dist/utils/github-ci.js +137 -0
- package/dist/utils/github-ci.js.map +1 -0
- package/dist/utils/github.d.ts +0 -1
- package/dist/utils/http-body.d.ts +0 -1
- package/dist/utils/image.d.ts +0 -1
- package/dist/utils/open-browser.d.ts +0 -1
- package/dist/utils/plan-steps.d.ts +0 -1
- package/dist/utils/plan-steps.js.map +1 -1
- package/dist/utils/process.d.ts +0 -1
- package/dist/utils/prompt-enhancer.d.ts +6 -3
- package/dist/utils/prompt-enhancer.js +61 -13
- package/dist/utils/prompt-enhancer.js.map +1 -1
- package/dist/utils/shell.d.ts +0 -1
- package/dist/utils/sound.d.ts +0 -1
- package/dist/utils/text.d.ts +0 -1
- package/package.json +8 -8
- package/dist/app-sidecar-sessions.d.ts.map +0 -1
- package/dist/app-sidecar.d.ts.map +0 -1
- package/dist/chat-agents/general.d.ts.map +0 -1
- package/dist/chat-agents/index.d.ts.map +0 -1
- package/dist/chat-agents/jiwa.d.ts.map +0 -1
- package/dist/chat-agents/memory.d.ts.map +0 -1
- package/dist/chat-agents/research.d.ts.map +0 -1
- package/dist/chat-agents/shared.d.ts.map +0 -1
- package/dist/chat-agents/therapist.d.ts.map +0 -1
- package/dist/chat-agents/types.d.ts.map +0 -1
- package/dist/cli/auth.d.ts.map +0 -1
- package/dist/cli/command-routing.d.ts.map +0 -1
- package/dist/cli/mcp.d.ts.map +0 -1
- package/dist/cli/pixel.d.ts.map +0 -1
- package/dist/cli/shared.d.ts.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/core/agent-notifications.d.ts.map +0 -1
- package/dist/core/agent-session.d.ts.map +0 -1
- package/dist/core/agents.d.ts.map +0 -1
- package/dist/core/api-benchmark.d.ts.map +0 -1
- package/dist/core/ask-user.d.ts.map +0 -1
- package/dist/core/auth/index.d.ts.map +0 -1
- package/dist/core/auth-providers.d.ts.map +0 -1
- package/dist/core/auth-storage.d.ts.map +0 -1
- package/dist/core/auto-update.d.ts.map +0 -1
- package/dist/core/autopilot-cycle.d.ts.map +0 -1
- package/dist/core/autopilot-gate.d.ts.map +0 -1
- package/dist/core/autopilot-verdict.d.ts.map +0 -1
- package/dist/core/bash-spawn-benchmark.d.ts.map +0 -1
- package/dist/core/bundled-agents.d.ts.map +0 -1
- package/dist/core/cache-warm-benchmark.d.ts.map +0 -1
- package/dist/core/checkpoint-store.d.ts.map +0 -1
- package/dist/core/claude-code-version.d.ts.map +0 -1
- package/dist/core/code-retrieval-chunkers.d.ts.map +0 -1
- package/dist/core/code-retrieval.d.ts.map +0 -1
- package/dist/core/compaction/active-context.d.ts.map +0 -1
- package/dist/core/compaction/compactor.d.ts.map +0 -1
- package/dist/core/compaction/policy.d.ts.map +0 -1
- package/dist/core/compaction/query-aware-selector.d.ts.map +0 -1
- package/dist/core/compaction/token-estimator.d.ts.map +0 -1
- package/dist/core/compaction/tool-result-pruner.d.ts.map +0 -1
- package/dist/core/context-limits.d.ts.map +0 -1
- package/dist/core/custom-commands.d.ts.map +0 -1
- package/dist/core/encode-cwd.d.ts.map +0 -1
- package/dist/core/env-delta.d.ts.map +0 -1
- package/dist/core/event-bus.d.ts.map +0 -1
- package/dist/core/extensions/loader.d.ts.map +0 -1
- package/dist/core/extensions/plugin-bundles.d.ts.map +0 -1
- package/dist/core/extensions/types.d.ts.map +0 -1
- package/dist/core/fast-apply-benchmark.d.ts.map +0 -1
- package/dist/core/file-lock.d.ts.map +0 -1
- package/dist/core/foreign-session-import.d.ts.map +0 -1
- package/dist/core/foreign-transcript-blocks.d.ts.map +0 -1
- package/dist/core/goal-controller.d.ts.map +0 -1
- package/dist/core/goal-prerequisites.d.ts.map +0 -1
- package/dist/core/goal-store.d.ts.map +0 -1
- package/dist/core/goal-verifier.d.ts.map +0 -1
- package/dist/core/goal-worker.d.ts.map +0 -1
- package/dist/core/hashline-edit-benchmark.d.ts.map +0 -1
- package/dist/core/hashline.d.ts.map +0 -1
- package/dist/core/ideal-review.d.ts.map +0 -1
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/language-detector.d.ts.map +0 -1
- package/dist/core/local-endpoint-store.d.ts.map +0 -1
- package/dist/core/logger.d.ts.map +0 -1
- package/dist/core/loop-breaker.d.ts.map +0 -1
- package/dist/core/lsp/client.d.ts.map +0 -1
- package/dist/core/lsp/edit-telemetry.d.ts.map +0 -1
- package/dist/core/lsp/format.d.ts.map +0 -1
- package/dist/core/lsp/jsonrpc.d.ts.map +0 -1
- package/dist/core/lsp/manager.d.ts.map +0 -1
- package/dist/core/lsp/pool.d.ts.map +0 -1
- package/dist/core/lsp/servers.d.ts.map +0 -1
- package/dist/core/lsp/test-support.d.ts.map +0 -1
- package/dist/core/mcp/catalog-cache.d.ts.map +0 -1
- package/dist/core/mcp/client.d.ts.map +0 -1
- package/dist/core/mcp/content.d.ts.map +0 -1
- package/dist/core/mcp/defaults.d.ts.map +0 -1
- package/dist/core/mcp/deferred-catalog.d.ts.map +0 -1
- package/dist/core/mcp/elicitation-bridge.d.ts.map +0 -1
- package/dist/core/mcp/index.d.ts.map +0 -1
- package/dist/core/mcp/loopback.d.ts.map +0 -1
- package/dist/core/mcp/oauth-provider.d.ts.map +0 -1
- package/dist/core/mcp/oauth-store.d.ts.map +0 -1
- package/dist/core/mcp/parse-add-command.d.ts.map +0 -1
- package/dist/core/mcp/resolve-stdio.d.ts.map +0 -1
- package/dist/core/mcp/shared-pool.d.ts.map +0 -1
- package/dist/core/mcp/store.d.ts.map +0 -1
- package/dist/core/mcp/types.d.ts.map +0 -1
- package/dist/core/message-images.d.ts.map +0 -1
- package/dist/core/model-registry.d.ts.map +0 -1
- package/dist/core/network-guard.d.ts.map +0 -1
- package/dist/core/nolan-context.d.ts.map +0 -1
- package/dist/core/nolan-model.d.ts.map +0 -1
- package/dist/core/nolan-prompt.d.ts.map +0 -1
- package/dist/core/oauth/anthropic.d.ts.map +0 -1
- package/dist/core/oauth/gemini.d.ts.map +0 -1
- package/dist/core/oauth/kimi.d.ts.map +0 -1
- package/dist/core/oauth/openai.d.ts.map +0 -1
- package/dist/core/oauth/pkce.d.ts.map +0 -1
- package/dist/core/oauth/types.d.ts.map +0 -1
- package/dist/core/oauth/xai.d.ts.map +0 -1
- package/dist/core/parked-requests.d.ts.map +0 -1
- package/dist/core/persistent-shell.d.ts.map +0 -1
- package/dist/core/pixel-fix-agent.d.ts.map +0 -1
- package/dist/core/pixel-fix.d.ts.map +0 -1
- package/dist/core/pixel.d.ts.map +0 -1
- package/dist/core/platform-clis.d.ts.map +0 -1
- package/dist/core/process-gate.d.ts.map +0 -1
- package/dist/core/process-manager.d.ts.map +0 -1
- package/dist/core/progress/engine.d.ts.map +0 -1
- package/dist/core/progress/git-xp.d.ts.map +0 -1
- package/dist/core/progress/ranks.d.ts.map +0 -1
- package/dist/core/progress/rebuild.d.ts.map +0 -1
- package/dist/core/progress/store.d.ts.map +0 -1
- package/dist/core/progress/types.d.ts.map +0 -1
- package/dist/core/project-discovery.d.ts.map +0 -1
- package/dist/core/prompt-commands.d.ts.map +0 -1
- package/dist/core/radio.d.ts.map +0 -1
- package/dist/core/regrounding.d.ts.map +0 -1
- package/dist/core/resolve-start.d.ts.map +0 -1
- package/dist/core/run-claim.d.ts.map +0 -1
- package/dist/core/run-lifecycle.d.ts.map +0 -1
- package/dist/core/runtime-mode.d.ts.map +0 -1
- package/dist/core/sandbox-domains.d.ts.map +0 -1
- package/dist/core/sandbox-feedback.d.ts.map +0 -1
- package/dist/core/sandbox.d.ts.map +0 -1
- package/dist/core/semantic-search-benchmark.d.ts.map +0 -1
- package/dist/core/session-compaction.d.ts.map +0 -1
- package/dist/core/session-export.d.ts.map +0 -1
- package/dist/core/session-history.d.ts.map +0 -1
- package/dist/core/session-manager.d.ts.map +0 -1
- package/dist/core/session-preview.d.ts.map +0 -1
- package/dist/core/session-storage.d.ts.map +0 -1
- package/dist/core/settings-manager.d.ts.map +0 -1
- package/dist/core/setup-history.d.ts.map +0 -1
- package/dist/core/shell-path.d.ts.map +0 -1
- package/dist/core/shell.d.ts.map +0 -1
- package/dist/core/shutdown.d.ts.map +0 -1
- package/dist/core/skills.d.ts.map +0 -1
- package/dist/core/slash-commands.d.ts.map +0 -1
- package/dist/core/source-maps.d.ts.map +0 -1
- package/dist/core/speed-benchmark.d.ts.map +0 -1
- package/dist/core/steering.d.ts.map +0 -1
- package/dist/core/steroids.d.ts.map +0 -1
- package/dist/core/style-packs/index.d.ts.map +0 -1
- package/dist/core/style-packs/packs.d.ts.map +0 -1
- package/dist/core/subagent-manager.d.ts.map +0 -1
- package/dist/core/subagent-policy.d.ts.map +0 -1
- package/dist/core/subagent-store.d.ts.map +0 -1
- package/dist/core/subagent-turn-record.d.ts.map +0 -1
- package/dist/core/task-store.d.ts.map +0 -1
- package/dist/core/telegram-config.d.ts.map +0 -1
- package/dist/core/telegram.d.ts.map +0 -1
- package/dist/core/thinking-level.d.ts.map +0 -1
- package/dist/core/verification-evidence.d.ts.map +0 -1
- package/dist/core/verification-gate.d.ts.map +0 -1
- package/dist/core/verify-commands.d.ts.map +0 -1
- package/dist/core/voice-transcriber.d.ts.map +0 -1
- package/dist/core/workspace-guard.d.ts.map +0 -1
- package/dist/hf-pull.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/interactive.d.ts.map +0 -1
- package/dist/modes/acp-mode.d.ts.map +0 -1
- package/dist/modes/agent-home-mode.d.ts.map +0 -1
- package/dist/modes/index.d.ts.map +0 -1
- package/dist/modes/json-mode.d.ts.map +0 -1
- package/dist/modes/print-mode.d.ts.map +0 -1
- package/dist/modes/rpc-mode.d.ts.map +0 -1
- package/dist/modes/serve-mode.d.ts.map +0 -1
- package/dist/modes/subagent-worker-mode.d.ts.map +0 -1
- package/dist/session.d.ts.map +0 -1
- package/dist/system-prompt.d.ts.map +0 -1
- package/dist/test-support/fake-home.d.ts.map +0 -1
- package/dist/tools/ask-user.d.ts.map +0 -1
- package/dist/tools/bash.d.ts.map +0 -1
- package/dist/tools/code-nav.d.ts.map +0 -1
- package/dist/tools/code-skeleton.d.ts.map +0 -1
- package/dist/tools/compress.d.ts.map +0 -1
- package/dist/tools/edit-diff.d.ts.map +0 -1
- package/dist/tools/edit.d.ts.map +0 -1
- package/dist/tools/enter-plan.d.ts.map +0 -1
- package/dist/tools/exit-plan.d.ts.map +0 -1
- package/dist/tools/find.d.ts.map +0 -1
- package/dist/tools/generate-image.d.ts.map +0 -1
- package/dist/tools/goals.d.ts.map +0 -1
- package/dist/tools/grep.d.ts.map +0 -1
- package/dist/tools/html-extract.d.ts.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/ls.d.ts.map +0 -1
- package/dist/tools/operations.d.ts.map +0 -1
- package/dist/tools/overflow.d.ts.map +0 -1
- package/dist/tools/path-utils.d.ts.map +0 -1
- package/dist/tools/pdf-extract.d.ts.map +0 -1
- package/dist/tools/prompt-hints.d.ts.map +0 -1
- package/dist/tools/read-only-bash.d.ts.map +0 -1
- package/dist/tools/read-tracker.d.ts.map +0 -1
- package/dist/tools/read.d.ts.map +0 -1
- package/dist/tools/safe-env.d.ts.map +0 -1
- package/dist/tools/screenshot.d.ts.map +0 -1
- package/dist/tools/search-code.d.ts.map +0 -1
- package/dist/tools/skill.d.ts.map +0 -1
- package/dist/tools/source-path.d.ts.map +0 -1
- package/dist/tools/steroids.d.ts.map +0 -1
- package/dist/tools/subagent-control.d.ts.map +0 -1
- package/dist/tools/subagent-shared.d.ts.map +0 -1
- package/dist/tools/subagent.d.ts.map +0 -1
- package/dist/tools/task-output.d.ts.map +0 -1
- package/dist/tools/task-send.d.ts.map +0 -1
- package/dist/tools/task-stop.d.ts.map +0 -1
- package/dist/tools/tasks.d.ts.map +0 -1
- package/dist/tools/tool-search.d.ts.map +0 -1
- package/dist/tools/tool-tiers.d.ts.map +0 -1
- package/dist/tools/truncate.d.ts.map +0 -1
- package/dist/tools/web-fetch.d.ts.map +0 -1
- package/dist/tools/web-search.d.ts.map +0 -1
- package/dist/tools/write.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/ui/App.d.ts.map +0 -1
- package/dist/ui/activity-phrases.d.ts.map +0 -1
- package/dist/ui/app-items.d.ts.map +0 -1
- package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
- package/dist/ui/components/AnimationContext.d.ts.map +0 -1
- package/dist/ui/components/AssistantMessage.d.ts.map +0 -1
- package/dist/ui/components/BackgroundTasksBar.d.ts.map +0 -1
- package/dist/ui/components/Banner.d.ts.map +0 -1
- package/dist/ui/components/ChatFooterPane.d.ts.map +0 -1
- package/dist/ui/components/ChatInputStack.d.ts.map +0 -1
- package/dist/ui/components/ChatLayout.d.ts.map +0 -1
- package/dist/ui/components/ChatLivePane.d.ts.map +0 -1
- package/dist/ui/components/ChatScreen.d.ts.map +0 -1
- package/dist/ui/components/ChatStatusRow.d.ts.map +0 -1
- package/dist/ui/components/CompactionNotice.d.ts.map +0 -1
- package/dist/ui/components/DiffFrame.d.ts.map +0 -1
- package/dist/ui/components/DiffView.d.ts.map +0 -1
- package/dist/ui/components/Footer.d.ts.map +0 -1
- package/dist/ui/components/FooterStatusRow.d.ts.map +0 -1
- package/dist/ui/components/FullScreenOverlayRouter.d.ts.map +0 -1
- package/dist/ui/components/GoalOverlay.d.ts.map +0 -1
- package/dist/ui/components/GoalStatusBar.d.ts.map +0 -1
- package/dist/ui/components/IdealHookMessage.d.ts.map +0 -1
- package/dist/ui/components/InputArea.d.ts.map +0 -1
- package/dist/ui/components/LiveToolPanel.d.ts.map +0 -1
- package/dist/ui/components/Markdown.d.ts.map +0 -1
- package/dist/ui/components/MessageResponse.d.ts.map +0 -1
- package/dist/ui/components/ModelSelector.d.ts.map +0 -1
- package/dist/ui/components/NoSelect.d.ts.map +0 -1
- package/dist/ui/components/Overlay.d.ts.map +0 -1
- package/dist/ui/components/PixelOverlay.d.ts.map +0 -1
- package/dist/ui/components/PlanApproval.d.ts.map +0 -1
- package/dist/ui/components/PlanBanner.d.ts.map +0 -1
- package/dist/ui/components/PlanModeLogo.d.ts.map +0 -1
- package/dist/ui/components/PlanOverlay.d.ts.map +0 -1
- package/dist/ui/components/PlanProgress.d.ts.map +0 -1
- package/dist/ui/components/QueueIndicator.d.ts.map +0 -1
- package/dist/ui/components/Ratchet.d.ts.map +0 -1
- package/dist/ui/components/RewindOverlay.d.ts.map +0 -1
- package/dist/ui/components/SelectList.d.ts.map +0 -1
- package/dist/ui/components/ServerToolExecution.d.ts.map +0 -1
- package/dist/ui/components/SessionSelector.d.ts.map +0 -1
- package/dist/ui/components/SessionSummary.d.ts.map +0 -1
- package/dist/ui/components/SettingsSelector.d.ts.map +0 -1
- package/dist/ui/components/SkillsOverlay.d.ts.map +0 -1
- package/dist/ui/components/SlashCommandMenu.d.ts.map +0 -1
- package/dist/ui/components/SlashStyledSelectList.d.ts.map +0 -1
- package/dist/ui/components/Spinner.d.ts.map +0 -1
- package/dist/ui/components/StreamingArea.d.ts.map +0 -1
- package/dist/ui/components/SubAgentPanel.d.ts.map +0 -1
- package/dist/ui/components/TaskOverlay.d.ts.map +0 -1
- package/dist/ui/components/TaskPickerMenu.d.ts.map +0 -1
- package/dist/ui/components/ThemeSelector.d.ts.map +0 -1
- package/dist/ui/components/ThinkingBlock.d.ts.map +0 -1
- package/dist/ui/components/ToolExecution.d.ts.map +0 -1
- package/dist/ui/components/ToolGroupExecution.d.ts.map +0 -1
- package/dist/ui/components/ToolUseLoader.d.ts.map +0 -1
- package/dist/ui/components/TranscriptViewport.d.ts.map +0 -1
- package/dist/ui/components/UserMessage.d.ts.map +0 -1
- package/dist/ui/components/force-color.d.ts.map +0 -1
- package/dist/ui/components/index.d.ts.map +0 -1
- package/dist/ui/constants/figures.d.ts.map +0 -1
- package/dist/ui/duration-format.d.ts.map +0 -1
- package/dist/ui/duration-summary.d.ts.map +0 -1
- package/dist/ui/error-item.d.ts.map +0 -1
- package/dist/ui/goal-events.d.ts.map +0 -1
- package/dist/ui/goal-summary.d.ts.map +0 -1
- package/dist/ui/hooks/useAgentLoop.d.ts.map +0 -1
- package/dist/ui/hooks/useBlink.d.ts.map +0 -1
- package/dist/ui/hooks/useChatLayoutMeasurements.d.ts.map +0 -1
- package/dist/ui/hooks/useContextCompaction.d.ts.map +0 -1
- package/dist/ui/hooks/useDoublePress.d.ts.map +0 -1
- package/dist/ui/hooks/useMinDisplayTime.d.ts.map +0 -1
- package/dist/ui/hooks/useModeState.d.ts.map +0 -1
- package/dist/ui/hooks/usePixelFixFlow.d.ts.map +0 -1
- package/dist/ui/hooks/useSessionManager.d.ts.map +0 -1
- package/dist/ui/hooks/useSessionPersistence.d.ts.map +0 -1
- package/dist/ui/hooks/useSlashCommands.d.ts.map +0 -1
- package/dist/ui/hooks/useTaskPickerController.d.ts.map +0 -1
- package/dist/ui/hooks/useTerminalSize.d.ts.map +0 -1
- package/dist/ui/hooks/useTerminalTitle.d.ts.map +0 -1
- package/dist/ui/hooks/useTranscriptHistory.d.ts.map +0 -1
- package/dist/ui/hooks/useTranscriptScroll.d.ts.map +0 -1
- package/dist/ui/item-helpers.d.ts.map +0 -1
- package/dist/ui/layout-decisions.d.ts.map +0 -1
- package/dist/ui/live-area-height.d.ts.map +0 -1
- package/dist/ui/live-item-flush.d.ts.map +0 -1
- package/dist/ui/login.d.ts.map +0 -1
- package/dist/ui/mcp.d.ts.map +0 -1
- package/dist/ui/pixel.d.ts.map +0 -1
- package/dist/ui/prompt-routing.d.ts.map +0 -1
- package/dist/ui/render.d.ts.map +0 -1
- package/dist/ui/session-summary.d.ts.map +0 -1
- package/dist/ui/sessions.d.ts.map +0 -1
- package/dist/ui/spinner-frames.d.ts.map +0 -1
- package/dist/ui/stores/create-store.d.ts.map +0 -1
- package/dist/ui/stores/index.d.ts.map +0 -1
- package/dist/ui/stores/taskbar-store.d.ts.map +0 -1
- package/dist/ui/stores/transcript-scroll-store.d.ts.map +0 -1
- package/dist/ui/submit-prompt-command.d.ts.map +0 -1
- package/dist/ui/submit-slash-commands.d.ts.map +0 -1
- package/dist/ui/terminal-history-format.d.ts.map +0 -1
- package/dist/ui/terminal-history-spacing.d.ts.map +0 -1
- package/dist/ui/terminal-history-status-renderers.d.ts.map +0 -1
- package/dist/ui/terminal-history.d.ts.map +0 -1
- package/dist/ui/testing/screen-recorder.d.ts.map +0 -1
- package/dist/ui/theme/detect-theme.d.ts.map +0 -1
- package/dist/ui/theme/theme.d.ts.map +0 -1
- package/dist/ui/thinking-level.d.ts.map +0 -1
- package/dist/ui/tool-group-summary.d.ts.map +0 -1
- package/dist/ui/tool-line-summary.d.ts.map +0 -1
- package/dist/ui/transcript/MiscRows.d.ts.map +0 -1
- package/dist/ui/transcript/StatusRow.d.ts.map +0 -1
- package/dist/ui/transcript/ToolRows.d.ts.map +0 -1
- package/dist/ui/transcript/TranscriptItemFrame.d.ts.map +0 -1
- package/dist/ui/transcript/TranscriptRenderer.d.ts.map +0 -1
- package/dist/ui/transcript/presentation.d.ts.map +0 -1
- package/dist/ui/transcript/spacing.d.ts.map +0 -1
- package/dist/ui/transcript/tool-presentation.d.ts.map +0 -1
- package/dist/ui/transcript/transcript-lines.d.ts.map +0 -1
- package/dist/ui/utils/assistant-stream-split.d.ts.map +0 -1
- package/dist/ui/utils/highlight.d.ts.map +0 -1
- package/dist/ui/utils/hyperlink.d.ts.map +0 -1
- package/dist/ui/utils/latex-to-unicode.d.ts.map +0 -1
- package/dist/ui/utils/markdown-cache.d.ts.map +0 -1
- package/dist/ui/utils/markdown-renderer.d.ts.map +0 -1
- package/dist/ui/utils/markdown-table.d.ts.map +0 -1
- package/dist/ui/utils/signal.d.ts.map +0 -1
- package/dist/ui/utils/supports-hyperlinks.d.ts.map +0 -1
- package/dist/ui/utils/table-text.d.ts.map +0 -1
- package/dist/ui/utils/terminal-graphics.d.ts.map +0 -1
- package/dist/ui/utils/terminal-input.d.ts.map +0 -1
- package/dist/ui/utils/text-utils.d.ts.map +0 -1
- package/dist/ui/utils/token-to-ansi.d.ts.map +0 -1
- package/dist/ui/utils/user-message-display.d.ts.map +0 -1
- package/dist/ui/utils/word-diff.d.ts.map +0 -1
- package/dist/utils/error-handler.d.ts.map +0 -1
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/github.d.ts.map +0 -1
- package/dist/utils/http-body.d.ts.map +0 -1
- package/dist/utils/image.d.ts.map +0 -1
- package/dist/utils/open-browser.d.ts.map +0 -1
- package/dist/utils/plan-steps.d.ts.map +0 -1
- package/dist/utils/process.d.ts.map +0 -1
- package/dist/utils/prompt-enhancer.d.ts.map +0 -1
- package/dist/utils/shell.d.ts.map +0 -1
- package/dist/utils/sound.d.ts.map +0 -1
- package/dist/utils/text.d.ts.map +0 -1
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* plan) still halts as HUMAN — Nolan must never prompt into a read-only
|
|
22
22
|
* plan-mode session.
|
|
23
23
|
*/
|
|
24
|
-
import type
|
|
24
|
+
import { type AutopilotVerdict } from "./autopilot-verdict.js";
|
|
25
25
|
/** Reason shown in the Nolan bubble when the build session is still INSIDE plan
|
|
26
26
|
* mode (enter_plan without exit_plan) when the cycle checks in — there is no
|
|
27
27
|
* submitted plan to review and the session is read-only, so the loop halts
|
|
@@ -51,7 +51,9 @@ export declare function buildPlanRevisionPrompt(feedback: string): string;
|
|
|
51
51
|
/** SSE frame types the cycle can emit (matched by the webview). */
|
|
52
52
|
export type AutopilotCycleEmit = {
|
|
53
53
|
type: "autopilot_done";
|
|
54
|
-
data:
|
|
54
|
+
data: {
|
|
55
|
+
reason?: string;
|
|
56
|
+
};
|
|
55
57
|
} | {
|
|
56
58
|
type: "autopilot_ignored";
|
|
57
59
|
data: Record<string, never>;
|
|
@@ -76,6 +78,8 @@ export interface AutopilotCycleDeps {
|
|
|
76
78
|
maxRounds: number;
|
|
77
79
|
/** True once /cancel fires — checked between every step. */
|
|
78
80
|
isCancelled: () => boolean;
|
|
81
|
+
/** Host evidence, independent of Nolan's verdict and reminder budgets. */
|
|
82
|
+
verificationProblem: () => string | null;
|
|
79
83
|
/** Live plan-mode state of the BUILD session. */
|
|
80
84
|
isPlanMode: () => boolean;
|
|
81
85
|
/** True while a submitted plan (exit_plan) awaits a verdict. */
|
|
@@ -92,7 +96,7 @@ export interface AutopilotCycleDeps {
|
|
|
92
96
|
/** Auto-accept the pending plan (fresh session + approved-plan prompt).
|
|
93
97
|
* Resolves false when the plan generation went stale (a user Accept/Reject
|
|
94
98
|
* raced the review and won) — the cycle stops silently. */
|
|
95
|
-
acceptPlan: () => Promise<boolean>;
|
|
99
|
+
acceptPlan: (reason?: string) => Promise<boolean>;
|
|
96
100
|
/** Run the "plan approved — implement it now" prompt on the fresh session. */
|
|
97
101
|
runImplement: () => Promise<void>;
|
|
98
102
|
/** Feed a PROMPT verdict's body to EZ Coder as an injected run. */
|
|
@@ -116,4 +120,3 @@ export interface AutopilotCycleDeps {
|
|
|
116
120
|
* - rounds exhausted → autopilot_capped
|
|
117
121
|
*/
|
|
118
122
|
export declare function driveAutopilotCycle(deps: AutopilotCycleDeps): Promise<void>;
|
|
119
|
-
//# sourceMappingURL=autopilot-cycle.d.ts.map
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autopilot cycle — the review→prompt→review loop as pure orchestration logic.
|
|
3
|
+
*
|
|
4
|
+
* The sidecar wires the real dependencies (nolanAuto session, runAgent, SSE
|
|
5
|
+
* broadcast); this module owns the loop's control flow so every exit path is
|
|
6
|
+
* unit-testable without booting the sidecar.
|
|
7
|
+
*
|
|
8
|
+
* Two branches share one loop:
|
|
9
|
+
* - PLAN branch (planPending): EZ Coder submitted a plan via exit_plan. Nolan
|
|
10
|
+
* reviews the PLAN itself — approve (auto-accept + implement, then the next
|
|
11
|
+
* round work-reviews the implementation), send revision feedback, or hand a
|
|
12
|
+
* genuine user-level decision to the human. Verdict mapping for plans:
|
|
13
|
+
* `all_clear` ⇒ approve, and `ignore` ALSO maps to approve — "nothing to
|
|
14
|
+
* object to" on a plan means it's sound (autopilot has no user blocker for
|
|
15
|
+
* plans by design). Unparseable output still stops as HUMAN upstream (the
|
|
16
|
+
* verdict parser returns HUMAN for garbage) — never a blind loop.
|
|
17
|
+
* - WORK branch: the classic review of a finished turn (ALL_CLEAR / IGNORE /
|
|
18
|
+
* HUMAN / PROMPT), unchanged.
|
|
19
|
+
*
|
|
20
|
+
* A mid-cycle enter_plan WITHOUT exit_plan (isPlanMode() true, no pending
|
|
21
|
+
* plan) still halts as HUMAN — Nolan must never prompt into a read-only
|
|
22
|
+
* plan-mode session.
|
|
23
|
+
*/
|
|
24
|
+
import { CORPUS_UNVERIFIED_REASON } from "./autopilot-verdict.js";
|
|
1
25
|
/** Reason shown in the Nolan bubble when the build session is still INSIDE plan
|
|
2
26
|
* mode (enter_plan without exit_plan) when the cycle checks in — there is no
|
|
3
27
|
* submitted plan to review and the session is read-only, so the loop halts
|
|
@@ -53,15 +77,22 @@ export function buildPlanRevisionPrompt(feedback) {
|
|
|
53
77
|
* - rounds exhausted → autopilot_capped
|
|
54
78
|
*/
|
|
55
79
|
export async function driveAutopilotCycle(deps) {
|
|
56
|
-
|
|
80
|
+
const stopIfUnverified = () => {
|
|
81
|
+
const reason = deps.verificationProblem();
|
|
82
|
+
if (!reason)
|
|
83
|
+
return false;
|
|
84
|
+
deps.emit({ type: "autopilot_human", data: { reason } });
|
|
85
|
+
return true;
|
|
86
|
+
};
|
|
87
|
+
if (deps.isCancelled() || stopIfUnverified())
|
|
57
88
|
return;
|
|
58
89
|
await deps.resetReviewer();
|
|
59
90
|
for (let round = 1; round <= deps.maxRounds; round++) {
|
|
60
|
-
if (deps.isCancelled())
|
|
91
|
+
if (deps.isCancelled() || stopIfUnverified())
|
|
61
92
|
return;
|
|
62
93
|
if (deps.planPending()) {
|
|
63
94
|
const verdict = await deps.reviewPlan();
|
|
64
|
-
if (!verdict || deps.isCancelled())
|
|
95
|
+
if (!verdict || deps.isCancelled() || stopIfUnverified())
|
|
65
96
|
return;
|
|
66
97
|
if (verdict.kind === "human") {
|
|
67
98
|
deps.emit({ type: "autopilot_human", data: { reason: verdict.reason } });
|
|
@@ -80,7 +111,10 @@ export async function driveAutopilotCycle(deps) {
|
|
|
80
111
|
}
|
|
81
112
|
// all_clear — and ignore mapped to approve ("nothing to object to" on a
|
|
82
113
|
// plan means it's sound; plans never get a silent-ignore user blocker).
|
|
83
|
-
const
|
|
114
|
+
const reason = verdict.kind === "all_clear" && verdict.evidenceLimitation
|
|
115
|
+
? CORPUS_UNVERIFIED_REASON
|
|
116
|
+
: undefined;
|
|
117
|
+
const ok = await deps.acceptPlan(reason);
|
|
84
118
|
if (!ok)
|
|
85
119
|
return; // generation went stale — the user's manual action won
|
|
86
120
|
await deps.runImplement();
|
|
@@ -95,10 +129,13 @@ export async function driveAutopilotCycle(deps) {
|
|
|
95
129
|
return;
|
|
96
130
|
}
|
|
97
131
|
const verdict = await deps.review();
|
|
98
|
-
if (!verdict || deps.isCancelled())
|
|
132
|
+
if (!verdict || deps.isCancelled() || stopIfUnverified())
|
|
99
133
|
return;
|
|
100
134
|
if (verdict.kind === "all_clear") {
|
|
101
|
-
deps.emit({
|
|
135
|
+
deps.emit({
|
|
136
|
+
type: "autopilot_done",
|
|
137
|
+
data: verdict.evidenceLimitation ? { reason: CORPUS_UNVERIFIED_REASON } : {},
|
|
138
|
+
});
|
|
102
139
|
return;
|
|
103
140
|
}
|
|
104
141
|
if (verdict.kind === "ignore") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autopilot-cycle.js","sourceRoot":"","sources":["../../src/core/autopilot-cycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"autopilot-cycle.js","sourceRoot":"","sources":["../../src/core/autopilot-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autopilot-gate.js","sourceRoot":"","sources":["../../src/core/autopilot-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAW/D;;8EAE8E;AAC9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;AAEvE;kBACkB;AAClB,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACrE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,QAAwC;IAExC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,CAChG,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,QAAwC;IAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,SAAS;QAC9B,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,wBAAwB,CAAC;QACzD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;0DAC0D;AAC1D,MAAM,UAAU,sBAAsB,CAAC,QAAyC;IAC9E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,KAAK,EAAE,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;wEAIwE;AACxE,MAAM,UAAU,oBAAoB,CAClC,
|
|
1
|
+
{"version":3,"file":"autopilot-gate.js","sourceRoot":"","sources":["../../src/core/autopilot-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,14 +37,15 @@ export type AutopilotVerdict = {
|
|
|
37
37
|
body: string;
|
|
38
38
|
} | {
|
|
39
39
|
kind: "all_clear";
|
|
40
|
+
evidenceLimitation?: "corpus_unverified";
|
|
40
41
|
} | {
|
|
41
42
|
kind: "ignore";
|
|
42
43
|
} | {
|
|
43
44
|
kind: "human";
|
|
44
45
|
reason: string;
|
|
45
46
|
};
|
|
47
|
+
export declare const CORPUS_UNVERIFIED_REASON = "Not cross-checked against real-world implementations.";
|
|
46
48
|
/**
|
|
47
49
|
* Parse Autopilot Nolan's raw reply into a verdict. Never throws.
|
|
48
50
|
*/
|
|
49
51
|
export declare function parseAutopilotVerdict(reply: string): AutopilotVerdict;
|
|
50
|
-
//# sourceMappingURL=autopilot-verdict.d.ts.map
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
/** Cap on the raw-reply text we echo back as a HUMAN reason when Nolan's output
|
|
36
36
|
* is unrecognized — keeps a garbage/huge reply from bloating the transcript. */
|
|
37
37
|
const RAW_REASON_CAP = 500;
|
|
38
|
+
export const CORPUS_UNVERIFIED_REASON = "Not cross-checked against real-world implementations.";
|
|
38
39
|
const DEFAULT_HUMAN_REASON = "Nolan flagged this for a human but gave no reason.";
|
|
39
40
|
/** Strip a leading/trailing ``` fence (optionally ```prompt) Nolan may have wrapped
|
|
40
41
|
* the prompt body in out of chat habit. */
|
|
@@ -92,6 +93,30 @@ export function parseAutopilotVerdict(reply) {
|
|
|
92
93
|
if (!raw) {
|
|
93
94
|
return { kind: "human", reason: DEFAULT_HUMAN_REASON };
|
|
94
95
|
}
|
|
96
|
+
// Only this explicit evidence limitation can accompany a structured approval.
|
|
97
|
+
// No free-text warning or failed-check exception can become an all-clear.
|
|
98
|
+
const structured = stripPromptFence(raw);
|
|
99
|
+
if (structured.startsWith("{") || structured.startsWith("[") || /^```json(?:\s|$)/i.test(raw)) {
|
|
100
|
+
try {
|
|
101
|
+
if (structured.length > 1024)
|
|
102
|
+
throw new Error("oversized verdict");
|
|
103
|
+
const value = JSON.parse(structured);
|
|
104
|
+
if (value !== null &&
|
|
105
|
+
typeof value === "object" &&
|
|
106
|
+
!Array.isArray(value) &&
|
|
107
|
+
Object.keys(value).length === 2 &&
|
|
108
|
+
"verdict" in value &&
|
|
109
|
+
value.verdict === "ALL_CLEAR" &&
|
|
110
|
+
"evidenceLimitation" in value &&
|
|
111
|
+
value.evidenceLimitation === "corpus_unverified") {
|
|
112
|
+
return { kind: "all_clear", evidenceLimitation: "corpus_unverified" };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// Malformed structured output must not fall through to keyword recovery.
|
|
117
|
+
}
|
|
118
|
+
return { kind: "human", reason: "Nolan's structured verdict was invalid; review it manually." };
|
|
119
|
+
}
|
|
95
120
|
const lines = raw.split("\n");
|
|
96
121
|
// First non-empty line holds the keyword.
|
|
97
122
|
let keywordLineIdx = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autopilot-verdict.js","sourceRoot":"","sources":["../../src/core/autopilot-verdict.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"autopilot-verdict.js","sourceRoot":"","sources":["../../src/core/autopilot-verdict.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,4 +24,3 @@ export declare function chunkByBraces(rel: string, source: string, language: Bra
|
|
|
24
24
|
* (a decorator belongs to its declaration, not to a chunk of its own).
|
|
25
25
|
*/
|
|
26
26
|
export declare function chunkByIndentation(rel: string, source: string): Chunk[];
|
|
27
|
-
//# sourceMappingURL=code-retrieval-chunkers.d.ts.map
|
|
@@ -16,4 +16,3 @@ export declare function tokenize(s: string): string[];
|
|
|
16
16
|
export declare function bm25Rank(query: string, chunks: Chunk[], k: number): Chunk[];
|
|
17
17
|
/** Whole-file baseline: rank files by BM25 over their full text, take top-k. */
|
|
18
18
|
export declare function rankFiles(query: string, files: Map<string, string>, k: number): string[];
|
|
19
|
-
//# sourceMappingURL=code-retrieval.d.ts.map
|
|
@@ -161,6 +161,35 @@ export declare function splitTrackedModifiedFiles(summaryText: string): {
|
|
|
161
161
|
* this round's overflow.
|
|
162
162
|
*/
|
|
163
163
|
export declare function buildModifiedFilesSection(paths: readonly string[], priorOmitted?: number): string;
|
|
164
|
+
/**
|
|
165
|
+
* Upper bound on carried failing-test names. Same reasoning as modified files:
|
|
166
|
+
* the tail is what the agent is still fixing.
|
|
167
|
+
*/
|
|
168
|
+
export declare const MAX_TRACKED_FAILING_TESTS = 20;
|
|
169
|
+
/**
|
|
170
|
+
* Failing and passing test names observed in tool results. Raw observation
|
|
171
|
+
* lists; reversal logic lives in {@link extractFailingTests}.
|
|
172
|
+
*/
|
|
173
|
+
export declare function extractTestSignals(messages: Message[]): {
|
|
174
|
+
failing: string[];
|
|
175
|
+
passed: string[];
|
|
176
|
+
};
|
|
177
|
+
/** Tests still failing at the end of the message range (passes reversed out). */
|
|
178
|
+
export declare function extractFailingTests(messages: Message[]): string[];
|
|
179
|
+
/**
|
|
180
|
+
* Split a previous summary into prose (files AND failing-tests blocks stripped)
|
|
181
|
+
* and its carried failing-test names. Mirrors {@link splitTrackedModifiedFiles}.
|
|
182
|
+
*/
|
|
183
|
+
export declare function splitTrackedFailingTests(summaryText: string): {
|
|
184
|
+
text: string;
|
|
185
|
+
tests: string[];
|
|
186
|
+
omitted: number;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Render the single merged failing-test block appended to a summary. Carried
|
|
190
|
+
* names that a fresh PASS signal reversed are the caller's job to filter.
|
|
191
|
+
*/
|
|
192
|
+
export declare function buildFailingTestsSection(tests: readonly string[], priorOmitted?: number): string;
|
|
164
193
|
/**
|
|
165
194
|
* Convert provenance into explicit summarizer attribution and remove low-value
|
|
166
195
|
* runtime control traffic. Legacy messages remain available for old sessions.
|
|
@@ -211,9 +240,13 @@ export declare function compact(messages: Message[], options: {
|
|
|
211
240
|
targetTokens?: number;
|
|
212
241
|
signal?: AbortSignal;
|
|
213
242
|
approvedPlanPath?: string;
|
|
243
|
+
/** User-stated compaction focus (`/compact <focus>`): a short description
|
|
244
|
+
* of what still matters. When present, the summarizer must preserve
|
|
245
|
+
* everything relevant to it verbatim. Optional — default behaviour is
|
|
246
|
+
* unchanged. */
|
|
247
|
+
focus?: string;
|
|
214
248
|
}): Promise<{
|
|
215
249
|
messages: Message[];
|
|
216
250
|
result: CompactionResult;
|
|
217
251
|
}>;
|
|
218
252
|
export {};
|
|
219
|
-
//# sourceMappingURL=compactor.d.ts.map
|
|
@@ -612,6 +612,145 @@ export function buildModifiedFilesSection(paths, priorOmitted = 0) {
|
|
|
612
612
|
const note = totalOmitted > 0 ? `\n${renderOmittedNote(totalOmitted)}` : "";
|
|
613
613
|
return `\n\n<modified-files>\n${kept.join("\n")}${note}\n</modified-files>`;
|
|
614
614
|
}
|
|
615
|
+
const FAILING_TESTS_BLOCK_RE = /\n*<failing-tests>\n([\s\S]*?)\n<\/failing-tests>/gu;
|
|
616
|
+
/**
|
|
617
|
+
* Upper bound on carried failing-test names. Same reasoning as modified files:
|
|
618
|
+
* the tail is what the agent is still fixing.
|
|
619
|
+
*/
|
|
620
|
+
export const MAX_TRACKED_FAILING_TESTS = 20;
|
|
621
|
+
const FAILING_OMITTED_NOTE_RE = /^\[\.\.\. (\d+) earlier failing tests omitted\]$/u;
|
|
622
|
+
function renderFailingOmittedNote(count) {
|
|
623
|
+
return `[... ${count} earlier failing tests omitted]`;
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Bench G (2026-09-11) showed the summarizer reliably drops failing-test names
|
|
627
|
+
* even though the raw output was in a tool result — the exact loss class a
|
|
628
|
+
* deterministic carry-forward erases at zero model cost. Recognised reporters:
|
|
629
|
+
* jest/vitest (`✕ name (N ms)`, `FAIL path`), pytest (`FAILED id`), and Go test
|
|
630
|
+
* (`--- FAIL: name`). Each family has a matching pass signal so a later green
|
|
631
|
+
* run reverses an earlier red one instead of poisoning every future summary.
|
|
632
|
+
*/
|
|
633
|
+
const TEST_FAIL_LINE_RES = [
|
|
634
|
+
/^\s*[✕×]\s+(.+?)\s*(?:\(\d+(?:\.\d+)?\s*ms\))?$/gm,
|
|
635
|
+
/^FAILED\s+(\S+::\S+)$/gm,
|
|
636
|
+
/^--- FAIL:\s+(\S+)$/gm,
|
|
637
|
+
];
|
|
638
|
+
const TEST_PASS_LINE_RES = [
|
|
639
|
+
/^\s*[✓√+]\s+(.+?)\s*(?:\(\d+(?:\.\d+)?\s*ms\))?$/gm,
|
|
640
|
+
/^PASSED\s+(\S+::\S+)$/gm,
|
|
641
|
+
/^--- PASS:\s+(\S+)$/gm,
|
|
642
|
+
];
|
|
643
|
+
function matchTestLines(text, patterns) {
|
|
644
|
+
const names = [];
|
|
645
|
+
for (const re of patterns) {
|
|
646
|
+
re.lastIndex = 0;
|
|
647
|
+
for (const match of text.matchAll(re)) {
|
|
648
|
+
const name = match[1]?.trim();
|
|
649
|
+
if (name && name.length <= 200)
|
|
650
|
+
names.push(name);
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
return names;
|
|
654
|
+
}
|
|
655
|
+
function collectTestEvents(messages) {
|
|
656
|
+
const events = [];
|
|
657
|
+
for (const message of messages) {
|
|
658
|
+
if (!Array.isArray(message.content))
|
|
659
|
+
continue;
|
|
660
|
+
for (const part of message.content) {
|
|
661
|
+
if (part.type !== "tool_result")
|
|
662
|
+
continue;
|
|
663
|
+
const text = typeof part.content === "string"
|
|
664
|
+
? part.content
|
|
665
|
+
: Array.isArray(part.content)
|
|
666
|
+
? part.content
|
|
667
|
+
.filter((p) => p.type === "text")
|
|
668
|
+
.map((p) => p.text ?? "")
|
|
669
|
+
.join("\n")
|
|
670
|
+
: "";
|
|
671
|
+
if (!text)
|
|
672
|
+
continue;
|
|
673
|
+
for (const name of matchTestLines(text, TEST_FAIL_LINE_RES)) {
|
|
674
|
+
events.push({ fail: true, name });
|
|
675
|
+
}
|
|
676
|
+
for (const name of matchTestLines(text, TEST_PASS_LINE_RES)) {
|
|
677
|
+
events.push({ fail: false, name });
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
return events;
|
|
682
|
+
}
|
|
683
|
+
/**
|
|
684
|
+
* Failing and passing test names observed in tool results. Raw observation
|
|
685
|
+
* lists; reversal logic lives in {@link extractFailingTests}.
|
|
686
|
+
*/
|
|
687
|
+
export function extractTestSignals(messages) {
|
|
688
|
+
const events = collectTestEvents(messages);
|
|
689
|
+
return {
|
|
690
|
+
failing: events.filter((e) => e.fail).map((e) => e.name),
|
|
691
|
+
passed: events.filter((e) => !e.fail).map((e) => e.name),
|
|
692
|
+
};
|
|
693
|
+
}
|
|
694
|
+
/** Tests still failing at the end of the message range (passes reversed out). */
|
|
695
|
+
export function extractFailingTests(messages) {
|
|
696
|
+
const events = collectTestEvents(messages);
|
|
697
|
+
// A name survives only when its LAST event is a failure — a later green run
|
|
698
|
+
// reverses an earlier red one, and a later red run keeps a regression live.
|
|
699
|
+
const lastState = new Map();
|
|
700
|
+
for (const event of events)
|
|
701
|
+
lastState.set(event.name, event.fail);
|
|
702
|
+
const firstFailOrder = [];
|
|
703
|
+
const seen = new Set();
|
|
704
|
+
for (const event of events) {
|
|
705
|
+
if (event.fail && !seen.has(event.name)) {
|
|
706
|
+
seen.add(event.name);
|
|
707
|
+
firstFailOrder.push(event.name);
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
return firstFailOrder.filter((name) => lastState.get(name));
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* Split a previous summary into prose (files AND failing-tests blocks stripped)
|
|
714
|
+
* and its carried failing-test names. Mirrors {@link splitTrackedModifiedFiles}.
|
|
715
|
+
*/
|
|
716
|
+
export function splitTrackedFailingTests(summaryText) {
|
|
717
|
+
const tests = [];
|
|
718
|
+
let omitted = 0;
|
|
719
|
+
const text = summaryText
|
|
720
|
+
.replace(FAILING_TESTS_BLOCK_RE, (_match, body) => {
|
|
721
|
+
for (const line of body.split("\n")) {
|
|
722
|
+
const entry = line.trim();
|
|
723
|
+
if (!entry)
|
|
724
|
+
continue;
|
|
725
|
+
const note = FAILING_OMITTED_NOTE_RE.exec(entry);
|
|
726
|
+
if (note) {
|
|
727
|
+
omitted += Number(note[1]);
|
|
728
|
+
continue;
|
|
729
|
+
}
|
|
730
|
+
tests.push(entry);
|
|
731
|
+
}
|
|
732
|
+
return "";
|
|
733
|
+
})
|
|
734
|
+
.trimEnd();
|
|
735
|
+
return { text, tests, omitted };
|
|
736
|
+
}
|
|
737
|
+
/**
|
|
738
|
+
* Render the single merged failing-test block appended to a summary. Carried
|
|
739
|
+
* names that a fresh PASS signal reversed are the caller's job to filter.
|
|
740
|
+
*/
|
|
741
|
+
export function buildFailingTestsSection(tests, priorOmitted = 0) {
|
|
742
|
+
const unique = [...new Set(tests.map((t) => t.trim()).filter(Boolean))];
|
|
743
|
+
if (unique.length === 0) {
|
|
744
|
+
return priorOmitted > 0
|
|
745
|
+
? `\n\n<failing-tests>\n${renderFailingOmittedNote(priorOmitted)}\n</failing-tests>`
|
|
746
|
+
: "";
|
|
747
|
+
}
|
|
748
|
+
const overflow = Math.max(0, unique.length - MAX_TRACKED_FAILING_TESTS);
|
|
749
|
+
const kept = overflow > 0 ? unique.slice(-MAX_TRACKED_FAILING_TESTS) : unique;
|
|
750
|
+
const totalOmitted = priorOmitted + overflow;
|
|
751
|
+
const note = totalOmitted > 0 ? `\n${renderFailingOmittedNote(totalOmitted)}` : "";
|
|
752
|
+
return `\n\n<failing-tests>\n${kept.join("\n")}${note}\n</failing-tests>`;
|
|
753
|
+
}
|
|
615
754
|
/**
|
|
616
755
|
* Convert provenance into explicit summarizer attribution and remove low-value
|
|
617
756
|
* runtime control traffic. Legacy messages remain available for old sessions.
|
|
@@ -824,7 +963,17 @@ export async function compact(messages, options) {
|
|
|
824
963
|
const carriedSummary = previousSummary
|
|
825
964
|
? splitTrackedModifiedFiles(previousSummary.text)
|
|
826
965
|
: { text: "", files: [], omitted: 0 };
|
|
966
|
+
// Strip the failing-tests block too, so the re-fed previous-summary prose
|
|
967
|
+
// carries neither machine-appended section (they are merged back below).
|
|
968
|
+
const carriedTests = splitTrackedFailingTests(carriedSummary.text);
|
|
969
|
+
carriedSummary.text = carriedTests.text;
|
|
827
970
|
const fileTrackingSection = buildModifiedFilesSection([...carriedSummary.files, ...fileOps.modified], carriedSummary.omitted);
|
|
971
|
+
// Carried failing tests survive unless newer evidence shows them passing.
|
|
972
|
+
const testSignals = extractTestSignals(summarizationSource);
|
|
973
|
+
const failingTestsSection = buildFailingTestsSection([
|
|
974
|
+
...carriedTests.tests.filter((name) => !testSignals.passed.includes(name)),
|
|
975
|
+
...extractFailingTests(summarizationSource),
|
|
976
|
+
], carriedTests.omitted);
|
|
828
977
|
const classifiedMessages = classifyMessagesForSummary(summarizationSource);
|
|
829
978
|
// Budget: summary model context - output tokens - system/user prompt overhead (~1K).
|
|
830
979
|
// Prior compacted memory is pinned separately, never presented as a fresh human turn.
|
|
@@ -868,6 +1017,13 @@ export async function compact(messages, options) {
|
|
|
868
1017
|
`You MUST preserve all references to this plan and its approval status in the summary. ` +
|
|
869
1018
|
`The agent is following this plan for implementation — do not lose this context.`
|
|
870
1019
|
: "";
|
|
1020
|
+
const focusDirective = options.focus
|
|
1021
|
+
? `\n\n### COMPACTION FOCUS\n` +
|
|
1022
|
+
`The user focused this compaction on: ${options.focus}\n` +
|
|
1023
|
+
`Preserve EVERYTHING in the conversation relevant to this focus — constraints, decisions, ` +
|
|
1024
|
+
`facts, and open questions — verbatim where possible. Content relevant to the focus is ` +
|
|
1025
|
+
`never condensed into a passing mention.`
|
|
1026
|
+
: "";
|
|
871
1027
|
const updateInstruction = previousSummaryMessage
|
|
872
1028
|
? "\n\n## Superseding a previous summary\n" +
|
|
873
1029
|
"The anchored <previous-summary> is this conversation's compacted memory so far. Do not treat it " +
|
|
@@ -878,7 +1034,10 @@ export async function compact(messages, options) {
|
|
|
878
1034
|
"the previous summary' section, and never restate a fact in both old and new wording."
|
|
879
1035
|
: "";
|
|
880
1036
|
const summaryMessages = [
|
|
881
|
-
{
|
|
1037
|
+
{
|
|
1038
|
+
role: "system",
|
|
1039
|
+
content: COMPACTION_SYSTEM_PROMPT + planPreservation + focusDirective + updateInstruction,
|
|
1040
|
+
},
|
|
882
1041
|
...(previousSummaryMessage ? [previousSummaryMessage] : []),
|
|
883
1042
|
...selectedMessages,
|
|
884
1043
|
{ role: "user", content: COMPACTION_USER_PROMPT },
|
|
@@ -965,7 +1124,7 @@ export async function compact(messages, options) {
|
|
|
965
1124
|
? `${carriedSummary.text}\n\n## Update since the previous summary\n${fallbackUpdate}`
|
|
966
1125
|
: fallbackUpdate;
|
|
967
1126
|
}
|
|
968
|
-
const summaryPayload = `${summaryText}${fileTrackingSection}`;
|
|
1127
|
+
const summaryPayload = `${summaryText}${fileTrackingSection}${failingTestsSection}`;
|
|
969
1128
|
const makeSummaryMessage = (payload) => ({
|
|
970
1129
|
role: "user",
|
|
971
1130
|
content: `[Previous conversation summary]\n\n${payload}`,
|