@deepseek-harness-tui/dsh-tui 0.14.1 → 0.16.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 +163 -17
- package/bin/dsh-tui.js +200 -34
- package/cordis.patch.yml +16 -52
- package/cordis.yml +6 -2
- package/guide/dsh-tui-guide/claude-backend.en.md +44 -7
- package/guide/dsh-tui-guide/claude-backend.md +28 -6
- package/guide/dsh-tui-guide/codex-backend.en.md +47 -10
- package/guide/dsh-tui-guide/codex-backend.md +26 -4
- package/guide/dsh-tui-guide/configuration.en.md +168 -18
- package/guide/dsh-tui-guide/configuration.md +144 -16
- package/guide/dsh-tui-guide/getting-started.en.md +15 -0
- package/guide/dsh-tui-guide/getting-started.md +15 -0
- package/guide/dsh-tui-guide/interaction.en.md +64 -24
- package/guide/dsh-tui-guide/interaction.md +49 -19
- package/guide/dsh-tui-guide/plugins.en.md +97 -3
- package/guide/dsh-tui-guide/plugins.md +55 -2
- package/guide/dsh-tui-guide/themes.en.md +23 -14
- package/guide/dsh-tui-guide/themes.md +19 -12
- package/guide/dsh-tui-guide/user-guide.en.md +53 -21
- package/guide/dsh-tui-guide/user-guide.md +43 -22
- package/lib/settings.json +103 -9
- package/lib/types/adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/adapter/channel/projection.js +1 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +1 -1
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +4 -0
- package/lib/types/adapter/channel/ui.d.ts +2 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui.js +6 -2
- package/lib/types/adapter/kernel/runtime.d.ts.map +1 -1
- package/lib/types/adapter/kernel/runtime.js +2 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts +5 -1
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +14 -3
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +56 -12
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +68 -0
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel.d.ts +2 -0
- package/lib/types/adapter/ports/channel.d.ts.map +1 -1
- package/lib/types/adapter/spec/backend-capabilities.d.ts +22 -0
- package/lib/types/adapter/spec/backend-capabilities.d.ts.map +1 -0
- package/lib/types/adapter/spec/backend-capabilities.js +49 -0
- package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -1
- package/lib/types/adapter/spec/protocol-constants.js +10 -3
- package/lib/types/adapter/spec/tui-contributions.d.ts +3 -0
- package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -1
- package/lib/types/adapter/spec/tui-contributions.js +7 -0
- package/lib/types/adapter/standard/registry.d.ts +6 -0
- package/lib/types/adapter/standard/registry.d.ts.map +1 -1
- package/lib/types/adapter/standard/registry.js +65 -15
- package/lib/types/adapter/standard/tui-extension.d.ts.map +1 -1
- package/lib/types/adapter/standard/tui-extension.js +7 -1
- package/lib/types/adapter/standard/types.d.ts +10 -1
- package/lib/types/adapter/standard/types.d.ts.map +1 -1
- package/lib/types/adapter/upstream/host-descriptor-driver.d.ts.map +1 -1
- package/lib/types/adapter/upstream/host-descriptor-driver.js +52 -0
- package/lib/types/agent/backend-manifest.d.ts +152 -0
- package/lib/types/agent/backend-manifest.d.ts.map +1 -0
- package/lib/types/agent/backend-manifest.js +14 -0
- package/lib/types/agent/backend.d.ts +71 -5
- package/lib/types/agent/backend.d.ts.map +1 -1
- package/lib/types/agent/capabilities.d.ts +6 -0
- package/lib/types/agent/capabilities.d.ts.map +1 -1
- package/lib/types/agent/events.d.ts +3 -2
- package/lib/types/agent/events.d.ts.map +1 -1
- package/lib/types/agent/index.d.ts +2 -0
- package/lib/types/agent/index.d.ts.map +1 -1
- package/lib/types/agent/refs.d.ts +11 -1
- package/lib/types/agent/refs.d.ts.map +1 -1
- package/lib/types/agent/starting-session.d.ts +4 -0
- package/lib/types/agent/starting-session.d.ts.map +1 -0
- package/lib/types/agent/starting-session.js +19 -0
- package/lib/types/backends/claude/activity.d.ts +1 -1
- package/lib/types/backends/claude/activity.d.ts.map +1 -1
- package/lib/types/backends/claude/activity.js +5 -5
- package/lib/types/backends/claude/auth.d.ts.map +1 -1
- package/lib/types/backends/claude/auth.js +10 -3
- package/lib/types/backends/claude/backend.d.ts.map +1 -1
- package/lib/types/backends/claude/backend.js +103 -29
- package/lib/types/backends/claude/catalog.d.ts +2 -1
- package/lib/types/backends/claude/catalog.d.ts.map +1 -1
- package/lib/types/backends/claude/catalog.js +15 -5
- package/lib/types/backends/claude/channels.d.ts +5 -3
- package/lib/types/backends/claude/channels.d.ts.map +1 -1
- package/lib/types/backends/claude/channels.js +5 -4
- package/lib/types/backends/claude/contract.d.ts +4 -0
- package/lib/types/backends/claude/contract.d.ts.map +1 -1
- package/lib/types/backends/claude/contract.js +4 -0
- package/lib/types/backends/claude/controls.d.ts +4 -0
- package/lib/types/backends/claude/controls.d.ts.map +1 -1
- package/lib/types/backends/claude/controls.js +34 -42
- package/lib/types/backends/claude/dialogs.d.ts +8 -2
- package/lib/types/backends/claude/dialogs.d.ts.map +1 -1
- package/lib/types/backends/claude/dialogs.js +24 -16
- package/lib/types/backends/claude/images.d.ts +1 -1
- package/lib/types/backends/claude/images.d.ts.map +1 -1
- package/lib/types/backends/claude/images.js +7 -7
- package/lib/types/backends/claude/manifest.d.ts +21 -0
- package/lib/types/backends/claude/manifest.d.ts.map +1 -0
- package/lib/types/backends/claude/manifest.js +29 -0
- package/lib/types/backends/claude/older-history.js +2 -2
- package/lib/types/backends/claude/permissions.js +11 -11
- package/lib/types/backends/claude/prefs.d.ts +4 -2
- package/lib/types/backends/claude/prefs.d.ts.map +1 -1
- package/lib/types/backends/claude/prefs.js +4 -3
- package/lib/types/backends/claude/process.d.ts +16 -4
- package/lib/types/backends/claude/process.d.ts.map +1 -1
- package/lib/types/backends/claude/process.js +100 -37
- package/lib/types/backends/claude/send-message.d.ts +1 -1
- package/lib/types/backends/claude/send-message.d.ts.map +1 -1
- package/lib/types/backends/claude/session/auth.js +22 -22
- package/lib/types/backends/claude/session/channels.d.ts +4 -0
- package/lib/types/backends/claude/session/channels.d.ts.map +1 -1
- package/lib/types/backends/claude/session/channels.js +5 -3
- package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -1
- package/lib/types/backends/claude/session/lifecycle.js +31 -23
- package/lib/types/backends/claude/session/store.js +8 -8
- package/lib/types/backends/claude/session/subagents.js +2 -2
- package/lib/types/backends/claude/session/types.d.ts +7 -0
- package/lib/types/backends/claude/session/types.d.ts.map +1 -1
- package/lib/types/backends/claude/side-query.js +3 -3
- package/lib/types/backends/claude/task-output.js +5 -5
- package/lib/types/backends/claude/text.d.ts +778 -0
- package/lib/types/backends/claude/text.d.ts.map +1 -0
- package/lib/types/backends/claude/text.js +298 -0
- package/lib/types/backends/claude/transcript-file.d.ts +1 -1
- package/lib/types/backends/claude/transcript-file.d.ts.map +1 -1
- package/lib/types/backends/claude/transcript-file.js +4 -4
- package/lib/types/backends/claude/translate/attempts.js +2 -2
- package/lib/types/backends/claude/translate/core.js +3 -3
- package/lib/types/backends/claude/translate/messages.js +4 -4
- package/lib/types/backends/claude/translate/system.js +14 -14
- package/lib/types/backends/claude/translate/tasks.js +2 -2
- package/lib/types/backends/claude/translate/types.d.ts +1 -1
- package/lib/types/backends/claude/translate/types.d.ts.map +1 -1
- package/lib/types/backends/codex/auth/external-tokens.js +16 -16
- package/lib/types/backends/codex/auth/status.js +14 -14
- package/lib/types/backends/codex/backend.d.ts +4 -19
- package/lib/types/backends/codex/backend.d.ts.map +1 -1
- package/lib/types/backends/codex/backend.js +118 -25
- package/lib/types/backends/codex/catalog.d.ts +2 -1
- package/lib/types/backends/codex/catalog.d.ts.map +1 -1
- package/lib/types/backends/codex/catalog.js +63 -18
- package/lib/types/backends/codex/channels.d.ts +6 -3
- package/lib/types/backends/codex/channels.d.ts.map +1 -1
- package/lib/types/backends/codex/channels.js +15 -13
- package/lib/types/backends/codex/contract.d.ts +3 -0
- package/lib/types/backends/codex/contract.d.ts.map +1 -1
- package/lib/types/backends/codex/contract.js +3 -0
- package/lib/types/backends/codex/detect.d.ts.map +1 -1
- package/lib/types/backends/codex/detect.js +9 -6
- package/lib/types/backends/codex/manifest.d.ts +30 -0
- package/lib/types/backends/codex/manifest.d.ts.map +1 -0
- package/lib/types/backends/codex/manifest.js +23 -0
- package/lib/types/backends/codex/prefs.d.ts +4 -2
- package/lib/types/backends/codex/prefs.d.ts.map +1 -1
- package/lib/types/backends/codex/prefs.js +4 -3
- package/lib/types/backends/codex/rpc/hub.js +2 -2
- package/lib/types/backends/codex/session/activity.d.ts +1 -1
- package/lib/types/backends/codex/session/activity.d.ts.map +1 -1
- package/lib/types/backends/codex/session/activity.js +13 -13
- package/lib/types/backends/codex/session/approvals.js +30 -30
- package/lib/types/backends/codex/session/async-questions.d.ts +17 -0
- package/lib/types/backends/codex/session/async-questions.d.ts.map +1 -0
- package/lib/types/backends/codex/session/async-questions.js +89 -0
- package/lib/types/backends/codex/session/commands.d.ts +8 -2
- package/lib/types/backends/codex/session/commands.d.ts.map +1 -1
- package/lib/types/backends/codex/session/commands.js +71 -23
- package/lib/types/backends/codex/session/controls.d.ts +1 -1
- package/lib/types/backends/codex/session/controls.d.ts.map +1 -1
- package/lib/types/backends/codex/session/controls.js +21 -16
- package/lib/types/backends/codex/session/goals.d.ts.map +1 -1
- package/lib/types/backends/codex/session/goals.js +3 -3
- package/lib/types/backends/codex/session/history.js +2 -2
- package/lib/types/backends/codex/session/images.js +8 -8
- package/lib/types/backends/codex/session/input.d.ts +6 -2
- package/lib/types/backends/codex/session/input.d.ts.map +1 -1
- package/lib/types/backends/codex/session/input.js +55 -13
- package/lib/types/backends/codex/session/plan-review.js +6 -6
- package/lib/types/backends/codex/session/session.d.ts.map +1 -1
- package/lib/types/backends/codex/session/session.js +100 -42
- package/lib/types/backends/codex/session/side-query.d.ts.map +1 -1
- package/lib/types/backends/codex/session/side-query.js +27 -9
- package/lib/types/backends/codex/session/state.d.ts +6 -1
- package/lib/types/backends/codex/session/state.d.ts.map +1 -1
- package/lib/types/backends/codex/session/subagents.js +5 -5
- package/lib/types/backends/codex/session/tasks.js +4 -4
- package/lib/types/backends/codex/text.d.ts +933 -0
- package/lib/types/backends/codex/text.d.ts.map +1 -0
- package/lib/types/backends/codex/text.js +313 -0
- package/lib/types/backends/codex/translate/items.d.ts.map +1 -1
- package/lib/types/backends/codex/translate/items.js +7 -5
- package/lib/types/backends/codex/translate/live.d.ts.map +1 -1
- package/lib/types/backends/codex/translate/live.js +11 -8
- package/lib/types/backends/codex/translate/notices.js +10 -10
- package/lib/types/backends/codex/translate/question-reply.d.ts +11 -0
- package/lib/types/backends/codex/translate/question-reply.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/question-reply.js +53 -0
- package/lib/types/backends/shared/channel-slug.d.ts +4 -0
- package/lib/types/backends/shared/channel-slug.d.ts.map +1 -0
- package/lib/types/backends/shared/channel-slug.js +25 -0
- package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -1
- package/lib/types/backends/shared/channel-tokens.js +30 -23
- package/lib/types/{channel → backends/shared}/elicitation.d.ts +78 -21
- package/lib/types/backends/shared/elicitation.d.ts.map +1 -0
- package/lib/types/{channel → backends/shared}/elicitation.js +64 -66
- package/lib/types/backends/shared/image-size.d.ts +33 -0
- package/lib/types/backends/shared/image-size.d.ts.map +1 -0
- package/lib/types/backends/shared/image-size.js +134 -0
- package/lib/types/{utils → backends/shared}/jsonl.d.ts +5 -1
- package/lib/types/backends/shared/jsonl.d.ts.map +1 -0
- package/lib/types/{utils → backends/shared}/jsonl.js +5 -1
- package/lib/types/backends/shared/localized-text.d.ts +30 -0
- package/lib/types/backends/shared/localized-text.d.ts.map +1 -0
- package/lib/types/backends/shared/localized-text.js +24 -0
- package/lib/types/backends/shared/platform-text.d.ts +88 -0
- package/lib/types/backends/shared/platform-text.d.ts.map +1 -0
- package/lib/types/backends/shared/platform-text.js +33 -0
- package/lib/types/branding.d.ts +13 -0
- package/lib/types/branding.d.ts.map +1 -1
- package/lib/types/branding.js +18 -0
- package/lib/types/channel/channel-slug.d.ts +3 -1
- package/lib/types/channel/channel-slug.d.ts.map +1 -1
- package/lib/types/channel/channel-slug.js +3 -1
- package/lib/types/channel/projection.d.ts.map +1 -1
- package/lib/types/channel/projection.js +10 -0
- package/lib/types/channel/sanitize.d.ts +7 -0
- package/lib/types/channel/sanitize.d.ts.map +1 -1
- package/lib/types/channel/sanitize.js +9 -0
- package/lib/types/channel/usage.d.ts.map +1 -1
- package/lib/types/channel/usage.js +5 -0
- package/lib/types/commands.d.ts +15 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +58 -10
- package/lib/types/components/AgentMessageComposer.d.ts.map +1 -1
- package/lib/types/components/AgentMessageComposer.js +3 -2
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +4 -2
- package/lib/types/components/Chat/JobCard.js +3 -3
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +24 -7
- package/lib/types/components/ContextBarView.d.ts +5 -1
- package/lib/types/components/ContextBarView.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.js +6 -3
- package/lib/types/components/ExtensionDialog.d.ts.map +1 -1
- package/lib/types/components/ExtensionDialog.js +2 -3
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +14 -3
- package/lib/types/components/InlineMathParagraph.js +1 -1
- package/lib/types/components/KernelPicker.d.ts.map +1 -1
- package/lib/types/components/KernelPicker.js +1 -1
- package/lib/types/components/LogoV2.d.ts +4 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +14 -9
- package/lib/types/components/MarkdownTable.d.ts.map +1 -1
- package/lib/types/components/MarkdownTable.js +4 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +109 -15
- package/lib/types/components/ModelPicker.d.ts +24 -31
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +115 -40
- package/lib/types/components/PermissionsPicker.d.ts +10 -1
- package/lib/types/components/PermissionsPicker.d.ts.map +1 -1
- package/lib/types/components/PermissionsPicker.js +24 -16
- package/lib/types/components/PluginInstallPane.d.ts +21 -0
- package/lib/types/components/PluginInstallPane.d.ts.map +1 -0
- package/lib/types/components/PluginInstallPane.js +84 -0
- package/lib/types/components/PluginManagePane.d.ts +21 -0
- package/lib/types/components/PluginManagePane.d.ts.map +1 -0
- package/lib/types/components/PluginManagePane.js +69 -0
- package/lib/types/components/PromptEditor.d.ts +3 -3
- package/lib/types/components/PromptInput.d.ts +21 -3
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +65 -121
- package/lib/types/components/SdkInstallWizard.d.ts +3 -1
- package/lib/types/components/SdkInstallWizard.d.ts.map +1 -1
- package/lib/types/components/SdkInstallWizard.js +8 -1
- package/lib/types/components/SearchBox.d.ts +13 -15
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +58 -27
- package/lib/types/components/SubagentCard.d.ts +13 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +27 -12
- package/lib/types/components/SubagentDashboard.d.ts +8 -1
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +58 -16
- package/lib/types/components/ThemePicker.d.ts +1 -1
- package/lib/types/components/ThemePicker.d.ts.map +1 -1
- package/lib/types/components/ThemePicker.js +14 -11
- package/lib/types/components/Tooltip.js +1 -1
- package/lib/types/components/WorkingSpinner.js +1 -1
- package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -1
- package/lib/types/components/WorkspaceFlowPicker.js +4 -3
- package/lib/types/components/composerImageTokens.d.ts +24 -0
- package/lib/types/components/composerImageTokens.d.ts.map +1 -0
- package/lib/types/components/composerImageTokens.js +37 -0
- package/lib/types/components/design-system/InputCaret.d.ts +7 -0
- package/lib/types/components/design-system/InputCaret.d.ts.map +1 -0
- package/lib/types/components/design-system/InputCaret.js +9 -0
- package/lib/types/components/design-system/ListItem.d.ts +13 -2
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -1
- package/lib/types/components/design-system/ListItem.js +11 -5
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +6 -8
- package/lib/types/components/kernelCatalog.d.ts +55 -11
- package/lib/types/components/kernelCatalog.d.ts.map +1 -1
- package/lib/types/components/kernelCatalog.js +42 -23
- package/lib/types/components/launchpadActions.d.ts +4 -0
- package/lib/types/components/launchpadActions.d.ts.map +1 -1
- package/lib/types/components/launchpadActions.js +5 -4
- package/lib/types/components/launchpadLayout.d.ts +14 -1
- package/lib/types/components/launchpadLayout.d.ts.map +1 -1
- package/lib/types/components/launchpadLayout.js +38 -19
- package/lib/types/components/messages/TeamMessageBubble.d.ts +20 -0
- package/lib/types/components/messages/TeamMessageBubble.d.ts.map +1 -0
- package/lib/types/components/messages/TeamMessageBubble.js +15 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts +4 -3
- package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -1
- package/lib/types/components/messages/UserPromptMessage.js +4 -3
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +8 -3
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +4 -3
- package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -1
- package/lib/types/components/questions/ProviderModelEditor.js +3 -13
- package/lib/types/components/sessions/ForeignSessionRow.d.ts +3 -1
- package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -1
- package/lib/types/components/sessions/ForeignSessionRow.js +5 -2
- package/lib/types/components/sessions/SessionListRow.d.ts +3 -1
- package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -1
- package/lib/types/components/sessions/SessionListRow.js +5 -2
- package/lib/types/components/sidePanel/PanelBar.d.ts +1 -0
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelBar.js +21 -17
- package/lib/types/components/sidePanel/PanelHost.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelHost.js +5 -1
- package/lib/types/components/sidePanel/PanelStore.d.ts +8 -0
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelStore.js +11 -0
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +15 -2
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts +6 -4
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelLayout.js +33 -7
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts +7 -0
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.js +4 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +7 -2
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwComposer.js +28 -8
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +2 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +156 -21
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +6 -2
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +64 -16
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +15 -5
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +101 -10
- package/lib/types/components/sidePanel/btw/threads.d.ts +18 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/threads.js +51 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
- package/lib/types/components/sidePanel/builtinPanels.js +5 -1
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +2 -2
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts +5 -1
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/SplashMascot.js +19 -4
- package/lib/types/components/sidePanel/companion/skins.d.ts +8 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/skins.js +57 -12
- package/lib/types/components/sidePanel/types.d.ts +7 -1
- package/lib/types/components/sidePanel/types.d.ts.map +1 -1
- package/lib/types/components/sidePanel/useSidePanel.d.ts +2 -0
- package/lib/types/components/sidePanel/useSidePanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/useSidePanel.js +11 -1
- package/lib/types/components/splashArtRows.d.ts +29 -0
- package/lib/types/components/splashArtRows.d.ts.map +1 -0
- package/lib/types/components/splashArtRows.js +31 -0
- package/lib/types/components/splashFonts.d.ts +24 -1
- package/lib/types/components/splashFonts.d.ts.map +1 -1
- package/lib/types/components/splashFonts.js +40 -5
- package/lib/types/components/teamRoster.d.ts +70 -0
- package/lib/types/components/teamRoster.d.ts.map +1 -0
- package/lib/types/components/teamRoster.js +78 -0
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +3 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.js +5 -2
- package/lib/types/dsh-adapter/admission-loader.d.ts +102 -0
- package/lib/types/dsh-adapter/admission-loader.d.ts.map +1 -0
- package/lib/types/dsh-adapter/admission-loader.js +301 -0
- package/lib/types/dsh-adapter/agent-view.d.ts.map +1 -1
- package/lib/types/dsh-adapter/agent-view.js +3 -1
- package/lib/types/dsh-adapter/approvals.d.ts +7 -0
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +45 -1
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backend/translate.js +71 -8
- package/lib/types/dsh-adapter/backend-admission.d.ts +64 -0
- package/lib/types/dsh-adapter/backend-admission.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-admission.js +34 -0
- package/lib/types/dsh-adapter/backend-assembly.d.ts +31 -0
- package/lib/types/dsh-adapter/backend-assembly.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-assembly.js +225 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts +62 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-contribution.js +78 -0
- package/lib/types/dsh-adapter/backend-registry.d.ts +136 -0
- package/lib/types/dsh-adapter/backend-registry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-registry.js +304 -0
- package/lib/types/dsh-adapter/backends.d.ts +67 -24
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backends.generated.d.ts +12 -0
- package/lib/types/dsh-adapter/backends.generated.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backends.generated.js +6 -0
- package/lib/types/dsh-adapter/backends.js +91 -46
- package/lib/types/dsh-adapter/bundled-presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/bundled-presets.js +60 -3
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +2 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +9 -3
- package/lib/types/dsh-adapter/channel/agent-view-projection.js +2 -2
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +8 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +17 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +19 -46
- package/lib/types/dsh-adapter/channel/channel-host.d.ts +45 -0
- package/lib/types/dsh-adapter/channel/channel-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/channel-host.js +1 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +79 -6
- package/lib/types/dsh-adapter/channel/compaction.d.ts +7 -2
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +100 -26
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +4 -2
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/composer-images.js +36 -5
- package/lib/types/dsh-adapter/channel/cordis-host.d.ts +14 -0
- package/lib/types/dsh-adapter/channel/cordis-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/cordis-host.js +35 -0
- package/lib/types/dsh-adapter/channel/core/actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/actions.js +15 -6
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +10 -3
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +5 -1
- package/lib/types/dsh-adapter/channel/core/compose.d.ts +12 -28
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/compose.js +330 -117
- package/lib/types/dsh-adapter/channel/core/files.d.ts +7 -2
- package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/files.js +1 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts +12 -6
- package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/host.js +69 -35
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +5 -3
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/local-actions.js +5 -2
- package/lib/types/dsh-adapter/channel/core/session-controls.js +2 -2
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +7 -4
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/session-switch.js +8 -4
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/sessions.js +75 -16
- package/lib/types/dsh-adapter/channel/extensions.d.ts +4 -3
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/extensions.js +109 -30
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +14 -5
- package/lib/types/dsh-adapter/channel/job-projection.d.ts +4 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/job-projection.js +205 -24
- package/lib/types/dsh-adapter/channel/mentions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +7 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +235 -13
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +48 -29
- package/lib/types/dsh-adapter/channel/model-selection.d.ts +17 -0
- package/lib/types/dsh-adapter/channel/model-selection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-selection.js +109 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +12 -21
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +39 -102
- package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/permissions.js +4 -1
- package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection-helpers.js +2 -0
- package/lib/types/dsh-adapter/channel/projection.js +1 -1
- package/lib/types/dsh-adapter/channel/reports.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/reports.js +11 -3
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.js +33 -20
- package/lib/types/dsh-adapter/channel/session-listing.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/session-listing.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-listing.js +51 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +3 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.js +60 -30
- package/lib/types/dsh-adapter/channel/session-reset.js +2 -2
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +22 -8
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +38 -24
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +38 -24
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +5 -2
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +136 -5
- package/lib/types/dsh-adapter/channel/state.d.ts +43 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +14 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +84 -12
- package/lib/types/dsh-adapter/channel/task-completion.d.ts +6 -0
- package/lib/types/dsh-adapter/channel/task-completion.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/task-completion.js +114 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +8 -1
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +20 -3
- package/lib/types/dsh-adapter/channel/upstream-retry.d.ts +81 -0
- package/lib/types/dsh-adapter/channel/upstream-retry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/upstream-retry.js +138 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/workspace-actions.js +9 -8
- package/lib/types/dsh-adapter/channel-ui.d.ts +3 -1
- package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel-ui.js +4 -2
- package/lib/types/dsh-adapter/channel.d.ts +2 -2
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +19 -5
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.d.ts +55 -0
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.js +96 -0
- package/lib/types/dsh-adapter/context-occupancy.d.ts +81 -4
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
- package/lib/types/dsh-adapter/context-occupancy.js +108 -17
- package/lib/types/dsh-adapter/contract.d.ts +4 -4
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +20 -5
- package/lib/types/dsh-adapter/effect-ledger.d.ts +7 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -1
- package/lib/types/dsh-adapter/effect-ledger.js +8 -1
- package/lib/types/dsh-adapter/entry-slot.d.ts +38 -0
- package/lib/types/dsh-adapter/entry-slot.d.ts.map +1 -0
- package/lib/types/dsh-adapter/entry-slot.js +28 -0
- package/lib/types/dsh-adapter/fresh-agent.d.ts +22 -0
- package/lib/types/dsh-adapter/fresh-agent.d.ts.map +1 -0
- package/lib/types/dsh-adapter/fresh-agent.js +226 -0
- package/lib/types/dsh-adapter/host-access.d.ts +16 -1
- package/lib/types/dsh-adapter/host-access.d.ts.map +1 -1
- package/lib/types/dsh-adapter/host-access.js +148 -2
- package/lib/types/dsh-adapter/host-contract.d.ts +103 -0
- package/lib/types/dsh-adapter/host-contract.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-contract.js +77 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts +112 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-dsh.js +481 -0
- package/lib/types/dsh-adapter/host-entry.d.ts +9 -0
- package/lib/types/dsh-adapter/host-entry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-entry.js +253 -0
- package/lib/types/dsh-adapter/index.d.ts +53 -17
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +63 -9
- package/lib/types/dsh-adapter/install/executors.d.ts +44 -0
- package/lib/types/dsh-adapter/install/executors.d.ts.map +1 -0
- package/lib/types/dsh-adapter/install/executors.js +15 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts +3 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts.map +1 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.js +150 -0
- package/lib/types/dsh-adapter/invariant.d.ts +7 -2
- package/lib/types/dsh-adapter/invariant.d.ts.map +1 -1
- package/lib/types/dsh-adapter/invariant.js +6 -3
- package/lib/types/dsh-adapter/jobs.d.ts +7 -0
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +13 -0
- package/lib/types/dsh-adapter/lite-profile.d.ts +50 -0
- package/lib/types/dsh-adapter/lite-profile.d.ts.map +1 -0
- package/lib/types/dsh-adapter/lite-profile.js +49 -0
- package/lib/types/dsh-adapter/migrate/index.js +2 -2
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +4 -3
- package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -1
- package/lib/types/dsh-adapter/oauth/profiles.js +5 -1
- package/lib/types/dsh-adapter/panels.d.ts +7 -0
- package/lib/types/dsh-adapter/panels.d.ts.map +1 -1
- package/lib/types/dsh-adapter/panels.js +41 -2
- package/lib/types/dsh-adapter/plugin-completions.d.ts +32 -0
- package/lib/types/dsh-adapter/plugin-completions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-completions.js +80 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts +119 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-declaration.js +183 -0
- package/lib/types/dsh-adapter/plugin-feed.d.ts +94 -0
- package/lib/types/dsh-adapter/plugin-feed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-feed.js +135 -0
- package/lib/types/dsh-adapter/plugin-guard.d.ts +115 -0
- package/lib/types/dsh-adapter/plugin-guard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-guard.js +108 -0
- package/lib/types/dsh-adapter/plugin-host.d.ts +13 -2
- package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin-host.js +34 -8
- package/lib/types/dsh-adapter/plugin-install.d.ts +160 -0
- package/lib/types/dsh-adapter/plugin-install.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-install.js +545 -0
- package/lib/types/dsh-adapter/plugin-manage.d.ts +178 -0
- package/lib/types/dsh-adapter/plugin-manage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manage.js +468 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts +144 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manager.js +83 -0
- package/lib/types/dsh-adapter/plugin.d.ts +50 -1
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +918 -234
- package/lib/types/dsh-adapter/plugins-info.d.ts +130 -8
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugins-info.js +469 -44
- package/lib/types/dsh-adapter/process-exit.d.ts +43 -0
- package/lib/types/dsh-adapter/process-exit.d.ts.map +1 -0
- package/lib/types/dsh-adapter/process-exit.js +60 -0
- package/lib/types/dsh-adapter/root-dispose.d.ts +18 -0
- package/lib/types/dsh-adapter/root-dispose.d.ts.map +1 -0
- package/lib/types/dsh-adapter/root-dispose.js +28 -0
- package/lib/types/dsh-adapter/session-list-metadata.d.ts +20 -0
- package/lib/types/dsh-adapter/session-list-metadata.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-list-metadata.js +56 -0
- package/lib/types/dsh-adapter/session-projection-store.d.ts +66 -0
- package/lib/types/dsh-adapter/session-projection-store.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-projection-store.js +149 -0
- package/lib/types/dsh-adapter/session-seed.d.ts +11 -0
- package/lib/types/dsh-adapter/session-seed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-seed.js +47 -0
- package/lib/types/dsh-adapter/sessions/list.d.ts +3 -1
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +11 -5
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts +0 -2
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/snapshot.js +7 -70
- package/lib/types/dsh-adapter/settingsEditor.js +2 -2
- package/lib/types/dsh-adapter/sideQuestion.d.ts +21 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +53 -0
- package/lib/types/dsh-adapter/startup-args.d.ts +2 -0
- package/lib/types/dsh-adapter/startup-args.d.ts.map +1 -1
- package/lib/types/dsh-adapter/startup-args.js +5 -0
- package/lib/types/dsh-adapter/subagents.d.ts +33 -1
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +112 -9
- package/lib/types/dsh-adapter/team-mode.d.ts +74 -0
- package/lib/types/dsh-adapter/team-mode.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-mode.js +188 -0
- package/lib/types/dsh-adapter/team-roster.d.ts +67 -0
- package/lib/types/dsh-adapter/team-roster.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-roster.js +136 -0
- package/lib/types/dsh-adapter/team-tools.d.ts +58 -0
- package/lib/types/dsh-adapter/team-tools.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-tools.js +208 -0
- package/lib/types/dsh-adapter/tui-settings.d.ts +57 -0
- package/lib/types/dsh-adapter/tui-settings.d.ts.map +1 -0
- package/lib/types/dsh-adapter/tui-settings.js +199 -0
- package/lib/types/dsh-adapter/types.d.ts +1 -1
- package/lib/types/dsh-adapter/types.d.ts.map +1 -1
- package/lib/types/effortPrefs.d.ts +6 -3
- package/lib/types/effortPrefs.d.ts.map +1 -1
- package/lib/types/effortPrefs.js +7 -4
- package/lib/types/hostEntryRoute.d.ts +18 -0
- package/lib/types/hostEntryRoute.d.ts.map +1 -0
- package/lib/types/hostEntryRoute.js +57 -0
- package/lib/types/i18n.d.ts +961 -1439
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +443 -387
- package/lib/types/ink/components/AlternateScreen.js +2 -2
- package/lib/types/ink/components/App.d.ts +1 -0
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +16 -4
- package/lib/types/ink/components/CursorDeclarationContext.d.ts +9 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -1
- package/lib/types/ink/components/CursorDeclarationContext.js +2 -0
- package/lib/types/ink/components/ScrollBox.d.ts +9 -0
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
- package/lib/types/ink/components/ScrollBox.js +23 -0
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-copy-on-select.d.ts +2 -2
- package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-copy-on-select.js +13 -7
- package/lib/types/ink/hooks/use-declared-cursor.d.ts +11 -3
- package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-declared-cursor.js +30 -10
- package/lib/types/ink/ink.d.ts +22 -17
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +151 -40
- package/lib/types/ink/kitty-graphics.d.ts +2 -0
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +6 -1
- package/lib/types/ink/node-cache.d.ts +2 -1
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/output.d.ts +10 -4
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +14 -10
- package/lib/types/ink/render-node-to-output.d.ts +5 -2
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +27 -9
- package/lib/types/ink/renderer.d.ts +1 -0
- package/lib/types/ink/renderer.d.ts.map +1 -1
- package/lib/types/ink/renderer.js +4 -3
- package/lib/types/ink/root.d.ts +4 -1
- package/lib/types/ink/root.d.ts.map +1 -1
- package/lib/types/ink/screen.d.ts +4 -2
- package/lib/types/ink/screen.d.ts.map +1 -1
- package/lib/types/ink/selection.d.ts +10 -1
- package/lib/types/ink/selection.d.ts.map +1 -1
- package/lib/types/ink/selection.js +94 -25
- package/lib/types/ink/stdin-handoff.d.ts +11 -0
- package/lib/types/ink/stdin-handoff.d.ts.map +1 -0
- package/lib/types/ink/stdin-handoff.js +20 -0
- package/lib/types/ink/styles.d.ts +2 -1
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +6 -4
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.js +16 -39
- package/lib/types/ink/terminal-notification.d.ts +8 -0
- package/lib/types/ink/terminal-notification.d.ts.map +1 -0
- package/lib/types/ink/terminal-notification.js +83 -0
- package/lib/types/ink/terminal.d.ts +9 -0
- package/lib/types/ink/terminal.d.ts.map +1 -1
- package/lib/types/ink/terminal.js +34 -1
- package/lib/types/ink/termio/csi.d.ts +11 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -1
- package/lib/types/ink/termio/csi.js +13 -0
- package/lib/types/ink/update-overflow-guard.d.ts +6 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +17 -0
- package/lib/types/ink/wrap-text.d.ts +6 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +17 -0
- package/lib/types/kernelPrefs.d.ts +130 -17
- package/lib/types/kernelPrefs.d.ts.map +1 -1
- package/lib/types/kernelPrefs.js +98 -35
- package/lib/types/math/inline-layout.d.ts +2 -0
- package/lib/types/math/inline-layout.d.ts.map +1 -1
- package/lib/types/math/inline-layout.js +5 -27
- package/lib/types/modelGroups.d.ts +15 -27
- package/lib/types/modelGroups.d.ts.map +1 -1
- package/lib/types/modelGroups.js +17 -31
- package/lib/types/modelPrefs.d.ts +5 -4
- package/lib/types/modelPrefs.d.ts.map +1 -1
- package/lib/types/modelPrefs.js +5 -4
- package/lib/types/modelRoute.d.ts +23 -9
- package/lib/types/modelRoute.d.ts.map +1 -1
- package/lib/types/modelRoute.js +25 -11
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.js +8 -1
- package/lib/types/permissionPrefs.d.ts +34 -0
- package/lib/types/permissionPrefs.d.ts.map +1 -0
- package/lib/types/permissionPrefs.js +61 -0
- package/lib/types/permissionPresetLabels.d.ts +25 -0
- package/lib/types/permissionPresetLabels.d.ts.map +1 -0
- package/lib/types/permissionPresetLabels.js +33 -0
- package/lib/types/plugin-host.d.ts +1 -0
- package/lib/types/plugin-host.d.ts.map +1 -1
- package/lib/types/preset-patch.d.ts +22 -0
- package/lib/types/preset-patch.d.ts.map +1 -0
- package/lib/types/preset-patch.js +14 -0
- package/lib/types/presetPrefs.d.ts +17 -3
- package/lib/types/presetPrefs.d.ts.map +1 -1
- package/lib/types/presetPrefs.js +20 -3
- package/lib/types/reload.d.ts +6 -10
- package/lib/types/reload.d.ts.map +1 -1
- package/lib/types/reload.js +14 -14
- package/lib/types/screens/Chat.d.ts +55 -16
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +742 -280
- package/lib/types/screens/Launchpad.d.ts +33 -17
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +256 -78
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +53 -12
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +7 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +24 -7
- package/lib/types/screens/StatusMetrics.d.ts +46 -1
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +72 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts +8 -4
- package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -1
- package/lib/types/screens/chat/useKernelPicker.js +61 -21
- package/lib/types/screens/chat/useModelPicker.d.ts +42 -0
- package/lib/types/screens/chat/useModelPicker.d.ts.map +1 -0
- package/lib/types/screens/chat/useModelPicker.js +182 -0
- package/lib/types/screens/chat/usePluginWriteFlow.d.ts +68 -0
- package/lib/types/screens/chat/usePluginWriteFlow.d.ts.map +1 -0
- package/lib/types/screens/chat/usePluginWriteFlow.js +92 -0
- package/lib/types/screens/chatOverlay.d.ts +30 -5
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +0 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +4 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +26 -5
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +51 -29
- package/lib/types/sessionHistory.d.ts +5 -0
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +5 -0
- package/lib/types/sessionModes.d.ts +5 -3
- package/lib/types/sessionModes.d.ts.map +1 -1
- package/lib/types/sessionModes.js +9 -3
- package/lib/types/sessions/listSnapshot.d.ts +6 -0
- package/lib/types/sessions/listSnapshot.d.ts.map +1 -0
- package/lib/types/sessions/listSnapshot.js +67 -0
- package/lib/types/settings/definitions.d.ts +50 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +42 -8
- package/lib/types/terminal-utils/cjk-emphasis.d.ts +28 -0
- package/lib/types/terminal-utils/cjk-emphasis.d.ts.map +1 -0
- package/lib/types/terminal-utils/cjk-emphasis.js +31 -0
- package/lib/types/terminal-utils/markdown.d.ts +3 -1
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +7 -2
- package/lib/types/theme.d.ts +29 -12
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +310 -23
- package/lib/types/themeCatalog.d.ts.map +1 -1
- package/lib/types/themeCatalog.js +21 -2
- package/lib/types/tips.js +4 -4
- package/lib/types/tuiSettingsFile.d.ts +56 -0
- package/lib/types/tuiSettingsFile.d.ts.map +1 -0
- package/lib/types/tuiSettingsFile.js +206 -0
- package/lib/types/ui.d.ts +2 -0
- package/lib/types/ui.d.ts.map +1 -1
- package/lib/types/ui.js +2 -0
- package/lib/types/update.d.ts +72 -26
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +131 -43
- package/lib/types/utils/bmp.d.ts +7 -0
- package/lib/types/utils/bmp.d.ts.map +1 -1
- package/lib/types/utils/bmp.js +27 -0
- package/lib/types/utils/bootTrace.d.ts +2 -0
- package/lib/types/utils/bootTrace.d.ts.map +1 -0
- package/lib/types/utils/bootTrace.js +20 -0
- package/lib/types/utils/clipboard.d.ts.map +1 -1
- package/lib/types/utils/clipboard.js +11 -3
- package/lib/types/utils/credentials.d.ts +14 -2
- package/lib/types/utils/credentials.d.ts.map +1 -1
- package/lib/types/utils/credentials.js +34 -11
- package/lib/types/utils/imageResize.d.ts +10 -20
- package/lib/types/utils/imageResize.d.ts.map +1 -1
- package/lib/types/utils/imageResize.js +61 -134
- package/lib/types/utils/inputPaste.d.ts +2 -2
- package/lib/types/utils/inputPaste.js +2 -2
- package/lib/types/utils/pastedImagePath.d.ts +5 -0
- package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
- package/lib/types/utils/pastedImagePath.js +33 -0
- package/lib/types/utils/paths.d.ts +11 -0
- package/lib/types/utils/paths.d.ts.map +1 -1
- package/lib/types/utils/paths.js +13 -0
- package/package.json +150 -114
- package/presets/winbash.mjs +716 -0
- package/tui-profile/feed/README.md +63 -0
- package/tui-profile/feed/first-party.json +10 -0
- package/tui-profile/protocols/profile-definitions.d.ts +1 -0
- package/tui-profile/protocols/profile-definitions.js +14 -0
- package/tui-profile/protocols/tui-contributions.d.ts +55 -0
- package/tui-profile/protocols/tui-contributions.js +141 -0
- package/tui-profile/registry/contracts/backend-v1alpha1.json +13 -0
- package/tui-profile/registry/registry-0.15.json +12 -0
- package/lib/types/backends/claude/install.d.ts +0 -15
- package/lib/types/backends/claude/install.d.ts.map +0 -1
- package/lib/types/backends/claude/install.js +0 -91
- package/lib/types/channel/elicitation.d.ts.map +0 -1
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts +0 -42
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +0 -1
- package/lib/types/dsh-adapter/channel/session-lineage.js +0 -51
- package/lib/types/utils/jsonl.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/backends/codex/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAgB,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAG/F;;;;GAIG;AACH,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoOoF,CAAA;AAE/F;mEACmE;AACnE,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAA;CAAE,CAAC,CAAS,CAAA;AAErH,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,KAAK,CAAA;AAE7C,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAA;AAKxC;;wBAEwB;AACxB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,aAAa,GAAG,IAAI,CAEpE;AAED,yDAAyD;AACzD,wBAAgB,WAAW,IAAI,aAAa,CAE3C;AAED;;qCAEqC;AACrC,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CA6CtD;AAED,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,GAAE,eAAoB,GAAG,MAAM,CAEjF"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import { fillTemplate } from '../shared/localized-text.js';
|
|
2
|
+
import { pickPlatformText } from '../shared/platform-text.js';
|
|
3
|
+
/**
|
|
4
|
+
* Every string of this backend. `zh` and `en` are both required
|
|
5
|
+
* (`scripts/verify-i18n.ts` checks the same invariants the host dictionary
|
|
6
|
+
* gets: language completeness, placeholder parity and single-brace typos).
|
|
7
|
+
*/
|
|
8
|
+
const texts = {
|
|
9
|
+
// ── Approvals, notices, status lines and control answers ──
|
|
10
|
+
'codex-approve-accept': { zh: '是,执行', en: 'Yes, proceed' },
|
|
11
|
+
'codex-approve-decline': { zh: '否,跳过它继续', en: 'No, continue without running it' },
|
|
12
|
+
'codex-approve-cancel': { zh: '否,并告诉 Codex 怎么做', en: 'No, and tell Codex what to do differently' },
|
|
13
|
+
'codex-approve-decline-files': { zh: '否,不应用这些改动,继续', en: 'No, continue without these changes' },
|
|
14
|
+
'codex-approve-grant-turn': { zh: '是,本回合授予这些权限', en: 'Yes, grant these permissions for this turn' },
|
|
15
|
+
'codex-approve-deny-permissions': { zh: '否,不授予权限继续', en: 'No, continue without permissions' },
|
|
16
|
+
'codex-approve-stdin-name': { zh: '终端输入', en: 'Terminal input' },
|
|
17
|
+
'codex-approve-stdin': { zh: '向运行中的终端写入输入', en: 'writes input to a running terminal' },
|
|
18
|
+
'codex-approve-network-context': { zh: '访问网络主机 {{host}}({{protocol}})', en: 'network access to {{host}} ({{protocol}})' },
|
|
19
|
+
'codex-approve-extra-permissions': { zh: '额外权限:{{what}}', en: 'extra permissions: {{what}}' },
|
|
20
|
+
'codex-approve-cwd': { zh: '在 {{cwd}} 中运行', en: 'runs in {{cwd}}' },
|
|
21
|
+
'codex-approve-prefix': { zh: '是,以后以 `{{prefix}}` 开头的命令不再询问', en: 'Yes, and don\'t ask again for commands that start with `{{prefix}}`' },
|
|
22
|
+
'codex-approve-session-command': { zh: '是,本会话内此命令不再询问', en: 'Yes, and don\'t ask again for this command in this session' },
|
|
23
|
+
'codex-approve-session-files': { zh: '是,本会话内这些文件不再询问', en: 'Yes, and don\'t ask again for these files' },
|
|
24
|
+
'codex-approve-session-permissions': { zh: '是,本会话内都授予这些权限', en: 'Yes, grant these permissions for this session' },
|
|
25
|
+
'codex-approve-network': { zh: '是,以后允许访问 {{host}}', en: 'Yes, and allow {{host}} in the future' },
|
|
26
|
+
'codex-permissions-name': { zh: '额外权限', en: 'Extra permissions' },
|
|
27
|
+
'codex-perm-network': { zh: '联网', en: 'network' },
|
|
28
|
+
'codex-perm-read': { zh: '读取 {{paths}}', en: 'read {{paths}}' },
|
|
29
|
+
'codex-perm-write': { zh: '写入 {{paths}}', en: 'write {{paths}}' },
|
|
30
|
+
'codex-declined': { zh: '已拒绝', en: 'Declined' },
|
|
31
|
+
'codex-interrupted': { zh: '已中断', en: 'Interrupted' },
|
|
32
|
+
'codex-tool-failed': { zh: '执行失败', en: 'Failed' },
|
|
33
|
+
'codex-tool-unfinished': { zh: '回合结束时仍未完成', en: 'Unfinished when the turn ended' },
|
|
34
|
+
'codex-turn-failed': { zh: '回合失败', en: 'The turn failed' },
|
|
35
|
+
'codex-turn-start-failed': { zh: 'Codex 没有接受这条消息:{{err}}', en: 'Codex did not take this message: {{err}}' },
|
|
36
|
+
'codex-steer-fallback': { zh: '当前回合无法插话,这条消息会在回合结束后发送', en: 'The running turn cannot take this message now; it will be sent when the turn ends' },
|
|
37
|
+
'codex-cancel-forced': { zh: '中断 15 秒未得到确认,已在本地结束本回合', en: 'The interrupt was not confirmed within 15s; the turn was closed here' },
|
|
38
|
+
'codex-session-closed': { zh: 'Codex 会话已关闭', en: 'The Codex session is closed' },
|
|
39
|
+
'codex-retrying': { zh: '请求失败,Codex 正在重试:{{message}}', en: 'The request failed; Codex is retrying: {{message}}' },
|
|
40
|
+
'codex-rerouted': { zh: '模型已由 {{from}} 改为 {{to}}({{reason}})', en: 'The model was rerouted from {{from}} to {{to}} ({{reason}})' },
|
|
41
|
+
'codex-system-error': { zh: 'Codex 报告该会话出现系统错误', en: 'Codex reported a system error on this thread' },
|
|
42
|
+
'codex-review-start': { zh: '开始代码审查:{{review}}', en: 'Code review started: {{review}}' },
|
|
43
|
+
'codex-auto-review-started': { zh: '自动审查中…', en: 'Auto-review in progress…' },
|
|
44
|
+
'codex-auto-review-approved': { zh: '自动审查:已批准', en: 'Auto-review: approved' },
|
|
45
|
+
'codex-auto-review-denied': { zh: '自动审查:已拒绝', en: 'Auto-review: denied' },
|
|
46
|
+
'codex-auto-review-ended': { zh: '自动审查已结束', en: 'Auto-review ended' },
|
|
47
|
+
'codex-strict-review': { zh: '本回合之后的命令需要先通过审查', en: 'Further commands in this turn need a review first' },
|
|
48
|
+
'codex-hook-started': { zh: 'hook {{event}} 运行中…', en: 'Hook {{event}} running…' },
|
|
49
|
+
'codex-hook-done': { zh: 'hook {{event}} 完成 {{duration}}', en: 'Hook {{event}} finished {{duration}}' },
|
|
50
|
+
'codex-hook-failed': { zh: 'hook {{event}} 失败 {{duration}}', en: 'Hook {{event}} failed {{duration}}' },
|
|
51
|
+
'codex-mcp-failed': { zh: 'MCP 服务器 {{name}} 启动失败:{{error}}', en: 'The MCP server {{name}} failed to start: {{error}}' },
|
|
52
|
+
'codex-thread-closed': { zh: '该会话已在别处关闭,仍可继续对话', en: 'This thread was closed elsewhere; you can keep talking' },
|
|
53
|
+
'codex-thread-archived': { zh: '该会话已在别处归档,仍可继续对话', en: 'This thread was archived elsewhere; you can keep talking' },
|
|
54
|
+
'codex-thread-deleted': { zh: '该会话已在别处删除', en: 'This thread was deleted elsewhere' },
|
|
55
|
+
'codex-rate-limit-reached': { zh: '已达到 Codex 用量上限({{kind}})', en: 'The Codex usage limit is reached ({{kind}})' },
|
|
56
|
+
'codex-hint-unauthorized': { zh: 'Codex 凭据无效或已过期:在终端运行 codex login 重新登录', en: 'The Codex credential is invalid or expired: sign in again with `codex login` in a terminal' },
|
|
57
|
+
'codex-hint-context': { zh: '上下文已满:可以用 /compact 压缩后继续', en: 'The context is full: run /compact and continue' },
|
|
58
|
+
'codex-hint-limit': { zh: '已达到用量上限,稍后再试', en: 'A usage limit is reached; try again later' },
|
|
59
|
+
'codex-hint-sandbox': { zh: '沙箱出错:Linux 上请安装 bubblewrap(例如 apt install bubblewrap)', en: 'Sandbox error: on Linux install bubblewrap (e.g. apt install bubblewrap)' },
|
|
60
|
+
'codex-connection-lost': { zh: 'Codex 进程退出,正在重连…', en: 'The Codex process exited; reconnecting…' },
|
|
61
|
+
'codex-connection-failed': { zh: 'Codex 进程无法启动:{{err}}', en: 'The Codex process cannot start: {{err}}' },
|
|
62
|
+
'codex-connection-dead': { zh: '连接已断开且无法恢复,请重新打开会话', en: 'The connection is gone for good; please reopen the session' },
|
|
63
|
+
'codex-reconnected': { zh: '已重新连接 Codex', en: 'Reconnected to Codex' },
|
|
64
|
+
'codex-not-installed': { zh: '未找到 codex:npm i -g @openai/codex 或 brew install codex,或设置 CODEX_EXECUTABLE', en: 'codex was not found: npm i -g @openai/codex or brew install codex, or set CODEX_EXECUTABLE' },
|
|
65
|
+
'codex-too-old': { zh: 'codex {{version}} 太旧(至少 {{min}}):请升级', en: 'codex {{version}} is too old (needs {{min}}): please upgrade' },
|
|
66
|
+
'codex-auth-missing-hint': { zh: '未检测到 Codex 凭据:启动后用 /login 登录,或设置 OPENAI_API_KEY', en: 'No Codex credential found: sign in with /login after start, or set OPENAI_API_KEY' },
|
|
67
|
+
'codex-start-failed': { zh: 'Codex app-server 启动失败:{{err}}', en: 'The Codex app-server failed to start: {{err}}' },
|
|
68
|
+
'codex-open-failed': { zh: '无法打开 Codex 会话:{{err}}', en: 'Could not open the Codex thread: {{err}}' },
|
|
69
|
+
'codex-thread-busy': { zh: 'Codex 会话 {{id}} 正被另一个 Codex 进程使用,先关闭那边再打开', en: 'The Codex thread {{id}} is in use by another Codex process; close it there first' },
|
|
70
|
+
'codex-resume-not-found': { zh: '找不到 Codex 会话 {{id}}({{err}})', en: 'The Codex thread {{id}} was not found ({{err}})' },
|
|
71
|
+
'codex-version-drift': { zh: 'codex {{version}} 未经本版 dsh-tui 验证(已验证:{{validated}}),继续运行', en: 'codex {{version}} is not validated with this dsh-tui (validated: {{validated}}); continuing' },
|
|
72
|
+
'codex-doctor-cli': { zh: 'Codex CLI: {{path}}({{source}})· 版本 {{version}}', en: 'Codex CLI: {{path}} ({{source}}) · version {{version}}' },
|
|
73
|
+
'codex-doctor-home': { zh: 'Codex 主目录: {{home}}', en: 'Codex home: {{home}}' },
|
|
74
|
+
'codex-doctor-thread': { zh: 'Codex 会话: {{id}} · provider {{provider}} · 模型 {{model}}', en: 'Codex thread: {{id}} · provider {{provider}} · model {{model}}' },
|
|
75
|
+
'codex-doctor-mode': { zh: '权限模式: {{mode}}', en: 'Permission mode: {{mode}}' },
|
|
76
|
+
'codex-doctor-bubblewrap': { zh: '未找到 bubblewrap:Codex 改用自带沙箱;建议用系统包管理器安装 bubblewrap', en: 'bubblewrap was not found: Codex uses its bundled sandbox; installing bubblewrap from the system package manager is recommended' },
|
|
77
|
+
'codex-mode-read-only': { zh: '只读', en: 'Read Only' },
|
|
78
|
+
'codex-mode-read-only-desc': { zh: '只读取文件;命令和修改需审批', en: 'Read files; commands and changes require approval' },
|
|
79
|
+
'codex-mode-auto': { zh: '默认', en: 'Default' },
|
|
80
|
+
'codex-mode-auto-desc': { zh: '可修改工作区;工作区外和网络操作需审批', en: 'Edit the workspace; ask before outside-workspace or network access' },
|
|
81
|
+
'codex-mode-full-access': { zh: '完全访问', en: 'Full Access' },
|
|
82
|
+
'codex-mode-full-access-desc': { zh: '关闭沙箱和审批,仅通过显式选择进入', en: 'Disable sandbox and approvals; explicit selection only' },
|
|
83
|
+
'codex-mode-plan': { zh: '计划', en: 'Plan' },
|
|
84
|
+
'codex-mode-plan-desc': { zh: '先调研和规划,保留当前权限档', en: 'Research and plan, preserving the current permissions' },
|
|
85
|
+
'codex-mode-invalid': { zh: '未知 Codex 模式:{{mode}}', en: 'Unknown Codex mode: {{mode}}' },
|
|
86
|
+
'codex-settings-deferred': { zh: '当前 Codex 版本不支持即时改设置,选择将在下一回合生效', en: 'This Codex version cannot update idle settings; your choices apply on the next turn' },
|
|
87
|
+
'codex-capability-unavailable': { zh: '当前 Codex 版本不支持 {{feature}},请升级', en: 'This Codex version does not support {{feature}}; please upgrade' },
|
|
88
|
+
'codex-effort-none': { zh: '无', en: 'None' },
|
|
89
|
+
'codex-effort-minimal': { zh: '极低', en: 'Minimal' },
|
|
90
|
+
'codex-effort-low': { zh: '低', en: 'Low' },
|
|
91
|
+
'codex-effort-medium': { zh: '中', en: 'Medium' },
|
|
92
|
+
'codex-effort-high': { zh: '高', en: 'High' },
|
|
93
|
+
'codex-effort-xhigh': { zh: '极高', en: 'Extra high' },
|
|
94
|
+
'codex-effort-ultra': { zh: '超高', en: 'Ultra' },
|
|
95
|
+
'codex-command-idle': { zh: '请先结束或中断当前回合', en: 'Finish or interrupt the current turn first' },
|
|
96
|
+
'codex-command-review': { zh: '审查未提交改动、分支、提交或自定义范围', en: 'Review working changes, a branch, a commit, or custom instructions' },
|
|
97
|
+
'codex-command-diff': { zh: '显示最近回合的文件差异', en: 'Show the latest turn\'s file diff' },
|
|
98
|
+
'codex-command-plan': { zh: '切换到 Plan 模式,可附带提示词', en: 'Enter Plan mode, optionally with a prompt' },
|
|
99
|
+
'codex-command-usage': { zh: '查看 Codex 额度和重置时间', en: 'Show Codex usage limits and reset times' },
|
|
100
|
+
'codex-diff-empty': { zh: '没有文件差异', en: 'No file differences' },
|
|
101
|
+
'codex-usage-window': { zh: '{{name}}:已用 {{used}}% · 重置 {{reset}}', en: '{{name}}: {{used}}% used · resets {{reset}}' },
|
|
102
|
+
'codex-usage-credits': { zh: '额度余额 {{balance}} · 不限量:{{unlimited}}', en: 'Credits {{balance}} · unlimited: {{unlimited}}' },
|
|
103
|
+
'codex-usage-unavailable': { zh: '当前 provider 未提供额度信息', en: 'The current provider supplies no usage-limit information' },
|
|
104
|
+
'codex-yes': { zh: '是', en: 'yes' },
|
|
105
|
+
'codex-no': { zh: '否', en: 'no' },
|
|
106
|
+
'codex-question-auto-answered': { zh: '问卷等待超时,已按服务端设置选择默认答案', en: 'The question timed out; the server\'s default answer was selected' },
|
|
107
|
+
'codex-plan-implement': { zh: '要实施这个计划吗?', en: 'Implement this plan?' },
|
|
108
|
+
'codex-plan-yes': { zh: '是,实施这个计划', en: 'Yes, implement this plan' },
|
|
109
|
+
'codex-plan-clear': { zh: '是,清空上下文后实施', en: 'Yes, clear context and implement' },
|
|
110
|
+
'codex-plan-stay': { zh: '否,留在 Plan 模式', en: 'No, stay in Plan mode' },
|
|
111
|
+
'codex-plan-action-failed': { zh: '无法开始实施计划:{{error}}', en: 'Could not start implementing the plan: {{error}}' },
|
|
112
|
+
'codex-bwrap-warning': { zh: '未找到 bubblewrap,沙箱命令可能失败。请安装(如 apt install bubblewrap),或在 /permission 中明确选择完全访问', en: 'bubblewrap was not found; sandboxed commands may fail. Install it (e.g. apt install bubblewrap), or explicitly select Full Access in /permission' },
|
|
113
|
+
'codex-model-waiting': { zh: '等待模型响应…', en: 'Waiting for the model…' },
|
|
114
|
+
'codex-model-stalled': { zh: '模型长时间无响应,可按 Esc 中断', en: 'The model has not responded for a long time; press Esc to interrupt' },
|
|
115
|
+
'codex-working-command': { zh: '运行 {{command}}', en: 'Running {{command}}' },
|
|
116
|
+
'codex-working-files': { zh: '编辑 {{files}}', en: 'Editing {{files}}' },
|
|
117
|
+
'codex-working-subagents': { zh: '等待子代理', en: 'Waiting for subagents' },
|
|
118
|
+
'codex-working-thinking': { zh: '思考中…', en: 'Thinking…' },
|
|
119
|
+
'codex-channel-url-required': { zh: '渠道连接缺少 base URL,请用 /channel 配置', en: 'The channel connection has no base URL; configure it with /channel' },
|
|
120
|
+
'codex-channel-token-missing': { zh: '渠道 {{name}} 缺少可用令牌,请用 /channel 补充', en: 'Channel {{name}} has no usable token; add one with /channel' },
|
|
121
|
+
'codex-channel-store-unavailable': { zh: '宿主未提供渠道令牌库,无法保存令牌', en: 'The host did not provide a channel token store; the token cannot be saved' },
|
|
122
|
+
'codex-channel-token-write-failed': { zh: '渠道令牌保存失败,连接未更新', en: 'The channel token could not be saved; the connection was not updated' },
|
|
123
|
+
'codex-auth-login-needed': { zh: 'Codex 需要凭据:用 /login 登录', en: 'Codex needs credentials: sign in with /login' },
|
|
124
|
+
'codex-provider-env-key-missing': { zh: 'provider {{provider}} 缺 {{env}}:Codex 会拒绝每个回合;导出它或写进 ~/.dsh/.credentials.yaml', en: 'Provider {{provider}} is missing {{env}}: Codex rejects every turn. Export it or store it in ~/.dsh/.credentials.yaml' },
|
|
125
|
+
'codex-auth-refresh-failed': { zh: 'ChatGPT 订阅令牌刷新失败,已停止注入;用 /login 重新登录,或使用自己的 Codex 登录', en: 'The ChatGPT subscription token refresh failed; injection stopped. Use /login again or your own Codex login' },
|
|
126
|
+
'codex-auth-login-failed': { zh: 'Codex 登录未完成,已停止托管令牌注入;请用 /login 重试', en: 'Codex login did not complete; managed token injection stopped. Retry with /login' },
|
|
127
|
+
'codex-auth-claims-missing': { zh: '内置 OAuth 令牌缺少 ChatGPT 账户信息,未注入;请用 /login 重新登录', en: 'The built-in OAuth token has no ChatGPT account identity and was not injected; sign in again with /login' },
|
|
128
|
+
'codex-auth-source-channel': { zh: '凭据来源:渠道 {{name}}', en: 'Credential source: channel {{name}}' },
|
|
129
|
+
'codex-auth-source-oauth': { zh: '凭据来源:dsh-auth ChatGPT 订阅', en: 'Credential source: dsh-auth ChatGPT subscription' },
|
|
130
|
+
'codex-auth-source-native': { zh: '凭据来源:Codex 自己的登录', en: 'Credential source: Codex native login' },
|
|
131
|
+
'codex-auth-source-api-key': { zh: '凭据来源:API key', en: 'Credential source: API key' },
|
|
132
|
+
'codex-auth-source-missing': { zh: '凭据来源:未登录', en: 'Credential source: not signed in' },
|
|
133
|
+
'codex-auth-source-unknown': { zh: '凭据来源:由 Codex 配置管理(无法确定)', en: 'Credential source: managed by Codex configuration (unknown)' },
|
|
134
|
+
'codex-auth-plan': { zh: '订阅:{{plan}}', en: 'Subscription: {{plan}}' },
|
|
135
|
+
'codex-auth-host': { zh: 'Provider 主机:{{host}}', en: 'Provider host: {{host}}' },
|
|
136
|
+
'codex-auth-route-blocked': { zh: '当前路由不接受内置订阅令牌;请使用自己的 Codex 登录或 /channel 渠道', en: 'This route does not accept built-in subscription tokens; use your own Codex login or /channel' },
|
|
137
|
+
'codex-auth-channel-active': { zh: '当前使用渠道凭据;请在 /channel 管理连接,不改动 OpenAI 登录', en: 'Channel credentials are active; manage the connection in /channel without changing OpenAI login' },
|
|
138
|
+
'codex-auth-api-key-required': { zh: '请输入非空 API key', en: 'Enter a non-empty API key' },
|
|
139
|
+
'codex-login-choose': { zh: '选择 Codex 登录方式', en: 'Choose a Codex sign-in method' },
|
|
140
|
+
'codex-login-oauth': { zh: '内置 ChatGPT OAuth', en: 'Built-in ChatGPT OAuth' },
|
|
141
|
+
'codex-login-oauth-desc': { zh: '复用 dsh-auth 登录,只向第一方路由提供内存令牌', en: 'Use dsh-auth; supply in-memory tokens only to first-party routes' },
|
|
142
|
+
'codex-login-device': { zh: 'Codex 设备码登录', en: 'Codex device-code login' },
|
|
143
|
+
'codex-login-device-desc': { zh: '在浏览器输入设备码,凭据由 Codex 保存', en: 'Enter a device code in a browser; Codex stores the credential' },
|
|
144
|
+
'codex-login-api-key': { zh: 'API key', en: 'API key' },
|
|
145
|
+
'codex-login-api-key-prompt': { zh: '输入 OpenAI API key', en: 'Enter an OpenAI API key' },
|
|
146
|
+
'codex-login-api-key-storage': { zh: '此方式会把 API key 写入用户的 Codex 凭据存储', en: 'This method writes the API key into your Codex credential store' },
|
|
147
|
+
'codex-login-device-code': { zh: '在验证页面输入设备码:{{code}}', en: 'Enter this device code on the verification page: {{code}}' },
|
|
148
|
+
'codex-login-device-wait': { zh: '等待浏览器授权完成;可取消此次登录', en: 'Waiting for browser authorization; you can cancel this login' },
|
|
149
|
+
'codex-login-cancel': { zh: '取消此次登录', en: 'Cancel this login' },
|
|
150
|
+
'codex-login-success': { zh: 'Codex 登录已完成', en: 'Codex sign-in completed' },
|
|
151
|
+
'codex-goal-usage-limited': { zh: 'Codex 用量额度已达到上限', en: 'The Codex usage limit was reached' },
|
|
152
|
+
'codex-goal-budget-limited': { zh: '目标的 token 预算已用尽', en: 'The goal token budget was exhausted' },
|
|
153
|
+
'codex-goal-blocked': { zh: 'Codex 目标暂时受阻', en: 'The Codex goal is blocked' },
|
|
154
|
+
'codex-tasks-unsupported': { zh: '此 Codex 不支持后台终端监控,任务能力已关闭', en: 'This Codex does not support background terminal monitoring; task controls are unavailable' },
|
|
155
|
+
'codex-terminal-ended': { zh: '终端已不在运行列表中;退出状态不可用', en: 'The terminal is no longer running; exit status is unavailable' },
|
|
156
|
+
'codex-terminal-stopped': { zh: '后台终端已停止', en: 'The background terminal was stopped' },
|
|
157
|
+
'codex-terminal-no-output': { zh: '此后台终端暂没有可读取的输出', en: 'No readable output is available for this background terminal' },
|
|
158
|
+
'codex-side-open-failed': { zh: '无法创建临时旁问会话', en: 'Could not create the ephemeral side-question thread' },
|
|
159
|
+
'codex-images-too-many': { zh: 'Codex 一条消息最多接受 {{n}} 张图片', en: 'Codex accepts at most {{n}} images per message' },
|
|
160
|
+
'codex-image-type-refused': { zh: '图片 {{name}} 的格式 {{type}} 不受 Codex 支持', en: 'Image {{name}} uses {{type}}, which Codex does not accept' },
|
|
161
|
+
'codex-image-unreadable': { zh: '无法读取图片 {{name}}', en: 'Image {{name}} could not be read' },
|
|
162
|
+
'codex-image-too-large': { zh: '图片 {{name}} 超过 Codex 的 {{mb}} MiB 限制', en: 'Image {{name}} exceeds the Codex {{mb}} MiB limit' },
|
|
163
|
+
'codex-images-too-large': { zh: '本条消息的图片总大小超过 {{mb}} MiB', en: 'The message images exceed {{mb}} MiB in total' },
|
|
164
|
+
'codex-image-dimensions-refused': { zh: '图片 {{name}} 超过 {{px}} 像素限制,请缩小后重试', en: 'Image {{name}} exceeds the {{px}} pixel limit; resize it and retry' },
|
|
165
|
+
'codex-history-fetch-failed': { zh: 'Codex 更早历史连续读取失败,暂时停止预取;可重新打开会话后重试', en: 'Earlier Codex history could not be read after three attempts; reopen the session to retry' },
|
|
166
|
+
'codex-preview-image': { zh: '[图片]', en: '[Image]' },
|
|
167
|
+
'codex-archive-busy': { zh: '该 Codex 会话由活动中的内部任务使用,暂时无法归档', en: 'This Codex thread is owned by an active internal worker and cannot be archived yet' },
|
|
168
|
+
'codex-orphan-request': { zh: '无法确定 Codex 子代理请求所属会话,已取消该请求', en: 'Could not find the session owning a Codex subagent request; the request was cancelled' },
|
|
169
|
+
'codex-channel-url-invalid': { zh: '渠道 URL 只接受 HTTPS(HTTP 仅限 localhost/127.0.0.1),不能含账号密码、查询串、片段或疑似密钥路径', en: 'A channel URL must use HTTPS (HTTP only on localhost/127.0.0.1), without userinfo, query, fragment, or key-like path segments' },
|
|
170
|
+
'codex-channel-id-invalid': { zh: '渠道 ID 只能含字母、数字、下划线和连字符', en: 'A channel ID may only contain letters, digits, underscores and hyphens' },
|
|
171
|
+
'codex-channel-wire-api-invalid': { zh: 'Codex 渠道仅支持 Responses API', en: 'Codex channels only support the Responses API' },
|
|
172
|
+
'codex-channel-env-invalid': { zh: '渠道 env 只能存非凭据变量;令牌请填入令牌输入框', en: 'Channel env may only hold non-credential variables; use the token input for credentials' },
|
|
173
|
+
'codex-anchor-missing': { zh: '找不到这条消息的原生回合,无法 fork 或回退', en: 'The native turn for this message is unavailable; it cannot be forked or rewound' },
|
|
174
|
+
'codex-rewind-files-unsupported': { zh: 'Codex 仅支持对话回退,不恢复工作区文件', en: 'Codex supports conversation rewind only; workspace files are not restored' },
|
|
175
|
+
'codex-rewind-upgrade': { zh: '此处回退需要 Codex app-server {{min}} 或更新版本;请升级并重启 Codex 服务,或先加载更早消息后重试', en: 'Rewinding here requires Codex app-server {{min}} or newer; upgrade and restart the Codex server, or load earlier messages and retry' },
|
|
176
|
+
'codex-goals-unsupported': { zh: '此 Codex 不支持目标管理,目标能力已关闭', en: 'This Codex does not support goal management; goal controls are unavailable' },
|
|
177
|
+
'codex-subagent-unavailable': { zh: '无法读取此 Codex 子代理的历史', en: 'This Codex subagent history is unavailable' },
|
|
178
|
+
'codex-reconnect-incomplete': { zh: 'Codex 恢复缺口超过读取预算或游标失效,请重新打开会话', en: 'Codex recovery exceeded its history budget or could not reach a known turn; reopen the session' },
|
|
179
|
+
// ── MCP elicitation → questionnaire (the flow is shared; the copy is this backend's own, per D2 — see src/backends/shared/elicitation.ts) ──
|
|
180
|
+
'elicit-skip': { zh: '跳过', en: 'Skip' },
|
|
181
|
+
'elicit-skip-desc': { zh: '这一项不填', en: 'Leave this field empty' },
|
|
182
|
+
'elicit-optional': { zh: '{{title}}(可选)', en: '{{title}} (optional)' },
|
|
183
|
+
'elicit-yes': { zh: '是', en: 'Yes' },
|
|
184
|
+
'elicit-no': { zh: '否', en: 'No' },
|
|
185
|
+
'elicit-send': { zh: '发送', en: 'Send' },
|
|
186
|
+
'elicit-send-desc': { zh: '把这些回答交给 MCP 服务器', en: 'Give these answers to the MCP server' },
|
|
187
|
+
'elicit-decline': { zh: '拒绝', en: 'Decline' },
|
|
188
|
+
'elicit-decline-desc': { zh: '不提供,告诉服务器你拒绝了', en: 'Provide nothing; tell the server you declined' },
|
|
189
|
+
'elicit-confirm': { zh: '把回答发送给 MCP 服务器 {{server}}?', en: 'Send your answers to the MCP server {{server}}?' },
|
|
190
|
+
'elicit-invalid': { zh: '请重新填写:{{reason}}', en: 'Please answer again: {{reason}}' },
|
|
191
|
+
'elicit-invalid-required': { zh: '这一项必填', en: 'this field is required' },
|
|
192
|
+
'elicit-invalid-choice': { zh: '请选择一项', en: 'pick one of the options' },
|
|
193
|
+
'elicit-invalid-number': { zh: '需要一个数字', en: 'a number is expected' },
|
|
194
|
+
'elicit-invalid-integer': { zh: '需要一个整数', en: 'a whole number is expected' },
|
|
195
|
+
'elicit-invalid-min': { zh: '不能小于 {{min}}', en: 'must be at least {{min}}' },
|
|
196
|
+
'elicit-invalid-max': { zh: '不能大于 {{max}}', en: 'must be at most {{max}}' },
|
|
197
|
+
'elicit-invalid-min-length': { zh: '至少 {{n}} 个字符', en: 'at least {{n}} characters' },
|
|
198
|
+
'elicit-invalid-max-length': { zh: '至多 {{n}} 个字符', en: 'at most {{n}} characters' },
|
|
199
|
+
'elicit-invalid-min-items': { zh: '至少选 {{n}} 项', en: 'pick at least {{n}}' },
|
|
200
|
+
'elicit-invalid-max-items': { zh: '至多选 {{n}} 项', en: 'pick at most {{n}}' },
|
|
201
|
+
'elicit-invalid-email': { zh: '需要一个邮箱地址', en: 'an email address is expected' },
|
|
202
|
+
'elicit-invalid-uri': { zh: '需要一个完整的网址(URI)', en: 'a full URI is expected' },
|
|
203
|
+
'elicit-invalid-date': { zh: '需要日期(YYYY-MM-DD)', en: 'a date is expected (YYYY-MM-DD)' },
|
|
204
|
+
'elicit-invalid-date-time': { zh: '需要日期时间(ISO 8601)', en: 'a date and time is expected (ISO 8601)' },
|
|
205
|
+
'elicit-invalid-pattern': { zh: '格式不符合要求', en: 'the format does not match' },
|
|
206
|
+
'elicit-invalid-json': { zh: '需要 JSON 形式的值', en: 'a JSON value is expected' },
|
|
207
|
+
'elicit-kind-number': { zh: '数字', en: 'number' },
|
|
208
|
+
'elicit-kind-integer': { zh: '整数', en: 'whole number' },
|
|
209
|
+
'elicit-hint-range': { zh: '{{kind}},{{min}}–{{max}}', en: '{{kind}}, {{min}}–{{max}}' },
|
|
210
|
+
'elicit-hint-min': { zh: '{{kind}},不小于 {{min}}', en: '{{kind}}, at least {{min}}' },
|
|
211
|
+
'elicit-hint-max': { zh: '{{kind}},不大于 {{max}}', en: '{{kind}}, at most {{max}}' },
|
|
212
|
+
'elicit-hint-json': { zh: '以 JSON 形式输入', en: 'enter it as JSON' },
|
|
213
|
+
'elicit-hint-format': { zh: '格式:{{format}}', en: 'format: {{format}}' },
|
|
214
|
+
'elicit-url-notice': { zh: 'MCP 服务器 {{server}} 请你在浏览器中打开:{{url}}', en: 'The MCP server {{server}} asks you to open: {{url}}' },
|
|
215
|
+
'elicit-url-question': { zh: 'MCP 服务器 {{server}} 需要你在浏览器中完成一步', en: 'The MCP server {{server}} needs you to finish a step in the browser' },
|
|
216
|
+
'elicit-url-detail': { zh: '打开下面的链接完成后选「继续」;完成时服务器也可能自动关闭这个面板', en: 'Open the link below, then choose Continue; the server may also close this panel when it is done' },
|
|
217
|
+
'elicit-url-accept': { zh: '继续(已打开链接)', en: 'Continue (link opened)' },
|
|
218
|
+
'elicit-url-accept-desc': { zh: '告诉服务器你同意并已打开链接', en: 'Tell the server you agreed and opened the link' },
|
|
219
|
+
'elicit-url-complete': { zh: 'MCP 服务器 {{server}} 确认已完成', en: 'The MCP server {{server}} confirmed it is done' },
|
|
220
|
+
'elicit-url-missing': { zh: 'MCP 服务器 {{server}} 请求打开链接却没有给出网址,已拒绝', en: 'The MCP server {{server}} asked to open a link but gave none; declined' },
|
|
221
|
+
'elicit-unsupported': { zh: 'MCP 服务器 {{server}} 的请求({{mode}})无法在此显示,已拒绝', en: 'The request of the MCP server {{server}} ({{mode}}) cannot be shown here; declined' },
|
|
222
|
+
// ── Strings this backend shares with platform surfaces the host also renders (the status line's rate-limit window, /doctor, the tool names of its own cards).
|
|
223
|
+
// They are not a copy kept here any more: the values come from the one source in the neutral seam
|
|
224
|
+
// (`src/backends/shared/platform-text.ts`), which the host dictionary reads too, so the two sides cannot drift apart.
|
|
225
|
+
// D2 is unchanged for a third-party contribution — it still cannot read the host dictionary,
|
|
226
|
+
// and the seam is out of reach from the layers a contribution occupies. ──
|
|
227
|
+
...pickPlatformText([
|
|
228
|
+
'capability-failed',
|
|
229
|
+
'status-rate-limit-five-hour',
|
|
230
|
+
'status-rate-limit-seven-day',
|
|
231
|
+
'doctor-unknown',
|
|
232
|
+
'effort-invalid',
|
|
233
|
+
'tool-name-bash',
|
|
234
|
+
'tool-name-edit',
|
|
235
|
+
]),
|
|
236
|
+
};
|
|
237
|
+
/** Read-only view of {@link texts} for audits (`scripts/verify-i18n.ts` and the
|
|
238
|
+
* backend's own gates), mirroring `i18nDict` on the host side. */
|
|
239
|
+
export const codexTexts = texts;
|
|
240
|
+
/** Where the live language comes from: the host, in production. */
|
|
241
|
+
let localeSource = () => 'zh';
|
|
242
|
+
/** Install the language source (`BackendHost.locale`). Called on every
|
|
243
|
+
* `detect()`/`open()`, so a session started after a `/lang` switch writes in
|
|
244
|
+
* the new language. */
|
|
245
|
+
export function installCodexLocale(source) {
|
|
246
|
+
localeSource = source;
|
|
247
|
+
}
|
|
248
|
+
/** The language this backend is writing in right now. */
|
|
249
|
+
export function codexLocale() {
|
|
250
|
+
return localeSource();
|
|
251
|
+
}
|
|
252
|
+
/** The raw template of one key in the active language, without substitution:
|
|
253
|
+
* the elicitation flow fills its own placeholders (see
|
|
254
|
+
* {@link codexElicitationText}). */
|
|
255
|
+
export function codexTemplate(key) {
|
|
256
|
+
return texts[key][codexLocale()];
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* The elicitation copy of one flow, in the language showing when the flow
|
|
260
|
+
* opens: the option labels of a flow are fixed then, because answers are
|
|
261
|
+
* matched against the strings the panel showed (a language switch meanwhile
|
|
262
|
+
* must not turn a valid answer into a mismatch).
|
|
263
|
+
*/
|
|
264
|
+
export function codexElicitationText() {
|
|
265
|
+
return {
|
|
266
|
+
skip: codexTemplate('elicit-skip'),
|
|
267
|
+
skipDesc: codexTemplate('elicit-skip-desc'),
|
|
268
|
+
yes: codexTemplate('elicit-yes'),
|
|
269
|
+
no: codexTemplate('elicit-no'),
|
|
270
|
+
send: codexTemplate('elicit-send'),
|
|
271
|
+
sendDesc: codexTemplate('elicit-send-desc'),
|
|
272
|
+
decline: codexTemplate('elicit-decline'),
|
|
273
|
+
declineDesc: codexTemplate('elicit-decline-desc'),
|
|
274
|
+
confirm: codexTemplate('elicit-confirm'),
|
|
275
|
+
optional: codexTemplate('elicit-optional'),
|
|
276
|
+
invalid: codexTemplate('elicit-invalid'),
|
|
277
|
+
invalidChoice: codexTemplate('elicit-invalid-choice'),
|
|
278
|
+
invalidRequired: codexTemplate('elicit-invalid-required'),
|
|
279
|
+
invalidNumber: codexTemplate('elicit-invalid-number'),
|
|
280
|
+
invalidInteger: codexTemplate('elicit-invalid-integer'),
|
|
281
|
+
invalidMin: codexTemplate('elicit-invalid-min'),
|
|
282
|
+
invalidMax: codexTemplate('elicit-invalid-max'),
|
|
283
|
+
invalidMinLength: codexTemplate('elicit-invalid-min-length'),
|
|
284
|
+
invalidMaxLength: codexTemplate('elicit-invalid-max-length'),
|
|
285
|
+
invalidMinItems: codexTemplate('elicit-invalid-min-items'),
|
|
286
|
+
invalidMaxItems: codexTemplate('elicit-invalid-max-items'),
|
|
287
|
+
invalidJson: codexTemplate('elicit-invalid-json'),
|
|
288
|
+
invalidEmail: codexTemplate('elicit-invalid-email'),
|
|
289
|
+
invalidUri: codexTemplate('elicit-invalid-uri'),
|
|
290
|
+
invalidDate: codexTemplate('elicit-invalid-date'),
|
|
291
|
+
invalidDateTime: codexTemplate('elicit-invalid-date-time'),
|
|
292
|
+
invalidPattern: codexTemplate('elicit-invalid-pattern'),
|
|
293
|
+
kindInteger: codexTemplate('elicit-kind-integer'),
|
|
294
|
+
kindNumber: codexTemplate('elicit-kind-number'),
|
|
295
|
+
hintRange: codexTemplate('elicit-hint-range'),
|
|
296
|
+
hintMin: codexTemplate('elicit-hint-min'),
|
|
297
|
+
hintMax: codexTemplate('elicit-hint-max'),
|
|
298
|
+
hintJson: codexTemplate('elicit-hint-json'),
|
|
299
|
+
hintFormat: codexTemplate('elicit-hint-format'),
|
|
300
|
+
urlAccept: codexTemplate('elicit-url-accept'),
|
|
301
|
+
urlAcceptDesc: codexTemplate('elicit-url-accept-desc'),
|
|
302
|
+
urlQuestion: codexTemplate('elicit-url-question'),
|
|
303
|
+
urlDetail: codexTemplate('elicit-url-detail'),
|
|
304
|
+
urlNotice: codexTemplate('elicit-url-notice'),
|
|
305
|
+
urlComplete: codexTemplate('elicit-url-complete'),
|
|
306
|
+
urlMissing: codexTemplate('elicit-url-missing'),
|
|
307
|
+
unsupported: codexTemplate('elicit-unsupported'),
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
/** One string of this backend in the active language. */
|
|
311
|
+
export function codexText(key, params = {}) {
|
|
312
|
+
return fillTemplate(codexTemplate(key), params);
|
|
313
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../../src/backends/codex/translate/items.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAoB,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErH,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,EAA6C,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../../src/backends/codex/translate/items.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAoB,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErH,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,EAA6C,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK/F,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,CAAA;IACzB;gCAC4B;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAClC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACjC;AAED,sDAAsD;AACtD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,GAAG,IAAI,MAAM,CAAA;IACb,OAAO,IAAI,MAAM,CAAA;IACjB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzC,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,uEAAuE;IACvE,gBAAgB,EAAE,OAAO,CAAA;IACzB,8CAA8C;IAC9C,cAAc,EAAE,OAAO,CAAA;IACvB,wDAAwD;IACxD,SAAS,EAAE,UAAU,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAC5B;AAQD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAuB1E;AAED,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAStJ;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAInE;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAKpE;AAED,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,WAAW,CAUvG;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,IAAI,CAyB1G;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAexG;AAED;;;;yEAIyE;AACzE,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAetJ;AAmDD,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CA+JlH"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { codexText } from '../text.js';
|
|
2
2
|
import { arr, rec, str } from '../narrow.js';
|
|
3
3
|
import { failureHint } from './notices.js';
|
|
4
4
|
import { TOOL_ITEM_TYPES, toolCallOf, toolResultOf } from './presentation.js';
|
|
5
5
|
import { addUsage } from './usage.js';
|
|
6
|
+
import { displayQuestionReply, parseQuestionReply } from './question-reply.js';
|
|
6
7
|
import { itemImages, transcriptImages, dataUrlImageFacade } from '../session/images.js';
|
|
7
8
|
/** Anchors remembered (one per user message; the oldest go first). */
|
|
8
9
|
const MAX_ANCHORS = 4000;
|
|
@@ -29,7 +30,7 @@ export function createItemContext(options) {
|
|
|
29
30
|
compactRequested: false,
|
|
30
31
|
compactionSeen: false,
|
|
31
32
|
turnUsage: undefined,
|
|
32
|
-
words: { declined:
|
|
33
|
+
words: { declined: codexText('codex-declined'), failed: codexText('codex-tool-failed') },
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
36
|
/** Open a turn (no-op when one is open). */
|
|
@@ -112,7 +113,7 @@ export function closeTurn(ctx, out, reason, time) {
|
|
|
112
113
|
const interrupted = reason.kind === 'interrupted' || reason.kind === 'aborted';
|
|
113
114
|
settleAttempt(ctx, out, time, interrupted);
|
|
114
115
|
for (const [callId] of ctx.openTools) {
|
|
115
|
-
out.push({ type: 'tool.result', seq: ctx.nextSeq(), turn: ctx.turn, step: ctx.step, callId, isError: true, time, content: [], text: '', errorText: interrupted ?
|
|
116
|
+
out.push({ type: 'tool.result', seq: ctx.nextSeq(), turn: ctx.turn, step: ctx.step, callId, isError: true, time, content: [], text: '', errorText: interrupted ? codexText('codex-interrupted') : codexText('codex-tool-unfinished') });
|
|
116
117
|
}
|
|
117
118
|
ctx.openTools.clear();
|
|
118
119
|
closeStep(ctx, out);
|
|
@@ -160,7 +161,8 @@ function userContent(content) {
|
|
|
160
161
|
switch (type) {
|
|
161
162
|
case 'text': {
|
|
162
163
|
const value = str(input.text) ?? '';
|
|
163
|
-
|
|
164
|
+
const replies = parseQuestionReply(value);
|
|
165
|
+
texts.push(replies === undefined ? value : displayQuestionReply(replies));
|
|
164
166
|
blocks.push({ type: 'text', text: value });
|
|
165
167
|
break;
|
|
166
168
|
}
|
|
@@ -300,7 +302,7 @@ export function itemEvents(item, phase, ctx, time) {
|
|
|
300
302
|
if (phase !== 'started')
|
|
301
303
|
return out;
|
|
302
304
|
settleAttempt(ctx, out, time);
|
|
303
|
-
out.push({ type: 'notice', level: 'info', key: `review:${id}`, text:
|
|
305
|
+
out.push({ type: 'notice', level: 'info', key: `review:${id}`, text: codexText('codex-review-start', { review: str(item.review) ?? '' }) });
|
|
304
306
|
return out;
|
|
305
307
|
}
|
|
306
308
|
case 'exitedReviewMode': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../../../src/backends/codex/translate/live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAI1E,OAAO,EAA4B,KAAK,GAAG,EAAE,MAAM,cAAc,CAAA;AAEjE,OAAO,EAAE,SAAS,EAA0C,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAIhG,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iBAAiB,CAAC,EAAE,GAAG,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,UAAU,EAAE,CAAA;IACvD;0BACsB;IACtB,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,CAAA;IACjE,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CACpC;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAI5F;AAOD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../../../src/backends/codex/translate/live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAI1E,OAAO,EAA4B,KAAK,GAAG,EAAE,MAAM,cAAc,CAAA;AAEjE,OAAO,EAAE,SAAS,EAA0C,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAIhG,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iBAAiB,CAAC,EAAE,GAAG,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,UAAU,EAAE,CAAA;IACvD;0BACsB;IACtB,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,CAAA;IACjE,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CACpC;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAI5F;AAOD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,GAAG,cAAc,CAiRjG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { codexText } from '../text.js';
|
|
2
2
|
import { modeIdOf } from '../modes.js';
|
|
3
3
|
import { arr, num, rec, str, text } from '../narrow.js';
|
|
4
4
|
import { NOTIFY } from '../protocol/index.js';
|
|
@@ -59,7 +59,10 @@ export function createLiveTranslator(ctx, settings) {
|
|
|
59
59
|
switch (method) {
|
|
60
60
|
case NOTIFY.turnStarted: {
|
|
61
61
|
const id = str(rec(params.turn)?.id);
|
|
62
|
-
|
|
62
|
+
// Review items can open their durable turn before a turn/started
|
|
63
|
+
// carrying a different internal lifecycle id. Preserve the item id
|
|
64
|
+
// for transcript anchors, attempts and forced-close late-event fences.
|
|
65
|
+
if (id !== undefined && !ctx.turnOpen)
|
|
63
66
|
ctx.turnId = id;
|
|
64
67
|
return out;
|
|
65
68
|
}
|
|
@@ -180,7 +183,7 @@ export function createLiveTranslator(ctx, settings) {
|
|
|
180
183
|
out.push({ type: 'session.status', status: 'idle' });
|
|
181
184
|
return out;
|
|
182
185
|
case 'systemError':
|
|
183
|
-
out.push({ type: 'session.status', status: 'idle' }, { type: 'notice', level: 'error', key: 'codex-system-error', text:
|
|
186
|
+
out.push({ type: 'session.status', status: 'idle' }, { type: 'notice', level: 'error', key: 'codex-system-error', text: codexText('codex-system-error') });
|
|
184
187
|
return out;
|
|
185
188
|
default:
|
|
186
189
|
return out;
|
|
@@ -228,7 +231,7 @@ export function createLiveTranslator(ctx, settings) {
|
|
|
228
231
|
return out;
|
|
229
232
|
settings.model = to;
|
|
230
233
|
ctx.model = to;
|
|
231
|
-
out.push({ type: 'model.changed', model: to, source: 'fallback' }, { type: 'notice', level: 'warning', key: 'reroute', text:
|
|
234
|
+
out.push({ type: 'model.changed', model: to, source: 'fallback' }, { type: 'notice', level: 'warning', key: 'reroute', text: codexText('codex-rerouted', { from: str(params.fromModel) ?? '', to, reason: str(params.reason) ?? '' }) });
|
|
232
235
|
return out;
|
|
233
236
|
}
|
|
234
237
|
case NOTIFY.error: {
|
|
@@ -252,7 +255,7 @@ export function createLiveTranslator(ctx, settings) {
|
|
|
252
255
|
return out;
|
|
253
256
|
}
|
|
254
257
|
case NOTIFY.strictReviewRequired:
|
|
255
|
-
out.push({ type: 'notice', level: 'info', key: 'strict-review', text:
|
|
258
|
+
out.push({ type: 'notice', level: 'info', key: 'strict-review', text: codexText('codex-strict-review') });
|
|
256
259
|
return out;
|
|
257
260
|
case NOTIFY.threadCompacted:
|
|
258
261
|
if (!ctx.compactionSeen)
|
|
@@ -261,7 +264,7 @@ export function createLiveTranslator(ctx, settings) {
|
|
|
261
264
|
case NOTIFY.threadClosed:
|
|
262
265
|
case NOTIFY.threadArchived:
|
|
263
266
|
case NOTIFY.threadDeleted:
|
|
264
|
-
out.push({ type: 'notice', level: 'warning', key: 'thread-state', text:
|
|
267
|
+
out.push({ type: 'notice', level: 'warning', key: 'thread-state', text: codexText(method === NOTIFY.threadClosed ? 'codex-thread-closed' : method === NOTIFY.threadArchived ? 'codex-thread-archived' : 'codex-thread-deleted') });
|
|
265
268
|
return out;
|
|
266
269
|
case NOTIFY.mcpServerStartupStatusUpdated: {
|
|
267
270
|
const notice = mcpStartupNotice(params);
|
|
@@ -281,8 +284,8 @@ export function createLiveTranslator(ctx, settings) {
|
|
|
281
284
|
level: 'info',
|
|
282
285
|
key: `hook:${id}`,
|
|
283
286
|
text: method === NOTIFY.hookStarted
|
|
284
|
-
?
|
|
285
|
-
:
|
|
287
|
+
? codexText('codex-hook-started', { event })
|
|
288
|
+
: codexText(status === 'failed' || status === 'blocked' ? 'codex-hook-failed' : 'codex-hook-done', { event, duration: duration === undefined ? '' : `${Math.round(duration)} ms` }),
|
|
286
289
|
});
|
|
287
290
|
return out;
|
|
288
291
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* notice: `/doctor` reports it.
|
|
8
8
|
*/
|
|
9
9
|
import { createHash } from 'node:crypto';
|
|
10
|
-
import {
|
|
10
|
+
import { codexText } from '../text.js';
|
|
11
11
|
import { NOTIFY } from '../protocol/index.js';
|
|
12
12
|
import { rec, str, text } from '../narrow.js';
|
|
13
13
|
const digest = (value) => createHash('sha256').update(value).digest('hex').slice(0, 10);
|
|
@@ -27,7 +27,7 @@ export function retryNotice(params) {
|
|
|
27
27
|
if (params.willRetry !== true)
|
|
28
28
|
return undefined;
|
|
29
29
|
const message = str(rec(params.error)?.message) ?? '';
|
|
30
|
-
return { type: 'notice', level: 'warning', key: `retry:${str(params.turnId) ?? ''}`, text:
|
|
30
|
+
return { type: 'notice', level: 'warning', key: `retry:${str(params.turnId) ?? ''}`, text: codexText('codex-retrying', { message }) };
|
|
31
31
|
}
|
|
32
32
|
/** `warning` / `guardianWarning` / `configWarning` / `deprecationNotice`. */
|
|
33
33
|
export function warningNotice(method, params) {
|
|
@@ -50,7 +50,7 @@ export function turnEndReason(turn) {
|
|
|
50
50
|
case 'failed': {
|
|
51
51
|
const error = rec(turn.error);
|
|
52
52
|
const category = errorCategory(error?.codexErrorInfo);
|
|
53
|
-
return { kind: 'error', message: str(error?.message) ??
|
|
53
|
+
return { kind: 'error', message: str(error?.message) ?? codexText('codex-turn-failed'), ...(category === undefined ? {} : { category }) };
|
|
54
54
|
}
|
|
55
55
|
default:
|
|
56
56
|
return { kind: 'other', label: str(turn.status) ?? 'unknown' };
|
|
@@ -66,14 +66,14 @@ export function failureHint(reason, platform = process.platform) {
|
|
|
66
66
|
return undefined;
|
|
67
67
|
switch (reason.category) {
|
|
68
68
|
case 'unauthorized':
|
|
69
|
-
return { type: 'notice', level: 'error', key: 'codex-hint:auth', text:
|
|
69
|
+
return { type: 'notice', level: 'error', key: 'codex-hint:auth', text: codexText('codex-hint-unauthorized') };
|
|
70
70
|
case 'context-window-exceeded':
|
|
71
|
-
return { type: 'notice', level: 'warning', key: 'codex-hint:context', text:
|
|
71
|
+
return { type: 'notice', level: 'warning', key: 'codex-hint:context', text: codexText('codex-hint-context') };
|
|
72
72
|
case 'usage-limit-exceeded':
|
|
73
73
|
case 'rate-limit-exceeded':
|
|
74
|
-
return { type: 'notice', level: 'warning', key: 'codex-hint:limit', text:
|
|
74
|
+
return { type: 'notice', level: 'warning', key: 'codex-hint:limit', text: codexText('codex-hint-limit') };
|
|
75
75
|
case 'sandbox-error':
|
|
76
|
-
return platform === 'linux' ? { type: 'notice', level: 'warning', key: 'codex-hint:sandbox', text:
|
|
76
|
+
return platform === 'linux' ? { type: 'notice', level: 'warning', key: 'codex-hint:sandbox', text: codexText('codex-hint-sandbox') } : undefined;
|
|
77
77
|
default:
|
|
78
78
|
return undefined;
|
|
79
79
|
}
|
|
@@ -83,10 +83,10 @@ export function reviewNotice(method, params) {
|
|
|
83
83
|
const review = rec(params.review);
|
|
84
84
|
const id = str(params.reviewId) ?? '';
|
|
85
85
|
if (method === NOTIFY.autoApprovalReviewStarted) {
|
|
86
|
-
return { type: 'notice', level: 'info', key: `auto-review:${id}`, text:
|
|
86
|
+
return { type: 'notice', level: 'info', key: `auto-review:${id}`, text: codexText('codex-auto-review-started') };
|
|
87
87
|
}
|
|
88
88
|
const status = str(review?.status) ?? str(params.status);
|
|
89
|
-
const outcome = status === 'approved' ?
|
|
89
|
+
const outcome = status === 'approved' ? codexText('codex-auto-review-approved') : status === 'denied' ? codexText('codex-auto-review-denied') : codexText('codex-auto-review-ended');
|
|
90
90
|
return { type: 'notice', level: 'info', key: `auto-review:${id}`, text: outcome };
|
|
91
91
|
}
|
|
92
92
|
/** `mcpServer/startupStatus/updated` failing: one warning per server. */
|
|
@@ -95,5 +95,5 @@ export function mcpStartupNotice(params) {
|
|
|
95
95
|
const name = str(params.name) ?? '';
|
|
96
96
|
if (status !== 'failed' && status !== 'error')
|
|
97
97
|
return undefined;
|
|
98
|
-
return { type: 'notice', level: 'warning', key: `mcp:${name}`, text:
|
|
98
|
+
return { type: 'notice', level: 'warning', key: `mcp:${name}`, text: codexText('codex-mcp-failed', { name, error: str(params.error) ?? '' }) };
|
|
99
99
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface AsyncQuestionReply {
|
|
2
|
+
readonly questionItemId: string;
|
|
3
|
+
readonly question: string;
|
|
4
|
+
readonly answer: string;
|
|
5
|
+
}
|
|
6
|
+
/** Only complete envelopes are interpreted; ordinary user text stays literal. */
|
|
7
|
+
export declare function parseQuestionReply(text: string): readonly AsyncQuestionReply[] | undefined;
|
|
8
|
+
export declare function displayQuestionReply(replies: readonly AsyncQuestionReply[]): string;
|
|
9
|
+
/** Bound model-authored framing to Codex's 512-byte budget, keeping Unicode whole. */
|
|
10
|
+
export declare function questionReplyText(questionItemId: string, title: string, answer: string): string;
|
|
11
|
+
//# sourceMappingURL=question-reply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question-reply.d.ts","sourceRoot":"","sources":["../../../../../src/backends/codex/translate/question-reply.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAyB1F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,CAEnF;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAW/F"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** Codex's persisted async-question reply envelope (also used by its desktop/TUI). */
|
|
2
|
+
import { rec, str } from '../narrow.js';
|
|
3
|
+
const OPEN = '<send_user_message_question_reply>';
|
|
4
|
+
const CLOSE = '</send_user_message_question_reply>';
|
|
5
|
+
/** Only complete envelopes are interpreted; ordinary user text stays literal. */
|
|
6
|
+
export function parseQuestionReply(text) {
|
|
7
|
+
let body = text.trim();
|
|
8
|
+
if (body.startsWith('# Context from my IDE setup:\n')) {
|
|
9
|
+
const marker = '\n## My request for Codex:\n';
|
|
10
|
+
const index = body.lastIndexOf(marker);
|
|
11
|
+
if (index < 0)
|
|
12
|
+
return undefined;
|
|
13
|
+
body = body.slice(index + marker.length).trim();
|
|
14
|
+
}
|
|
15
|
+
if (!body.startsWith(OPEN) || !body.endsWith(CLOSE))
|
|
16
|
+
return undefined;
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse(body.slice(OPEN.length, -CLOSE.length));
|
|
19
|
+
const values = Array.isArray(parsed) ? parsed : [parsed];
|
|
20
|
+
const replies = [];
|
|
21
|
+
for (const raw of values) {
|
|
22
|
+
const value = rec(raw);
|
|
23
|
+
const questionItemId = str(value?.questionItemId);
|
|
24
|
+
const question = str(value?.question);
|
|
25
|
+
const answer = str(value?.answer);
|
|
26
|
+
if (questionItemId === undefined || question === undefined || answer === undefined)
|
|
27
|
+
return undefined;
|
|
28
|
+
replies.push({ questionItemId, question, answer });
|
|
29
|
+
}
|
|
30
|
+
return replies.length === 0 ? undefined : replies;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export function displayQuestionReply(replies) {
|
|
37
|
+
return replies.map(reply => `> ${reply.question.replaceAll('\n', '\n> ')}\n\n${reply.answer}`).join('\n\n');
|
|
38
|
+
}
|
|
39
|
+
/** Bound model-authored framing to Codex's 512-byte budget, keeping Unicode whole. */
|
|
40
|
+
export function questionReplyText(questionItemId, title, answer) {
|
|
41
|
+
let question = '';
|
|
42
|
+
let bytes = 0;
|
|
43
|
+
for (const char of title) {
|
|
44
|
+
bytes += Buffer.byteLength(char);
|
|
45
|
+
if (bytes > 512)
|
|
46
|
+
break;
|
|
47
|
+
question += char;
|
|
48
|
+
}
|
|
49
|
+
question = question.replace(/[\r\n]/gu, ' ');
|
|
50
|
+
if (Buffer.byteLength(questionItemId) > 512)
|
|
51
|
+
return `> ${question}\n\n${answer}`;
|
|
52
|
+
return `${OPEN}\n${JSON.stringify([{ questionItemId, question, answer }])}\n${CLOSE}`;
|
|
53
|
+
}
|