turboflux 1.0.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/LICENSE +21 -0
- package/README.md +177 -0
- package/bin/turboflux.mjs +28 -0
- package/dist/cli/brand.d.ts +7 -0
- package/dist/cli/brand.js +33 -0
- package/dist/cli/brand.js.map +1 -0
- package/dist/cli/commands/index.d.ts +4 -0
- package/dist/cli/commands/index.js +671 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/registry.d.ts +24 -0
- package/dist/cli/commands/registry.js +124 -0
- package/dist/cli/commands/registry.js.map +1 -0
- package/dist/cli/commands/types.d.ts +69 -0
- package/dist/cli/commands/types.js +2 -0
- package/dist/cli/commands/types.js.map +1 -0
- package/dist/cli/components/App.d.ts +15 -0
- package/dist/cli/components/App.js +1738 -0
- package/dist/cli/components/App.js.map +1 -0
- package/dist/cli/components/ConversationHistory.d.ts +15 -0
- package/dist/cli/components/ConversationHistory.js +92 -0
- package/dist/cli/components/ConversationHistory.js.map +1 -0
- package/dist/cli/components/TranscriptViewport.d.ts +25 -0
- package/dist/cli/components/TranscriptViewport.js +77 -0
- package/dist/cli/components/TranscriptViewport.js.map +1 -0
- package/dist/cli/components/agentActivityModel.d.ts +24 -0
- package/dist/cli/components/agentActivityModel.js +45 -0
- package/dist/cli/components/agentActivityModel.js.map +1 -0
- package/dist/cli/components/appHelpers.d.ts +34 -0
- package/dist/cli/components/appHelpers.js +209 -0
- package/dist/cli/components/appHelpers.js.map +1 -0
- package/dist/cli/components/design-system/StatusIcon.d.ts +5 -0
- package/dist/cli/components/design-system/StatusIcon.js +25 -0
- package/dist/cli/components/design-system/StatusIcon.js.map +1 -0
- package/dist/cli/components/developerFlowModel.d.ts +36 -0
- package/dist/cli/components/developerFlowModel.js +88 -0
- package/dist/cli/components/developerFlowModel.js.map +1 -0
- package/dist/cli/components/diff/DiffCard.d.ts +16 -0
- package/dist/cli/components/diff/DiffCard.js +30 -0
- package/dist/cli/components/diff/DiffCard.js.map +1 -0
- package/dist/cli/components/diff/DiffHunks.d.ts +11 -0
- package/dist/cli/components/diff/DiffHunks.js +58 -0
- package/dist/cli/components/diff/DiffHunks.js.map +1 -0
- package/dist/cli/components/header/Header.d.ts +13 -0
- package/dist/cli/components/header/Header.js +25 -0
- package/dist/cli/components/header/Header.js.map +1 -0
- package/dist/cli/components/header/Mascot.d.ts +4 -0
- package/dist/cli/components/header/Mascot.js +53 -0
- package/dist/cli/components/header/Mascot.js.map +1 -0
- package/dist/cli/components/header/StatusLine.d.ts +21 -0
- package/dist/cli/components/header/StatusLine.js +110 -0
- package/dist/cli/components/header/StatusLine.js.map +1 -0
- package/dist/cli/components/input/EffortPicker.d.ts +30 -0
- package/dist/cli/components/input/EffortPicker.js +126 -0
- package/dist/cli/components/input/EffortPicker.js.map +1 -0
- package/dist/cli/components/input/ModelPicker.d.ts +15 -0
- package/dist/cli/components/input/ModelPicker.js +95 -0
- package/dist/cli/components/input/ModelPicker.js.map +1 -0
- package/dist/cli/components/input/PromptInput.d.ts +79 -0
- package/dist/cli/components/input/PromptInput.js +496 -0
- package/dist/cli/components/input/PromptInput.js.map +1 -0
- package/dist/cli/components/input/RewindSelector.d.ts +8 -0
- package/dist/cli/components/input/RewindSelector.js +45 -0
- package/dist/cli/components/input/RewindSelector.js.map +1 -0
- package/dist/cli/components/input/pasteState.d.ts +6 -0
- package/dist/cli/components/input/pasteState.js +42 -0
- package/dist/cli/components/input/pasteState.js.map +1 -0
- package/dist/cli/components/input/terminalInputStateMachine.d.ts +29 -0
- package/dist/cli/components/input/terminalInputStateMachine.js +67 -0
- package/dist/cli/components/input/terminalInputStateMachine.js.map +1 -0
- package/dist/cli/components/layout/CockpitRails.d.ts +6 -0
- package/dist/cli/components/layout/CockpitRails.js +13 -0
- package/dist/cli/components/layout/CockpitRails.js.map +1 -0
- package/dist/cli/components/layout/LandingView.d.ts +15 -0
- package/dist/cli/components/layout/LandingView.js +12 -0
- package/dist/cli/components/layout/LandingView.js.map +1 -0
- package/dist/cli/components/layout/SessionSidebar.d.ts +18 -0
- package/dist/cli/components/layout/SessionSidebar.js +70 -0
- package/dist/cli/components/layout/SessionSidebar.js.map +1 -0
- package/dist/cli/components/layout/StartupAnimation.d.ts +14 -0
- package/dist/cli/components/layout/StartupAnimation.js +30 -0
- package/dist/cli/components/layout/StartupAnimation.js.map +1 -0
- package/dist/cli/components/markdown/highlighter.d.ts +1 -0
- package/dist/cli/components/markdown/highlighter.js +110 -0
- package/dist/cli/components/markdown/highlighter.js.map +1 -0
- package/dist/cli/components/markdown/index.d.ts +11 -0
- package/dist/cli/components/markdown/index.js +86 -0
- package/dist/cli/components/markdown/index.js.map +1 -0
- package/dist/cli/components/messages/MessageList.d.ts +16 -0
- package/dist/cli/components/messages/MessageList.js +56 -0
- package/dist/cli/components/messages/MessageList.js.map +1 -0
- package/dist/cli/components/messages/Messages.d.ts +26 -0
- package/dist/cli/components/messages/Messages.js +32 -0
- package/dist/cli/components/messages/Messages.js.map +1 -0
- package/dist/cli/components/messages/ThinkingBlock.d.ts +9 -0
- package/dist/cli/components/messages/ThinkingBlock.js +51 -0
- package/dist/cli/components/messages/ThinkingBlock.js.map +1 -0
- package/dist/cli/components/messages/WindowedMessageList.d.ts +21 -0
- package/dist/cli/components/messages/WindowedMessageList.js +44 -0
- package/dist/cli/components/messages/WindowedMessageList.js.map +1 -0
- package/dist/cli/components/permissions/PermissionDialog.d.ts +23 -0
- package/dist/cli/components/permissions/PermissionDialog.js +83 -0
- package/dist/cli/components/permissions/PermissionDialog.js.map +1 -0
- package/dist/cli/components/spinner/SpinnerGlyph.d.ts +6 -0
- package/dist/cli/components/spinner/SpinnerGlyph.js +55 -0
- package/dist/cli/components/spinner/SpinnerGlyph.js.map +1 -0
- package/dist/cli/components/spinner/constants.d.ts +4 -0
- package/dist/cli/components/spinner/constants.js +5 -0
- package/dist/cli/components/spinner/constants.js.map +1 -0
- package/dist/cli/components/tools/ActiveWorkPanel.d.ts +22 -0
- package/dist/cli/components/tools/ActiveWorkPanel.js +70 -0
- package/dist/cli/components/tools/ActiveWorkPanel.js.map +1 -0
- package/dist/cli/components/tools/AgentActivityLine.d.ts +13 -0
- package/dist/cli/components/tools/AgentActivityLine.js +88 -0
- package/dist/cli/components/tools/AgentActivityLine.js.map +1 -0
- package/dist/cli/components/tools/QueuedPromptList.d.ts +10 -0
- package/dist/cli/components/tools/QueuedPromptList.js +26 -0
- package/dist/cli/components/tools/QueuedPromptList.js.map +1 -0
- package/dist/cli/components/tools/TaskFlowHud.d.ts +15 -0
- package/dist/cli/components/tools/TaskFlowHud.js +55 -0
- package/dist/cli/components/tools/TaskFlowHud.js.map +1 -0
- package/dist/cli/components/tools/TerminalSessionsFooter.d.ts +6 -0
- package/dist/cli/components/tools/TerminalSessionsFooter.js +36 -0
- package/dist/cli/components/tools/TerminalSessionsFooter.js.map +1 -0
- package/dist/cli/components/tools/ToolActivityList.d.ts +11 -0
- package/dist/cli/components/tools/ToolActivityList.js +73 -0
- package/dist/cli/components/tools/ToolActivityList.js.map +1 -0
- package/dist/cli/components/tools/ToolCallTree.d.ts +11 -0
- package/dist/cli/components/tools/ToolCallTree.js +14 -0
- package/dist/cli/components/tools/ToolCallTree.js.map +1 -0
- package/dist/cli/components/tools/toolLifecycleModel.d.ts +16 -0
- package/dist/cli/components/tools/toolLifecycleModel.js +30 -0
- package/dist/cli/components/tools/toolLifecycleModel.js.map +1 -0
- package/dist/cli/components/tools/toolPresentation.d.ts +9 -0
- package/dist/cli/components/tools/toolPresentation.js +171 -0
- package/dist/cli/components/tools/toolPresentation.js.map +1 -0
- package/dist/cli/components/tools/toolTypes.d.ts +16 -0
- package/dist/cli/components/tools/toolTypes.js +2 -0
- package/dist/cli/components/tools/toolTypes.js.map +1 -0
- package/dist/cli/components/transcriptWindowing.d.ts +19 -0
- package/dist/cli/components/transcriptWindowing.js +81 -0
- package/dist/cli/components/transcriptWindowing.js.map +1 -0
- package/dist/cli/config.d.ts +1 -0
- package/dist/cli/config.js +2 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/conversations/journalWriter.d.ts +50 -0
- package/dist/cli/conversations/journalWriter.js +191 -0
- package/dist/cli/conversations/journalWriter.js.map +1 -0
- package/dist/cli/conversations/manager.d.ts +65 -0
- package/dist/cli/conversations/manager.js +435 -0
- package/dist/cli/conversations/manager.js.map +1 -0
- package/dist/cli/conversations/recoveryExport.d.ts +18 -0
- package/dist/cli/conversations/recoveryExport.js +39 -0
- package/dist/cli/conversations/recoveryExport.js.map +1 -0
- package/dist/cli/conversations/recoveryMessages.d.ts +2 -0
- package/dist/cli/conversations/recoveryMessages.js +3 -0
- package/dist/cli/conversations/recoveryMessages.js.map +1 -0
- package/dist/cli/conversations/store.d.ts +14 -0
- package/dist/cli/conversations/store.js +603 -0
- package/dist/cli/conversations/store.js.map +1 -0
- package/dist/cli/conversations/types.d.ts +142 -0
- package/dist/cli/conversations/types.js +2 -0
- package/dist/cli/conversations/types.js.map +1 -0
- package/dist/cli/globalConfiguration.d.ts +13 -0
- package/dist/cli/globalConfiguration.js +61 -0
- package/dist/cli/globalConfiguration.js.map +1 -0
- package/dist/cli/hooks/useMessageCursor.d.ts +16 -0
- package/dist/cli/hooks/useMessageCursor.js +75 -0
- package/dist/cli/hooks/useMessageCursor.js.map +1 -0
- package/dist/cli/hooks/useOverlayStack.d.ts +9 -0
- package/dist/cli/hooks/useOverlayStack.js +26 -0
- package/dist/cli/hooks/useOverlayStack.js.map +1 -0
- package/dist/cli/hooks/useTerminalSize.d.ts +16 -0
- package/dist/cli/hooks/useTerminalSize.js +37 -0
- package/dist/cli/hooks/useTerminalSize.js.map +1 -0
- package/dist/cli/i18n/index.d.ts +15 -0
- package/dist/cli/i18n/index.js +32 -0
- package/dist/cli/i18n/index.js.map +1 -0
- package/dist/cli/i18n/messages.d.ts +1305 -0
- package/dist/cli/i18n/messages.js +1305 -0
- package/dist/cli/i18n/messages.js.map +1 -0
- package/dist/cli/imageAttachments.d.ts +22 -0
- package/dist/cli/imageAttachments.js +329 -0
- package/dist/cli/imageAttachments.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +146 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/platform/terminalAttention.d.ts +46 -0
- package/dist/cli/platform/terminalAttention.js +152 -0
- package/dist/cli/platform/terminalAttention.js.map +1 -0
- package/dist/cli/platform/terminalTransparency.d.ts +11 -0
- package/dist/cli/platform/terminalTransparency.js +193 -0
- package/dist/cli/platform/terminalTransparency.js.map +1 -0
- package/dist/cli/repl.d.ts +15 -0
- package/dist/cli/repl.js +38 -0
- package/dist/cli/repl.js.map +1 -0
- package/dist/cli/setup.d.ts +17 -0
- package/dist/cli/setup.js +991 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli/singleShot.d.ts +30 -0
- package/dist/cli/singleShot.js +167 -0
- package/dist/cli/singleShot.js.map +1 -0
- package/dist/cli/state/adaptiveStreamScheduler.d.ts +53 -0
- package/dist/cli/state/adaptiveStreamScheduler.js +136 -0
- package/dist/cli/state/adaptiveStreamScheduler.js.map +1 -0
- package/dist/cli/state/agentFlowController.d.ts +37 -0
- package/dist/cli/state/agentFlowController.js +402 -0
- package/dist/cli/state/agentFlowController.js.map +1 -0
- package/dist/cli/state/approvalPresentationScheduler.d.ts +28 -0
- package/dist/cli/state/approvalPresentationScheduler.js +72 -0
- package/dist/cli/state/approvalPresentationScheduler.js.map +1 -0
- package/dist/cli/state/flowFeatureFlags.d.ts +18 -0
- package/dist/cli/state/flowFeatureFlags.js +45 -0
- package/dist/cli/state/flowFeatureFlags.js.map +1 -0
- package/dist/cli/state/flowReducer.d.ts +120 -0
- package/dist/cli/state/flowReducer.js +535 -0
- package/dist/cli/state/flowReducer.js.map +1 -0
- package/dist/cli/state/flowSelectors.d.ts +45 -0
- package/dist/cli/state/flowSelectors.js +144 -0
- package/dist/cli/state/flowSelectors.js.map +1 -0
- package/dist/cli/state/flowStore.d.ts +19 -0
- package/dist/cli/state/flowStore.js +51 -0
- package/dist/cli/state/flowStore.js.map +1 -0
- package/dist/cli/state/globalCommandActivity.d.ts +25 -0
- package/dist/cli/state/globalCommandActivity.js +57 -0
- package/dist/cli/state/globalCommandActivity.js.map +1 -0
- package/dist/cli/state/goldenTraces.d.ts +2 -0
- package/dist/cli/state/goldenTraces.js +15 -0
- package/dist/cli/state/goldenTraces.js.map +1 -0
- package/dist/cli/state/notificationCoordinator.d.ts +38 -0
- package/dist/cli/state/notificationCoordinator.js +101 -0
- package/dist/cli/state/notificationCoordinator.js.map +1 -0
- package/dist/cli/stateProvider.d.ts +5 -0
- package/dist/cli/stateProvider.js +7 -0
- package/dist/cli/stateProvider.js.map +1 -0
- package/dist/cli/telemetry/localFlowTelemetry.d.ts +42 -0
- package/dist/cli/telemetry/localFlowTelemetry.js +131 -0
- package/dist/cli/telemetry/localFlowTelemetry.js.map +1 -0
- package/dist/cli/telemetry/terminalBaseline.d.ts +93 -0
- package/dist/cli/telemetry/terminalBaseline.js +199 -0
- package/dist/cli/telemetry/terminalBaseline.js.map +1 -0
- package/dist/cli/telemetry/terminalLatencyTracker.d.ts +24 -0
- package/dist/cli/telemetry/terminalLatencyTracker.js +59 -0
- package/dist/cli/telemetry/terminalLatencyTracker.js.map +1 -0
- package/dist/cli/terminalLayout.d.ts +2 -0
- package/dist/cli/terminalLayout.js +16 -0
- package/dist/cli/terminalLayout.js.map +1 -0
- package/dist/cli/terminalMouse.d.ts +10 -0
- package/dist/cli/terminalMouse.js +29 -0
- package/dist/cli/terminalMouse.js.map +1 -0
- package/dist/cli/theme/ThemeProvider.d.ts +9 -0
- package/dist/cli/theme/ThemeProvider.js +26 -0
- package/dist/cli/theme/ThemeProvider.js.map +1 -0
- package/dist/cli/theme/dark.d.ts +2 -0
- package/dist/cli/theme/dark.js +27 -0
- package/dist/cli/theme/dark.js.map +1 -0
- package/dist/cli/theme/index.d.ts +5 -0
- package/dist/cli/theme/index.js +5 -0
- package/dist/cli/theme/index.js.map +1 -0
- package/dist/cli/theme/light.d.ts +2 -0
- package/dist/cli/theme/light.js +26 -0
- package/dist/cli/theme/light.js.map +1 -0
- package/dist/cli/theme/palette.d.ts +7 -0
- package/dist/cli/theme/palette.js +8 -0
- package/dist/cli/theme/palette.js.map +1 -0
- package/dist/cli/theme/resolveColor.d.ts +4 -0
- package/dist/cli/theme/resolveColor.js +43 -0
- package/dist/cli/theme/resolveColor.js.map +1 -0
- package/dist/cli/theme/types.d.ts +27 -0
- package/dist/cli/theme/types.js +2 -0
- package/dist/cli/theme/types.js.map +1 -0
- package/dist/cli/toolExecutor.d.ts +1 -0
- package/dist/cli/toolExecutor.js +2 -0
- package/dist/cli/toolExecutor.js.map +1 -0
- package/dist/core/agentEngine.d.ts +425 -0
- package/dist/core/agentEngine.js +5170 -0
- package/dist/core/agentEngine.js.map +1 -0
- package/dist/core/agents/loader.d.ts +9 -0
- package/dist/core/agents/loader.js +144 -0
- package/dist/core/agents/loader.js.map +1 -0
- package/dist/core/applyPatch.d.ts +24 -0
- package/dist/core/applyPatch.js +158 -0
- package/dist/core/applyPatch.js.map +1 -0
- package/dist/core/cacheMonitor.d.ts +24 -0
- package/dist/core/cacheMonitor.js +211 -0
- package/dist/core/cacheMonitor.js.map +1 -0
- package/dist/core/clientIdentity.d.ts +6 -0
- package/dist/core/clientIdentity.js +44 -0
- package/dist/core/clientIdentity.js.map +1 -0
- package/dist/core/config.d.ts +99 -0
- package/dist/core/config.js +715 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/contextCompaction.d.ts +20 -0
- package/dist/core/contextCompaction.js +158 -0
- package/dist/core/contextCompaction.js.map +1 -0
- package/dist/core/contextManager.d.ts +44 -0
- package/dist/core/contextManager.js +590 -0
- package/dist/core/contextManager.js.map +1 -0
- package/dist/core/contextPolicy.d.ts +18 -0
- package/dist/core/contextPolicy.js +39 -0
- package/dist/core/contextPolicy.js.map +1 -0
- package/dist/core/credentialStore.d.ts +8 -0
- package/dist/core/credentialStore.js +37 -0
- package/dist/core/credentialStore.js.map +1 -0
- package/dist/core/diffCompute.d.ts +31 -0
- package/dist/core/diffCompute.js +116 -0
- package/dist/core/diffCompute.js.map +1 -0
- package/dist/core/editHelpers.d.ts +8 -0
- package/dist/core/editHelpers.js +35 -0
- package/dist/core/editHelpers.js.map +1 -0
- package/dist/core/fileIO.d.ts +12 -0
- package/dist/core/fileIO.js +199 -0
- package/dist/core/fileIO.js.map +1 -0
- package/dist/core/gitService.d.ts +83 -0
- package/dist/core/gitService.js +522 -0
- package/dist/core/gitService.js.map +1 -0
- package/dist/core/index.d.ts +30 -0
- package/dist/core/index.js +19 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/mcp/client.d.ts +32 -0
- package/dist/core/mcp/client.js +186 -0
- package/dist/core/mcp/client.js.map +1 -0
- package/dist/core/mcp/settings.d.ts +2 -0
- package/dist/core/mcp/settings.js +26 -0
- package/dist/core/mcp/settings.js.map +1 -0
- package/dist/core/mcp/toolBridge.d.ts +20 -0
- package/dist/core/mcp/toolBridge.js +74 -0
- package/dist/core/mcp/toolBridge.js.map +1 -0
- package/dist/core/mcp/types.d.ts +29 -0
- package/dist/core/mcp/types.js +2 -0
- package/dist/core/mcp/types.js.map +1 -0
- package/dist/core/modelDiscovery.d.ts +14 -0
- package/dist/core/modelDiscovery.js +566 -0
- package/dist/core/modelDiscovery.js.map +1 -0
- package/dist/core/modelProtocol.d.ts +43 -0
- package/dist/core/modelProtocol.js +238 -0
- package/dist/core/modelProtocol.js.map +1 -0
- package/dist/core/modelRegistry.d.ts +56 -0
- package/dist/core/modelRegistry.js +308 -0
- package/dist/core/modelRegistry.js.map +1 -0
- package/dist/core/networkProxy.d.ts +20 -0
- package/dist/core/networkProxy.js +145 -0
- package/dist/core/networkProxy.js.map +1 -0
- package/dist/core/normalizeBaseUrl.d.ts +1 -0
- package/dist/core/normalizeBaseUrl.js +9 -0
- package/dist/core/normalizeBaseUrl.js.map +1 -0
- package/dist/core/pathUtils.d.ts +3 -0
- package/dist/core/pathUtils.js +46 -0
- package/dist/core/pathUtils.js.map +1 -0
- package/dist/core/permissions.d.ts +29 -0
- package/dist/core/permissions.js +245 -0
- package/dist/core/permissions.js.map +1 -0
- package/dist/core/persona/voiceProfile.d.ts +7 -0
- package/dist/core/persona/voiceProfile.js +14 -0
- package/dist/core/persona/voiceProfile.js.map +1 -0
- package/dist/core/profile.d.ts +35 -0
- package/dist/core/profile.js +373 -0
- package/dist/core/profile.js.map +1 -0
- package/dist/core/requestCompatibility.d.ts +13 -0
- package/dist/core/requestCompatibility.js +181 -0
- package/dist/core/requestCompatibility.js.map +1 -0
- package/dist/core/runtime/agentRuntime.d.ts +43 -0
- package/dist/core/runtime/agentRuntime.js +137 -0
- package/dist/core/runtime/agentRuntime.js.map +1 -0
- package/dist/core/runtime/approvalCoordinator.d.ts +36 -0
- package/dist/core/runtime/approvalCoordinator.js +113 -0
- package/dist/core/runtime/approvalCoordinator.js.map +1 -0
- package/dist/core/runtime/capabilityBoundary.d.ts +18 -0
- package/dist/core/runtime/capabilityBoundary.js +89 -0
- package/dist/core/runtime/capabilityBoundary.js.map +1 -0
- package/dist/core/runtime/nodeToolExecutor.d.ts +200 -0
- package/dist/core/runtime/nodeToolExecutor.js +2446 -0
- package/dist/core/runtime/nodeToolExecutor.js.map +1 -0
- package/dist/core/runtime/runtimeLogWriter.d.ts +32 -0
- package/dist/core/runtime/runtimeLogWriter.js +129 -0
- package/dist/core/runtime/runtimeLogWriter.js.map +1 -0
- package/dist/core/runtime/runtimeTaskManager.d.ts +78 -0
- package/dist/core/runtime/runtimeTaskManager.js +374 -0
- package/dist/core/runtime/runtimeTaskManager.js.map +1 -0
- package/dist/core/runtime/sessionRegistry.d.ts +19 -0
- package/dist/core/runtime/sessionRegistry.js +41 -0
- package/dist/core/runtime/sessionRegistry.js.map +1 -0
- package/dist/core/runtime/stateProvider.d.ts +69 -0
- package/dist/core/runtime/stateProvider.js +131 -0
- package/dist/core/runtime/stateProvider.js.map +1 -0
- package/dist/core/runtime/subAgentTaskManager.d.ts +111 -0
- package/dist/core/runtime/subAgentTaskManager.js +386 -0
- package/dist/core/runtime/subAgentTaskManager.js.map +1 -0
- package/dist/core/schemaValidation.d.ts +5 -0
- package/dist/core/schemaValidation.js +153 -0
- package/dist/core/schemaValidation.js.map +1 -0
- package/dist/core/skills/loader.d.ts +7 -0
- package/dist/core/skills/loader.js +91 -0
- package/dist/core/skills/loader.js.map +1 -0
- package/dist/core/skills/runtime.d.ts +19 -0
- package/dist/core/skills/runtime.js +61 -0
- package/dist/core/skills/runtime.js.map +1 -0
- package/dist/core/subAgent.d.ts +50 -0
- package/dist/core/subAgent.js +1258 -0
- package/dist/core/subAgent.js.map +1 -0
- package/dist/core/systemPrompt.d.ts +27 -0
- package/dist/core/systemPrompt.js +219 -0
- package/dist/core/systemPrompt.js.map +1 -0
- package/dist/core/taskManager.d.ts +105 -0
- package/dist/core/taskManager.js +617 -0
- package/dist/core/taskManager.js.map +1 -0
- package/dist/core/tokenCompressor.d.ts +14 -0
- package/dist/core/tokenCompressor.js +161 -0
- package/dist/core/tokenCompressor.js.map +1 -0
- package/dist/core/tokenCounter.d.ts +28 -0
- package/dist/core/tokenCounter.js +101 -0
- package/dist/core/tokenCounter.js.map +1 -0
- package/dist/core/toolDispatcher.d.ts +11 -0
- package/dist/core/toolDispatcher.js +38 -0
- package/dist/core/toolDispatcher.js.map +1 -0
- package/dist/core/toolExecutionLedger.d.ts +9 -0
- package/dist/core/toolExecutionLedger.js +84 -0
- package/dist/core/toolExecutionLedger.js.map +1 -0
- package/dist/core/toolRegistry.d.ts +19 -0
- package/dist/core/toolRegistry.js +820 -0
- package/dist/core/toolRegistry.js.map +1 -0
- package/dist/core/turnStrategy.d.ts +20 -0
- package/dist/core/turnStrategy.js +103 -0
- package/dist/core/turnStrategy.js.map +1 -0
- package/dist/platform/process.d.ts +14 -0
- package/dist/platform/process.js +28 -0
- package/dist/platform/process.js.map +1 -0
- package/dist/platform/runtime.d.ts +8 -0
- package/dist/platform/runtime.js +21 -0
- package/dist/platform/runtime.js.map +1 -0
- package/dist/server/adminPage.d.ts +1 -0
- package/dist/server/adminPage.js +755 -0
- package/dist/server/adminPage.js.map +1 -0
- package/dist/server/index.d.ts +22 -0
- package/dist/server/index.js +566 -0
- package/dist/server/index.js.map +1 -0
- package/dist/shared/agentTypes.d.ts +227 -0
- package/dist/shared/agentTypes.js +79 -0
- package/dist/shared/agentTypes.js.map +1 -0
- package/dist/shared/codeIndexTypes.d.ts +32 -0
- package/dist/shared/codeIndexTypes.js +2 -0
- package/dist/shared/codeIndexTypes.js.map +1 -0
- package/dist/shared/flowEvents.d.ts +192 -0
- package/dist/shared/flowEvents.js +37 -0
- package/dist/shared/flowEvents.js.map +1 -0
- package/dist/shared/memoryTypes.d.ts +100 -0
- package/dist/shared/memoryTypes.js +2 -0
- package/dist/shared/memoryTypes.js.map +1 -0
- package/dist/shared/pluginTypes.d.ts +345 -0
- package/dist/shared/pluginTypes.js +2 -0
- package/dist/shared/pluginTypes.js.map +1 -0
- package/dist/shared/runtimeTaskTypes.d.ts +43 -0
- package/dist/shared/runtimeTaskTypes.js +2 -0
- package/dist/shared/runtimeTaskTypes.js.map +1 -0
- package/dist/shared/skillTypes.d.ts +1 -0
- package/dist/shared/skillTypes.js +2 -0
- package/dist/shared/skillTypes.js.map +1 -0
- package/dist/shared/subAgentTypes.d.ts +99 -0
- package/dist/shared/subAgentTypes.js +2 -0
- package/dist/shared/subAgentTypes.js.map +1 -0
- package/dist/shared/terminalTypes.d.ts +102 -0
- package/dist/shared/terminalTypes.js +2 -0
- package/dist/shared/terminalTypes.js.map +1 -0
- package/dist/shared/toolCallMarkup.d.ts +10 -0
- package/dist/shared/toolCallMarkup.js +107 -0
- package/dist/shared/toolCallMarkup.js.map +1 -0
- package/dist/shared/toolTypes.d.ts +24 -0
- package/dist/shared/toolTypes.js +2 -0
- package/dist/shared/toolTypes.js.map +1 -0
- package/dist/shared/types.d.ts +81 -0
- package/dist/shared/types.js +2 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/state/types.d.ts +69 -0
- package/dist/state/types.js +2 -0
- package/dist/state/types.js.map +1 -0
- package/dist/tools/executor.d.ts +133 -0
- package/dist/tools/executor.js +2 -0
- package/dist/tools/executor.js.map +1 -0
- package/dist/tools/memory/loaders.d.ts +6 -0
- package/dist/tools/memory/loaders.js +292 -0
- package/dist/tools/memory/loaders.js.map +1 -0
- package/dist/tools/memory/sanitizer.d.ts +6 -0
- package/dist/tools/memory/sanitizer.js +48 -0
- package/dist/tools/memory/sanitizer.js.map +1 -0
- package/dist/tools/memory/service.d.ts +24 -0
- package/dist/tools/memory/service.js +273 -0
- package/dist/tools/memory/service.js.map +1 -0
- package/dist/tools/memory/writer.d.ts +17 -0
- package/dist/tools/memory/writer.js +192 -0
- package/dist/tools/memory/writer.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,1305 @@
|
|
|
1
|
+
export const EN_MESSAGES = {
|
|
2
|
+
'common.notSet': 'not set',
|
|
3
|
+
'common.providerDefault': 'provider default',
|
|
4
|
+
'common.cancelled': 'Cancelled.',
|
|
5
|
+
'common.error': 'Error: {message}',
|
|
6
|
+
'common.interrupted': 'Interrupted',
|
|
7
|
+
'common.ready': 'ready',
|
|
8
|
+
'common.working': 'working',
|
|
9
|
+
'common.online': '{count} online',
|
|
10
|
+
'common.active': '{count} active',
|
|
11
|
+
'common.moreAbove': '↑ {count} more above',
|
|
12
|
+
'common.moreBelow': '↓ {count} more below',
|
|
13
|
+
'common.empty': 'empty',
|
|
14
|
+
'common.done': 'done',
|
|
15
|
+
'common.complete': 'complete',
|
|
16
|
+
'common.failed': 'failed',
|
|
17
|
+
'common.queued': 'queued',
|
|
18
|
+
'common.tokens': '{count} tokens',
|
|
19
|
+
'setup.banner.title': 'Terminal workbench setup',
|
|
20
|
+
'setup.banner.subtitle': 'Configure providers, API profiles, language, persona, approval policy, and global instructions.',
|
|
21
|
+
'setup.current.title': 'Current configuration',
|
|
22
|
+
'setup.current.noApiProfiles': 'No API configuration profiles yet.',
|
|
23
|
+
'setup.current.activeApiConfig': 'activeApiConfig',
|
|
24
|
+
'setup.current.apiConfigCount': 'apiConfigCount',
|
|
25
|
+
'setup.current.customInstructionsSet': 'set',
|
|
26
|
+
'setup.current.provider': 'Provider',
|
|
27
|
+
'setup.current.baseUrl': 'Base URL',
|
|
28
|
+
'setup.current.model': 'Model',
|
|
29
|
+
'setup.current.apiKey': 'API Key',
|
|
30
|
+
'setup.current.contextWindow': 'Context window',
|
|
31
|
+
'setup.current.maxTokens': 'Max tokens',
|
|
32
|
+
'setup.current.reasoning': 'Reasoning',
|
|
33
|
+
'setup.current.approvalPolicy': 'Approval policy',
|
|
34
|
+
'setup.current.interfaceLanguage': 'Interface language',
|
|
35
|
+
'setup.current.aiOutputLanguage': 'AI output language',
|
|
36
|
+
'setup.current.persona': 'Persona',
|
|
37
|
+
'setup.current.customInstructions': 'Custom instructions',
|
|
38
|
+
'setup.current.profileFile': 'Profile file',
|
|
39
|
+
'setup.returnToMenu': 'Return to main menu?',
|
|
40
|
+
'setup.prompt.required': 'This value is required.',
|
|
41
|
+
'setup.prompt.chooseFrom': 'Enter one of: {values}',
|
|
42
|
+
'setup.url.required': 'URL cannot be empty.',
|
|
43
|
+
'setup.url.invalid': 'Enter a complete URL, for example https://api.example.com/v1',
|
|
44
|
+
'setup.api.noSelectableProfiles': 'There are no selectable API profiles yet.',
|
|
45
|
+
'setup.api.selectProvider': 'Select provider',
|
|
46
|
+
'setup.api.unknownProvider': 'Unknown provider "{provider}".',
|
|
47
|
+
'setup.api.baseUrlRequired': 'Base URL is required.',
|
|
48
|
+
'setup.api.keepKey': 'API Key (leave empty to keep the current value)',
|
|
49
|
+
'setup.api.newKey': 'API Key (optional; it can be added later)',
|
|
50
|
+
'setup.api.profileName': 'Configuration name',
|
|
51
|
+
'setup.api.saved': 'API configuration saved.',
|
|
52
|
+
'setup.api.modelLater': 'discover after startup, or use /model add <model-id>',
|
|
53
|
+
'setup.api.makeActive': 'Use this as the active API configuration?',
|
|
54
|
+
'setup.api.added': 'Configuration added: {name}',
|
|
55
|
+
'setup.api.switched': 'Switched to: {name}',
|
|
56
|
+
'setup.api.updated': 'Configuration updated: {name}',
|
|
57
|
+
'setup.api.copied': 'Configuration copied: {name}',
|
|
58
|
+
'setup.api.confirmDelete': 'Delete "{name}"?',
|
|
59
|
+
'setup.api.deleted': 'Configuration deleted: {name}',
|
|
60
|
+
'setup.api.profilesTitle': 'API configuration profiles',
|
|
61
|
+
'setup.api.chooseAction': 'Choose an API configuration action',
|
|
62
|
+
'setup.api.selectSwitch': 'Which configuration should become active?',
|
|
63
|
+
'setup.api.selectEdit': 'Which configuration should be edited?',
|
|
64
|
+
'setup.api.selectCopy': 'Which configuration should be copied?',
|
|
65
|
+
'setup.api.selectDelete': 'Which configuration should be deleted?',
|
|
66
|
+
'setup.api.actionAdd': 'Create configuration - add an API profile',
|
|
67
|
+
'setup.api.actionSwitch': 'Switch active configuration - choose the profile used by the main agent',
|
|
68
|
+
'setup.api.actionEdit': 'Edit configuration - change provider, Base URL, and key',
|
|
69
|
+
'setup.api.actionCopy': 'Copy configuration - create a profile from an existing one',
|
|
70
|
+
'setup.api.actionDelete': 'Delete configuration - remove an API profile',
|
|
71
|
+
'setup.api.noSwitch': 'There are no configurations to switch to',
|
|
72
|
+
'setup.api.noEdit': 'There are no configurations to edit',
|
|
73
|
+
'setup.api.noCopy': 'There are no configurations to copy',
|
|
74
|
+
'setup.api.noDelete': 'There are no configurations to delete',
|
|
75
|
+
'setup.api.back': 'Return to main menu',
|
|
76
|
+
'setup.language.invalidInterface': 'Invalid setup language "{language}". Use zh-CN or en.',
|
|
77
|
+
'setup.language.invalidShared': 'Invalid shared language "{language}". Use zh-CN or en.',
|
|
78
|
+
'setup.language.customRequired': 'Custom AI output language requires descriptive text instead of the literal value "custom".',
|
|
79
|
+
'setup.language.saved': 'Language configuration saved.',
|
|
80
|
+
'setup.language.title': 'Language configuration',
|
|
81
|
+
'setup.language.interface': 'Setup and TUI interface language',
|
|
82
|
+
'setup.language.aiOutput': 'Default AI output language',
|
|
83
|
+
'setup.language.followUser': 'Follow user language',
|
|
84
|
+
'setup.language.simplifiedChinese': 'Simplified Chinese',
|
|
85
|
+
'setup.language.custom': 'Custom language or tone',
|
|
86
|
+
'setup.language.customPrompt': 'Describe the custom output language or tone',
|
|
87
|
+
'setup.language.english': 'English',
|
|
88
|
+
'setup.language.japanese': 'Japanese',
|
|
89
|
+
'setup.language.korean': 'Korean',
|
|
90
|
+
'setup.language.customLabel': 'Custom language',
|
|
91
|
+
'setup.persona.customFallback': 'Custom Persona',
|
|
92
|
+
'setup.persona.defaultCustomName': 'My TurboFlux',
|
|
93
|
+
'setup.persona.defaultPrompt': 'Use a precise, product-grade engineering style.\nBalance execution speed with careful verification.',
|
|
94
|
+
'setup.api.customName': 'Custom API',
|
|
95
|
+
'setup.persona.skipped': 'Persona configuration skipped.',
|
|
96
|
+
'setup.persona.unknown': 'Unknown persona: {personas}.',
|
|
97
|
+
'setup.persona.oneRequired': 'At least one persona must be enabled.',
|
|
98
|
+
'setup.persona.unknownDefault': 'Unknown persona "{persona}".',
|
|
99
|
+
'setup.persona.customPromptRequired': 'The custom persona cannot be the default until a custom persona prompt is configured interactively.',
|
|
100
|
+
'setup.persona.saved': 'Persona configuration saved.',
|
|
101
|
+
'setup.persona.title': 'Available personas and output styles',
|
|
102
|
+
'setup.persona.selectEnabled': 'Select enabled personas (Space toggles, Enter confirms)',
|
|
103
|
+
'setup.persona.default': 'Default persona',
|
|
104
|
+
'setup.persona.custom': 'Custom persona',
|
|
105
|
+
'setup.persona.customName': 'Custom persona name',
|
|
106
|
+
'setup.persona.customPrompt': 'Edit custom persona prompt',
|
|
107
|
+
'setup.persona.customPromptEmpty': 'Custom persona prompt cannot be empty.',
|
|
108
|
+
'setup.instructions.saved': 'Global instructions saved.',
|
|
109
|
+
'setup.instructions.edit': 'Edit global custom instructions (optional)',
|
|
110
|
+
'setup.approval.invalid': 'Approval policy must be ask, agent, or full.',
|
|
111
|
+
'setup.approval.title': 'Approval policy',
|
|
112
|
+
'setup.approval.ask': 'Request approval - ask before changes, commands, and external actions',
|
|
113
|
+
'setup.approval.agent': 'Approve low risk - continue routine workspace actions and ask on risk',
|
|
114
|
+
'setup.approval.full': 'Full access - no approval prompts or workspace restrictions',
|
|
115
|
+
'setup.approval.saved': 'Approval policy: {policy}',
|
|
116
|
+
'setup.init.editInstructions': 'Edit global custom instructions now?',
|
|
117
|
+
'setup.init.done': 'Done. You can now run: turboflux <workspace>',
|
|
118
|
+
'setup.reset.confirm': 'Reset global TurboFlux configuration? API keys, model profiles, personas, and language will return to defaults. Conversations and workspace .turboflux data will be retained.',
|
|
119
|
+
'setup.reset.done': 'Global configuration reset. Conversations and workspace data were retained.',
|
|
120
|
+
'setup.menu.title': 'Select action',
|
|
121
|
+
'setup.menu.init': '1. Full initialization - language + API + persona + custom instructions',
|
|
122
|
+
'setup.menu.api': '2. API configuration profiles',
|
|
123
|
+
'setup.menu.language': '3. Language configuration',
|
|
124
|
+
'setup.menu.persona': '4. Persona / output style',
|
|
125
|
+
'setup.menu.instructions': '5. Global custom instructions',
|
|
126
|
+
'setup.menu.approval': '6. Approval policy',
|
|
127
|
+
'setup.menu.show': '7. Show current configuration',
|
|
128
|
+
'setup.menu.reset': '8. Reset local configuration',
|
|
129
|
+
'setup.menu.exit': 'Q. Exit',
|
|
130
|
+
'setup.menu.input': 'Enter option',
|
|
131
|
+
'ui.app.globalReloaded': 'Global setup reloaded: {provider} / {model} · persona {persona}',
|
|
132
|
+
'ui.app.globalPending': 'Global setup changed · applies after current run',
|
|
133
|
+
'ui.app.globalReloadFailed': 'Global setup reload failed: {message}',
|
|
134
|
+
'ui.app.commandActivity': '{detail}…',
|
|
135
|
+
'ui.app.executingCommand': 'Executing global command',
|
|
136
|
+
'ui.app.loadingConversations': 'Loading conversations',
|
|
137
|
+
'ui.app.restoringConversation': 'Restoring conversation',
|
|
138
|
+
'ui.app.deletingConversation': 'Deleting conversation',
|
|
139
|
+
'ui.app.refreshingModels': 'Refreshing models',
|
|
140
|
+
'ui.app.commandFailed': '{command} failed: {message}',
|
|
141
|
+
'ui.app.conversationUnavailable': 'The saved conversation is no longer available.',
|
|
142
|
+
'ui.app.backgroundFinished': 'Background terminal {session} {status} after {duration}{exit}.\n{command}{log}',
|
|
143
|
+
'ui.app.protocolFallback': 'Protocol fallback: {message} → {url}',
|
|
144
|
+
'ui.app.protocolMismatch': 'request format mismatch',
|
|
145
|
+
'ui.app.noProvider': 'No model provider is configured yet. Exit and run `turboflux setup`, or set `/config apiKey <key>` manually.',
|
|
146
|
+
'ui.app.confirmationNeeded': 'Confirmation needed',
|
|
147
|
+
'ui.app.modelMounted': 'Mounted {model}',
|
|
148
|
+
'ui.app.modelSwitched': 'Model switched to {model}',
|
|
149
|
+
'ui.app.reasoningSet': 'Reasoning effort set to {value}',
|
|
150
|
+
'ui.app.cursorHint': 'Message cursor: Up/Down navigate - Enter/Esc exit',
|
|
151
|
+
'ui.app.selectedMessage': 'Selected message {current}/{total}',
|
|
152
|
+
'ui.app.modelDiscoveryRunning': 'Model discovery is still running. Try again shortly, or use `/model add <model-id>`.',
|
|
153
|
+
'ui.app.noModelMounted': 'No model is mounted. Use `/model` or `/model add <model-id>`.',
|
|
154
|
+
'ui.app.clipboardImageMissing': 'No image was found in the clipboard. Copy an image or paste an image file path.',
|
|
155
|
+
'ui.app.runInterrupted': 'Interrupted current agent run.',
|
|
156
|
+
'ui.app.exitHint': 'Press Ctrl+C again to exit.',
|
|
157
|
+
'ui.app.shellSession': '(shell session)',
|
|
158
|
+
'ui.app.exitCode': ' (exit {code})',
|
|
159
|
+
'ui.app.logPath': '\nLog: {path}',
|
|
160
|
+
'ui.app.persistenceUnavailable': 'Conversation history is unavailable: {message}',
|
|
161
|
+
'ui.app.persistenceBlocked': 'Conversation persistence is degraded. Input is preserved; run /flow retry or /flow export [path].',
|
|
162
|
+
'ui.app.guidanceRestored': 'Guidance restored to the editor',
|
|
163
|
+
'ui.app.reviewRequired': 'Review required',
|
|
164
|
+
'ui.app.inputRequired': 'Input required',
|
|
165
|
+
'ui.app.agentTurnComplete': 'Agent turn complete',
|
|
166
|
+
'ui.app.subagentResultReady': '{agent} result ready',
|
|
167
|
+
'ui.app.subagentFailed': '{agent} failed',
|
|
168
|
+
'ui.app.backgroundTerminalStatus': 'Background terminal {status}',
|
|
169
|
+
'ui.app.runFailed': 'Run failed',
|
|
170
|
+
'ui.app.recoveredApprovals': '{count} interrupted approval request(s) were recovered as history and were not executed.',
|
|
171
|
+
'ui.app.actionReviewDelayed': 'Action required - review opens after typing pauses',
|
|
172
|
+
'ui.app.actionInputDelayed': 'Action required - input prompt opens after typing pauses',
|
|
173
|
+
'ui.landing.prompt': 'What should we build?',
|
|
174
|
+
'ui.sidebar.status': 'STATUS',
|
|
175
|
+
'ui.sidebar.session': 'SESSION',
|
|
176
|
+
'ui.sidebar.context': 'CONTEXT',
|
|
177
|
+
'ui.sidebar.repo': 'REPO',
|
|
178
|
+
'ui.sidebar.runtime': 'RUNTIME',
|
|
179
|
+
'ui.sidebar.model': 'Model',
|
|
180
|
+
'ui.sidebar.profile': 'Profile',
|
|
181
|
+
'ui.sidebar.used': 'Used',
|
|
182
|
+
'ui.sidebar.io': 'I/O',
|
|
183
|
+
'ui.sidebar.state': 'State',
|
|
184
|
+
'ui.sidebar.branch': 'Branch',
|
|
185
|
+
'ui.sidebar.changes': 'Changes',
|
|
186
|
+
'ui.sidebar.tracking': 'Tracking',
|
|
187
|
+
'ui.sidebar.operation': 'Operation',
|
|
188
|
+
'ui.sidebar.terminal': 'Terminal',
|
|
189
|
+
'ui.sidebar.running': 'Running',
|
|
190
|
+
'ui.sidebar.queued': 'Queued',
|
|
191
|
+
'ui.sidebar.notMounted': 'not mounted',
|
|
192
|
+
'ui.sidebar.provider': 'provider',
|
|
193
|
+
'ui.sidebar.waiting': 'waiting',
|
|
194
|
+
'ui.sidebar.cacheOut': '{cache} cache / {output} out',
|
|
195
|
+
'ui.models.title': 'Models',
|
|
196
|
+
'ui.models.search': 'Search',
|
|
197
|
+
'ui.models.filter': 'type to filter',
|
|
198
|
+
'ui.models.none': 'No matching chat models.',
|
|
199
|
+
'ui.models.keys': 'Up/Down select Enter apply Esc close',
|
|
200
|
+
'ui.models.refresh': 'Ctrl+R refresh',
|
|
201
|
+
'ui.effort.title': 'Reasoning effort',
|
|
202
|
+
'ui.effort.none': 'Disable reasoning for the fastest response.',
|
|
203
|
+
'ui.effort.minimal': 'Use only lightweight reasoning.',
|
|
204
|
+
'ui.effort.low': 'Prioritize latency and cost.',
|
|
205
|
+
'ui.effort.medium': 'Balanced reasoning for everyday work.',
|
|
206
|
+
'ui.effort.high': 'Spend more reasoning on difficult tasks.',
|
|
207
|
+
'ui.effort.xhigh': 'Extended reasoning for complex engineering work.',
|
|
208
|
+
'ui.effort.max': 'Use the model maximum reasoning effort.',
|
|
209
|
+
'ui.effort.disableThinking': 'Disable extended thinking.',
|
|
210
|
+
'ui.effort.disableReasoning': 'Disable model reasoning.',
|
|
211
|
+
'ui.effort.enableReasoning': 'Enable model reasoning.',
|
|
212
|
+
'ui.effort.budget': 'Allow up to {tokens} thinking tokens.',
|
|
213
|
+
'ui.effort.off': 'Off',
|
|
214
|
+
'ui.effort.on': 'On',
|
|
215
|
+
'ui.effort.keys': 'Up/Down select Enter apply Esc close',
|
|
216
|
+
'ui.permission.title': 'Permission request',
|
|
217
|
+
'ui.permission.review': 'REVIEW',
|
|
218
|
+
'ui.permission.tool': 'Tool',
|
|
219
|
+
'ui.permission.target': 'Target',
|
|
220
|
+
'ui.permission.reason': 'Reason',
|
|
221
|
+
'ui.permission.allowOnce': 'Allow once',
|
|
222
|
+
'ui.permission.allowOnceDescription': 'Approve only this request',
|
|
223
|
+
'ui.permission.allowRun': 'Allow for this run',
|
|
224
|
+
'ui.permission.allowRunDescription': 'Approve matching actions until this task ends',
|
|
225
|
+
'ui.permission.allowSession': 'Allow for this session',
|
|
226
|
+
'ui.permission.allowSessionDescription': 'Remember matching requests until exit',
|
|
227
|
+
'ui.permission.deny': 'Deny',
|
|
228
|
+
'ui.permission.denyDescription': 'Block this request and return to the agent',
|
|
229
|
+
'ui.permission.keys': '1/2/3/4 choose - arrows + Enter confirm',
|
|
230
|
+
'ui.rewind.title': 'Rewind conversation',
|
|
231
|
+
'ui.rewind.subtitle': 'Restore to before a message:',
|
|
232
|
+
'ui.rewind.keys': 'Up/Down navigate - Enter rewind - Esc cancel',
|
|
233
|
+
'ui.conversations.title': 'Conversations',
|
|
234
|
+
'ui.conversations.none': 'No saved conversations. Press ESC to go back.',
|
|
235
|
+
'ui.conversations.selectKeys': ' - Up/Down select, Enter confirm, Esc back',
|
|
236
|
+
'ui.conversations.openKeys': ' - Up/Down select, Enter open, Esc back',
|
|
237
|
+
'ui.conversations.enter': 'Enter conversation',
|
|
238
|
+
'ui.conversations.delete': 'Delete conversation',
|
|
239
|
+
'ui.conversations.justNow': 'just now',
|
|
240
|
+
'ui.conversations.minutesAgo': '{count}m ago',
|
|
241
|
+
'ui.conversations.hoursAgo': '{count}h ago',
|
|
242
|
+
'ui.conversations.daysAgo': '{count}d ago',
|
|
243
|
+
'ui.message.changes': 'Changes',
|
|
244
|
+
'ui.message.answer': 'Answer',
|
|
245
|
+
'ui.message.systemCount': '> {count} system messages',
|
|
246
|
+
'ui.recovery.toolResult': 'Interrupted: tool result was not recorded before restart.',
|
|
247
|
+
'ui.recovery.assistant': 'Interrupted: assistant response was not recorded before restart.',
|
|
248
|
+
'ui.diff.unavailableRead': 'diff unavailable: the updated file could not be read after the tool completed',
|
|
249
|
+
'ui.diff.tooLarge': 'diff omitted: file snapshot is too large',
|
|
250
|
+
'ui.diff.noSnapshot': 'diff unavailable: no file snapshot captured',
|
|
251
|
+
'ui.diff.created': 'created',
|
|
252
|
+
'ui.diff.deleted': 'deleted',
|
|
253
|
+
'ui.diff.modified': 'modified',
|
|
254
|
+
'ui.diff.lines': '{count} lines',
|
|
255
|
+
'ui.diff.limit': 'diff unavailable: snapshots {before} -> {after} exceed the {limit} inline safety limit',
|
|
256
|
+
'ui.diff.unknownSize': 'unknown',
|
|
257
|
+
'ui.work.label': 'Work',
|
|
258
|
+
'ui.work.mainAgent': 'MAIN AGENT',
|
|
259
|
+
'ui.activity.title': 'Activity',
|
|
260
|
+
'ui.activity.summaryWorking': 'active calls: {count}',
|
|
261
|
+
'ui.activity.summaryComplete': 'completed calls: {count}',
|
|
262
|
+
'ui.activity.summaryFailed': 'incomplete calls: {count}',
|
|
263
|
+
'ui.activity.outputTokens': ' / +{count} tokens',
|
|
264
|
+
'ui.activity.phase.ready': 'Ready',
|
|
265
|
+
'ui.activity.phase.thinking': 'Thinking...',
|
|
266
|
+
'ui.activity.phase.working': 'Working...',
|
|
267
|
+
'ui.activity.phase.awaitingApproval': 'Waiting for approval...',
|
|
268
|
+
'ui.activity.phase.awaitingInput': 'Waiting for input...',
|
|
269
|
+
'ui.activity.phase.paused': 'Paused',
|
|
270
|
+
'ui.activity.phase.stopping': 'Stopping...',
|
|
271
|
+
'ui.activity.phase.recovering': 'Recovering...',
|
|
272
|
+
'ui.activity.phase.done': 'Done',
|
|
273
|
+
'ui.runState.ready': 'READY',
|
|
274
|
+
'ui.runState.planning': 'PLANNING',
|
|
275
|
+
'ui.runState.executing': 'EXECUTING',
|
|
276
|
+
'ui.runState.reviewRequired': 'REVIEW REQUIRED',
|
|
277
|
+
'ui.runState.inputRequired': 'INPUT REQUIRED',
|
|
278
|
+
'ui.runState.paused': 'PAUSED',
|
|
279
|
+
'ui.runState.stopping': 'STOPPING',
|
|
280
|
+
'ui.runState.recovering': 'RECOVERING',
|
|
281
|
+
'ui.runState.done': 'DONE',
|
|
282
|
+
'ui.runState.queued': '{count} queued',
|
|
283
|
+
'ui.flow.responding': 'RESPONDING',
|
|
284
|
+
'ui.flow.editing': 'EDITING',
|
|
285
|
+
'ui.flow.running': 'RUNNING',
|
|
286
|
+
'ui.flow.exploring': 'EXPLORING',
|
|
287
|
+
'ui.flow.delegating': 'DELEGATING',
|
|
288
|
+
'ui.flow.working': 'WORKING',
|
|
289
|
+
'ui.flow.background': 'BACKGROUND',
|
|
290
|
+
'ui.flow.reviewPending': 'Review the pending action',
|
|
291
|
+
'ui.flow.awaitingAnswer': 'The agent is waiting for your answer',
|
|
292
|
+
'ui.flow.workPaused': 'Work is paused',
|
|
293
|
+
'ui.flow.stoppingWork': 'Stopping active work',
|
|
294
|
+
'ui.flow.retryStep': 'The last step can be retried',
|
|
295
|
+
'ui.flow.writingResult': 'Writing the result',
|
|
296
|
+
'ui.flow.planningNext': 'Planning the next step',
|
|
297
|
+
'ui.flow.continuingTask': 'Continuing the current task',
|
|
298
|
+
'ui.flow.agentWorking': '{agent} is working',
|
|
299
|
+
'ui.flow.readyNext': 'Ready for the next task',
|
|
300
|
+
'ui.flow.agentResultReady': '{agent} result ready',
|
|
301
|
+
'ui.flow.agentFailed': '{agent} failed',
|
|
302
|
+
'ui.flow.terminalsActive': '{count} terminal active',
|
|
303
|
+
'ui.flow.terminalsActivePlural': '{count} terminals active',
|
|
304
|
+
'ui.flow.queued': '{count} queued',
|
|
305
|
+
'ui.subagent.starting': 'starting',
|
|
306
|
+
'ui.subagent.turn': 'turn {turn}/{maxTurns}',
|
|
307
|
+
'ui.subagent.waitingModel': 'waiting for model · {seconds}s',
|
|
308
|
+
'ui.subagent.retry': 'retry {attempt} · {reason}',
|
|
309
|
+
'ui.subagent.finalizing': 'finalizing result',
|
|
310
|
+
'ui.subagent.turnComplete': 'turn {turn} complete',
|
|
311
|
+
'ui.subagent.resultReady': 'result ready',
|
|
312
|
+
'ui.task.label': 'Task',
|
|
313
|
+
'ui.task.planning': 'planning',
|
|
314
|
+
'ui.task.tools': 'tools {completed}/{total}',
|
|
315
|
+
'ui.task.running': '{count} running',
|
|
316
|
+
'ui.task.failed': '{count} failed',
|
|
317
|
+
'ui.task.finishing': 'finishing',
|
|
318
|
+
'ui.task.tool.read': 'read',
|
|
319
|
+
'ui.task.tool.readFull': 'read full',
|
|
320
|
+
'ui.task.tool.search': 'search',
|
|
321
|
+
'ui.task.tool.findFiles': 'find files',
|
|
322
|
+
'ui.task.tool.symbols': 'symbols',
|
|
323
|
+
'ui.task.tool.codemap': 'codemap',
|
|
324
|
+
'ui.task.tool.write': 'write',
|
|
325
|
+
'ui.task.tool.replace': 'replace',
|
|
326
|
+
'ui.task.tool.edit': 'edit',
|
|
327
|
+
'ui.task.tool.multiEdit': 'multi-edit',
|
|
328
|
+
'ui.task.tool.shell': 'shell',
|
|
329
|
+
'ui.task.tool.readTerminal': 'read terminal',
|
|
330
|
+
'ui.task.tool.writeTerminal': 'write terminal',
|
|
331
|
+
'ui.task.tool.listTerminals': 'list terminals',
|
|
332
|
+
'ui.task.tool.stopTerminal': 'stop terminal',
|
|
333
|
+
'ui.tool.read': 'Read {target}',
|
|
334
|
+
'ui.tool.readFull': 'Read full {target}',
|
|
335
|
+
'ui.tool.list': 'List {target}',
|
|
336
|
+
'ui.tool.write': 'Write {target}',
|
|
337
|
+
'ui.tool.replace': 'Replace {target}',
|
|
338
|
+
'ui.tool.edit': 'Edit {target}',
|
|
339
|
+
'ui.tool.delete': 'Delete {target}',
|
|
340
|
+
'ui.tool.search': 'Search "{target}"',
|
|
341
|
+
'ui.tool.find': 'Find {target}',
|
|
342
|
+
'ui.tool.symbol': 'Symbol {target}',
|
|
343
|
+
'ui.tool.semantic': 'Semantic {target}',
|
|
344
|
+
'ui.tool.codemap': 'CodeMap{target}',
|
|
345
|
+
'ui.tool.web': 'Web "{target}"',
|
|
346
|
+
'ui.tool.run': 'Run {target}',
|
|
347
|
+
'ui.tool.gitStatus': 'Git status',
|
|
348
|
+
'ui.tool.gitDiff': 'Git diff{target}',
|
|
349
|
+
'ui.tool.gitLog': 'Git log{target}',
|
|
350
|
+
'ui.tool.gitShow': 'Git show {target}',
|
|
351
|
+
'ui.tool.gitStage': 'Git stage paths',
|
|
352
|
+
'ui.tool.gitCommit': 'Git commit: {target}',
|
|
353
|
+
'ui.tool.gitRestore': 'Git restore {target}',
|
|
354
|
+
'ui.tool.gitRevert': 'Git revert {target}',
|
|
355
|
+
'ui.tool.gitBranch': 'Git branch +{target}',
|
|
356
|
+
'ui.tool.gitSwitch': 'Git switch {target}',
|
|
357
|
+
'ui.tool.gitStash': 'Git stash {target}',
|
|
358
|
+
'ui.tool.gitPush': 'Git push {target}',
|
|
359
|
+
'ui.tool.task': 'Task: {target}',
|
|
360
|
+
'ui.tool.createTasks': 'Create tasks',
|
|
361
|
+
'ui.tool.updateTask': 'Update task',
|
|
362
|
+
'ui.tool.listTasks': 'List tasks',
|
|
363
|
+
'ui.tool.ask': 'Ask: {target}',
|
|
364
|
+
'ui.tool.notify': 'Notify: {target}',
|
|
365
|
+
'ui.tool.subagent': 'Subagent: {target}',
|
|
366
|
+
'ui.tool.running.read': 'Reading {target}',
|
|
367
|
+
'ui.tool.running.readFull': 'Reading full {target}',
|
|
368
|
+
'ui.tool.running.list': 'Listing {target}',
|
|
369
|
+
'ui.tool.running.write': 'Writing {target}',
|
|
370
|
+
'ui.tool.running.replace': 'Replacing {target}',
|
|
371
|
+
'ui.tool.running.edit': 'Editing {target}',
|
|
372
|
+
'ui.tool.running.delete': 'Deleting {target}',
|
|
373
|
+
'ui.tool.running.search': 'Searching {target}',
|
|
374
|
+
'ui.tool.running.find': 'Finding {target}',
|
|
375
|
+
'ui.tool.running.symbol': 'Indexing symbols {target}',
|
|
376
|
+
'ui.tool.running.semantic': 'Searching semantically {target}',
|
|
377
|
+
'ui.tool.running.codemap': 'Mapping code{target}',
|
|
378
|
+
'ui.tool.running.web': 'Searching web {target}',
|
|
379
|
+
'ui.tool.running.run': 'Running {target}',
|
|
380
|
+
'ui.tool.running.default': 'Running {target}',
|
|
381
|
+
'ui.tool.preparing': 'Preparing {tool}',
|
|
382
|
+
'ui.tool.preparingPath': 'Preparing {tool}: {path}',
|
|
383
|
+
'ui.tool.name.readFile': 'Read file',
|
|
384
|
+
'ui.tool.name.readFull': 'Read full file',
|
|
385
|
+
'ui.tool.name.listDirectory': 'List directory',
|
|
386
|
+
'ui.tool.name.writeFile': 'Write file',
|
|
387
|
+
'ui.tool.name.replaceFile': 'Replace file',
|
|
388
|
+
'ui.tool.name.editFile': 'Edit file',
|
|
389
|
+
'ui.tool.name.multiEdit': 'Edit files',
|
|
390
|
+
'ui.tool.name.deleteFile': 'Delete file',
|
|
391
|
+
'ui.tool.name.searchContent': 'Search content',
|
|
392
|
+
'ui.tool.name.searchFiles': 'Find files',
|
|
393
|
+
'ui.tool.name.searchSymbols': 'Search symbols',
|
|
394
|
+
'ui.tool.name.searchSemantic': 'Semantic search',
|
|
395
|
+
'ui.tool.name.codemap': 'CodeMap',
|
|
396
|
+
'ui.tool.name.webSearch': 'Web search',
|
|
397
|
+
'ui.tool.name.runCommand': 'Run command',
|
|
398
|
+
'ui.thinking.reasoning': 'Reasoning',
|
|
399
|
+
'ui.thinking.thought': 'Thought',
|
|
400
|
+
'ui.thinking.interrupted': 'interrupted',
|
|
401
|
+
'ui.terminal.background': '{count} background running · {duration} · {title} · /ps view · /stop close',
|
|
402
|
+
'ui.queue.item': '> queued {index} ',
|
|
403
|
+
'ui.queue.steeringItem': '> steering {index} ',
|
|
404
|
+
'ui.queue.images': ' +{count} images',
|
|
405
|
+
'ui.queue.image': ' +1 image',
|
|
406
|
+
'ui.header.workspace': 'workspace {path}',
|
|
407
|
+
'ui.header.setupRequired': 'setup required',
|
|
408
|
+
'ui.prompt.plan': 'Describe what to plan...',
|
|
409
|
+
'ui.prompt.default': 'What are we building today?',
|
|
410
|
+
'ui.status.noModel': 'no model connection',
|
|
411
|
+
'ui.status.gitOff': 'git:off',
|
|
412
|
+
'ui.status.gitDetecting': 'git:detecting',
|
|
413
|
+
'ui.status.gitUnavailable': 'git:unavailable',
|
|
414
|
+
'ui.status.gitError': 'git:error',
|
|
415
|
+
'ui.status.gitClean': 'clean',
|
|
416
|
+
'ui.status.gitChanged': '{count} changed',
|
|
417
|
+
'ui.status.history': 'history',
|
|
418
|
+
'ui.status.unknown': 'unknown',
|
|
419
|
+
'ui.status.action': 'ACTION',
|
|
420
|
+
'ui.status.alert': 'ALERT',
|
|
421
|
+
'ui.status.stop': 'STOP',
|
|
422
|
+
'ui.status.reply': 'REPLY',
|
|
423
|
+
'ui.status.work': 'WORK',
|
|
424
|
+
'ui.status.inbox': 'inbox:{count}',
|
|
425
|
+
'ui.status.queue': 'queue:{count}',
|
|
426
|
+
'ui.status.background': 'bg:{count}',
|
|
427
|
+
'ui.status.activity.ready': 'Ready',
|
|
428
|
+
'ui.status.activity.thinking': 'Thinking',
|
|
429
|
+
'ui.status.activity.working': 'Working',
|
|
430
|
+
'ui.status.activity.responding': 'Responding',
|
|
431
|
+
'ui.status.activity.reviewRequired': 'Review required',
|
|
432
|
+
'ui.status.activity.inputRequired': 'Input required',
|
|
433
|
+
'ui.status.activity.stopping': 'Stopping',
|
|
434
|
+
'ui.status.activity.interrupted': 'Interrupted',
|
|
435
|
+
'ui.status.activity.needsAttention': 'Needs attention',
|
|
436
|
+
'ui.status.activity.historyUnavailable': 'History unavailable',
|
|
437
|
+
'ui.status.activity.detail': '{activity}: {detail}',
|
|
438
|
+
'ui.flow.input.pending': 'Pending · waiting for agent acknowledgement',
|
|
439
|
+
'ui.flow.input.steeringPending': 'Steering pending · waiting for acknowledgement',
|
|
440
|
+
'ui.flow.input.steering': 'Steering · updating the current run',
|
|
441
|
+
'ui.flow.input.queued': '{count} queued · runs after the current turn',
|
|
442
|
+
'ui.flow.input.committed': 'Sent · agent acknowledged',
|
|
443
|
+
'ui.flow.input.steered': 'Steered · current run updated',
|
|
444
|
+
'ui.flow.input.restored': 'Restored · input returned to the editor',
|
|
445
|
+
'ui.flow.resultsReady': '{count} background result(s) ready · /inbox view · /inbox clear acknowledge',
|
|
446
|
+
'ui.flow.controls.running': 'Enter guides current run · Ctrl/⌘+Enter queues next · {count} queued',
|
|
447
|
+
'ui.flow.controls.queued': '{count} queued · runs after the current turn',
|
|
448
|
+
'ui.diff.moreHidden': ' ... {count} more diff lines hidden',
|
|
449
|
+
'command.unknown': 'Unknown command: /{command}. Type /help for available commands.',
|
|
450
|
+
'command.available': 'Available commands:',
|
|
451
|
+
'command.exit.description': 'Exit TurboFlux',
|
|
452
|
+
'command.clear.description': 'Clear conversation history',
|
|
453
|
+
'command.help.description': 'Show available commands',
|
|
454
|
+
'command.config.description': 'View or set configuration',
|
|
455
|
+
'command.setup.description': 'Show setup command for provider, language, and persona configuration',
|
|
456
|
+
'command.model.description': 'Discover and switch models available to the active API',
|
|
457
|
+
'command.plan.description': 'Switch to plan mode (read-only -> plan -> approve -> execute)',
|
|
458
|
+
'command.vibe.description': 'Switch to vibe mode (full autonomous execution)',
|
|
459
|
+
'command.git.description': 'Show, enable, disable, or refresh structured Git integration.',
|
|
460
|
+
'command.ps.description': 'Show background terminal sessions and recent results',
|
|
461
|
+
'command.inbox.description': 'Show or clear completed background results',
|
|
462
|
+
'command.flow.description': 'Inspect or recover the developer flow safety state',
|
|
463
|
+
'command.stop.description': 'Stop background terminals',
|
|
464
|
+
'command.compact.description': 'Compress conversation context to free up token budget',
|
|
465
|
+
'command.context.description': 'Show context window usage',
|
|
466
|
+
'command.theme.description': 'Switch color theme',
|
|
467
|
+
'command.effort.description': 'Adjust the active model native reasoning effort',
|
|
468
|
+
'command.approval.description': 'Set approval policy',
|
|
469
|
+
'command.capability.description': 'Set runtime capability boundary',
|
|
470
|
+
'command.mcp.description': 'Show MCP server status and tools',
|
|
471
|
+
'command.skills.description': 'List available skills',
|
|
472
|
+
'command.new.description': 'Start a new conversation',
|
|
473
|
+
'command.list.description': 'List saved conversations',
|
|
474
|
+
'command.resume.description': 'Open saved conversations and resume one',
|
|
475
|
+
'command.init.description': 'Show TURBOFLUX.md project instruction status',
|
|
476
|
+
'command.clear.done': 'Conversation cleared.',
|
|
477
|
+
'command.config.current': 'Current config:',
|
|
478
|
+
'command.config.set': 'Set {key} = {value}',
|
|
479
|
+
'command.config.error': 'Config error: {message}',
|
|
480
|
+
'command.setup.instructions': 'Run this outside the TurboFlux session:\n\n turboflux setup\n turboflux setup init\n turboflux setup api\n turboflux setup language\n turboflux setup persona\n turboflux setup show\n\nExamples:\n turboflux setup init --provider openai --api-key <key> --yes\n turboflux setup api --provider deepseek --api-key <key>\n turboflux setup language --all-lang zh-CN --yes\n turboflux setup persona --output-style all --default-output-style engineer-professional --yes',
|
|
481
|
+
'command.model.current': 'Current: {model}',
|
|
482
|
+
'command.model.available': 'Available models:',
|
|
483
|
+
'command.model.none': '(none)',
|
|
484
|
+
'command.model.usage': 'Usage: /model add <model-id>',
|
|
485
|
+
'command.model.mounted': 'Mounted model: {model}',
|
|
486
|
+
'command.model.switchedPreset': 'Switched to {name} ({model})',
|
|
487
|
+
'command.model.switched': 'Model switched to: {model}',
|
|
488
|
+
'command.plan.done': 'Switched to plan mode.',
|
|
489
|
+
'command.vibe.done': 'Switched to vibe mode.',
|
|
490
|
+
'command.git.disabled': 'Git integration disabled.',
|
|
491
|
+
'command.git.enabled': 'Git integration enabled. Detecting repository state.',
|
|
492
|
+
'command.git.refreshing': 'Refreshing Git repository state.',
|
|
493
|
+
'command.git.usage': 'Usage: /git [on|off|refresh]',
|
|
494
|
+
'command.git.phase': 'Git: {phase}',
|
|
495
|
+
'command.git.branch': 'Branch: {branch}',
|
|
496
|
+
'command.git.changes': 'Changes: {staged} staged, {unstaged} unstaged, {untracked} untracked, {conflicted} conflicted',
|
|
497
|
+
'command.git.tracking': 'Tracking: +{ahead} / -{behind}',
|
|
498
|
+
'command.git.operation': 'Last operation: {name} ({status}){hash}',
|
|
499
|
+
'command.ps.none': 'No background terminal sessions.',
|
|
500
|
+
'command.ps.title': 'Background terminals ({count}):',
|
|
501
|
+
'command.ps.exit': ' · exit {code}',
|
|
502
|
+
'command.ps.pid': ' · pid {pid}',
|
|
503
|
+
'command.ps.recovered': ' · recovered/read-only',
|
|
504
|
+
'command.inbox.unavailable': 'Result inbox is unavailable.',
|
|
505
|
+
'command.inbox.cleared': 'Acknowledged {count} background result(s).',
|
|
506
|
+
'command.inbox.alreadyClear': 'Result inbox is already clear.',
|
|
507
|
+
'command.inbox.usage': 'Usage: /inbox [clear]',
|
|
508
|
+
'command.inbox.none': 'No background results are waiting.',
|
|
509
|
+
'command.inbox.title': 'Background results ({count}):',
|
|
510
|
+
'command.inbox.reviewHint': 'Run /inbox clear after reviewing them.',
|
|
511
|
+
'command.flow.unavailable': 'Flow recovery control is unavailable.',
|
|
512
|
+
'command.flow.usage': 'Usage: /flow [status|retry|export [path]]',
|
|
513
|
+
'command.flow.status': 'Persistence: {status}',
|
|
514
|
+
'command.flow.healthy': 'healthy',
|
|
515
|
+
'command.flow.degraded': 'degraded (new agent side effects are blocked)',
|
|
516
|
+
'command.flow.pending': 'Pending recovery entries: {recovery}; buffered streaming entries: {streaming}',
|
|
517
|
+
'command.flow.features': 'Flow blocks: {features}',
|
|
518
|
+
'command.flow.featuresUnknown': 'unknown',
|
|
519
|
+
'command.flow.error': 'Last persistence error: {message}',
|
|
520
|
+
'command.flow.retrySucceeded': 'Conversation persistence recovered. New agent runs are enabled again.',
|
|
521
|
+
'command.flow.retryFailed': 'Persistence retry failed: {message}',
|
|
522
|
+
'command.flow.unknownError': 'unknown error',
|
|
523
|
+
'command.flow.exported': 'Read-only recovery bundle exported to {path}',
|
|
524
|
+
'command.flow.exportFailed': 'Recovery export failed: {message}',
|
|
525
|
+
'command.stop.unavailable': 'Runtime task manager is unavailable.',
|
|
526
|
+
'command.stop.noMatch': 'No running terminal matches {session}.',
|
|
527
|
+
'command.stop.none': 'No background terminals are running.',
|
|
528
|
+
'command.stop.readOnly': '{count} recovered terminal sessions are observable but cannot be stopped from this runtime. Stop the listed PID through the operating system.',
|
|
529
|
+
'command.stop.reason': 'Stopped with /stop',
|
|
530
|
+
'command.stop.stopping': 'Stopping {count} background terminals...',
|
|
531
|
+
'command.stop.stoppingOne': 'Stopping 1 background terminal...',
|
|
532
|
+
'command.compact.triggered': 'Context compaction triggered.',
|
|
533
|
+
'command.context.unknown': 'Context usage: unknown / {window} tokens',
|
|
534
|
+
'command.context.waiting': ' Waiting for provider-reported usage from the next model response.',
|
|
535
|
+
'command.context.noEstimate': ' Local character/token estimates are intentionally not used for this number.',
|
|
536
|
+
'command.context.usage': 'Context usage: {used} / {window} tokens ({percent}%)',
|
|
537
|
+
'command.context.input': ' Last provider prompt_tokens: {tokens}',
|
|
538
|
+
'command.context.output': ' Last provider completion_tokens: {tokens}',
|
|
539
|
+
'command.theme.usage': 'Usage: /theme <dark|light>',
|
|
540
|
+
'command.theme.switched': 'Theme switched to: {theme} (will apply on next render)',
|
|
541
|
+
'command.effort.unsupported': '{model} does not expose adjustable reasoning.',
|
|
542
|
+
'command.effort.thisModel': 'This model',
|
|
543
|
+
'command.effort.summary': 'Effort: {current}\nAvailable: {available}',
|
|
544
|
+
'command.effort.fixed': 'fixed by model',
|
|
545
|
+
'command.effort.budget': '<token budget>',
|
|
546
|
+
'command.effort.noToggle': 'This model keeps reasoning enabled and does not expose a toggle.',
|
|
547
|
+
'command.effort.budgetOptions': 'on, off, or a token budget such as 8192',
|
|
548
|
+
'command.effort.available': 'Available: {available}',
|
|
549
|
+
'command.effort.set': 'Effort set to {effort}.',
|
|
550
|
+
'command.approval.current': 'Approval policy: {label} ({policy})',
|
|
551
|
+
'command.approval.usage': 'Usage: /approval <ask|agent|full>',
|
|
552
|
+
'command.approval.ask': 'Request approval',
|
|
553
|
+
'command.approval.agent': 'Approve low risk',
|
|
554
|
+
'command.approval.full': 'Full access',
|
|
555
|
+
'command.capability.current': 'Capability profile: {label} ({profile})',
|
|
556
|
+
'command.capability.usage': 'Usage: /capability <read-only|workspace-write|danger-full-access>',
|
|
557
|
+
'command.capability.set': 'Capability profile set to {label} ({profile}).',
|
|
558
|
+
'command.mcp.uninitialized': 'MCP not initialized. Configure servers in .turboflux/settings.json',
|
|
559
|
+
'command.mcp.none': 'No MCP servers configured.',
|
|
560
|
+
'command.mcp.noTools': 'No MCP tools available.',
|
|
561
|
+
'command.mcp.tools': 'MCP tools ({count}):',
|
|
562
|
+
'command.mcp.servers': 'MCP servers ({count}):',
|
|
563
|
+
'command.mcp.toolCount': '{count} tools',
|
|
564
|
+
'command.mcp.hint': 'Use /mcp tools to list all available tools.',
|
|
565
|
+
'command.skills.unavailable': 'Skill runtime not available.',
|
|
566
|
+
'command.skills.none': 'No skills found.\nPlace SKILL.md files in .turboflux/skills/<name>/ or ~/.turboflux/skills/<name>/',
|
|
567
|
+
'command.skills.active': ' * active',
|
|
568
|
+
'command.skills.available': 'Available skills ({count}):',
|
|
569
|
+
'command.conversation.unavailable': 'Conversation manager not available.',
|
|
570
|
+
'command.conversation.persistenceBlocked': 'Conversation persistence is degraded. Run /flow retry or /flow export before changing sessions.',
|
|
571
|
+
'command.conversation.started': 'Started new conversation.',
|
|
572
|
+
'command.conversation.none': 'No saved conversations.',
|
|
573
|
+
'command.conversation.turns': '{count} turns',
|
|
574
|
+
'command.conversation.id': 'ID: {id}',
|
|
575
|
+
'command.conversation.total': 'Conversations ({count} total):',
|
|
576
|
+
'command.init.active': 'TURBOFLUX.md is already active at {path}. TurboFlux loads it automatically.',
|
|
577
|
+
'command.init.created': 'Created TURBOFLUX.md at {path}. TurboFlux will load it automatically.',
|
|
578
|
+
'command.init.template': '# {projectName}\n\n## Project Overview\n\n<!-- Describe what this project does -->\n\n## Tech Stack\n\n{techStack}\n\n## Directory Structure\n\n{structure}\n\n## Coding Rules\n\n- <!-- Add coding conventions here -->\n\n## Architecture Decisions\n\n- <!-- Document key design decisions -->\n\n## Known Pitfalls\n\n- <!-- Things to watch out for -->\n',
|
|
579
|
+
'command.init.unknownStack': '- <!-- Detected: unknown -->',
|
|
580
|
+
'command.init.empty': '- <!-- empty -->',
|
|
581
|
+
'command.init.scanFailed': '- <!-- could not scan -->',
|
|
582
|
+
'cli.description': 'TurboFlux - workspace assistant CLI',
|
|
583
|
+
'cli.workspace': 'workspace directory',
|
|
584
|
+
'cli.modelOverride': 'temporarily override model for this session',
|
|
585
|
+
'cli.providerOverride': 'temporarily override API provider for this session',
|
|
586
|
+
'cli.command': 'single-shot mode: run prompt and exit',
|
|
587
|
+
'cli.verbose': 'show tool call details',
|
|
588
|
+
'cli.noFlicker': 'keep the fixed alternate-screen viewport',
|
|
589
|
+
'cli.scrollback': 'use classic terminal scrollback instead of the fixed cockpit',
|
|
590
|
+
'cli.noAnimation': 'skip the startup reveal animation',
|
|
591
|
+
'cli.noColor': 'disable color output',
|
|
592
|
+
'cli.transparent': 'do not paint terminal background; let emulator transparency show through',
|
|
593
|
+
'cli.opaque': 'force solid theme backgrounds, overriding TURBOFLUX_TRANSPARENT',
|
|
594
|
+
'cli.approvalPolicy': 'tool approval policy: ask, agent, or full',
|
|
595
|
+
'cli.capabilityProfile': 'runtime capability: read-only, workspace-write, or danger-full-access',
|
|
596
|
+
'cli.mcp': 'explicitly start configured MCP servers (comma-separated names or all)',
|
|
597
|
+
'cli.invalidApproval': 'Invalid approval policy: {policy}',
|
|
598
|
+
'cli.invalidCapability': 'Invalid capability profile: {profile}',
|
|
599
|
+
'cli.config.description': 'Manage configuration',
|
|
600
|
+
'cli.config.action': 'set or show',
|
|
601
|
+
'cli.config.key': 'config key',
|
|
602
|
+
'cli.config.value': 'config value',
|
|
603
|
+
'cli.config.usage': 'Usage: turboflux config set <key> <value>\n turboflux config show',
|
|
604
|
+
'cli.setup.description': 'Configure TurboFlux provider, language, persona, and custom behavior',
|
|
605
|
+
'cli.setup.provider': 'provider preset (openai, anthropic, deepseek, kimi, glm, openrouter, custom)',
|
|
606
|
+
'cli.setup.apiKey': 'provider API key',
|
|
607
|
+
'cli.setup.baseUrl': 'custom base URL',
|
|
608
|
+
'cli.setup.model': 'model name',
|
|
609
|
+
'cli.setup.sharedLanguage': 'set both setup UI and AI output language when possible',
|
|
610
|
+
'cli.setup.interfaceLanguage': 'setup UI/config language (zh-CN, en)',
|
|
611
|
+
'cli.setup.aiLanguage': 'AI output language (follow-user, zh-CN, en, ja, ko, or custom text)',
|
|
612
|
+
'cli.setup.personas': 'comma-separated available personas, "all", or "skip"',
|
|
613
|
+
'cli.setup.defaultPersona': 'default persona/output style',
|
|
614
|
+
'cli.setup.instructions': 'global custom instructions injected into TurboFlux',
|
|
615
|
+
'cli.setup.approval': 'approval policy (ask, agent, or full)',
|
|
616
|
+
'cli.setup.yes': 'accept defaults for missing options',
|
|
617
|
+
'cli.setup.error': 'Setup error: {message}',
|
|
618
|
+
'repl.commandFailed': 'TurboFlux command failed: {message}',
|
|
619
|
+
'repl.noApiKey': '\n No API key configured. Run "turboflux setup" to connect a model provider.\n',
|
|
620
|
+
'repl.transparent': ' Transparent terminal background enabled. Use "turboflux --opaque" to force solid backgrounds.\n',
|
|
621
|
+
'repl.mcpEnabled': '\n MCP explicitly enabled:\n {commands}\n',
|
|
622
|
+
'single.noApiKey': 'No API key configured. Run "turboflux setup" first.',
|
|
623
|
+
'single.noModel': 'No model is mounted. Configure a model or run TurboFlux interactively and use /model.',
|
|
624
|
+
'single.thinking': 'thinking',
|
|
625
|
+
'single.protocolFallback': 'protocol fallback',
|
|
626
|
+
'single.agent': 'agent',
|
|
627
|
+
'single.agentStarted': '{agent} started',
|
|
628
|
+
'single.agentFinished': '{agent} {status} · {elapsed}',
|
|
629
|
+
'single.completed': 'completed',
|
|
630
|
+
'single.failed': 'failed',
|
|
631
|
+
'single.inputRequired': 'input required',
|
|
632
|
+
'single.error': 'error',
|
|
633
|
+
'single.warning': 'warning',
|
|
634
|
+
'single.historyUnavailable': 'Conversation history unavailable: {message}',
|
|
635
|
+
'single.phase.idle': 'idle',
|
|
636
|
+
'single.phase.thinking': 'thinking',
|
|
637
|
+
'single.phase.toolRunning': 'tool_running',
|
|
638
|
+
'single.phase.awaitingApproval': 'awaiting_approval',
|
|
639
|
+
'single.phase.awaitingInput': 'awaiting_input',
|
|
640
|
+
'single.phase.paused': 'paused',
|
|
641
|
+
'single.phase.aborting': 'aborting',
|
|
642
|
+
'single.phase.recoverableError': 'recoverable_error',
|
|
643
|
+
'single.phase.completed': 'completed',
|
|
644
|
+
'image.onlyOneClipboard': 'Only one image can be read from the clipboard at submit time. Paste image files or use Ctrl+V for each image while composing.',
|
|
645
|
+
'image.missingPlaceholders': '{count} image placeholder(s) do not have an attached image.',
|
|
646
|
+
'image.notFound': 'Image not found: {path}',
|
|
647
|
+
'image.notFile': 'Image path is not a file: {path}',
|
|
648
|
+
'image.tooLarge': 'Image is larger than {limit} and was not attached: {path}',
|
|
649
|
+
'image.clipboardUnsupported': 'Clipboard image paste is currently only available on Windows.',
|
|
650
|
+
'image.clipboardMissing': 'No image was found in the Windows clipboard. Paste an image path or copy an image first.',
|
|
651
|
+
'image.clipboardTooLarge': 'Clipboard image is larger than {limit} and was not attached.',
|
|
652
|
+
};
|
|
653
|
+
export const ZH_CN_MESSAGES = {
|
|
654
|
+
'common.notSet': '未设置',
|
|
655
|
+
'common.providerDefault': 'Provider 默认值',
|
|
656
|
+
'common.cancelled': '已取消。',
|
|
657
|
+
'common.error': '错误:{message}',
|
|
658
|
+
'common.interrupted': '已中断',
|
|
659
|
+
'common.ready': '就绪',
|
|
660
|
+
'common.working': '工作中',
|
|
661
|
+
'common.online': '{count} 个在线',
|
|
662
|
+
'common.active': '{count} 个活动中',
|
|
663
|
+
'common.moreAbove': '↑ 上方还有 {count} 项',
|
|
664
|
+
'common.moreBelow': '↓ 下方还有 {count} 项',
|
|
665
|
+
'common.empty': '空',
|
|
666
|
+
'common.done': '完成',
|
|
667
|
+
'common.complete': '已完成',
|
|
668
|
+
'common.failed': '失败',
|
|
669
|
+
'common.queued': '排队中',
|
|
670
|
+
'common.tokens': '{count} 个 token',
|
|
671
|
+
'setup.banner.title': '终端工作台初始化',
|
|
672
|
+
'setup.banner.subtitle': '配置 Provider、API 档案、语言、人设、审批策略和全局指令。',
|
|
673
|
+
'setup.current.title': '当前配置',
|
|
674
|
+
'setup.current.noApiProfiles': '当前没有 API 配置档案。',
|
|
675
|
+
'setup.current.activeApiConfig': '当前 API 配置',
|
|
676
|
+
'setup.current.apiConfigCount': 'API 配置数量',
|
|
677
|
+
'setup.current.customInstructionsSet': '已设置',
|
|
678
|
+
'setup.current.provider': 'Provider',
|
|
679
|
+
'setup.current.baseUrl': 'Base URL',
|
|
680
|
+
'setup.current.model': '模型',
|
|
681
|
+
'setup.current.apiKey': 'API Key',
|
|
682
|
+
'setup.current.contextWindow': '上下文窗口',
|
|
683
|
+
'setup.current.maxTokens': '最大 token',
|
|
684
|
+
'setup.current.reasoning': '推理',
|
|
685
|
+
'setup.current.approvalPolicy': '审批策略',
|
|
686
|
+
'setup.current.interfaceLanguage': '界面语言',
|
|
687
|
+
'setup.current.aiOutputLanguage': 'AI 输出语言',
|
|
688
|
+
'setup.current.persona': '人设',
|
|
689
|
+
'setup.current.customInstructions': '自定义指令',
|
|
690
|
+
'setup.current.profileFile': 'Profile 文件',
|
|
691
|
+
'setup.returnToMenu': '返回主菜单?',
|
|
692
|
+
'setup.prompt.required': '此项不能为空。',
|
|
693
|
+
'setup.prompt.chooseFrom': '请输入以下选项之一:{values}',
|
|
694
|
+
'setup.url.required': 'URL 不能为空。',
|
|
695
|
+
'setup.url.invalid': '请输入完整 URL,例如 https://api.example.com/v1',
|
|
696
|
+
'setup.api.noSelectableProfiles': '还没有可选的 API 配置。',
|
|
697
|
+
'setup.api.selectProvider': '选择 Provider',
|
|
698
|
+
'setup.api.unknownProvider': '未知 Provider“{provider}”。',
|
|
699
|
+
'setup.api.baseUrlRequired': 'Base URL 不能为空。',
|
|
700
|
+
'setup.api.keepKey': 'API Key(留空保留当前值)',
|
|
701
|
+
'setup.api.newKey': 'API Key(可留空,之后再补)',
|
|
702
|
+
'setup.api.profileName': '配置名称',
|
|
703
|
+
'setup.api.saved': '已保存 API 配置。',
|
|
704
|
+
'setup.api.modelLater': '启动后自动发现,或使用 /model add <模型ID>',
|
|
705
|
+
'setup.api.makeActive': '设为当前 API 配置?',
|
|
706
|
+
'setup.api.added': '已添加配置:{name}',
|
|
707
|
+
'setup.api.switched': '已切换到:{name}',
|
|
708
|
+
'setup.api.updated': '已更新配置:{name}',
|
|
709
|
+
'setup.api.copied': '已复制配置:{name}',
|
|
710
|
+
'setup.api.confirmDelete': '确认删除“{name}”?',
|
|
711
|
+
'setup.api.deleted': '已删除配置:{name}',
|
|
712
|
+
'setup.api.profilesTitle': 'API 配置档案',
|
|
713
|
+
'setup.api.chooseAction': '选择 API 配置操作',
|
|
714
|
+
'setup.api.selectSwitch': '切换到哪个配置?',
|
|
715
|
+
'setup.api.selectEdit': '编辑哪个配置?',
|
|
716
|
+
'setup.api.selectCopy': '复制哪个配置?',
|
|
717
|
+
'setup.api.selectDelete': '删除哪个配置?',
|
|
718
|
+
'setup.api.actionAdd': '新建配置 - 添加一个 API 档案',
|
|
719
|
+
'setup.api.actionSwitch': '切换当前配置 - 设置主 Agent 使用的档案',
|
|
720
|
+
'setup.api.actionEdit': '编辑配置 - 修改 Provider、Base URL 和 Key',
|
|
721
|
+
'setup.api.actionCopy': '复制配置 - 基于已有档案创建副本',
|
|
722
|
+
'setup.api.actionDelete': '删除配置 - 移除一个 API 档案',
|
|
723
|
+
'setup.api.noSwitch': '还没有可切换的配置',
|
|
724
|
+
'setup.api.noEdit': '还没有可编辑的配置',
|
|
725
|
+
'setup.api.noCopy': '还没有可复制的配置',
|
|
726
|
+
'setup.api.noDelete': '还没有可删除的配置',
|
|
727
|
+
'setup.api.back': '返回主菜单',
|
|
728
|
+
'setup.language.invalidInterface': '无效的界面语言“{language}”,请使用 zh-CN 或 en。',
|
|
729
|
+
'setup.language.invalidShared': '无效的统一语言“{language}”,请使用 zh-CN 或 en。',
|
|
730
|
+
'setup.language.customRequired': '自定义 AI 输出语言必须填写具体描述,不能只写“custom”。',
|
|
731
|
+
'setup.language.saved': '已保存语言配置。',
|
|
732
|
+
'setup.language.title': '语言配置',
|
|
733
|
+
'setup.language.interface': 'Setup 与 TUI 界面语言',
|
|
734
|
+
'setup.language.aiOutput': 'AI 默认输出语言',
|
|
735
|
+
'setup.language.followUser': '跟随用户语言',
|
|
736
|
+
'setup.language.simplifiedChinese': '简体中文',
|
|
737
|
+
'setup.language.custom': '自定义语言/语气',
|
|
738
|
+
'setup.language.customPrompt': '输入自定义输出语言/语气',
|
|
739
|
+
'setup.language.english': '英语',
|
|
740
|
+
'setup.language.japanese': '日语',
|
|
741
|
+
'setup.language.korean': '韩语',
|
|
742
|
+
'setup.language.customLabel': '自定义语言',
|
|
743
|
+
'setup.persona.customFallback': '自定义人设',
|
|
744
|
+
'setup.persona.defaultCustomName': '我的 TurboFlux',
|
|
745
|
+
'setup.persona.defaultPrompt': '采用精确、产品级的工程风格。\n兼顾执行速度与严谨验证。',
|
|
746
|
+
'setup.api.customName': '自定义 API',
|
|
747
|
+
'setup.persona.skipped': '已跳过人设配置。',
|
|
748
|
+
'setup.persona.unknown': '未知人设:{personas}。',
|
|
749
|
+
'setup.persona.oneRequired': '至少启用一个人设。',
|
|
750
|
+
'setup.persona.unknownDefault': '未知人设“{persona}”。',
|
|
751
|
+
'setup.persona.customPromptRequired': '自定义人设设为默认前,必须先通过交互模式配置提示词。',
|
|
752
|
+
'setup.persona.saved': '已保存人设配置。',
|
|
753
|
+
'setup.persona.title': '可用人设 / 输出风格',
|
|
754
|
+
'setup.persona.selectEnabled': '选择要启用的人设(空格勾选,回车确认)',
|
|
755
|
+
'setup.persona.default': '默认人设',
|
|
756
|
+
'setup.persona.custom': '自定义人设',
|
|
757
|
+
'setup.persona.customName': '自定义人设名称',
|
|
758
|
+
'setup.persona.customPrompt': '编辑自定义人设提示词',
|
|
759
|
+
'setup.persona.customPromptEmpty': '自定义人设提示词不能为空。',
|
|
760
|
+
'setup.instructions.saved': '已保存全局自定义指令。',
|
|
761
|
+
'setup.instructions.edit': '编辑全局自定义指令(可留空)',
|
|
762
|
+
'setup.approval.invalid': '审批策略必须是 ask、agent 或 full。',
|
|
763
|
+
'setup.approval.title': '审批策略',
|
|
764
|
+
'setup.approval.ask': '请求批准 - 修改文件、执行命令和外部操作前询问',
|
|
765
|
+
'setup.approval.agent': '替我审批 - 低风险工作区操作自动继续,检测到风险时询问',
|
|
766
|
+
'setup.approval.full': '完全访问 - 不经审批且不受工作区、命令和网络限制',
|
|
767
|
+
'setup.approval.saved': '审批策略:{policy}',
|
|
768
|
+
'setup.init.editInstructions': '现在编辑全局自定义指令?',
|
|
769
|
+
'setup.init.done': '完成。现在可以运行:turboflux <workspace>',
|
|
770
|
+
'setup.reset.confirm': '确认重置 TurboFlux 全局配置?API Key、模型配置、人设和语言都会恢复默认;会话和工作区 .turboflux 数据将保留。',
|
|
771
|
+
'setup.reset.done': '已重置全局配置;会话和工作区数据保持不变。',
|
|
772
|
+
'setup.menu.title': '选择功能',
|
|
773
|
+
'setup.menu.init': '1. 完整初始化 - 语言 + API + 人设 + 自定义指令',
|
|
774
|
+
'setup.menu.api': '2. API 配置档案',
|
|
775
|
+
'setup.menu.language': '3. 语言配置',
|
|
776
|
+
'setup.menu.persona': '4. 人设 / 输出风格',
|
|
777
|
+
'setup.menu.instructions': '5. 全局自定义指令',
|
|
778
|
+
'setup.menu.approval': '6. 审批策略',
|
|
779
|
+
'setup.menu.show': '7. 查看当前配置',
|
|
780
|
+
'setup.menu.reset': '8. 重置本机配置',
|
|
781
|
+
'setup.menu.exit': 'Q. 退出',
|
|
782
|
+
'setup.menu.input': '输入选项',
|
|
783
|
+
'ui.app.globalReloaded': '已重载全局设置:{provider} / {model} · 人设 {persona}',
|
|
784
|
+
'ui.app.globalPending': '全局设置已变更,将在当前任务结束后生效',
|
|
785
|
+
'ui.app.globalReloadFailed': '全局设置重载失败:{message}',
|
|
786
|
+
'ui.app.commandActivity': '{detail}…',
|
|
787
|
+
'ui.app.executingCommand': '正在执行全局指令',
|
|
788
|
+
'ui.app.loadingConversations': '正在加载会话',
|
|
789
|
+
'ui.app.restoringConversation': '正在恢复会话',
|
|
790
|
+
'ui.app.deletingConversation': '正在删除会话',
|
|
791
|
+
'ui.app.refreshingModels': '正在刷新模型',
|
|
792
|
+
'ui.app.commandFailed': '{command} 执行失败:{message}',
|
|
793
|
+
'ui.app.conversationUnavailable': '该保存会话已不存在。',
|
|
794
|
+
'ui.app.backgroundFinished': '后台终端 {session} 在 {duration} 后{status}{exit}。\n{command}{log}',
|
|
795
|
+
'ui.app.protocolFallback': '协议回退:{message} → {url}',
|
|
796
|
+
'ui.app.protocolMismatch': '请求格式不匹配',
|
|
797
|
+
'ui.app.noProvider': '尚未配置模型 Provider。请退出后运行 `turboflux setup`,或手动执行 `/config apiKey <key>`。',
|
|
798
|
+
'ui.app.confirmationNeeded': '需要确认',
|
|
799
|
+
'ui.app.modelMounted': '已挂载 {model}',
|
|
800
|
+
'ui.app.modelSwitched': '模型已切换为 {model}',
|
|
801
|
+
'ui.app.reasoningSet': '推理强度已设为 {value}',
|
|
802
|
+
'ui.app.cursorHint': '消息浏览:上下键导航 · Enter/Esc 退出',
|
|
803
|
+
'ui.app.selectedMessage': '已选择消息 {current}/{total}',
|
|
804
|
+
'ui.app.modelDiscoveryRunning': '仍在发现模型,请稍后重试,或使用 `/model add <模型ID>`。',
|
|
805
|
+
'ui.app.noModelMounted': '尚未挂载模型,请使用 `/model` 或 `/model add <模型ID>`。',
|
|
806
|
+
'ui.app.clipboardImageMissing': '剪贴板中没有图片,请复制图片或粘贴图片文件路径。',
|
|
807
|
+
'ui.app.runInterrupted': '已中断当前 Agent 任务。',
|
|
808
|
+
'ui.app.exitHint': '再次按 Ctrl+C 退出。',
|
|
809
|
+
'ui.app.shellSession': '(Shell 会话)',
|
|
810
|
+
'ui.app.exitCode': '(退出码 {code})',
|
|
811
|
+
'ui.app.logPath': '\n日志:{path}',
|
|
812
|
+
'ui.app.persistenceUnavailable': '会话历史不可用:{message}',
|
|
813
|
+
'ui.app.persistenceBlocked': '会话持久化已降级。输入已保留;请运行 /flow retry 或 /flow export [路径]。',
|
|
814
|
+
'ui.app.guidanceRestored': '引导内容已恢复到编辑器',
|
|
815
|
+
'ui.app.reviewRequired': '需要审批',
|
|
816
|
+
'ui.app.inputRequired': '需要输入',
|
|
817
|
+
'ui.app.agentTurnComplete': 'Agent 轮次已完成',
|
|
818
|
+
'ui.app.subagentResultReady': '{agent} 结果已就绪',
|
|
819
|
+
'ui.app.subagentFailed': '{agent} 执行失败',
|
|
820
|
+
'ui.app.backgroundTerminalStatus': '后台终端状态:{status}',
|
|
821
|
+
'ui.app.runFailed': '任务运行失败',
|
|
822
|
+
'ui.app.recoveredApprovals': '已将 {count} 个中断的审批请求恢复为历史记录,未执行对应操作。',
|
|
823
|
+
'ui.app.actionReviewDelayed': '需要处理:停止输入后将打开审批窗口',
|
|
824
|
+
'ui.app.actionInputDelayed': '需要处理:停止输入后将打开输入窗口',
|
|
825
|
+
'ui.landing.prompt': '我们该构建什么?',
|
|
826
|
+
'ui.sidebar.status': '状态',
|
|
827
|
+
'ui.sidebar.session': '会话',
|
|
828
|
+
'ui.sidebar.context': '上下文',
|
|
829
|
+
'ui.sidebar.repo': '仓库',
|
|
830
|
+
'ui.sidebar.runtime': '运行时',
|
|
831
|
+
'ui.sidebar.model': '模型',
|
|
832
|
+
'ui.sidebar.profile': '配置',
|
|
833
|
+
'ui.sidebar.used': '已用',
|
|
834
|
+
'ui.sidebar.io': '输入/输出',
|
|
835
|
+
'ui.sidebar.state': '状态',
|
|
836
|
+
'ui.sidebar.branch': '分支',
|
|
837
|
+
'ui.sidebar.changes': '变更',
|
|
838
|
+
'ui.sidebar.tracking': '跟踪',
|
|
839
|
+
'ui.sidebar.operation': '操作',
|
|
840
|
+
'ui.sidebar.terminal': '终端',
|
|
841
|
+
'ui.sidebar.running': '运行时长',
|
|
842
|
+
'ui.sidebar.queued': '排队',
|
|
843
|
+
'ui.sidebar.notMounted': '未挂载',
|
|
844
|
+
'ui.sidebar.provider': 'Provider 默认',
|
|
845
|
+
'ui.sidebar.waiting': '等待统计',
|
|
846
|
+
'ui.sidebar.cacheOut': '{cache} 缓存 / {output} 输出',
|
|
847
|
+
'ui.models.title': '模型',
|
|
848
|
+
'ui.models.search': '搜索',
|
|
849
|
+
'ui.models.filter': '输入以筛选',
|
|
850
|
+
'ui.models.none': '没有匹配的聊天模型。',
|
|
851
|
+
'ui.models.keys': '上下键选择 · Enter 应用 · Esc 关闭',
|
|
852
|
+
'ui.models.refresh': 'Ctrl+R 刷新',
|
|
853
|
+
'ui.effort.title': '推理强度',
|
|
854
|
+
'ui.effort.none': '关闭推理,获得最快响应。',
|
|
855
|
+
'ui.effort.minimal': '仅使用轻量推理。',
|
|
856
|
+
'ui.effort.low': '优先降低延迟和成本。',
|
|
857
|
+
'ui.effort.medium': '适合日常工作的均衡推理。',
|
|
858
|
+
'ui.effort.high': '为困难任务投入更多推理。',
|
|
859
|
+
'ui.effort.xhigh': '为复杂工程任务使用扩展推理。',
|
|
860
|
+
'ui.effort.max': '使用模型支持的最高推理强度。',
|
|
861
|
+
'ui.effort.disableThinking': '关闭扩展思考。',
|
|
862
|
+
'ui.effort.disableReasoning': '关闭模型推理。',
|
|
863
|
+
'ui.effort.enableReasoning': '启用模型推理。',
|
|
864
|
+
'ui.effort.budget': '最多使用 {tokens} 个思考 token。',
|
|
865
|
+
'ui.effort.off': '关闭',
|
|
866
|
+
'ui.effort.on': '开启',
|
|
867
|
+
'ui.effort.keys': '上下键选择 · Enter 应用 · Esc 关闭',
|
|
868
|
+
'ui.permission.title': '权限请求',
|
|
869
|
+
'ui.permission.review': '请审阅',
|
|
870
|
+
'ui.permission.tool': '工具',
|
|
871
|
+
'ui.permission.target': '目标',
|
|
872
|
+
'ui.permission.reason': '原因',
|
|
873
|
+
'ui.permission.allowOnce': '仅允许一次',
|
|
874
|
+
'ui.permission.allowOnceDescription': '仅批准本次请求',
|
|
875
|
+
'ui.permission.allowRun': '本次任务允许',
|
|
876
|
+
'ui.permission.allowRunDescription': '任务结束前批准匹配操作',
|
|
877
|
+
'ui.permission.allowSession': '本次会话允许',
|
|
878
|
+
'ui.permission.allowSessionDescription': '退出前记住匹配请求',
|
|
879
|
+
'ui.permission.deny': '拒绝',
|
|
880
|
+
'ui.permission.denyDescription': '阻止本次请求并返回 Agent',
|
|
881
|
+
'ui.permission.keys': '按 1/2/3/4 选择 · 方向键 + Enter 确认',
|
|
882
|
+
'ui.rewind.title': '回退会话',
|
|
883
|
+
'ui.rewind.subtitle': '恢复到某条消息之前:',
|
|
884
|
+
'ui.rewind.keys': '上下键导航 · Enter 回退 · Esc 取消',
|
|
885
|
+
'ui.conversations.title': '会话',
|
|
886
|
+
'ui.conversations.none': '没有已保存的会话。按 ESC 返回。',
|
|
887
|
+
'ui.conversations.selectKeys': ' - 上下键选择,Enter 确认,Esc 返回',
|
|
888
|
+
'ui.conversations.openKeys': ' - 上下键选择,Enter 打开,Esc 返回',
|
|
889
|
+
'ui.conversations.enter': '进入会话',
|
|
890
|
+
'ui.conversations.delete': '删除会话',
|
|
891
|
+
'ui.conversations.justNow': '刚刚',
|
|
892
|
+
'ui.conversations.minutesAgo': '{count} 分钟前',
|
|
893
|
+
'ui.conversations.hoursAgo': '{count} 小时前',
|
|
894
|
+
'ui.conversations.daysAgo': '{count} 天前',
|
|
895
|
+
'ui.message.changes': '变更',
|
|
896
|
+
'ui.message.answer': '回答',
|
|
897
|
+
'ui.message.systemCount': '> {count} 条系统消息',
|
|
898
|
+
'ui.recovery.toolResult': '已中断:重启前未记录工具结果。',
|
|
899
|
+
'ui.recovery.assistant': '已中断:重启前未记录 Agent 回复。',
|
|
900
|
+
'ui.diff.unavailableRead': '无法显示 diff:工具完成后未能读取更新后的文件',
|
|
901
|
+
'ui.diff.tooLarge': '已省略 diff:文件快照过大',
|
|
902
|
+
'ui.diff.noSnapshot': '无法显示 diff:没有捕获文件快照',
|
|
903
|
+
'ui.diff.created': '已创建',
|
|
904
|
+
'ui.diff.deleted': '已删除',
|
|
905
|
+
'ui.diff.modified': '已修改',
|
|
906
|
+
'ui.diff.lines': '{count} 行',
|
|
907
|
+
'ui.diff.limit': '无法显示 diff:快照 {before} -> {after} 超过 {limit} 的内联安全上限',
|
|
908
|
+
'ui.diff.unknownSize': '未知',
|
|
909
|
+
'ui.work.label': '工作',
|
|
910
|
+
'ui.work.mainAgent': '主 Agent',
|
|
911
|
+
'ui.activity.title': '活动',
|
|
912
|
+
'ui.activity.summaryWorking': '进行中调用:{count}',
|
|
913
|
+
'ui.activity.summaryComplete': '已完成调用:{count}',
|
|
914
|
+
'ui.activity.summaryFailed': '未完成调用:{count}',
|
|
915
|
+
'ui.activity.outputTokens': ' / +{count} token',
|
|
916
|
+
'ui.activity.phase.ready': '就绪',
|
|
917
|
+
'ui.activity.phase.thinking': '正在思考…',
|
|
918
|
+
'ui.activity.phase.working': '正在工作…',
|
|
919
|
+
'ui.activity.phase.awaitingApproval': '等待审批…',
|
|
920
|
+
'ui.activity.phase.awaitingInput': '等待输入…',
|
|
921
|
+
'ui.activity.phase.paused': '已暂停',
|
|
922
|
+
'ui.activity.phase.stopping': '正在停止…',
|
|
923
|
+
'ui.activity.phase.recovering': '正在恢复…',
|
|
924
|
+
'ui.activity.phase.done': '完成',
|
|
925
|
+
'ui.runState.ready': '就绪',
|
|
926
|
+
'ui.runState.planning': '规划中',
|
|
927
|
+
'ui.runState.executing': '执行中',
|
|
928
|
+
'ui.runState.reviewRequired': '需要审阅',
|
|
929
|
+
'ui.runState.inputRequired': '需要输入',
|
|
930
|
+
'ui.runState.paused': '已暂停',
|
|
931
|
+
'ui.runState.stopping': '正在停止',
|
|
932
|
+
'ui.runState.recovering': '正在恢复',
|
|
933
|
+
'ui.runState.done': '完成',
|
|
934
|
+
'ui.runState.queued': '{count} 项排队中',
|
|
935
|
+
'ui.flow.responding': '输出中',
|
|
936
|
+
'ui.flow.editing': '编辑中',
|
|
937
|
+
'ui.flow.running': '运行中',
|
|
938
|
+
'ui.flow.exploring': '探索中',
|
|
939
|
+
'ui.flow.delegating': '委派中',
|
|
940
|
+
'ui.flow.working': '工作中',
|
|
941
|
+
'ui.flow.background': '后台任务',
|
|
942
|
+
'ui.flow.reviewPending': '请审阅待执行操作',
|
|
943
|
+
'ui.flow.awaitingAnswer': 'Agent 正在等待你的回答',
|
|
944
|
+
'ui.flow.workPaused': '工作已暂停',
|
|
945
|
+
'ui.flow.stoppingWork': '正在停止活动任务',
|
|
946
|
+
'ui.flow.retryStep': '上一步可以重试',
|
|
947
|
+
'ui.flow.writingResult': '正在整理结果',
|
|
948
|
+
'ui.flow.planningNext': '正在规划下一步',
|
|
949
|
+
'ui.flow.continuingTask': '正在继续当前任务',
|
|
950
|
+
'ui.flow.agentWorking': '{agent} 正在工作',
|
|
951
|
+
'ui.flow.readyNext': '已准备接收下一项任务',
|
|
952
|
+
'ui.flow.agentResultReady': '{agent} 结果已就绪',
|
|
953
|
+
'ui.flow.agentFailed': '{agent} 失败',
|
|
954
|
+
'ui.flow.terminalsActive': '{count} 个终端活动中',
|
|
955
|
+
'ui.flow.terminalsActivePlural': '{count} 个终端活动中',
|
|
956
|
+
'ui.flow.queued': '{count} 项排队中',
|
|
957
|
+
'ui.subagent.starting': '正在启动',
|
|
958
|
+
'ui.subagent.turn': '轮次 {turn}/{maxTurns}',
|
|
959
|
+
'ui.subagent.waitingModel': '等待模型 · {seconds} 秒',
|
|
960
|
+
'ui.subagent.retry': '第 {attempt} 次重试 · {reason}',
|
|
961
|
+
'ui.subagent.finalizing': '正在整理结果',
|
|
962
|
+
'ui.subagent.turnComplete': '轮次 {turn} 完成',
|
|
963
|
+
'ui.subagent.resultReady': '结果已就绪',
|
|
964
|
+
'ui.task.label': '任务',
|
|
965
|
+
'ui.task.planning': '规划中',
|
|
966
|
+
'ui.task.tools': '工具 {completed}/{total}',
|
|
967
|
+
'ui.task.running': '{count} 项运行中',
|
|
968
|
+
'ui.task.failed': '{count} 项失败',
|
|
969
|
+
'ui.task.finishing': '即将完成',
|
|
970
|
+
'ui.task.tool.read': '读取',
|
|
971
|
+
'ui.task.tool.readFull': '完整读取',
|
|
972
|
+
'ui.task.tool.search': '搜索',
|
|
973
|
+
'ui.task.tool.findFiles': '查找文件',
|
|
974
|
+
'ui.task.tool.symbols': '符号',
|
|
975
|
+
'ui.task.tool.codemap': '代码图',
|
|
976
|
+
'ui.task.tool.write': '写入',
|
|
977
|
+
'ui.task.tool.replace': '替换',
|
|
978
|
+
'ui.task.tool.edit': '编辑',
|
|
979
|
+
'ui.task.tool.multiEdit': '批量编辑',
|
|
980
|
+
'ui.task.tool.shell': '终端',
|
|
981
|
+
'ui.task.tool.readTerminal': '读取终端',
|
|
982
|
+
'ui.task.tool.writeTerminal': '写入终端',
|
|
983
|
+
'ui.task.tool.listTerminals': '列出终端',
|
|
984
|
+
'ui.task.tool.stopTerminal': '停止终端',
|
|
985
|
+
'ui.tool.read': '读取 {target}',
|
|
986
|
+
'ui.tool.readFull': '完整读取 {target}',
|
|
987
|
+
'ui.tool.list': '列出 {target}',
|
|
988
|
+
'ui.tool.write': '写入 {target}',
|
|
989
|
+
'ui.tool.replace': '替换 {target}',
|
|
990
|
+
'ui.tool.edit': '编辑 {target}',
|
|
991
|
+
'ui.tool.delete': '删除 {target}',
|
|
992
|
+
'ui.tool.search': '搜索“{target}”',
|
|
993
|
+
'ui.tool.find': '查找 {target}',
|
|
994
|
+
'ui.tool.symbol': '符号 {target}',
|
|
995
|
+
'ui.tool.semantic': '语义搜索 {target}',
|
|
996
|
+
'ui.tool.codemap': '代码图{target}',
|
|
997
|
+
'ui.tool.web': '网页搜索“{target}”',
|
|
998
|
+
'ui.tool.run': '运行 {target}',
|
|
999
|
+
'ui.tool.gitStatus': 'Git 状态',
|
|
1000
|
+
'ui.tool.gitDiff': 'Git 差异{target}',
|
|
1001
|
+
'ui.tool.gitLog': 'Git 日志{target}',
|
|
1002
|
+
'ui.tool.gitShow': 'Git 查看 {target}',
|
|
1003
|
+
'ui.tool.gitStage': 'Git 暂存路径',
|
|
1004
|
+
'ui.tool.gitCommit': 'Git 提交:{target}',
|
|
1005
|
+
'ui.tool.gitRestore': 'Git 恢复 {target}',
|
|
1006
|
+
'ui.tool.gitRevert': 'Git 回滚 {target}',
|
|
1007
|
+
'ui.tool.gitBranch': 'Git 新建分支 +{target}',
|
|
1008
|
+
'ui.tool.gitSwitch': 'Git 切换 {target}',
|
|
1009
|
+
'ui.tool.gitStash': 'Git 储藏 {target}',
|
|
1010
|
+
'ui.tool.gitPush': 'Git 推送 {target}',
|
|
1011
|
+
'ui.tool.task': '任务:{target}',
|
|
1012
|
+
'ui.tool.createTasks': '创建任务',
|
|
1013
|
+
'ui.tool.updateTask': '更新任务',
|
|
1014
|
+
'ui.tool.listTasks': '列出任务',
|
|
1015
|
+
'ui.tool.ask': '询问:{target}',
|
|
1016
|
+
'ui.tool.notify': '通知:{target}',
|
|
1017
|
+
'ui.tool.subagent': '子 Agent:{target}',
|
|
1018
|
+
'ui.tool.running.read': '正在读取 {target}',
|
|
1019
|
+
'ui.tool.running.readFull': '正在完整读取 {target}',
|
|
1020
|
+
'ui.tool.running.list': '正在列出 {target}',
|
|
1021
|
+
'ui.tool.running.write': '正在写入 {target}',
|
|
1022
|
+
'ui.tool.running.replace': '正在替换 {target}',
|
|
1023
|
+
'ui.tool.running.edit': '正在编辑 {target}',
|
|
1024
|
+
'ui.tool.running.delete': '正在删除 {target}',
|
|
1025
|
+
'ui.tool.running.search': '正在搜索 {target}',
|
|
1026
|
+
'ui.tool.running.find': '正在查找 {target}',
|
|
1027
|
+
'ui.tool.running.symbol': '正在索引符号 {target}',
|
|
1028
|
+
'ui.tool.running.semantic': '正在进行语义搜索 {target}',
|
|
1029
|
+
'ui.tool.running.codemap': '正在绘制代码图{target}',
|
|
1030
|
+
'ui.tool.running.web': '正在搜索网页 {target}',
|
|
1031
|
+
'ui.tool.running.run': '正在运行 {target}',
|
|
1032
|
+
'ui.tool.running.default': '正在运行 {target}',
|
|
1033
|
+
'ui.tool.preparing': '正在准备 {tool}',
|
|
1034
|
+
'ui.tool.preparingPath': '正在准备 {tool}:{path}',
|
|
1035
|
+
'ui.tool.name.readFile': '读取文件',
|
|
1036
|
+
'ui.tool.name.readFull': '完整读取文件',
|
|
1037
|
+
'ui.tool.name.listDirectory': '列出目录',
|
|
1038
|
+
'ui.tool.name.writeFile': '写入文件',
|
|
1039
|
+
'ui.tool.name.replaceFile': '替换文件',
|
|
1040
|
+
'ui.tool.name.editFile': '编辑文件',
|
|
1041
|
+
'ui.tool.name.multiEdit': '批量编辑文件',
|
|
1042
|
+
'ui.tool.name.deleteFile': '删除文件',
|
|
1043
|
+
'ui.tool.name.searchContent': '搜索内容',
|
|
1044
|
+
'ui.tool.name.searchFiles': '查找文件',
|
|
1045
|
+
'ui.tool.name.searchSymbols': '搜索符号',
|
|
1046
|
+
'ui.tool.name.searchSemantic': '语义搜索',
|
|
1047
|
+
'ui.tool.name.codemap': '代码图',
|
|
1048
|
+
'ui.tool.name.webSearch': '网页搜索',
|
|
1049
|
+
'ui.tool.name.runCommand': '运行命令',
|
|
1050
|
+
'ui.thinking.reasoning': '推理中',
|
|
1051
|
+
'ui.thinking.thought': '思考',
|
|
1052
|
+
'ui.thinking.interrupted': '已中断',
|
|
1053
|
+
'ui.terminal.background': '{count} 个后台任务运行中 · {duration} · {title} · /ps 查看 · /stop 停止',
|
|
1054
|
+
'ui.queue.item': '> 排队 {index} ',
|
|
1055
|
+
'ui.queue.steeringItem': '> 引导待处理 {index} ',
|
|
1056
|
+
'ui.queue.images': ' +{count} 张图片',
|
|
1057
|
+
'ui.queue.image': ' +1 张图片',
|
|
1058
|
+
'ui.header.workspace': '工作区 {path}',
|
|
1059
|
+
'ui.header.setupRequired': '需要完成设置',
|
|
1060
|
+
'ui.prompt.plan': '描述要规划的内容…',
|
|
1061
|
+
'ui.prompt.default': '今天想构建什么?',
|
|
1062
|
+
'ui.status.noModel': '未连接模型',
|
|
1063
|
+
'ui.status.gitOff': 'git:关闭',
|
|
1064
|
+
'ui.status.gitDetecting': 'git:检测中',
|
|
1065
|
+
'ui.status.gitUnavailable': 'git:不可用',
|
|
1066
|
+
'ui.status.gitError': 'git:错误',
|
|
1067
|
+
'ui.status.gitClean': '干净',
|
|
1068
|
+
'ui.status.gitChanged': '{count} 个变更',
|
|
1069
|
+
'ui.status.history': '历史',
|
|
1070
|
+
'ui.status.unknown': '未知',
|
|
1071
|
+
'ui.status.action': '操作',
|
|
1072
|
+
'ui.status.alert': '警告',
|
|
1073
|
+
'ui.status.stop': '停止',
|
|
1074
|
+
'ui.status.reply': '回复',
|
|
1075
|
+
'ui.status.work': '工作',
|
|
1076
|
+
'ui.status.inbox': '结果:{count}',
|
|
1077
|
+
'ui.status.queue': '排队:{count}',
|
|
1078
|
+
'ui.status.background': '后台:{count}',
|
|
1079
|
+
'ui.status.activity.ready': '就绪',
|
|
1080
|
+
'ui.status.activity.thinking': '思考中',
|
|
1081
|
+
'ui.status.activity.working': '执行中',
|
|
1082
|
+
'ui.status.activity.responding': '回复中',
|
|
1083
|
+
'ui.status.activity.reviewRequired': '需要审批',
|
|
1084
|
+
'ui.status.activity.inputRequired': '需要输入',
|
|
1085
|
+
'ui.status.activity.stopping': '正在停止',
|
|
1086
|
+
'ui.status.activity.interrupted': '已中断',
|
|
1087
|
+
'ui.status.activity.needsAttention': '需要处理',
|
|
1088
|
+
'ui.status.activity.historyUnavailable': '历史记录不可用',
|
|
1089
|
+
'ui.status.activity.detail': '{activity}:{detail}',
|
|
1090
|
+
'ui.flow.input.pending': '等待确认 · 正在提交给 Agent',
|
|
1091
|
+
'ui.flow.input.steeringPending': '引导待确认 · 正在提交给当前任务',
|
|
1092
|
+
'ui.flow.input.steering': '正在引导 · 更新当前任务',
|
|
1093
|
+
'ui.flow.input.queued': '已排队 {count} 条 · 当前任务结束后执行',
|
|
1094
|
+
'ui.flow.input.committed': '已发送 · Agent 已确认',
|
|
1095
|
+
'ui.flow.input.steered': '已引导 · 当前任务已更新',
|
|
1096
|
+
'ui.flow.input.restored': '已恢复 · 输入已返回编辑框',
|
|
1097
|
+
'ui.flow.resultsReady': '{count} 条后台结果待查看 · /inbox 查看 · /inbox clear 确认',
|
|
1098
|
+
'ui.flow.controls.running': 'Enter 引导当前任务 · Ctrl/⌘+Enter 排队下一条 · 已排队 {count} 条',
|
|
1099
|
+
'ui.flow.controls.queued': '已排队 {count} 条 · 当前任务结束后执行',
|
|
1100
|
+
'ui.diff.moreHidden': ' … 另有 {count} 行 diff 已隐藏',
|
|
1101
|
+
'command.unknown': '未知命令:/{command}。输入 /help 查看可用命令。',
|
|
1102
|
+
'command.available': '可用命令:',
|
|
1103
|
+
'command.exit.description': '退出 TurboFlux',
|
|
1104
|
+
'command.clear.description': '清空会话历史',
|
|
1105
|
+
'command.help.description': '显示可用命令',
|
|
1106
|
+
'command.config.description': '查看或修改配置',
|
|
1107
|
+
'command.setup.description': '显示 Provider、语言和人设设置命令',
|
|
1108
|
+
'command.model.description': '发现并切换当前 API 可用的模型',
|
|
1109
|
+
'command.plan.description': '切换到规划模式(只读 → 规划 → 审批 → 执行)',
|
|
1110
|
+
'command.vibe.description': '切换到 Vibe 模式(自主执行)',
|
|
1111
|
+
'command.git.description': '查看、启用、禁用或刷新 Git 集成',
|
|
1112
|
+
'command.ps.description': '查看后台终端会话和近期结果',
|
|
1113
|
+
'command.inbox.description': '查看或清除已完成的后台结果',
|
|
1114
|
+
'command.flow.description': '检查或恢复开发心流安全状态',
|
|
1115
|
+
'command.stop.description': '停止后台终端',
|
|
1116
|
+
'command.compact.description': '压缩会话上下文以释放 token 空间',
|
|
1117
|
+
'command.context.description': '查看上下文窗口用量',
|
|
1118
|
+
'command.theme.description': '切换颜色主题',
|
|
1119
|
+
'command.effort.description': '调整当前模型的原生推理强度',
|
|
1120
|
+
'command.approval.description': '设置审批策略',
|
|
1121
|
+
'command.capability.description': '设置运行时能力边界',
|
|
1122
|
+
'command.mcp.description': '查看 MCP 服务和工具状态',
|
|
1123
|
+
'command.skills.description': '列出可用技能',
|
|
1124
|
+
'command.new.description': '开始新会话',
|
|
1125
|
+
'command.list.description': '列出已保存会话',
|
|
1126
|
+
'command.resume.description': '打开并恢复已保存会话',
|
|
1127
|
+
'command.init.description': '查看 TURBOFLUX.md 项目指令状态',
|
|
1128
|
+
'command.clear.done': '会话已清空。',
|
|
1129
|
+
'command.config.current': '当前配置:',
|
|
1130
|
+
'command.config.set': '已设置 {key} = {value}',
|
|
1131
|
+
'command.config.error': '配置错误:{message}',
|
|
1132
|
+
'command.setup.instructions': '请在 TurboFlux 会话外运行:\n\n turboflux setup\n turboflux setup init\n turboflux setup api\n turboflux setup language\n turboflux setup persona\n turboflux setup show\n\n示例:\n turboflux setup init --provider openai --api-key <key> --yes\n turboflux setup api --provider deepseek --api-key <key>\n turboflux setup language --all-lang zh-CN --yes\n turboflux setup persona --output-style all --default-output-style engineer-professional --yes',
|
|
1133
|
+
'command.model.current': '当前模型:{model}',
|
|
1134
|
+
'command.model.available': '可用模型:',
|
|
1135
|
+
'command.model.none': '(无)',
|
|
1136
|
+
'command.model.usage': '用法:/model add <模型ID>',
|
|
1137
|
+
'command.model.mounted': '已挂载模型:{model}',
|
|
1138
|
+
'command.model.switchedPreset': '已切换到 {name}({model})',
|
|
1139
|
+
'command.model.switched': '模型已切换为:{model}',
|
|
1140
|
+
'command.plan.done': '已切换到规划模式。',
|
|
1141
|
+
'command.vibe.done': '已切换到 Vibe 模式。',
|
|
1142
|
+
'command.git.disabled': 'Git 集成已禁用。',
|
|
1143
|
+
'command.git.enabled': 'Git 集成已启用,正在检测仓库状态。',
|
|
1144
|
+
'command.git.refreshing': '正在刷新 Git 仓库状态。',
|
|
1145
|
+
'command.git.usage': '用法:/git [on|off|refresh]',
|
|
1146
|
+
'command.git.phase': 'Git:{phase}',
|
|
1147
|
+
'command.git.branch': '分支:{branch}',
|
|
1148
|
+
'command.git.changes': '变更:{staged} 个已暂存,{unstaged} 个未暂存,{untracked} 个未跟踪,{conflicted} 个冲突',
|
|
1149
|
+
'command.git.tracking': '跟踪:领先 {ahead} / 落后 {behind}',
|
|
1150
|
+
'command.git.operation': '最近操作:{name}({status}){hash}',
|
|
1151
|
+
'command.ps.none': '没有后台终端会话。',
|
|
1152
|
+
'command.ps.title': '后台终端({count}):',
|
|
1153
|
+
'command.ps.exit': ' · 退出码 {code}',
|
|
1154
|
+
'command.ps.pid': ' · PID {pid}',
|
|
1155
|
+
'command.ps.recovered': ' · 已恢复/只读',
|
|
1156
|
+
'command.inbox.unavailable': '结果收件箱不可用。',
|
|
1157
|
+
'command.inbox.cleared': '已确认 {count} 条后台结果。',
|
|
1158
|
+
'command.inbox.alreadyClear': '结果收件箱已经为空。',
|
|
1159
|
+
'command.inbox.usage': '用法:/inbox [clear]',
|
|
1160
|
+
'command.inbox.none': '没有待确认的后台结果。',
|
|
1161
|
+
'command.inbox.title': '后台结果({count}):',
|
|
1162
|
+
'command.inbox.reviewHint': '查看后运行 /inbox clear 进行确认。',
|
|
1163
|
+
'command.flow.unavailable': 'Flow 恢复控制不可用。',
|
|
1164
|
+
'command.flow.usage': '用法:/flow [status|retry|export [路径]]',
|
|
1165
|
+
'command.flow.status': '持久化状态:{status}',
|
|
1166
|
+
'command.flow.healthy': '正常',
|
|
1167
|
+
'command.flow.degraded': '已降级(新的 Agent 副作用已阻止)',
|
|
1168
|
+
'command.flow.pending': '待恢复记录:{recovery};缓冲中的流式记录:{streaming}',
|
|
1169
|
+
'command.flow.features': 'Flow 分块:{features}',
|
|
1170
|
+
'command.flow.featuresUnknown': '未知',
|
|
1171
|
+
'command.flow.error': '最近持久化错误:{message}',
|
|
1172
|
+
'command.flow.retrySucceeded': '会话持久化已恢复,新的 Agent 任务已重新启用。',
|
|
1173
|
+
'command.flow.retryFailed': '持久化重试失败:{message}',
|
|
1174
|
+
'command.flow.unknownError': '未知错误',
|
|
1175
|
+
'command.flow.exported': '只读恢复包已导出到 {path}',
|
|
1176
|
+
'command.flow.exportFailed': '恢复包导出失败:{message}',
|
|
1177
|
+
'command.stop.unavailable': '运行时任务管理器不可用。',
|
|
1178
|
+
'command.stop.noMatch': '没有匹配 {session} 的运行中终端。',
|
|
1179
|
+
'command.stop.none': '没有正在运行的后台终端。',
|
|
1180
|
+
'command.stop.readOnly': '{count} 个恢复的终端会话仅可观察,无法从当前运行时停止。请通过操作系统停止列出的 PID。',
|
|
1181
|
+
'command.stop.reason': '通过 /stop 停止',
|
|
1182
|
+
'command.stop.stopping': '正在停止 {count} 个后台终端会话…',
|
|
1183
|
+
'command.stop.stoppingOne': '正在停止 1 个后台终端会话…',
|
|
1184
|
+
'command.compact.triggered': '已触发上下文压缩。',
|
|
1185
|
+
'command.context.unknown': '上下文用量:未知 / {window} token',
|
|
1186
|
+
'command.context.waiting': ' 等待下一次模型响应返回 Provider 用量。',
|
|
1187
|
+
'command.context.noEstimate': ' 此数值不会使用本地字符或 token 估算。',
|
|
1188
|
+
'command.context.usage': '上下文用量:{used} / {window} token({percent}%)',
|
|
1189
|
+
'command.context.input': ' 最近 Provider prompt_tokens:{tokens}',
|
|
1190
|
+
'command.context.output': ' 最近 Provider completion_tokens:{tokens}',
|
|
1191
|
+
'command.theme.usage': '用法:/theme <dark|light>',
|
|
1192
|
+
'command.theme.switched': '主题已切换为:{theme}(下次渲染生效)',
|
|
1193
|
+
'command.effort.unsupported': '{model} 不支持调整推理强度。',
|
|
1194
|
+
'command.effort.thisModel': '当前模型',
|
|
1195
|
+
'command.effort.summary': '推理强度:{current}\n可用选项:{available}',
|
|
1196
|
+
'command.effort.fixed': '由模型固定',
|
|
1197
|
+
'command.effort.budget': '<token 预算>',
|
|
1198
|
+
'command.effort.noToggle': '此模型始终启用推理,且不提供开关。',
|
|
1199
|
+
'command.effort.budgetOptions': 'on、off 或 8192 这样的 token 预算',
|
|
1200
|
+
'command.effort.available': '可用选项:{available}',
|
|
1201
|
+
'command.effort.set': '推理强度已设为 {effort}。',
|
|
1202
|
+
'command.approval.current': '审批策略:{label}({policy})',
|
|
1203
|
+
'command.approval.usage': '用法:/approval <ask|agent|full>',
|
|
1204
|
+
'command.approval.ask': '请求审批',
|
|
1205
|
+
'command.approval.agent': '自动批准低风险操作',
|
|
1206
|
+
'command.approval.full': '完全访问',
|
|
1207
|
+
'command.capability.current': '能力配置:{label}({profile})',
|
|
1208
|
+
'command.capability.usage': '用法:/capability <read-only|workspace-write|danger-full-access>',
|
|
1209
|
+
'command.capability.set': '能力配置已设为 {label}({profile})。',
|
|
1210
|
+
'command.mcp.uninitialized': 'MCP 尚未初始化。请在 .turboflux/settings.json 中配置服务。',
|
|
1211
|
+
'command.mcp.none': '没有配置 MCP 服务。',
|
|
1212
|
+
'command.mcp.noTools': '没有可用的 MCP 工具。',
|
|
1213
|
+
'command.mcp.tools': 'MCP 工具({count}):',
|
|
1214
|
+
'command.mcp.servers': 'MCP 服务({count}):',
|
|
1215
|
+
'command.mcp.toolCount': '{count} 个工具',
|
|
1216
|
+
'command.mcp.hint': '使用 /mcp tools 列出全部可用工具。',
|
|
1217
|
+
'command.skills.unavailable': '技能运行时不可用。',
|
|
1218
|
+
'command.skills.none': '没有找到技能。\n请将 SKILL.md 放入 .turboflux/skills/<名称>/ 或 ~/.turboflux/skills/<名称>/',
|
|
1219
|
+
'command.skills.active': ' * 当前使用',
|
|
1220
|
+
'command.skills.available': '可用技能({count}):',
|
|
1221
|
+
'command.conversation.unavailable': '会话管理器不可用。',
|
|
1222
|
+
'command.conversation.persistenceBlocked': '会话持久化已降级。切换会话前请运行 /flow retry 或 /flow export。',
|
|
1223
|
+
'command.conversation.started': '已开始新会话。',
|
|
1224
|
+
'command.conversation.none': '没有已保存会话。',
|
|
1225
|
+
'command.conversation.turns': '{count} 轮',
|
|
1226
|
+
'command.conversation.id': 'ID:{id}',
|
|
1227
|
+
'command.conversation.total': '会话(共 {count} 个):',
|
|
1228
|
+
'command.init.active': 'TURBOFLUX.md 已在 {path} 生效,TurboFlux 会自动加载。',
|
|
1229
|
+
'command.init.created': '已在 {path} 创建 TURBOFLUX.md,TurboFlux 会自动加载。',
|
|
1230
|
+
'command.init.template': '# {projectName}\n\n## 项目概览\n\n<!-- 描述项目用途 -->\n\n## 技术栈\n\n{techStack}\n\n## 目录结构\n\n{structure}\n\n## 编码规则\n\n- <!-- 在此添加编码约定 -->\n\n## 架构决策\n\n- <!-- 记录关键设计决策 -->\n\n## 已知注意事项\n\n- <!-- 需要留意的问题 -->\n',
|
|
1231
|
+
'command.init.unknownStack': '- <!-- 未检测到技术栈 -->',
|
|
1232
|
+
'command.init.empty': '- <!-- 空目录 -->',
|
|
1233
|
+
'command.init.scanFailed': '- <!-- 无法扫描 -->',
|
|
1234
|
+
'cli.description': 'TurboFlux - 工作区智能助手 CLI',
|
|
1235
|
+
'cli.workspace': '工作区目录',
|
|
1236
|
+
'cli.modelOverride': '仅为本次会话临时覆盖模型',
|
|
1237
|
+
'cli.providerOverride': '仅为本次会话临时覆盖 API Provider',
|
|
1238
|
+
'cli.command': '单次执行模式:运行提示词后退出',
|
|
1239
|
+
'cli.verbose': '显示工具调用详情',
|
|
1240
|
+
'cli.noFlicker': '保持固定的备用屏幕视口',
|
|
1241
|
+
'cli.scrollback': '使用传统终端回滚,而非固定驾驶舱',
|
|
1242
|
+
'cli.noAnimation': '跳过启动动画',
|
|
1243
|
+
'cli.noColor': '禁用彩色输出',
|
|
1244
|
+
'cli.transparent': '不绘制终端背景,显示终端模拟器透明效果',
|
|
1245
|
+
'cli.opaque': '强制使用实色背景并覆盖 TURBOFLUX_TRANSPARENT',
|
|
1246
|
+
'cli.approvalPolicy': '工具审批策略:ask、agent 或 full',
|
|
1247
|
+
'cli.capabilityProfile': '运行时能力:read-only、workspace-write 或 danger-full-access',
|
|
1248
|
+
'cli.mcp': '显式启动已配置的 MCP 服务(逗号分隔名称或 all)',
|
|
1249
|
+
'cli.invalidApproval': '无效的审批策略:{policy}',
|
|
1250
|
+
'cli.invalidCapability': '无效的能力配置:{profile}',
|
|
1251
|
+
'cli.config.description': '管理配置',
|
|
1252
|
+
'cli.config.action': 'set 或 show',
|
|
1253
|
+
'cli.config.key': '配置键',
|
|
1254
|
+
'cli.config.value': '配置值',
|
|
1255
|
+
'cli.config.usage': '用法:turboflux config set <键> <值>\n turboflux config show',
|
|
1256
|
+
'cli.setup.description': '配置 TurboFlux Provider、语言、人设和自定义行为',
|
|
1257
|
+
'cli.setup.provider': 'Provider 预设(openai、anthropic、deepseek、kimi、glm、openrouter、custom)',
|
|
1258
|
+
'cli.setup.apiKey': 'Provider API Key',
|
|
1259
|
+
'cli.setup.baseUrl': '自定义 Base URL',
|
|
1260
|
+
'cli.setup.model': '模型名称',
|
|
1261
|
+
'cli.setup.sharedLanguage': '尽可能同时设置界面语言和 AI 输出语言',
|
|
1262
|
+
'cli.setup.interfaceLanguage': 'Setup 界面/配置语言(zh-CN、en)',
|
|
1263
|
+
'cli.setup.aiLanguage': 'AI 输出语言(follow-user、zh-CN、en、ja、ko 或自定义文本)',
|
|
1264
|
+
'cli.setup.personas': '逗号分隔的可用人设、"all" 或 "skip"',
|
|
1265
|
+
'cli.setup.defaultPersona': '默认人设/输出风格',
|
|
1266
|
+
'cli.setup.instructions': '注入 TurboFlux 的全局自定义指令',
|
|
1267
|
+
'cli.setup.approval': '审批策略(ask、agent 或 full)',
|
|
1268
|
+
'cli.setup.yes': '缺少选项时接受默认值',
|
|
1269
|
+
'cli.setup.error': 'Setup 错误:{message}',
|
|
1270
|
+
'repl.commandFailed': 'TurboFlux 命令失败:{message}',
|
|
1271
|
+
'repl.noApiKey': '\n 尚未配置 API Key。运行 "turboflux setup" 连接模型 Provider。\n',
|
|
1272
|
+
'repl.transparent': ' 已启用透明终端背景。使用 "turboflux --opaque" 强制实色背景。\n',
|
|
1273
|
+
'repl.mcpEnabled': '\n 已显式启用 MCP:\n {commands}\n',
|
|
1274
|
+
'single.noApiKey': '尚未配置 API Key,请先运行 "turboflux setup"。',
|
|
1275
|
+
'single.noModel': '尚未挂载模型。请配置模型,或交互运行 TurboFlux 后使用 /model。',
|
|
1276
|
+
'single.thinking': '思考中',
|
|
1277
|
+
'single.protocolFallback': '协议回退',
|
|
1278
|
+
'single.agent': 'Agent',
|
|
1279
|
+
'single.agentStarted': '{agent} 已启动',
|
|
1280
|
+
'single.agentFinished': '{agent} {status} · {elapsed}',
|
|
1281
|
+
'single.completed': '已完成',
|
|
1282
|
+
'single.failed': '失败',
|
|
1283
|
+
'single.inputRequired': '需要输入',
|
|
1284
|
+
'single.error': '错误',
|
|
1285
|
+
'single.warning': '警告',
|
|
1286
|
+
'single.historyUnavailable': '会话历史不可用:{message}',
|
|
1287
|
+
'single.phase.idle': '空闲',
|
|
1288
|
+
'single.phase.thinking': '思考中',
|
|
1289
|
+
'single.phase.toolRunning': '工具运行中',
|
|
1290
|
+
'single.phase.awaitingApproval': '等待审批',
|
|
1291
|
+
'single.phase.awaitingInput': '等待输入',
|
|
1292
|
+
'single.phase.paused': '已暂停',
|
|
1293
|
+
'single.phase.aborting': '正在停止',
|
|
1294
|
+
'single.phase.recoverableError': '正在恢复',
|
|
1295
|
+
'single.phase.completed': '已完成',
|
|
1296
|
+
'image.onlyOneClipboard': '提交时只能从剪贴板读取一张图片。请粘贴图片文件,或在编辑时为每张图片分别按 Ctrl+V。',
|
|
1297
|
+
'image.missingPlaceholders': '有 {count} 个图片占位符没有对应附件。',
|
|
1298
|
+
'image.notFound': '找不到图片:{path}',
|
|
1299
|
+
'image.notFile': '图片路径不是文件:{path}',
|
|
1300
|
+
'image.tooLarge': '图片超过 {limit},未添加附件:{path}',
|
|
1301
|
+
'image.clipboardUnsupported': '目前只有 Windows 支持从剪贴板粘贴图片。',
|
|
1302
|
+
'image.clipboardMissing': 'Windows 剪贴板中没有图片。请粘贴图片路径或先复制图片。',
|
|
1303
|
+
'image.clipboardTooLarge': '剪贴板图片超过 {limit},未添加附件。',
|
|
1304
|
+
};
|
|
1305
|
+
//# sourceMappingURL=messages.js.map
|