@qduc/term2 0.19.0 → 0.21.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/dist/agent.d.ts +9 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +151 -93
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +62 -36
- package/dist/app.js.map +1 -1
- package/dist/cli.js +122 -41
- package/dist/cli.js.map +1 -1
- package/dist/commands/guarded-settings-command.d.ts.map +1 -1
- package/dist/commands/guarded-settings-command.js +33 -5
- package/dist/commands/guarded-settings-command.js.map +1 -1
- package/dist/commands/mode-commands.d.ts +17 -12
- package/dist/commands/mode-commands.d.ts.map +1 -1
- package/dist/commands/mode-commands.js +68 -44
- package/dist/commands/mode-commands.js.map +1 -1
- package/dist/components/input/ApplicationInputSurface.d.ts.map +1 -1
- package/dist/components/input/ApplicationInputSurface.js +4 -0
- package/dist/components/input/ApplicationInputSurface.js.map +1 -1
- package/dist/components/input/MenuSurface.d.ts.map +1 -1
- package/dist/components/input/MenuSurface.js +1 -0
- package/dist/components/input/MenuSurface.js.map +1 -1
- package/dist/components/input/ProfileMenuSession.d.ts +16 -0
- package/dist/components/input/ProfileMenuSession.d.ts.map +1 -0
- package/dist/components/input/ProfileMenuSession.js +64 -0
- package/dist/components/input/ProfileMenuSession.js.map +1 -0
- package/dist/components/input/determine-active-menu.d.ts +3 -0
- package/dist/components/input/determine-active-menu.d.ts.map +1 -1
- package/dist/components/input/determine-active-menu.js +6 -1
- package/dist/components/input/determine-active-menu.js.map +1 -1
- package/dist/components/input/menu-registry.d.ts.map +1 -1
- package/dist/components/input/menu-registry.js +2 -0
- package/dist/components/input/menu-registry.js.map +1 -1
- package/dist/components/input/menu-types.d.ts +4 -0
- package/dist/components/input/menu-types.d.ts.map +1 -1
- package/dist/components/input/triggers.d.ts +1 -0
- package/dist/components/input/triggers.d.ts.map +1 -1
- package/dist/components/input/triggers.js +26 -0
- package/dist/components/input/triggers.js.map +1 -1
- package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/components/layout/BackgroundTaskManager.js +6 -2
- package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.js +16 -8
- package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
- package/dist/components/layout/Banner.d.ts.map +1 -1
- package/dist/components/layout/Banner.js +10 -5
- package/dist/components/layout/Banner.js.map +1 -1
- package/dist/components/layout/BottomArea.d.ts.map +1 -1
- package/dist/components/layout/BottomArea.js +4 -3
- package/dist/components/layout/BottomArea.js.map +1 -1
- package/dist/components/layout/StatusBar.d.ts.map +1 -1
- package/dist/components/layout/StatusBar.js +28 -13
- package/dist/components/layout/StatusBar.js.map +1 -1
- package/dist/components/menu/ProfileSelectionMenu.d.ts +12 -0
- package/dist/components/menu/ProfileSelectionMenu.d.ts.map +1 -0
- package/dist/components/menu/ProfileSelectionMenu.js +48 -0
- package/dist/components/menu/ProfileSelectionMenu.js.map +1 -0
- package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/ResumeSelectionMenu.js +6 -14
- package/dist/components/menu/ResumeSelectionMenu.js.map +1 -1
- package/dist/components/message/ChatMessage.js +1 -1
- package/dist/components/message/ChatMessage.js.map +1 -1
- package/dist/components/message/MessageList.d.ts.map +1 -1
- package/dist/components/message/MessageList.js +32 -16
- package/dist/components/message/MessageList.js.map +1 -1
- package/dist/components/message/command-grouping.d.ts +6 -6
- package/dist/components/message/command-grouping.d.ts.map +1 -1
- package/dist/components/message/command-grouping.js +21 -8
- package/dist/components/message/command-grouping.js.map +1 -1
- package/dist/context/InputContext.d.ts +1 -1
- package/dist/context/InputContext.d.ts.map +1 -1
- package/dist/context/InputContext.js +8 -0
- package/dist/context/InputContext.js.map +1 -1
- package/dist/contracts/session-rollover.d.ts +9 -1
- package/dist/contracts/session-rollover.d.ts.map +1 -1
- package/dist/contracts/streamed-model-turn.d.ts +20 -2
- package/dist/contracts/streamed-model-turn.d.ts.map +1 -1
- package/dist/gateway/gateway.d.ts.map +1 -1
- package/dist/gateway/gateway.js +19 -23
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/launcher-seam.d.ts.map +1 -1
- package/dist/gateway/launcher-seam.js +2 -19
- package/dist/gateway/launcher-seam.js.map +1 -1
- package/dist/gateway/settings-rpc.d.ts +1 -1
- package/dist/gateway/settings-rpc.d.ts.map +1 -1
- package/dist/gateway/settings-rpc.js +2 -0
- package/dist/gateway/settings-rpc.js.map +1 -1
- package/dist/hooks/settings-completion-config.d.ts.map +1 -1
- package/dist/hooks/settings-completion-config.js +25 -3
- package/dist/hooks/settings-completion-config.js.map +1 -1
- package/dist/hooks/use-app-commands.d.ts +3 -1
- package/dist/hooks/use-app-commands.d.ts.map +1 -1
- package/dist/hooks/use-app-commands.js +21 -14
- package/dist/hooks/use-app-commands.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +2 -2
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +1 -1
- package/dist/hooks/use-conversation.js.map +1 -1
- package/dist/hooks/use-handoff-flow.d.ts +1 -0
- package/dist/hooks/use-handoff-flow.d.ts.map +1 -1
- package/dist/hooks/use-handoff-flow.js +19 -12
- package/dist/hooks/use-handoff-flow.js.map +1 -1
- package/dist/hooks/use-profile-selection.d.ts +34 -0
- package/dist/hooks/use-profile-selection.d.ts.map +1 -0
- package/dist/hooks/use-profile-selection.js +103 -0
- package/dist/hooks/use-profile-selection.js.map +1 -0
- package/dist/hooks/use-resume-selection.d.ts +2 -0
- package/dist/hooks/use-resume-selection.d.ts.map +1 -1
- package/dist/hooks/use-resume-selection.js +11 -9
- package/dist/hooks/use-resume-selection.js.map +1 -1
- package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-value-completion.js +16 -0
- package/dist/hooks/use-settings-value-completion.js.map +1 -1
- package/dist/hooks/use-skill-selection.d.ts +5 -3
- package/dist/hooks/use-skill-selection.d.ts.map +1 -1
- package/dist/hooks/use-skill-selection.js +8 -6
- package/dist/hooks/use-skill-selection.js.map +1 -1
- package/dist/lib/agent-client.d.ts +18 -0
- package/dist/lib/agent-client.d.ts.map +1 -1
- package/dist/lib/agent-client.js +69 -14
- package/dist/lib/agent-client.js.map +1 -1
- package/dist/lib/agent-configuration.d.ts +8 -0
- package/dist/lib/agent-configuration.d.ts.map +1 -1
- package/dist/lib/agent-configuration.js +7 -4
- package/dist/lib/agent-configuration.js.map +1 -1
- package/dist/lib/agent-factory.d.ts +8 -0
- package/dist/lib/agent-factory.d.ts.map +1 -1
- package/dist/lib/agent-factory.js +65 -41
- package/dist/lib/agent-factory.js.map +1 -1
- package/dist/lib/harness-input-idle.d.ts +10 -0
- package/dist/lib/harness-input-idle.d.ts.map +1 -1
- package/dist/lib/harness-input-idle.js +47 -5
- package/dist/lib/harness-input-idle.js.map +1 -1
- package/dist/non-interactive.d.ts.map +1 -1
- package/dist/non-interactive.js +6 -6
- package/dist/non-interactive.js.map +1 -1
- package/dist/prompts/memory.md +1 -1
- package/dist/prompts/prefix-quality.test.ts +8 -5
- package/dist/prompts/prompt-constructor.d.ts +5 -6
- package/dist/prompts/prompt-constructor.d.ts.map +1 -1
- package/dist/prompts/prompt-constructor.js +15 -7
- package/dist/prompts/prompt-constructor.js.map +1 -1
- package/dist/prompts/prompt-constructor.test.ts +73 -48
- package/dist/prompts/prompt-constructor.ts +21 -13
- package/dist/prompts/session-browser.md +2 -0
- package/dist/prompts/shell-auto-approval.d.ts +2 -2
- package/dist/prompts/shell-auto-approval.d.ts.map +1 -1
- package/dist/prompts/shell-auto-approval.js +19 -16
- package/dist/prompts/shell-auto-approval.js.map +1 -1
- package/dist/prompts/shell-auto-approval.ts +19 -16
- package/dist/providers/aborted-stream-recorder.js +2 -1
- package/dist/providers/aborted-stream-recorder.js.map +1 -1
- package/dist/providers/ai-sdk-streamed-model.d.ts.map +1 -1
- package/dist/providers/ai-sdk-streamed-model.js +7 -0
- package/dist/providers/ai-sdk-streamed-model.js.map +1 -1
- package/dist/providers/codex-responses-model.d.ts.map +1 -1
- package/dist/providers/codex-responses-model.js +75 -14
- package/dist/providers/codex-responses-model.js.map +1 -1
- package/dist/providers/codex-turn-converter.d.ts.map +1 -1
- package/dist/providers/codex-turn-converter.js +21 -4
- package/dist/providers/codex-turn-converter.js.map +1 -1
- package/dist/providers/codex.provider.d.ts.map +1 -1
- package/dist/providers/codex.provider.js +1 -0
- package/dist/providers/codex.provider.js.map +1 -1
- package/dist/providers/fetch/logging-middleware.d.ts.map +1 -1
- package/dist/providers/fetch/logging-middleware.js +22 -2
- package/dist/providers/fetch/logging-middleware.js.map +1 -1
- package/dist/providers/openai-chat-completions-model.js +119 -50
- package/dist/providers/openai-chat-completions-model.js.map +1 -1
- package/dist/providers/openai-responses-model.d.ts.map +1 -1
- package/dist/providers/openai-responses-model.js +131 -15
- package/dist/providers/openai-responses-model.js.map +1 -1
- package/dist/providers/registry.d.ts +1 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/retrying-model.d.ts.map +1 -1
- package/dist/providers/retrying-model.js +11 -2
- package/dist/providers/retrying-model.js.map +1 -1
- package/dist/services/agent-runtime/application-run-loop.d.ts +3 -1
- package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
- package/dist/services/agent-runtime/application-run-loop.js +99 -19
- package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
- package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.d.ts +2 -3
- package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.d.ts.map +1 -1
- package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js +18 -9
- package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js.map +1 -1
- package/dist/services/agent-runtime/generation-guard.d.ts +25 -1
- package/dist/services/agent-runtime/generation-guard.d.ts.map +1 -1
- package/dist/services/agent-runtime/generation-guard.js +105 -1
- package/dist/services/agent-runtime/generation-guard.js.map +1 -1
- package/dist/services/agent-stream.d.ts +2 -0
- package/dist/services/agent-stream.d.ts.map +1 -1
- package/dist/services/agent-stream.js.map +1 -1
- package/dist/services/approval/approval-decision-policy.js +2 -2
- package/dist/services/approval/approval-decision-policy.js.map +1 -1
- package/dist/services/approval/shell-auto-approval-evaluator.d.ts +5 -1
- package/dist/services/approval/shell-auto-approval-evaluator.d.ts.map +1 -1
- package/dist/services/approval/shell-auto-approval-evaluator.js +42 -18
- package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
- package/dist/services/approval/shell-auto-approval-resolver.d.ts +5 -0
- package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
- package/dist/services/approval/shell-auto-approval-resolver.js +117 -20
- package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
- package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
- package/dist/services/approval/tool-approval-batch-coordinator.js +20 -3
- package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
- package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
- package/dist/services/conversation/conversation-adapter.js +2 -9
- package/dist/services/conversation/conversation-adapter.js.map +1 -1
- package/dist/services/conversation/conversation-decoder.d.ts.map +1 -1
- package/dist/services/conversation/conversation-decoder.js +6 -2
- package/dist/services/conversation/conversation-decoder.js.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.js +22 -2
- package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
- package/dist/services/conversation/conversation-persistence.d.ts +30 -0
- package/dist/services/conversation/conversation-persistence.d.ts.map +1 -1
- package/dist/services/conversation/conversation-persistence.js +101 -7
- package/dist/services/conversation/conversation-persistence.js.map +1 -1
- package/dist/services/conversation/conversation-replay.d.ts +2 -0
- package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
- package/dist/services/conversation/conversation-replay.js +71 -57
- package/dist/services/conversation/conversation-replay.js.map +1 -1
- package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
- package/dist/services/conversation/conversation-result-builder.js +21 -4
- package/dist/services/conversation/conversation-result-builder.js.map +1 -1
- package/dist/services/conversation/conversation-service.d.ts +3 -2
- package/dist/services/conversation/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation/conversation-service.js +36 -15
- package/dist/services/conversation/conversation-service.js.map +1 -1
- package/dist/services/conversation/session-browser.d.ts +8 -1
- package/dist/services/conversation/session-browser.d.ts.map +1 -1
- package/dist/services/conversation/session-browser.js +134 -16
- package/dist/services/conversation/session-browser.js.map +1 -1
- package/dist/services/handoff/handoff-session.d.ts +2 -0
- package/dist/services/handoff/handoff-session.d.ts.map +1 -1
- package/dist/services/handoff/handoff-session.js +19 -3
- package/dist/services/handoff/handoff-session.js.map +1 -1
- package/dist/services/logging/conversation-log-events.d.ts +30 -3
- package/dist/services/logging/conversation-log-events.d.ts.map +1 -1
- package/dist/services/logging/conversation-log-events.js +1 -4
- package/dist/services/logging/conversation-log-events.js.map +1 -1
- package/dist/services/logging/logging-service.d.ts +1 -0
- package/dist/services/logging/logging-service.d.ts.map +1 -1
- package/dist/services/logging/logging-service.js +5 -2
- package/dist/services/logging/logging-service.js.map +1 -1
- package/dist/services/logging/provider-traffic.d.ts +8 -1
- package/dist/services/logging/provider-traffic.d.ts.map +1 -1
- package/dist/services/logging/provider-traffic.js +105 -10
- package/dist/services/logging/provider-traffic.js.map +1 -1
- package/dist/services/memory/memory-capabilities.d.ts.map +1 -1
- package/dist/services/memory/memory-capabilities.js +17 -5
- package/dist/services/memory/memory-capabilities.js.map +1 -1
- package/dist/services/memory/memory-store.d.ts +17 -0
- package/dist/services/memory/memory-store.d.ts.map +1 -1
- package/dist/services/memory/memory-store.js +74 -27
- package/dist/services/memory/memory-store.js.map +1 -1
- package/dist/services/mode-notices.d.ts +12 -9
- package/dist/services/mode-notices.d.ts.map +1 -1
- package/dist/services/mode-notices.js +83 -54
- package/dist/services/mode-notices.js.map +1 -1
- package/dist/services/model-service.d.ts +22 -4
- package/dist/services/model-service.d.ts.map +1 -1
- package/dist/services/model-service.js +148 -1
- package/dist/services/model-service.js.map +1 -1
- package/dist/services/models/model-catalog-session.d.ts +6 -0
- package/dist/services/models/model-catalog-session.d.ts.map +1 -1
- package/dist/services/models/model-catalog-session.js +7 -3
- package/dist/services/models/model-catalog-session.js.map +1 -1
- package/dist/services/models/model-listing.d.ts +57 -0
- package/dist/services/models/model-listing.d.ts.map +1 -0
- package/dist/services/models/model-listing.js +96 -0
- package/dist/services/models/model-listing.js.map +1 -0
- package/dist/services/models/model-resolution.d.ts +88 -0
- package/dist/services/models/model-resolution.d.ts.map +1 -0
- package/dist/services/models/model-resolution.js +292 -0
- package/dist/services/models/model-resolution.js.map +1 -0
- package/dist/services/plan-mode-interceptor.d.ts.map +1 -1
- package/dist/services/plan-mode-interceptor.js +5 -6
- package/dist/services/plan-mode-interceptor.js.map +1 -1
- package/dist/services/profiles/active-profile.d.ts +5 -0
- package/dist/services/profiles/active-profile.d.ts.map +1 -0
- package/dist/services/profiles/active-profile.js +33 -0
- package/dist/services/profiles/active-profile.js.map +1 -0
- package/dist/services/profiles/index.d.ts +9 -0
- package/dist/services/profiles/index.d.ts.map +1 -0
- package/dist/services/profiles/index.js +9 -0
- package/dist/services/profiles/index.js.map +1 -0
- package/dist/services/profiles/labels.d.ts +7 -0
- package/dist/services/profiles/labels.d.ts.map +1 -0
- package/dist/services/profiles/labels.js +22 -0
- package/dist/services/profiles/labels.js.map +1 -0
- package/dist/services/profiles/legacy-adapter.d.ts +28 -0
- package/dist/services/profiles/legacy-adapter.d.ts.map +1 -0
- package/dist/services/profiles/legacy-adapter.js +69 -0
- package/dist/services/profiles/legacy-adapter.js.map +1 -0
- package/dist/services/profiles/profile-transition.d.ts +48 -0
- package/dist/services/profiles/profile-transition.d.ts.map +1 -0
- package/dist/services/profiles/profile-transition.js +109 -0
- package/dist/services/profiles/profile-transition.js.map +1 -0
- package/dist/services/profiles/registry.d.ts +17 -0
- package/dist/services/profiles/registry.d.ts.map +1 -0
- package/dist/services/profiles/registry.js +147 -0
- package/dist/services/profiles/registry.js.map +1 -0
- package/dist/services/profiles/resolver.d.ts +10 -0
- package/dist/services/profiles/resolver.d.ts.map +1 -0
- package/dist/services/profiles/resolver.js +573 -0
- package/dist/services/profiles/resolver.js.map +1 -0
- package/dist/services/profiles/schema.d.ts +960 -0
- package/dist/services/profiles/schema.d.ts.map +1 -0
- package/dist/services/profiles/schema.js +196 -0
- package/dist/services/profiles/schema.js.map +1 -0
- package/dist/services/profiles/types.d.ts +224 -0
- package/dist/services/profiles/types.d.ts.map +1 -0
- package/dist/services/profiles/types.js +9 -0
- package/dist/services/profiles/types.js.map +1 -0
- package/dist/services/retry/committed-tool-continuation.d.ts +5 -0
- package/dist/services/retry/committed-tool-continuation.d.ts.map +1 -1
- package/dist/services/retry/committed-tool-continuation.js +6 -3
- package/dist/services/retry/committed-tool-continuation.js.map +1 -1
- package/dist/services/retry/retry-classifier.d.ts.map +1 -1
- package/dist/services/retry/retry-classifier.js +13 -10
- package/dist/services/retry/retry-classifier.js.map +1 -1
- package/dist/services/retry/retry-error-classification.d.ts +7 -0
- package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
- package/dist/services/retry/retry-error-classification.js +32 -9
- package/dist/services/retry/retry-error-classification.js.map +1 -1
- package/dist/services/runtime-setting-router.d.ts.map +1 -1
- package/dist/services/runtime-setting-router.js +76 -23
- package/dist/services/runtime-setting-router.js.map +1 -1
- package/dist/services/session/background-check-in-scheduler.d.ts +20 -4
- package/dist/services/session/background-check-in-scheduler.d.ts.map +1 -1
- package/dist/services/session/background-check-in-scheduler.js +73 -6
- package/dist/services/session/background-check-in-scheduler.js.map +1 -1
- package/dist/services/session/initial-turn-recovery-handler.js +4 -4
- package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
- package/dist/services/session/session-composition.d.ts.map +1 -1
- package/dist/services/session/session-composition.js +2 -1
- package/dist/services/session/session-composition.js.map +1 -1
- package/dist/services/session/session-input-planner.d.ts.map +1 -1
- package/dist/services/session/session-input-planner.js +2 -9
- package/dist/services/session/session-input-planner.js.map +1 -1
- package/dist/services/session/session-manager.d.ts.map +1 -1
- package/dist/services/session/session-manager.js +4 -1
- package/dist/services/session/session-manager.js.map +1 -1
- package/dist/services/session-rollover/session-rollover-brief.d.ts +2 -1
- package/dist/services/session-rollover/session-rollover-brief.d.ts.map +1 -1
- package/dist/services/session-rollover/session-rollover-brief.js +5 -3
- package/dist/services/session-rollover/session-rollover-brief.js.map +1 -1
- package/dist/services/settings/settings-persistence.js +1 -1
- package/dist/services/settings/settings-persistence.js.map +1 -1
- package/dist/services/settings/settings-schema.d.ts +124 -19
- package/dist/services/settings/settings-schema.d.ts.map +1 -1
- package/dist/services/settings/settings-schema.js +111 -31
- package/dist/services/settings/settings-schema.js.map +1 -1
- package/dist/services/settings/settings-service.d.ts +3 -1
- package/dist/services/settings/settings-service.d.ts.map +1 -1
- package/dist/services/settings/settings-service.js +88 -91
- package/dist/services/settings/settings-service.js.map +1 -1
- package/dist/services/settings/settings-sources.d.ts.map +1 -1
- package/dist/services/settings/settings-sources.js +13 -1
- package/dist/services/settings/settings-sources.js.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +3 -3
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js +15 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
- package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
- package/dist/services/subagents/mentor-runner.js +5 -2
- package/dist/services/subagents/mentor-runner.js.map +1 -1
- package/dist/services/subagents/subagent-notification-store.d.ts +10 -2
- package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
- package/dist/services/subagents/subagent-notification-store.js +10 -5
- package/dist/services/subagents/subagent-notification-store.js.map +1 -1
- package/dist/services/subagents/tool-policy.d.ts.map +1 -1
- package/dist/services/subagents/tool-policy.js +10 -15
- package/dist/services/subagents/tool-policy.js.map +1 -1
- package/dist/services/tool-toggles.d.ts +20 -0
- package/dist/services/tool-toggles.d.ts.map +1 -0
- package/dist/services/tool-toggles.js +115 -0
- package/dist/services/tool-toggles.js.map +1 -0
- package/dist/slash-commands.d.ts +3 -0
- package/dist/slash-commands.d.ts.map +1 -1
- package/dist/slash-commands.js.map +1 -1
- package/dist/tools/agent/configure-task-check-in.d.ts +19 -0
- package/dist/tools/agent/configure-task-check-in.d.ts.map +1 -0
- package/dist/tools/agent/configure-task-check-in.js +82 -0
- package/dist/tools/agent/configure-task-check-in.js.map +1 -0
- package/dist/tools/agent/run-subagent-async.d.ts +11 -1
- package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
- package/dist/tools/agent/run-subagent-async.js +22 -1
- package/dist/tools/agent/run-subagent-async.js.map +1 -1
- package/dist/tools/agent/run-subagent.d.ts +15 -0
- package/dist/tools/agent/run-subagent.d.ts.map +1 -1
- package/dist/tools/agent/run-subagent.js +24 -2
- package/dist/tools/agent/run-subagent.js.map +1 -1
- package/dist/tools/file/apply-patch.d.ts +2 -15
- package/dist/tools/file/apply-patch.d.ts.map +1 -1
- package/dist/tools/file/apply-patch.js +163 -98
- package/dist/tools/file/apply-patch.js.map +1 -1
- package/dist/tools/file/read-file.d.ts.map +1 -1
- package/dist/tools/file/read-file.js +48 -0
- package/dist/tools/file/read-file.js.map +1 -1
- package/dist/tools/file/upstream-apply-patch.d.ts +31 -0
- package/dist/tools/file/upstream-apply-patch.d.ts.map +1 -0
- package/dist/tools/file/upstream-apply-patch.js +123 -0
- package/dist/tools/file/upstream-apply-patch.js.map +1 -0
- package/dist/tools/format-helpers.d.ts +2 -0
- package/dist/tools/format-helpers.d.ts.map +1 -1
- package/dist/tools/format-helpers.js +7 -0
- package/dist/tools/format-helpers.js.map +1 -1
- package/dist/tools/memory/memory-tools.js +1 -1
- package/dist/tools/memory/memory-tools.js.map +1 -1
- package/dist/tools/session-browser/session-browser-tools.d.ts.map +1 -1
- package/dist/tools/session-browser/session-browser-tools.js +11 -1
- package/dist/tools/session-browser/session-browser-tools.js.map +1 -1
- package/dist/tools/session-rollover/session-rollover-tool.d.ts.map +1 -1
- package/dist/tools/session-rollover/session-rollover-tool.js +10 -1
- package/dist/tools/session-rollover/session-rollover-tool.js.map +1 -1
- package/dist/tools/system/shell.d.ts +12 -0
- package/dist/tools/system/shell.d.ts.map +1 -1
- package/dist/tools/system/shell.js +30 -4
- package/dist/tools/system/shell.js.map +1 -1
- package/dist/tools/types.d.ts +15 -2
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/utils/ai/token-usage.d.ts +9 -0
- package/dist/utils/ai/token-usage.d.ts.map +1 -1
- package/dist/utils/ai/token-usage.js +15 -3
- package/dist/utils/ai/token-usage.js.map +1 -1
- package/dist/utils/conversation/conversation-utils.d.ts.map +1 -1
- package/dist/utils/conversation/conversation-utils.js +40 -1
- package/dist/utils/conversation/conversation-utils.js.map +1 -1
- package/dist/utils/conversation/message-buffer.d.ts +16 -0
- package/dist/utils/conversation/message-buffer.d.ts.map +1 -1
- package/dist/utils/conversation/message-buffer.js +33 -0
- package/dist/utils/conversation/message-buffer.js.map +1 -1
- package/dist/utils/output/trim-tool-output.d.ts +1 -1
- package/dist/utils/output/trim-tool-output.d.ts.map +1 -1
- package/dist/utils/output/trim-tool-output.js +20 -0
- package/dist/utils/output/trim-tool-output.js.map +1 -1
- package/dist/utils/resume-list.d.ts +2 -0
- package/dist/utils/resume-list.d.ts.map +1 -1
- package/dist/utils/resume-list.js +7 -14
- package/dist/utils/resume-list.js.map +1 -1
- package/dist/utils/settings-command.d.ts.map +1 -1
- package/dist/utils/settings-command.js +95 -14
- package/dist/utils/settings-command.js.map +1 -1
- package/dist/utils/streaming/streaming-session-factory.d.ts +3 -0
- package/dist/utils/streaming/streaming-session-factory.d.ts.map +1 -1
- package/dist/utils/streaming/streaming-session-factory.js +35 -17
- package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
- package/dist/utils/streaming/streaming-speed-tracker.d.ts +47 -6
- package/dist/utils/streaming/streaming-speed-tracker.d.ts.map +1 -1
- package/dist/utils/streaming/streaming-speed-tracker.js +91 -23
- package/dist/utils/streaming/streaming-speed-tracker.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { readFile, writeFile, mkdir } from 'fs/promises';
|
|
2
|
+
import { readFile, writeFile, mkdir, unlink } from 'fs/promises';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { applyDiff } from '../../utils/apply-diff.js';
|
|
5
5
|
import { isProtectedHookPath, isWorkspacePathPhysicallyInside, resolveWorkspacePath } from '../utils.js';
|
|
@@ -10,6 +10,7 @@ import { TOOL_NAME_APPLY_PATCH } from '../tool-names.js';
|
|
|
10
10
|
import { boundToolResultText, truncateToUtf8Bytes } from '../../utils/output/bound-tool-result.js';
|
|
11
11
|
import { healPatchOperation } from './patch-healing.js';
|
|
12
12
|
import { resolveAncillaryModelTier } from '../../services/agent-runtime/model-resolver.js';
|
|
13
|
+
import { parseUpstreamApplyPatch } from './upstream-apply-patch.js';
|
|
13
14
|
/**
|
|
14
15
|
* Error thrown when patch validation fails (malformed diff)
|
|
15
16
|
*/
|
|
@@ -21,52 +22,27 @@ export class PatchValidationError extends Error {
|
|
|
21
22
|
this.name = 'PatchValidationError';
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
});
|
|
25
|
+
// Canonical-only schema: the patch envelope IS the argument. The legacy
|
|
26
|
+
// {type,path,diff} / operations[] JSON shape is deleted, not deprecated —
|
|
27
|
+
// keeping two accepted formats lets the model drift back into the shape
|
|
28
|
+
// suspected of causing whitespace degeneration.
|
|
29
29
|
const applyPatchParametersSchema = z
|
|
30
30
|
.object({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
patch: z
|
|
32
|
+
.string()
|
|
33
|
+
.min(1, 'Patch cannot be empty')
|
|
34
|
+
.describe('Complete patch script starting with *** Begin Patch and ending with *** End Patch.'),
|
|
35
35
|
})
|
|
36
|
-
.
|
|
37
|
-
|
|
38
|
-
const hasSingle = params.type !== undefined || params.path !== undefined || params.diff !== undefined;
|
|
39
|
-
if (hasBatch && hasSingle) {
|
|
40
|
-
ctx.addIssue({
|
|
41
|
-
code: z.ZodIssueCode.custom,
|
|
42
|
-
message: 'Provide either operations or a single type/path/diff operation, not both.',
|
|
43
|
-
});
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (!hasBatch && (params.type === undefined || params.path === undefined || params.diff === undefined)) {
|
|
47
|
-
ctx.addIssue({
|
|
48
|
-
code: z.ZodIssueCode.custom,
|
|
49
|
-
message: 'Provide operations or all single operation fields: type, path, and diff.',
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
// Strict tool-schema providers cannot represent the legacy single-operation
|
|
54
|
-
// form's mutual exclusion with `operations`. Advertise one unambiguous shape
|
|
55
|
-
// while retaining the legacy parser for existing runtime callers.
|
|
36
|
+
.strict();
|
|
37
|
+
// Strict-schema providers receive the identical single-string shape.
|
|
56
38
|
const applyPatchStrictParametersSchema = z.object({
|
|
57
|
-
|
|
39
|
+
patch: z
|
|
40
|
+
.string()
|
|
41
|
+
.min(1, 'Patch cannot be empty')
|
|
42
|
+
.describe('Complete patch script starting with *** Begin Patch and ending with *** End Patch.'),
|
|
58
43
|
});
|
|
59
44
|
function getApplyPatchOperations(params) {
|
|
60
|
-
|
|
61
|
-
return params.operations;
|
|
62
|
-
}
|
|
63
|
-
return [
|
|
64
|
-
{
|
|
65
|
-
type: params.type,
|
|
66
|
-
path: params.path,
|
|
67
|
-
diff: params.diff,
|
|
68
|
-
},
|
|
69
|
-
];
|
|
45
|
+
return parseUpstreamApplyPatch(params.patch).operations;
|
|
70
46
|
}
|
|
71
47
|
export const formatApplyPatchCommandMessage = (item, index, toolCallArgumentsById) => {
|
|
72
48
|
const rawItem = item?.providerItem ?? item?.rawItem ?? item;
|
|
@@ -81,7 +57,19 @@ export const formatApplyPatchCommandMessage = (item, index, toolCallArgumentsByI
|
|
|
81
57
|
item?.toolCallId ??
|
|
82
58
|
item?.id;
|
|
83
59
|
const argsFromMap = callId ? toolCallArgumentsById.get(callId) : undefined;
|
|
84
|
-
const
|
|
60
|
+
const rawArguments = item?.arguments ?? item?.input ?? argsFromMap ?? rawItem?.arguments ?? rawItem?.input ?? rawItem?.operation;
|
|
61
|
+
let normalizedArgs = normalizeToolArguments(rawArguments) ?? {};
|
|
62
|
+
// Canonical-only arguments: a raw envelope string parses to parsed
|
|
63
|
+
// operations; the legacy {type,path,diff} / operations[] object shape is
|
|
64
|
+
// no longer accepted, only displayed from inert history records.
|
|
65
|
+
if (typeof rawArguments === 'string' && rawArguments.trimStart().startsWith('*** Begin Patch')) {
|
|
66
|
+
try {
|
|
67
|
+
normalizedArgs = parseUpstreamApplyPatch(rawArguments);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
normalizedArgs = {};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
85
73
|
const isNativePatchResult = rawItem?.type === 'apply_patch_call_output' || item?.type === 'apply_patch_call_output';
|
|
86
74
|
const rawStatus = rawItem?.status ?? item?.status;
|
|
87
75
|
const operations = Array.isArray(normalizedArgs?.operations)
|
|
@@ -132,49 +120,69 @@ export const formatApplyPatchCommandMessage = (item, index, toolCallArgumentsByI
|
|
|
132
120
|
}),
|
|
133
121
|
];
|
|
134
122
|
};
|
|
135
|
-
const APPLY_PATCH_DESCRIPTION = 'Apply file changes
|
|
136
|
-
'
|
|
137
|
-
'
|
|
138
|
-
'
|
|
139
|
-
'
|
|
140
|
-
'
|
|
141
|
-
'
|
|
142
|
-
'
|
|
143
|
-
'##
|
|
144
|
-
'Every line
|
|
123
|
+
const APPLY_PATCH_DESCRIPTION = 'Apply file changes with a patch script. Write the patch directly — no JSON escaping of the body.\n\n' +
|
|
124
|
+
'```\n' +
|
|
125
|
+
'*** Begin Patch\n' +
|
|
126
|
+
'*** Add File: <path> — create a file; every following line is a + line\n' +
|
|
127
|
+
'*** Update File: <path> — edit a file (add *** Move to: <new-path> directly after to move)\n' +
|
|
128
|
+
'*** Delete File: <path> — delete a file\n' +
|
|
129
|
+
'*** End Patch\n' +
|
|
130
|
+
'```\n\n' +
|
|
131
|
+
'## Rules:\n' +
|
|
132
|
+
'1. Every line starts with exactly one of: space (unchanged context), + (added), - (removed)\n' +
|
|
133
|
+
'2. Prefix every new line with + — including when creating a new file, where EVERY line is a + line\n' +
|
|
134
|
+
'3. Use paths relative to the workspace root, never absolute paths\n' +
|
|
135
|
+
'4. Context lines start with a SPACE character; match the file indentation exactly\n' +
|
|
136
|
+
'5. Use @@ markers (e.g. @@ function calculate) to anchor where the change applies\n' +
|
|
137
|
+
'6. Include 2-3 context lines before and after each change\n\n' +
|
|
138
|
+
'## Grammar:\n' +
|
|
145
139
|
'```\n' +
|
|
140
|
+
'Patch := Begin { FileOp } End\n' +
|
|
141
|
+
'Begin := "*** Begin Patch" NEWLINE\n' +
|
|
142
|
+
'End := "*** End Patch" NEWLINE\n' +
|
|
143
|
+
'FileOp := AddFile | DeleteFile | UpdateFile\n' +
|
|
144
|
+
'AddFile := "*** Add File: " path NEWLINE { "+" line NEWLINE }\n' +
|
|
145
|
+
'DeleteFile := "*** Delete File: " path NEWLINE\n' +
|
|
146
|
+
'UpdateFile := "*** Update File: " path NEWLINE [ MoveTo ] { Hunk }\n' +
|
|
147
|
+
'MoveTo := "*** Move to: " newPath NEWLINE\n' +
|
|
148
|
+
'Hunk := "@@" [ header ] NEWLINE { HunkLine }\n' +
|
|
149
|
+
'HunkLine := (" " | "-" | "+") text NEWLINE\n' +
|
|
150
|
+
'```\n\n' +
|
|
151
|
+
'## Examples:\n' +
|
|
152
|
+
'Create:\n' +
|
|
153
|
+
'```\n' +
|
|
154
|
+
'*** Begin Patch\n' +
|
|
155
|
+
'*** Add File: notes.txt\n' +
|
|
146
156
|
'+line 1\n' +
|
|
147
157
|
'+line 2\n' +
|
|
148
|
-
'
|
|
149
|
-
'```\n\n' +
|
|
150
|
-
'## UPDATE_FILE:\n' +
|
|
151
|
-
'Provide context (space-prefixed lines) around changes. Include 2-3 lines of context before and after:\n' +
|
|
158
|
+
'*** End Patch\n' +
|
|
152
159
|
'```\n' +
|
|
160
|
+
'Update:\n' +
|
|
161
|
+
'```\n' +
|
|
162
|
+
'*** Begin Patch\n' +
|
|
163
|
+
'*** Update File: calc.js\n' +
|
|
153
164
|
'@@ function calculate\n' +
|
|
154
165
|
' function calculate(x) {\n' +
|
|
155
166
|
'- return x * 2;\n' +
|
|
156
167
|
'+ return x * 3;\n' +
|
|
157
168
|
' }\n' +
|
|
169
|
+
'*** End Patch\n' +
|
|
158
170
|
'```\n\n' +
|
|
159
|
-
'
|
|
160
|
-
'Use @@ markers to help locate code in the file:\n' +
|
|
161
|
-
'- For classes: @@ class ClassName\n' +
|
|
162
|
-
'- For functions: @@ function functionName\n' +
|
|
163
|
-
'- For unique lines: @@ distinctive text from the line\n' +
|
|
164
|
-
'Stack multiple @@ for nested structures:\n' +
|
|
171
|
+
'Combined (add + update-with-move + delete between one Begin/End pair):\n' +
|
|
165
172
|
'```\n' +
|
|
166
|
-
'
|
|
167
|
-
'
|
|
168
|
-
'
|
|
169
|
-
'
|
|
170
|
-
'
|
|
173
|
+
'*** Begin Patch\n' +
|
|
174
|
+
'*** Add File: hello.txt\n' +
|
|
175
|
+
'+Hello world\n' +
|
|
176
|
+
'*** Update File: src/app.py\n' +
|
|
177
|
+
'*** Move to: src/main.py\n' +
|
|
178
|
+
'@@ def greet():\n' +
|
|
179
|
+
'-print("Hi")\n' +
|
|
180
|
+
'+print("Hello, world!")\n' +
|
|
181
|
+
'*** Delete File: obsolete.txt\n' +
|
|
182
|
+
'*** End Patch\n' +
|
|
171
183
|
'```\n\n' +
|
|
172
|
-
'
|
|
173
|
-
'
|
|
174
|
-
'- Including line numbers like "@@ -1,3 +1,4 @@"\n' +
|
|
175
|
-
'- Not providing enough context (need 2-3 lines before/after)\n' +
|
|
176
|
-
'- Context lines not starting with space character\n' +
|
|
177
|
-
'- Using tabs instead of spaces for indentation matching\n\n' +
|
|
184
|
+
'On failure, earlier operations in the same patch may already be applied — check the per-operation result lines and re-read files before retrying.\n' +
|
|
185
|
+
'Put the whole script in the single patch argument.\n' +
|
|
178
186
|
'Returns a plain-text summary with one line per operation: Created <path>, Updated <path>, or Error: <reason>.';
|
|
179
187
|
export function createApplyPatchToolDefinition(deps) {
|
|
180
188
|
const { loggingService, settingsService, executionContext, sessionAccess, patchHealing = healPatchOperation } = deps;
|
|
@@ -191,11 +199,19 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
191
199
|
});
|
|
192
200
|
return false;
|
|
193
201
|
}
|
|
202
|
+
let operations;
|
|
203
|
+
try {
|
|
204
|
+
operations = getApplyPatchOperations(params);
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
// Envelope parse failures cannot be path-scoped, so require
|
|
208
|
+
// approval and let execute report the syntax error.
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
194
211
|
try {
|
|
195
212
|
const workspaceRoot = executionContext?.getCwd() || process.cwd();
|
|
196
213
|
const sshService = executionContext?.getSSHService();
|
|
197
214
|
const isRemote = executionContext?.isRemote() && !!sshService;
|
|
198
|
-
const operations = getApplyPatchOperations(params);
|
|
199
215
|
const resolvedOperations = [];
|
|
200
216
|
// Resolve and check every target before validation. In particular, do
|
|
201
217
|
// not read an update target until all batch paths have passed the
|
|
@@ -233,11 +249,32 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
233
249
|
return true;
|
|
234
250
|
}
|
|
235
251
|
}
|
|
236
|
-
|
|
252
|
+
let moveTargetPath;
|
|
253
|
+
if (operation.moveTo) {
|
|
254
|
+
try {
|
|
255
|
+
moveTargetPath = resolveWorkspacePath(operation.moveTo, workspaceRoot);
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
return true;
|
|
259
|
+
}
|
|
260
|
+
if (!sessionAccess?.allowsEdit(moveTargetPath, workspaceRoot)) {
|
|
261
|
+
const moveTargetInside = moveTargetPath.startsWith(workspaceRoot + path.sep) ||
|
|
262
|
+
moveTargetPath === SANDBOX_TEMP_DIR ||
|
|
263
|
+
moveTargetPath.startsWith(SANDBOX_TEMP_DIR + path.sep);
|
|
264
|
+
if (!moveTargetInside || isProtectedHookPath(moveTargetPath, workspaceRoot))
|
|
265
|
+
return true;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
resolvedOperations.push({
|
|
269
|
+
...operation,
|
|
270
|
+
targetPath,
|
|
271
|
+
insideCwd,
|
|
272
|
+
...(moveTargetPath ? { moveTargetPath } : {}),
|
|
273
|
+
});
|
|
237
274
|
}
|
|
238
|
-
for (const { type, path: filePath, diff, targetPath, insideCwd } of resolvedOperations) {
|
|
275
|
+
for (const { type, path: filePath, diff, targetPath, insideCwd, moveTo } of resolvedOperations) {
|
|
239
276
|
// Validate diff syntax by attempting a dry-run (before approval)
|
|
240
|
-
if (type === 'create_file' || type === 'update_file') {
|
|
277
|
+
if ((type === 'create_file' || type === 'update_file') && !(type === 'update_file' && moveTo && !diff)) {
|
|
241
278
|
try {
|
|
242
279
|
if (type === 'create_file') {
|
|
243
280
|
// Dry-run: apply diff to empty content for new file
|
|
@@ -281,16 +318,7 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
281
318
|
return false;
|
|
282
319
|
}
|
|
283
320
|
}
|
|
284
|
-
|
|
285
|
-
// if (type === 'delete_file') {
|
|
286
|
-
// loggingService.security('apply_patch needsApproval: delete requires approval', {
|
|
287
|
-
// mode,
|
|
288
|
-
// type,
|
|
289
|
-
// path: filePath,
|
|
290
|
-
// });
|
|
291
|
-
// return true;
|
|
292
|
-
// }
|
|
293
|
-
if (!insideCwd || (type !== 'create_file' && type !== 'update_file')) {
|
|
321
|
+
if (!insideCwd || type === 'delete_file' || Boolean(moveTo)) {
|
|
294
322
|
loggingService.security('apply_patch needsApproval: approval required', {
|
|
295
323
|
type,
|
|
296
324
|
path: filePath,
|
|
@@ -318,6 +346,14 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
318
346
|
const cwd = executionContext?.getCwd() || process.cwd();
|
|
319
347
|
const sshService = executionContext?.getSSHService();
|
|
320
348
|
const isRemote = executionContext?.isRemote() && !!sshService;
|
|
349
|
+
let operations;
|
|
350
|
+
try {
|
|
351
|
+
operations = getApplyPatchOperations(params);
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
const message = `Error: Invalid patch: ${error?.message || String(error)}`;
|
|
355
|
+
return (await boundToolResultText({ fullText: message })).text;
|
|
356
|
+
}
|
|
321
357
|
const readFileFn = async (p) => {
|
|
322
358
|
if (isRemote && sshService)
|
|
323
359
|
return sshService.readFile(p);
|
|
@@ -333,7 +369,7 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
333
369
|
return sshService.mkdir(p);
|
|
334
370
|
return mkdir(p, { recursive: true });
|
|
335
371
|
};
|
|
336
|
-
const runOperation = async ({ type, path: filePath, diff }) => {
|
|
372
|
+
const runOperation = async ({ type, path: filePath, diff, moveTo }) => {
|
|
337
373
|
// Standard modes enforce the workspace boundary in `needsApproval`;
|
|
338
374
|
// YOLO deliberately reaches execute without a permission prompt.
|
|
339
375
|
const targetPath = resolveWorkspacePath(filePath, cwd, { allowOutsideWorkspace: true });
|
|
@@ -410,7 +446,7 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
410
446
|
let patched;
|
|
411
447
|
let usedHealing = false;
|
|
412
448
|
try {
|
|
413
|
-
patched = applyDiff(original, diff);
|
|
449
|
+
patched = diff ? applyDiff(original, diff) : original;
|
|
414
450
|
}
|
|
415
451
|
catch (err) {
|
|
416
452
|
const errMessage = err?.message || String(err);
|
|
@@ -454,7 +490,17 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
454
490
|
};
|
|
455
491
|
}
|
|
456
492
|
}
|
|
457
|
-
|
|
493
|
+
if (moveTo) {
|
|
494
|
+
if (isRemote)
|
|
495
|
+
throw new Error('Move operations are not supported for remote workspaces.');
|
|
496
|
+
const destinationPath = resolveWorkspacePath(moveTo, cwd, { allowOutsideWorkspace: true });
|
|
497
|
+
await mkdirFn(path.dirname(destinationPath));
|
|
498
|
+
await writeFileFn(destinationPath, patched);
|
|
499
|
+
await unlink(targetPath);
|
|
500
|
+
}
|
|
501
|
+
else {
|
|
502
|
+
await writeFileFn(targetPath, patched);
|
|
503
|
+
}
|
|
458
504
|
if (enableFileLogging) {
|
|
459
505
|
try {
|
|
460
506
|
loggingService.debug('File updated', {
|
|
@@ -462,6 +508,7 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
462
508
|
originalLength: original.length,
|
|
463
509
|
patchedLength: patched.length,
|
|
464
510
|
healed: usedHealing,
|
|
511
|
+
...(moveTo ? { moveTo } : {}),
|
|
465
512
|
});
|
|
466
513
|
}
|
|
467
514
|
catch (_error) {
|
|
@@ -472,7 +519,24 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
472
519
|
success: true,
|
|
473
520
|
operation: 'update_file',
|
|
474
521
|
path: filePath,
|
|
475
|
-
message:
|
|
522
|
+
message: moveTo
|
|
523
|
+
? `Updated ${filePath} and moved to ${moveTo}`
|
|
524
|
+
: usedHealing
|
|
525
|
+
? `Updated ${filePath} (healed)`
|
|
526
|
+
: `Updated ${filePath}`,
|
|
527
|
+
};
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
case 'delete_file': {
|
|
531
|
+
return withFileLock(targetPath, async () => {
|
|
532
|
+
if (isRemote)
|
|
533
|
+
throw new Error('Delete operations are not supported for remote workspaces.');
|
|
534
|
+
await unlink(targetPath);
|
|
535
|
+
return {
|
|
536
|
+
success: true,
|
|
537
|
+
operation: 'delete_file',
|
|
538
|
+
path: filePath,
|
|
539
|
+
message: `Deleted ${filePath}`,
|
|
476
540
|
};
|
|
477
541
|
});
|
|
478
542
|
}
|
|
@@ -486,7 +550,7 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
486
550
|
};
|
|
487
551
|
try {
|
|
488
552
|
const output = [];
|
|
489
|
-
for (const operation of
|
|
553
|
+
for (const operation of operations) {
|
|
490
554
|
try {
|
|
491
555
|
output.push(await runOperation(operation));
|
|
492
556
|
}
|
|
@@ -504,7 +568,7 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
504
568
|
}
|
|
505
569
|
const joined = output
|
|
506
570
|
.map((item) => item.success
|
|
507
|
-
? item.message || `Updated ${item.path ??
|
|
571
|
+
? item.message || `Updated ${item.path ?? 'unknown'}`
|
|
508
572
|
: `Error: ${(item.error || 'unknown error').replace(/\n/g, ' ')}`)
|
|
509
573
|
.join('\n');
|
|
510
574
|
return (await boundToolResultText({ fullText: joined })).text;
|
|
@@ -512,8 +576,8 @@ export function createApplyPatchToolDefinition(deps) {
|
|
|
512
576
|
catch (error) {
|
|
513
577
|
if (enableFileLogging) {
|
|
514
578
|
loggingService.error('File operation failed', {
|
|
515
|
-
type:
|
|
516
|
-
path:
|
|
579
|
+
type: 'apply_patch',
|
|
580
|
+
path: 'multiple',
|
|
517
581
|
error: error instanceof Error ? error.message : String(error),
|
|
518
582
|
});
|
|
519
583
|
}
|
|
@@ -555,7 +619,7 @@ export function diagnoseContextMismatch(contextText, original) {
|
|
|
555
619
|
const contextLines = contextText.split(/\r?\n/);
|
|
556
620
|
const originalLines = original.split(/\r?\n/);
|
|
557
621
|
if (originalLines.length === 0 || (originalLines.length === 1 && originalLines[0] === '')) {
|
|
558
|
-
return 'The target file is empty.
|
|
622
|
+
return 'The target file is empty. To create a new file, use a *** Add File: <path> *** section with + lines.';
|
|
559
623
|
}
|
|
560
624
|
const reports = [];
|
|
561
625
|
for (let i = 0; i < contextLines.length; i++) {
|
|
@@ -627,11 +691,12 @@ export function formatPatchError(error, diff, original) {
|
|
|
627
691
|
let formatted = '';
|
|
628
692
|
// 1. Check for standard unified diff headers: "--- a/file" or "+++ b/file"
|
|
629
693
|
if (diff.includes('--- ') || diff.includes('+++ ')) {
|
|
630
|
-
formatted =
|
|
694
|
+
formatted =
|
|
695
|
+
'Remove standard file headers. Use *** Update File: <path> with @@ anchors, context, + lines, and - lines.';
|
|
631
696
|
}
|
|
632
697
|
// 2. Check for unified diff chunk headers with line numbers: "@@ -1,5 +1,6 @@"
|
|
633
698
|
else if (/@@\s+-\d+(?:,\d+)?\s+\+\d+(?:,\d+)?\s+@@/.test(diff)) {
|
|
634
|
-
formatted = 'Remove line numbers from "@@" headers. Use
|
|
699
|
+
formatted = 'Remove line numbers from "@@" headers. Use plain anchors like "@@ functionName" or a bare "@@".';
|
|
635
700
|
}
|
|
636
701
|
// 3. Check for leading line numbers like "10: const x = 1;" or "10 const x = 1;"
|
|
637
702
|
else if (diff.split(/\r?\n/).some((line) => /^\s*\d+[:\s]/.test(line) && !line.startsWith('@@') && !line.startsWith('***'))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-patch.js","sourceRoot":"","sources":["../../../source/tools/file/apply-patch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apply-patch.js","sourceRoot":"","sources":["../../../source/tools/file/apply-patch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../source/tools/file/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../source/tools/file/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAC;AA6E9G,QAAA,MAAM,wBAAwB;;;;iBAY5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B,EAAE,oBA6B1C,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,UACjC;IACJ,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;IACnD,mDAAmD;IACnD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KACA,cAAc,CAAC,OAAO,wBAAwB,CAyJhD,CAAC"}
|
|
@@ -5,21 +5,56 @@ import { isSessionReadGranted } from '../../services/approval/session-read-acces
|
|
|
5
5
|
import { getOutputText, normalizeToolArguments, createBaseMessage, getCallIdFromItem, isSuccessOutput, } from '../format-helpers.js';
|
|
6
6
|
import { boundToolResultText, looksLikeBinary, resolveToolResultMaxBytes, } from '../../utils/output/bound-tool-result.js';
|
|
7
7
|
const READ_FILE_DESCRIPTION = 'Read file content from the workspace (like cat command). Supports reading specific line ranges. ' +
|
|
8
|
+
'Image files are returned as image content for visual models. ' +
|
|
8
9
|
'Use this to inspect a known file or verify a specific claim about a location. ' +
|
|
9
10
|
'Avoid reading tiny repeated chunks (e.g. 50 lines at a time); read the full file if it is under 1000 lines or use a larger window. ' +
|
|
10
11
|
'Do NOT use this to search for text across files (use grep). ' +
|
|
11
12
|
'Returns the file path, total line count, and the requested lines. ' +
|
|
12
13
|
'Large results are truncated and the full payload is saved to a file; look for "Full output saved to" and read that path when you need more.';
|
|
13
14
|
const READ_FILE_DESCRIPTION_OUTSIDE = 'Read file content from the filesystem (like cat command). Supports reading specific line ranges. ' +
|
|
15
|
+
'Image files are returned as image content for visual models. ' +
|
|
14
16
|
'Use this to inspect a known file or verify a specific claim about a location. ' +
|
|
15
17
|
'Avoid reading tiny repeated chunks (e.g. 50 lines at a time); read the full file if it is under 1000 lines or use a larger window. ' +
|
|
16
18
|
'Returns the file path, total line count, and the requested lines. ' +
|
|
17
19
|
'Large results are truncated and the full payload is saved to a file; look for "Full output saved to" and read that path when you need more.';
|
|
18
20
|
const READ_FILE_DESCRIPTION_ORCHESTRATOR = 'Inspect a known file directly, including to understand a small or clear area of the workspace. ' +
|
|
21
|
+
'Image files are returned as image content for visual models. ' +
|
|
19
22
|
'Delegate broad or separable exploration when it provides meaningful context compression or specialization. ' +
|
|
20
23
|
'Supports line ranges — read the smallest relevant range. ' +
|
|
21
24
|
'Returns the file path, total line count, and the requested lines. ' +
|
|
22
25
|
'Large results are truncated and the full payload is saved to a file; look for "Full output saved to" and read that path when you need more.';
|
|
26
|
+
/** Detect image formats that the model adapters can send as image content. */
|
|
27
|
+
function detectImageMediaType(buffer, filePath) {
|
|
28
|
+
if (buffer.length >= 8 &&
|
|
29
|
+
buffer.subarray(0, 8).equals(Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))) {
|
|
30
|
+
return 'image/png';
|
|
31
|
+
}
|
|
32
|
+
if (buffer.length >= 3 && buffer.subarray(0, 3).equals(Buffer.from([0xff, 0xd8, 0xff])))
|
|
33
|
+
return 'image/jpeg';
|
|
34
|
+
if (buffer.length >= 6 &&
|
|
35
|
+
(buffer.subarray(0, 6).toString('ascii') === 'GIF87a' || buffer.subarray(0, 6).toString('ascii') === 'GIF89a')) {
|
|
36
|
+
return 'image/gif';
|
|
37
|
+
}
|
|
38
|
+
if (buffer.length >= 12 &&
|
|
39
|
+
buffer.subarray(0, 4).toString('ascii') === 'RIFF' &&
|
|
40
|
+
buffer.subarray(8, 12).toString('ascii') === 'WEBP') {
|
|
41
|
+
return 'image/webp';
|
|
42
|
+
}
|
|
43
|
+
if (buffer.length >= 2 && buffer.subarray(0, 2).equals(Buffer.from([0x42, 0x4d])))
|
|
44
|
+
return 'image/bmp';
|
|
45
|
+
if (buffer.length >= 4 &&
|
|
46
|
+
(buffer.subarray(0, 4).equals(Buffer.from([0x49, 0x49, 0x2a, 0x00])) ||
|
|
47
|
+
buffer.subarray(0, 4).equals(Buffer.from([0x4d, 0x4d, 0x00, 0x2a])))) {
|
|
48
|
+
return 'image/tiff';
|
|
49
|
+
}
|
|
50
|
+
if (buffer.length >= 4 && buffer.subarray(0, 4).equals(Buffer.from([0x00, 0x00, 0x01, 0x00])))
|
|
51
|
+
return 'image/x-icon';
|
|
52
|
+
if (/\.svg$/i.test(filePath) &&
|
|
53
|
+
/^\s*(?:<\?xml[^>]*>\s*)?<svg(?:\s|>)/i.test(buffer.toString('utf8', 0, Math.min(buffer.length, 512)))) {
|
|
54
|
+
return 'image/svg+xml';
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
23
58
|
const readFileParametersSchema = z.object({
|
|
24
59
|
path: z.string().describe('File path relative to workspace root'),
|
|
25
60
|
start_line: relaxedNumber
|
|
@@ -116,6 +151,19 @@ export const createReadFileToolDefinition = (deps = {}) => {
|
|
|
116
151
|
if (buffer.length === 0) {
|
|
117
152
|
return '';
|
|
118
153
|
}
|
|
154
|
+
const imageMediaType = detectImageMediaType(buffer, filePath);
|
|
155
|
+
if (imageMediaType) {
|
|
156
|
+
return [
|
|
157
|
+
{
|
|
158
|
+
type: 'text',
|
|
159
|
+
text: `Image: ${filePath} (${buffer.length} bytes, ${imageMediaType})`,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'image',
|
|
163
|
+
image: { data: buffer.toString('base64'), mediaType: imageMediaType },
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
}
|
|
119
167
|
if (looksLikeBinary(buffer)) {
|
|
120
168
|
return (`Error: File appears to be binary and was not loaded into context: ${filePath} ` +
|
|
121
169
|
`(${buffer.length} bytes). Use shell tools or a specialized binary viewer if you need its contents.`);
|