@qduc/term2 0.15.0 → 0.17.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 +324 -316
- package/dist/agent.d.ts +5 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +16 -64
- 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 +129 -19
- package/dist/app.js.map +1 -1
- package/dist/cli.js +52 -17
- package/dist/cli.js.map +1 -1
- package/dist/commands/auto-approve-command.d.ts +2 -1
- package/dist/commands/auto-approve-command.d.ts.map +1 -1
- package/dist/commands/auto-approve-command.js +16 -27
- package/dist/commands/auto-approve-command.js.map +1 -1
- package/dist/commands/compact-command.d.ts.map +1 -1
- package/dist/commands/compact-command.js +4 -0
- package/dist/commands/compact-command.js.map +1 -1
- package/dist/commands/effort-command.js +1 -1
- package/dist/commands/effort-command.js.map +1 -1
- package/dist/commands/guarded-settings-command.d.ts.map +1 -1
- package/dist/commands/guarded-settings-command.js +4 -8
- package/dist/commands/guarded-settings-command.js.map +1 -1
- package/dist/commands/model-command.js +1 -1
- package/dist/commands/model-command.js.map +1 -1
- package/dist/commands/resume-command.d.ts +11 -0
- package/dist/commands/resume-command.d.ts.map +1 -0
- package/dist/commands/resume-command.js +41 -0
- package/dist/commands/resume-command.js.map +1 -0
- package/dist/components/ErrorBoundary.d.ts.map +1 -1
- package/dist/components/ErrorBoundary.js +5 -4
- package/dist/components/ErrorBoundary.js.map +1 -1
- package/dist/components/InputBox.d.ts +2 -0
- package/dist/components/InputBox.d.ts.map +1 -1
- package/dist/components/InputBox.js +56 -18
- package/dist/components/InputBox.js.map +1 -1
- package/dist/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/components/MarkdownRenderer.js +16 -15
- package/dist/components/MarkdownRenderer.js.map +1 -1
- package/dist/components/common/MenuContainer.d.ts +25 -2
- package/dist/components/common/MenuContainer.d.ts.map +1 -1
- package/dist/components/common/MenuContainer.js +35 -11
- package/dist/components/common/MenuContainer.js.map +1 -1
- package/dist/components/common/ScrollableTabBar.d.ts.map +1 -1
- package/dist/components/common/ScrollableTabBar.js +5 -4
- package/dist/components/common/ScrollableTabBar.js.map +1 -1
- package/dist/components/input/ApplicationInputSurface.d.ts +7 -5
- package/dist/components/input/ApplicationInputSurface.d.ts.map +1 -1
- package/dist/components/input/ApplicationInputSurface.js +7 -0
- package/dist/components/input/ApplicationInputSurface.js.map +1 -1
- package/dist/components/input/FirstRunSetupPrompt.d.ts.map +1 -1
- package/dist/components/input/FirstRunSetupPrompt.js +5 -4
- package/dist/components/input/FirstRunSetupPrompt.js.map +1 -1
- package/dist/components/input/MenuSurface.d.ts.map +1 -1
- package/dist/components/input/MenuSurface.js +10 -3
- package/dist/components/input/MenuSurface.js.map +1 -1
- package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
- package/dist/components/input/ModelMenuSession.js +2 -1
- package/dist/components/input/ModelMenuSession.js.map +1 -1
- package/dist/components/input/PendingQueueList.d.ts +2 -0
- package/dist/components/input/PendingQueueList.d.ts.map +1 -1
- package/dist/components/input/PendingQueueList.js +17 -14
- package/dist/components/input/PendingQueueList.js.map +1 -1
- package/dist/components/input/ResumeMenuSession.d.ts +17 -0
- package/dist/components/input/ResumeMenuSession.d.ts.map +1 -0
- package/dist/components/input/ResumeMenuSession.js +57 -0
- package/dist/components/input/ResumeMenuSession.js.map +1 -0
- package/dist/components/input/SettingsValueMenuSession.d.ts.map +1 -1
- package/dist/components/input/SettingsValueMenuSession.js +2 -1
- package/dist/components/input/SettingsValueMenuSession.js.map +1 -1
- 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 +10 -5
- 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 +12 -11
- package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.d.ts +2 -2
- package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.js +10 -9
- package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
- package/dist/components/layout/Banner.d.ts +0 -1
- package/dist/components/layout/Banner.d.ts.map +1 -1
- package/dist/components/layout/Banner.js +43 -73
- package/dist/components/layout/Banner.js.map +1 -1
- package/dist/components/layout/BottomArea.d.ts +8 -5
- package/dist/components/layout/BottomArea.d.ts.map +1 -1
- package/dist/components/layout/BottomArea.js +17 -9
- package/dist/components/layout/BottomArea.js.map +1 -1
- package/dist/components/layout/DiffView.js +5 -5
- package/dist/components/layout/DiffView.js.map +1 -1
- package/dist/components/layout/StatusBar.d.ts +4 -1
- package/dist/components/layout/StatusBar.d.ts.map +1 -1
- package/dist/components/layout/StatusBar.js +305 -95
- package/dist/components/layout/StatusBar.js.map +1 -1
- package/dist/components/layout/background-task-clock.d.ts +43 -0
- package/dist/components/layout/background-task-clock.d.ts.map +1 -0
- package/dist/components/layout/background-task-clock.js +46 -0
- package/dist/components/layout/background-task-clock.js.map +1 -0
- package/dist/components/menu/CopyMenu.d.ts.map +1 -1
- package/dist/components/menu/CopyMenu.js +4 -3
- package/dist/components/menu/CopyMenu.js.map +1 -1
- package/dist/components/menu/MentorPoolSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/MentorPoolSelectionMenu.js +28 -21
- package/dist/components/menu/MentorPoolSelectionMenu.js.map +1 -1
- package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/ModelSelectionMenu.js +26 -13
- package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
- package/dist/components/menu/PathSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/PathSelectionMenu.js +4 -3
- package/dist/components/menu/PathSelectionMenu.js.map +1 -1
- package/dist/components/menu/ProviderSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/ProviderSelectionMenu.js +46 -26
- package/dist/components/menu/ProviderSelectionMenu.js.map +1 -1
- package/dist/components/menu/ResumeSelectionMenu.d.ts +11 -0
- package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -0
- package/dist/components/menu/ResumeSelectionMenu.js +91 -0
- package/dist/components/menu/ResumeSelectionMenu.js.map +1 -0
- package/dist/components/menu/RewindMenu.d.ts.map +1 -1
- package/dist/components/menu/RewindMenu.js +4 -3
- package/dist/components/menu/RewindMenu.js.map +1 -1
- package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/SettingsSelectionMenu.js +26 -26
- package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
- package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/SettingsValueSelectionMenu.js +22 -20
- package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
- package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/SkillSelectionMenu.js +33 -23
- package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
- package/dist/components/menu/SlashCommandMenu.d.ts.map +1 -1
- package/dist/components/menu/SlashCommandMenu.js +11 -6
- package/dist/components/menu/SlashCommandMenu.js.map +1 -1
- package/dist/components/message/ChatMessage.js +2 -2
- package/dist/components/message/ChatMessage.js.map +1 -1
- package/dist/components/message/CodeContextSearchRenderer.d.ts.map +1 -1
- package/dist/components/message/CodeContextSearchRenderer.js +8 -11
- package/dist/components/message/CodeContextSearchRenderer.js.map +1 -1
- package/dist/components/message/CommandGroupSummary.d.ts.map +1 -1
- package/dist/components/message/CommandGroupSummary.js +21 -9
- package/dist/components/message/CommandGroupSummary.js.map +1 -1
- package/dist/components/message/CommandMessage.d.ts.map +1 -1
- package/dist/components/message/CommandMessage.js +111 -91
- package/dist/components/message/CommandMessage.js.map +1 -1
- package/dist/components/message/GrepRenderer.d.ts.map +1 -1
- package/dist/components/message/GrepRenderer.js +5 -8
- package/dist/components/message/GrepRenderer.js.map +1 -1
- package/dist/components/message/MemoryRenderer.d.ts +1 -0
- package/dist/components/message/MemoryRenderer.d.ts.map +1 -1
- package/dist/components/message/MemoryRenderer.js +19 -17
- package/dist/components/message/MemoryRenderer.js.map +1 -1
- package/dist/components/message/MessageList.d.ts +1 -2
- package/dist/components/message/MessageList.d.ts.map +1 -1
- package/dist/components/message/MessageList.js +12 -11
- package/dist/components/message/MessageList.js.map +1 -1
- package/dist/components/message/ReadFileRenderer.d.ts.map +1 -1
- package/dist/components/message/ReadFileRenderer.js +5 -6
- package/dist/components/message/ReadFileRenderer.js.map +1 -1
- package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
- package/dist/components/message/SubagentActivityMessage.js +17 -13
- package/dist/components/message/SubagentActivityMessage.js.map +1 -1
- package/dist/components/message/WebFetchRenderer.d.ts.map +1 -1
- package/dist/components/message/WebFetchRenderer.js +7 -11
- package/dist/components/message/WebFetchRenderer.js.map +1 -1
- package/dist/components/message/WebSearchRenderer.d.ts.map +1 -1
- package/dist/components/message/WebSearchRenderer.js +5 -10
- package/dist/components/message/WebSearchRenderer.js.map +1 -1
- package/dist/components/message/command-grouping.d.ts +29 -6
- package/dist/components/message/command-grouping.d.ts.map +1 -1
- package/dist/components/message/command-grouping.js +62 -20
- package/dist/components/message/command-grouping.js.map +1 -1
- package/dist/components/message/command-message-helpers.d.ts +10 -37
- package/dist/components/message/command-message-helpers.d.ts.map +1 -1
- package/dist/components/message/command-message-helpers.js +26 -8
- package/dist/components/message/command-message-helpers.js.map +1 -1
- package/dist/components/message/useCommandVisibility.d.ts.map +1 -1
- package/dist/components/message/useCommandVisibility.js +5 -4
- package/dist/components/message/useCommandVisibility.js.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.js +232 -106
- package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
- package/dist/components/prompt/HandoffConfirmationPrompt.d.ts.map +1 -1
- package/dist/components/prompt/HandoffConfirmationPrompt.js +3 -2
- package/dist/components/prompt/HandoffConfirmationPrompt.js.map +1 -1
- package/dist/components/prompt/InputSurgeConfirmationPrompt.d.ts.map +1 -1
- package/dist/components/prompt/InputSurgeConfirmationPrompt.js +5 -4
- package/dist/components/prompt/InputSurgeConfirmationPrompt.js.map +1 -1
- package/dist/components/prompt/LargeUncachedConfirmationPrompt.d.ts.map +1 -1
- package/dist/components/prompt/LargeUncachedConfirmationPrompt.js +4 -3
- package/dist/components/prompt/LargeUncachedConfirmationPrompt.js.map +1 -1
- package/dist/components/prompt/ModeSwitchConfirmationPrompt.d.ts.map +1 -1
- package/dist/components/prompt/ModeSwitchConfirmationPrompt.js +4 -3
- package/dist/components/prompt/ModeSwitchConfirmationPrompt.js.map +1 -1
- package/dist/components/prompt/QueuePausedPrompt.d.ts.map +1 -1
- package/dist/components/prompt/QueuePausedPrompt.js +6 -5
- package/dist/components/prompt/QueuePausedPrompt.js.map +1 -1
- package/dist/components/prompt/StandardModeConfirmationPrompt.d.ts.map +1 -1
- package/dist/components/prompt/StandardModeConfirmationPrompt.js +3 -2
- package/dist/components/prompt/StandardModeConfirmationPrompt.js.map +1 -1
- package/dist/components/theme.d.ts +58 -3
- package/dist/components/theme.d.ts.map +1 -1
- package/dist/components/theme.js +84 -17
- package/dist/components/theme.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 +2 -0
- package/dist/context/InputContext.js.map +1 -1
- package/dist/contracts/application-stream.d.ts +14 -0
- package/dist/contracts/application-stream.d.ts.map +1 -1
- package/dist/contracts/streamed-model-turn.d.ts +13 -1
- package/dist/contracts/streamed-model-turn.d.ts.map +1 -1
- package/dist/gateway/assertion.d.ts +4 -1
- package/dist/gateway/assertion.d.ts.map +1 -1
- package/dist/gateway/assertion.js +24 -2
- package/dist/gateway/assertion.js.map +1 -1
- package/dist/gateway/contracts.d.ts +21 -4
- package/dist/gateway/contracts.d.ts.map +1 -1
- package/dist/gateway/contracts.js +11 -0
- package/dist/gateway/contracts.js.map +1 -1
- package/dist/gateway/dynamic-workspace-registry.d.ts +76 -0
- package/dist/gateway/dynamic-workspace-registry.d.ts.map +1 -0
- package/dist/gateway/dynamic-workspace-registry.js +403 -0
- package/dist/gateway/dynamic-workspace-registry.js.map +1 -0
- package/dist/gateway/gateway.d.ts +24 -1
- package/dist/gateway/gateway.d.ts.map +1 -1
- package/dist/gateway/gateway.js +704 -21
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/launcher-seam.d.ts +18 -0
- package/dist/gateway/launcher-seam.d.ts.map +1 -0
- package/dist/gateway/launcher-seam.js +43 -0
- package/dist/gateway/launcher-seam.js.map +1 -0
- package/dist/gateway/pairing.d.ts +25 -0
- package/dist/gateway/pairing.d.ts.map +1 -0
- package/dist/gateway/pairing.js +107 -0
- package/dist/gateway/pairing.js.map +1 -0
- package/dist/gateway/persistence/coordinator.d.ts +2 -0
- package/dist/gateway/persistence/coordinator.d.ts.map +1 -1
- package/dist/gateway/persistence/coordinator.js +13 -0
- package/dist/gateway/persistence/coordinator.js.map +1 -1
- package/dist/gateway/runtime-factory.d.ts +15 -6
- package/dist/gateway/runtime-factory.d.ts.map +1 -1
- package/dist/gateway/runtime-factory.js +38 -9
- package/dist/gateway/runtime-factory.js.map +1 -1
- package/dist/gateway/safe-log.d.ts.map +1 -1
- package/dist/gateway/safe-log.js +19 -0
- package/dist/gateway/safe-log.js.map +1 -1
- package/dist/gateway/server-session.d.ts.map +1 -1
- package/dist/gateway/server-session.js +36 -4
- package/dist/gateway/server-session.js.map +1 -1
- package/dist/gateway/server.d.ts +26 -3
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +105 -17
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/settings-rpc.d.ts +95 -0
- package/dist/gateway/settings-rpc.d.ts.map +1 -0
- package/dist/gateway/settings-rpc.js +227 -0
- package/dist/gateway/settings-rpc.js.map +1 -0
- package/dist/gateway/trusted-clients.d.ts +27 -0
- package/dist/gateway/trusted-clients.d.ts.map +1 -0
- package/dist/gateway/trusted-clients.js +157 -0
- package/dist/gateway/trusted-clients.js.map +1 -0
- package/dist/gateway/worker-boundary.d.ts +6 -5
- package/dist/gateway/worker-boundary.d.ts.map +1 -1
- package/dist/gateway/worker-boundary.js +20 -10
- package/dist/gateway/worker-boundary.js.map +1 -1
- package/dist/gateway/workspace-admission.d.ts +11 -0
- package/dist/gateway/workspace-admission.d.ts.map +1 -1
- package/dist/gateway/workspace-admission.js +89 -16
- package/dist/gateway/workspace-admission.js.map +1 -1
- package/dist/gateway/workspace-boundary-probe.d.ts +18 -0
- package/dist/gateway/workspace-boundary-probe.d.ts.map +1 -0
- package/dist/gateway/workspace-boundary-probe.js +37 -0
- package/dist/gateway/workspace-boundary-probe.js.map +1 -0
- package/dist/hooks/conversation-ui-reducer.d.ts +6 -0
- package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
- package/dist/hooks/conversation-ui-reducer.js +9 -1
- package/dist/hooks/conversation-ui-reducer.js.map +1 -1
- package/dist/hooks/settings-completion-config.d.ts.map +1 -1
- package/dist/hooks/settings-completion-config.js +11 -3
- package/dist/hooks/settings-completion-config.js.map +1 -1
- package/dist/hooks/use-app-commands.d.ts +6 -1
- package/dist/hooks/use-app-commands.d.ts.map +1 -1
- package/dist/hooks/use-app-commands.js +23 -14
- package/dist/hooks/use-app-commands.js.map +1 -1
- package/dist/hooks/use-app-keyboard-shortcuts.d.ts +1 -3
- package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -1
- package/dist/hooks/use-app-keyboard-shortcuts.js +11 -9
- package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +8 -0
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +27 -18
- package/dist/hooks/use-conversation.js.map +1 -1
- package/dist/hooks/use-opencode-go-usage.d.ts +8 -0
- package/dist/hooks/use-opencode-go-usage.d.ts.map +1 -0
- package/dist/hooks/use-opencode-go-usage.js +45 -0
- package/dist/hooks/use-opencode-go-usage.js.map +1 -0
- package/dist/hooks/use-resume-selection.d.ts +22 -0
- package/dist/hooks/use-resume-selection.d.ts.map +1 -0
- package/dist/hooks/use-resume-selection.js +76 -0
- package/dist/hooks/use-resume-selection.js.map +1 -0
- package/dist/hooks/use-shell-mode.d.ts +3 -4
- package/dist/hooks/use-shell-mode.d.ts.map +1 -1
- package/dist/hooks/use-shell-mode.js +14 -12
- package/dist/hooks/use-shell-mode.js.map +1 -1
- package/dist/hooks/use-terminal-columns.d.ts +15 -0
- package/dist/hooks/use-terminal-columns.d.ts.map +1 -0
- package/dist/hooks/use-terminal-columns.js +45 -0
- package/dist/hooks/use-terminal-columns.js.map +1 -0
- package/dist/lib/agent-client.d.ts +14 -1
- package/dist/lib/agent-client.d.ts.map +1 -1
- package/dist/lib/agent-client.js +112 -37
- package/dist/lib/agent-client.js.map +1 -1
- package/dist/lib/agent-configuration.d.ts +5 -0
- package/dist/lib/agent-configuration.d.ts.map +1 -1
- package/dist/lib/agent-configuration.js +14 -5
- package/dist/lib/agent-configuration.js.map +1 -1
- package/dist/lib/agent-factory.d.ts +7 -2
- package/dist/lib/agent-factory.d.ts.map +1 -1
- package/dist/lib/agent-factory.js +22 -11
- package/dist/lib/agent-factory.js.map +1 -1
- package/dist/lib/harness-input-idle.d.ts.map +1 -1
- package/dist/lib/harness-input-idle.js +1 -1
- package/dist/lib/harness-input-idle.js.map +1 -1
- package/dist/non-interactive.d.ts +3 -0
- package/dist/non-interactive.d.ts.map +1 -1
- package/dist/non-interactive.js +106 -22
- package/dist/non-interactive.js.map +1 -1
- package/dist/prompts/approval-model.md +22 -0
- package/dist/prompts/gpt-5.6.md +3 -2
- package/dist/prompts/mentor-mode-stub.md +3 -0
- package/dist/prompts/orchestrator-mode-stub.md +3 -0
- package/dist/prompts/prefix-quality.test.ts +10 -0
- package/dist/prompts/prompt-constructor.d.ts +2 -0
- package/dist/prompts/prompt-constructor.d.ts.map +1 -1
- package/dist/prompts/prompt-constructor.js +23 -13
- package/dist/prompts/prompt-constructor.js.map +1 -1
- package/dist/prompts/prompt-constructor.test.ts +39 -5
- package/dist/prompts/prompt-constructor.ts +27 -15
- package/dist/prompts/prompt-profiles.d.ts +1 -3
- package/dist/prompts/prompt-profiles.d.ts.map +1 -1
- package/dist/prompts/prompt-profiles.js +2 -7
- package/dist/prompts/prompt-profiles.js.map +1 -1
- package/dist/prompts/prompt-profiles.ts +3 -16
- package/dist/prompts/session-browser.md +3 -0
- package/dist/prompts/subagent-delegation.d.ts +4 -3
- package/dist/prompts/subagent-delegation.d.ts.map +1 -1
- package/dist/prompts/subagent-delegation.js +14 -18
- package/dist/prompts/subagent-delegation.js.map +1 -1
- package/dist/prompts/subagent-delegation.test.ts +2 -2
- package/dist/prompts/subagent-delegation.ts +13 -20
- package/dist/providers/chained-wire-state.d.ts +7 -2
- package/dist/providers/chained-wire-state.d.ts.map +1 -1
- package/dist/providers/chained-wire-state.js +16 -7
- package/dist/providers/chained-wire-state.js.map +1 -1
- package/dist/providers/codex-auth.d.ts +2 -5
- package/dist/providers/codex-auth.d.ts.map +1 -1
- package/dist/providers/codex-auth.js +2 -0
- package/dist/providers/codex-auth.js.map +1 -1
- package/dist/providers/codex-compact.d.ts +9 -0
- package/dist/providers/codex-compact.d.ts.map +1 -0
- package/dist/providers/codex-compact.js +23 -0
- package/dist/providers/codex-compact.js.map +1 -0
- package/dist/providers/codex-responses-model.d.ts +17 -1
- package/dist/providers/codex-responses-model.d.ts.map +1 -1
- package/dist/providers/codex-responses-model.js +75 -8
- 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 +8 -4
- package/dist/providers/codex-turn-converter.js.map +1 -1
- package/dist/providers/codex.provider.js +2 -2
- package/dist/providers/codex.provider.js.map +1 -1
- package/dist/providers/grok-auth.d.ts +2 -5
- package/dist/providers/grok-auth.d.ts.map +1 -1
- package/dist/providers/grok-auth.js +2 -0
- package/dist/providers/grok-auth.js.map +1 -1
- package/dist/providers/oauth-account-store.d.ts +5 -0
- package/dist/providers/oauth-account-store.d.ts.map +1 -1
- package/dist/providers/oauth-account-store.js +56 -5
- package/dist/providers/oauth-account-store.js.map +1 -1
- package/dist/providers/oauth-pkce.d.ts +8 -0
- package/dist/providers/oauth-pkce.d.ts.map +1 -1
- package/dist/providers/oauth-pkce.js +91 -19
- package/dist/providers/oauth-pkce.js.map +1 -1
- package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
- package/dist/providers/openai-compatible.provider.js +8 -1
- package/dist/providers/openai-compatible.provider.js.map +1 -1
- package/dist/providers/openai-responses-model.d.ts.map +1 -1
- package/dist/providers/openai-responses-model.js +2 -0
- package/dist/providers/openai-responses-model.js.map +1 -1
- package/dist/providers/opencode-go-usage.d.ts +24 -0
- package/dist/providers/opencode-go-usage.d.ts.map +1 -0
- package/dist/providers/opencode-go-usage.js +37 -0
- package/dist/providers/opencode-go-usage.js.map +1 -0
- package/dist/providers/openrouter.provider.d.ts.map +1 -1
- package/dist/providers/openrouter.provider.js +8 -1
- package/dist/providers/openrouter.provider.js.map +1 -1
- package/dist/providers/responses-websocket-sessions.d.ts +1 -0
- package/dist/providers/responses-websocket-sessions.d.ts.map +1 -1
- package/dist/providers/responses-websocket-sessions.js +16 -2
- package/dist/providers/responses-websocket-sessions.js.map +1 -1
- package/dist/providers/retrying-model.d.ts +1 -0
- package/dist/providers/retrying-model.d.ts.map +1 -1
- package/dist/providers/retrying-model.js +37 -3
- package/dist/providers/retrying-model.js.map +1 -1
- package/dist/services/agent-runtime/application-run-loop.d.ts +5 -1
- package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
- package/dist/services/agent-runtime/application-run-loop.js +231 -149
- package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
- package/dist/services/agent-runtime/generation-guard.d.ts +39 -25
- package/dist/services/agent-runtime/generation-guard.d.ts.map +1 -1
- package/dist/services/agent-runtime/generation-guard.js +98 -100
- package/dist/services/agent-runtime/generation-guard.js.map +1 -1
- package/dist/services/agent-runtime/run-budget.d.ts +1 -1
- package/dist/services/agent-runtime/run-budget.d.ts.map +1 -1
- package/dist/services/agent-runtime/run-budget.js +4 -0
- package/dist/services/agent-runtime/run-budget.js.map +1 -1
- package/dist/services/agent-stream.d.ts.map +1 -1
- package/dist/services/agent-stream.js +1 -0
- package/dist/services/agent-stream.js.map +1 -1
- package/dist/services/approval/shell-auto-approval-evaluator.d.ts +3 -1
- package/dist/services/approval/shell-auto-approval-evaluator.d.ts.map +1 -1
- package/dist/services/approval/shell-auto-approval-evaluator.js +4 -2
- package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
- package/dist/services/approval/shell-auto-approval-resolver.d.ts +2 -0
- package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
- package/dist/services/approval/shell-auto-approval-resolver.js +2 -0
- package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
- package/dist/services/conversation/conversation-adapter.d.ts +13 -2
- package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
- package/dist/services/conversation/conversation-adapter.js +35 -7
- package/dist/services/conversation/conversation-adapter.js.map +1 -1
- package/dist/services/conversation/conversation-admission-workflow.d.ts +3 -2
- package/dist/services/conversation/conversation-admission-workflow.d.ts.map +1 -1
- package/dist/services/conversation/conversation-admission-workflow.js +6 -1
- package/dist/services/conversation/conversation-admission-workflow.js.map +1 -1
- package/dist/services/conversation/conversation-events.d.ts +43 -2
- package/dist/services/conversation/conversation-events.d.ts.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.d.ts +14 -1
- package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.js +142 -11
- package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.types.d.ts +3 -1
- package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -1
- package/dist/services/conversation/conversation-persistence.d.ts +22 -1
- package/dist/services/conversation/conversation-persistence.d.ts.map +1 -1
- package/dist/services/conversation/conversation-persistence.js +61 -0
- package/dist/services/conversation/conversation-persistence.js.map +1 -1
- package/dist/services/conversation/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation/conversation-service.js +45 -29
- package/dist/services/conversation/conversation-service.js.map +1 -1
- package/dist/services/conversation/session-audit.d.ts +70 -0
- package/dist/services/conversation/session-audit.d.ts.map +1 -0
- package/dist/services/conversation/session-audit.js +164 -0
- package/dist/services/conversation/session-audit.js.map +1 -0
- package/dist/services/conversation/session-browser.d.ts +49 -0
- package/dist/services/conversation/session-browser.d.ts.map +1 -0
- package/dist/services/conversation/session-browser.js +411 -0
- package/dist/services/conversation/session-browser.js.map +1 -0
- package/dist/services/input-surge-approval.d.ts +21 -0
- package/dist/services/input-surge-approval.d.ts.map +1 -0
- package/dist/services/input-surge-approval.js +42 -0
- package/dist/services/input-surge-approval.js.map +1 -0
- package/dist/services/large-uncached-input-guard.js +4 -4
- package/dist/services/large-uncached-input-guard.js.map +1 -1
- package/dist/services/logging/assistant-turn-journal.d.ts +15 -0
- package/dist/services/logging/assistant-turn-journal.d.ts.map +1 -1
- package/dist/services/logging/assistant-turn-journal.js +27 -0
- package/dist/services/logging/assistant-turn-journal.js.map +1 -1
- package/dist/services/memory/memory-capabilities.d.ts.map +1 -1
- package/dist/services/memory/memory-capabilities.js +7 -4
- package/dist/services/memory/memory-capabilities.js.map +1 -1
- package/dist/services/memory/memory-search.d.ts +16 -0
- package/dist/services/memory/memory-search.d.ts.map +1 -0
- package/dist/services/memory/memory-search.js +55 -0
- package/dist/services/memory/memory-search.js.map +1 -0
- package/dist/services/memory/memory-store.d.ts +12 -0
- package/dist/services/memory/memory-store.d.ts.map +1 -1
- package/dist/services/memory/memory-store.js +14 -35
- package/dist/services/memory/memory-store.js.map +1 -1
- package/dist/services/mode-notices.d.ts +11 -0
- package/dist/services/mode-notices.d.ts.map +1 -1
- package/dist/services/mode-notices.js +37 -3
- package/dist/services/mode-notices.js.map +1 -1
- package/dist/services/queue/queue-controller.d.ts +13 -0
- package/dist/services/queue/queue-controller.d.ts.map +1 -1
- package/dist/services/queue/queue-controller.js +32 -1
- package/dist/services/queue/queue-controller.js.map +1 -1
- package/dist/services/retry/in-loop-model-retry.d.ts +16 -0
- package/dist/services/retry/in-loop-model-retry.d.ts.map +1 -0
- package/dist/services/retry/in-loop-model-retry.js +125 -0
- package/dist/services/retry/in-loop-model-retry.js.map +1 -0
- package/dist/services/retry/retry-classifier.d.ts.map +1 -1
- package/dist/services/retry/retry-classifier.js +18 -12
- package/dist/services/retry/retry-classifier.js.map +1 -1
- package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
- package/dist/services/retry/retry-error-classification.js +10 -6
- package/dist/services/retry/retry-error-classification.js.map +1 -1
- package/dist/services/retry/upstream-retry-policy.d.ts.map +1 -1
- package/dist/services/retry/upstream-retry-policy.js +40 -7
- package/dist/services/retry/upstream-retry-policy.js.map +1 -1
- package/dist/services/runtime-setting-router.d.ts.map +1 -1
- package/dist/services/runtime-setting-router.js +7 -2
- package/dist/services/runtime-setting-router.js.map +1 -1
- package/dist/services/session/background-check-in-scheduler.d.ts +44 -0
- package/dist/services/session/background-check-in-scheduler.d.ts.map +1 -0
- package/dist/services/session/background-check-in-scheduler.js +88 -0
- package/dist/services/session/background-check-in-scheduler.js.map +1 -0
- package/dist/services/session/background-task-control.js +4 -1
- package/dist/services/session/background-task-control.js.map +1 -1
- package/dist/services/session/initial-input-preparer.d.ts +2 -1
- package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
- package/dist/services/session/initial-input-preparer.js +4 -1
- package/dist/services/session/initial-input-preparer.js.map +1 -1
- package/dist/services/session/repetition-detector.d.ts +0 -4
- package/dist/services/session/repetition-detector.d.ts.map +1 -1
- package/dist/services/session/repetition-detector.js +0 -7
- package/dist/services/session/repetition-detector.js.map +1 -1
- package/dist/services/session/session-access-state.d.ts +3 -0
- package/dist/services/session/session-access-state.d.ts.map +1 -1
- package/dist/services/session/session-access-state.js +12 -0
- package/dist/services/session/session-access-state.js.map +1 -1
- package/dist/services/session/session-client-factory.d.ts +3 -1
- package/dist/services/session/session-client-factory.d.ts.map +1 -1
- package/dist/services/session/session-client-factory.js +2 -1
- package/dist/services/session/session-client-factory.js.map +1 -1
- package/dist/services/session/session-composition.d.ts +6 -2
- package/dist/services/session/session-composition.d.ts.map +1 -1
- package/dist/services/session/session-composition.js +148 -29
- package/dist/services/session/session-composition.js.map +1 -1
- package/dist/services/session/session-input-planner.d.ts +9 -0
- package/dist/services/session/session-input-planner.d.ts.map +1 -1
- package/dist/services/session/session-input-planner.js +23 -0
- package/dist/services/session/session-input-planner.js.map +1 -1
- package/dist/services/session/session-lifecycle.d.ts +8 -0
- package/dist/services/session/session-lifecycle.d.ts.map +1 -1
- package/dist/services/session/session-lifecycle.js +4 -0
- package/dist/services/session/session-lifecycle.js.map +1 -1
- package/dist/services/session/session-stream-processor.d.ts.map +1 -1
- package/dist/services/session/session-stream-processor.js +5 -15
- package/dist/services/session/session-stream-processor.js.map +1 -1
- package/dist/services/session/turn-attempt-factory.d.ts +2 -1
- package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
- package/dist/services/session/turn-attempt-factory.js +1 -0
- package/dist/services/session/turn-attempt-factory.js.map +1 -1
- package/dist/services/session/turn-attempt.d.ts +3 -0
- package/dist/services/session/turn-attempt.d.ts.map +1 -1
- package/dist/services/session/turn-attempt.js +5 -0
- package/dist/services/session/turn-attempt.js.map +1 -1
- package/dist/services/session/turn-coordinator.d.ts +1 -1
- package/dist/services/session/turn-coordinator.d.ts.map +1 -1
- package/dist/services/session/turn-workflow.d.ts.map +1 -1
- package/dist/services/session/turn-workflow.js +4 -1
- package/dist/services/session/turn-workflow.js.map +1 -1
- package/dist/services/settings/settings-schema.d.ts +27 -3
- package/dist/services/settings/settings-schema.d.ts.map +1 -1
- package/dist/services/settings/settings-schema.js +35 -11
- package/dist/services/settings/settings-schema.js.map +1 -1
- package/dist/services/settings/settings-service.d.ts +9 -0
- package/dist/services/settings/settings-service.d.ts.map +1 -1
- package/dist/services/settings/settings-service.js +40 -0
- 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 +5 -0
- package/dist/services/settings/settings-sources.js.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +2 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js +6 -0
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
- package/dist/services/shell/shell-interaction-session.d.ts +4 -5
- package/dist/services/shell/shell-interaction-session.d.ts.map +1 -1
- package/dist/services/shell/shell-interaction-session.js +8 -20
- package/dist/services/shell/shell-interaction-session.js.map +1 -1
- package/dist/services/stream-event-processor.d.ts.map +1 -1
- package/dist/services/stream-event-processor.js +15 -0
- package/dist/services/stream-event-processor.js.map +1 -1
- package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
- package/dist/services/subagents/mentor-runner.js +2 -0
- package/dist/services/subagents/mentor-runner.js.map +1 -1
- package/dist/services/subagents/nested-runner.d.ts.map +1 -1
- package/dist/services/subagents/nested-runner.js +34 -1
- package/dist/services/subagents/nested-runner.js.map +1 -1
- package/dist/services/subagents/subagent-async-registry.js +1 -1
- package/dist/services/subagents/subagent-async-registry.js.map +1 -1
- package/dist/services/subagents/subagent-notification-store.d.ts +28 -1
- package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
- package/dist/services/subagents/subagent-notification-store.js +11 -0
- 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 -5
- package/dist/services/subagents/tool-policy.js.map +1 -1
- package/dist/services/subagents/utils.d.ts +2 -0
- package/dist/services/subagents/utils.d.ts.map +1 -1
- package/dist/services/subagents/utils.js +29 -0
- package/dist/services/subagents/utils.js.map +1 -1
- package/dist/services/tool-execution-ledger.d.ts.map +1 -1
- package/dist/services/tool-execution-ledger.js +5 -1
- package/dist/services/tool-execution-ledger.js.map +1 -1
- 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/ask-user.d.ts.map +1 -1
- package/dist/tools/agent/ask-user.js +2 -0
- package/dist/tools/agent/ask-user.js.map +1 -1
- package/dist/tools/agent/run-subagent-async.d.ts +0 -1
- package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
- package/dist/tools/agent/run-subagent-async.js +3 -3
- package/dist/tools/agent/run-subagent-async.js.map +1 -1
- package/dist/tools/agent/run-subagent.d.ts +2 -2
- package/dist/tools/agent/run-subagent.d.ts.map +1 -1
- package/dist/tools/agent/run-subagent.js +44 -28
- package/dist/tools/agent/run-subagent.js.map +1 -1
- package/dist/tools/file/apply-patch.d.ts.map +1 -1
- package/dist/tools/file/apply-patch.js +11 -3
- package/dist/tools/file/apply-patch.js.map +1 -1
- package/dist/tools/file/create-file.d.ts.map +1 -1
- package/dist/tools/file/create-file.js +12 -4
- package/dist/tools/file/create-file.js.map +1 -1
- package/dist/tools/file/search-replace.d.ts.map +1 -1
- package/dist/tools/file/search-replace.js +10 -3
- package/dist/tools/file/search-replace.js.map +1 -1
- package/dist/tools/memory/memory-tools.d.ts +5 -1
- package/dist/tools/memory/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory/memory-tools.js +445 -62
- package/dist/tools/memory/memory-tools.js.map +1 -1
- package/dist/tools/session-browser/session-browser-tools.d.ts +4 -0
- package/dist/tools/session-browser/session-browser-tools.d.ts.map +1 -0
- package/dist/tools/session-browser/session-browser-tools.js +47 -0
- package/dist/tools/session-browser/session-browser-tools.js.map +1 -0
- package/dist/tools/system/shell.d.ts.map +1 -1
- package/dist/tools/system/shell.js +7 -0
- package/dist/tools/system/shell.js.map +1 -1
- package/dist/tools/types.d.ts +4 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/utils/busy-turn-guard.d.ts +17 -0
- package/dist/utils/busy-turn-guard.d.ts.map +1 -0
- package/dist/utils/busy-turn-guard.js +24 -0
- package/dist/utils/busy-turn-guard.js.map +1 -0
- package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
- package/dist/utils/conversation/conversation-event-handler.js +28 -7
- package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
- package/dist/utils/output/bounded-json.d.ts +33 -0
- package/dist/utils/output/bounded-json.d.ts.map +1 -0
- package/dist/utils/output/bounded-json.js +59 -0
- package/dist/utils/output/bounded-json.js.map +1 -0
- package/dist/utils/output/output-trim.d.ts.map +1 -1
- package/dist/utils/output/output-trim.js +7 -7
- package/dist/utils/output/output-trim.js.map +1 -1
- package/dist/utils/output/text-snippet.d.ts +6 -0
- package/dist/utils/output/text-snippet.d.ts.map +1 -0
- package/dist/utils/output/text-snippet.js +106 -0
- package/dist/utils/output/text-snippet.js.map +1 -0
- package/dist/utils/resume-list.d.ts +3 -1
- package/dist/utils/resume-list.d.ts.map +1 -1
- package/dist/utils/resume-list.js +3 -2
- 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 +15 -0
- package/dist/utils/settings-command.js.map +1 -1
- package/dist/utils/shell/command-safety/handlers/index.d.ts.map +1 -1
- package/dist/utils/shell/command-safety/handlers/index.js +3 -0
- package/dist/utils/shell/command-safety/handlers/index.js.map +1 -1
- package/dist/utils/shell/command-safety/handlers/rm-handler.d.ts +3 -0
- package/dist/utils/shell/command-safety/handlers/rm-handler.d.ts.map +1 -0
- package/dist/utils/shell/command-safety/handlers/rm-handler.js +97 -0
- package/dist/utils/shell/command-safety/handlers/rm-handler.js.map +1 -0
- package/dist/utils/shell/command-safety/handlers/types.d.ts +1 -0
- package/dist/utils/shell/command-safety/handlers/types.d.ts.map +1 -1
- package/dist/utils/shell/command-safety/index.d.ts +6 -2
- package/dist/utils/shell/command-safety/index.d.ts.map +1 -1
- package/dist/utils/shell/command-safety/index.js +13 -12
- package/dist/utils/shell/command-safety/index.js.map +1 -1
- package/dist/utils/shell/sandbox/sandbox-policy.d.ts +2 -0
- package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -1
- package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -1
- package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts +1 -0
- package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts.map +1 -1
- package/dist/utils/shell/sandbox/shell-sandbox-runner.js +20 -1
- package/dist/utils/shell/sandbox/shell-sandbox-runner.js.map +1 -1
- package/dist/utils/shell/temp-dir.d.ts +1 -0
- package/dist/utils/shell/temp-dir.d.ts.map +1 -1
- package/dist/utils/shell/temp-dir.js +12 -4
- package/dist/utils/shell/temp-dir.js.map +1 -1
- package/dist/utils/value-suggestions.d.ts.map +1 -1
- package/dist/utils/value-suggestions.js +1 -0
- package/dist/utils/value-suggestions.js.map +1 -1
- package/package.json +4 -2
|
@@ -4,7 +4,7 @@ import { buildPromptSpec } from './prompt-constructor.js';
|
|
|
4
4
|
it('buildPromptSpec preserves mode precedence for base prompts', () => {
|
|
5
5
|
expect(buildPromptSpec({ model: 'gpt-5.5', liteMode: true, orchestratorMode: true }).basePromptFile).toBe('lite.md');
|
|
6
6
|
expect(buildPromptSpec({ model: 'gpt-5.5', liteMode: false, orchestratorMode: true }).basePromptFile).toBe(
|
|
7
|
-
'
|
|
7
|
+
'gpt-5.5.md',
|
|
8
8
|
);
|
|
9
9
|
expect(buildPromptSpec({ model: 'claude-3-sonnet', liteMode: false }).basePromptFile).toBe('anthropic.md');
|
|
10
10
|
expect(buildPromptSpec({ model: 'gpt-5.3-codex', liteMode: false }).basePromptFile).toBe('codex.md');
|
|
@@ -27,7 +27,7 @@ it('buildPromptSpec keeps gpt-5.6 codex variants on the codex base prompt', () =
|
|
|
27
27
|
it('buildPromptSpec still applies mode precedence over the gpt-5.6 profile', () => {
|
|
28
28
|
expect(buildPromptSpec({ model: 'gpt-5.6', liteMode: true }).basePromptFile).toBe('lite.md');
|
|
29
29
|
expect(buildPromptSpec({ model: 'gpt-5.6', liteMode: false, orchestratorMode: true }).basePromptFile).toBe(
|
|
30
|
-
'
|
|
30
|
+
'gpt-5.6.md',
|
|
31
31
|
);
|
|
32
32
|
});
|
|
33
33
|
|
|
@@ -64,11 +64,30 @@ it('buildPromptSpec composes file fragments in stable order', () => {
|
|
|
64
64
|
searchViaShell: true,
|
|
65
65
|
});
|
|
66
66
|
|
|
67
|
-
expect(spec.fragmentFiles).toEqual([
|
|
67
|
+
expect(spec.fragmentFiles).toEqual([
|
|
68
|
+
'approval-model.md',
|
|
69
|
+
'worktree-hygiene.md',
|
|
70
|
+
'plan-mode-stub.md',
|
|
71
|
+
'mentor-mode-stub.md',
|
|
72
|
+
'orchestrator-mode-stub.md',
|
|
73
|
+
]);
|
|
68
74
|
|
|
69
75
|
expect(spec.inlineSections).toContainEqual(expect.stringContaining('## Shell Sandbox'));
|
|
70
76
|
});
|
|
71
77
|
|
|
78
|
+
it('buildPromptSpec ships the approval mechanism to every non-lite profile', () => {
|
|
79
|
+
for (const model of ['gpt-5.6-sol', 'gpt-5.5', 'gpt-5.4', 'gpt-4o', 'claude-opus-4', 'kimi-k2']) {
|
|
80
|
+
const spec = buildPromptSpec({ model, liteMode: false });
|
|
81
|
+
expect(spec.fragmentFiles).toContain('approval-model.md');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const orchestrator = buildPromptSpec({ model: 'gpt-5.6-sol', liteMode: false, orchestratorMode: true });
|
|
85
|
+
expect(orchestrator.fragmentFiles).toContain('approval-model.md');
|
|
86
|
+
|
|
87
|
+
const lite = buildPromptSpec({ model: 'gpt-5.6-sol', liteMode: true });
|
|
88
|
+
expect(lite.fragmentFiles).not.toContain('approval-model.md');
|
|
89
|
+
});
|
|
90
|
+
|
|
72
91
|
it('buildPromptSpec attaches the Plan Mode stub in standard and plan mode so the instruction prefix stays cache-stable', () => {
|
|
73
92
|
const standard = buildPromptSpec({ model: 'gpt-4o', liteMode: false, planMode: false });
|
|
74
93
|
expect(standard.fragmentFiles.includes('plan-mode-stub.md')).toBe(true);
|
|
@@ -80,14 +99,29 @@ it('buildPromptSpec attaches the Plan Mode stub in standard and plan mode so the
|
|
|
80
99
|
expect(plan.fragmentFiles).toEqual(standard.fragmentFiles);
|
|
81
100
|
});
|
|
82
101
|
|
|
83
|
-
it('buildPromptSpec
|
|
102
|
+
it('buildPromptSpec keeps all non-lite mode stubs stable while lite stays minimal', () => {
|
|
84
103
|
const lite = buildPromptSpec({ model: 'gpt-5.5', liteMode: true, planMode: false });
|
|
85
104
|
expect(lite.fragmentFiles.includes('plan-mode-info.md')).toBe(false);
|
|
86
105
|
expect(lite.fragmentFiles.includes('plan-mode-stub.md')).toBe(false);
|
|
106
|
+
expect(lite.fragmentFiles.includes('mentor-mode-stub.md')).toBe(false);
|
|
107
|
+
expect(lite.fragmentFiles.includes('orchestrator-mode-stub.md')).toBe(false);
|
|
87
108
|
|
|
88
109
|
const orchestrator = buildPromptSpec({ model: 'gpt-5.5', liteMode: false, orchestratorMode: true, planMode: false });
|
|
89
110
|
expect(orchestrator.fragmentFiles.includes('plan-mode-info.md')).toBe(false);
|
|
90
|
-
expect(orchestrator.fragmentFiles.includes('plan-mode-stub.md')).toBe(
|
|
111
|
+
expect(orchestrator.fragmentFiles.includes('plan-mode-stub.md')).toBe(true);
|
|
112
|
+
expect(orchestrator.fragmentFiles.includes('mentor-mode-stub.md')).toBe(true);
|
|
113
|
+
expect(orchestrator.fragmentFiles.includes('orchestrator-mode-stub.md')).toBe(true);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it('buildPromptSpec keeps the non-lite instruction prefix identical across modes', () => {
|
|
117
|
+
const standard = buildPromptSpec({ model: 'gpt-4o', liteMode: false });
|
|
118
|
+
const plan = buildPromptSpec({ model: 'gpt-4o', liteMode: false, planMode: true });
|
|
119
|
+
const mentor = buildPromptSpec({ model: 'gpt-4o', liteMode: false, mentorMode: true });
|
|
120
|
+
const orchestrator = buildPromptSpec({ model: 'gpt-4o', liteMode: false, orchestratorMode: true });
|
|
121
|
+
|
|
122
|
+
expect(plan).toEqual(standard);
|
|
123
|
+
expect(mentor).toEqual(standard);
|
|
124
|
+
expect(orchestrator).toEqual(standard);
|
|
91
125
|
});
|
|
92
126
|
|
|
93
127
|
it('buildPromptSpec includes subagent delegation for orchestrator mode', () => {
|
|
@@ -8,6 +8,7 @@ import { getBackgroundShellAddendum } from './background-shell.js';
|
|
|
8
8
|
export type PromptConstructorOptions = {
|
|
9
9
|
model: string;
|
|
10
10
|
liteMode: boolean;
|
|
11
|
+
/** Runtime-only mode flags; mode-specific workflows are sent as notices. */
|
|
11
12
|
orchestratorMode?: boolean;
|
|
12
13
|
mentorMode?: boolean;
|
|
13
14
|
planMode?: boolean;
|
|
@@ -21,6 +22,7 @@ export type PromptConstructorOptions = {
|
|
|
21
22
|
sandboxEnabled?: boolean;
|
|
22
23
|
memoryEnabled?: boolean;
|
|
23
24
|
memoryGuidance?: string;
|
|
25
|
+
sessionBrowserEnabled?: boolean;
|
|
24
26
|
executionContext?: ExecutionContext;
|
|
25
27
|
};
|
|
26
28
|
|
|
@@ -34,8 +36,6 @@ export function buildPromptSpec(options: PromptConstructorOptions): PromptSpec {
|
|
|
34
36
|
const {
|
|
35
37
|
model,
|
|
36
38
|
liteMode,
|
|
37
|
-
orchestratorMode = false,
|
|
38
|
-
mentorMode = false,
|
|
39
39
|
searchViaShell = false,
|
|
40
40
|
runSubagentEnabled = false,
|
|
41
41
|
runSubagentForegroundEnabled = false,
|
|
@@ -45,19 +45,29 @@ export function buildPromptSpec(options: PromptConstructorOptions): PromptSpec {
|
|
|
45
45
|
sandboxEnabled = true,
|
|
46
46
|
memoryEnabled = false,
|
|
47
47
|
memoryGuidance = '',
|
|
48
|
+
sessionBrowserEnabled = false,
|
|
48
49
|
executionContext,
|
|
49
50
|
} = options;
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
// Runtime modes are intentionally absent from profile selection. Their full
|
|
53
|
+
// workflows ride on the next user turn so rebuilding the agent does not
|
|
54
|
+
// invalidate the provider's instruction prefix.
|
|
55
|
+
const profile = selectPromptProfile({ model, liteMode });
|
|
52
56
|
const fragmentFiles = [...(profile.fragmentFiles ?? [])];
|
|
53
57
|
const inlineSections: string[] = [];
|
|
54
58
|
|
|
55
59
|
const isRegularMode = !liteMode;
|
|
56
|
-
const isAgentMode = !orchestratorMode;
|
|
57
60
|
// Orchestrators can directly modify the worktree, so every non-lite prompt
|
|
58
61
|
// receives the shared dirty-state and validation safeguards.
|
|
59
62
|
const shouldIncludeWorktreeHygiene = !liteMode;
|
|
60
63
|
|
|
64
|
+
// Every non-lite prompt states how the approval layer works. Without it a
|
|
65
|
+
// model has no mechanism for "requires confirmation" other than stopping the
|
|
66
|
+
// turn to ask, which it then does even under auto-approval.
|
|
67
|
+
if (!liteMode) {
|
|
68
|
+
fragmentFiles.push('approval-model.md');
|
|
69
|
+
}
|
|
70
|
+
|
|
61
71
|
if (shouldIncludeWorktreeHygiene) {
|
|
62
72
|
fragmentFiles.push('worktree-hygiene.md');
|
|
63
73
|
}
|
|
@@ -70,11 +80,7 @@ export function buildPromptSpec(options: PromptConstructorOptions): PromptSpec {
|
|
|
70
80
|
inlineSections.push(getBackgroundShellAddendum());
|
|
71
81
|
}
|
|
72
82
|
|
|
73
|
-
if (
|
|
74
|
-
fragmentFiles.push('mentor-addon.md');
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (isAgentMode && searchViaShell) {
|
|
83
|
+
if (isRegularMode && searchViaShell) {
|
|
78
84
|
inlineSections.push(getSearchViaShellAddendum({ executionContext }));
|
|
79
85
|
}
|
|
80
86
|
|
|
@@ -82,7 +88,7 @@ export function buildPromptSpec(options: PromptConstructorOptions): PromptSpec {
|
|
|
82
88
|
inlineSections.push(
|
|
83
89
|
getSubagentDelegationAddendum({
|
|
84
90
|
memoryEnabled,
|
|
85
|
-
orchestratorMode,
|
|
91
|
+
orchestratorMode: false,
|
|
86
92
|
foregroundEnabled: runSubagentForegroundEnabled,
|
|
87
93
|
backgroundEnabled: runSubagentAsyncEnabled,
|
|
88
94
|
controlsEnabled: asyncSubagentControlsEnabled,
|
|
@@ -90,17 +96,23 @@ export function buildPromptSpec(options: PromptConstructorOptions): PromptSpec {
|
|
|
90
96
|
);
|
|
91
97
|
}
|
|
92
98
|
|
|
93
|
-
if (isRegularMode
|
|
94
|
-
//
|
|
95
|
-
// toggle cannot change the instruction prefix (prompt
|
|
96
|
-
// Responses-Lite HTTP omit developer instructions).
|
|
99
|
+
if (isRegularMode) {
|
|
100
|
+
// Keep all mode stubs in every non-lite prompt. The full workflows ride on
|
|
101
|
+
// mode notices so a toggle cannot change the instruction prefix (prompt
|
|
102
|
+
// cache + chained Responses-Lite HTTP omit developer instructions).
|
|
97
103
|
fragmentFiles.push('plan-mode-stub.md');
|
|
104
|
+
fragmentFiles.push('mentor-mode-stub.md');
|
|
105
|
+
fragmentFiles.push('orchestrator-mode-stub.md');
|
|
98
106
|
}
|
|
99
107
|
|
|
100
|
-
if (memoryEnabled &&
|
|
108
|
+
if (memoryEnabled && isRegularMode) {
|
|
101
109
|
fragmentFiles.push('memory.md');
|
|
102
110
|
}
|
|
103
111
|
|
|
112
|
+
if (sessionBrowserEnabled) {
|
|
113
|
+
fragmentFiles.push('session-browser.md');
|
|
114
|
+
}
|
|
115
|
+
|
|
104
116
|
if (memoryGuidance) {
|
|
105
117
|
inlineSections.push(memoryGuidance);
|
|
106
118
|
}
|
|
@@ -5,13 +5,11 @@ export type PromptProfile = {
|
|
|
5
5
|
matches: (options: {
|
|
6
6
|
normalizedModel: string;
|
|
7
7
|
liteMode: boolean;
|
|
8
|
-
orchestratorMode?: boolean;
|
|
9
8
|
}) => boolean;
|
|
10
9
|
};
|
|
11
10
|
export declare const PROMPT_PROFILES: PromptProfile[];
|
|
12
|
-
export declare function selectPromptProfile({ model, liteMode
|
|
11
|
+
export declare function selectPromptProfile({ model, liteMode }: {
|
|
13
12
|
model: string;
|
|
14
13
|
liteMode: boolean;
|
|
15
|
-
orchestratorMode?: boolean;
|
|
16
14
|
}): PromptProfile;
|
|
17
15
|
//# sourceMappingURL=prompt-profiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-profiles.d.ts","sourceRoot":"","sources":["../../source/prompts/prompt-profiles.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,OAAO,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"prompt-profiles.d.ts","sourceRoot":"","sources":["../../source/prompts/prompt-profiles.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,OAAO,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC;CAC/E,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,aAAa,EAyD1C,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,CAG5G"}
|
|
@@ -4,11 +4,6 @@ export const PROMPT_PROFILES = [
|
|
|
4
4
|
basePromptFile: 'lite.md',
|
|
5
5
|
matches: ({ liteMode }) => liteMode,
|
|
6
6
|
},
|
|
7
|
-
{
|
|
8
|
-
id: 'orchestrator',
|
|
9
|
-
basePromptFile: 'orchestrator.md',
|
|
10
|
-
matches: ({ orchestratorMode }) => Boolean(orchestratorMode),
|
|
11
|
-
},
|
|
12
7
|
{
|
|
13
8
|
id: 'anthropic',
|
|
14
9
|
basePromptFile: 'anthropic.md',
|
|
@@ -60,8 +55,8 @@ export const PROMPT_PROFILES = [
|
|
|
60
55
|
matches: () => true,
|
|
61
56
|
},
|
|
62
57
|
];
|
|
63
|
-
export function selectPromptProfile({ model, liteMode
|
|
58
|
+
export function selectPromptProfile({ model, liteMode }) {
|
|
64
59
|
const normalizedModel = model.trim().toLowerCase();
|
|
65
|
-
return PROMPT_PROFILES.find((profile) => profile.matches({ normalizedModel, liteMode
|
|
60
|
+
return PROMPT_PROFILES.find((profile) => profile.matches({ normalizedModel, liteMode }));
|
|
66
61
|
}
|
|
67
62
|
//# sourceMappingURL=prompt-profiles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-profiles.js","sourceRoot":"","sources":["../../source/prompts/prompt-profiles.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C;QACE,EAAE,EAAE,MAAM;QACV,cAAc,EAAE,SAAS;QACzB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ;KACpC;IACD;QACE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"prompt-profiles.js","sourceRoot":"","sources":["../../source/prompts/prompt-profiles.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C;QACE,EAAE,EAAE,MAAM;QACV,cAAc,EAAE,SAAS;QACzB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ;KACpC;IACD;QACE,EAAE,EAAE,WAAW;QACf,cAAc,EAAE,cAAc;QAC9B,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC1G;IACD;QACE,EAAE,EAAE,eAAe;QACnB,cAAc,EAAE,UAAU;QAC1B,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC3G;IACD;QACE,EAAE,EAAE,aAAa;QACjB,cAAc,EAAE,UAAU;QAC1B,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;KACzG;IACD;QACE,EAAE,EAAE,SAAS;QACb,cAAc,EAAE,YAAY;QAC5B,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;KACtE;IACD;QACE,EAAE,EAAE,SAAS;QACb,cAAc,EAAE,YAAY;QAC5B,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;KACtE;IACD;QACE,EAAE,EAAE,eAAe;QACnB,cAAc,EAAE,iBAAiB;QACjC,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAC/B,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAChH;IACD;QACE,EAAE,EAAE,SAAS;QACb,cAAc,EAAE,iBAAiB;QACjC,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;KACtE;IACD;QACE,EAAE,EAAE,cAAc;QAClB,cAAc,EAAE,iBAAiB;QACjC,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;KACpE;IACD;QACE,EAAE,EAAE,MAAM;QACV,cAAc,EAAE,SAAS;QACzB,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACrE;IACD;QACE,EAAE,EAAE,SAAS;QACb,cAAc,EAAE,cAAc;QAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACpB;CACF,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAwC;IAC3F,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAE,CAAC;AAC5F,CAAC"}
|
|
@@ -2,7 +2,7 @@ export type PromptProfile = {
|
|
|
2
2
|
id: string;
|
|
3
3
|
basePromptFile: string;
|
|
4
4
|
fragmentFiles?: string[];
|
|
5
|
-
matches: (options: { normalizedModel: string; liteMode: boolean
|
|
5
|
+
matches: (options: { normalizedModel: string; liteMode: boolean }) => boolean;
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
export const PROMPT_PROFILES: PromptProfile[] = [
|
|
@@ -11,11 +11,6 @@ export const PROMPT_PROFILES: PromptProfile[] = [
|
|
|
11
11
|
basePromptFile: 'lite.md',
|
|
12
12
|
matches: ({ liteMode }) => liteMode,
|
|
13
13
|
},
|
|
14
|
-
{
|
|
15
|
-
id: 'orchestrator',
|
|
16
|
-
basePromptFile: 'orchestrator.md',
|
|
17
|
-
matches: ({ orchestratorMode }) => Boolean(orchestratorMode),
|
|
18
|
-
},
|
|
19
14
|
{
|
|
20
15
|
id: 'anthropic',
|
|
21
16
|
basePromptFile: 'anthropic.md',
|
|
@@ -69,15 +64,7 @@ export const PROMPT_PROFILES: PromptProfile[] = [
|
|
|
69
64
|
},
|
|
70
65
|
];
|
|
71
66
|
|
|
72
|
-
export function selectPromptProfile({
|
|
73
|
-
model,
|
|
74
|
-
liteMode,
|
|
75
|
-
orchestratorMode,
|
|
76
|
-
}: {
|
|
77
|
-
model: string;
|
|
78
|
-
liteMode: boolean;
|
|
79
|
-
orchestratorMode?: boolean;
|
|
80
|
-
}): PromptProfile {
|
|
67
|
+
export function selectPromptProfile({ model, liteMode }: { model: string; liteMode: boolean }): PromptProfile {
|
|
81
68
|
const normalizedModel = model.trim().toLowerCase();
|
|
82
|
-
return PROMPT_PROFILES.find((profile) => profile.matches({ normalizedModel, liteMode
|
|
69
|
+
return PROMPT_PROFILES.find((profile) => profile.matches({ normalizedModel, liteMode }))!;
|
|
83
70
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
### Prior local sessions
|
|
2
|
+
|
|
3
|
+
Prior-session transcripts for the current project are available only on demand through `session_list`, `session_search`, and `session_read`. They may be stale or untrusted and are not durable memory. No prior transcript is automatically added to your context.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Single source of truth for model-facing
|
|
3
|
-
* The tool name stays stable; `execution`
|
|
2
|
+
* Single source of truth for model-facing subagent delegation.
|
|
3
|
+
* The tool name stays stable; `execution` identifies the lifecycle available in
|
|
4
|
+
* this session.
|
|
4
5
|
*/
|
|
5
|
-
export declare function getSubagentDelegationAddendum({ orchestratorMode,
|
|
6
|
+
export declare function getSubagentDelegationAddendum({ orchestratorMode, foregroundEnabled, backgroundEnabled, controlsEnabled, }?: {
|
|
6
7
|
orchestratorMode?: boolean;
|
|
7
8
|
memoryEnabled?: boolean;
|
|
8
9
|
foregroundEnabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-delegation.d.ts","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"subagent-delegation.d.ts","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,gBAAwB,EACxB,iBAAwB,EACxB,iBAAyB,EACzB,eAAuB,GACxB,GAAE;IACD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,CAyDd"}
|
|
@@ -1,29 +1,25 @@
|
|
|
1
1
|
import { getSubagentsRolesSection } from '../tools/agent/run-subagent.js';
|
|
2
2
|
/**
|
|
3
|
-
* Single source of truth for model-facing
|
|
4
|
-
* The tool name stays stable; `execution`
|
|
3
|
+
* Single source of truth for model-facing subagent delegation.
|
|
4
|
+
* The tool name stays stable; `execution` identifies the lifecycle available in
|
|
5
|
+
* this session.
|
|
5
6
|
*/
|
|
6
|
-
export function getSubagentDelegationAddendum({ orchestratorMode = false,
|
|
7
|
-
const executions =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
: '
|
|
11
|
-
|
|
12
|
-
? '- `execution: "background"`: starts a conversation-scoped run and returns `{ runId, status: "running" }` immediately. Use it when work can continue after you return control.'
|
|
13
|
-
: '',
|
|
14
|
-
]
|
|
15
|
-
.filter(Boolean)
|
|
16
|
-
.join('\n');
|
|
7
|
+
export function getSubagentDelegationAddendum({ orchestratorMode = false, foregroundEnabled = true, backgroundEnabled = false, controlsEnabled = false, } = {}) {
|
|
8
|
+
const executions = backgroundEnabled
|
|
9
|
+
? '- `execution: "background"`: the only execution mode in this session. It starts a conversation-scoped run and returns `{ runId, status: "running" }` immediately.'
|
|
10
|
+
: foregroundEnabled
|
|
11
|
+
? '- `execution: "foreground"`: the only execution mode in this session. It runs through the nested subagent path and returns its structured result in this turn.'
|
|
12
|
+
: '';
|
|
17
13
|
const header = `### Delegating to subagents
|
|
18
14
|
|
|
19
|
-
You have one \`run_subagent\` tool. A subagent runs in its own context and returns only a summary, keeping your own context focused on high-level reasoning. Its required \`execution\` field
|
|
15
|
+
You have one \`run_subagent\` tool. A subagent runs in its own context and returns only a summary, keeping your own context focused on high-level reasoning. Its required \`execution\` field identifies the only lifecycle available in this session:
|
|
20
16
|
|
|
21
17
|
${executions}`;
|
|
22
18
|
const triggers = `**Delegate when it provides meaningful leverage:**
|
|
23
19
|
- Need bounded evidence collection, context compression, or current external information (library docs, best practices, version-specific behavior) → \`explorer\`.
|
|
24
20
|
${backgroundEnabled
|
|
25
21
|
? '- About to commit to a non-trivial plan or tricky debugging direction and want it pressure-tested → `mentor`.\n'
|
|
26
|
-
: ''}
|
|
22
|
+
: ''}- Have a cohesive, separable implementation or review unit with a checkable done condition → \`worker\`.
|
|
27
23
|
|
|
28
24
|
Explorer is an evidence collector, not a reasoning delegate. Ask it to locate and organize concrete facts, files, symbols, logs, tests, or sources for a bounded question. Do not pass the user's entire investigation, diagnosis, review, or planning task to explorer. You retain responsibility for hypotheses, causal analysis, judgments, and recommendations.${orchestratorMode
|
|
29
25
|
? `
|
|
@@ -36,8 +32,8 @@ Otherwise, just do it yourself — especially when the task needs mid-flight cou
|
|
|
36
32
|
? `**Background execution rules:**
|
|
37
33
|
- A returned handle with \`status: "running"\` means delegation succeeded. Do not duplicate or independently perform the delegated unit.
|
|
38
34
|
- Do NOT call \`get_subagent_result\` immediately after a background launch. Active runs are refused rather than awaited. End the current turn and wait for the completion notification, which inlines the full result so you can continue directly.
|
|
39
|
-
- Fresh background runs support explorer, worker,
|
|
40
|
-
- Use \`get_subagent_result\` only with the exact \`runId\` from a completed run when you need to re-fetch a result already received. Mentor
|
|
35
|
+
- Fresh background runs support explorer, worker, and mentor. They persist across ordinary parent-turn completion in process memory until the 30-minute sliding TTL expires or the 50-session cap evicts them.
|
|
36
|
+
- Use \`get_subagent_result\` only with the exact \`runId\` from a completed run when you need to re-fetch a result already received. Mentor fresh calls reuse their default session; explorer fresh calls start a new session. Worker runs are always fresh and cannot be continued. Only completed non-worker runs support \`continue_run_id\`; do not invent runIds or continue active, failed, cancelled, missing, or evicted runs.${controlsEnabled
|
|
41
37
|
? `
|
|
42
38
|
- Address \`send_message\` and \`cancel_run\` by the active name or runId; runId remains canonical. \`send_message\` non-blockingly steers an active execution run or answers a waiting \`ask_orchestrator\` question with \`reply_to\`; \`cancel_run\` non-blockingly requests cancellation.
|
|
43
39
|
- Steering never waits for a result. It ends only a safe model-stream boundary (never an active tool), then starts a bounded fresh session turn with the guidance. This is not SDK live injection or RunState continuation. A run accepts a maximum of three continuation segments. Mentor runs do not support steering; cancel them if needed.
|
|
@@ -49,7 +45,7 @@ Otherwise, just do it yourself — especially when the task needs mid-flight cou
|
|
|
49
45
|
|
|
50
46
|
Do not repeat automatically supplied context: role instructions, generic tool guidance, worktree hygiene, environment metadata, root \`AGENTS.md\`, or skills catalog. The subagent does not see your conversation or reasoning, so include only objective, task-specific scope, non-discoverable parent findings or decisions, constraints, deliverable or acceptance criteria, and validation when applicable.`;
|
|
51
47
|
return `${header}\n\n${triggers}${backgroundRules ? `\n\n${backgroundRules}` : ''}\n\n${planningStep}\n\n${getSubagentsRolesSection({
|
|
52
|
-
includeLibrarian:
|
|
48
|
+
includeLibrarian: false,
|
|
53
49
|
includeMentor: backgroundEnabled,
|
|
54
50
|
})}`;
|
|
55
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-delegation.js","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E
|
|
1
|
+
{"version":3,"file":"subagent-delegation.js","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,EAC5C,gBAAgB,GAAG,KAAK,EACxB,iBAAiB,GAAG,IAAI,EACxB,iBAAiB,GAAG,KAAK,EACzB,eAAe,GAAG,KAAK,GACxB,GAMG,EAAE;IACJ,MAAM,UAAU,GAAG,iBAAiB;QAClC,CAAC,CAAC,mKAAmK;QACrK,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,gKAAgK;YAClK,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,MAAM,GAAG;;;;EAIf,UAAU,EAAE,CAAC;IAEb,MAAM,QAAQ,GAAG;;EAGjB,iBAAiB;QACf,CAAC,CAAC,iHAAiH;QACnH,CAAC,CAAC,EACN;;qWAGI,gBAAgB;QACd,CAAC,CAAC;;8VAEsV;QACxV,CAAC,CAAC;;6LAGN,EAAE,CAAC;IAEH,MAAM,eAAe,GAAG,iBAAiB;QACvC,CAAC,CAAC;;;;yaAKE,eAAe;YACb,CAAC,CAAC;;;;gHAIoG;YACtG,CAAC,CAAC,EACN,EAAE;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,YAAY,GAAG;;iZAE0X,CAAC;IAEhZ,OAAO,GAAG,MAAM,OAAO,QAAQ,GAC7B,eAAe,CAAC,CAAC,CAAC,OAAO,eAAe,EAAE,CAAC,CAAC,CAAC,EAC/C,OAAO,YAAY,OAAO,wBAAwB,CAAC;QACjD,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,iBAAiB;KACjC,CAAC,EAAE,CAAC;AACP,CAAC"}
|
|
@@ -79,9 +79,9 @@ it('retains worker autonomy without mandatory pre-delegation ceremony', () => {
|
|
|
79
79
|
expect(result).not.toContain('Before any `run_subagent` call, plan silently');
|
|
80
80
|
});
|
|
81
81
|
|
|
82
|
-
it('
|
|
82
|
+
it('uses the direct synthesis operation instead of advertising librarian delegation', () => {
|
|
83
83
|
const result = getSubagentDelegationAddendum({ memoryEnabled: true });
|
|
84
|
-
expect(result.includes('librarian')).toBe(
|
|
84
|
+
expect(result.includes('librarian')).toBe(false);
|
|
85
85
|
});
|
|
86
86
|
|
|
87
87
|
it('does not advertise the librarian when persistent memory is disabled', () => {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { getSubagentsRolesSection } from '../tools/agent/run-subagent.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Single source of truth for model-facing
|
|
5
|
-
* The tool name stays stable; `execution`
|
|
4
|
+
* Single source of truth for model-facing subagent delegation.
|
|
5
|
+
* The tool name stays stable; `execution` identifies the lifecycle available in
|
|
6
|
+
* this session.
|
|
6
7
|
*/
|
|
7
8
|
export function getSubagentDelegationAddendum({
|
|
8
9
|
orchestratorMode = false,
|
|
9
|
-
memoryEnabled = true,
|
|
10
10
|
foregroundEnabled = true,
|
|
11
11
|
backgroundEnabled = false,
|
|
12
12
|
controlsEnabled = false,
|
|
@@ -17,20 +17,15 @@ export function getSubagentDelegationAddendum({
|
|
|
17
17
|
backgroundEnabled?: boolean;
|
|
18
18
|
controlsEnabled?: boolean;
|
|
19
19
|
} = {}): string {
|
|
20
|
-
const executions =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
? '- `execution: "background"`: starts a conversation-scoped run and returns `{ runId, status: "running" }` immediately. Use it when work can continue after you return control.'
|
|
26
|
-
: '',
|
|
27
|
-
]
|
|
28
|
-
.filter(Boolean)
|
|
29
|
-
.join('\n');
|
|
20
|
+
const executions = backgroundEnabled
|
|
21
|
+
? '- `execution: "background"`: the only execution mode in this session. It starts a conversation-scoped run and returns `{ runId, status: "running" }` immediately.'
|
|
22
|
+
: foregroundEnabled
|
|
23
|
+
? '- `execution: "foreground"`: the only execution mode in this session. It runs through the nested subagent path and returns its structured result in this turn.'
|
|
24
|
+
: '';
|
|
30
25
|
|
|
31
26
|
const header = `### Delegating to subagents
|
|
32
27
|
|
|
33
|
-
You have one \`run_subagent\` tool. A subagent runs in its own context and returns only a summary, keeping your own context focused on high-level reasoning. Its required \`execution\` field
|
|
28
|
+
You have one \`run_subagent\` tool. A subagent runs in its own context and returns only a summary, keeping your own context focused on high-level reasoning. Its required \`execution\` field identifies the only lifecycle available in this session:
|
|
34
29
|
|
|
35
30
|
${executions}`;
|
|
36
31
|
|
|
@@ -40,9 +35,7 @@ ${
|
|
|
40
35
|
backgroundEnabled
|
|
41
36
|
? '- About to commit to a non-trivial plan or tricky debugging direction and want it pressure-tested → `mentor`.\n'
|
|
42
37
|
: ''
|
|
43
|
-
}
|
|
44
|
-
memoryEnabled ? '- Need relevant persistent-memory context or memory maintenance → `librarian`.\n' : ''
|
|
45
|
-
}- Have a cohesive, separable implementation or review unit with a checkable done condition → \`worker\`.
|
|
38
|
+
}- Have a cohesive, separable implementation or review unit with a checkable done condition → \`worker\`.
|
|
46
39
|
|
|
47
40
|
Explorer is an evidence collector, not a reasoning delegate. Ask it to locate and organize concrete facts, files, symbols, logs, tests, or sources for a bounded question. Do not pass the user's entire investigation, diagnosis, review, or planning task to explorer. You retain responsibility for hypotheses, causal analysis, judgments, and recommendations.${
|
|
48
41
|
orchestratorMode
|
|
@@ -58,8 +51,8 @@ Otherwise, just do it yourself — especially when the task needs mid-flight cou
|
|
|
58
51
|
? `**Background execution rules:**
|
|
59
52
|
- A returned handle with \`status: "running"\` means delegation succeeded. Do not duplicate or independently perform the delegated unit.
|
|
60
53
|
- Do NOT call \`get_subagent_result\` immediately after a background launch. Active runs are refused rather than awaited. End the current turn and wait for the completion notification, which inlines the full result so you can continue directly.
|
|
61
|
-
- Fresh background runs support explorer, worker,
|
|
62
|
-
- Use \`get_subagent_result\` only with the exact \`runId\` from a completed run when you need to re-fetch a result already received. Mentor
|
|
54
|
+
- Fresh background runs support explorer, worker, and mentor. They persist across ordinary parent-turn completion in process memory until the 30-minute sliding TTL expires or the 50-session cap evicts them.
|
|
55
|
+
- Use \`get_subagent_result\` only with the exact \`runId\` from a completed run when you need to re-fetch a result already received. Mentor fresh calls reuse their default session; explorer fresh calls start a new session. Worker runs are always fresh and cannot be continued. Only completed non-worker runs support \`continue_run_id\`; do not invent runIds or continue active, failed, cancelled, missing, or evicted runs.${
|
|
63
56
|
controlsEnabled
|
|
64
57
|
? `
|
|
65
58
|
- Address \`send_message\` and \`cancel_run\` by the active name or runId; runId remains canonical. \`send_message\` non-blockingly steers an active execution run or answers a waiting \`ask_orchestrator\` question with \`reply_to\`; \`cancel_run\` non-blockingly requests cancellation.
|
|
@@ -77,7 +70,7 @@ Do not repeat automatically supplied context: role instructions, generic tool gu
|
|
|
77
70
|
return `${header}\n\n${triggers}${
|
|
78
71
|
backgroundRules ? `\n\n${backgroundRules}` : ''
|
|
79
72
|
}\n\n${planningStep}\n\n${getSubagentsRolesSection({
|
|
80
|
-
includeLibrarian:
|
|
73
|
+
includeLibrarian: false,
|
|
81
74
|
includeMentor: backgroundEnabled,
|
|
82
75
|
})}`;
|
|
83
76
|
}
|
|
@@ -73,8 +73,9 @@ export declare class ChainedWireState {
|
|
|
73
73
|
*
|
|
74
74
|
* Stores the request as pending so a future `recordResponse` call can
|
|
75
75
|
* correlate it. If a stored response chain exists for the same key and the
|
|
76
|
-
* fingerprints
|
|
77
|
-
*
|
|
76
|
+
* fingerprints match, the request input is trimmed to a delta. A matching
|
|
77
|
+
* `previous_response_id` is used when the caller supplies one; otherwise the
|
|
78
|
+
* stored id is adopted so callers that do not track response IDs still chain.
|
|
78
79
|
*/
|
|
79
80
|
prepare(key: ChainedWireStateKey, token: ChainedRequestToken, requestData: Record<string, unknown>): PreparedChainedRequest;
|
|
80
81
|
/**
|
|
@@ -90,6 +91,10 @@ export declare class ChainedWireState {
|
|
|
90
91
|
* Remove all state (stored and pending) for a single key.
|
|
91
92
|
*/
|
|
92
93
|
invalidate(key: ChainedWireStateKey): void;
|
|
94
|
+
/**
|
|
95
|
+
* Return the active stored response ID for a key, if any.
|
|
96
|
+
*/
|
|
97
|
+
getStoredResponseId(key: ChainedWireStateKey): string | undefined;
|
|
93
98
|
/**
|
|
94
99
|
* Remove all state across every key. Safe to call on an empty instance.
|
|
95
100
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chained-wire-state.d.ts","sourceRoot":"","sources":["../../source/providers/chained-wire-state.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACzC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;IAE1D,yEAAyE;IACzE,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;IAEhF;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE/E;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IAEvC;;;;OAIG;IACH,oBAAoB,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;IAE1D;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;CACnD;AAED,kDAAkD;AAClD,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,yFAAyF;IACzF,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AA8BD;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAKf,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4E;IACpG,OAAO,CAAC,YAAY,CAAK;IAEzB,YAA6B,QAAQ,EAAE,mBAAmB,EAAI;IAE9D
|
|
1
|
+
{"version":3,"file":"chained-wire-state.d.ts","sourceRoot":"","sources":["../../source/providers/chained-wire-state.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACzC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;IAE1D,yEAAyE;IACzE,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;IAEhF;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE/E;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IAEvC;;;;OAIG;IACH,oBAAoB,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;IAE1D;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;CACnD;AAED,kDAAkD;AAClD,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,yFAAyF;IACzF,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AA8BD;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAKf,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4E;IACpG,OAAO,CAAC,YAAY,CAAK;IAEzB,YAA6B,QAAQ,EAAE,mBAAmB,EAAI;IAE9D;;;;;;;;OAQG;IACH,OAAO,CACL,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,mBAAmB,EAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,sBAAsB,CAiDxB;IAED;;;OAGG;IACH,cAAc,CACZ,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,OAAO,EAAE,GACrB,IAAI,CAmBN;IAED;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAQlE;IAED;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGzC;IAED;;OAEG;IACH,mBAAmB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAEhE;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;CACF"}
|
|
@@ -36,8 +36,9 @@ export class ChainedWireState {
|
|
|
36
36
|
*
|
|
37
37
|
* Stores the request as pending so a future `recordResponse` call can
|
|
38
38
|
* correlate it. If a stored response chain exists for the same key and the
|
|
39
|
-
* fingerprints
|
|
40
|
-
*
|
|
39
|
+
* fingerprints match, the request input is trimmed to a delta. A matching
|
|
40
|
+
* `previous_response_id` is used when the caller supplies one; otherwise the
|
|
41
|
+
* stored id is adopted so callers that do not track response IDs still chain.
|
|
41
42
|
*/
|
|
42
43
|
prepare(key, token, requestData) {
|
|
43
44
|
const input = this.protocol.getInput(requestData);
|
|
@@ -54,13 +55,15 @@ export class ChainedWireState {
|
|
|
54
55
|
input: [...input],
|
|
55
56
|
sequence: existingPending?.sequence ?? this.nextSequence++,
|
|
56
57
|
});
|
|
57
|
-
const
|
|
58
|
+
const requestedPreviousResponseId = this.protocol.getPreviousResponseId(requestData);
|
|
58
59
|
const stored = this.stored.get(key);
|
|
59
|
-
// No stored chain,
|
|
60
|
-
//
|
|
61
|
-
|
|
60
|
+
// No stored chain, or the caller named a stale response id → full request.
|
|
61
|
+
// Omitting previous_response_id is not a break: nested Luna explorers never
|
|
62
|
+
// track the id, so the stored chain is the continuation the server holds.
|
|
63
|
+
if (!stored || (requestedPreviousResponseId && stored.responseId !== requestedPreviousResponseId)) {
|
|
62
64
|
return { requestData, usedDelta: false, token };
|
|
63
65
|
}
|
|
66
|
+
const previousResponseId = requestedPreviousResponseId ?? stored.responseId;
|
|
64
67
|
// Fingerprint changed → incompatible chain, full request.
|
|
65
68
|
if (stored.fingerprint !== fingerprint) {
|
|
66
69
|
return { requestData, usedDelta: false, token };
|
|
@@ -75,7 +78,7 @@ export class ChainedWireState {
|
|
|
75
78
|
return { requestData, usedDelta: false, token };
|
|
76
79
|
}
|
|
77
80
|
return {
|
|
78
|
-
requestData: { ...requestData, input: delta },
|
|
81
|
+
requestData: { ...requestData, previous_response_id: previousResponseId, input: delta },
|
|
79
82
|
usedDelta: true,
|
|
80
83
|
token,
|
|
81
84
|
};
|
|
@@ -123,6 +126,12 @@ export class ChainedWireState {
|
|
|
123
126
|
this.stored.delete(key);
|
|
124
127
|
this.pending.delete(key);
|
|
125
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Return the active stored response ID for a key, if any.
|
|
131
|
+
*/
|
|
132
|
+
getStoredResponseId(key) {
|
|
133
|
+
return this.stored.get(key)?.responseId;
|
|
134
|
+
}
|
|
126
135
|
/**
|
|
127
136
|
* Remove all state across every key. Safe to call on an empty instance.
|
|
128
137
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chained-wire-state.js","sourceRoot":"","sources":["../../source/providers/chained-wire-state.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAgFxC,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,UAAU,CAAC,KAAgB,EAAE,MAAiB;IACrD,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,gBAAgB;IAKE,QAAQ;IAJpB,MAAM,GAAG,IAAI,GAAG,EAAsC,CAAC;IACvD,OAAO,GAAG,IAAI,GAAG,EAAiE,CAAC;IAC5F,YAAY,GAAG,CAAC,CAAC;IAEzB,YAA6B,QAA6B;wBAA7B,QAAQ;IAAwB,CAAC;IAE9D
|
|
1
|
+
{"version":3,"file":"chained-wire-state.js","sourceRoot":"","sources":["../../source/providers/chained-wire-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PkceLoginConfig } from './oauth-pkce.js';
|
|
1
|
+
import type { PkceLoginConfig, PkceLoginOptions } from './oauth-pkce.js';
|
|
2
2
|
import { OAuthAccountStore } from './oauth-account-store.js';
|
|
3
3
|
import type { OAuthAccount } from './oauth-account-store.js';
|
|
4
4
|
/**
|
|
@@ -70,8 +70,5 @@ export declare const CODEX_PKCE_CONFIG: PkceLoginConfig;
|
|
|
70
70
|
export declare function loginToCodex(options?: {
|
|
71
71
|
fetchImpl?: typeof fetch;
|
|
72
72
|
authPath?: string;
|
|
73
|
-
|
|
74
|
-
onPrompt?: (url: string) => void;
|
|
75
|
-
signal?: AbortSignal;
|
|
76
|
-
}): Promise<CodexTokens>;
|
|
73
|
+
} & PkceLoginOptions): Promise<CodexTokens>;
|
|
77
74
|
//# sourceMappingURL=codex-auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-auth.d.ts","sourceRoot":"","sources":["../../source/providers/codex-auth.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-auth.d.ts","sourceRoot":"","sources":["../../source/providers/codex-auth.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG9E;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAC5D,eAAO,MAAM,qBAAqB,iCAAiC,CAAC;AACpE,eAAO,MAAM,wBAAwB,4CAA0C,CAAC;AAChF,eAAO,MAAM,oBAAoB,wCAAsC,CAAC;AACxE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,UAAe,CAAC;AACjD,eAAO,MAAM,mBAAmB,QAA0B,CAAC;AAC3D,eAAO,MAAM,gBAAgB,SAAU,MAAM,WAA6C,CAAC;AAC3F,eAAO,MAAM,kBAAkB,QAAwC,CAAC;AACxE,gGAAgG;AAChG,eAAO,MAAM,YAAY,UAOxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,yBAAyB,IAAI,MAAM,CAGlD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CA4BrD;AAgBD,wBAAgB,uBAAuB,CAAC,QAAQ,SAA8B,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAiB9G;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,QAAQ,SAA8B,GAAG,WAAW,GAAG,IAAI,CAEhG;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,SAA8B,GAAG,IAAI,CAEjG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,SAA8B,GAAG,YAAY,CAAC,WAAW,CAAC,EAAE,CAErG;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,SAA8B,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAE9G;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,SAA8B,GAAG,OAAO,CAExG;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,SAA8B,GAAG,OAAO,CAErG;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAevE;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,IAAI,OAAO,CAGvC;AAED,eAAO,MAAM,iBAAiB,EAAE,eAkB/B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,YAAY,CAChC,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,gBAAgB,GACnB,OAAO,CAAC,WAAW,CAAC,CAiBtB"}
|
|
@@ -187,6 +187,8 @@ export async function loginToCodex(options) {
|
|
|
187
187
|
openBrowser: options?.openBrowser,
|
|
188
188
|
onPrompt: options?.onPrompt,
|
|
189
189
|
signal: options?.signal,
|
|
190
|
+
pasteInput: options?.pasteInput,
|
|
191
|
+
onPasteRejected: options?.onPasteRejected,
|
|
190
192
|
});
|
|
191
193
|
const tokens = {
|
|
192
194
|
access_token: body.access_token,
|